Skip to main content

Medication Composition using ingredients

To represent the composition of a medication, especially for mixed solutions, within a Medication resource in FHIR R4, the Medication.ingredient component can be used. This allows for a clear and standardized definition of the individual ingredients and their respective proportions in the overall solution.

Structure

Ingredient

The Medication.ingredient component is used to define the individual ingredients of the mixture. Each ingredient is described by the following elements:

ElementTypeDescription
itemReferenceReference(Medication)References the Medication resource of the respective ingredient. This can be, for example, a Virtual Medical Product (VMP).
strengthRatioSpecifies the concentration of the ingredient in the overall solution.
strength.numeratorQuantityExample: 0.25ml
strength.denominatorQuantityAlways based on 1, e.g. 1ml

Total volume

And we use Medication.totalVolume which will represent the total amount of all ingredients in the Medication.

Contained resources

To reduce the complexity of references and increase data consistency, we use Contained Resources for the Medication and Substance resources. This means that the Medication and Substance resources are not stored as separate resources, but are embedded directly within the MedicationRequest resource.

This has the following advantages:

  • Simpler data structure: All relevant information is contained in a single resource (the MedicationRequest resource).
  • Increased data consistency: It ensures that the Medication and Substance resources are always synchronized with the MedicationRequest resource.
  • Reduced complexity: The need to manage and reference separate resources is eliminated.

To use Contained Resources, the Medication and Substance resources are stored in the contained array of the MedicationRequest resource. The references in the MedicationRequest resource (e.g., medicationReference, itemReference) then point to the corresponding resources in the contained array.

Example
{
"resourceType": "MedicationRequest",
"id": "medicationrequest-example",
"status": "active",
"intent": "order",
"medicationReference": {
"reference": "#medication-example"
},
"subject": {
"reference": "Patient/example"
},
"contained": [
{
"resourceType": "Medication",
"id": "medication-example",
"code": {
"coding": [
{
"system": "http://example.org/fhir/CodeSystem/medication-codes",
"code": "example-medication",
"display": "Example Medication"
}
],
"text": "Example Medication"
}
}
]
}

In this example, the Medication resource with the ID medication-example is contained in the contained array of the MedicationRequest resource. The medicationReference points to this resource by prefixing the ID with a # (#medication-example).

Examples

Norepinephrine and Water

The example shows a solution of 5ml Norephinephrine mixed with 15ml water.
{
"resourceType": "Medication",
"id": "medication-norepinephrine-solution",
"totalVolume": {
"value": 20,
"unit": "ml",
"system": "http://unitsofmeasure.org",
"code": "mL"
},
"ingredient": [
{
"itemReference": {
"reference": "Medication/norepinephrine-vmp"
},
"strength": {
"numerator": {
"value": 0.25,
"unit": "ml"
},
"denominator": {
"value": 1,
"unit": "ml"
}
}
},
{
"itemReference": {
"reference": "Medication/water-vmp"
},
"strength": {
"numerator": {
"value": 0.75,
"unit": "ml"
},
"denominator": {
"value": 1,
"unit": "ml"
}
}
}
]
}

Piperacillin + Tazobactam and NaCl

This example shows a solution of 2g/0,25g Piperacillin + Tazobactam mixed with 100ml NaCL

Medication Wrapper for the combined solution of Piperacillin + Tazobactam and NaCl
{
"resourceType": "Medication",
"id": "piperacillin-tazobactam-solution",
"totalVolume": {
"value": 100,
"unit": "ml",
"system": "http://unitsofmeasure.org",
"code": "mL"
},
"ingredient": [
{
"itemReference": {
"reference": "#piperacillin-tazobactam-vmp"
},
"strength": {
"numerator": {
"value": 0.01,
"unit": "vial"
},
"denominator": {
"value": 1,
"unit": "ml"
}
},
"isActive": true
},
{
"itemReference": {
"reference": "#sodium-chloride-09"
},
"strength": {
"numerator": {
"value": 1,
"unit": "ml"
},
"denominator": {
"value": 1,
"unit": "ml"
}
},
"isActive": false
}
]
}
Referenced Medication for Piperacillin + Tazobactam VMP
{
"resourceType": "Medication",
"id": "piperacillin-tazobactam-vmp",
"code": {
"coding": [
{
"system": "http://example.org/fhir/CodeSystem/vidal-vmp",
"code": "VMP-56789",
"display": "PIPERACILLIN (natrium) 2 g + TAZOBACTAM (natrium) 250 mg Pulver zur Herstellung einer Injektionslösung"
}
],
"text": "PIPERACILLIN (natrium) 2 g + TAZOBACTAM (natrium) 250 mg Pulver zur Herstellung einer Injektionslösung"
},
"form": {
"coding": [
{
"system": "http://snomed.info/sct",
"code": "421677003",
"display": "Powder for solution for injection"
}
],
"text": "Powder for solution for injection"
},
"ingredient": [
{
"itemReference": {
"reference": "#piperacillin"
},
"strength": {
"numerator": {
"value": 2,
"unit": "g"
},
"denominator": {
"value": 1,
"unit": "vial"
}
},
},
{
"itemReference": {
"reference": "#tazobactam"
},
"strength": {
"numerator": {
"value": 0.25,
"unit": "g"
},
"denominator": {
"value": 1,
"unit": "vial"
}
},
}
]
}
Referenced Medication for Natriumchlorid
{
"resourceType": "Medication",
"id": "sodium-chloride-09",
"code": {
"coding": [
{
"system": "http://www.whocc.no/atc",
"code": "B05XA03",
"display": "Sodium chloride"
}
],
"text": "NaCl 0,9%"
},
"form": {
"coding": [
{
"system": "http://snomed.info/sct",
"code": "385219002",
"display": "Solution for injection"
}
],
"text": "Solution for injection"
},
"ingredient": [
{
"itemReference": {
"reference": "#sodium-chloride"
},
"strength": {
"numerator": {
"value": 0.9,
"unit": "g"
},
"denominator": {
"value": 100,
"unit": "ml"
}
}
}
]
}
Referenced Substance for Piperacillin
{
"resourceType": "Substance",
"id": "piperacillin",
"code": {
"coding": [
{
"system": "http://www.nlm.nih.gov/research/umls/rxnorm",
"code": "8414",
"display": "Piperacillin"
}
],
"text": "Piperacillin"
},
}
Referenced Substance for Tazobactam
{
"resourceType": "Substance",
"id": "tazobactam",
"code": {
"coding": [
{
"system": "http://www.nlm.nih.gov/research/umls/rxnorm",
"code": "23479",
"display": "Tazobactam"
}
],
"text": "Tazobactam"
},
}
Referenced Substance for Natriumchlorid
{
"resourceType": "Substance",
"id": "sodium-chloride",
"code": {
"coding": [
{
"system": "http://www.nlm.nih.gov/research/umls/rxnorm",
"code": "3168",
"display": "Sodium Chloride"
}
],
"text": "Sodium Chloride"
}
}
How to calculate the actual given amount of e.g. Piperacillin

If you want to know how much substance a patient was given, you take the nominator of the ingredient from the top-level Medication, multiply with the amount given to the patient and the nominator in the substance you want to know.

Let's assume you prepare 100ml solution, like stated above. And you administer 20ml to the patient. Then this is your formula:

0.01vialsml2gvial20ml=0.4g Piperacillin0.01 \frac{vials}{ml} \cdot 2 \frac{g}{vial} \cdot 20 ml = 0.4 g \text{ Piperacillin}

In this example:

  • 0.01 vials/ml is the strength of the ingredient in the top-level Medication
  • 2 g/vial is the active amount of Piperacillin in the Substance
  • 20 ml is the administered dose (part of the DosageInstruction)

Explanation

  • Medication.extension.total-volume: Stores the total amount of the compisition after mixing. This is important for traceability and calculation purposes.
  • Medication.code: Describes the mixed solution as a whole. The code should contain a unique value from a suitable code system to describe the type of solution.
  • Medication.ingredient: Defines the individual ingredients of the mixture.
  • itemReference: Refers to the Medication resource that represents the respective ingredient. This allows for the reuse of medication information and the linking to detailed descriptions of the ingredients.
  • strength: Specifies the concentration of the ingredient in the overall solution. The numerator indicates the amount of the ingredient, while the denominator represents the total amount of the solution.

Advantages

  • Standardization: Uses the standard FHIR component Medication.ingredient, which improves interoperability and ensures compliance with FHIR standards.
  • Simplicity: Clear and simple structure that is easy to understand and implement.
  • Flexibility: Enables the definition of complex medication compositions with precise details of the individual ingredients and their concentrations.