Release 5 Draft Ballot

This page is part of the FHIR Specification (v4.6.0: R5 Draft Ballot - see ballot notes). The current version which supercedes this version is 5.0.0. For a full list of available versions, see the Directory of published versions . Page versions: R5 R4B R4 R3 R2

11.2 Resource MedicationAdministration - Content

Pharmacy Work GroupMaturity Level: 2 Trial UseSecurity Category: Patient Compartments: Device, Encounter, Patient, Practitioner, RelatedPerson

Describes the event of a patient consuming or otherwise being administered a medication. This may be as simple as swallowing a tablet or it may be a long running infusion. Related resources tie this event to the authorizing prescription, and the specific encounter between patient and health care practitioner.

This resource covers the administration of all medications and vaccines. Please refer to the Immunization Resource/Profile for the treatment of vaccines. It will principally be used within care settings (including inpatient) to record medication administrations, including self-administrations of oral medications, injections, intravenous infusions, etc. It can also be used in outpatient settings to record allergy shots and other non-immunization administrations. In some cases, it might be used for home-health reporting, such as recording self-administered or even device-administered insulin.

Note: devices coated with a medication (e.g. heparin) are not typically recorded as a medication administration. However, administration of a medication via an implanted medication pump (e.g. insulin) would be recorded as a MedicationAdministration

MedicationAdministration is an event resource from a FHIR workflow perspective - see Workflow Event

The Medication domain includes a number of related resources

MedicationRequest An order for both supply of the medication and the instructions for administration of the medicine to a patient.
MedicationDispense Provision of a supply of a medication with the intention that it is subsequently consumed by a patient (usually in response to a prescription).
MedicationAdministration When a patient actually consumes a medicine, or it is otherwise administered to them
MedicationUsage This is a record of a medication being taken by a patient or that a medication has been given to a patient, where the record is the result of a report from the patient or another clinician. A medication statement is not a part of the prescribe->dispense->administer sequence but is a report that such a sequence (or at least a part of it) did take place, resulting in a belief that the patient has received a particular medication.

MedicationAdministration is intended for tracking the administration of non-vaccine medications. Administration of vaccines is intended to be handled using the Immunization resource. Some systems treat immunizations in the same way as any other medication administration. Such systems SHOULD use an immunization resource to represent these. If systems need to use a MedicationAdministration resource to capture vaccinations for workflow or other reasons, they SHOULD also create and expose an equivalent Immunization instance.

This resource is referenced by AdverseEvent, ChargeItem, itself, MedicationDispense, MedicationUsage, Observation and Procedure.

This resource implements the Event pattern.

Structure

NameFlagsCard.TypeDescription & Constraintsdoco
.. MedicationAdministration TUDomainResourceAdministration of medication to a patient
Elements defined in Ancestors: id, meta, implicitRules, language, text, contained, extension, modifierExtension
... identifier 0..*IdentifierExternal identifier
... instantiatesCanonical Σ0..*canonical(PlanDefinition | ActivityDefinition)Instantiates protocol or definition
... instantiatesUri Σ0..*uriInstantiates external protocol or definition
... partOf Σ0..*Reference(MedicationAdministration | Procedure)Part of referenced event
... status ?!Σ1..1codein-progress | not-done | on-hold | completed | entered-in-error | stopped | unknown
MedicationAdministration Status Codes (Required)
... statusReason 0..*CodeableConceptReason administration not performed
SNOMED CT Reason Medication Not Given Codes (Example)
... category 0..*CodeableConceptType of medication administration
MedicationAdministration Location Codes (Example)
... medication Σ1..1CodeableReference(Medication)What was administered
SNOMED CT Medication Codes (Example)
... subject Σ1..1Reference(Patient | Group)Who received medication
... encounter 0..1Reference(Encounter)Encounter administered as part of
... supportingInformation 0..*Reference(Any)Additional information to support administration
... occurence[x] Σ1..1Start and end time of administration
.... occurenceDateTimedateTime
.... occurencePeriodPeriod
... recorded Σ0..1dateTimeWhen the MedicationAdministration was first captured in the subject's record
... performer Σ0..*BackboneElementWho performed the medication administration and what they did
.... function 0..1CodeableConceptType of performance
MedicationAdministration Performer Function Codes (Example)
.... actor Σ1..1Reference(Practitioner | PractitionerRole | Patient | RelatedPerson | Device)Who performed the medication administration
... reason 0..*CodeableReference(Condition | Observation | DiagnosticReport)Concept, condition or observation that supports why the medication was administered
Reason Medication Given Codes (Example)
... request 0..1Reference(MedicationRequest)Request administration performed against
... device 0..*Reference(Device)Device used to administer
... note 0..*AnnotationInformation about the administration
... dosage I0..1BackboneElementDetails of how medication was taken
+ Rule: If dosage attribute is present then SHALL have at least one of dosage.text or dosage.dose or dosage.rate[x]
.... text 0..1stringFree text dosage instructions e.g. SIG
.... site 0..1CodeableConceptBody site administered to
SNOMED CT Anatomical Structure for Administration Site Codes (Example)
.... route 0..1CodeableConceptPath of substance into body
SNOMED CT Route Codes (Example)
.... method 0..1CodeableConceptHow drug was administered
SNOMED CT Administration Method Codes (Example)
.... dose 0..1SimpleQuantityAmount of medication per dose
.... rate[x] 0..1Dose quantity per unit of time
..... rateRatioRatio
..... rateQuantitySimpleQuantity
... eventHistory 0..*Reference(Provenance)A list of events of interest in the lifecycle

doco Documentation for this format

UML Diagram (Legend)

MedicationAdministration (DomainResource)Identifiers associated with this Medication Administration that are defined by business processes and/or used to refer to it when a direct URL reference to the resource itself is not appropriate. They are business identifiers assigned to this resource by the performer or other systems and remain constant as the resource is updated and propagates from server to serveridentifier : Identifier [0..*]A protocol, guideline, orderset, or other definition that was adhered to in whole or in part by this eventinstantiatesCanonical : canonical [0..*] « PlanDefinition| ActivityDefinition »The URL pointing to an externally maintained protocol, guideline, orderset or other definition that is adhered to in whole or in part by this MedicationAdministrationinstantiatesUri : uri [0..*]A plan that is fulfilled in whole or in part by this MedicationAdministrationbasedOn : Reference [0..*] « CarePlan »A larger event of which this particular event is a component or steppartOf : Reference [0..*] « MedicationAdministration|Procedure »Will generally be set to show that the administration has been completed. For some long running administrations such as infusions, it is possible for an administration to be started but not completed or it may be paused while some other process is under way (this element modifies the meaning of other elements)status : code [1..1] « null (Strength=Required)MedicationAdministration Stat...! »A code indicating why the administration was not performedstatusReason : CodeableConcept [0..*] « null (Strength=Example) SNOMEDCTReasonMedicationNotGi...?? »The type of medication administration (for example, drug classification like ATC, where meds would be administered, legal category of the medication)category : CodeableConcept [0..*] « null (Strength=Example)MedicationAdministration Loca...?? »Identifies the medication that was administered. This is either a link to a resource representing the details of the medication or a simple attribute carrying a code that identifies the medication from a known list of medicationsmedication : DataType [1..1] « Medication; null (Strength=Example)SNOMEDCTMedicationCodes?? »The person or animal or group receiving the medicationsubject : Reference [1..1] « Patient|Group »The visit, admission, or other contact between patient and health care provider during which the medication administration was performedencounter : Reference [0..1] « Encounter »Additional information (for example, patient height and weight) that supports the administration of the medication. This attribute can be used to provide documentation of specific characteristics of the patient present at the time of administration. For example, if the dose says "give "x" if the heartrate exceeds "y"", then the heart rate can be included using this attributesupportingInformation : Reference [0..*] « Any »A specific date/time or interval of time during which the administration took place (or did not take place). For many administrations, such as swallowing a tablet the use of dateTime is more appropriateoccurence[x] : DataType [1..1] « dateTime|Period »The date the occurrence of the MedicationAdministration was first captured in the record - potentially significantly after the occurrence of the eventrecorded : dateTime [0..1]A code, Condition or observation that supports why the medication was administeredreason : DataType [0..*] « Condition|Observation|DiagnosticReport; null (Strength=Example) ReasonMedicationGivenCodes?? »The original request, instruction or authority to perform the administrationrequest : Reference [0..1] « MedicationRequest »The device used in administering the medication to the patient. For example, a particular infusion pumpdevice : Reference [0..*] « Device »Extra information about the medication administration that is not conveyed by the other attributesnote : Annotation [0..*]A summary of the events of interest that have occurred, such as when the administration was verifiedeventHistory : Reference [0..*] « Provenance »PerformerDistinguishes the type of involvement of the performer in the medication administrationfunction : CodeableConcept [0..1] « null (Strength=Example)MedicationAdministration Perf...?? »Indicates who or what performed the medication administrationactor : Reference [1..1] « Practitioner|PractitionerRole|Patient| RelatedPerson|Device »DosageFree text dosage can be used for cases where the dosage administered is too complex to code. When coded dosage is present, the free text dosage may still be present for display to humans. The dosage instructions should reflect the dosage of the medication that was administeredtext : string [0..1]A coded specification of the anatomic site where the medication first entered the body. For example, "left arm"site : CodeableConcept [0..1] « null (Strength=Example)SNOMEDCTAnatomicalStructureFo...?? »A code specifying the route or physiological path of administration of a therapeutic agent into or onto the patient. For example, topical, intravenous, etcroute : CodeableConcept [0..1] « null (Strength=Example)SNOMEDCTRouteCodes?? »A coded value indicating the method by which the medication is intended to be or was introduced into or on the body. This attribute will most often NOT be populated. It is most commonly used for injections. For example, Slow Push, Deep IVmethod : CodeableConcept [0..1] « null (Strength=Example)SNOMEDCTAdministrationMethodC...?? »The amount of the medication given at one administration event. Use this value when the administration is essentially an instantaneous event such as a swallowing a tablet or giving an injectiondose : Quantity(SimpleQuantity) [0..1]Identifies the speed with which the medication was or will be introduced into the patient. Typically, the rate for an infusion e.g. 100 ml per 1 hour or 100 ml/hr. May also be expressed as a rate per unit of time, e.g. 500 ml per 2 hours. Other examples: 200 mcg/min or 200 mcg/1 minute; 1 liter/8 hoursrate[x] : DataType [0..1] « Ratio|Quantity(SimpleQuantity) »Indicates who or what performed the medication administration and how they were involvedperformer[0..*]Describes the medication dosage information details e.g. dose, rate, site, route, etcdosage[0..1]

XML Template

<MedicationAdministration xmlns="http://hl7.org/fhir"> doco
 <!-- from Resource: id, meta, implicitRules, and language -->
 <!-- from DomainResource: text, contained, extension, and modifierExtension -->
 <identifier><!-- 0..* Identifier External identifier --></identifier>
 <instantiatesCanonical><!-- 0..* canonical(ActivityDefinition|PlanDefinition) Instantiates protocol or definition --></instantiatesCanonical>
 <instantiatesUri value="[uri]"/><!-- 0..* Instantiates external protocol or definition -->
 <basedOn><!-- 0..* Reference(CarePlan) Plan this is fulfilled by this administration --></basedOn>
 <partOf><!-- 0..* Reference(MedicationAdministration|Procedure) Part of referenced event --></partOf>
 <status value="[code]"/><!-- 1..1 in-progress | not-done | on-hold | completed | entered-in-error | stopped | unknown -->
 <statusReason><!-- 0..* CodeableConcept Reason administration not performed --></statusReason>
 <category><!-- 0..* CodeableConcept Type of medication administration --></category>
 <medication><!-- 1..1 CodeableReference(Medication) What was administered --></medication>
 <subject><!-- 1..1 Reference(Group|Patient) Who received medication --></subject>
 <encounter><!-- 0..1 Reference(Encounter) Encounter administered as part of --></encounter>
 <supportingInformation><!-- 0..* Reference(Any) Additional information to support administration --></supportingInformation>
 <occurence[x]><!-- 1..1 dateTime|Period Start and end time of administration --></occurence[x]>
 <recorded value="[dateTime]"/><!-- 0..1 When the MedicationAdministration was first captured in the subject's record -->
 <performer>  <!-- 0..* Who performed the medication administration and what they did -->
  <function><!-- 0..1 CodeableConcept Type of performance --></function>
  <actor><!-- 1..1 Reference(Device|Patient|Practitioner|PractitionerRole|
    RelatedPerson) Who performed the medication administration --></actor>
 </performer>
 <reason><!-- 0..* CodeableReference(Condition|DiagnosticReport|Observation) Concept, condition or observation that supports why the medication was administered --></reason>
 <request><!-- 0..1 Reference(MedicationRequest) Request administration performed against --></request>
 <device><!-- 0..* Reference(Device) Device used to administer --></device>
 <note><!-- 0..* Annotation Information about the administration --></note>
 <dosage>  <!-- 0..1 Details of how medication was taken -->
  <text value="[string]"/><!-- 0..1 Free text dosage instructions e.g. SIG -->
  <site><!-- 0..1 CodeableConcept Body site administered to --></site>
  <route><!-- 0..1 CodeableConcept Path of substance into body --></route>
  <method><!-- 0..1 CodeableConcept How drug was administered --></method>
  <dose><!-- 0..1 Quantity(SimpleQuantity) Amount of medication per dose --></dose>
  <rate[x]><!-- 0..1 Ratio|Quantity(SimpleQuantity) Dose quantity per unit of time --></rate[x]>
 </dosage>
 <eventHistory><!-- 0..* Reference(Provenance) A list of events of interest in the lifecycle --></eventHistory>
</MedicationAdministration>

JSON Template

{doco
  "resourceType" : "MedicationAdministration",
  // from Resource: id, meta, implicitRules, and language
  // from DomainResource: text, contained, extension, and modifierExtension
  "identifier" : [{ Identifier }], // External identifier
  "instantiatesCanonical" : [{ canonical(ActivityDefinition|PlanDefinition) }], // Instantiates protocol or definition
  "instantiatesUri" : ["<uri>"], // Instantiates external protocol or definition
  "basedOn" : [{ Reference(CarePlan) }], // Plan this is fulfilled by this administration
  "partOf" : [{ Reference(MedicationAdministration|Procedure) }], // Part of referenced event
  "status" : "<code>", // R!  in-progress | not-done | on-hold | completed | entered-in-error | stopped | unknown
  "statusReason" : [{ CodeableConcept }], // Reason administration not performed
  "category" : [{ CodeableConcept }], // Type of medication administration
  "medication" : { CodeableReference(Medication) }, // R!  What was administered
  "subject" : { Reference(Group|Patient) }, // R!  Who received medication
  "encounter" : { Reference(Encounter) }, // Encounter administered as part of
  "supportingInformation" : [{ Reference(Any) }], // Additional information to support administration
  // occurence[x]: Start and end time of administration. One of these 2:
  "occurenceDateTime" : "<dateTime>",
  "occurencePeriod" : { Period },
  "recorded" : "<dateTime>", // When the MedicationAdministration was first captured in the subject's record
  "performer" : [{ // Who performed the medication administration and what they did
    "function" : { CodeableConcept }, // Type of performance
    "actor" : { Reference(Device|Patient|Practitioner|PractitionerRole|
    RelatedPerson) } // R!  Who performed the medication administration
  }],
  "reason" : [{ CodeableReference(Condition|DiagnosticReport|Observation) }], // Concept, condition or observation that supports why the medication was administered
  "request" : { Reference(MedicationRequest) }, // Request administration performed against
  "device" : [{ Reference(Device) }], // Device used to administer
  "note" : [{ Annotation }], // Information about the administration
  "dosage" : { // Details of how medication was taken
    "text" : "<string>", // Free text dosage instructions e.g. SIG
    "site" : { CodeableConcept }, // Body site administered to
    "route" : { CodeableConcept }, // Path of substance into body
    "method" : { CodeableConcept }, // How drug was administered
    "dose" : { Quantity(SimpleQuantity) }, // Amount of medication per dose
    // rate[x]: Dose quantity per unit of time. One of these 2:
    "rateRatio" : { Ratio }
    "rateQuantity" : { Quantity(SimpleQuantity) }
  },
  "eventHistory" : [{ Reference(Provenance) }] // A list of events of interest in the lifecycle
}

Turtle Template

@prefix fhir: <http://hl7.org/fhir/> .doco


[ a fhir:MedicationAdministration;
  fhir:nodeRole fhir:treeRoot; # if this is the parser root

  # from Resource: .id, .meta, .implicitRules, and .language
  # from DomainResource: .text, .contained, .extension, and .modifierExtension
  fhir:MedicationAdministration.identifier [ Identifier ], ... ; # 0..* External identifier
  fhir:MedicationAdministration.instantiatesCanonical [ canonical(ActivityDefinition|PlanDefinition) ], ... ; # 0..* Instantiates protocol or definition
  fhir:MedicationAdministration.instantiatesUri [ uri ], ... ; # 0..* Instantiates external protocol or definition
  fhir:MedicationAdministration.basedOn [ Reference(CarePlan) ], ... ; # 0..* Plan this is fulfilled by this administration
  fhir:MedicationAdministration.partOf [ Reference(MedicationAdministration|Procedure) ], ... ; # 0..* Part of referenced event
  fhir:MedicationAdministration.status [ code ]; # 1..1 in-progress | not-done | on-hold | completed | entered-in-error | stopped | unknown
  fhir:MedicationAdministration.statusReason [ CodeableConcept ], ... ; # 0..* Reason administration not performed
  fhir:MedicationAdministration.category [ CodeableConcept ], ... ; # 0..* Type of medication administration
  fhir:MedicationAdministration.medication [ CodeableReference(Medication) ]; # 1..1 What was administered
  fhir:MedicationAdministration.subject [ Reference(Group|Patient) ]; # 1..1 Who received medication
  fhir:MedicationAdministration.encounter [ Reference(Encounter) ]; # 0..1 Encounter administered as part of
  fhir:MedicationAdministration.supportingInformation [ Reference(Any) ], ... ; # 0..* Additional information to support administration
  # MedicationAdministration.occurence[x] : 1..1 Start and end time of administration. One of these 2
    fhir:MedicationAdministration.occurenceDateTime [ dateTime ]
    fhir:MedicationAdministration.occurencePeriod [ Period ]
  fhir:MedicationAdministration.recorded [ dateTime ]; # 0..1 When the MedicationAdministration was first captured in the subject's record
  fhir:MedicationAdministration.performer [ # 0..* Who performed the medication administration and what they did
    fhir:MedicationAdministration.performer.function [ CodeableConcept ]; # 0..1 Type of performance
    fhir:MedicationAdministration.performer.actor [ Reference(Device|Patient|Practitioner|PractitionerRole|RelatedPerson) ]; # 1..1 Who performed the medication administration
  ], ...;
  fhir:MedicationAdministration.reason [ CodeableReference(Condition|DiagnosticReport|Observation) ], ... ; # 0..* Concept, condition or observation that supports why the medication was administered
  fhir:MedicationAdministration.request [ Reference(MedicationRequest) ]; # 0..1 Request administration performed against
  fhir:MedicationAdministration.device [ Reference(Device) ], ... ; # 0..* Device used to administer
  fhir:MedicationAdministration.note [ Annotation ], ... ; # 0..* Information about the administration
  fhir:MedicationAdministration.dosage [ # 0..1 Details of how medication was taken
    fhir:MedicationAdministration.dosage.text [ string ]; # 0..1 Free text dosage instructions e.g. SIG
    fhir:MedicationAdministration.dosage.site [ CodeableConcept ]; # 0..1 Body site administered to
    fhir:MedicationAdministration.dosage.route [ CodeableConcept ]; # 0..1 Path of substance into body
    fhir:MedicationAdministration.dosage.method [ CodeableConcept ]; # 0..1 How drug was administered
    fhir:MedicationAdministration.dosage.dose [ Quantity(SimpleQuantity) ]; # 0..1 Amount of medication per dose
    # MedicationAdministration.dosage.rate[x] : 0..1 Dose quantity per unit of time. One of these 2
      fhir:MedicationAdministration.dosage.rateRatio [ Ratio ]
      fhir:MedicationAdministration.dosage.rateSimpleQuantity [ Quantity(SimpleQuantity) ]
  ];
  fhir:MedicationAdministration.eventHistory [ Reference(Provenance) ], ... ; # 0..* A list of events of interest in the lifecycle
]

Changes since R3

MedicationAdministration
MedicationAdministration.instantiatesCanonical
  • Added Element
MedicationAdministration.instantiatesUri
  • Added Element
MedicationAdministration.basedOn
  • Added Element
MedicationAdministration.status
  • Change value set from http://hl7.org/fhir/ValueSet/medication-admin-status|4.0.0 to http://hl7.org/fhir/ValueSet/medication-admin-status|4.6.0
MedicationAdministration.category
  • Max Cardinality changed from 1 to *
MedicationAdministration.medication
  • Added Mandatory Element
MedicationAdministration.encounter
  • Added Element
MedicationAdministration.occurence[x]
  • Added Mandatory Element
MedicationAdministration.recorded
  • Added Element
MedicationAdministration.reason
  • Added Element
MedicationAdministration.dosage.rate[x]
  • Add Type Quantity()
  • Remove Type Quantity()
MedicationAdministration.instantiates
  • deleted
MedicationAdministration.medication[x]
  • deleted
MedicationAdministration.context
  • deleted
MedicationAdministration.effective[x]
  • deleted
MedicationAdministration.reasonCode
  • deleted
MedicationAdministration.reasonReference
  • deleted

See the Full Difference for further information

This analysis is available as XML or JSON.

See R3 <--> R4 Conversion Maps (status = 14 tests that all execute ok. 4 fail round-trip testing and 14 r3 resources are invalid (0 errors).)

Structure

NameFlagsCard.TypeDescription & Constraintsdoco
.. MedicationAdministration TUDomainResourceAdministration of medication to a patient
Elements defined in Ancestors: id, meta, implicitRules, language, text, contained, extension, modifierExtension
... identifier 0..*IdentifierExternal identifier
... instantiatesCanonical Σ0..*canonical(PlanDefinition | ActivityDefinition)Instantiates protocol or definition
... instantiatesUri Σ0..*uriInstantiates external protocol or definition
... partOf Σ0..*Reference(MedicationAdministration | Procedure)Part of referenced event
... status ?!Σ1..1codein-progress | not-done | on-hold | completed | entered-in-error | stopped | unknown
MedicationAdministration Status Codes (Required)
... statusReason 0..*CodeableConceptReason administration not performed
SNOMED CT Reason Medication Not Given Codes (Example)
... category 0..*CodeableConceptType of medication administration
MedicationAdministration Location Codes (Example)
... medication Σ1..1CodeableReference(Medication)What was administered
SNOMED CT Medication Codes (Example)
... subject Σ1..1Reference(Patient | Group)Who received medication
... encounter 0..1Reference(Encounter)Encounter administered as part of
... supportingInformation 0..*Reference(Any)Additional information to support administration
... occurence[x] Σ1..1Start and end time of administration
.... occurenceDateTimedateTime
.... occurencePeriodPeriod
... recorded Σ0..1dateTimeWhen the MedicationAdministration was first captured in the subject's record
... performer Σ0..*BackboneElementWho performed the medication administration and what they did
.... function 0..1CodeableConceptType of performance
MedicationAdministration Performer Function Codes (Example)
.... actor Σ1..1Reference(Practitioner | PractitionerRole | Patient | RelatedPerson | Device)Who performed the medication administration
... reason 0..*CodeableReference(Condition | Observation | DiagnosticReport)Concept, condition or observation that supports why the medication was administered
Reason Medication Given Codes (Example)
... request 0..1Reference(MedicationRequest)Request administration performed against
... device 0..*Reference(Device)Device used to administer
... note 0..*AnnotationInformation about the administration
... dosage I0..1BackboneElementDetails of how medication was taken
+ Rule: If dosage attribute is present then SHALL have at least one of dosage.text or dosage.dose or dosage.rate[x]
.... text 0..1stringFree text dosage instructions e.g. SIG
.... site 0..1CodeableConceptBody site administered to
SNOMED CT Anatomical Structure for Administration Site Codes (Example)
.... route 0..1CodeableConceptPath of substance into body
SNOMED CT Route Codes (Example)
.... method 0..1CodeableConceptHow drug was administered
SNOMED CT Administration Method Codes (Example)
.... dose 0..1SimpleQuantityAmount of medication per dose
.... rate[x] 0..1Dose quantity per unit of time
..... rateRatioRatio
..... rateQuantitySimpleQuantity
... eventHistory 0..*Reference(Provenance)A list of events of interest in the lifecycle

doco Documentation for this format

UML Diagram (Legend)

MedicationAdministration (DomainResource)Identifiers associated with this Medication Administration that are defined by business processes and/or used to refer to it when a direct URL reference to the resource itself is not appropriate. They are business identifiers assigned to this resource by the performer or other systems and remain constant as the resource is updated and propagates from server to serveridentifier : Identifier [0..*]A protocol, guideline, orderset, or other definition that was adhered to in whole or in part by this eventinstantiatesCanonical : canonical [0..*] « PlanDefinition| ActivityDefinition »The URL pointing to an externally maintained protocol, guideline, orderset or other definition that is adhered to in whole or in part by this MedicationAdministrationinstantiatesUri : uri [0..*]A plan that is fulfilled in whole or in part by this MedicationAdministrationbasedOn : Reference [0..*] « CarePlan »A larger event of which this particular event is a component or steppartOf : Reference [0..*] « MedicationAdministration|Procedure »Will generally be set to show that the administration has been completed. For some long running administrations such as infusions, it is possible for an administration to be started but not completed or it may be paused while some other process is under way (this element modifies the meaning of other elements)status : code [1..1] « null (Strength=Required)MedicationAdministration Stat...! »A code indicating why the administration was not performedstatusReason : CodeableConcept [0..*] « null (Strength=Example) SNOMEDCTReasonMedicationNotGi...?? »The type of medication administration (for example, drug classification like ATC, where meds would be administered, legal category of the medication)category : CodeableConcept [0..*] « null (Strength=Example)MedicationAdministration Loca...?? »Identifies the medication that was administered. This is either a link to a resource representing the details of the medication or a simple attribute carrying a code that identifies the medication from a known list of medicationsmedication : DataType [1..1] « Medication; null (Strength=Example)SNOMEDCTMedicationCodes?? »The person or animal or group receiving the medicationsubject : Reference [1..1] « Patient|Group »The visit, admission, or other contact between patient and health care provider during which the medication administration was performedencounter : Reference [0..1] « Encounter »Additional information (for example, patient height and weight) that supports the administration of the medication. This attribute can be used to provide documentation of specific characteristics of the patient present at the time of administration. For example, if the dose says "give "x" if the heartrate exceeds "y"", then the heart rate can be included using this attributesupportingInformation : Reference [0..*] « Any »A specific date/time or interval of time during which the administration took place (or did not take place). For many administrations, such as swallowing a tablet the use of dateTime is more appropriateoccurence[x] : DataType [1..1] « dateTime|Period »The date the occurrence of the MedicationAdministration was first captured in the record - potentially significantly after the occurrence of the eventrecorded : dateTime [0..1]A code, Condition or observation that supports why the medication was administeredreason : DataType [0..*] « Condition|Observation|DiagnosticReport; null (Strength=Example) ReasonMedicationGivenCodes?? »The original request, instruction or authority to perform the administrationrequest : Reference [0..1] « MedicationRequest »The device used in administering the medication to the patient. For example, a particular infusion pumpdevice : Reference [0..*] « Device »Extra information about the medication administration that is not conveyed by the other attributesnote : Annotation [0..*]A summary of the events of interest that have occurred, such as when the administration was verifiedeventHistory : Reference [0..*] « Provenance »PerformerDistinguishes the type of involvement of the performer in the medication administrationfunction : CodeableConcept [0..1] « null (Strength=Example)MedicationAdministration Perf...?? »Indicates who or what performed the medication administrationactor : Reference [1..1] « Practitioner|PractitionerRole|Patient| RelatedPerson|Device »DosageFree text dosage can be used for cases where the dosage administered is too complex to code. When coded dosage is present, the free text dosage may still be present for display to humans. The dosage instructions should reflect the dosage of the medication that was administeredtext : string [0..1]A coded specification of the anatomic site where the medication first entered the body. For example, "left arm"site : CodeableConcept [0..1] « null (Strength=Example)SNOMEDCTAnatomicalStructureFo...?? »A code specifying the route or physiological path of administration of a therapeutic agent into or onto the patient. For example, topical, intravenous, etcroute : CodeableConcept [0..1] « null (Strength=Example)SNOMEDCTRouteCodes?? »A coded value indicating the method by which the medication is intended to be or was introduced into or on the body. This attribute will most often NOT be populated. It is most commonly used for injections. For example, Slow Push, Deep IVmethod : CodeableConcept [0..1] « null (Strength=Example)SNOMEDCTAdministrationMethodC...?? »The amount of the medication given at one administration event. Use this value when the administration is essentially an instantaneous event such as a swallowing a tablet or giving an injectiondose : Quantity(SimpleQuantity) [0..1]Identifies the speed with which the medication was or will be introduced into the patient. Typically, the rate for an infusion e.g. 100 ml per 1 hour or 100 ml/hr. May also be expressed as a rate per unit of time, e.g. 500 ml per 2 hours. Other examples: 200 mcg/min or 200 mcg/1 minute; 1 liter/8 hoursrate[x] : DataType [0..1] « Ratio|Quantity(SimpleQuantity) »Indicates who or what performed the medication administration and how they were involvedperformer[0..*]Describes the medication dosage information details e.g. dose, rate, site, route, etcdosage[0..1]

XML Template

<MedicationAdministration xmlns="http://hl7.org/fhir"> doco
 <!-- from Resource: id, meta, implicitRules, and language -->
 <!-- from DomainResource: text, contained, extension, and modifierExtension -->
 <identifier><!-- 0..* Identifier External identifier --></identifier>
 <instantiatesCanonical><!-- 0..* canonical(ActivityDefinition|PlanDefinition) Instantiates protocol or definition --></instantiatesCanonical>
 <instantiatesUri value="[uri]"/><!-- 0..* Instantiates external protocol or definition -->
 <basedOn><!-- 0..* Reference(CarePlan) Plan this is fulfilled by this administration --></basedOn>
 <partOf><!-- 0..* Reference(MedicationAdministration|Procedure) Part of referenced event --></partOf>
 <status value="[code]"/><!-- 1..1 in-progress | not-done | on-hold | completed | entered-in-error | stopped | unknown -->
 <statusReason><!-- 0..* CodeableConcept Reason administration not performed --></statusReason>
 <category><!-- 0..* CodeableConcept Type of medication administration --></category>
 <medication><!-- 1..1 CodeableReference(Medication) What was administered --></medication>
 <subject><!-- 1..1 Reference(Group|Patient) Who received medication --></subject>
 <encounter><!-- 0..1 Reference(Encounter) Encounter administered as part of --></encounter>
 <supportingInformation><!-- 0..* Reference(Any) Additional information to support administration --></supportingInformation>
 <occurence[x]><!-- 1..1 dateTime|Period Start and end time of administration --></occurence[x]>
 <recorded value="[dateTime]"/><!-- 0..1 When the MedicationAdministration was first captured in the subject's record -->
 <performer>  <!-- 0..* Who performed the medication administration and what they did -->
  <function><!-- 0..1 CodeableConcept Type of performance --></function>
  <actor><!-- 1..1 Reference(Device|Patient|Practitioner|PractitionerRole|
    RelatedPerson) Who performed the medication administration --></actor>
 </performer>
 <reason><!-- 0..* CodeableReference(Condition|DiagnosticReport|Observation) Concept, condition or observation that supports why the medication was administered --></reason>
 <request><!-- 0..1 Reference(MedicationRequest) Request administration performed against --></request>
 <device><!-- 0..* Reference(Device) Device used to administer --></device>
 <note><!-- 0..* Annotation Information about the administration --></note>
 <dosage>  <!-- 0..1 Details of how medication was taken -->
  <text value="[string]"/><!-- 0..1 Free text dosage instructions e.g. SIG -->
  <site><!-- 0..1 CodeableConcept Body site administered to --></site>
  <route><!-- 0..1 CodeableConcept Path of substance into body --></route>
  <method><!-- 0..1 CodeableConcept How drug was administered --></method>
  <dose><!-- 0..1 Quantity(SimpleQuantity) Amount of medication per dose --></dose>
  <rate[x]><!-- 0..1 Ratio|Quantity(SimpleQuantity) Dose quantity per unit of time --></rate[x]>
 </dosage>
 <eventHistory><!-- 0..* Reference(Provenance) A list of events of interest in the lifecycle --></eventHistory>
</MedicationAdministration>

JSON Template

{doco
  "resourceType" : "MedicationAdministration",
  // from Resource: id, meta, implicitRules, and language
  // from DomainResource: text, contained, extension, and modifierExtension
  "identifier" : [{ Identifier }], // External identifier
  "instantiatesCanonical" : [{ canonical(ActivityDefinition|PlanDefinition) }], // Instantiates protocol or definition
  "instantiatesUri" : ["<uri>"], // Instantiates external protocol or definition
  "basedOn" : [{ Reference(CarePlan) }], // Plan this is fulfilled by this administration
  "partOf" : [{ Reference(MedicationAdministration|Procedure) }], // Part of referenced event
  "status" : "<code>", // R!  in-progress | not-done | on-hold | completed | entered-in-error | stopped | unknown
  "statusReason" : [{ CodeableConcept }], // Reason administration not performed
  "category" : [{ CodeableConcept }], // Type of medication administration
  "medication" : { CodeableReference(Medication) }, // R!  What was administered
  "subject" : { Reference(Group|Patient) }, // R!  Who received medication
  "encounter" : { Reference(Encounter) }, // Encounter administered as part of
  "supportingInformation" : [{ Reference(Any) }], // Additional information to support administration
  // occurence[x]: Start and end time of administration. One of these 2:
  "occurenceDateTime" : "<dateTime>",
  "occurencePeriod" : { Period },
  "recorded" : "<dateTime>", // When the MedicationAdministration was first captured in the subject's record
  "performer" : [{ // Who performed the medication administration and what they did
    "function" : { CodeableConcept }, // Type of performance
    "actor" : { Reference(Device|Patient|Practitioner|PractitionerRole|
    RelatedPerson) } // R!  Who performed the medication administration
  }],
  "reason" : [{ CodeableReference(Condition|DiagnosticReport|Observation) }], // Concept, condition or observation that supports why the medication was administered
  "request" : { Reference(MedicationRequest) }, // Request administration performed against
  "device" : [{ Reference(Device) }], // Device used to administer
  "note" : [{ Annotation }], // Information about the administration
  "dosage" : { // Details of how medication was taken
    "text" : "<string>", // Free text dosage instructions e.g. SIG
    "site" : { CodeableConcept }, // Body site administered to
    "route" : { CodeableConcept }, // Path of substance into body
    "method" : { CodeableConcept }, // How drug was administered
    "dose" : { Quantity(SimpleQuantity) }, // Amount of medication per dose
    // rate[x]: Dose quantity per unit of time. One of these 2:
    "rateRatio" : { Ratio }
    "rateQuantity" : { Quantity(SimpleQuantity) }
  },
  "eventHistory" : [{ Reference(Provenance) }] // A list of events of interest in the lifecycle
}

Turtle Template

@prefix fhir: <http://hl7.org/fhir/> .doco


[ a fhir:MedicationAdministration;
  fhir:nodeRole fhir:treeRoot; # if this is the parser root

  # from Resource: .id, .meta, .implicitRules, and .language
  # from DomainResource: .text, .contained, .extension, and .modifierExtension
  fhir:MedicationAdministration.identifier [ Identifier ], ... ; # 0..* External identifier
  fhir:MedicationAdministration.instantiatesCanonical [ canonical(ActivityDefinition|PlanDefinition) ], ... ; # 0..* Instantiates protocol or definition
  fhir:MedicationAdministration.instantiatesUri [ uri ], ... ; # 0..* Instantiates external protocol or definition
  fhir:MedicationAdministration.basedOn [ Reference(CarePlan) ], ... ; # 0..* Plan this is fulfilled by this administration
  fhir:MedicationAdministration.partOf [ Reference(MedicationAdministration|Procedure) ], ... ; # 0..* Part of referenced event
  fhir:MedicationAdministration.status [ code ]; # 1..1 in-progress | not-done | on-hold | completed | entered-in-error | stopped | unknown
  fhir:MedicationAdministration.statusReason [ CodeableConcept ], ... ; # 0..* Reason administration not performed
  fhir:MedicationAdministration.category [ CodeableConcept ], ... ; # 0..* Type of medication administration
  fhir:MedicationAdministration.medication [ CodeableReference(Medication) ]; # 1..1 What was administered
  fhir:MedicationAdministration.subject [ Reference(Group|Patient) ]; # 1..1 Who received medication
  fhir:MedicationAdministration.encounter [ Reference(Encounter) ]; # 0..1 Encounter administered as part of
  fhir:MedicationAdministration.supportingInformation [ Reference(Any) ], ... ; # 0..* Additional information to support administration
  # MedicationAdministration.occurence[x] : 1..1 Start and end time of administration. One of these 2
    fhir:MedicationAdministration.occurenceDateTime [ dateTime ]
    fhir:MedicationAdministration.occurencePeriod [ Period ]
  fhir:MedicationAdministration.recorded [ dateTime ]; # 0..1 When the MedicationAdministration was first captured in the subject's record
  fhir:MedicationAdministration.performer [ # 0..* Who performed the medication administration and what they did
    fhir:MedicationAdministration.performer.function [ CodeableConcept ]; # 0..1 Type of performance
    fhir:MedicationAdministration.performer.actor [ Reference(Device|Patient|Practitioner|PractitionerRole|RelatedPerson) ]; # 1..1 Who performed the medication administration
  ], ...;
  fhir:MedicationAdministration.reason [ CodeableReference(Condition|DiagnosticReport|Observation) ], ... ; # 0..* Concept, condition or observation that supports why the medication was administered
  fhir:MedicationAdministration.request [ Reference(MedicationRequest) ]; # 0..1 Request administration performed against
  fhir:MedicationAdministration.device [ Reference(Device) ], ... ; # 0..* Device used to administer
  fhir:MedicationAdministration.note [ Annotation ], ... ; # 0..* Information about the administration
  fhir:MedicationAdministration.dosage [ # 0..1 Details of how medication was taken
    fhir:MedicationAdministration.dosage.text [ string ]; # 0..1 Free text dosage instructions e.g. SIG
    fhir:MedicationAdministration.dosage.site [ CodeableConcept ]; # 0..1 Body site administered to
    fhir:MedicationAdministration.dosage.route [ CodeableConcept ]; # 0..1 Path of substance into body
    fhir:MedicationAdministration.dosage.method [ CodeableConcept ]; # 0..1 How drug was administered
    fhir:MedicationAdministration.dosage.dose [ Quantity(SimpleQuantity) ]; # 0..1 Amount of medication per dose
    # MedicationAdministration.dosage.rate[x] : 0..1 Dose quantity per unit of time. One of these 2
      fhir:MedicationAdministration.dosage.rateRatio [ Ratio ]
      fhir:MedicationAdministration.dosage.rateSimpleQuantity [ Quantity(SimpleQuantity) ]
  ];
  fhir:MedicationAdministration.eventHistory [ Reference(Provenance) ], ... ; # 0..* A list of events of interest in the lifecycle
]

Changes since Release 3

MedicationAdministration
MedicationAdministration.instantiatesCanonical
  • Added Element
MedicationAdministration.instantiatesUri
  • Added Element
MedicationAdministration.basedOn
  • Added Element
MedicationAdministration.status
  • Change value set from http://hl7.org/fhir/ValueSet/medication-admin-status|4.0.0 to http://hl7.org/fhir/ValueSet/medication-admin-status|4.6.0
MedicationAdministration.category
  • Max Cardinality changed from 1 to *
MedicationAdministration.medication
  • Added Mandatory Element
MedicationAdministration.encounter
  • Added Element
MedicationAdministration.occurence[x]
  • Added Mandatory Element
MedicationAdministration.recorded
  • Added Element
MedicationAdministration.reason
  • Added Element
MedicationAdministration.dosage.rate[x]
  • Add Type Quantity()
  • Remove Type Quantity()
MedicationAdministration.instantiates
  • deleted
MedicationAdministration.medication[x]
  • deleted
MedicationAdministration.context
  • deleted
MedicationAdministration.effective[x]
  • deleted
MedicationAdministration.reasonCode
  • deleted
MedicationAdministration.reasonReference
  • deleted

See the Full Difference for further information

This analysis is available as XML or JSON.

See R3 <--> R4 Conversion Maps (status = 14 tests that all execute ok. 4 fail round-trip testing and 14 r3 resources are invalid (0 errors).)

 

See the Profiles & Extensions and the alternate definitions: Master Definition XML + JSON, XML Schema/Schematron + JSON Schema, ShEx (for Turtle) + see the extensions, the spreadsheet version & the dependency analysis a

PathDefinitionTypeReference
MedicationAdministration.status RequiredMedicationAdministration Status Codes
MedicationAdministration.statusReason ExampleSNOMEDCTReasonMedicationNotGivenCodes
MedicationAdministration.category ExampleMedicationAdministration Location Codes
MedicationAdministration.medication ExampleSNOMEDCTMedicationCodes
MedicationAdministration.performer.function ExampleMedicationAdministration Performer Function Codes
MedicationAdministration.reason ExampleReasonMedicationGivenCodes
MedicationAdministration.dosage.site ExampleSNOMEDCTAnatomicalStructureForAdministrationSiteCodes
MedicationAdministration.dosage.route ExampleSNOMEDCTRouteCodes
MedicationAdministration.dosage.method ExampleSNOMEDCTAdministrationMethodCodes

idLevelLocationDescriptionExpression
mad-1Rule MedicationAdministration.dosageIf dosage attribute is present then SHALL have at least one of dosage.text or dosage.dose or dosage.rate[x](dose.exists() or rate.exists() or text.exists())
Issue Comments
Medication Resource A medication will typically be referred to by means of a code drawn from a suitable medication terminology. However, on occasion a product will be required for which the "recipe" must be specified. This implies a requirement to deal with a choice of either a code or a much more complete resource.
Currently that resource has not been created.
Contrast Media Is this resource adequate for administering contrast media to a patient?
Author (accountability) Authorship (and any other accountability) is assumed to be dealt with by the standard FHIR methods.

Search parameters for this resource. The common parameters also apply. See Searching for more information about searching in REST, messaging, and services.

NameTypeDescriptionExpressionIn Common
code DtokenReturn administrations of this medication codeMedicationAdministration.medication.concept
datedateDate administration happened (or did not happen)MedicationAdministration.occurence
devicereferenceReturn administrations with this administration device identityMedicationAdministration.device
(Device)
encounterreferenceReturn administrations that share this encounterMedicationAdministration.encounter
(Encounter)
identifiertokenReturn administrations with this external identifierMedicationAdministration.identifier
medication DreferenceReturn administrations of this medication referenceMedicationAdministration.medication.reference
patientreferenceThe identity of a patient to list administrations forMedicationAdministration.subject.where(resolve() is Patient)
(Group, Patient)
performerreferenceThe identity of the individual who administered the medicationMedicationAdministration.performer.actor
(Practitioner, Device, Patient, PractitionerRole, RelatedPerson)
reason-given DreferenceReference to a resource (by instance)MedicationAdministration.reason.reference
reason-given-code DtokenReasons for administering the medicationMedicationAdministration.reason.concept
reason-not-giventokenReasons for not administering the medicationMedicationAdministration.statusReason
requestreferenceThe identity of a request to list administrations fromMedicationAdministration.request
(MedicationRequest)
status NtokenMedicationAdministration event status (for example one of active/paused/completed/nullified)MedicationAdministration.status
subjectreferenceThe identity of the individual or group to list administrations forMedicationAdministration.subject
(Group, Patient)