---
title: "How to Read Patient Demographics, Emergency Contacts and Medication Dosing with"
img: https://unified.to/images/logo.svg
date: 2026-10-24T01:21:00.000Z
updated: 2026-10-24T11:40:24.847Z
readingTime: 3
tag: Product
description: "Your product can read a patient's race, ethnicity, marital status and emergency contacts, and the route and dose of each medication they're prescribed, from..."
url: "https://unified.to/blog/how_to_read_patient_demographics_emergency_contacts_and_medication_dosing_with"
---

# How to Read Patient Demographics, Emergency Contacts and Medication Dosing with

Your product can read a patient's race, ethnicity, marital status and emergency contacts, and the route and dose of each medication they're prescribed, from AdvancedMD, athenahealth, Canvas Medical, CharmHealth, Epic, Google Cloud [Healthcare API](/healthcare), Greenway Health, MEDITECH, Medtech ALEX, ModMed, Netsmart, NextGen Healthcare, Oracle Health, Orion Health, PointClickCare, SMART on FHIR, TruBridge and Veradigm, on the Patient and Medication objects you may already use (as of 24 October 2026). Cambio also returns medication route and dose.


These fields arrive on the same `sdk.healthcare.listHealthcarePatients` and `sdk.healthcare.listHealthcareMedications` calls, so existing integrations get them with no code change beyond reading the new fields.


## Why these fields matter


**Race and ethnicity** are required for health-equity reporting, quality measures stratified by population, and clinical trial recruitment. US EHRs record them in a standard form (CDC race and ethnicity codes, as required by the US Core standard), so they're reliable enough to report on.


**Emergency contacts** matter to any product that reaches a patient's family or caregiver: discharge follow-up, remote monitoring alerts, home health scheduling.


**Medication route and dose** turn "Metformin 500 MG" into something a product can act on: 1 tablet, by mouth. Adherence apps, medication reconciliation and dosing checks need the structured values, not just the free-text instructions.


## Read the new patient fields


```typescript
import { UnifiedTo } from '@unified-api/typescript-sdk';

const sdk = new UnifiedTo({
  security: { jwt: process.env.UNIFIED_API_KEY },
});

const patient = await sdk.healthcare.getHealthcarePatient({ connectionId, id: patientId });
```


`races` and `ethnicities` are lists of codings. Each has `system`, `code` and `display`, for example `{ system: 'urn:oid:2.16.840.1.113883.6.238', code: '2106-3', display: 'White' }`. A patient can have more than one race; both the high-level category and the more detailed code are included when the EHR records them. Report on `code`, display `display`.


These come from US Core extensions, so they're empty on non-US EHRs such as Medtech ALEX and Orion Health. An empty list means not recorded; don't infer anything from it.


`marital_status` is `MARRIED`, `SINGLE`, `DOMESTIC_PARTNER`, `SEPARATED`, `DIVORCED`, `WIDOWED`, `ANNULLED`, `UNKNOWN` or `OTHER`.


`contacts` lists the patient's contact persons. Each has a `name`, a `relationship` as the EHR words it ("Emergency Contact", "Spouse", "Guardian"), `telephones`, `emails` and an `address`.


```typescript
const emergency = patient.contacts?.find((c) => /emergency/i.test(c.relationship ?? '')) ?? patient.contacts?.[0];
```


`relationship` is the EHR's own text, so match it loosely and let the user confirm before you contact anyone.


## Read medication route and dose


```typescript
const medications = await sdk.healthcare.listHealthcareMedications({ connectionId, patientId });

for (const med of medications) {
  // e.g. "Metformin 500 MG Oral Tablet": 1 tablet, Oral route, "1 tablet by mouth twice daily"
  console.log(med.name, med.dose_number, med.dose_unit, med.route, med.dosage);
}
```


`dose_number` and `dose_unit` are the amount per dose (1 tablet, 10 mg). `route` is how it's taken (Oral route, Intravenous). `dosage` keeps the full free-text instructions, including frequency, and remains the safest thing to show a patient.


Structured values come from the first dosing instruction on the prescription. Tapering or split doses have several instructions; show `dosage` in that case rather than a single number.


## Handling coverage that varies by EHR


**Render what returns.** Every field here is optional and depends on what the practice recorded. Build interfaces that work when they're missing.


**Check support before you scope** on the [Supported Integrations page](https://docs.unified.to/healthcare/integrations).


**Read-only.** Demographics and contacts are maintained in the EHR's registration workflow; medications by the prescriber.


→ [Start your 30-day free trial](https://app.unified.to/login)
→ [Book a demo](https://calendly.com/d/cph9-g8n-jzg/connect-with-unified)


## Frequently asked questions


**Is race and ethnicity data handled differently?**


It's sensitive, and many products only need it in aggregate. Request only what your feature needs: pass `fields` on the list call to limit the response to the fields you use. [Unified.to](http://unified.to/) keeps no patient records at rest and is HIPAA compliant.


**Why is** **`dose_number`** **empty when** **`dosage`** **says "1 tablet"?**


The EHR recorded the instructions only as text. Show `dosage`; don't parse it into a number.