> For the complete documentation index, see [llms.txt](https://docs.snomed.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.snomed.org/implementation-guides/drug-model-implementation-guide/information-models-and-terminology-bindings/fhir-and-hl7-terminology-binding-examples.md).

# FHIR and HL7 Terminology Binding Examples

## Introduction

HL7® FHIR® (Fast Healthcare Interoperability Resources) is widely used to exchange medication information between healthcare systems. The SNOMED CT Drug Model can be used as a terminology for representing medications within FHIR resources, enabling interoperable and semantically consistent medication workflows.

This section provides examples of how SNOMED CT drug concepts are bound to key FHIR resources across common use cases, including prescribing, dispensing, administration, and medication history.

The examples illustrate:

* how different SNOMED CT drug model concept levels (MP, MPF, CD, RCD, RPCD) are used
* how these concepts are represented in FHIR resources
* how terminology bindings support interoperability and traceability across workflows

{% hint style="info" %}
Further details on the FHIR resources referenced in this section can be found in the HL7 FHIR specification

* Medication: <https://hl7.org/fhir/medication.html>
* MedicationDispense: <https://hl7.org/fhir/medicationdispense.html>
* MedicationStatement: <https://hl7.org/fhir/medicationstatement.html>
* MedicationAdministration: <https://hl7.org/fhir/medicationadministration.html>
* MedicationRequest: <https://hl7.org/fhir/medicationrequest.html>
  {% endhint %}

## Key Considerations for Using SNOMED CT in FHIR

When using the SNOMED CT Drug Model in FHIR resources, terminology bindings should be carefully aligned with the role of each resource within the medication workflow.

The following principles should be applied:

* Use Clinical Drug (CD) for prescribing to ensure a precise and interoperable definition of the intended medication, including ingredient, strength, and dose form
* Use Real Clinical Drug (RCD) for dispensing and administration to capture the exact product supplied or administered
* Use SNOMED CT consistently across all medication-related resources to support traceability across prescribing, dispensing, and administration workflows

In FHIR, SNOMED CT drug concepts are typically bound to CodeableConcept elements, such as medicationCodeableConcept. The selection of the appropriate SNOMED CT concept level for these elements is critical, as it determines the level of clinical detail and supports safe, consistent interpretation of medication data across systems.

Although the same data element may be used across multiple FHIR resources, its meaning depends on the context in which it is used:

* In *MedicationRequest*, .**medicationCodeableConcept** represents the prescribed medication and is therefore typically bound to a Clinical Drug (CD)
* In *MedicationDispense* and *MedicationAdministration*, the same element represents the actual product supplied or administered and is therefore bound to a Real Clinical Drug (RCD)
* In *MedicationStatement*, the element may be bound to either a CD or an RCD, depending on the level of detail available

Clearly identifying both the specific FHIR data element and its role within the workflow is essential to ensure that terminology bindings are applied consistently, safely, and interoperably across implementations.

## Examples

### FHIR Medication Resource

The FHIR Medication resource represents a medication definition that can be referenced by other resources. It provides a reusable representation of a medicinal product across systems.

In prescribing workflows, the Medication resource is typically populated using a Clinical Drug (CD) concept. This represents the intended medication independently of any specific brand or manufacturer, supporting consistency in prescribing and enabling substitution during dispensing.

```json
{
  "resourceType": "Medication",
  "code": {
    "coding": [
      {
        "system": "http://snomed.info/sct",
        "code": "CD_CODE",
        "display": "Amoxicillin 500 mg oral capsule"
      }
    ]
  }
}
```

* Concept level: Clinical Drug (CD)
* Use case: Generic prescribing, reusable medication definition

### FHIR MedicationRequest (Prescribing)

The MedicationRequest resource represents a prescription issued by a clinician and captures the clinical intent, including the medication and dosage instructions.

For prescribing, the medication is represented using a Clinical Drug (CD) to ensure that the prescription clearly specifies the active ingredient, strength, and dose form, while remaining independent of any specific brand. This allows pharmacists to safely substitute equivalent products during dispensing.

```json
{
  "resourceType": "MedicationRequest",
  "medicationCodeableConcept": {
    "coding": [
      {
        "system": "http://snomed.info/sct",
        "code": "CD_CODE",
        "display": "Amoxicillin 500 mg oral capsule"
      }
    ]
  },
  "dosageInstruction": [
    {
      "text": "Take one capsule three times daily"
    }
  ]
}
```

* Concept level: Clinical Drug (CD)
* Rationale: Provides a precise and interoperable definition of the prescribed medication

### FHIR MedicationDispense (Dispensing)

The MedicationDispense resource records the medication actually supplied by the pharmacy.

At this stage, it is important to capture the exact product dispensed, including brand and manufacturer where applicable. Therefore, a Real Clinical Drug (RCD) concept is used. This ensures traceability between what was prescribed and what was dispensed, and supports pharmacovigilance and reimbursement processes.

```json
{
  "resourceType": "MedicationDispense",
  "medicationCodeableConcept": {
    "coding": [
      {
        "system": "http://snomed.info/sct",
        "code": "RCD_CODE",
        "display": "Brand X amoxicillin 500 mg capsule"
      }
    ]
  }
}
```

* Concept level: Real Clinical Drug (RCD)
* Rationale: Captures the exact product supplied to the patient

### FHIR MedicationAdministration (Administration)

The MedicationAdministration resource records the medication actually administered to the patient, typically in a clinical setting.

At this stage, it is critical to record the exact product administered, as this directly impacts patient safety, auditing, and clinical outcomes. Therefore, the medication is represented using a Real Clinical Drug (RCD).

In addition, the route of administration is captured using SNOMED CT qualifier values to ensure consistent and interoperable representation.

```json
{
  "resourceType": "MedicationAdministration",
  "medicationCodeableConcept": {
    "coding": [
      {
        "system": "http://snomed.info/sct",
        "code": "RCD_CODE",
        "display": "Morphine sulfate 10 mg/mL solution for injection – BrandX"
      }
    ]
  },
  "route": {
    "coding": [
      {
        "system": "http://snomed.info/sct",
        "code": "26643006",
        "display": "Oral route"
      }
    ]
  }
}
```

* Concept level: Real Clinical Drug (RCD)
* Additional binding: Route represented using SNOMED CT qualifier values
* Rationale: Ensures accurate recording of both the administered product and the route of administration

### FHIR MedicationStatement (Medication History)

The *MedicationStatement* resource represents medications that a patient is taking or has taken, based on patient report, clinical records, or other sources.

The level of detail available in medication history may vary. In some cases, only the generic drug is known, while in others the exact product may be recorded. Therefore, both Clinical Drug (CD) and Real Clinical Drug (RCD) concepts may be used.

This flexibility allows medication history to be recorded accurately while still supporting clinical decision support and analytics.

```json
{
  "resourceType": "MedicationStatement",
  "medicationCodeableConcept": {
    "coding": [
      {
        "system": "http://snomed.info/sct",
        "code": "CD_CODE",
        "display": "Metformin 500 mg oral tablet"
      }
    ]
  }
}
```

* Concept level: Clinical Drug (CD) or Real Clinical Drug (RCD)
* Rationale: Supports varying levels of detail depending on available information

### Summary of FHIR Bindings

<table><thead><tr><th width="116.0833740234375">FHIR Resource</th><th width="256.4635009765625">FHIR Data Element</th><th width="116.4765625">Recommended Concept Level</th><th>Example</th></tr></thead><tbody><tr><td>Medication</td><td>Medication.code</td><td>CD / RCD</td><td><em>Product containing precisely amoxicillin 500 milligram oral capsule (clinical drug)</em></td></tr><tr><td>MedicationRequest</td><td>MedicationRequest.medicationCodeableConcept</td><td>CD</td><td><em>Product containing precisely amoxicillin 500 milligram oral capsule (clinical drug)</em></td></tr><tr><td>MedicationDispense</td><td>MedicationDispense.medicationCodeableConcept</td><td>RCD</td><td><em>Brand X amoxicillin 500 milligram oral capsule (real clinical drug)</em></td></tr><tr><td>MedicationAdministration</td><td>MedicationAdministration.medicationCodeableConcept</td><td>RCD</td><td><em>Morphine sulfate 10 milligram per milliliter solution for injection (real clinical drug)</em></td></tr><tr><td>MedicationAdministration</td><td>MedicationAdministration.route</td><td>SNOMED CT qualifier (route)</td><td><em>Oral route (qualifier value)</em></td></tr><tr><td>MedicationStatement</td><td>MedicationStatement.medicationCodeableConcept</td><td>CD / RCD</td><td><em>Product containing precisely metformin 500 milligram oral tablet (clinical drug)</em></td></tr></tbody></table>

<a href="https://docs.google.com/forms/d/e/1FAIpQLScTmbZIf0UEQwYDkY27EEWBkaiYkHSbR0_9DmFrMLXoQLyL7Q/viewform?usp=pp_url&#x26;entry.1767247133=SNOMED+Drug+Extension+Guide&#x26;entry.670899847=FHIR%20and%20HL7%20Terminology%20Binding%20Examples" class="button primary">Provide Feedback</a>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.snomed.org/implementation-guides/drug-model-implementation-guide/information-models-and-terminology-bindings/fhir-and-hl7-terminology-binding-examples.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
