Dental PMS

Patients

74 endpoints

Patients

59 endpoints

get/api/v1/{org_id}/patients

List patients

List patients with pagination and optional filters. Returns a paginated list of patients with full detail including resolved provider, location, and billing references. Supports filtering by patient status, free-text search across name, phone, email, chart number, and DOB fields, as well as provider, location, DOB range, and tag filters. Error conditions: - 404: Referenced provider, location, or tag definition not found.

Parameters

Path Parameters
org_idstringrequired
Query Parameters
pageinteger

Page number (1-based).

Default: 1

page_sizeinteger

Number of records per page.

Default: 50

sort_by"chart_number" | "created_at" | "date_of_birth" | "first_name" | "last_name" | "status"

Sort field. One of: last_name, first_name, date_of_birth, chart_number, created_at, status.

chart_numbercreated_atdate_of_birthfirst_namelast_namestatus

Default: "last_name"

sort_dir"asc" | "desc"

Sort direction. One of: asc, desc.

ascdesc

Default: "asc"

statusstring

Filter by patient lifecycle status (e.g. 'active', 'inactive').

searchstring

Free-text search across name, phone, email, chart number, and DOB fields.

primary_provider_uuidstring

Filter by primary provider UUID.

location_uuidstring

Filter by location UUID.

dob_fromstring

Filter patients born on or after this date (YYYY-MM-DD).

dob_tostring

Filter patients born on or before this date (YYYY-MM-DD).

tag_definition_uuidstring

Filter patients with this tag assigned.

Responses

200Successful Response
itemsobject[]required

List of patient records matching the query.

pageintegerrequired

Current page number (1-based).

page_sizeintegerrequired

Number of records per page.

totalintegerrequired

Total number of patients matching the query.

422Validation Error
detailobject[]
curl
curl -X GET "https://api.example.com/api/v1/{org_id}/patients" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json"
get/api/v1/{org_id}/patients/{patient_uuid}

Get patient by ID

Retrieve a single patient by UUID. Staff callers receive the full ``PatientOut`` shape with all resolved references (providers, location, fee schedule, guarantor, billing type, employer). Error conditions: - 404: Patient not found.

Parameters

Path Parameters
patient_uuidstringrequired
org_idstringrequired

Responses

200Successful Response
address_line1string
address_line2string
address_notestring
allergy_review_statusenum

Allergy review status. One of: not_reviewed, nkda, reviewed. 'not_reviewed' means allergies have not been assessed.

nkdanot_reviewedreviewed
appointment_module_notestring
ask_to_arrive_early_minsinteger

Number of minutes to ask the patient to arrive before their appointment (0-120).

balance_0_30string
balance_31_60string
balance_61_90string
balance_over_90string
balance_totalstring
billing_cycle_dayinteger
billing_typeobject

Lightweight reference to a related entity — exposes UUID and optional name.

chart_numberstring
citystring
consent_flagsinteger

Bitmask of consent flags (HIPAA, treatment consent, etc.).

countrystring
created_atstring (date-time)required

Timestamp when the patient record was created.

date_first_visitstring (date)
date_of_birthstring (date)
date_time_deceasedstring (date-time)
deleted_atstring (date-time)
emailstring
emergency_contact_namestring
emergency_contact_phonestring
employerobject

Lightweight reference to a related entity — exposes UUID and optional name.

estimated_balancestring
fee_scheduleobject

Lightweight reference to a related entity — exposes UUID and optional name.

first_namestringrequired

Patient's legal first name.

genderenum

Administrative gender for clinical records. One of: male, female, non_binary, other, unknown, prefer_not_to_say.

femalemalenon_binaryotherprefer_not_to_sayunknown
home_phonestring
idstring (uuid)required

Unique identifier of the patient.

insurance_estimatestring
last_namestringrequired

Patient's legal last name (surname).

latest_vitals_datestring (date)
locationobject

Lightweight reference to a related entity — exposes UUID and optional name.

marital_statusenum
divorceddomestic_partnermarriedotherseparatedsinglewidowed
medicaid_idstring
medical_summarystring
medical_urgent_notestring
middle_namestring
mobile_phonestring
payment_plan_duestring
postal_codestring
potential_duplicatesobject[]
preferred_confirmation_methodenum
emailmailnonephonetext
preferred_contact_methodenum
emailmailnonephonetext
preferred_languagestring
preferred_namestring
premedication_requiredboolean

Whether the patient requires antibiotic premedication before dental procedures.

primary_providerobject

Lightweight reference to a related entity — exposes UUID and optional name.

pronounenum
he_himnot_specifiedothershe_herthey_them
receives_emailboolean

Whether the patient has opted in to receive email communications.

receives_smsboolean

Whether the patient has opted in to receive SMS messages.

responsible_partyobject

Lightweight reference to a related entity — exposes UUID and optional name.

salutationstring
scheduling_restrictedboolean

Whether this patient has a scheduling hold (outstanding balance, missing forms, etc.). Derived from patient status and balance: true when status is 'inactive' or balance exceeds $500.

secondary_providerobject

Lightweight reference to a related entity — exposes UUID and optional name.

smoking_snomedstring
social_security_numberstring
statestring
statusenum

Patient lifecycle status. One of: active, inactive, prospective, deceased, archived. Defaults to 'active'.

activearchiveddeceasedinactiveprospective
titlestring
treatment_notesstring
updated_atstring (date-time)required

Timestamp when the patient record was last updated.

versionintegerrequired

Optimistic concurrency version number.

work_phonestring
422Validation Error
detailobject[]
curl
curl -X GET "https://api.example.com/api/v1/{org_id}/patients/{patient_uuid}" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json"
get/api/v1/{org_id}/patients/{patient_uuid}/alerts

List patient alerts

List alerts for a patient. Returns paginated alert records with resolved alert definition references. Supports filtering by alert status. When ``include_family=true``, also returns family-scoped alerts from family members sharing the same guarantor. Staff callers receive the full ``PatientAlertListOut`` shape. Error conditions: - 404: Patient not found.

Parameters

Path Parameters
patient_uuidstringrequired
org_idstringrequired
Query Parameters
pageinteger

Page number (1-based).

Default: 1

page_sizeinteger

Number of records per page.

Default: 50

statusstring

Filter by alert status (e.g. 'active', 'disabled', 'archived').

include_familyboolean

Include family-scoped alerts from family members sharing the same guarantor.

Default: false

Responses

200Successful Response
itemsobject[]required

List of patient alert records.

pageintegerrequired

Current page number (1-based).

page_sizeintegerrequired

Number of records per page.

totalintegerrequired

Total number of records matching the query.

422Validation Error
detailobject[]
curl
curl -X GET "https://api.example.com/api/v1/{org_id}/patients/{patient_uuid}/alerts" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json"
get/api/v1/{org_id}/patients/{patient_uuid}/allergies

List patient allergies

List all allergies recorded for a patient. Returns paginated allergy records with resolved allergy definition references. Filterable by active status. Error conditions: - 404: Patient not found.

Parameters

Path Parameters
patient_uuidstringrequired
org_idstringrequired
Query Parameters
pageinteger

Page number (1-based).

Default: 1

page_sizeinteger

Number of records per page.

Default: 50

is_activeboolean

Filter by active status. True=active only, False=inactive only, None=all.

Responses

200Successful Response
itemsobject[]required

List of patient allergy records.

pageintegerrequired

Current page number (1-based).

page_sizeintegerrequired

Number of records per page.

totalintegerrequired

Total number of records matching the query.

422Validation Error
detailobject[]
curl
curl -X GET "https://api.example.com/api/v1/{org_id}/patients/{patient_uuid}/allergies" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json"
get/api/v1/{org_id}/patients/{patient_uuid}/communication-logs

List communication logs

List communication log entries for a patient. Returns paginated log entries ordered by communication datetime. Supports date range filtering. Entries are append-only and include manual, automated, and integration-sourced communications. Staff callers receive the full ``PatientCommunicationLogListOut`` shape (with resolved ``created_by`` user references). Error conditions: - 404: Patient not found.

Parameters

Path Parameters
patient_uuidstringrequired
org_idstringrequired
Query Parameters
pageinteger

Page number (1-based).

Default: 1

page_sizeinteger

Number of records per page.

Default: 50

date_fromstring

Filter to communications on or after this datetime.

date_tostring

Filter to communications on or before this datetime.

modestring

Filter by communication mode. One of: phone, email, mail, in_person, text, fax.

directionstring

Filter by direction. One of: sent, received, neither.

communication_sourcestring

Filter by source. One of: user, automated, integration.

qstring

Free-text search through note content (case-insensitive substring match).

Responses

200Successful Response
itemsobject[]required

List of patient communication log entries.

pageintegerrequired

Current page number (1-based).

page_sizeintegerrequired

Number of records per page.

totalintegerrequired

Total number of records matching the query.

422Validation Error
detailobject[]
curl
curl -X GET "https://api.example.com/api/v1/{org_id}/patients/{patient_uuid}/communication-logs" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json"
get/api/v1/{org_id}/patients/{patient_uuid}/dependents

List dependents

List patients this person is guardian of. Returns relationships where this patient is the legal guardian (is_guardian=true) of other patients. Error conditions: - 404: Patient not found.

Parameters

Path Parameters
patient_uuidstringrequired
org_idstringrequired

Responses

200Successful Response
422Validation Error
detailobject[]
curl
curl -X GET "https://api.example.com/api/v1/{org_id}/patients/{patient_uuid}/dependents" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json"
get/api/v1/{org_id}/patients/{patient_uuid}/diseases

List patient diseases/problems

List all diseases and problems recorded for a patient. Returns paginated records with resolved disease definition references. Filterable by problem status. Error conditions: - 404: Patient not found.

Parameters

Path Parameters
patient_uuidstringrequired
org_idstringrequired
Query Parameters
pageinteger

Page number (1-based).

Default: 1

page_sizeinteger

Number of records per page.

Default: 50

problem_statusstring

Filter by problem status. One of: active, resolved, inactive.

Responses

200Successful Response
itemsobject[]required

List of patient disease/problem records.

pageintegerrequired

Current page number (1-based).

page_sizeintegerrequired

Number of records per page.

totalintegerrequired

Total number of records matching the query.

422Validation Error
detailobject[]
curl
curl -X GET "https://api.example.com/api/v1/{org_id}/patients/{patient_uuid}/diseases" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json"
get/api/v1/{org_id}/patients/{patient_uuid}/family

List family members

List family members sharing the same guarantor. Returns all patients who share the same guarantor as the specified patient. This provides a financial family view based on billing responsibility. Error conditions: - 404: Patient not found.

Parameters

Path Parameters
patient_uuidstringrequired
org_idstringrequired

Responses

200Successful Response
422Validation Error
detailobject[]
curl
curl -X GET "https://api.example.com/api/v1/{org_id}/patients/{patient_uuid}/family" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json"
get/api/v1/{org_id}/patients/{patient_uuid}/field-values

List custom field values

List custom field values for a patient. Returns paginated values for all custom fields that have been set on the patient. Fields without values are not included. Error conditions: - 404: Patient not found.

Parameters

Path Parameters
patient_uuidstringrequired
org_idstringrequired
Query Parameters
pageinteger

Page number (1-based).

Default: 1

page_sizeinteger

Number of records per page.

Default: 100

Responses

200Successful Response
itemsobject[]required

List of patient custom field values.

pageintegerrequired

Current page number (1-based).

page_sizeintegerrequired

Number of records per page.

totalintegerrequired

Total number of records matching the query.

422Validation Error
detailobject[]
curl
curl -X GET "https://api.example.com/api/v1/{org_id}/patients/{patient_uuid}/field-values" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json"
get/api/v1/{org_id}/patients/{patient_uuid}/field-values/form

Get field form view

Get all custom field definitions with current values for a patient. Returns every active field definition merged with the patient's current value (or null if unset). Designed for rendering a complete custom fields form without a separate definitions fetch. Error conditions: - 404: Patient not found.

Parameters

Path Parameters
patient_uuidstringrequired
org_idstringrequired

Responses

200Successful Response
itemsobject[]required

All active field definitions with values.

422Validation Error
detailobject[]
curl
curl -X GET "https://api.example.com/api/v1/{org_id}/patients/{patient_uuid}/field-values/form" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json"
get/api/v1/{org_id}/patients/{patient_uuid}/guardians

List guardians

List guardian relationships for a patient. Returns relationships where another patient is the legal guardian of this patient (is_guardian=true). Error conditions: - 404: Patient not found.

Parameters

Path Parameters
patient_uuidstringrequired
org_idstringrequired

Responses

200Successful Response
422Validation Error
detailobject[]
curl
curl -X GET "https://api.example.com/api/v1/{org_id}/patients/{patient_uuid}/guardians" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json"
get/api/v1/{org_id}/patients/{patient_uuid}/medical-summary

Get medical summary

Get aggregated medical summary for a patient. Combines all medical sub-resources into a single response: - Active allergies with reaction details - Current and past medications - Active diseases/problems only (problem_status='active') - Most recent vital signs reading - Social history entries (one per category) - Active patient alerts with urgency and scope - Urgent medical note and premedication flag Designed for clinical chart header display where a quick overview of the patient's medical profile is needed. Error conditions: - 404: Patient not found.

Parameters

Path Parameters
patient_uuidstringrequired
org_idstringrequired

Responses

200Successful Response
active_problemsobject[]required

Active disease/problem records only (problem_status='active').

alertsobject[]

Active patient alerts (non-archived). Includes urgency flag and scope.

allergiesobject[]required

All allergy records for the patient.

allergy_review_statusenumrequired

Allergy review status. One of: not_reviewed, nkda, reviewed.

nkdanot_reviewedreviewed
current_medicationsobject[]required

Medications the patient is currently taking (status='active').

latest_vitalsobject

Most recent vital signs reading within the patient medical summary.

medical_urgent_notestring
past_medicationsobject[]required

Medications the patient has stopped or discontinued.

patientobjectrequired

Lightweight reference to a related entity — exposes UUID and optional name.

premedication_requiredboolean

Whether antibiotic premedication is needed before procedures.

social_historyobject[]required

All social history entries (one per category).

422Validation Error
detailobject[]
curl
curl -X GET "https://api.example.com/api/v1/{org_id}/patients/{patient_uuid}/medical-summary" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json"
get/api/v1/{org_id}/patients/{patient_uuid}/medications

List patient medications

List all medications recorded for a patient. Returns paginated medication records with resolved definition and provider references. Filterable by active status (status='active'). Error conditions: - 404: Patient not found.

Parameters

Path Parameters
patient_uuidstringrequired
org_idstringrequired
Query Parameters
pageinteger

Page number (1-based).

Default: 1

page_sizeinteger

Number of records per page.

Default: 50

is_activeboolean

Filter by medication status. True=status is 'active', False=non-active statuses, None=all.

Responses

200Successful Response
itemsobject[]required

List of patient medication records.

pageintegerrequired

Current page number (1-based).

page_sizeintegerrequired

Number of records per page.

totalintegerrequired

Total number of records matching the query.

422Validation Error
detailobject[]
curl
curl -X GET "https://api.example.com/api/v1/{org_id}/patients/{patient_uuid}/medications" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json"
get/api/v1/{org_id}/patients/{patient_uuid}/referral-attributions

List patient attributions

List referral attributions for a patient with pagination. Returns attribution records showing how this patient was acquired. Each record links to exactly one source: a marketing referral source, referral partner, in-house provider, or referring patient. Error conditions: - 404: Patient not found.

Parameters

Path Parameters
patient_uuidstringrequired
org_idstringrequired
Query Parameters
pageinteger

Page number (1-based).

Default: 1

page_sizeinteger

Number of records per page.

Default: 50

Responses

200Successful Response
itemsobject[]required

List of referral attributions for the patient.

pageintegerrequired

Current page number (1-based).

page_sizeintegerrequired

Number of records per page.

totalintegerrequired

Total number of attributions.

422Validation Error
detailobject[]
curl
curl -X GET "https://api.example.com/api/v1/{org_id}/patients/{patient_uuid}/referral-attributions" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json"
get/api/v1/{org_id}/patients/{patient_uuid}/relationships

List patient relationships

List all relationships for a patient. Returns relationships where this patient is the source (from_patient). Includes both family and data relationship types with resolved patient name references. Error conditions: - 404: Patient not found.

Parameters

Path Parameters
patient_uuidstringrequired
org_idstringrequired
Query Parameters
pageinteger

Page number (1-based).

Default: 1

page_sizeinteger

Number of records per page.

Default: 50

Responses

200Successful Response
itemsobject[]required

List of patient relationship records.

pageintegerrequired

Current page number (1-based).

page_sizeintegerrequired

Number of records per page.

totalintegerrequired

Total number of records matching the query.

422Validation Error
detailobject[]
curl
curl -X GET "https://api.example.com/api/v1/{org_id}/patients/{patient_uuid}/relationships" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json"
get/api/v1/{org_id}/patients/{patient_uuid}/social-history

List social history

List all social history entries for a patient. Returns one entry per tracked category (tobacco, alcohol, substance, recreational_drugs). Categories with no entry are not included. Error conditions: - 404: Patient not found.

Parameters

Path Parameters
patient_uuidstringrequired
org_idstringrequired

Responses

200Successful Response
itemsobject[]required

List of social history entries for the patient (one per category).

422Validation Error
detailobject[]
curl
curl -X GET "https://api.example.com/api/v1/{org_id}/patients/{patient_uuid}/social-history" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json"
get/api/v1/{org_id}/patients/{patient_uuid}/tags

List patient tags

List all tags assigned to a patient. Returns paginated tag assignments with resolved tag definition references. Error conditions: - 404: Patient not found.

Parameters

Path Parameters
patient_uuidstringrequired
org_idstringrequired
Query Parameters
pageinteger

Page number (1-based).

Default: 1

page_sizeinteger

Number of records per page.

Default: 50

Responses

200Successful Response
itemsobject[]required

List of patient tag assignments.

pageintegerrequired

Current page number (1-based).

page_sizeintegerrequired

Number of records per page.

totalintegerrequired

Total number of records matching the query.

422Validation Error
detailobject[]
curl
curl -X GET "https://api.example.com/api/v1/{org_id}/patients/{patient_uuid}/tags" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json"
get/api/v1/{org_id}/patients/{patient_uuid}/vital-signs

List vital signs history

List vital signs recordings for a patient. Returns paginated vital signs records ordered by date. Supports date range filtering for trend analysis. Error conditions: - 404: Patient not found.

Parameters

Path Parameters
patient_uuidstringrequired
org_idstringrequired
Query Parameters
pageinteger

Page number (1-based).

Default: 1

page_sizeinteger

Number of records per page.

Default: 50

date_fromstring

Filter to vital signs taken on or after this date.

date_tostring

Filter to vital signs taken on or before this date.

Responses

200Successful Response
itemsobject[]required

List of patient vital signs readings.

pageintegerrequired

Current page number (1-based).

page_sizeintegerrequired

Number of records per page.

totalintegerrequired

Total number of records matching the query.

422Validation Error
detailobject[]
curl
curl -X GET "https://api.example.com/api/v1/{org_id}/patients/{patient_uuid}/vital-signs" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json"
get/api/v1/{org_id}/patients/{patient_uuid}/vital-signs/{vitals_uuid}

Get vital signs by ID

Retrieve a single vital signs recording by UUID. Error conditions: - 404: Patient or vital signs record not found.

Parameters

Path Parameters
patient_uuidstringrequired
vitals_uuidstringrequired
org_idstringrequired

Responses

200Successful Response
abnormal_flagsobject[]

Clinical flags for out-of-range vital sign values. Each flag includes the vital name, message, and severity (warning/critical).

bmistring
bmi_percentileinteger
bp_diastolicinteger
bp_systolicinteger
created_atstring (date-time)required

Timestamp when the record was created.

created_byinteger
date_takenstring (date)required

Date when the vital signs were measured.

deleted_atstring (date-time)
has_followup_planbooleanrequired

Whether an abnormal vital signs follow-up plan has been created.

height_inchesstring
idstring (uuid)required

Unique identifier of the patient vital signs record.

is_procedure_blockingboolean

True if any vital sign is in a critical range that should block dental procedures until provider review (e.g., BP >180/120, SpO2 <94%).

notestring
oxygen_saturationinteger
patientobjectrequired

Lightweight reference to a related entity — exposes UUID and optional name.

providerobject

Lightweight reference to a related entity — exposes UUID and optional name.

pulseinteger
respiration_rateinteger
temperature_fstring
time_takenstring (time)
updated_atstring (date-time)required

Timestamp when the record was last updated.

versionintegerrequired

Optimistic concurrency version number.

weight_codestring
weight_lbsstring
422Validation Error
detailobject[]
curl
curl -X GET "https://api.example.com/api/v1/{org_id}/patients/{patient_uuid}/vital-signs/{vitals_uuid}" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json"
get/api/v1/{org_id}/patients/counts/by-location

Count patients by location

Return location-level patient counts without exposing patient rows.

Parameters

Path Parameters
org_idstringrequired
Query Parameters
date_fromstring

Inclusive first-visit start date, YYYY-MM-DD.

date_tostring

Exclusive first-visit end date, YYYY-MM-DD.

status_setstring[]

Patient statuses to include. Repeat the query param for multiple values. Defaults to active.

Responses

200Successful Response
date_fromstring (date)
date_tostring (date)
excluded_countinteger

Patients matching the filters but not grouped under an active location.

group_bystring
itemsobject[]required
status_setstring[]required
totalintegerrequired
422Validation Error
detailobject[]
curl
curl -X GET "https://api.example.com/api/v1/{org_id}/patients/counts/by-location" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json"
get/api/v1/{org_id}/patients/cursor

List patients (cursor-paginated)

List patients with cursor-based pagination and optional filters. Returns a cursor-paginated list of patients. Use the ``after`` parameter with the ``end_cursor`` value from the previous response to fetch the next page. This endpoint uses keyset pagination for stable, performant traversal of large result sets. Error conditions: - 404: Referenced provider, location, or tag definition not found. - 422: Invalid or malformed cursor value.

Parameters

Path Parameters
org_idstringrequired
Query Parameters
firstinteger

Maximum number of records to return per page.

Default: 50

afterstring

Opaque cursor from a previous page_info.end_cursor.

sort_by"chart_number" | "created_at" | "date_of_birth" | "first_name" | "last_name" | "status" | "updated_at"

Sort field. One of: last_name, first_name, date_of_birth, chart_number, created_at, updated_at, status. Defaults to first_name when not specified.

sort_dir"asc" | "desc"

Sort direction. One of: asc, desc.

ascdesc

Default: "asc"

statusstring

Filter by patient lifecycle status (e.g. 'active', 'inactive').

searchstring

Free-text search across name, phone, email, chart number, and DOB fields.

primary_provider_uuidstring

Filter by primary provider UUID.

location_uuidstring

Filter by location UUID.

dob_fromstring

Filter patients born on or after this date (YYYY-MM-DD).

dob_tostring

Filter patients born on or before this date (YYYY-MM-DD).

tag_definition_uuidstring

Filter patients with this tag assigned.

Responses

200Successful Response
dataobject[]required

Page of records.

page_infoobjectrequired

Pagination metadata.

422Validation Error
detailobject[]
curl
curl -X GET "https://api.example.com/api/v1/{org_id}/patients/cursor" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json"
get/api/v1/{org_id}/patients/search

Search patients

Search patients by name or chart number for typeahead. Performs a lightweight search across patient name fields and chart number. Returns a compact result set suitable for dropdown selectors and autocomplete fields. Empty query returns no results. Results include only core identification fields (name, DOB, status, phone, email, chart number) for fast rendering.

Parameters

Path Parameters
org_idstringrequired
Query Parameters
qstring

Search query — matches against first name, last name, preferred name, and chart number.

Default: ""

limitinteger

Maximum number of results to return.

Default: 20

Responses

200Successful Response
itemsobject[]required

List of matching patients with lightweight fields.

totalintegerrequired

Total number of matches.

422Validation Error
detailobject[]
curl
curl -X GET "https://api.example.com/api/v1/{org_id}/patients/search" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json"
post/api/v1/{org_id}/patients

Create patient

Create a new patient record. Staff callers send the full ``CreatePatientIn`` payload and receive ``PatientOut``. Returns 201 with the created patient including resolved references. Error conditions: - 404: Referenced provider, location, fee schedule, or guarantor not found. - 409: Idempotency conflict (duplicate Idempotency-Key) or duplicate chart number. - 422: Validation error (invalid gender, email, etc.).

Parameters

Path Parameters
org_idstringrequired

Request Body

address_line1string
address_line2string
address_notestring
allergy_review_statusenum

Allergy review status. One of: not_reviewed, nkda, reviewed. Defaults to 'not_reviewed'.

nkdanot_reviewedreviewed
appointment_module_notestring
ask_to_arrive_early_minsinteger
billing_accountobject

Billing-account assignment decision supplied during patient registration.

billing_cycle_dayinteger
billing_type_uuidstring (uuid)
chart_numberstring
citystring
consent_flagsinteger
countrystring
date_first_visitstring (date)
date_of_birthstring (date)
date_time_deceasedstring (date-time)
emailstring
emergency_contact_namestring
emergency_contact_phonestring
employer_uuidstring (uuid)
fee_schedule_uuidstring (uuid)
first_namestringrequired

Patient's legal first name.

genderenum
femalemalenon_binaryotherprefer_not_to_sayunknown
home_phonestring
last_namestringrequired

Patient's legal last name (surname).

location_uuidstring (uuid)
marital_statusenum
divorceddomestic_partnermarriedotherseparatedsinglewidowed
medicaid_idstring
medical_summarystring
medical_urgent_notestring
middle_namestring
mobile_phonestring
postal_codestring
preferred_confirmation_methodenum
emailmailnonephonetext
preferred_contact_methodenum
emailmailnonephonetext
preferred_languagestring
preferred_namestring
premedication_requiredboolean
primary_provider_uuidstring (uuid)
pronounenum
he_himnot_specifiedothershe_herthey_them
receives_emailboolean
receives_smsboolean
responsible_party_uuidstring (uuid)
salutationstring
secondary_provider_uuidstring (uuid)
social_security_numberstring
statestring
statusenum
activearchiveddeceasedinactiveprospective
titlestring
treatment_notesstring
work_phonestring

Responses

201Successful Response
address_line1string
address_line2string
address_notestring
allergy_review_statusenum

Allergy review status. One of: not_reviewed, nkda, reviewed. 'not_reviewed' means allergies have not been assessed.

nkdanot_reviewedreviewed
appointment_module_notestring
ask_to_arrive_early_minsinteger

Number of minutes to ask the patient to arrive before their appointment (0-120).

balance_0_30string
balance_31_60string
balance_61_90string
balance_over_90string
balance_totalstring
billing_cycle_dayinteger
billing_typeobject

Lightweight reference to a related entity — exposes UUID and optional name.

chart_numberstring
citystring
consent_flagsinteger

Bitmask of consent flags (HIPAA, treatment consent, etc.).

countrystring
created_atstring (date-time)required

Timestamp when the patient record was created.

date_first_visitstring (date)
date_of_birthstring (date)
date_time_deceasedstring (date-time)
deleted_atstring (date-time)
emailstring
emergency_contact_namestring
emergency_contact_phonestring
employerobject

Lightweight reference to a related entity — exposes UUID and optional name.

estimated_balancestring
fee_scheduleobject

Lightweight reference to a related entity — exposes UUID and optional name.

first_namestringrequired

Patient's legal first name.

genderenum

Administrative gender for clinical records. One of: male, female, non_binary, other, unknown, prefer_not_to_say.

femalemalenon_binaryotherprefer_not_to_sayunknown
home_phonestring
idstring (uuid)required

Unique identifier of the patient.

insurance_estimatestring
last_namestringrequired

Patient's legal last name (surname).

latest_vitals_datestring (date)
locationobject

Lightweight reference to a related entity — exposes UUID and optional name.

marital_statusenum
divorceddomestic_partnermarriedotherseparatedsinglewidowed
medicaid_idstring
medical_summarystring
medical_urgent_notestring
middle_namestring
mobile_phonestring
payment_plan_duestring
postal_codestring
potential_duplicatesobject[]
preferred_confirmation_methodenum
emailmailnonephonetext
preferred_contact_methodenum
emailmailnonephonetext
preferred_languagestring
preferred_namestring
premedication_requiredboolean

Whether the patient requires antibiotic premedication before dental procedures.

primary_providerobject

Lightweight reference to a related entity — exposes UUID and optional name.

pronounenum
he_himnot_specifiedothershe_herthey_them
receives_emailboolean

Whether the patient has opted in to receive email communications.

receives_smsboolean

Whether the patient has opted in to receive SMS messages.

responsible_partyobject

Lightweight reference to a related entity — exposes UUID and optional name.

salutationstring
scheduling_restrictedboolean

Whether this patient has a scheduling hold (outstanding balance, missing forms, etc.). Derived from patient status and balance: true when status is 'inactive' or balance exceeds $500.

secondary_providerobject

Lightweight reference to a related entity — exposes UUID and optional name.

smoking_snomedstring
social_security_numberstring
statestring
statusenum

Patient lifecycle status. One of: active, inactive, prospective, deceased, archived. Defaults to 'active'.

activearchiveddeceasedinactiveprospective
titlestring
treatment_notesstring
updated_atstring (date-time)required

Timestamp when the patient record was last updated.

versionintegerrequired

Optimistic concurrency version number.

work_phonestring
422Validation Error
detailobject[]
curl
curl -X POST "https://api.example.com/api/v1/{org_id}/patients" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "address_line1": "string",
    "address_line2": "string",
    "address_note": "string",
    "allergy_review_status": "nkda",
    "appointment_module_note": "string",
    "first_name": "string",
    "last_name": "string"
  }'
post/api/v1/{org_id}/patients/{patient_uuid}/alerts

Create patient alert

Create a new alert for a patient. Links the patient to an alert definition with scope and urgency settings. Alerts with scope 'family' are shown on all family members' charts. Error conditions: - 404: Patient or alert definition not found. - 409: Idempotency conflict. - 422: Invalid alert_scope value.

Parameters

Path Parameters
patient_uuidstringrequired
org_idstringrequired

Request Body

alert_definition_uuidstring (uuid)required

UUID of the alert definition from the org settings catalog.

alert_scopestring

Visibility scope. One of: patient (this chart only), family (all family members' charts). Defaults to 'patient'.

disable_onstring (date)
is_urgentboolean

Whether this alert should be displayed prominently as an urgent warning.

notestring

Responses

201Successful Response
alert_definitionobject

Lightweight reference to a related entity — exposes UUID and optional name.

alert_scopestringrequired

Visibility scope. One of: patient (this chart only), family (all family members' charts).

created_atstring (date-time)required

Timestamp when the record was created.

created_byinteger
date_disabledstring (date-time)
disable_onstring (date)
idstring (uuid)required

Unique identifier of the patient alert record.

is_urgentbooleanrequired

Whether this alert should be displayed prominently as an urgent warning.

notestring
patientobjectrequired

Lightweight reference to a related entity — exposes UUID and optional name.

statusstringrequired

Alert lifecycle status. One of: active, disabled, archived.

updated_atstring (date-time)required

Timestamp when the record was last updated.

versionintegerrequired

Optimistic concurrency version number.

422Validation Error
detailobject[]
curl
curl -X POST "https://api.example.com/api/v1/{org_id}/patients/{patient_uuid}/alerts" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "alert_definition_uuid": "00000000-0000-0000-0000-000000000000",
    "alert_scope": "patient",
    "disable_on": "string",
    "is_urgent": false,
    "note": "string"
  }'
post/api/v1/{org_id}/patients/{patient_uuid}/alerts/{alert_uuid}/archive

Archive patient alert (status-based)

Archive a patient alert by setting status to 'archived'. The alert is excluded from default listings but can still be retrieved by explicitly filtering with ``status=archived``. Error conditions: - 404: Patient or alert not found.

Parameters

Path Parameters
patient_uuidstringrequired
alert_uuidstringrequired
org_idstringrequired

Responses

200Successful Response
alert_definitionobject

Lightweight reference to a related entity — exposes UUID and optional name.

alert_scopestringrequired

Visibility scope. One of: patient (this chart only), family (all family members' charts).

created_atstring (date-time)required

Timestamp when the record was created.

created_byinteger
date_disabledstring (date-time)
disable_onstring (date)
idstring (uuid)required

Unique identifier of the patient alert record.

is_urgentbooleanrequired

Whether this alert should be displayed prominently as an urgent warning.

notestring
patientobjectrequired

Lightweight reference to a related entity — exposes UUID and optional name.

statusstringrequired

Alert lifecycle status. One of: active, disabled, archived.

updated_atstring (date-time)required

Timestamp when the record was last updated.

versionintegerrequired

Optimistic concurrency version number.

422Validation Error
detailobject[]
curl
curl -X POST "https://api.example.com/api/v1/{org_id}/patients/{patient_uuid}/alerts/{alert_uuid}/archive" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json"
post/api/v1/{org_id}/patients/{patient_uuid}/alerts/{alert_uuid}/disable

Disable patient alert

Disable an active alert. Sets the alert status to 'disabled' and records the current date as date_disabled. The alert is hidden from the chart but not deleted. Error conditions: - 404: Patient or alert not found. - 409: Version conflict.

Parameters

Path Parameters
patient_uuidstringrequired
alert_uuidstringrequired
org_idstringrequired

Request Body

base_versionintegerrequired

Current version for optimistic concurrency control.

Responses

200Successful Response
alert_definitionobject

Lightweight reference to a related entity — exposes UUID and optional name.

alert_scopestringrequired

Visibility scope. One of: patient (this chart only), family (all family members' charts).

created_atstring (date-time)required

Timestamp when the record was created.

created_byinteger
date_disabledstring (date-time)
disable_onstring (date)
idstring (uuid)required

Unique identifier of the patient alert record.

is_urgentbooleanrequired

Whether this alert should be displayed prominently as an urgent warning.

notestring
patientobjectrequired

Lightweight reference to a related entity — exposes UUID and optional name.

statusstringrequired

Alert lifecycle status. One of: active, disabled, archived.

updated_atstring (date-time)required

Timestamp when the record was last updated.

versionintegerrequired

Optimistic concurrency version number.

422Validation Error
detailobject[]
curl
curl -X POST "https://api.example.com/api/v1/{org_id}/patients/{patient_uuid}/alerts/{alert_uuid}/disable" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "base_version": 1
  }'
post/api/v1/{org_id}/patients/{patient_uuid}/alerts/bulk-dismiss

Bulk dismiss alerts

Archive multiple patient alerts in a single call. Already-archived alerts are skipped without error. Useful for bulk-dismiss workflows where 5 or more alerts need to be archived at once. Error conditions: - 404: Patient not found, or any alert UUID not found or belongs to a different patient. - 422: More than 50 alert UUIDs supplied.

Parameters

Path Parameters
patient_uuidstringrequired
org_idstringrequired

Request Body

alert_uuidsstring (uuid)[]required

UUIDs of alerts to archive. Maximum 50 per call.

Responses

200Successful Response
422Validation Error
detailobject[]
curl
curl -X POST "https://api.example.com/api/v1/{org_id}/patients/{patient_uuid}/alerts/bulk-dismiss" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "alert_uuids": []
  }'
post/api/v1/{org_id}/patients/{patient_uuid}/allergies

Record patient allergy

Record a new allergy for a patient. Links the patient to an allergy definition from the catalog with optional reaction details and SNOMED coding. Error conditions: - 404: Patient or allergy definition not found. - 409: Idempotency conflict.

Parameters

Path Parameters
patient_uuidstringrequired
org_idstringrequired

Request Body

allergy_definition_uuidstring (uuid)required

UUID of the allergy definition from the org settings catalog.

date_adverse_reactionstring (date)
reactionstring
severitystring
snomed_reactionstring
status_is_activeboolean

Whether this allergy is currently active. Defaults to true.

Responses

201Successful Response
allergy_definitionobject

Lightweight reference to a related entity — exposes UUID and optional name.

created_atstring (date-time)required

Timestamp when the record was created.

date_adverse_reactionstring (date)
deleted_atstring (date-time)
idstring (uuid)required

Unique identifier of the patient allergy record.

interaction_warningsobject[]

Drug-allergy interaction warnings detected on create. Empty on subsequent reads.

patientobjectrequired

Lightweight reference to a related entity — exposes UUID and optional name.

reactionstring
severitystring
snomed_reactionstring
status_is_activebooleanrequired

Whether this allergy is currently active.

updated_atstring (date-time)required

Timestamp when the record was last updated.

versionintegerrequired

Optimistic concurrency version number.

422Validation Error
detailobject[]
curl
curl -X POST "https://api.example.com/api/v1/{org_id}/patients/{patient_uuid}/allergies" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "allergy_definition_uuid": "00000000-0000-0000-0000-000000000000",
    "date_adverse_reaction": "string",
    "reaction": "string",
    "severity": "string",
    "snomed_reaction": "string"
  }'
post/api/v1/{org_id}/patients/{patient_uuid}/allergies/{allergy_uuid}/archive

Archive patient allergy

Soft-delete a patient allergy record. Error conditions: - 404: Patient or allergy not found.

Parameters

Path Parameters
patient_uuidstringrequired
allergy_uuidstringrequired
org_idstringrequired

Responses

200Successful Response
allergy_definitionobject

Lightweight reference to a related entity — exposes UUID and optional name.

created_atstring (date-time)required

Timestamp when the record was created.

date_adverse_reactionstring (date)
deleted_atstring (date-time)
idstring (uuid)required

Unique identifier of the patient allergy record.

interaction_warningsobject[]

Drug-allergy interaction warnings detected on create. Empty on subsequent reads.

patientobjectrequired

Lightweight reference to a related entity — exposes UUID and optional name.

reactionstring
severitystring
snomed_reactionstring
status_is_activebooleanrequired

Whether this allergy is currently active.

updated_atstring (date-time)required

Timestamp when the record was last updated.

versionintegerrequired

Optimistic concurrency version number.

422Validation Error
detailobject[]
curl
curl -X POST "https://api.example.com/api/v1/{org_id}/patients/{patient_uuid}/allergies/{allergy_uuid}/archive" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json"
post/api/v1/{org_id}/patients/{patient_uuid}/archive

Archive patient

Soft-delete a patient record. Sets deleted_at timestamp. The patient is excluded from normal queries but can be restored via the restore endpoint. Returns the archived patient record. Error conditions: - 404: Patient not found. - 422: Patient is guarantor for active dependents (reassign first).

Parameters

Path Parameters
patient_uuidstringrequired
org_idstringrequired

Responses

200Successful Response
address_line1string
address_line2string
address_notestring
allergy_review_statusenum

Allergy review status. One of: not_reviewed, nkda, reviewed. 'not_reviewed' means allergies have not been assessed.

nkdanot_reviewedreviewed
appointment_module_notestring
ask_to_arrive_early_minsinteger

Number of minutes to ask the patient to arrive before their appointment (0-120).

balance_0_30string
balance_31_60string
balance_61_90string
balance_over_90string
balance_totalstring
billing_cycle_dayinteger
billing_typeobject

Lightweight reference to a related entity — exposes UUID and optional name.

chart_numberstring
citystring
consent_flagsinteger

Bitmask of consent flags (HIPAA, treatment consent, etc.).

countrystring
created_atstring (date-time)required

Timestamp when the patient record was created.

date_first_visitstring (date)
date_of_birthstring (date)
date_time_deceasedstring (date-time)
deleted_atstring (date-time)
emailstring
emergency_contact_namestring
emergency_contact_phonestring
employerobject

Lightweight reference to a related entity — exposes UUID and optional name.

estimated_balancestring
fee_scheduleobject

Lightweight reference to a related entity — exposes UUID and optional name.

first_namestringrequired

Patient's legal first name.

genderenum

Administrative gender for clinical records. One of: male, female, non_binary, other, unknown, prefer_not_to_say.

femalemalenon_binaryotherprefer_not_to_sayunknown
home_phonestring
idstring (uuid)required

Unique identifier of the patient.

insurance_estimatestring
last_namestringrequired

Patient's legal last name (surname).

latest_vitals_datestring (date)
locationobject

Lightweight reference to a related entity — exposes UUID and optional name.

marital_statusenum
divorceddomestic_partnermarriedotherseparatedsinglewidowed
medicaid_idstring
medical_summarystring
medical_urgent_notestring
middle_namestring
mobile_phonestring
payment_plan_duestring
postal_codestring
potential_duplicatesobject[]
preferred_confirmation_methodenum
emailmailnonephonetext
preferred_contact_methodenum
emailmailnonephonetext
preferred_languagestring
preferred_namestring
premedication_requiredboolean

Whether the patient requires antibiotic premedication before dental procedures.

primary_providerobject

Lightweight reference to a related entity — exposes UUID and optional name.

pronounenum
he_himnot_specifiedothershe_herthey_them
receives_emailboolean

Whether the patient has opted in to receive email communications.

receives_smsboolean

Whether the patient has opted in to receive SMS messages.

responsible_partyobject

Lightweight reference to a related entity — exposes UUID and optional name.

salutationstring
scheduling_restrictedboolean

Whether this patient has a scheduling hold (outstanding balance, missing forms, etc.). Derived from patient status and balance: true when status is 'inactive' or balance exceeds $500.

secondary_providerobject

Lightweight reference to a related entity — exposes UUID and optional name.

smoking_snomedstring
social_security_numberstring
statestring
statusenum

Patient lifecycle status. One of: active, inactive, prospective, deceased, archived. Defaults to 'active'.

activearchiveddeceasedinactiveprospective
titlestring
treatment_notesstring
updated_atstring (date-time)required

Timestamp when the patient record was last updated.

versionintegerrequired

Optimistic concurrency version number.

work_phonestring
422Validation Error
detailobject[]
curl
curl -X POST "https://api.example.com/api/v1/{org_id}/patients/{patient_uuid}/archive" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json"
post/api/v1/{org_id}/patients/{patient_uuid}/communication-logs

Log patient communication

Log a communication event for a patient. Communication logs are append-only — entries cannot be edited or deleted after creation. Staff callers send the full ``CreateCommunicationLogIn`` payload and receive ``PatientCommunicationLogOut``. The ``communication_source`` is set to ``user`` for these entries. Error conditions: - 404: Patient or communication type definition not found. - 409: Idempotency conflict. - 422: Invalid mode or direction value.

Parameters

Path Parameters
patient_uuidstringrequired
org_idstringrequired

Request Body

appointment_uuidstring (uuid)
communication_datetimestring (date-time)required

Date and time when the communication occurred.

communication_type_uuidstring (uuid)
directionstring
modestring
notestring

Responses

201Successful Response
appointmentobject

Lightweight reference to a related entity — exposes UUID and optional name.

communication_datetimestring (date-time)required

When the communication occurred.

communication_sourcestringrequired

Origin of this log entry. One of: user (manual), automated (system-generated), integration (external API).

communication_typeobject

Lightweight reference to a related entity — exposes UUID and optional name.

created_atstring (date-time)required

When this log entry was created.

created_byobject

Lightweight reference to a related entity — exposes UUID and optional name.

directionstring
idstring (uuid)required

Unique identifier of the communication log entry.

modestring
notestring
patientobjectrequired

Lightweight reference to a related entity — exposes UUID and optional name.

422Validation Error
detailobject[]
curl
curl -X POST "https://api.example.com/api/v1/{org_id}/patients/{patient_uuid}/communication-logs" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "appointment_uuid": "string",
    "communication_datetime": "2025-01-15T09:00:00Z",
    "communication_type_uuid": "string",
    "direction": "string",
    "mode": "string"
  }'
post/api/v1/{org_id}/patients/{patient_uuid}/diseases

Record patient disease/problem

Record a new disease or problem for a patient. Links the patient to a disease definition from the catalog with problem status tracking and optional SNOMED/ICD-10 coding. Problem status follows the lifecycle: active -> resolved -> inactive. Error conditions: - 404: Patient or disease definition not found. - 409: Idempotency conflict. - 422: Invalid problem_status or function_status value.

Parameters

Path Parameters
patient_uuidstringrequired
org_idstringrequired

Request Body

date_startstring (date)
date_stopstring (date)
disease_definition_uuidstring (uuid)required

UUID of the disease/problem definition from the org settings catalog.

function_statusstring

Clinical function classification per Meaningful Use. One of: problem, cognitive_result, cognitive_problem, functional_result, functional_problem. Defaults to 'problem'.

patient_notestring
problem_statusstring

Lifecycle status of the problem. One of: active, resolved, inactive. Defaults to 'active'.

snomed_problem_typestring

Responses

201Successful Response
created_atstring (date-time)required

Timestamp when the record was created.

date_startstring (date)
date_stopstring (date)
deleted_atstring (date-time)
disease_definitionobject

Lightweight reference to a related entity — exposes UUID and optional name.

function_statusstringrequired

Clinical function classification per Meaningful Use. One of: problem, cognitive_result, cognitive_problem, functional_result, functional_problem.

idstring (uuid)required

Unique identifier of the patient disease/problem record.

patientobjectrequired

Lightweight reference to a related entity — exposes UUID and optional name.

patient_notestring
problem_statusstringrequired

Lifecycle status of the problem. One of: active, resolved, inactive.

snomed_problem_typestring
updated_atstring (date-time)required

Timestamp when the record was last updated.

versionintegerrequired

Optimistic concurrency version number.

422Validation Error
detailobject[]
curl
curl -X POST "https://api.example.com/api/v1/{org_id}/patients/{patient_uuid}/diseases" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "date_start": "string",
    "date_stop": "string",
    "disease_definition_uuid": "00000000-0000-0000-0000-000000000000",
    "function_status": "problem",
    "patient_note": "string"
  }'
post/api/v1/{org_id}/patients/{patient_uuid}/diseases/{disease_uuid}/archive

Archive patient disease/problem

Soft-delete a patient disease/problem record. Error conditions: - 404: Patient or disease not found.

Parameters

Path Parameters
patient_uuidstringrequired
disease_uuidstringrequired
org_idstringrequired

Responses

200Successful Response
created_atstring (date-time)required

Timestamp when the record was created.

date_startstring (date)
date_stopstring (date)
deleted_atstring (date-time)
disease_definitionobject

Lightweight reference to a related entity — exposes UUID and optional name.

function_statusstringrequired

Clinical function classification per Meaningful Use. One of: problem, cognitive_result, cognitive_problem, functional_result, functional_problem.

idstring (uuid)required

Unique identifier of the patient disease/problem record.

patientobjectrequired

Lightweight reference to a related entity — exposes UUID and optional name.

patient_notestring
problem_statusstringrequired

Lifecycle status of the problem. One of: active, resolved, inactive.

snomed_problem_typestring
updated_atstring (date-time)required

Timestamp when the record was last updated.

versionintegerrequired

Optimistic concurrency version number.

422Validation Error
detailobject[]
curl
curl -X POST "https://api.example.com/api/v1/{org_id}/patients/{patient_uuid}/diseases/{disease_uuid}/archive" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json"
post/api/v1/{org_id}/patients/{patient_uuid}/medications

Record patient medication

Record a new medication for a patient. Links the patient to a medication definition from the catalog. Supports free-text fallback via med_descript when no catalog entry exists. Optionally tracks prescribing provider and RxNorm CUI. Error conditions: - 404: Patient, medication definition, or provider not found. - 409: Idempotency conflict.

Parameters

Path Parameters
patient_uuidstringrequired
org_idstringrequired

Request Body

date_startstring (date)
date_stopstring (date)
dosagestring
frequencystring
is_cpoeboolean

Whether this medication was entered via Computerized Provider Order Entry.

med_descriptstring
medication_definition_uuidstring (uuid)
patient_notestring
provider_uuidstring (uuid)
routestring
rx_cuistring

Responses

201Successful Response
created_atstring (date-time)required

Timestamp when the record was created.

date_startstring (date)
date_stopstring (date)
deleted_atstring (date-time)
discontinuation_reasonstring
dosagestring
frequencystring
idstring (uuid)required

Unique identifier of the patient medication record.

interaction_warningsobject[]

Drug-allergy interaction warnings detected on create. Empty on subsequent reads.

is_cpoebooleanrequired

Whether entered via Computerized Provider Order Entry.

med_descriptstring
medication_definitionobject

Lightweight reference to a related entity — exposes UUID and optional name.

patientobjectrequired

Lightweight reference to a related entity — exposes UUID and optional name.

patient_notestring
providerobject

Lightweight reference to a related entity — exposes UUID and optional name.

routestring
rx_cuistring
statusenum

Medication lifecycle status. One of: active, discontinued, on_hold, completed.

activecompleteddiscontinuedon_hold
updated_atstring (date-time)required

Timestamp when the record was last updated.

versionintegerrequired

Optimistic concurrency version number.

422Validation Error
detailobject[]
curl
curl -X POST "https://api.example.com/api/v1/{org_id}/patients/{patient_uuid}/medications" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "date_start": "string",
    "date_stop": "string",
    "dosage": "string",
    "frequency": "string",
    "is_cpoe": false
  }'
post/api/v1/{org_id}/patients/{patient_uuid}/medications/{medication_uuid}/archive

Archive patient medication

Soft-delete a patient medication record. Error conditions: - 404: Patient or medication not found.

Parameters

Path Parameters
patient_uuidstringrequired
medication_uuidstringrequired
org_idstringrequired

Responses

200Successful Response
created_atstring (date-time)required

Timestamp when the record was created.

date_startstring (date)
date_stopstring (date)
deleted_atstring (date-time)
discontinuation_reasonstring
dosagestring
frequencystring
idstring (uuid)required

Unique identifier of the patient medication record.

interaction_warningsobject[]

Drug-allergy interaction warnings detected on create. Empty on subsequent reads.

is_cpoebooleanrequired

Whether entered via Computerized Provider Order Entry.

med_descriptstring
medication_definitionobject

Lightweight reference to a related entity — exposes UUID and optional name.

patientobjectrequired

Lightweight reference to a related entity — exposes UUID and optional name.

patient_notestring
providerobject

Lightweight reference to a related entity — exposes UUID and optional name.

routestring
rx_cuistring
statusenum

Medication lifecycle status. One of: active, discontinued, on_hold, completed.

activecompleteddiscontinuedon_hold
updated_atstring (date-time)required

Timestamp when the record was last updated.

versionintegerrequired

Optimistic concurrency version number.

422Validation Error
detailobject[]
curl
curl -X POST "https://api.example.com/api/v1/{org_id}/patients/{patient_uuid}/medications/{medication_uuid}/archive" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json"
post/api/v1/{org_id}/patients/{patient_uuid}/referral-attributions

Create patient attribution

Record a referral attribution for a patient. Tracks how this patient was acquired. Exactly one source reference must be provided (referral_source_uuid, referral_partner_uuid, provider_uuid, or referring_patient_uuid). Only one active 'primary' attribution is allowed per patient. Error conditions: - 404: Patient or referenced source/partner/provider not found. - 409: Patient already has a primary attribution. - 422: No source provided, or multiple sources provided.

Parameters

Path Parameters
patient_uuidstringrequired
org_idstringrequired

Request Body

attribution_roleenum

Role of this attribution in the patient's acquisition. One of: primary (first-touch attribution set at intake), secondary (additional touchpoint), assist (contributing factor).

assistprimarysecondary
provider_uuidstring (uuid)
referral_partner_uuidstring (uuid)
referral_source_uuidstring (uuid)
referring_patient_uuidstring (uuid)
source_notestring

Responses

201Successful Response
attributed_atstring (date-time)required

Timestamp when the attribution was recorded.

attribution_roleenum

Role of this attribution in the patient's acquisition. One of: primary (first-touch attribution set at intake), secondary (additional touchpoint), assist (contributing factor).

assistprimarysecondary
created_atstring (date-time)required

Timestamp when the record was created.

idstring (uuid)required

Unique identifier of the attribution record.

patientobjectrequired

Lightweight reference to a related entity — exposes UUID and optional name.

providerobject

Lightweight reference to a related entity — exposes UUID and optional name.

referral_partnerobject

Lightweight reference to a related entity — exposes UUID and optional name.

referral_sourceobject

Lightweight reference to a related entity — exposes UUID and optional name.

referring_patientobject

Lightweight reference to a related entity — exposes UUID and optional name.

source_notestring
updated_atstring (date-time)required

Timestamp when the record was last updated.

versionintegerrequired

Optimistic concurrency version number.

422Validation Error
detailobject[]
curl
curl -X POST "https://api.example.com/api/v1/{org_id}/patients/{patient_uuid}/referral-attributions" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "attribution_role": "assist",
    "provider_uuid": "string",
    "referral_partner_uuid": "string",
    "referral_source_uuid": "string",
    "referring_patient_uuid": "string"
  }'
post/api/v1/{org_id}/patients/{patient_uuid}/referral-attributions/{attribution_uuid}/archive

Archive patient attribution

Soft-delete a referral attribution. Verifies ownership before archiving. Error conditions: - 404: Patient or attribution not found, or attribution does not belong to this patient. - 409: Version conflict — the attribution was modified since last read.

Parameters

Path Parameters
patient_uuidstringrequired
attribution_uuidstringrequired
org_idstringrequired
Query Parameters
base_versionintegerrequired

Current version for optimistic concurrency. Rejected with 409 if stale.

Responses

200Successful Response
422Validation Error
detailobject[]
curl
curl -X POST "https://api.example.com/api/v1/{org_id}/patients/{patient_uuid}/referral-attributions/{attribution_uuid}/archive" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json"
post/api/v1/{org_id}/patients/{patient_uuid}/relationships

Create patient relationship

Create a relationship between two patients. Records a directional relationship from the source patient (path parameter) to a target patient. Relationship types include family relationships (parent, child, spouse, etc.) and data operations (merge, clone). Currently one-directional — the inverse relationship is not automatically created. Error conditions: - 404: Source or target patient not found. - 409: Idempotency conflict. - 422: Invalid relationship_type value.

Parameters

Path Parameters
patient_uuidstringrequired
org_idstringrequired

Request Body

is_guardianboolean
notestring
relationship_typeenumrequired

Type of relationship from the source patient to the target. One of: spouse, life_partner, parent, child, sibling, guardian, grandparent, grandchild, stepparent, stepchild, foster_child, caregiver, other_family, merge, clone.

caregiverchildclonefoster_childgrandchildgrandparentguardianlife_partnermergeother_familyparentsiblingspousestepchildstepparent
to_patient_uuidstring (uuid)required

UUID of the related patient (the 'other' patient in the relationship).

Responses

201Successful Response
created_atstring (date-time)required

Timestamp when the record was created.

deleted_atstring (date-time)
from_patientobjectrequired

Lightweight reference to a related entity — exposes UUID and optional name.

from_patient_namestring
idstring (uuid)required

Unique identifier of the patient relationship record.

is_guardianboolean

Whether the source patient is the legal guardian of the target.

notestring
relationship_typeenumrequired

Type of relationship from source to target.

caregiverchildclonefoster_childgrandchildgrandparentguardianlife_partnermergeother_familyparentsiblingspousestepchildstepparent
to_patientobjectrequired

Lightweight reference to a related entity — exposes UUID and optional name.

to_patient_namestring
updated_atstring (date-time)required

Timestamp when the record was last updated.

versionintegerrequired

Optimistic concurrency version number.

422Validation Error
detailobject[]
curl
curl -X POST "https://api.example.com/api/v1/{org_id}/patients/{patient_uuid}/relationships" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "is_guardian": null,
    "note": "string",
    "relationship_type": "caregiver",
    "to_patient_uuid": "00000000-0000-0000-0000-000000000000"
  }'
post/api/v1/{org_id}/patients/{patient_uuid}/relationships/{relationship_uuid}/archive

Archive patient relationship

Soft-delete a patient relationship. Error conditions: - 404: Patient or relationship not found.

Parameters

Path Parameters
patient_uuidstringrequired
relationship_uuidstringrequired
org_idstringrequired

Responses

200Successful Response
created_atstring (date-time)required

Timestamp when the record was created.

deleted_atstring (date-time)
from_patientobjectrequired

Lightweight reference to a related entity — exposes UUID and optional name.

from_patient_namestring
idstring (uuid)required

Unique identifier of the patient relationship record.

is_guardianboolean

Whether the source patient is the legal guardian of the target.

notestring
relationship_typeenumrequired

Type of relationship from source to target.

caregiverchildclonefoster_childgrandchildgrandparentguardianlife_partnermergeother_familyparentsiblingspousestepchildstepparent
to_patientobjectrequired

Lightweight reference to a related entity — exposes UUID and optional name.

to_patient_namestring
updated_atstring (date-time)required

Timestamp when the record was last updated.

versionintegerrequired

Optimistic concurrency version number.

422Validation Error
detailobject[]
curl
curl -X POST "https://api.example.com/api/v1/{org_id}/patients/{patient_uuid}/relationships/{relationship_uuid}/archive" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json"
post/api/v1/{org_id}/patients/{patient_uuid}/restore

Restore archived patient

Restore a previously archived patient. Clears the deleted_at timestamp and sets status to 'inactive'. The patient must be explicitly re-activated via the transition-status endpoint after restoration. Error conditions: - 404: Patient not found. - 422: Patient is not archived (deleted_at is already None).

Parameters

Path Parameters
patient_uuidstringrequired
org_idstringrequired

Responses

200Successful Response
address_line1string
address_line2string
address_notestring
allergy_review_statusenum

Allergy review status. One of: not_reviewed, nkda, reviewed. 'not_reviewed' means allergies have not been assessed.

nkdanot_reviewedreviewed
appointment_module_notestring
ask_to_arrive_early_minsinteger

Number of minutes to ask the patient to arrive before their appointment (0-120).

balance_0_30string
balance_31_60string
balance_61_90string
balance_over_90string
balance_totalstring
billing_cycle_dayinteger
billing_typeobject

Lightweight reference to a related entity — exposes UUID and optional name.

chart_numberstring
citystring
consent_flagsinteger

Bitmask of consent flags (HIPAA, treatment consent, etc.).

countrystring
created_atstring (date-time)required

Timestamp when the patient record was created.

date_first_visitstring (date)
date_of_birthstring (date)
date_time_deceasedstring (date-time)
deleted_atstring (date-time)
emailstring
emergency_contact_namestring
emergency_contact_phonestring
employerobject

Lightweight reference to a related entity — exposes UUID and optional name.

estimated_balancestring
fee_scheduleobject

Lightweight reference to a related entity — exposes UUID and optional name.

first_namestringrequired

Patient's legal first name.

genderenum

Administrative gender for clinical records. One of: male, female, non_binary, other, unknown, prefer_not_to_say.

femalemalenon_binaryotherprefer_not_to_sayunknown
home_phonestring
idstring (uuid)required

Unique identifier of the patient.

insurance_estimatestring
last_namestringrequired

Patient's legal last name (surname).

latest_vitals_datestring (date)
locationobject

Lightweight reference to a related entity — exposes UUID and optional name.

marital_statusenum
divorceddomestic_partnermarriedotherseparatedsinglewidowed
medicaid_idstring
medical_summarystring
medical_urgent_notestring
middle_namestring
mobile_phonestring
payment_plan_duestring
postal_codestring
potential_duplicatesobject[]
preferred_confirmation_methodenum
emailmailnonephonetext
preferred_contact_methodenum
emailmailnonephonetext
preferred_languagestring
preferred_namestring
premedication_requiredboolean

Whether the patient requires antibiotic premedication before dental procedures.

primary_providerobject

Lightweight reference to a related entity — exposes UUID and optional name.

pronounenum
he_himnot_specifiedothershe_herthey_them
receives_emailboolean

Whether the patient has opted in to receive email communications.

receives_smsboolean

Whether the patient has opted in to receive SMS messages.

responsible_partyobject

Lightweight reference to a related entity — exposes UUID and optional name.

salutationstring
scheduling_restrictedboolean

Whether this patient has a scheduling hold (outstanding balance, missing forms, etc.). Derived from patient status and balance: true when status is 'inactive' or balance exceeds $500.

secondary_providerobject

Lightweight reference to a related entity — exposes UUID and optional name.

smoking_snomedstring
social_security_numberstring
statestring
statusenum

Patient lifecycle status. One of: active, inactive, prospective, deceased, archived. Defaults to 'active'.

activearchiveddeceasedinactiveprospective
titlestring
treatment_notesstring
updated_atstring (date-time)required

Timestamp when the patient record was last updated.

versionintegerrequired

Optimistic concurrency version number.

work_phonestring
422Validation Error
detailobject[]
curl
curl -X POST "https://api.example.com/api/v1/{org_id}/patients/{patient_uuid}/restore" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json"
post/api/v1/{org_id}/patients/{patient_uuid}/tags

Assign tag to patient

Assign a tag to a patient. Tags are persistent labels for categorizing patients (e.g. 'VIP', 'Ortho Candidate', 'Special Needs'). Unlike alerts, tags have no expiration or lifecycle — they persist until explicitly removed. Error conditions: - 404: Patient or tag definition not found. - 409: Idempotency conflict or tag already assigned.

Parameters

Path Parameters
patient_uuidstringrequired
org_idstringrequired

Request Body

notestring
tag_definition_uuidstring (uuid)required

UUID of the tag definition to assign to this patient.

Responses

201Successful Response
assigned_byinteger
created_atstring (date-time)required

Timestamp when the record was created.

deleted_atstring (date-time)
idstring (uuid)required

Unique identifier of the tag assignment.

notestring
patientobjectrequired

Lightweight reference to a related entity — exposes UUID and optional name.

tag_definitionobject

Lightweight reference to a related entity — exposes UUID and optional name.

updated_atstring (date-time)required

Timestamp when the record was last updated.

versionintegerrequired

Optimistic concurrency version number.

422Validation Error
detailobject[]
curl
curl -X POST "https://api.example.com/api/v1/{org_id}/patients/{patient_uuid}/tags" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "note": "string",
    "tag_definition_uuid": "00000000-0000-0000-0000-000000000000"
  }'
post/api/v1/{org_id}/patients/{patient_uuid}/tags/{assignment_uuid}/archive

Remove tag from patient

Remove a tag assignment from a patient. Soft-deletes the tag assignment. The tag definition itself is not affected. Error conditions: - 404: Patient or tag assignment not found.

Parameters

Path Parameters
patient_uuidstringrequired
assignment_uuidstringrequired
org_idstringrequired

Responses

200Successful Response
assigned_byinteger
created_atstring (date-time)required

Timestamp when the record was created.

deleted_atstring (date-time)
idstring (uuid)required

Unique identifier of the tag assignment.

notestring
patientobjectrequired

Lightweight reference to a related entity — exposes UUID and optional name.

tag_definitionobject

Lightweight reference to a related entity — exposes UUID and optional name.

updated_atstring (date-time)required

Timestamp when the record was last updated.

versionintegerrequired

Optimistic concurrency version number.

422Validation Error
detailobject[]
curl
curl -X POST "https://api.example.com/api/v1/{org_id}/patients/{patient_uuid}/tags/{assignment_uuid}/archive" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json"
post/api/v1/{org_id}/patients/{patient_uuid}/tags/bulk-assign

Bulk assign tags

Assign multiple tags to a patient in a single call. Already-assigned tags are skipped without error. Useful for bulk-assign workflows where 5 or more tags need to be applied at once. Error conditions: - 404: Patient not found, or any tag definition UUID not found. - 422: More than 50 tag definition UUIDs supplied, or a tag definition is deactivated.

Parameters

Path Parameters
patient_uuidstringrequired
org_idstringrequired

Request Body

tag_definition_uuidsstring (uuid)[]required

UUIDs of tag definitions to assign. Maximum 50 per call.

Responses

200Successful Response
422Validation Error
detailobject[]
curl
curl -X POST "https://api.example.com/api/v1/{org_id}/patients/{patient_uuid}/tags/bulk-assign" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "tag_definition_uuids": []
  }'
post/api/v1/{org_id}/patients/{patient_uuid}/transition-status

Transition patient status

Transition a patient's lifecycle status. Validates the transition against allowed status transitions: - prospective -> active - active -> inactive, deceased - inactive -> active - deceased -> (none — terminal status, use archive endpoint) Emits a status-specific event (e.g. patient.inactive, patient.deceased). Error conditions: - 404: Patient not found. - 409: Version conflict (base_version does not match current). - 422: Invalid status transition or patient already in target status.

Parameters

Path Parameters
patient_uuidstringrequired
org_idstringrequired

Request Body

base_versionintegerrequired

Current version of the patient record for optimistic concurrency control.

new_statusenumrequired

Target lifecycle status. Valid transitions: prospective->active, active->inactive, active->deceased, inactive->active. Archived status requires the archive endpoint.

activearchiveddeceasedinactiveprospective

Responses

200Successful Response
address_line1string
address_line2string
address_notestring
allergy_review_statusenum

Allergy review status. One of: not_reviewed, nkda, reviewed. 'not_reviewed' means allergies have not been assessed.

nkdanot_reviewedreviewed
appointment_module_notestring
ask_to_arrive_early_minsinteger

Number of minutes to ask the patient to arrive before their appointment (0-120).

balance_0_30string
balance_31_60string
balance_61_90string
balance_over_90string
balance_totalstring
billing_cycle_dayinteger
billing_typeobject

Lightweight reference to a related entity — exposes UUID and optional name.

chart_numberstring
citystring
consent_flagsinteger

Bitmask of consent flags (HIPAA, treatment consent, etc.).

countrystring
created_atstring (date-time)required

Timestamp when the patient record was created.

date_first_visitstring (date)
date_of_birthstring (date)
date_time_deceasedstring (date-time)
deleted_atstring (date-time)
emailstring
emergency_contact_namestring
emergency_contact_phonestring
employerobject

Lightweight reference to a related entity — exposes UUID and optional name.

estimated_balancestring
fee_scheduleobject

Lightweight reference to a related entity — exposes UUID and optional name.

first_namestringrequired

Patient's legal first name.

genderenum

Administrative gender for clinical records. One of: male, female, non_binary, other, unknown, prefer_not_to_say.

femalemalenon_binaryotherprefer_not_to_sayunknown
home_phonestring
idstring (uuid)required

Unique identifier of the patient.

insurance_estimatestring
last_namestringrequired

Patient's legal last name (surname).

latest_vitals_datestring (date)
locationobject

Lightweight reference to a related entity — exposes UUID and optional name.

marital_statusenum
divorceddomestic_partnermarriedotherseparatedsinglewidowed
medicaid_idstring
medical_summarystring
medical_urgent_notestring
middle_namestring
mobile_phonestring
payment_plan_duestring
postal_codestring
potential_duplicatesobject[]
preferred_confirmation_methodenum
emailmailnonephonetext
preferred_contact_methodenum
emailmailnonephonetext
preferred_languagestring
preferred_namestring
premedication_requiredboolean

Whether the patient requires antibiotic premedication before dental procedures.

primary_providerobject

Lightweight reference to a related entity — exposes UUID and optional name.

pronounenum
he_himnot_specifiedothershe_herthey_them
receives_emailboolean

Whether the patient has opted in to receive email communications.

receives_smsboolean

Whether the patient has opted in to receive SMS messages.

responsible_partyobject

Lightweight reference to a related entity — exposes UUID and optional name.

salutationstring
scheduling_restrictedboolean

Whether this patient has a scheduling hold (outstanding balance, missing forms, etc.). Derived from patient status and balance: true when status is 'inactive' or balance exceeds $500.

secondary_providerobject

Lightweight reference to a related entity — exposes UUID and optional name.

smoking_snomedstring
social_security_numberstring
statestring
statusenum

Patient lifecycle status. One of: active, inactive, prospective, deceased, archived. Defaults to 'active'.

activearchiveddeceasedinactiveprospective
titlestring
treatment_notesstring
updated_atstring (date-time)required

Timestamp when the patient record was last updated.

versionintegerrequired

Optimistic concurrency version number.

work_phonestring
422Validation Error
detailobject[]
curl
curl -X POST "https://api.example.com/api/v1/{org_id}/patients/{patient_uuid}/transition-status" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "base_version": 1,
    "new_status": "active"
  }'
post/api/v1/{org_id}/patients/{patient_uuid}/vital-signs

Record vital signs

Record a new set of vital signs for a patient. Captures blood pressure, pulse, oxygen saturation, temperature, respiration rate, height, weight, and BMI. Optionally tracks the measuring provider. Error conditions: - 404: Patient or provider not found. - 409: Idempotency conflict.

Parameters

Path Parameters
patient_uuidstringrequired
org_idstringrequired

Request Body

bminumber
bmi_percentileinteger
bp_diastolicinteger
bp_systolicinteger
date_takenstring (date)required

Date when the vital signs were measured.

has_followup_planboolean

Whether an abnormal vital signs follow-up plan has been created.

height_inchesnumber
notestring
oxygen_saturationinteger
provider_uuidstring (uuid)
pulseinteger
respiration_rateinteger
temperature_fnumber
time_takenstring (time)
weight_codestring
weight_lbsnumber

Responses

201Successful Response
abnormal_flagsobject[]

Clinical flags for out-of-range vital sign values. Each flag includes the vital name, message, and severity (warning/critical).

bmistring
bmi_percentileinteger
bp_diastolicinteger
bp_systolicinteger
created_atstring (date-time)required

Timestamp when the record was created.

created_byinteger
date_takenstring (date)required

Date when the vital signs were measured.

deleted_atstring (date-time)
has_followup_planbooleanrequired

Whether an abnormal vital signs follow-up plan has been created.

height_inchesstring
idstring (uuid)required

Unique identifier of the patient vital signs record.

is_procedure_blockingboolean

True if any vital sign is in a critical range that should block dental procedures until provider review (e.g., BP >180/120, SpO2 <94%).

notestring
oxygen_saturationinteger
patientobjectrequired

Lightweight reference to a related entity — exposes UUID and optional name.

providerobject

Lightweight reference to a related entity — exposes UUID and optional name.

pulseinteger
respiration_rateinteger
temperature_fstring
time_takenstring (time)
updated_atstring (date-time)required

Timestamp when the record was last updated.

versionintegerrequired

Optimistic concurrency version number.

weight_codestring
weight_lbsstring
422Validation Error
detailobject[]
curl
curl -X POST "https://api.example.com/api/v1/{org_id}/patients/{patient_uuid}/vital-signs" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "bmi": null,
    "bmi_percentile": 1,
    "bp_diastolic": 1,
    "bp_systolic": 1,
    "date_taken": "2025-01-15"
  }'
post/api/v1/{org_id}/patients/{patient_uuid}/vital-signs/{vitals_uuid}/archive

Archive vital signs

Soft-delete a vital signs recording. Error conditions: - 404: Patient or vital signs record not found.

Parameters

Path Parameters
patient_uuidstringrequired
vitals_uuidstringrequired
org_idstringrequired

Responses

200Successful Response
abnormal_flagsobject[]

Clinical flags for out-of-range vital sign values. Each flag includes the vital name, message, and severity (warning/critical).

bmistring
bmi_percentileinteger
bp_diastolicinteger
bp_systolicinteger
created_atstring (date-time)required

Timestamp when the record was created.

created_byinteger
date_takenstring (date)required

Date when the vital signs were measured.

deleted_atstring (date-time)
has_followup_planbooleanrequired

Whether an abnormal vital signs follow-up plan has been created.

height_inchesstring
idstring (uuid)required

Unique identifier of the patient vital signs record.

is_procedure_blockingboolean

True if any vital sign is in a critical range that should block dental procedures until provider review (e.g., BP >180/120, SpO2 <94%).

notestring
oxygen_saturationinteger
patientobjectrequired

Lightweight reference to a related entity — exposes UUID and optional name.

providerobject

Lightweight reference to a related entity — exposes UUID and optional name.

pulseinteger
respiration_rateinteger
temperature_fstring
time_takenstring (time)
updated_atstring (date-time)required

Timestamp when the record was last updated.

versionintegerrequired

Optimistic concurrency version number.

weight_codestring
weight_lbsstring
422Validation Error
detailobject[]
curl
curl -X POST "https://api.example.com/api/v1/{org_id}/patients/{patient_uuid}/vital-signs/{vitals_uuid}/archive" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json"
post/api/v1/{org_id}/patients/bulk

Bulk import patients

Parameters

Path Parameters
org_idstringrequired

Request Body

metaobject

Top-level execution options for a bulk request.

rowsobject[]required

Responses

200Successful Response
createdinteger
failedinteger
resultsobject[]required
skippedinteger
totalintegerrequired
updatedinteger
validatedinteger
422Validation Error
detailobject[]
curl
curl -X POST "https://api.example.com/api/v1/{org_id}/patients/bulk" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "meta": {},
    "rows": []
  }'
post/api/v1/{org_id}/patients/check-duplicates

Check for duplicate patients

Check for duplicate patients before creating a new record. Searches for existing patients matching any duplicate signal: last_name + date_of_birth, email, mobile_phone, or SSN. Any single match flags a potential duplicate. Use this endpoint before creating a patient to avoid duplicate records. Returns matching patients with lightweight identification fields.

Parameters

Path Parameters
org_idstringrequired

Request Body

date_of_birthstring (date)
emailstring
last_namestringrequired

Last name to check for duplicates.

mobile_phonestring
social_security_numberstring

Responses

200Successful Response
itemsobject[]required

List of potential duplicate patients found.

totalintegerrequired

Number of potential duplicates found.

422Validation Error
detailobject[]
curl
curl -X POST "https://api.example.com/api/v1/{org_id}/patients/check-duplicates" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "date_of_birth": "string",
    "email": "string",
    "last_name": "string",
    "mobile_phone": "string",
    "social_security_number": "string"
  }'
put/api/v1/{org_id}/patients/{patient_uuid}/field-values

Bulk upsert custom field values

Create or update multiple custom field values for a patient. Uses upsert semantics — existing values are updated, new values are created. Send a null value to clear a field. Returns the list of upserted field value records. Error conditions: - 404: Patient or field definition not found.

Parameters

Path Parameters
patient_uuidstringrequired
org_idstringrequired

Request Body

fieldsobject[]required

List of custom field values to create or update for the patient.

Responses

200Successful Response
422Validation Error
detailobject[]
curl
curl -X PUT "https://api.example.com/api/v1/{org_id}/patients/{patient_uuid}/field-values" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "fields": []
  }'
put/api/v1/{org_id}/patients/{patient_uuid}/social-history/{category}

Upsert social history entry

Create or update a social history entry for a category. Uses upsert semantics — one entry per category per patient. If an entry already exists for the given category, it is updated; otherwise a new one is created. Categories: tobacco, alcohol, substance, recreational_drugs. Error conditions: - 404: Patient not found. - 409: Stale base_version (optimistic concurrency conflict). - 422: Invalid category value.

Parameters

Path Parameters
patient_uuidstringrequired
categorystringrequired
org_idstringrequired

Request Body

base_versioninteger
counseling_givenboolean

Whether cessation counseling has been provided.

descriptionstring
frequencystring
intervention_codestring
quantitystring
start_datestring (date)
statusstringrequired

Current usage status. One of: current_user, former_user, never_used, unknown, not_asked, declined_to_answer.

stop_datestring (date)

Responses

200Successful Response
categorystringrequired

Social history category. One of: tobacco, alcohol, substance, recreational_drugs.

counseling_givenbooleanrequired

Whether cessation counseling has been provided.

created_atstring (date-time)required

Timestamp when the record was created.

created_byinteger
deleted_atstring (date-time)
descriptionstring
frequencystring
idstring (uuid)required

Unique identifier of the social history record.

intervention_codestring
patientobjectrequired

Lightweight reference to a related entity — exposes UUID and optional name.

quantitystring
start_datestring (date)
statusstringrequired

Current usage status. One of: current_user, former_user, never_used, unknown, not_asked, declined_to_answer.

stop_datestring (date)
updated_atstring (date-time)required

Timestamp when the record was last updated.

versionintegerrequired

Optimistic concurrency version number.

422Validation Error
detailobject[]
curl
curl -X PUT "https://api.example.com/api/v1/{org_id}/patients/{patient_uuid}/social-history/{category}" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "base_version": 1,
    "counseling_given": false,
    "description": "string",
    "frequency": "string",
    "intervention_code": "string",
    "status": "string"
  }'
patch/api/v1/{org_id}/patients/{patient_uuid}

Update patient

Partially update a patient record. Uses PATCH semantics — only provided fields are modified. Requires base_version for optimistic concurrency control. FK references (provider, location, guarantor, etc.) are resolved from UUIDs to internal IDs. Error conditions: - 404: Patient or referenced entity not found. - 409: Version conflict (base_version does not match current). - 422: Validation error.

Parameters

Path Parameters
patient_uuidstringrequired
org_idstringrequired

Request Body

address_line1string
address_line2string
address_notestring
allergy_review_statusenum
nkdanot_reviewedreviewed
appointment_module_notestring
ask_to_arrive_early_minsinteger
base_versionintegerrequired

Current version of the patient record for optimistic concurrency control.

billing_cycle_dayinteger
billing_type_uuidstring (uuid)
chart_numberstring
citystring
consent_flagsinteger
countrystring
date_first_visitstring (date)
date_of_birthstring (date)
date_time_deceasedstring (date-time)
emailstring
emergency_contact_namestring
emergency_contact_phonestring
employer_uuidstring (uuid)
fee_schedule_uuidstring (uuid)
first_namestring
genderenum
femalemalenon_binaryotherprefer_not_to_sayunknown
home_phonestring
last_namestring
location_uuidstring (uuid)
marital_statusenum
divorceddomestic_partnermarriedotherseparatedsinglewidowed
medicaid_idstring
medical_summarystring
medical_urgent_notestring
middle_namestring
mobile_phonestring
postal_codestring
preferred_confirmation_methodenum
emailmailnonephonetext
preferred_contact_methodenum
emailmailnonephonetext
preferred_languagestring
preferred_namestring
premedication_requiredboolean
primary_provider_uuidstring (uuid)
pronounenum
he_himnot_specifiedothershe_herthey_them
receives_emailboolean
receives_smsboolean
responsible_party_uuidstring (uuid)
salutationstring
secondary_provider_uuidstring (uuid)
social_security_numberstring
statestring
titlestring
treatment_notesstring
work_phonestring

Responses

200Successful Response
address_line1string
address_line2string
address_notestring
allergy_review_statusenum

Allergy review status. One of: not_reviewed, nkda, reviewed. 'not_reviewed' means allergies have not been assessed.

nkdanot_reviewedreviewed
appointment_module_notestring
ask_to_arrive_early_minsinteger

Number of minutes to ask the patient to arrive before their appointment (0-120).

balance_0_30string
balance_31_60string
balance_61_90string
balance_over_90string
balance_totalstring
billing_cycle_dayinteger
billing_typeobject

Lightweight reference to a related entity — exposes UUID and optional name.

chart_numberstring
citystring
consent_flagsinteger

Bitmask of consent flags (HIPAA, treatment consent, etc.).

countrystring
created_atstring (date-time)required

Timestamp when the patient record was created.

date_first_visitstring (date)
date_of_birthstring (date)
date_time_deceasedstring (date-time)
deleted_atstring (date-time)
emailstring
emergency_contact_namestring
emergency_contact_phonestring
employerobject

Lightweight reference to a related entity — exposes UUID and optional name.

estimated_balancestring
fee_scheduleobject

Lightweight reference to a related entity — exposes UUID and optional name.

first_namestringrequired

Patient's legal first name.

genderenum

Administrative gender for clinical records. One of: male, female, non_binary, other, unknown, prefer_not_to_say.

femalemalenon_binaryotherprefer_not_to_sayunknown
home_phonestring
idstring (uuid)required

Unique identifier of the patient.

insurance_estimatestring
last_namestringrequired

Patient's legal last name (surname).

latest_vitals_datestring (date)
locationobject

Lightweight reference to a related entity — exposes UUID and optional name.

marital_statusenum
divorceddomestic_partnermarriedotherseparatedsinglewidowed
medicaid_idstring
medical_summarystring
medical_urgent_notestring
middle_namestring
mobile_phonestring
payment_plan_duestring
postal_codestring
potential_duplicatesobject[]
preferred_confirmation_methodenum
emailmailnonephonetext
preferred_contact_methodenum
emailmailnonephonetext
preferred_languagestring
preferred_namestring
premedication_requiredboolean

Whether the patient requires antibiotic premedication before dental procedures.

primary_providerobject

Lightweight reference to a related entity — exposes UUID and optional name.

pronounenum
he_himnot_specifiedothershe_herthey_them
receives_emailboolean

Whether the patient has opted in to receive email communications.

receives_smsboolean

Whether the patient has opted in to receive SMS messages.

responsible_partyobject

Lightweight reference to a related entity — exposes UUID and optional name.

salutationstring
scheduling_restrictedboolean

Whether this patient has a scheduling hold (outstanding balance, missing forms, etc.). Derived from patient status and balance: true when status is 'inactive' or balance exceeds $500.

secondary_providerobject

Lightweight reference to a related entity — exposes UUID and optional name.

smoking_snomedstring
social_security_numberstring
statestring
statusenum

Patient lifecycle status. One of: active, inactive, prospective, deceased, archived. Defaults to 'active'.

activearchiveddeceasedinactiveprospective
titlestring
treatment_notesstring
updated_atstring (date-time)required

Timestamp when the patient record was last updated.

versionintegerrequired

Optimistic concurrency version number.

work_phonestring
422Validation Error
detailobject[]
curl
curl -X PATCH "https://api.example.com/api/v1/{org_id}/patients/{patient_uuid}" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "address_line1": "string",
    "address_line2": "string",
    "address_note": "string",
    "allergy_review_status": "string",
    "appointment_module_note": "string",
    "base_version": 1
  }'
patch/api/v1/{org_id}/patients/{patient_uuid}/alerts/{alert_uuid}

Update patient alert

Update a patient alert. Can modify scope, urgency, status, note, and disable date. Error conditions: - 404: Patient or alert not found. - 409: Version conflict. - 422: Invalid alert_scope or status value.

Parameters

Path Parameters
patient_uuidstringrequired
alert_uuidstringrequired
org_idstringrequired

Request Body

alert_scopestring
base_versionintegerrequired

Current version for optimistic concurrency control.

date_disabledstring (date-time)
disable_onstring (date)
is_urgentboolean
notestring
statusstring

Responses

200Successful Response
alert_definitionobject

Lightweight reference to a related entity — exposes UUID and optional name.

alert_scopestringrequired

Visibility scope. One of: patient (this chart only), family (all family members' charts).

created_atstring (date-time)required

Timestamp when the record was created.

created_byinteger
date_disabledstring (date-time)
disable_onstring (date)
idstring (uuid)required

Unique identifier of the patient alert record.

is_urgentbooleanrequired

Whether this alert should be displayed prominently as an urgent warning.

notestring
patientobjectrequired

Lightweight reference to a related entity — exposes UUID and optional name.

statusstringrequired

Alert lifecycle status. One of: active, disabled, archived.

updated_atstring (date-time)required

Timestamp when the record was last updated.

versionintegerrequired

Optimistic concurrency version number.

422Validation Error
detailobject[]
curl
curl -X PATCH "https://api.example.com/api/v1/{org_id}/patients/{patient_uuid}/alerts/{alert_uuid}" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "alert_scope": "string",
    "base_version": 1,
    "date_disabled": "string",
    "disable_on": "string",
    "is_urgent": null
  }'
patch/api/v1/{org_id}/patients/{patient_uuid}/allergies/{allergy_uuid}

Update patient allergy

Update a patient allergy record. Uses PATCH semantics with optimistic concurrency control. Error conditions: - 404: Patient, allergy, or allergy definition not found. - 409: Version conflict.

Parameters

Path Parameters
patient_uuidstringrequired
allergy_uuidstringrequired
org_idstringrequired

Request Body

allergy_definition_uuidstring (uuid)
base_versionintegerrequired

Current version for optimistic concurrency control.

date_adverse_reactionstring (date)
reactionstring
severitystring
snomed_reactionstring
status_is_activeboolean

Responses

200Successful Response
allergy_definitionobject

Lightweight reference to a related entity — exposes UUID and optional name.

created_atstring (date-time)required

Timestamp when the record was created.

date_adverse_reactionstring (date)
deleted_atstring (date-time)
idstring (uuid)required

Unique identifier of the patient allergy record.

interaction_warningsobject[]

Drug-allergy interaction warnings detected on create. Empty on subsequent reads.

patientobjectrequired

Lightweight reference to a related entity — exposes UUID and optional name.

reactionstring
severitystring
snomed_reactionstring
status_is_activebooleanrequired

Whether this allergy is currently active.

updated_atstring (date-time)required

Timestamp when the record was last updated.

versionintegerrequired

Optimistic concurrency version number.

422Validation Error
detailobject[]
curl
curl -X PATCH "https://api.example.com/api/v1/{org_id}/patients/{patient_uuid}/allergies/{allergy_uuid}" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "allergy_definition_uuid": "string",
    "base_version": 1,
    "date_adverse_reaction": "string",
    "reaction": "string",
    "severity": "string"
  }'
patch/api/v1/{org_id}/patients/{patient_uuid}/diseases/{disease_uuid}

Update patient disease/problem

Update a patient disease/problem record. Commonly used to transition problem_status (e.g. active -> resolved) or update clinical notes. Error conditions: - 404: Patient, disease, or disease definition not found. - 409: Version conflict. - 422: Invalid problem_status or function_status value.

Parameters

Path Parameters
patient_uuidstringrequired
disease_uuidstringrequired
org_idstringrequired

Request Body

base_versionintegerrequired

Current version for optimistic concurrency control.

date_startstring (date)
date_stopstring (date)
disease_definition_uuidstring (uuid)
function_statusstring
patient_notestring
problem_statusstring
snomed_problem_typestring

Responses

200Successful Response
created_atstring (date-time)required

Timestamp when the record was created.

date_startstring (date)
date_stopstring (date)
deleted_atstring (date-time)
disease_definitionobject

Lightweight reference to a related entity — exposes UUID and optional name.

function_statusstringrequired

Clinical function classification per Meaningful Use. One of: problem, cognitive_result, cognitive_problem, functional_result, functional_problem.

idstring (uuid)required

Unique identifier of the patient disease/problem record.

patientobjectrequired

Lightweight reference to a related entity — exposes UUID and optional name.

patient_notestring
problem_statusstringrequired

Lifecycle status of the problem. One of: active, resolved, inactive.

snomed_problem_typestring
updated_atstring (date-time)required

Timestamp when the record was last updated.

versionintegerrequired

Optimistic concurrency version number.

422Validation Error
detailobject[]
curl
curl -X PATCH "https://api.example.com/api/v1/{org_id}/patients/{patient_uuid}/diseases/{disease_uuid}" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "base_version": 1,
    "date_start": "string",
    "date_stop": "string",
    "disease_definition_uuid": "string",
    "function_status": "string"
  }'
patch/api/v1/{org_id}/patients/{patient_uuid}/medications/{medication_uuid}

Update patient medication

Update a patient medication record. Error conditions: - 404: Patient, medication, definition, or provider not found. - 409: Version conflict.

Parameters

Path Parameters
patient_uuidstringrequired
medication_uuidstringrequired
org_idstringrequired

Request Body

base_versionintegerrequired

Current version for optimistic concurrency control.

date_startstring (date)
date_stopstring (date)
discontinuation_reasonstring
dosagestring
frequencystring
is_cpoeboolean
med_descriptstring
medication_definition_uuidstring (uuid)
patient_notestring
provider_uuidstring (uuid)
routestring
rx_cuistring
statusenum
activecompleteddiscontinuedon_hold

Responses

200Successful Response
created_atstring (date-time)required

Timestamp when the record was created.

date_startstring (date)
date_stopstring (date)
deleted_atstring (date-time)
discontinuation_reasonstring
dosagestring
frequencystring
idstring (uuid)required

Unique identifier of the patient medication record.

interaction_warningsobject[]

Drug-allergy interaction warnings detected on create. Empty on subsequent reads.

is_cpoebooleanrequired

Whether entered via Computerized Provider Order Entry.

med_descriptstring
medication_definitionobject

Lightweight reference to a related entity — exposes UUID and optional name.

patientobjectrequired

Lightweight reference to a related entity — exposes UUID and optional name.

patient_notestring
providerobject

Lightweight reference to a related entity — exposes UUID and optional name.

routestring
rx_cuistring
statusenum

Medication lifecycle status. One of: active, discontinued, on_hold, completed.

activecompleteddiscontinuedon_hold
updated_atstring (date-time)required

Timestamp when the record was last updated.

versionintegerrequired

Optimistic concurrency version number.

422Validation Error
detailobject[]
curl
curl -X PATCH "https://api.example.com/api/v1/{org_id}/patients/{patient_uuid}/medications/{medication_uuid}" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "base_version": 1,
    "date_start": "string",
    "date_stop": "string",
    "discontinuation_reason": "string",
    "dosage": "string"
  }'
patch/api/v1/{org_id}/patients/{patient_uuid}/referral-attributions/{attribution_uuid}

Update patient attribution

Update a referral attribution. Only attribution_role and source_note can be modified. Source references (referral_source, referral_partner, provider, referring_patient) are immutable after creation. Requires base_version for optimistic concurrency control. Verifies that the attribution belongs to the specified patient. Error conditions: - 404: Patient or attribution not found, or attribution does not belong to this patient. - 409: Version conflict — the attribution was modified since last read.

Parameters

Path Parameters
patient_uuidstringrequired
attribution_uuidstringrequired
org_idstringrequired

Request Body

attribution_roleenum
assistprimarysecondary
base_versionintegerrequired

Current version for optimistic concurrency. Rejected with 409 if stale.

source_notestring

Responses

200Successful Response
attributed_atstring (date-time)required

Timestamp when the attribution was recorded.

attribution_roleenum

Role of this attribution in the patient's acquisition. One of: primary (first-touch attribution set at intake), secondary (additional touchpoint), assist (contributing factor).

assistprimarysecondary
created_atstring (date-time)required

Timestamp when the record was created.

idstring (uuid)required

Unique identifier of the attribution record.

patientobjectrequired

Lightweight reference to a related entity — exposes UUID and optional name.

providerobject

Lightweight reference to a related entity — exposes UUID and optional name.

referral_partnerobject

Lightweight reference to a related entity — exposes UUID and optional name.

referral_sourceobject

Lightweight reference to a related entity — exposes UUID and optional name.

referring_patientobject

Lightweight reference to a related entity — exposes UUID and optional name.

source_notestring
updated_atstring (date-time)required

Timestamp when the record was last updated.

versionintegerrequired

Optimistic concurrency version number.

422Validation Error
detailobject[]
curl
curl -X PATCH "https://api.example.com/api/v1/{org_id}/patients/{patient_uuid}/referral-attributions/{attribution_uuid}" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "attribution_role": "string",
    "base_version": 1,
    "source_note": "string"
  }'
patch/api/v1/{org_id}/patients/{patient_uuid}/relationships/{relationship_uuid}

Update patient relationship

Update a patient relationship. Can modify relationship_type, is_guardian flag, and note. Error conditions: - 404: Patient or relationship not found. - 409: Version conflict. - 422: Invalid relationship_type value.

Parameters

Path Parameters
patient_uuidstringrequired
relationship_uuidstringrequired
org_idstringrequired

Request Body

base_versionintegerrequired

Current version for optimistic concurrency control.

is_guardianboolean
notestring
relationship_typeenum
caregiverchildclonefoster_childgrandchildgrandparentguardianlife_partnermergeother_familyparentsiblingspousestepchildstepparent

Responses

200Successful Response
created_atstring (date-time)required

Timestamp when the record was created.

deleted_atstring (date-time)
from_patientobjectrequired

Lightweight reference to a related entity — exposes UUID and optional name.

from_patient_namestring
idstring (uuid)required

Unique identifier of the patient relationship record.

is_guardianboolean

Whether the source patient is the legal guardian of the target.

notestring
relationship_typeenumrequired

Type of relationship from source to target.

caregiverchildclonefoster_childgrandchildgrandparentguardianlife_partnermergeother_familyparentsiblingspousestepchildstepparent
to_patientobjectrequired

Lightweight reference to a related entity — exposes UUID and optional name.

to_patient_namestring
updated_atstring (date-time)required

Timestamp when the record was last updated.

versionintegerrequired

Optimistic concurrency version number.

422Validation Error
detailobject[]
curl
curl -X PATCH "https://api.example.com/api/v1/{org_id}/patients/{patient_uuid}/relationships/{relationship_uuid}" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "base_version": 1,
    "is_guardian": null,
    "note": "string",
    "relationship_type": "string"
  }'
patch/api/v1/{org_id}/patients/{patient_uuid}/vital-signs/{vitals_uuid}

Update vital signs

Update a vital signs recording. Error conditions: - 404: Patient, vital signs, or provider not found. - 409: Version conflict.

Parameters

Path Parameters
patient_uuidstringrequired
vitals_uuidstringrequired
org_idstringrequired

Request Body

base_versionintegerrequired

Current version for optimistic concurrency control.

bminumber
bmi_percentileinteger
bp_diastolicinteger
bp_systolicinteger
date_takenstring (date)
has_followup_planboolean
height_inchesnumber
notestring
oxygen_saturationinteger
provider_uuidstring (uuid)
pulseinteger
respiration_rateinteger
temperature_fnumber
time_takenstring (time)
weight_codestring
weight_lbsnumber

Responses

200Successful Response
abnormal_flagsobject[]

Clinical flags for out-of-range vital sign values. Each flag includes the vital name, message, and severity (warning/critical).

bmistring
bmi_percentileinteger
bp_diastolicinteger
bp_systolicinteger
created_atstring (date-time)required

Timestamp when the record was created.

created_byinteger
date_takenstring (date)required

Date when the vital signs were measured.

deleted_atstring (date-time)
has_followup_planbooleanrequired

Whether an abnormal vital signs follow-up plan has been created.

height_inchesstring
idstring (uuid)required

Unique identifier of the patient vital signs record.

is_procedure_blockingboolean

True if any vital sign is in a critical range that should block dental procedures until provider review (e.g., BP >180/120, SpO2 <94%).

notestring
oxygen_saturationinteger
patientobjectrequired

Lightweight reference to a related entity — exposes UUID and optional name.

providerobject

Lightweight reference to a related entity — exposes UUID and optional name.

pulseinteger
respiration_rateinteger
temperature_fstring
time_takenstring (time)
updated_atstring (date-time)required

Timestamp when the record was last updated.

versionintegerrequired

Optimistic concurrency version number.

weight_codestring
weight_lbsstring
422Validation Error
detailobject[]
curl
curl -X PATCH "https://api.example.com/api/v1/{org_id}/patients/{patient_uuid}/vital-signs/{vitals_uuid}" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "base_version": 1,
    "bmi": null,
    "bmi_percentile": 1,
    "bp_diastolic": 1,
    "bp_systolic": 1
  }'
delete/api/v1/{org_id}/patients/{patient_uuid}/social-history/{category}

Archive social history entry

Soft-delete a social history entry for a category. Error conditions: - 404: Patient not found or no entry exists for the category. - 422: Invalid category value.

Parameters

Path Parameters
patient_uuidstringrequired
categorystringrequired
org_idstringrequired

Responses

200Successful Response
categorystringrequired

Social history category. One of: tobacco, alcohol, substance, recreational_drugs.

counseling_givenbooleanrequired

Whether cessation counseling has been provided.

created_atstring (date-time)required

Timestamp when the record was created.

created_byinteger
deleted_atstring (date-time)
descriptionstring
frequencystring
idstring (uuid)required

Unique identifier of the social history record.

intervention_codestring
patientobjectrequired

Lightweight reference to a related entity — exposes UUID and optional name.

quantitystring
start_datestring (date)
statusstringrequired

Current usage status. One of: current_user, former_user, never_used, unknown, not_asked, declined_to_answer.

stop_datestring (date)
updated_atstring (date-time)required

Timestamp when the record was last updated.

versionintegerrequired

Optimistic concurrency version number.

422Validation Error
detailobject[]
curl
curl -X DELETE "https://api.example.com/api/v1/{org_id}/patients/{patient_uuid}/social-history/{category}" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json"

Alert Definitions

5 endpoints

get/api/v1/{org_id}/patient-alert-definitions

List Patient Alert Definitions

Parameters

Path Parameters
org_idstringrequired
Query Parameters
pageinteger

Default: 1

page_sizeinteger

Default: 50

searchstring
categorystring

Responses

200Successful Response
itemsobject[]required
pageintegerrequired
page_sizeintegerrequired
totalintegerrequired
422Validation Error
detailobject[]
curl
curl -X GET "https://api.example.com/api/v1/{org_id}/patient-alert-definitions" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json"
get/api/v1/{org_id}/patient-alert-definitions/{definition_uuid}

Get Patient Alert Definition

Parameters

Path Parameters
definition_uuidstringrequired
org_idstringrequired

Responses

200Successful Response
categorystring
created_atstring (date-time)required
default_is_urgentbooleanrequired
default_scopestringrequired
deleted_atstring (date-time)
descriptionstring
idstring (uuid)required
item_orderintegerrequired
namestringrequired
updated_atstring (date-time)required
versionintegerrequired
422Validation Error
detailobject[]
curl
curl -X GET "https://api.example.com/api/v1/{org_id}/patient-alert-definitions/{definition_uuid}" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json"
post/api/v1/{org_id}/patient-alert-definitions

Create Patient Alert Definition

Parameters

Path Parameters
org_idstringrequired

Request Body

categorystring
default_is_urgentboolean
default_scopestring
descriptionstring
item_orderinteger
namestringrequired

Responses

201Successful Response
categorystring
created_atstring (date-time)required
default_is_urgentbooleanrequired
default_scopestringrequired
deleted_atstring (date-time)
descriptionstring
idstring (uuid)required
item_orderintegerrequired
namestringrequired
updated_atstring (date-time)required
versionintegerrequired
422Validation Error
detailobject[]
curl
curl -X POST "https://api.example.com/api/v1/{org_id}/patient-alert-definitions" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "category": "string",
    "default_is_urgent": false,
    "default_scope": "patient",
    "description": "string",
    "item_order": 1,
    "name": "string"
  }'
post/api/v1/{org_id}/patient-alert-definitions/{definition_uuid}/archive

Archive Patient Alert Definition

Parameters

Path Parameters
definition_uuidstringrequired
org_idstringrequired

Request Body

base_versionintegerrequired

Responses

200Successful Response
categorystring
created_atstring (date-time)required
default_is_urgentbooleanrequired
default_scopestringrequired
deleted_atstring (date-time)
descriptionstring
idstring (uuid)required
item_orderintegerrequired
namestringrequired
updated_atstring (date-time)required
versionintegerrequired
422Validation Error
detailobject[]
curl
curl -X POST "https://api.example.com/api/v1/{org_id}/patient-alert-definitions/{definition_uuid}/archive" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "base_version": 1
  }'
patch/api/v1/{org_id}/patient-alert-definitions/{definition_uuid}

Update Patient Alert Definition

Parameters

Path Parameters
definition_uuidstringrequired
org_idstringrequired

Request Body

base_versionintegerrequired
categorystring
default_is_urgentboolean
default_scopestring
descriptionstring
item_orderinteger
namestring

Responses

200Successful Response
categorystring
created_atstring (date-time)required
default_is_urgentbooleanrequired
default_scopestringrequired
deleted_atstring (date-time)
descriptionstring
idstring (uuid)required
item_orderintegerrequired
namestringrequired
updated_atstring (date-time)required
versionintegerrequired
422Validation Error
detailobject[]
curl
curl -X PATCH "https://api.example.com/api/v1/{org_id}/patient-alert-definitions/{definition_uuid}" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "base_version": 1,
    "category": "string",
    "default_is_urgent": null,
    "default_scope": "string",
    "description": "string"
  }'

Field Definitions

5 endpoints

get/api/v1/{org_id}/patient-field-definitions

List Patient Field Definitions

Parameters

Path Parameters
org_idstringrequired
Query Parameters
pageinteger

Default: 1

page_sizeinteger

Default: 50

searchstring

Responses

200Successful Response
itemsobject[]required
pageintegerrequired
page_sizeintegerrequired
totalintegerrequired
422Validation Error
detailobject[]
curl
curl -X GET "https://api.example.com/api/v1/{org_id}/patient-field-definitions" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json"
get/api/v1/{org_id}/patient-field-definitions/{definition_uuid}

Get Patient Field Definition

Parameters

Path Parameters
definition_uuidstringrequired
org_idstringrequired

Responses

200Successful Response
created_atstring (date-time)required
deleted_atstring (date-time)
descriptionstring
dropdown_optionsstring[]
field_typestringrequired
idstring (uuid)required
is_requiredbooleanrequired
item_orderintegerrequired
namestringrequired
updated_atstring (date-time)required
versionintegerrequired
422Validation Error
detailobject[]
curl
curl -X GET "https://api.example.com/api/v1/{org_id}/patient-field-definitions/{definition_uuid}" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json"
post/api/v1/{org_id}/patient-field-definitions

Create Patient Field Definition

Parameters

Path Parameters
org_idstringrequired

Request Body

descriptionstring
dropdown_optionsstring[]
field_typestringrequired
is_requiredboolean
item_orderinteger
namestringrequired

Responses

201Successful Response
created_atstring (date-time)required
deleted_atstring (date-time)
descriptionstring
dropdown_optionsstring[]
field_typestringrequired
idstring (uuid)required
is_requiredbooleanrequired
item_orderintegerrequired
namestringrequired
updated_atstring (date-time)required
versionintegerrequired
422Validation Error
detailobject[]
curl
curl -X POST "https://api.example.com/api/v1/{org_id}/patient-field-definitions" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "description": "string",
    "dropdown_options": null,
    "field_type": "string",
    "is_required": false,
    "item_order": 0,
    "name": "string"
  }'
post/api/v1/{org_id}/patient-field-definitions/{definition_uuid}/archive

Archive Patient Field Definition

Parameters

Path Parameters
definition_uuidstringrequired
org_idstringrequired

Request Body

base_versionintegerrequired

Responses

200Successful Response
created_atstring (date-time)required
deleted_atstring (date-time)
descriptionstring
dropdown_optionsstring[]
field_typestringrequired
idstring (uuid)required
is_requiredbooleanrequired
item_orderintegerrequired
namestringrequired
updated_atstring (date-time)required
versionintegerrequired
422Validation Error
detailobject[]
curl
curl -X POST "https://api.example.com/api/v1/{org_id}/patient-field-definitions/{definition_uuid}/archive" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "base_version": 1
  }'
patch/api/v1/{org_id}/patient-field-definitions/{definition_uuid}

Update Patient Field Definition

Parameters

Path Parameters
definition_uuidstringrequired
org_idstringrequired

Request Body

base_versionintegerrequired
descriptionstring
dropdown_optionsstring[]
field_typestring
is_requiredboolean
item_orderinteger
namestring

Responses

200Successful Response
created_atstring (date-time)required
deleted_atstring (date-time)
descriptionstring
dropdown_optionsstring[]
field_typestringrequired
idstring (uuid)required
is_requiredbooleanrequired
item_orderintegerrequired
namestringrequired
updated_atstring (date-time)required
versionintegerrequired
422Validation Error
detailobject[]
curl
curl -X PATCH "https://api.example.com/api/v1/{org_id}/patient-field-definitions/{definition_uuid}" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "base_version": 1,
    "description": "string",
    "dropdown_options": null,
    "field_type": "string",
    "is_required": null
  }'

Tag Definitions

5 endpoints

get/api/v1/{org_id}/patient-tag-definitions

List Patient Tag Definitions

Parameters

Path Parameters
org_idstringrequired
Query Parameters
pageinteger

Default: 1

page_sizeinteger

Default: 50

searchstring
categorystring

Responses

200Successful Response
itemsobject[]required
pageintegerrequired
page_sizeintegerrequired
totalintegerrequired
422Validation Error
detailobject[]
curl
curl -X GET "https://api.example.com/api/v1/{org_id}/patient-tag-definitions" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json"
get/api/v1/{org_id}/patient-tag-definitions/{definition_uuid}

Get Patient Tag Definition

Parameters

Path Parameters
definition_uuidstringrequired
org_idstringrequired

Responses

200Successful Response
categorystring
colorstring
created_atstring (date-time)required
deleted_atstring (date-time)
descriptionstring
idstring (uuid)required
item_orderintegerrequired
namestringrequired
updated_atstring (date-time)required
versionintegerrequired
422Validation Error
detailobject[]
curl
curl -X GET "https://api.example.com/api/v1/{org_id}/patient-tag-definitions/{definition_uuid}" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json"
post/api/v1/{org_id}/patient-tag-definitions

Create Patient Tag Definition

Parameters

Path Parameters
org_idstringrequired

Request Body

categorystring
colorstring
descriptionstring
item_orderinteger
namestringrequired

Responses

201Successful Response
categorystring
colorstring
created_atstring (date-time)required
deleted_atstring (date-time)
descriptionstring
idstring (uuid)required
item_orderintegerrequired
namestringrequired
updated_atstring (date-time)required
versionintegerrequired
422Validation Error
detailobject[]
curl
curl -X POST "https://api.example.com/api/v1/{org_id}/patient-tag-definitions" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "category": "string",
    "color": "string",
    "description": "string",
    "item_order": 1,
    "name": "string"
  }'
post/api/v1/{org_id}/patient-tag-definitions/{definition_uuid}/archive

Archive Patient Tag Definition

Parameters

Path Parameters
definition_uuidstringrequired
org_idstringrequired

Request Body

base_versionintegerrequired

Responses

200Successful Response
categorystring
colorstring
created_atstring (date-time)required
deleted_atstring (date-time)
descriptionstring
idstring (uuid)required
item_orderintegerrequired
namestringrequired
updated_atstring (date-time)required
versionintegerrequired
422Validation Error
detailobject[]
curl
curl -X POST "https://api.example.com/api/v1/{org_id}/patient-tag-definitions/{definition_uuid}/archive" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "base_version": 1
  }'
patch/api/v1/{org_id}/patient-tag-definitions/{definition_uuid}

Update Patient Tag Definition

Parameters

Path Parameters
definition_uuidstringrequired
org_idstringrequired

Request Body

base_versionintegerrequired
categorystring
colorstring
descriptionstring
item_orderinteger
namestring

Responses

200Successful Response
categorystring
colorstring
created_atstring (date-time)required
deleted_atstring (date-time)
descriptionstring
idstring (uuid)required
item_orderintegerrequired
namestringrequired
updated_atstring (date-time)required
versionintegerrequired
422Validation Error
detailobject[]
curl
curl -X PATCH "https://api.example.com/api/v1/{org_id}/patient-tag-definitions/{definition_uuid}" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "base_version": 1,
    "category": "string",
    "color": "string",
    "description": "string",
    "item_order": 1
  }'