Chart Data Model | Medplum

A charting UI reads patient-level data that persists across visits and encounter-level data created during each visit. This page is a reference: the first half covers longitudinal patient context (summary, demographics, devices), the second covers encounter-time resources (Observations, Conditions, Allergies, external documents). Each major resource has its own section. For visit orchestration and the SOAP-aligned template pattern, see Visit Templates and the SOAP Approach.

Patient Summary and Queries

Demographics come from the Patient resource. You can load related records with Patient $everything, but that response can be large for a dashboard view. Prefer targeted searches for active CarePlan, MedicationRequest, Condition, and other slices your UI needs. See Search to compose queries.

React components that help assemble timelines and summaries include PatientTimeline, Timeline, Search control, ResourceAvatar, FhirPathDisplay, and tab navigation (for example Mantine Tabs, used throughout Medplum apps).

Patient
Homer Simpson
Observation
Heart Rate: 150 bpm
Observation
Pregnancy Status: 26 weeks
Condition
Type II Diabetes
AllergyIntolerance
Penicillin G
critical
MedicationRequest
Tylenol
Immunization
Fluvax
RiskAssessment
Heart Attack: 10%

Key Resources for Patient Context

Resource Description
Observation Point-in-time clinical measurements and findings.
Condition Diagnoses and longitudinal problems.
RiskAssessment Modeled risk scores and similar assessments.
AllergyIntolerance Adverse reactions to drugs or substances.
Immunization Vaccination history.
Medication Drug definitions; ordering uses MedicationRequest and summaries may use MedicationStatement.
MedicationAdministration Documents when the patient received or took a medication (administration event).

Key Code Systems

Code System Description
LOINC Used in Observation and RiskAssessment for clinical coding, compliance, billing, and reporting.
ICD-10 Used in Condition for interoperability and billing; also common on encounter-related billing metadata.
RXNORM Drug coding for allergies and medication orders.
SNOMED Substances and clinical concepts.
CVX Immunization vaccine types.

Encounter-Centric Resources

During a visit, resources typically link to an Encounter. Notes often use ClinicalImpression; measurements use Observation; orders use ServiceRequest and MedicationRequest.

Results

Appointment
Homer Simpson
Fall Assessment
Encounter
Homer Simpson
Fall Assessment Encounter
Patient
Homer Simpson
Condition
Arthritis
Clinical Impression
Homer Simpson
Fall Assessment Note
Observation
Heart Rate: 150 bpm
RiskAssessment
Fall Risk: 80%
Resource Role
Encounter Visit container in-person or virtual.
ClinicalImpression Assessment narrative and findings for the encounter.
Condition Encounter diagnoses when categorized accordingly.
Observation Vitals and other measurements tied to the encounter.
RiskAssessment Structured risk scores for the encounter when used.

Patient Demographics

Capturing patient demographics is a core EHR capability. ONC references this under demographics (a)(5). Data may arrive via UI, integration, or API.

The USCDI V2 standard defines technical expectations; see the US Core Patient profile.

React Components

Medplum provides React components for Patient demographics aligned with common collection requirements.

Capturing Aliases

Use Patient.name with period and use to represent legal history – for example maiden names:

{

"name": [

{

"given": ["Marge", "Jacqueline"],

"family": "Simpson",

"period": { "start": "1980-01-01T00:00:00Z" },

"use": "official"

},

{

"given": ["Marge", "Jacqueline"],

"family": "née Bouvier",

"period": { "end": "1980-01-01T00:00:00Z" },

"use": "old"

}

]

}

Demographic Value Sets

Use standard value sets rather than ad hoc codes. Correct coding supports reporting and interoperability.

Category Name
Gender Administrative Gender Value Set
Race US Core Race Extension
Ethnicity US Core Ethnicity Extension
Birth Sex Birth Sex Extension

Lifecycle

Managing duplicates belongs in every implementation – see Patient deduplication.

When a patient dies, record time of death on Patient.deceased. Represent cause of death as an Observation with ICD-10 or another appropriate ontology.