Charting
Building out a charting experience requires composing multiple FHIR resources into an experience that meets the requirements of practitioners. There are three primary interactions that developers should consider when building out a custom charting experience:
- Summarizing patient history and status
- Capturing clinical notes
- Placing orders for medications, labs, imaging, etc.
Patient History
Here is a sample of what a charting experience might look like - to be clear, charting can look however you want it to. A sample charting application built off of Medplum React components and be found on medplum-chart-demo github.

When summarizing patient history, gathering demographic data from the Patient resource is a basic first step. You can also query all resources related to a given patient from the Patient $everything endpoint.
Depending on your use case, $everything may be verbose to summarize in a chart, so queries for specific resources like active CarePlans, MedicationRequests, Conditions may be more appropriate. Search is useful to construct the specific queries that will give the context needed for a chart.
React components are available to aid in building a quick charting experience. PatientTimeline, Timeline, Search control, ResourceAvatar, FhirPathDisplay and Tabs are potential components that can speed development of the summarized history.
Key Resources
| Resource | Description |
|---|---|
Observation | A structured representation of point-in-time clinical measurements. |
Condition | A record of a long-term diagnosis for a patient. |
RiskAssessment | A specialized form of an Observation used to model propensity for an adverse outcome. |
AllergyIntolerance | Used for a specific type of risk: adverse reaction to a drug or substance. |
Immunization | A summary statement of vaccination records. |
Medication | A representation of an instance of a given drug. The Medication lifecycle also includes the below resources. |
MedicationRequest | An order or prescription. |
MedicationAdministration | A lifecycle resource representing when the Patient ingests the drug. |
MedicationStatement | A summary statement of the drug. |
Key Code Systems
| Code System | Description |
|---|---|
| LOINC | Used in Observation and RiskAssessment resources for compliance, billing, and reporting. |
| ICD-10 | Used in Condition resources for interoperability and billing. |
| RXNORM | Used in AllergyIntolerance resources to track drug intolerances and MedicationRequest resources to track requested drugs. |
| SNOMED | Used in AllergyIntolerance resources to track substance intolerances. |
| CVX | Used in Immunization resources to track vaccine types. |
Encounter & Charting
Capturing Notes
A wide variety of notes experiences are possible, and customizability is one of the key reasons to use a headless system. From a technical perspective, after a practitioner/patient interaction is complete, a set of appropriate FHIR resources should be created.
Some implementations have a simple text box and allow the practitioner to enter text free form, then construct Encounter and/or ClinicalImpression resources.
Some implementations have a library of Questionnaires that practitioners fill out and use Bots to drive workflow and create resources in a specific way.
Key Resources
| Resource | Description |
|---|---|
Encounter | Primary tracking resource for a visit (either in-person or virtual). |
ClinicalImpression | Medplum-advised resource for recording unstructured notes. |
Condition | A record of a long-term diagnosis for a Patient. The outcome of an Encounter can be a Condition with a type of 'encounter diagnosis'. For more details see the Representing Diagnoses docs. |
Observation | A structured representation of point-in-time clinical measurements. |
RiskAssessment | A specialized form of an Observation that is used to model propensity for an adverse outcome. |
Key Code Systems
| Code System | Description |
|---|---|
| CPT | Used to annotate Encounter resources for billing. |
| ICD-10 | Used to annotate Encounter resources for billing. |
- CPT: Used to annotate
Encounterresources for billing. - ICD-10: Used to annotate
Encounterresources for billing.
Placing Orders
Placing orders requires constructing the right resources, which can be created directly or via Questionnaires and Bots. Refer to our section on Labs and Imaging or Prescriptions for more details.
Reference
- Sample application Charting Demo Source Code
- Charting Demo Video on Youtube (3 min)
- Medical condition/diagnosis 1CD-9 sample ValueSet bundle
- Charting Features and Fixes on Github