Charting
40 endpoints
Tooth Status
6 endpoints
/api/v1/{org_id}/clinical/patients/{patient_uuid}/teeth/{tooth_num}/status-historyGet tooth status history
Get the full status history timeline for a specific tooth. Returns ALL records including superseded and soft-deleted entries, ordered by created_at DESC. This provides a complete audit trail of status changes for the tooth. Raises 404 if the patient is not found.
Parameters
Path Parameters
patient_uuidstringrequiredtooth_numstringrequiredorg_idstringrequiredResponses
detailobject[]curl -X GET "https://api.example.com/api/v1/{org_id}/clinical/patients/{patient_uuid}/teeth/{tooth_num}/status-history" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json"curl -X GET "https://api.example.com/api/v1/{org_id}/clinical/patients/{patient_uuid}/teeth/{tooth_num}/status-history" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json"/api/v1/{org_id}/clinical/patients/{patient_uuid}/tooth-statusesList tooth statuses
List all active tooth statuses for a patient's chart. Returns one record per tooth that has an active status entry. Raises 404 if the patient is not found.
Parameters
Path Parameters
patient_uuidstringrequiredorg_idstringrequiredResponses
itemsobject[]requiredtotalintegerrequireddetailobject[]curl -X GET "https://api.example.com/api/v1/{org_id}/clinical/patients/{patient_uuid}/tooth-statuses" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json"curl -X GET "https://api.example.com/api/v1/{org_id}/clinical/patients/{patient_uuid}/tooth-statuses" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json"/api/v1/{org_id}/clinical/patients/{patient_uuid}/tooth-statuses/seedSeed initial dentition
Seed or refresh tooth status records for a patient based on date of birth. Modes: - ``age_based``: Initial setup for new patients. Creates all age-appropriate teeth. Idempotent: returns 0 if patient already has records. - ``reseed``: Refresh from current DOB. Soft-deletes all ``age_seeded`` records and re-seeds from the current DOB. Preserves clinician-set statuses (source = manual, clinical_chart, imported). Use for DOB corrections or returning patients. Raises 404 if the patient is not found. Raises 422 if the patient has no date of birth or mode is invalid.
Parameters
Path Parameters
patient_uuidstringrequiredorg_idstringrequiredRequest Body
modestringrequiredSeeding mode: 'age_based' for initial setup (empty charts only), 'reseed' to refresh from current DOB (replaces age_seeded records, preserves clinician-set statuses).
Responses
teeth_removedintegerNumber of stale age_seeded records removed (reseed mode only).
teeth_seededintegerrequiredNumber of tooth status records created. 0 if already seeded.
detailobject[]curl -X POST "https://api.example.com/api/v1/{org_id}/clinical/patients/{patient_uuid}/tooth-statuses/seed" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"mode": "string"
}'curl -X POST "https://api.example.com/api/v1/{org_id}/clinical/patients/{patient_uuid}/tooth-statuses/seed" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"mode": "string"
}'/api/v1/{org_id}/clinical/patients/{patient_uuid}/tooth-transitionAtomic tooth transition
Atomically transition a primary tooth to its permanent successor. Sets both the primary tooth status and the successor tooth status in a single database transaction. Validates the succession mapping (e.g., D→7 is valid, D→14 is not). The primary_tooth_number must have a known permanent successor, and the provided successor_tooth_number must match that expected successor. Raises 422 if the succession mapping is invalid or field validation fails. Raises 404 if the patient is not found.
Parameters
Path Parameters
patient_uuidstringrequiredorg_idstringrequiredRequest Body
primary_statusenumrequiredStatus to set on the primary tooth. One of: over_retained, exfoliating.
exfoliatingover_retainedprimary_tooth_numberstringrequiredPrimary tooth letter (A-T).
successor_eruption_pctintegersuccessor_eruption_stagestringsuccessor_root_completionstringsuccessor_statusenumrequiredStatus to set on the successor tooth. One of: partially_erupted, present.
partially_eruptedpresentsuccessor_tooth_numberstringrequiredPermanent successor tooth number (1-32).
Responses
primaryobjectrequiredOutput schema for a tooth status record.
successorobjectrequiredOutput schema for a tooth status record.
detailobject[]curl -X POST "https://api.example.com/api/v1/{org_id}/clinical/patients/{patient_uuid}/tooth-transition" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"primary_status": "exfoliating",
"primary_tooth_number": "string",
"successor_eruption_pct": 1,
"successor_eruption_stage": "string",
"successor_root_completion": "string",
"successor_status": "partially_erupted",
"successor_tooth_number": "string"
}'curl -X POST "https://api.example.com/api/v1/{org_id}/clinical/patients/{patient_uuid}/tooth-transition" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"primary_status": "exfoliating",
"primary_tooth_number": "string",
"successor_eruption_pct": 1,
"successor_eruption_stage": "string",
"successor_root_completion": "string",
"successor_status": "partially_erupted",
"successor_tooth_number": "string"
}'/api/v1/{org_id}/clinical/patients/{patient_uuid}/tooth-statusesSet tooth status
Set (upsert) the status of a specific tooth for a patient. Creates a new tooth status record or supersedes an existing one for the same tooth. Optional expected_version enforces optimistic concurrency. Raises 404 if the patient or referenced charted procedure is not found. Raises 409 if expected_version is stale. Raises 422 if validation fails.
Parameters
Path Parameters
patient_uuidstringrequiredorg_idstringrequiredRequest Body
charted_procedure_uuidstring (uuid)ectopic_slot_indexintegereffective_datestring (date)eruption_pctintegereruption_stagestringexpected_versionintegerimpaction_anglestringimpaction_depthstringnotestringroot_completionstringrotatenumberRotation angle in degrees (-180 to +180).
scale_factornumbershift_bnumberBuccal shift in mm (-10 to +10).
shift_mnumberMesial shift in mm (-10 to +10).
shift_onumberOcclusal shift in mm (-10 to +10).
sourcestringstatusstringrequiredTooth status classification. One of: present, missing, primary, prosthetic, unerupted, supernumerary, hidden, congenitally_absent, partially_erupted, over_retained, residual_root, impacted, avulsed, exfoliating.
tip_bnumberBuccal tip angle in degrees (-45 to +45).
tip_mnumberMesial tip angle in degrees (-45 to +45).
tooth_numberstringrequiredUniversal tooth number (1-32 permanent, A-T primary).
transposition_withstringResponses
created_atstring (date-time)requiredRecord creation timestamp.
ectopic_slot_indexintegereffective_datestring (date)requiredDate this status became effective.
eruption_pctintegereruption_stagestringidstring (uuid)requiredUUID of the tooth status record.
impaction_anglestringimpaction_depthstringnotestringrequiredClinical note for this tooth status entry.
root_completionstringrotatenumberrequiredRotation angle in degrees (-180 to +180).
scale_factornumbershift_bnumberrequiredBuccal shift in mm (-10 to +10).
shift_mnumberrequiredMesial shift in mm (-10 to +10).
shift_onumberrequiredOcclusal shift in mm (-10 to +10).
sourcestringrequiredSource of the tooth status data. One of: manual, imported, clinical_chart.
statusstringrequiredTooth status classification. One of: present, missing, primary, prosthetic, unerupted, supernumerary, hidden, congenitally_absent, partially_erupted, over_retained, residual_root, impacted, avulsed, exfoliating.
tip_bnumberrequiredBuccal tip angle in degrees (-45 to +45).
tip_mnumberrequiredMesial tip angle in degrees (-45 to +45).
tooth_numberstringrequiredUniversal tooth number (1-32 permanent, A-T primary).
transposition_withstringupdated_atstring (date-time)requiredRecord last-update timestamp.
versionintegerrequiredCurrent version for optimistic concurrency.
detailobject[]curl -X PUT "https://api.example.com/api/v1/{org_id}/clinical/patients/{patient_uuid}/tooth-statuses" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"charted_procedure_uuid": "string",
"ectopic_slot_index": 1,
"effective_date": "string",
"eruption_pct": 1,
"eruption_stage": "string",
"status": "string",
"tooth_number": "string"
}'curl -X PUT "https://api.example.com/api/v1/{org_id}/clinical/patients/{patient_uuid}/tooth-statuses" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"charted_procedure_uuid": "string",
"ectopic_slot_index": 1,
"effective_date": "string",
"eruption_pct": 1,
"eruption_stage": "string",
"status": "string",
"tooth_number": "string"
}'/api/v1/{org_id}/clinical/tooth-statuses/{status_uuid}Delete tooth status
Soft-delete a tooth status record. Supersedes the record and marks it as deleted, removing the tooth from the active chart. Idempotent: returns 204 if already deleted. Raises 404 if not found, 409 if base_version is stale.
Parameters
Path Parameters
status_uuidstringrequiredorg_idstringrequiredQuery Parameters
base_versionintegerrequiredCurrent version for optimistic concurrency — rejected with 409 if stale.
Responses
detailobject[]curl -X DELETE "https://api.example.com/api/v1/{org_id}/clinical/tooth-statuses/{status_uuid}" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json"curl -X DELETE "https://api.example.com/api/v1/{org_id}/clinical/tooth-statuses/{status_uuid}" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json"Procedures
12 endpoints
/api/v1/{org_id}/clinical/patients/{patient_uuid}/proceduresList charted procedures
List charted procedures for a patient with optional filters. Raises 404 if the patient is not found.
Parameters
Path Parameters
patient_uuidstringrequiredorg_idstringrequiredQuery Parameters
status"complete" | "complete_referred" | "existing_current" | "existing_other" | "in_progress" | "referred" | "scheduled" | "treatment_planned"Filter by procedure status. One of: treatment_planned, scheduled, in_progress, complete, complete_referred, existing_current, existing_other, referred. Use treatment_planned for diagnosed services, pending treatment, planned procedures, and unscheduled treatment.
tooth_numberstringFilter by tooth number.
date_fromstringFilter procedures on or after this date.
date_tostringFilter procedures on or before this date.
provider_uuidstringFilter by rendering provider UUID.
procedure_codestringFilter by procedure code prefix (e.g., 'D23').
treatment_area"arch" | "mouth" | "quadrant" | "sextant" | "tooth"Filter by treatment area. One of: tooth, quadrant, arch, sextant, mouth.
billablebooleanWhen true, return only completed procedures eligible for insurance claim creation.
do_not_bill_insurancebooleanFilter by the insurance do-not-bill flag.
billing_order_code"D" | "DD" | "DM" | "M" | "MD" | "MDD" | "MMD" | "N"Filter by explicit CareStack billing-order letter code.
has_active_claimbooleanFilter by whether a non-voided active claim already references the procedure.
include_deletedbooleanWhen true, include soft-deleted procedures.
Default: false
pageintegerPage number (1-based).
Default: 1
page_sizeintegerNumber of items per page.
Default: 50
Responses
itemsobject[]requiredpageintegerrequiredpage_sizeintegerrequiredtotalintegerrequireddetailobject[]curl -X GET "https://api.example.com/api/v1/{org_id}/clinical/patients/{patient_uuid}/procedures" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json"curl -X GET "https://api.example.com/api/v1/{org_id}/clinical/patients/{patient_uuid}/procedures" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json"/api/v1/{org_id}/clinical/procedures/{procedure_uuid}Get charted procedure
Retrieve a single charted procedure by UUID. Raises 404 if not found.
Parameters
Path Parameters
procedure_uuidstringrequiredorg_idstringrequiredResponses
appointmentobjectLightweight reference to a related entity — exposes UUID and optional name.
archstringbilling_notestringbilling_order_codeenumrequiredEffective CareStack billing-order letter code; N means non-insurance.
DDDDMMMDMDDMMDNbundle_group_idintegerclinical_notestringcode_sentstringcreated_atstring (date-time)requiredRecord creation timestamp.
date_completedstring (date-time)date_original_prostheticstring (date)date_servicestring (date)requiredDate of service.
date_treatment_plannedstring (date)deleted_atstring (date-time)diagnosis_code_1stringdiagnosis_code_2stringdiagnosis_code_3stringdiagnosis_code_4stringdiagnostic_codeobjectLightweight reference to a related entity — exposes UUID and optional name.
do_not_bill_insurancebooleanTrue when this charted procedure is intentionally excluded from insurance claim creation.
effective_feestringrequiredThe fee actually used for finance: fee_override if set, otherwise office_fee.
explosion_codeobjectLightweight reference to a related entity — exposes UUID and optional name.
fee_overridestringfee_sourcestringrequiredHow the effective fee was determined. One of: fee_schedule, override.
has_active_claimbooleanTrue when a non-voided active claim already references this charted procedure.
idstring (uuid)requiredUUID of the charted procedure.
is_prostheticbooleanrequiredWhether this is a prosthetic procedure.
item_orderintegerDisplay order within a treatment plan or visit.
locationobjectLightweight reference to a related entity — exposes UUID and optional name.
material_type_codestringnotestringrequiredClinical note for this procedure.
office_feestringrequiredUCR office fee from the fee schedule at charting time. Always the base production amount — never replaced by fee_override.
patientobjectLightweight reference to a related entity — exposes UUID and optional name.
priorityobjectLightweight reference to a related entity — exposes UUID and optional name.
procedure_categorystringprocedure_codestringprocedure_descriptionstringprognosisobjectLightweight reference to a related entity — exposes UUID and optional name.
providerobjectLightweight reference to a related entity — exposes UUID and optional name.
quadrantstringsextantstringstatusstringrequiredProcedure lifecycle status. One of: treatment_planned, scheduled, in_progress, complete, complete_referred, existing_current, existing_other, referred.
surfacesstringtooth_numberstringtooth_rangestringupdated_atstring (date-time)requiredRecord last-update timestamp.
versionintegerrequiredCurrent version for optimistic concurrency.
visit_phase_hintintegerdetailobject[]curl -X GET "https://api.example.com/api/v1/{org_id}/clinical/procedures/{procedure_uuid}" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json"curl -X GET "https://api.example.com/api/v1/{org_id}/clinical/procedures/{procedure_uuid}" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json"/api/v1/{org_id}/clinical/procedures/active-claim-refsList active claim references for charted procedures
Return a compact active-claim badge read model keyed by procedure UUID.
Parameters
Path Parameters
org_idstringrequiredQuery Parameters
procedure_uuidsstring[]requiredCharted procedure UUIDs to look up.
Responses
detailobject[]curl -X GET "https://api.example.com/api/v1/{org_id}/clinical/procedures/active-claim-refs" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json"curl -X GET "https://api.example.com/api/v1/{org_id}/clinical/procedures/active-claim-refs" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json"/api/v1/{org_id}/clinical/procedures/unscheduled-treatment/agent-worklistList unscheduled treatment worklist for agents
Return an agent-safe worklist without clinical notes, billing notes, contact info, or addresses.
Parameters
Path Parameters
org_idstringrequiredQuery Parameters
as_of_datestringOnly include procedures planned on or before this date.
max_resultsintegerMaximum worklist rows to return.
Default: 10
min_fee_centsintegerMinimum total unscheduled treatment value in cents.
Default: 0
min_days_unscheduledintegerOnly include treatment planned at least this many days ago.
location_uuidstringrequiredProcedure location UUID filter. Required for PHI worklist scoping.
sort"oldest_planned_asc" | "value_desc"Sort order for worklist rows.
oldest_planned_ascvalue_descDefault: "value_desc"
Responses
as_of_datestring (date)requireditemsobject[]requiredpage_sizeintegerrequiredtotal_countintegerrequireddetailobject[]curl -X GET "https://api.example.com/api/v1/{org_id}/clinical/procedures/unscheduled-treatment/agent-worklist" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json"curl -X GET "https://api.example.com/api/v1/{org_id}/clinical/procedures/unscheduled-treatment/agent-worklist" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json"/api/v1/{org_id}/clinical/patients/{patient_uuid}/chart-bundleCreate procedure bundle
Create a bundle of charted procedures from an explosion code. Resolves each explosion code entry into an individual charted procedure. Optional entries may be excluded via excluded_entry_uuids. Raises 404 if the patient, explosion code, provider, or any referenced entry is not found. Raises 422 if validation fails.
Parameters
Path Parameters
patient_uuidstringrequiredorg_idstringrequiredRequest Body
archenumlowerupperdate_servicestring (date)excluded_entry_uuidsstring (uuid)[]UUIDs of explosion code entries to exclude from this bundle chart.
explosion_code_uuidstring (uuid)requiredUUID of the explosion code (bundle definition) to chart.
location_uuidstring (uuid)notestringprovider_uuidstring (uuid)requiredUUID of the rendering provider.
quadrantenumLLLRULURsextantenum123456surfacesstringtooth_numberstringResponses
bundle_group_idintegerrequiredInternal group ID linking all procedures created from this bundle.
proceduresobject[]requiredList of charted procedures created from the bundle.
detailobject[]curl -X POST "https://api.example.com/api/v1/{org_id}/clinical/patients/{patient_uuid}/chart-bundle" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"arch": "string",
"date_service": "string",
"excluded_entry_uuids": [],
"explosion_code_uuid": "00000000-0000-0000-0000-000000000000",
"location_uuid": "string",
"provider_uuid": "00000000-0000-0000-0000-000000000000"
}'curl -X POST "https://api.example.com/api/v1/{org_id}/clinical/patients/{patient_uuid}/chart-bundle" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"arch": "string",
"date_service": "string",
"excluded_entry_uuids": [],
"explosion_code_uuid": "00000000-0000-0000-0000-000000000000",
"location_uuid": "string",
"provider_uuid": "00000000-0000-0000-0000-000000000000"
}'/api/v1/{org_id}/clinical/patients/{patient_uuid}/proceduresCreate charted procedure
Create a new charted procedure for a patient. Raises 404 if patient, procedure code, provider, or any referenced entity is not found. Raises 422 if validation fails (e.g., priority_uuid does not reference a priority definition).
Parameters
Path Parameters
patient_uuidstringrequiredorg_idstringrequiredRequest Body
appointment_uuidstring (uuid)archenumlowerupperbilling_order_codeenumDDDDMMMDMDDMMDNdate_original_prostheticstring (date)date_servicestring (date)diagnostic_code_uuidstring (uuid)do_not_bill_insurancebooleanWhen true, this charted procedure is excluded from insurance claim creation.
fee_overridenumberis_prostheticbooleanWhether this is a prosthetic procedure.
location_uuidstring (uuid)material_type_codestringnotestringpriority_uuidstring (uuid)procedure_code_uuidstring (uuid)requiredUUID of the procedure code to chart.
prognosis_uuidstring (uuid)provider_uuidstring (uuid)requiredUUID of the rendering provider.
quadrantenumLLLRULURsextantenum123456source_procedure_uuidstring (uuid)statusstringsurfacesstringtooth_numberstringtooth_rangestringResponses
appointmentobjectLightweight reference to a related entity — exposes UUID and optional name.
archstringbilling_notestringbilling_order_codeenumrequiredEffective CareStack billing-order letter code; N means non-insurance.
DDDDMMMDMDDMMDNbundle_group_idintegerclinical_notestringcode_sentstringcreated_atstring (date-time)requiredRecord creation timestamp.
date_completedstring (date-time)date_original_prostheticstring (date)date_servicestring (date)requiredDate of service.
date_treatment_plannedstring (date)deleted_atstring (date-time)diagnosis_code_1stringdiagnosis_code_2stringdiagnosis_code_3stringdiagnosis_code_4stringdiagnostic_codeobjectLightweight reference to a related entity — exposes UUID and optional name.
do_not_bill_insurancebooleanTrue when this charted procedure is intentionally excluded from insurance claim creation.
effective_feestringrequiredThe fee actually used for finance: fee_override if set, otherwise office_fee.
explosion_codeobjectLightweight reference to a related entity — exposes UUID and optional name.
fee_overridestringfee_sourcestringrequiredHow the effective fee was determined. One of: fee_schedule, override.
has_active_claimbooleanTrue when a non-voided active claim already references this charted procedure.
idstring (uuid)requiredUUID of the charted procedure.
is_prostheticbooleanrequiredWhether this is a prosthetic procedure.
item_orderintegerDisplay order within a treatment plan or visit.
locationobjectLightweight reference to a related entity — exposes UUID and optional name.
material_type_codestringnotestringrequiredClinical note for this procedure.
office_feestringrequiredUCR office fee from the fee schedule at charting time. Always the base production amount — never replaced by fee_override.
patientobjectLightweight reference to a related entity — exposes UUID and optional name.
priorityobjectLightweight reference to a related entity — exposes UUID and optional name.
procedure_categorystringprocedure_codestringprocedure_descriptionstringprognosisobjectLightweight reference to a related entity — exposes UUID and optional name.
providerobjectLightweight reference to a related entity — exposes UUID and optional name.
quadrantstringsextantstringstatusstringrequiredProcedure lifecycle status. One of: treatment_planned, scheduled, in_progress, complete, complete_referred, existing_current, existing_other, referred.
surfacesstringtooth_numberstringtooth_rangestringupdated_atstring (date-time)requiredRecord last-update timestamp.
versionintegerrequiredCurrent version for optimistic concurrency.
visit_phase_hintintegerdetailobject[]curl -X POST "https://api.example.com/api/v1/{org_id}/clinical/patients/{patient_uuid}/procedures" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"appointment_uuid": "string",
"arch": "string",
"billing_order_code": "string",
"date_original_prosthetic": "string",
"date_service": "string",
"procedure_code_uuid": "00000000-0000-0000-0000-000000000000",
"provider_uuid": "00000000-0000-0000-0000-000000000000"
}'curl -X POST "https://api.example.com/api/v1/{org_id}/clinical/patients/{patient_uuid}/procedures" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"appointment_uuid": "string",
"arch": "string",
"billing_order_code": "string",
"date_original_prosthetic": "string",
"date_service": "string",
"procedure_code_uuid": "00000000-0000-0000-0000-000000000000",
"provider_uuid": "00000000-0000-0000-0000-000000000000"
}'/api/v1/{org_id}/clinical/patients/{patient_uuid}/procedures/bulkBulk import procedures
Bulk import up to 500 charted procedures for a patient. Raises 404 if the patient is not found. Raises 422 if any row fails validation; per-row errors are returned in the response body.
Parameters
Path Parameters
patient_uuidstringrequiredorg_idstringrequiredRequest Body
metaobjectTop-level execution options for a bulk request.
rowsobject[]requiredResponses
createdintegerfailedintegerresultsobject[]requiredskippedintegertotalintegerrequiredupdatedintegervalidatedintegerdetailobject[]curl -X POST "https://api.example.com/api/v1/{org_id}/clinical/patients/{patient_uuid}/procedures/bulk" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"meta": {},
"rows": []
}'curl -X POST "https://api.example.com/api/v1/{org_id}/clinical/patients/{patient_uuid}/procedures/bulk" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"meta": {},
"rows": []
}'/api/v1/{org_id}/clinical/procedures/{procedure_uuid}/completeComplete charted procedure
Mark a charted procedure as completed. Transitions the procedure to completed status and records the service date. Raises 404 if not found. Raises 409 if base_version is stale. Raises 422 if the procedure is not in a completable status.
Parameters
Path Parameters
procedure_uuidstringrequiredorg_idstringrequiredRequest Body
base_versionintegerrequiredCurrent version for optimistic concurrency — rejected with 409 if stale.
date_servicestring (date)notestringResponses
appointmentobjectLightweight reference to a related entity — exposes UUID and optional name.
archstringbilling_notestringbilling_order_codeenumrequiredEffective CareStack billing-order letter code; N means non-insurance.
DDDDMMMDMDDMMDNbundle_group_idintegerclinical_notestringcode_sentstringcreated_atstring (date-time)requiredRecord creation timestamp.
date_completedstring (date-time)date_original_prostheticstring (date)date_servicestring (date)requiredDate of service.
date_treatment_plannedstring (date)deleted_atstring (date-time)diagnosis_code_1stringdiagnosis_code_2stringdiagnosis_code_3stringdiagnosis_code_4stringdiagnostic_codeobjectLightweight reference to a related entity — exposes UUID and optional name.
do_not_bill_insurancebooleanTrue when this charted procedure is intentionally excluded from insurance claim creation.
effective_feestringrequiredThe fee actually used for finance: fee_override if set, otherwise office_fee.
explosion_codeobjectLightweight reference to a related entity — exposes UUID and optional name.
fee_overridestringfee_sourcestringrequiredHow the effective fee was determined. One of: fee_schedule, override.
has_active_claimbooleanTrue when a non-voided active claim already references this charted procedure.
idstring (uuid)requiredUUID of the charted procedure.
is_prostheticbooleanrequiredWhether this is a prosthetic procedure.
item_orderintegerDisplay order within a treatment plan or visit.
locationobjectLightweight reference to a related entity — exposes UUID and optional name.
material_type_codestringnotestringrequiredClinical note for this procedure.
office_feestringrequiredUCR office fee from the fee schedule at charting time. Always the base production amount — never replaced by fee_override.
patientobjectLightweight reference to a related entity — exposes UUID and optional name.
priorityobjectLightweight reference to a related entity — exposes UUID and optional name.
procedure_categorystringprocedure_codestringprocedure_descriptionstringprognosisobjectLightweight reference to a related entity — exposes UUID and optional name.
providerobjectLightweight reference to a related entity — exposes UUID and optional name.
quadrantstringsextantstringstatusstringrequiredProcedure lifecycle status. One of: treatment_planned, scheduled, in_progress, complete, complete_referred, existing_current, existing_other, referred.
surfacesstringtooth_numberstringtooth_rangestringupdated_atstring (date-time)requiredRecord last-update timestamp.
versionintegerrequiredCurrent version for optimistic concurrency.
visit_phase_hintintegerdetailobject[]curl -X POST "https://api.example.com/api/v1/{org_id}/clinical/procedures/{procedure_uuid}/complete" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"base_version": 1,
"date_service": "string",
"note": "string"
}'curl -X POST "https://api.example.com/api/v1/{org_id}/clinical/procedures/{procedure_uuid}/complete" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"base_version": 1,
"date_service": "string",
"note": "string"
}'/api/v1/{org_id}/clinical/procedures/{procedure_uuid}/transitionTransition procedure status
Transition a charted procedure to a target status. Raises 404 if not found. Raises 409 if base_version is stale. Raises 422 if the requested status transition is not allowed.
Parameters
Path Parameters
procedure_uuidstringrequiredorg_idstringrequiredRequest Body
base_versionintegerrequiredCurrent version for optimistic concurrency — rejected with 409 if stale.
notestringstatusstringrequiredTarget procedure status. One of: treatment_planned, scheduled, in_progress, complete, complete_referred, existing_current, existing_other, referred.
Responses
appointmentobjectLightweight reference to a related entity — exposes UUID and optional name.
archstringbilling_notestringbilling_order_codeenumrequiredEffective CareStack billing-order letter code; N means non-insurance.
DDDDMMMDMDDMMDNbundle_group_idintegerclinical_notestringcode_sentstringcreated_atstring (date-time)requiredRecord creation timestamp.
date_completedstring (date-time)date_original_prostheticstring (date)date_servicestring (date)requiredDate of service.
date_treatment_plannedstring (date)deleted_atstring (date-time)diagnosis_code_1stringdiagnosis_code_2stringdiagnosis_code_3stringdiagnosis_code_4stringdiagnostic_codeobjectLightweight reference to a related entity — exposes UUID and optional name.
do_not_bill_insurancebooleanTrue when this charted procedure is intentionally excluded from insurance claim creation.
effective_feestringrequiredThe fee actually used for finance: fee_override if set, otherwise office_fee.
explosion_codeobjectLightweight reference to a related entity — exposes UUID and optional name.
fee_overridestringfee_sourcestringrequiredHow the effective fee was determined. One of: fee_schedule, override.
has_active_claimbooleanTrue when a non-voided active claim already references this charted procedure.
idstring (uuid)requiredUUID of the charted procedure.
is_prostheticbooleanrequiredWhether this is a prosthetic procedure.
item_orderintegerDisplay order within a treatment plan or visit.
locationobjectLightweight reference to a related entity — exposes UUID and optional name.
material_type_codestringnotestringrequiredClinical note for this procedure.
office_feestringrequiredUCR office fee from the fee schedule at charting time. Always the base production amount — never replaced by fee_override.
patientobjectLightweight reference to a related entity — exposes UUID and optional name.
priorityobjectLightweight reference to a related entity — exposes UUID and optional name.
procedure_categorystringprocedure_codestringprocedure_descriptionstringprognosisobjectLightweight reference to a related entity — exposes UUID and optional name.
providerobjectLightweight reference to a related entity — exposes UUID and optional name.
quadrantstringsextantstringstatusstringrequiredProcedure lifecycle status. One of: treatment_planned, scheduled, in_progress, complete, complete_referred, existing_current, existing_other, referred.
surfacesstringtooth_numberstringtooth_rangestringupdated_atstring (date-time)requiredRecord last-update timestamp.
versionintegerrequiredCurrent version for optimistic concurrency.
visit_phase_hintintegerdetailobject[]curl -X POST "https://api.example.com/api/v1/{org_id}/clinical/procedures/{procedure_uuid}/transition" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"base_version": 1,
"note": "string",
"status": "string"
}'curl -X POST "https://api.example.com/api/v1/{org_id}/clinical/procedures/{procedure_uuid}/transition" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"base_version": 1,
"note": "string",
"status": "string"
}'/api/v1/{org_id}/clinical/procedures/{procedure_uuid}/voidVoid completed procedure
Void a completed procedure and remove any treatment-plan links. Raises 404 if not found, 409 if base_version is stale, and 422 if the procedure is not in a voidable completed status.
Parameters
Path Parameters
procedure_uuidstringrequiredorg_idstringrequiredRequest Body
base_versionintegerrequiredCurrent version for optimistic concurrency — rejected with 409 if stale.
reasonstringResponses
appointmentobjectLightweight reference to a related entity — exposes UUID and optional name.
archstringbilling_notestringbilling_order_codeenumrequiredEffective CareStack billing-order letter code; N means non-insurance.
DDDDMMMDMDDMMDNbundle_group_idintegerclinical_notestringcode_sentstringcreated_atstring (date-time)requiredRecord creation timestamp.
date_completedstring (date-time)date_original_prostheticstring (date)date_servicestring (date)requiredDate of service.
date_treatment_plannedstring (date)deleted_atstring (date-time)diagnosis_code_1stringdiagnosis_code_2stringdiagnosis_code_3stringdiagnosis_code_4stringdiagnostic_codeobjectLightweight reference to a related entity — exposes UUID and optional name.
do_not_bill_insurancebooleanTrue when this charted procedure is intentionally excluded from insurance claim creation.
effective_feestringrequiredThe fee actually used for finance: fee_override if set, otherwise office_fee.
explosion_codeobjectLightweight reference to a related entity — exposes UUID and optional name.
fee_overridestringfee_sourcestringrequiredHow the effective fee was determined. One of: fee_schedule, override.
has_active_claimbooleanTrue when a non-voided active claim already references this charted procedure.
idstring (uuid)requiredUUID of the charted procedure.
is_prostheticbooleanrequiredWhether this is a prosthetic procedure.
item_orderintegerDisplay order within a treatment plan or visit.
locationobjectLightweight reference to a related entity — exposes UUID and optional name.
material_type_codestringnotestringrequiredClinical note for this procedure.
office_feestringrequiredUCR office fee from the fee schedule at charting time. Always the base production amount — never replaced by fee_override.
patientobjectLightweight reference to a related entity — exposes UUID and optional name.
priorityobjectLightweight reference to a related entity — exposes UUID and optional name.
procedure_categorystringprocedure_codestringprocedure_descriptionstringprognosisobjectLightweight reference to a related entity — exposes UUID and optional name.
providerobjectLightweight reference to a related entity — exposes UUID and optional name.
quadrantstringsextantstringstatusstringrequiredProcedure lifecycle status. One of: treatment_planned, scheduled, in_progress, complete, complete_referred, existing_current, existing_other, referred.
surfacesstringtooth_numberstringtooth_rangestringupdated_atstring (date-time)requiredRecord last-update timestamp.
versionintegerrequiredCurrent version for optimistic concurrency.
visit_phase_hintintegerdetailobject[]curl -X POST "https://api.example.com/api/v1/{org_id}/clinical/procedures/{procedure_uuid}/void" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"base_version": 1,
"reason": "string"
}'curl -X POST "https://api.example.com/api/v1/{org_id}/clinical/procedures/{procedure_uuid}/void" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"base_version": 1,
"reason": "string"
}'/api/v1/{org_id}/clinical/procedures/{procedure_uuid}Update charted procedure
Partially update a charted procedure. Raises 404 if not found. Raises 409 if base_version is stale. Raises 422 if validation fails (e.g., invalid status transition).
Parameters
Path Parameters
procedure_uuidstringrequiredorg_idstringrequiredRequest Body
archenumlowerupperbase_versionintegerrequiredCurrent version for optimistic concurrency — rejected with 409 if stale.
billing_notestringbilling_order_codeenumDDDDMMMDMDDMMDNclinical_notestringdate_original_prostheticstring (date)date_servicestring (date)diagnostic_code_uuidstring (uuid)do_not_bill_insurancebooleanfee_overridenumberis_prostheticbooleanmaterial_type_codestringnotestringpriority_uuidstring (uuid)procedure_code_uuidstring (uuid)prognosis_uuidstring (uuid)quadrantenumLLLRULURsextantenum123456surfacesstringtooth_numberstringtooth_rangestringResponses
appointmentobjectLightweight reference to a related entity — exposes UUID and optional name.
archstringbilling_notestringbilling_order_codeenumrequiredEffective CareStack billing-order letter code; N means non-insurance.
DDDDMMMDMDDMMDNbundle_group_idintegerclinical_notestringcode_sentstringcreated_atstring (date-time)requiredRecord creation timestamp.
date_completedstring (date-time)date_original_prostheticstring (date)date_servicestring (date)requiredDate of service.
date_treatment_plannedstring (date)deleted_atstring (date-time)diagnosis_code_1stringdiagnosis_code_2stringdiagnosis_code_3stringdiagnosis_code_4stringdiagnostic_codeobjectLightweight reference to a related entity — exposes UUID and optional name.
do_not_bill_insurancebooleanTrue when this charted procedure is intentionally excluded from insurance claim creation.
effective_feestringrequiredThe fee actually used for finance: fee_override if set, otherwise office_fee.
explosion_codeobjectLightweight reference to a related entity — exposes UUID and optional name.
fee_overridestringfee_sourcestringrequiredHow the effective fee was determined. One of: fee_schedule, override.
has_active_claimbooleanTrue when a non-voided active claim already references this charted procedure.
idstring (uuid)requiredUUID of the charted procedure.
is_prostheticbooleanrequiredWhether this is a prosthetic procedure.
item_orderintegerDisplay order within a treatment plan or visit.
locationobjectLightweight reference to a related entity — exposes UUID and optional name.
material_type_codestringnotestringrequiredClinical note for this procedure.
office_feestringrequiredUCR office fee from the fee schedule at charting time. Always the base production amount — never replaced by fee_override.
patientobjectLightweight reference to a related entity — exposes UUID and optional name.
priorityobjectLightweight reference to a related entity — exposes UUID and optional name.
procedure_categorystringprocedure_codestringprocedure_descriptionstringprognosisobjectLightweight reference to a related entity — exposes UUID and optional name.
providerobjectLightweight reference to a related entity — exposes UUID and optional name.
quadrantstringsextantstringstatusstringrequiredProcedure lifecycle status. One of: treatment_planned, scheduled, in_progress, complete, complete_referred, existing_current, existing_other, referred.
surfacesstringtooth_numberstringtooth_rangestringupdated_atstring (date-time)requiredRecord last-update timestamp.
versionintegerrequiredCurrent version for optimistic concurrency.
visit_phase_hintintegerdetailobject[]curl -X PATCH "https://api.example.com/api/v1/{org_id}/clinical/procedures/{procedure_uuid}" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"arch": "string",
"base_version": 1,
"billing_note": "string",
"billing_order_code": "string",
"clinical_note": "string"
}'curl -X PATCH "https://api.example.com/api/v1/{org_id}/clinical/procedures/{procedure_uuid}" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"arch": "string",
"base_version": 1,
"billing_note": "string",
"billing_order_code": "string",
"clinical_note": "string"
}'/api/v1/{org_id}/clinical/procedures/{procedure_uuid}Delete charted procedure
Soft-delete a charted procedure and remove treatment-plan links. Raises 404 if not found, 409 if base_version is stale, 422 if procedure is in a non-deletable status (complete, complete_referred).
Parameters
Path Parameters
procedure_uuidstringrequiredorg_idstringrequiredQuery Parameters
base_versionintegerrequiredCurrent version for optimistic concurrency — rejected with 409 if stale.
Responses
detailobject[]curl -X DELETE "https://api.example.com/api/v1/{org_id}/clinical/procedures/{procedure_uuid}" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json"curl -X DELETE "https://api.example.com/api/v1/{org_id}/clinical/procedures/{procedure_uuid}" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json"Indicators
1 endpoint
/api/v1/{org_id}/clinical/patients/{patient_uuid}/tooth-indicatorsGet aggregated tooth indicators
Aggregated tooth indicators from all registered specialty modules. Currently returns indicators from: perio (mobility, furcation). Future modules (endo, ortho) will be added without API changes. Raises 404 if the patient is not found.
Parameters
Path Parameters
patient_uuidstringrequiredorg_idstringrequiredResponses
itemsobject[]requireddetailobject[]curl -X GET "https://api.example.com/api/v1/{org_id}/clinical/patients/{patient_uuid}/tooth-indicators" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json"curl -X GET "https://api.example.com/api/v1/{org_id}/clinical/patients/{patient_uuid}/tooth-indicators" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json"Conditions
5 endpoints
/api/v1/{org_id}/clinical/conditions/{condition_uuid}Get patient condition
Retrieve a single patient condition by UUID. Raises 404 if not found.
Parameters
Path Parameters
condition_uuidstringrequiredorg_idstringrequiredResponses
condition_typeenumrequiredType of condition. One of: caries, fracture, abscess, impaction, open_contact, diastema, abrasion, erosion, attrition, watch, periapical_lesion, periodontal, decalcification, defective_restoration, other.
abrasionabscessankylosisattritioncariesdecalcificationdefective_restorationdiastemadilacerationerosionfracturefracture_rootfusiongeminationhypoplasiaimpactionluxationmacrodontiamicrodontiaopen_contactotherperiapical_lesionperiodontalroot_resorption_externalroot_resorption_internalwatchcreated_atstring (date-time)requiredRecord creation timestamp.
date_identifiedstring (date)requiredDate the condition was identified.
date_resolvedstring (date)diagnostic_codeobjectLightweight reference to a related entity — exposes UUID and optional name.
idstring (uuid)requiredUUID of the patient condition.
notestringrequiredClinical note describing the condition.
providerobjectLightweight reference to a related entity — exposes UUID and optional name.
severityenummildmoderateseverestatusenumrequiredCondition monitoring status. One of: active, resolved, monitoring.
activemonitoringresolvedsurfacestringtooth_numberstringupdated_atstring (date-time)requiredRecord last-update timestamp.
versionintegerrequiredCurrent version for optimistic concurrency.
detailobject[]curl -X GET "https://api.example.com/api/v1/{org_id}/clinical/conditions/{condition_uuid}" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json"curl -X GET "https://api.example.com/api/v1/{org_id}/clinical/conditions/{condition_uuid}" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json"/api/v1/{org_id}/clinical/patients/{patient_uuid}/conditionsList patient conditions
List patient conditions with optional filters. Raises 404 if the patient is not found.
Parameters
Path Parameters
patient_uuidstringrequiredorg_idstringrequiredQuery Parameters
statusstringFilter by condition status (e.g., active, resolved).
condition_typestringFilter by condition type code.
tooth_numberstringFilter by tooth number.
pageintegerPage number (1-based).
Default: 1
page_sizeintegerNumber of items per page.
Default: 50
Responses
itemsobject[]requiredpageintegerrequiredpage_sizeintegerrequiredtotalintegerrequireddetailobject[]curl -X GET "https://api.example.com/api/v1/{org_id}/clinical/patients/{patient_uuid}/conditions" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json"curl -X GET "https://api.example.com/api/v1/{org_id}/clinical/patients/{patient_uuid}/conditions" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json"/api/v1/{org_id}/clinical/patients/{patient_uuid}/conditionsCreate patient condition
Create a new patient condition record. Defaults date_identified to today if not provided. Raises 404 if the patient, provider, or diagnostic code is not found. Raises 422 if validation fails.
Parameters
Path Parameters
patient_uuidstringrequiredorg_idstringrequiredRequest Body
condition_typeenumrequiredType of condition. One of: caries, fracture, abscess, impaction, open_contact, diastema, abrasion, erosion, attrition, watch, periapical_lesion, periodontal, decalcification, defective_restoration, other.
abrasionabscessankylosisattritioncariesdecalcificationdefective_restorationdiastemadilacerationerosionfracturefracture_rootfusiongeminationhypoplasiaimpactionluxationmacrodontiamicrodontiaopen_contactotherperiapical_lesionperiodontalroot_resorption_externalroot_resorption_internalwatchdate_identifiedstring (date)diagnostic_code_uuidstring (uuid)notestringprovider_uuidstring (uuid)severityenummildmoderateseveresurfacestringtooth_numberstringResponses
condition_typeenumrequiredType of condition. One of: caries, fracture, abscess, impaction, open_contact, diastema, abrasion, erosion, attrition, watch, periapical_lesion, periodontal, decalcification, defective_restoration, other.
abrasionabscessankylosisattritioncariesdecalcificationdefective_restorationdiastemadilacerationerosionfracturefracture_rootfusiongeminationhypoplasiaimpactionluxationmacrodontiamicrodontiaopen_contactotherperiapical_lesionperiodontalroot_resorption_externalroot_resorption_internalwatchcreated_atstring (date-time)requiredRecord creation timestamp.
date_identifiedstring (date)requiredDate the condition was identified.
date_resolvedstring (date)diagnostic_codeobjectLightweight reference to a related entity — exposes UUID and optional name.
idstring (uuid)requiredUUID of the patient condition.
notestringrequiredClinical note describing the condition.
providerobjectLightweight reference to a related entity — exposes UUID and optional name.
severityenummildmoderateseverestatusenumrequiredCondition monitoring status. One of: active, resolved, monitoring.
activemonitoringresolvedsurfacestringtooth_numberstringupdated_atstring (date-time)requiredRecord last-update timestamp.
versionintegerrequiredCurrent version for optimistic concurrency.
detailobject[]curl -X POST "https://api.example.com/api/v1/{org_id}/clinical/patients/{patient_uuid}/conditions" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"condition_type": "abrasion",
"date_identified": "string",
"diagnostic_code_uuid": "string",
"note": "string",
"provider_uuid": "string"
}'curl -X POST "https://api.example.com/api/v1/{org_id}/clinical/patients/{patient_uuid}/conditions" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"condition_type": "abrasion",
"date_identified": "string",
"diagnostic_code_uuid": "string",
"note": "string",
"provider_uuid": "string"
}'/api/v1/{org_id}/clinical/conditions/{condition_uuid}Update patient condition
Partially update a patient condition, or resolve it. If status is set to 'resolved', the condition is resolved and date_resolved is set to today. Otherwise performs a standard partial update. Raises 404 if not found. Raises 409 if base_version is stale. Raises 422 if validation fails.
Parameters
Path Parameters
condition_uuidstringrequiredorg_idstringrequiredRequest Body
base_versionintegerrequiredCurrent version for optimistic concurrency — rejected with 409 if stale.
notestringseverityenummildmoderateseverestatusenumactivemonitoringresolvedsurfacestringResponses
condition_typeenumrequiredType of condition. One of: caries, fracture, abscess, impaction, open_contact, diastema, abrasion, erosion, attrition, watch, periapical_lesion, periodontal, decalcification, defective_restoration, other.
abrasionabscessankylosisattritioncariesdecalcificationdefective_restorationdiastemadilacerationerosionfracturefracture_rootfusiongeminationhypoplasiaimpactionluxationmacrodontiamicrodontiaopen_contactotherperiapical_lesionperiodontalroot_resorption_externalroot_resorption_internalwatchcreated_atstring (date-time)requiredRecord creation timestamp.
date_identifiedstring (date)requiredDate the condition was identified.
date_resolvedstring (date)diagnostic_codeobjectLightweight reference to a related entity — exposes UUID and optional name.
idstring (uuid)requiredUUID of the patient condition.
notestringrequiredClinical note describing the condition.
providerobjectLightweight reference to a related entity — exposes UUID and optional name.
severityenummildmoderateseverestatusenumrequiredCondition monitoring status. One of: active, resolved, monitoring.
activemonitoringresolvedsurfacestringtooth_numberstringupdated_atstring (date-time)requiredRecord last-update timestamp.
versionintegerrequiredCurrent version for optimistic concurrency.
detailobject[]curl -X PATCH "https://api.example.com/api/v1/{org_id}/clinical/conditions/{condition_uuid}" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"base_version": 1,
"note": "string",
"severity": "string",
"status": "string",
"surface": "string"
}'curl -X PATCH "https://api.example.com/api/v1/{org_id}/clinical/conditions/{condition_uuid}" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"base_version": 1,
"note": "string",
"severity": "string",
"status": "string",
"surface": "string"
}'/api/v1/{org_id}/clinical/conditions/{condition_uuid}Delete patient condition
Soft-delete a patient condition. Raises 404 if not found, 409 if base_version is stale.
Parameters
Path Parameters
condition_uuidstringrequiredorg_idstringrequiredQuery Parameters
base_versionintegerrequiredCurrent version for optimistic concurrency — rejected with 409 if stale.
Responses
detailobject[]curl -X DELETE "https://api.example.com/api/v1/{org_id}/clinical/conditions/{condition_uuid}" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json"curl -X DELETE "https://api.example.com/api/v1/{org_id}/clinical/conditions/{condition_uuid}" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json"Spans
7 endpoints
/api/v1/{org_id}/clinical/patients/{patient_uuid}/spansList procedure spans
List procedure spans for a patient with optional status filter. Raises 404 if the patient is not found.
Parameters
Path Parameters
patient_uuidstringrequiredorg_idstringrequiredQuery Parameters
statusstringFilter by span status (e.g., active, archived).
pageintegerPage number (1-based).
Default: 1
page_sizeintegerNumber of items per page.
Default: 50
Responses
itemsobject[]requiredpageintegerrequiredpage_sizeintegerrequiredtotalintegerrequireddetailobject[]curl -X GET "https://api.example.com/api/v1/{org_id}/clinical/patients/{patient_uuid}/spans" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json"curl -X GET "https://api.example.com/api/v1/{org_id}/clinical/patients/{patient_uuid}/spans" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json"/api/v1/{org_id}/clinical/patients/{patient_uuid}/spans/{span_uuid}Get procedure span
Retrieve a single procedure span by UUID. Raises 404 if not found or the span does not belong to the specified patient.
Parameters
Path Parameters
patient_uuidstringrequiredspan_uuidstringrequiredorg_idstringrequiredResponses
created_atstring (date-time)requiredRecord creation timestamp.
deleted_atstring (date-time)idstring (uuid)requiredUUID of the procedure span.
membersobject[]requiredOrdered list of procedures that make up this span.
notestringrequiredClinical note for this span.
span_definitionobjectLightweight reference to a related entity — exposes UUID and optional name.
statusstringrequiredCurrent status of the span (e.g., 'active', 'completed').
updated_atstring (date-time)requiredRecord last-update timestamp.
versionintegerrequiredCurrent version for optimistic concurrency.
detailobject[]curl -X GET "https://api.example.com/api/v1/{org_id}/clinical/patients/{patient_uuid}/spans/{span_uuid}" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json"curl -X GET "https://api.example.com/api/v1/{org_id}/clinical/patients/{patient_uuid}/spans/{span_uuid}" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json"/api/v1/{org_id}/clinical/patients/{patient_uuid}/spans/{span_uuid}/membersList span members
List all members of a procedure span. Returns the span's member list with charted procedure references, roles, and position order. Raises 404 if the patient or span is not found, or if the span does not belong to the specified patient.
Parameters
Path Parameters
patient_uuidstringrequiredspan_uuidstringrequiredorg_idstringrequiredResponses
detailobject[]curl -X GET "https://api.example.com/api/v1/{org_id}/clinical/patients/{patient_uuid}/spans/{span_uuid}/members" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json"curl -X GET "https://api.example.com/api/v1/{org_id}/clinical/patients/{patient_uuid}/spans/{span_uuid}/members" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json"/api/v1/{org_id}/clinical/patients/{patient_uuid}/spansCreate procedure span
Create a new procedure span linking multiple charted procedures. Raises 404 if the patient, span definition, or any member charted procedure is not found. Raises 422 if validation fails.
Parameters
Path Parameters
patient_uuidstringrequiredorg_idstringrequiredRequest Body
membersobject[]requiredList of charted procedures to include in the span. At least one required.
notestringspan_definition_uuidstring (uuid)requiredUUID of the span definition that governs this span.
Responses
created_atstring (date-time)requiredRecord creation timestamp.
deleted_atstring (date-time)idstring (uuid)requiredUUID of the procedure span.
membersobject[]requiredOrdered list of procedures that make up this span.
notestringrequiredClinical note for this span.
span_definitionobjectLightweight reference to a related entity — exposes UUID and optional name.
statusstringrequiredCurrent status of the span (e.g., 'active', 'completed').
updated_atstring (date-time)requiredRecord last-update timestamp.
versionintegerrequiredCurrent version for optimistic concurrency.
detailobject[]curl -X POST "https://api.example.com/api/v1/{org_id}/clinical/patients/{patient_uuid}/spans" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"members": [],
"note": "string",
"span_definition_uuid": "00000000-0000-0000-0000-000000000000"
}'curl -X POST "https://api.example.com/api/v1/{org_id}/clinical/patients/{patient_uuid}/spans" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"members": [],
"note": "string",
"span_definition_uuid": "00000000-0000-0000-0000-000000000000"
}'/api/v1/{org_id}/clinical/patients/{patient_uuid}/spans/{span_uuid}Update procedure span
Partially update a procedure span. Raises 404 if not found or the span does not belong to the specified patient. Raises 409 if base_version is stale. Raises 422 if validation fails.
Parameters
Path Parameters
patient_uuidstringrequiredspan_uuidstringrequiredorg_idstringrequiredRequest Body
base_versionintegerrequiredCurrent version for optimistic concurrency — rejected with 409 if stale.
notestringstatusstringResponses
created_atstring (date-time)requiredRecord creation timestamp.
deleted_atstring (date-time)idstring (uuid)requiredUUID of the procedure span.
membersobject[]requiredOrdered list of procedures that make up this span.
notestringrequiredClinical note for this span.
span_definitionobjectLightweight reference to a related entity — exposes UUID and optional name.
statusstringrequiredCurrent status of the span (e.g., 'active', 'completed').
updated_atstring (date-time)requiredRecord last-update timestamp.
versionintegerrequiredCurrent version for optimistic concurrency.
detailobject[]curl -X PATCH "https://api.example.com/api/v1/{org_id}/clinical/patients/{patient_uuid}/spans/{span_uuid}" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"base_version": 1,
"note": "string",
"status": "string"
}'curl -X PATCH "https://api.example.com/api/v1/{org_id}/clinical/patients/{patient_uuid}/spans/{span_uuid}" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"base_version": 1,
"note": "string",
"status": "string"
}'/api/v1/{org_id}/clinical/patients/{patient_uuid}/spans/{span_uuid}Delete procedure span
Soft-delete a procedure span. Raises 404 if not found or span does not belong to the patient, 409 if base_version is stale.
Parameters
Path Parameters
patient_uuidstringrequiredspan_uuidstringrequiredorg_idstringrequiredQuery Parameters
base_versionintegerrequiredCurrent version for optimistic concurrency — rejected with 409 if stale.
Responses
detailobject[]curl -X DELETE "https://api.example.com/api/v1/{org_id}/clinical/patients/{patient_uuid}/spans/{span_uuid}" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json"curl -X DELETE "https://api.example.com/api/v1/{org_id}/clinical/patients/{patient_uuid}/spans/{span_uuid}" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json"/api/v1/{org_id}/clinical/patients/{patient_uuid}/spans/{span_uuid}/cascadeCascade delete span with procedures
Cascade-delete a span: soft-delete the span, hard-delete member rows, and soft-delete all non-completed member procedures. Completed and complete_referred procedures are preserved as standalone records. Raises 404 if not found, 409 if base_version is stale.
Parameters
Path Parameters
patient_uuidstringrequiredspan_uuidstringrequiredorg_idstringrequiredQuery Parameters
base_versionintegerrequiredCurrent version for optimistic concurrency — rejected with 409 if stale.
Responses
deleted_procedure_uuidsstring (uuid)[]requiredProcedures that were soft-deleted.
preserved_procedure_uuidsstring (uuid)[]requiredCompleted procedures that were preserved as standalone records.
span_uuidstring (uuid)requiredUUID of the deleted span.
detailobject[]curl -X DELETE "https://api.example.com/api/v1/{org_id}/clinical/patients/{patient_uuid}/spans/{span_uuid}/cascade" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json"curl -X DELETE "https://api.example.com/api/v1/{org_id}/clinical/patients/{patient_uuid}/spans/{span_uuid}/cascade" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json"Estimation
7 endpoints
/api/v1/{org_id}/clinical/estimates/{estimate_uuid}/detailGet estimate breakdown detail
Get full estimation breakdown for a single procedure estimate. Returns the fee waterfall, benefit match details, coverage calculation steps, tracker state, and insurance plan context. If the estimate was created before the detail feature was added, returns has_detail=false. Raises 404 if estimate not found.
Parameters
Path Parameters
estimate_uuidstringrequiredorg_idstringrequiredResponses
benefit_matchobjectDetails about the benefit row that matched this procedure.
coverageobjectStep-by-step coverage calculation.
estimate_uuidstring (uuid)requiredUUID of the procedure estimate.
exclusion_reasonstringfee_sourceobjectAudit trail for how a fee was resolved.
has_detailbooleanrequiredTrue if calculation_detail is available. False for legacy estimates.
is_excludedbooleanTrue if the procedure is excluded from coverage.
plan_contextobjectInsurance plan context for the estimate detail sidebar.
substitution_codestringtrackerobjectDeductible and annual max tracker state before/after this procedure.
warningsstring[]Pipeline warnings.
waterfallobject[]Ordered fee/coverage waterfall steps.
detailobject[]curl -X GET "https://api.example.com/api/v1/{org_id}/clinical/estimates/{estimate_uuid}/detail" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json"curl -X GET "https://api.example.com/api/v1/{org_id}/clinical/estimates/{estimate_uuid}/detail" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json"/api/v1/{org_id}/clinical/patients/{patient_uuid}/treatment-plans/{plan_uuid}/estimatesList treatment plan estimates
Get all estimates for a treatment plan with effective values. Returns estimates including COALESCE-resolved override values and staleness status for each estimate. Raises 404 if patient or treatment plan not found, or if the plan does not belong to the patient.
Parameters
Path Parameters
patient_uuidstringrequiredplan_uuidstringrequiredorg_idstringrequiredResponses
detailobject[]curl -X GET "https://api.example.com/api/v1/{org_id}/clinical/patients/{patient_uuid}/treatment-plans/{plan_uuid}/estimates" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json"curl -X GET "https://api.example.com/api/v1/{org_id}/clinical/patients/{patient_uuid}/treatment-plans/{plan_uuid}/estimates" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json"/api/v1/{org_id}/clinical/patients/{patient_uuid}/treatment-plans/{plan_uuid}/stalenessCheck estimate staleness
Check which estimates in a treatment plan are stale. Returns a report showing which estimates need re-computation based on changes to fees, benefits, or plan configuration. Raises 404 if patient or treatment plan not found, or if the plan does not belong to the patient.
Parameters
Path Parameters
patient_uuidstringrequiredplan_uuidstringrequiredorg_idstringrequiredResponses
estimatesobject[]requiredPer-estimate staleness details.
fresh_countintegerrequiredEstimates that are up-to-date.
stale_countintegerrequiredEstimates needing re-computation.
total_estimatesintegerrequiredTotal estimate rows.
treatment_plan_uuidstring (uuid)requiredUUID of the treatment plan.
detailobject[]curl -X GET "https://api.example.com/api/v1/{org_id}/clinical/patients/{patient_uuid}/treatment-plans/{plan_uuid}/staleness" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json"curl -X GET "https://api.example.com/api/v1/{org_id}/clinical/patients/{patient_uuid}/treatment-plans/{plan_uuid}/staleness" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json"/api/v1/{org_id}/clinical/patients/{patient_uuid}/treatment-plans/{plan_uuid}/estimateEstimate treatment plan
Run insurance estimation for all procedures in a treatment plan. Estimates each procedure against each of the patient's active insurance plans in COB order. Creates or updates ProcedureEstimate rows. Raises 404 if patient, treatment plan, or patient plans not found. Raises 422 if patient has no active insurance plans.
Parameters
Path Parameters
patient_uuidstringrequiredplan_uuidstringrequiredorg_idstringrequiredResponses
estimate_countintegerrequiredTotal number of estimates.
estimatesobject[]requiredIndividual estimate results.
stale_countintegerrequiredNumber of stale estimates.
total_fee_billedstringrequiredSum of all fee_billed amounts.
total_insurance_estimatestringrequiredSum of all effective insurance estimates.
total_patient_estimatestringrequiredSum of all patient estimates.
total_write_offstringrequiredSum of all effective write-off amounts.
treatment_plan_uuidstring (uuid)requiredUUID of the treatment plan that was estimated.
detailobject[]curl -X POST "https://api.example.com/api/v1/{org_id}/clinical/patients/{patient_uuid}/treatment-plans/{plan_uuid}/estimate" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json"curl -X POST "https://api.example.com/api/v1/{org_id}/clinical/patients/{patient_uuid}/treatment-plans/{plan_uuid}/estimate" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json"/api/v1/{org_id}/clinical/patients/{patient_uuid}/treatment-plans/{plan_uuid}/re-estimateRe-estimate treatment plan
Re-estimate stale estimates in a treatment plan. By default only re-estimates stale estimates (where inputs_hash differs). Set force=true to re-estimate all regardless of staleness. Raises 404 if patient or treatment plan not found.
Parameters
Path Parameters
patient_uuidstringrequiredplan_uuidstringrequiredorg_idstringrequiredRequest Body
forcebooleanIf true, re-estimate all procedures regardless of staleness.
Responses
estimate_countintegerrequiredTotal number of estimates.
estimatesobject[]requiredIndividual estimate results.
stale_countintegerrequiredNumber of stale estimates.
total_fee_billedstringrequiredSum of all fee_billed amounts.
total_insurance_estimatestringrequiredSum of all effective insurance estimates.
total_patient_estimatestringrequiredSum of all patient estimates.
total_write_offstringrequiredSum of all effective write-off amounts.
treatment_plan_uuidstring (uuid)requiredUUID of the treatment plan that was estimated.
detailobject[]curl -X POST "https://api.example.com/api/v1/{org_id}/clinical/patients/{patient_uuid}/treatment-plans/{plan_uuid}/re-estimate" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"force": false
}'curl -X POST "https://api.example.com/api/v1/{org_id}/clinical/patients/{patient_uuid}/treatment-plans/{plan_uuid}/re-estimate" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"force": false
}'/api/v1/{org_id}/clinical/estimates/{estimate_uuid}/overridesSet estimate overrides
Set override values on a procedure estimate. Override values take precedence over calculated values via the COALESCE pattern: effective_value = COALESCE(override, calculated). Only fields present in the request body are updated. Set a field to null to clear that override. Raises 404 if estimate not found. Raises 409 if base_version doesn't match (optimistic concurrency).
Parameters
Path Parameters
estimate_uuidstringrequiredorg_idstringrequiredRequest Body
allowed_overridenumberbase_versionintegerrequiredCurrent version for optimistic concurrency — rejected with 409 if stale.
copay_overridenumberdeductible_overridenumberinsurance_estimate_overridenumberpercentage_overridenumberwrite_off_overridenumberResponses
allowed_feestringbase_estimatestringrequiredBase estimate before deductible and coverage calculations in dollars.
calculated_atstring (date-time)charted_procedure_uuidstring (uuid)requiredUUID of the charted procedure this estimate belongs to.
code_sentstringcopay_amountstringrequiredFixed copay amount in dollars.
coverage_percentstringrequiredInsurance coverage percentage for this procedure (0–100).
created_atstring (date-time)requiredRecord creation timestamp.
date_estimatedstring (date-time)requiredTimestamp when this estimate was calculated.
deductible_appliedstringrequiredDeductible amount applied to this procedure in dollars.
effective_allowed_feestringeffective_copaystringrequiredCOALESCE(copay_override, copay_amount).
effective_coverage_percentstringrequiredCOALESCE(percentage_override, coverage_percent).
effective_deductiblestringrequiredCOALESCE(deductible_override, deductible_applied).
effective_insurance_estimatestringrequiredCOALESCE(insurance_estimate_override, insurance_estimate).
effective_write_offstringrequiredCOALESCE(write_off_override, write_off_estimate).
estimate_notestringrequiredNote or explanation associated with this estimate.
estimate_statusstringrequiredAuthorization status of the estimate. One of: estimate, preauth, preauth_received.
exclusion_reasonstringfee_billedstringrequiredFee amount billed to insurance in dollars.
has_allowed_overridebooleanTrue if allowed_override is set.
has_copay_overridebooleanTrue if copay_override is set.
has_deductible_overridebooleanTrue if deductible_override is set.
has_insurance_estimate_overridebooleanTrue if insurance_estimate_override is set.
has_percentage_overridebooleanTrue if percentage_override is set.
has_write_off_overridebooleanTrue if write_off_override is set.
idstring (uuid)requiredUUID of the procedure estimate.
inputs_hashstringinsurance_estimatestringrequiredEstimated insurance payment in dollars.
is_excludedbooleanrequiredWhether this estimate is excluded from benefit calculations.
is_stalebooleanrequiredTrue if the estimate needs re-computation.
ordinalintegerrequiredOrdinal position when multiple estimates exist for the same procedure (e.g., primary vs. secondary insurance).
paid_other_insurancestringrequiredAmount paid by another insurance plan (coordination of benefits) in dollars.
patient_estimatestringrequiredEstimated patient responsibility in dollars.
ppo_feestringpreauth_amountstringpreauth_datestring (date)preauth_numberstringupdated_atstring (date-time)requiredRecord last-update timestamp.
versionintegerrequiredCurrent version for optimistic concurrency.
write_off_estimatestringrequiredEstimated contractual write-off amount in dollars.
detailobject[]curl -X PATCH "https://api.example.com/api/v1/{org_id}/clinical/estimates/{estimate_uuid}/overrides" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"allowed_override": null,
"base_version": 1,
"copay_override": null,
"deductible_override": null,
"insurance_estimate_override": null
}'curl -X PATCH "https://api.example.com/api/v1/{org_id}/clinical/estimates/{estimate_uuid}/overrides" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"allowed_override": null,
"base_version": 1,
"copay_override": null,
"deductible_override": null,
"insurance_estimate_override": null
}'/api/v1/{org_id}/clinical/patients/{patient_uuid}/procedures/{procedure_uuid}/estimates/{estimate_uuid}Delete procedure estimate
Soft-delete a procedure estimate. Archives the estimate, removing it from active calculations. Raises 404 if the patient, procedure, or estimate is not found. Raises 409 if base_version is stale.
Parameters
Path Parameters
patient_uuidstringrequiredprocedure_uuidstringrequiredestimate_uuidstringrequiredorg_idstringrequiredQuery Parameters
base_versionintegerrequiredCurrent version for optimistic concurrency — rejected with 409 if stale.
Responses
detailobject[]curl -X DELETE "https://api.example.com/api/v1/{org_id}/clinical/patients/{patient_uuid}/procedures/{procedure_uuid}/estimates/{estimate_uuid}" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json"curl -X DELETE "https://api.example.com/api/v1/{org_id}/clinical/patients/{patient_uuid}/procedures/{procedure_uuid}/estimates/{estimate_uuid}" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json"Timeline
2 endpoints
/api/v1/{org_id}/clinical/patients/{patient_uuid}/chart/at-dateGet historical chart snapshot
Return a coherent snapshot of the full chart as it existed on a given date. Includes: - Tooth statuses: most recent effective record on or before snapshot_date per tooth - Charted procedures: all procedures with proc_date on or before snapshot_date - Patient conditions: conditions identified on or before snapshot_date that were not yet resolved NOTE: Procedure statuses reflect current values, not historical (scoped limitation §6.2). Raises 404 if the patient is not found. Raises 422 if the date parameter is missing or invalid.
Parameters
Path Parameters
patient_uuidstringrequiredorg_idstringrequiredQuery Parameters
datestringrequiredTarget date for the chart snapshot (YYYY-MM-DD).
Responses
charted_proceduresobject[]requiredProcedures charted on or before snapshot_date. NOTE: Procedure statuses reflect current values, not historical (scoped limitation §6.2).
patient_conditionsobject[]requiredConditions active on snapshot_date — identified on or before snapshot_date and not yet resolved at that date.
snapshot_datestring (date)requiredThe date for which this snapshot reflects chart state.
tooth_statusesobject[]requiredTooth statuses as they were on snapshot_date. Uses the most recent effective_date on or before snapshot_date per tooth.
detailobject[]curl -X GET "https://api.example.com/api/v1/{org_id}/clinical/patients/{patient_uuid}/chart/at-date" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json"curl -X GET "https://api.example.com/api/v1/{org_id}/clinical/patients/{patient_uuid}/chart/at-date" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json"/api/v1/{org_id}/clinical/patients/{patient_uuid}/chart/timelineGet chart timeline events
Return a timeline of all dates with chart activity for a patient. Merges distinct dates from tooth status changes, charted procedures, and patient condition identifications. Each entry includes counts per data source for that date. Raises 404 if the patient is not found.
Parameters
Path Parameters
patient_uuidstringrequiredorg_idstringrequiredResponses
eventsobject[]requiredTimeline entries sorted chronologically, each representing a date with at least one chart change.
totalintegerrequiredTotal number of distinct dates with chart activity.
detailobject[]curl -X GET "https://api.example.com/api/v1/{org_id}/clinical/patients/{patient_uuid}/chart/timeline" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json"curl -X GET "https://api.example.com/api/v1/{org_id}/clinical/patients/{patient_uuid}/chart/timeline" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json"