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).
| Observation |
| Heart Rate: 150 bpm |
| Observation |
| Pregnancy Status: 26 weeks |
| Condition |
| Type II Diabetes |
| AllergyIntolerance |
| Penicillin G |
| critical |
| MedicationRequest |
| Tylenol |
| RiskAssessment |
| Heart Attack: 10% |
Key Resources for Patient Context
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 |
| 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.
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.