> ## Documentation Index
> Fetch the complete documentation index at: https://docs.nevatal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Get Patient Odontogram

> The patient's living dental chart — findings, treatment estimate and signature state

Returns the patient's odontogram, creating an empty one on first access
(get-or-initialize). The initial dentition mode is suggested from the patient's
age (≤5 child, 6–12 mixed, otherwise adult) and stays editable.

All tooth and surface state is derived from `findings` — there is no separate
per-tooth payload. Requires the `odontogram` feature flag and EMR read access.

## Path Parameters

<ParamField path="patientId" type="string" required>The patient whose chart to read.</ParamField>

## Response

<ResponseField name="dentitionMode" type="string">`adult` | `mixed` | `child`.</ResponseField>
<ResponseField name="temporaryTeeth" type="number[]">Permanent positions marked temporary in mixed mode.</ResponseField>
<ResponseField name="findings" type="array">Findings sorted by FDI tooth number; each carries its planned items and subtotal.</ResponseField>
<ResponseField name="estimate" type="object">Server-computed `{ findingCount, total, paid, due }`.</ResponseField>
<ResponseField name="signature" type="object">`{ status: "none" | "signed" | "invalidated", signedAt? }`.</ResponseField>

<RequestExample>
  ```bash cURL theme={null}
  curl "https://api.nevatal.com/api/v1/patients/pat_abc123/odontogram" \
    -H "Authorization: Bearer nvtl_your_api_key"
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={null}
  {
    "success": true,
    "data": {
      "id": "odo_001",
      "patientId": "pat_abc123",
      "dentitionMode": "mixed",
      "temporaryTeeth": [13, 14, 15, 23, 24, 25, 33, 34, 35, 43, 44, 45],
      "findings": [
        {
          "id": "fnd_001",
          "toothFdi": 36,
          "isTemporaryTooth": false,
          "scope": "surface",
          "surface": "occlusal",
          "catalogFindingId": "caries",
          "plannedItems": [
            { "id": "pi_1", "type": "custom", "name": "Resina compuesta", "quantity": 1, "unitPrice": 180000, "subtotal": 180000 }
          ],
          "subtotal": 180000,
          "evolution": "pending"
        }
      ],
      "estimate": { "findingCount": 1, "total": 180000, "paid": 0, "due": 180000 },
      "signature": { "status": "none" },
      "version": 3
    }
  }
  ```
</ResponseExample>
