R4 Ballot #1 (Mixed Normative/Trial use) Current Build
This page was published as part of FHIR v3.3.0: R4 Ballot #1 : Mixed Normative/Trial use (First Normative ballot). It has been superceded by R4 . For a full list of available versions, see the Directory of published versions .

11.2 Resource MedicationAdministration - Content

Pharmacy Work Group Maturity Level : 2   Trial Use Security 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 the capture of medication administrations, including self-administrations of oral medications, injections, intra-venous adjustments, etc. It can also be used in outpatient settings to record allergy shots and other non-immunization administrations. In some cases cases, it might be used for home-health reporting, such as recording self-administered or even device-administered insulin.

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
MedicationStatement 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, 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 , MedicationStatement itself, MedicationUsage , Observation and Procedure .

This resource implements the Event pattern.

Structure

Name Flags Card. Type Description & Constraints doco
. . MedicationAdministration TU DomainResource Administration of medication to a patient
Elements defined in Ancestors: id , meta , implicitRules , language , text , contained , extension , modifierExtension
. . . identifier 0..* Identifier External identifier
. . . instantiatesCanonical Σ 0..* canonical ( PlanDefinition | ActivityDefinition ) Instantiates protocol or definition
.. . instantiates instantiatesUri Σ 0..* uri Instantiates external protocol or definition
. . . partOf Σ 0..* Reference ( MedicationAdministration | Procedure ) Part of referenced event
. . . status ?! Σ 1..1 code in-progress | not-done | on-hold | completed | entered-in-error | stopped | unknown
MedicationAdministrationStatus Medication administration status codes ( Required )
. . . statusReason 0..* CodeableConcept Reason administration not performed
SNOMED CT Reason Medication Not Given Codes ( Example )
... category 0..1 0..* CodeableConcept Type of medication usage
MedicationAdministrationCategory Medication administration category codes ( Preferred )
. . . medication[x] Σ 1..1 What was administered
SNOMED CT Medication Codes ( Example )
. . . . medicationCodeableConcept CodeableConcept
. . . . medicationReference Reference ( Medication )
. . . subject Σ 1..1 Reference ( Patient | Group ) Who received medication
. . . context encounter 0..1 Reference ( Encounter | EpisodeOfCare ) Encounter or Episode of Care administered as part of
. . . supportingInformation 0..* Reference ( Any ) Additional information to support administration
. . . effective[x] Σ 1..1 Start and end time of administration
. . . . effectiveDateTime dateTime
. . . . effectivePeriod Period
. . . performer Σ 0..* BackboneElement Who performed the medication administration and what they did
. . . . function 0..1 CodeableConcept Type of performance
MedicationAdministrationPerformerFunction Medication administration performer function codes ( Example )
. . . . actor Σ 1..1 Reference ( Practitioner | PractitionerRole | Patient | RelatedPerson | Device ) Who performed the medication administration
. . . statusReason 0..* CodeableConcept Reason administration not performed SNOMED CT Reason Medication Not Given Codes ( Example ) reasonCode 0..* CodeableConcept Reason administration performed
Reason Medication Given Codes ( Example )
. . . reasonReference 0..* Reference ( Condition | Observation | DiagnosticReport ) Condition or observation that supports why the medication was administered
. . . request 0..1 Reference ( MedicationRequest ) Request administration performed against
. . . device 0..* Reference ( Device ) Device used to administer
. . . note 0..* Annotation Information about the administration
. . . dosage I 0..1 BackboneElement Details of how medication was taken
+ Rule: SHALL have at least one of dosage.dose or dosage.rate[x]
. . . . text 0..1 string Free text dosage instructions e.g. SIG
. . . . site 0..1 CodeableConcept Body site administered to
SNOMED CT Anatomical Structure for Administration Site Codes ( Example )
. . . . route 0..1 CodeableConcept Path of substance into body
SNOMED CT Route Codes ( Example )
. . . . method 0..1 CodeableConcept How drug was administered
SNOMED CT Administration Method Codes ( Example )
. . . . dose 0..1 SimpleQuantity Amount of medication per dose
. . . . rate[x] 0..1 Dose quantity per unit of time
. . . . . rateRatio Ratio
. . . . . rateQuantity SimpleQuantity
. . . eventHistory 0..* Reference ( Provenance ) A list of events of interest in the lifecycle

doco Documentation for this format

UML Diagram ( Legend )

MedicationAdministration ( DomainResource ) External identifier - FHIR will generate its own internal identifiers (probably URLs) which do not need to be explicitly managed by the resource. The identifier here is one Identifiers associated with this Medication Administration that would be used are defined by another non-FHIR system - for example an automated medication pump would provide a record each time business processes and/or used to refer to it operated; an administration while when a direct URL reference to the patient was off resource itself is not appropriate. They are business identifiers assigned to this resource by the ward might be made with a different system performer or other systems and entered after remain constant as the event. This identifier resource is particularly important when these records require updates updated and propagates from server to server identifier : Identifier [0..*] A protocol, guideline, orderset, or other definition that was adhered to in whole or in part by this event instantiates instantiatesCanonical : 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 MedicationAdministration instantiatesUri : uri [0..*] A larger event of which this particular event is a component or step partOf : 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] « A set of codes indicating the current status of a MedicationAdministration. (Strength=Required) MedicationAdministrationStatus MedicationAdministration Stat... ! » Indicates A code indicating why the type of medication administration and was not performed statusReason : CodeableConcept [0..*] « A set of codes indicating the reason why the MedicationAdministration is negated. (Strength=Example) SNOMEDCTReasonMedicationNotGi... ?? » Indicates where the medication is expected to be consumed or administered category : CodeableConcept [0..1] [0..*] « A coded concept describing where the medication administered is expected to occur occur. (Strength=Preferred) MedicationAdministrationCateg... MedicationAdministration Cate... ? » 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 medications medication[x] : Type [1..1] « CodeableConcept | Reference ( Medication ); Codes identifying substance or product that can be administered. (Strength=Example) SNOMED CT Medication SNOMEDCTMedicationCodes ?? » The person or animal or group receiving the medication subject : Reference [1..1] « Patient | Group » The visit, admission, or other contact between patient and health care provider during which the medication administration was performed context encounter : Reference [0..1] « Encounter | EpisodeOfCare » Additional information (for example, patient height and weight) that supports the administration of the medication supportingInformation : Reference [0..*] « Any » A specific date/time or interval of time during which the administration took place (or did not take place, when the 'notGiven' attribute is true). For many administrations, such as swallowing a tablet the use of dateTime is more appropriate effective[x] : Type [1..1] « dateTime | Period » A code indicating why the administration was not performed statusReason : CodeableConcept [0..*] « A set of codes indicating the reason why the MedicationAdministration is negated. (Strength=Example) SNOMED CT Reason Medication N... ?? » A code indicating why the medication was given reasonCode : CodeableConcept [0..*] « A set of codes indicating the reason why the MedicationAdministration was made. (Strength=Example) Reason Medication Given ReasonMedicationGivenCodes ?? » Condition or observation that supports why the medication was administered reasonReference : Reference [0..*] « Condition | Observation | DiagnosticReport » The original request, instruction or authority to perform the administration request : Reference [0..1] « MedicationRequest » The device used in administering the medication to the patient. For example, a particular infusion pump device : Reference [0..*] « Device » Extra information about the medication administration that is not conveyed by the other attributes note : Annotation [0..*] A summary of the events of interest that have occurred, such as when the administration was verified eventHistory : Reference [0..*] « Provenance » Performer Distinguishes the type of involvement of the performer in the medication administration function : CodeableConcept [0..1] « A code describing the role an individual played in administering the medication medication. (Strength=Example) MedicationAdministrationPerfo... MedicationAdministration Perf... ?? » Indicates who or what performed the medication administration actor : Reference [1..1] « Practitioner | PractitionerRole | Patient | RelatedPerson | Device » Dosage Free 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 administered text : 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] « A coded concept describing the site location the medicine enters into or onto the body. (Strength=Example) SNOMED CT Anatomical Structur... SNOMEDCTAnatomicalStructureFo... ?? » A code specifying the route or physiological path of administration of a therapeutic agent into or onto the patient. For example, topical, intravenous, etc route : CodeableConcept [0..1] « A coded concept describing the route or physiological path of administration of a therapeutic agent into or onto the body of a subject. (Strength=Example) SNOMED CT Route 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 IV method : CodeableConcept [0..1] « A coded concept describing the technique by which the medicine is administered. (Strength=Example) SNOMED CT Administration Meth... 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 injection dose : Quantity ( SimpleQuantity ) [0..1] Identifies the speed with which the medication was or will be introduced into the patient. Typically 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 time, e.g. 500 ml per 2 hours. Other examples: 200 mcg/min or 200 mcg/1 minute; 1 liter/8 hours rate[x] : Type [0..1] « Ratio | Quantity ( SimpleQuantity ) » Indicates who or what performed the medication administration and how they were involved performer [0..*] Describes the medication dosage information details e.g. dose, rate, site, route, etc dosage [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>
 <

 <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 -->

 <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 -->
 <</category>

 <statusReason><!-- 0..* CodeableConcept Reason administration not performed --></statusReason>
 <category><!-- 0..* CodeableConcept Type of medication usage --></category>

 <medication[x]><!-- 1..1 CodeableConcept|Reference(Medication) What was administered --></medication[x]>
 <</subject>
 <</context>

 <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>
 <effective[x]><!-- 1..1 dateTime|Period Start and end time of administration --></effective[x]>
 <performer>  <!-- 0..* Who performed the medication administration and what they did -->
  <function><!-- 0..1 CodeableConcept Type of performance --></function>
  <|
    </actor>

  <actor><!-- 1..1 Reference(Device|Patient|Practitioner|PractitionerRole|
    RelatedPerson) Who performed the medication administration --></actor>
 </performer>
 <</statusReason>

 <reasonCode><!-- 0..* CodeableConcept Reason administration performed --></reasonCode>
 <</reasonReference>

 <reasonReference><!-- 0..* Reference(Condition|DiagnosticReport|Observation) Condition or observation that supports why the medication was administered --></reasonReference>

 <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]>

  <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

  "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 usage

  // medication[x]: What was administered. One of these 2:
  "medicationCodeableConcept" : { CodeableConcept },
  "medicationReference" : { Reference(Medication) },
  "
  "

  "subject" : { Reference(Group|Patient) }, // R!  Who received medication
  "encounter" : { Reference(Encounter) }, // Encounter administered as part of

  "supportingInformation" : [{ Reference(Any) }], // Additional information to support administration
  // effective[x]: Start and end time of administration. One of these 2:
  "effectiveDateTime" : "<dateTime>",
  "effectivePeriod" : { Period },
  "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
  }],
  "

  "reasonCode" : [{ CodeableConcept }], // Reason administration performed
  "

  "reasonReference" : [{ Reference(Condition|DiagnosticReport|Observation) }], // 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:
  fhir:

  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.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:

  fhir:MedicationAdministration.statusReason [ CodeableConcept ], ... ; # 0..* Reason administration not performed
  fhir:MedicationAdministration.category [ CodeableConcept ], ... ; # 0..* Type of medication usage

  # MedicationAdministration.medication[x] : 1..1 What was administered. One of these 2
    fhir:MedicationAdministration.medicationCodeableConcept [ CodeableConcept ]
    fhir:MedicationAdministration.medicationReference [ Reference(Medication) ]
  fhir:
  fhir:

  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.effective[x] : 1..1 Start and end time of administration. One of these 2
    fhir:MedicationAdministration.effectiveDateTime [ dateTime ]
    fhir:MedicationAdministration.effectivePeriod [ Period ]
  fhir:MedicationAdministration.performer [ # 0..* Who performed the medication administration and what they did
    fhir:MedicationAdministration.performer.function [ CodeableConcept ]; # 0..1 Type of performance
    fhir:

    fhir:MedicationAdministration.performer.actor [ Reference(Device|Patient|Practitioner|PractitionerRole|RelatedPerson) ]; # 1..1 Who performed the medication administration

  ], ...;
  fhir:

  fhir:MedicationAdministration.reasonCode [ CodeableConcept ], ... ; # 0..* Reason administration performed
  fhir:

  fhir:MedicationAdministration.reasonReference [ Reference(Condition|DiagnosticReport|Observation) ], ... ; # 0..* 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
    # . One of these 2
      fhir: ]
      fhir:) ]

    # 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.medication[x] Remove Reference(Medication), Add Reference(Medication)
MedicationAdministration
MedicationAdministration.instantiates MedicationAdministration.instantiatesCanonical
  • Added Element
MedicationAdministration.performer.function MedicationAdministration.instantiatesUri
  • Added Element
MedicationAdministration.performer.actor MedicationAdministration.status
  • Type changed Change value set from Reference(Practitioner|Patient|RelatedPerson|Device) http://hl7.org/fhir/ValueSet/medication-admin-status|4.0.0 to Reference(Practitioner|PractitionerRole|Patient|RelatedPerson|Device) MedicationAdministration.statusReason Added Element http://hl7.org/fhir/ValueSet/medication-admin-status|4.1.0
MedicationAdministration.reasonReference MedicationAdministration.category
  • Type Max Cardinality changed from Reference(Condition|Observation) 1 to Reference(Condition|Observation|DiagnosticReport) *
MedicationAdministration.request MedicationAdministration.encounter
  • Added Element
MedicationAdministration.dosage.rate[x]
  • Remove canonical(), Add canonical() MedicationAdministration.definition deleted Type Quantity()
  • MedicationAdministration.performer.onBehalfOf
  • deleted MedicationAdministration.notGiven deleted Remove Type Quantity()
MedicationAdministration.reasonNotGiven MedicationAdministration.instantiates
  • deleted
MedicationAdministration.prescription MedicationAdministration.context
  • deleted

See the Full Difference for further information

This analysis is available as XML or JSON .

See R2 <--> R3 <--> R4 Conversion Maps (status = 3 14 tests that all execute ok. All tests pass 4 fail round-trip testing and all 14 r3 resources are valid.). Note: these have note yet been updated to be R3 to R4 invalid (0 errors). )

Structure

Name Flags Card. Type Description & Constraints doco
. . MedicationAdministration TU DomainResource Administration of medication to a patient
Elements defined in Ancestors: id , meta , implicitRules , language , text , contained , extension , modifierExtension
. . . identifier 0..* Identifier External identifier
. . . instantiatesCanonical Σ 0..* canonical ( PlanDefinition | ActivityDefinition ) Instantiates protocol or definition
.. . instantiates instantiatesUri Σ 0..* uri Instantiates external protocol or definition
. . . partOf Σ 0..* Reference ( MedicationAdministration | Procedure ) Part of referenced event
. . . status ?! Σ 1..1 code in-progress | not-done | on-hold | completed | entered-in-error | stopped | unknown
MedicationAdministrationStatus Medication administration status codes ( Required )
. . . statusReason 0..* CodeableConcept Reason administration not performed
SNOMED CT Reason Medication Not Given Codes ( Example )
... category 0..1 0..* CodeableConcept Type of medication usage
MedicationAdministrationCategory Medication administration category codes ( Preferred )
. . . medication[x] Σ 1..1 What was administered
SNOMED CT Medication Codes ( Example )
. . . . medicationCodeableConcept CodeableConcept
. . . . medicationReference Reference ( Medication )
. . . subject Σ 1..1 Reference ( Patient | Group ) Who received medication
. . . context encounter 0..1 Reference ( Encounter | EpisodeOfCare ) Encounter or Episode of Care administered as part of
. . . supportingInformation 0..* Reference ( Any ) Additional information to support administration
. . . effective[x] Σ 1..1 Start and end time of administration
. . . . effectiveDateTime dateTime
. . . . effectivePeriod Period
. . . performer Σ 0..* BackboneElement Who performed the medication administration and what they did
. . . . function 0..1 CodeableConcept Type of performance
MedicationAdministrationPerformerFunction Medication administration performer function codes ( Example )
. . . . actor Σ 1..1 Reference ( Practitioner | PractitionerRole | Patient | RelatedPerson | Device ) Who performed the medication administration
. . . statusReason 0..* CodeableConcept Reason administration not performed SNOMED CT Reason Medication Not Given Codes ( Example ) reasonCode 0..* CodeableConcept Reason administration performed
Reason Medication Given Codes ( Example )
. . . reasonReference 0..* Reference ( Condition | Observation | DiagnosticReport ) Condition or observation that supports why the medication was administered
. . . request 0..1 Reference ( MedicationRequest ) Request administration performed against
. . . device 0..* Reference ( Device ) Device used to administer
. . . note 0..* Annotation Information about the administration
. . . dosage I 0..1 BackboneElement Details of how medication was taken
+ Rule: SHALL have at least one of dosage.dose or dosage.rate[x]
. . . . text 0..1 string Free text dosage instructions e.g. SIG
. . . . site 0..1 CodeableConcept Body site administered to
SNOMED CT Anatomical Structure for Administration Site Codes ( Example )
. . . . route 0..1 CodeableConcept Path of substance into body
SNOMED CT Route Codes ( Example )
. . . . method 0..1 CodeableConcept How drug was administered
SNOMED CT Administration Method Codes ( Example )
. . . . dose 0..1 SimpleQuantity Amount of medication per dose
. . . . rate[x] 0..1 Dose quantity per unit of time
. . . . . rateRatio Ratio
. . . . . rateQuantity SimpleQuantity
. . . eventHistory 0..* Reference ( Provenance ) A list of events of interest in the lifecycle

doco Documentation for this format

UML Diagram ( Legend )

MedicationAdministration ( DomainResource ) External identifier - FHIR will generate its own internal identifiers (probably URLs) which do not need to be explicitly managed by the resource. The identifier here is one Identifiers associated with this Medication Administration that would be used are defined by another non-FHIR system - for example an automated medication pump would provide a record each time business processes and/or used to refer to it operated; an administration while when a direct URL reference to the patient was off resource itself is not appropriate. They are business identifiers assigned to this resource by the ward might be made with a different system performer or other systems and entered after remain constant as the event. This identifier resource is particularly important when these records require updates updated and propagates from server to server identifier : Identifier [0..*] A protocol, guideline, orderset, or other definition that was adhered to in whole or in part by this event instantiates instantiatesCanonical : 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 MedicationAdministration instantiatesUri : uri [0..*] A larger event of which this particular event is a component or step partOf : 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] « A set of codes indicating the current status of a MedicationAdministration. (Strength=Required) MedicationAdministrationStatus MedicationAdministration Stat... ! » Indicates A code indicating why the type of medication administration and was not performed statusReason : CodeableConcept [0..*] « A set of codes indicating the reason why the MedicationAdministration is negated. (Strength=Example) SNOMEDCTReasonMedicationNotGi... ?? » Indicates where the medication is expected to be consumed or administered category : CodeableConcept [0..1] [0..*] « A coded concept describing where the medication administered is expected to occur occur. (Strength=Preferred) MedicationAdministrationCateg... MedicationAdministration Cate... ? » 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 medications medication[x] : Type [1..1] « CodeableConcept | Reference ( Medication ); Codes identifying substance or product that can be administered. (Strength=Example) SNOMED CT Medication SNOMEDCTMedicationCodes ?? » The person or animal or group receiving the medication subject : Reference [1..1] « Patient | Group » The visit, admission, or other contact between patient and health care provider during which the medication administration was performed context encounter : Reference [0..1] « Encounter | EpisodeOfCare » Additional information (for example, patient height and weight) that supports the administration of the medication supportingInformation : Reference [0..*] « Any » A specific date/time or interval of time during which the administration took place (or did not take place, when the 'notGiven' attribute is true). For many administrations, such as swallowing a tablet the use of dateTime is more appropriate effective[x] : Type [1..1] « dateTime | Period » A code indicating why the administration was not performed statusReason : CodeableConcept [0..*] « A set of codes indicating the reason why the MedicationAdministration is negated. (Strength=Example) SNOMED CT Reason Medication N... ?? » A code indicating why the medication was given reasonCode : CodeableConcept [0..*] « A set of codes indicating the reason why the MedicationAdministration was made. (Strength=Example) Reason Medication Given ReasonMedicationGivenCodes ?? » Condition or observation that supports why the medication was administered reasonReference : Reference [0..*] « Condition | Observation | DiagnosticReport » The original request, instruction or authority to perform the administration request : Reference [0..1] « MedicationRequest » The device used in administering the medication to the patient. For example, a particular infusion pump device : Reference [0..*] « Device » Extra information about the medication administration that is not conveyed by the other attributes note : Annotation [0..*] A summary of the events of interest that have occurred, such as when the administration was verified eventHistory : Reference [0..*] « Provenance » Performer Distinguishes the type of involvement of the performer in the medication administration function : CodeableConcept [0..1] « A code describing the role an individual played in administering the medication medication. (Strength=Example) MedicationAdministrationPerfo... MedicationAdministration Perf... ?? » Indicates who or what performed the medication administration actor : Reference [1..1] « Practitioner | PractitionerRole | Patient | RelatedPerson | Device » Dosage Free 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 administered text : 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] « A coded concept describing the site location the medicine enters into or onto the body. (Strength=Example) SNOMED CT Anatomical Structur... SNOMEDCTAnatomicalStructureFo... ?? » A code specifying the route or physiological path of administration of a therapeutic agent into or onto the patient. For example, topical, intravenous, etc route : CodeableConcept [0..1] « A coded concept describing the route or physiological path of administration of a therapeutic agent into or onto the body of a subject. (Strength=Example) SNOMED CT Route 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 IV method : CodeableConcept [0..1] « A coded concept describing the technique by which the medicine is administered. (Strength=Example) SNOMED CT Administration Meth... 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 injection dose : Quantity ( SimpleQuantity ) [0..1] Identifies the speed with which the medication was or will be introduced into the patient. Typically 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 time, e.g. 500 ml per 2 hours. Other examples: 200 mcg/min or 200 mcg/1 minute; 1 liter/8 hours rate[x] : Type [0..1] « Ratio | Quantity ( SimpleQuantity ) » Indicates who or what performed the medication administration and how they were involved performer [0..*] Describes the medication dosage information details e.g. dose, rate, site, route, etc dosage [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>
 <

 <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 -->

 <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 -->
 <</category>

 <statusReason><!-- 0..* CodeableConcept Reason administration not performed --></statusReason>
 <category><!-- 0..* CodeableConcept Type of medication usage --></category>

 <medication[x]><!-- 1..1 CodeableConcept|Reference(Medication) What was administered --></medication[x]>
 <</subject>
 <</context>

 <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>
 <effective[x]><!-- 1..1 dateTime|Period Start and end time of administration --></effective[x]>
 <performer>  <!-- 0..* Who performed the medication administration and what they did -->
  <function><!-- 0..1 CodeableConcept Type of performance --></function>
  <|
    </actor>

  <actor><!-- 1..1 Reference(Device|Patient|Practitioner|PractitionerRole|
    RelatedPerson) Who performed the medication administration --></actor>
 </performer>
 <</statusReason>

 <reasonCode><!-- 0..* CodeableConcept Reason administration performed --></reasonCode>
 <</reasonReference>

 <reasonReference><!-- 0..* Reference(Condition|DiagnosticReport|Observation) Condition or observation that supports why the medication was administered --></reasonReference>

 <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]>

  <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

  "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 usage

  // medication[x]: What was administered. One of these 2:
  "medicationCodeableConcept" : { CodeableConcept },
  "medicationReference" : { Reference(Medication) },
  "
  "

  "subject" : { Reference(Group|Patient) }, // R!  Who received medication
  "encounter" : { Reference(Encounter) }, // Encounter administered as part of

  "supportingInformation" : [{ Reference(Any) }], // Additional information to support administration
  // effective[x]: Start and end time of administration. One of these 2:
  "effectiveDateTime" : "<dateTime>",
  "effectivePeriod" : { Period },
  "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
  }],
  "

  "reasonCode" : [{ CodeableConcept }], // Reason administration performed
  "

  "reasonReference" : [{ Reference(Condition|DiagnosticReport|Observation) }], // 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:
  fhir:

  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.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:

  fhir:MedicationAdministration.statusReason [ CodeableConcept ], ... ; # 0..* Reason administration not performed
  fhir:MedicationAdministration.category [ CodeableConcept ], ... ; # 0..* Type of medication usage

  # MedicationAdministration.medication[x] : 1..1 What was administered. One of these 2
    fhir:MedicationAdministration.medicationCodeableConcept [ CodeableConcept ]
    fhir:MedicationAdministration.medicationReference [ Reference(Medication) ]
  fhir:
  fhir:

  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.effective[x] : 1..1 Start and end time of administration. One of these 2
    fhir:MedicationAdministration.effectiveDateTime [ dateTime ]
    fhir:MedicationAdministration.effectivePeriod [ Period ]
  fhir:MedicationAdministration.performer [ # 0..* Who performed the medication administration and what they did
    fhir:MedicationAdministration.performer.function [ CodeableConcept ]; # 0..1 Type of performance
    fhir:

    fhir:MedicationAdministration.performer.actor [ Reference(Device|Patient|Practitioner|PractitionerRole|RelatedPerson) ]; # 1..1 Who performed the medication administration

  ], ...;
  fhir:

  fhir:MedicationAdministration.reasonCode [ CodeableConcept ], ... ; # 0..* Reason administration performed
  fhir:

  fhir:MedicationAdministration.reasonReference [ Reference(Condition|DiagnosticReport|Observation) ], ... ; # 0..* 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
    # . One of these 2
      fhir: ]
      fhir:) ]

    # 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 DSTU2 Release 3

MedicationAdministration.medication[x] Remove Reference(Medication), Add Reference(Medication)
MedicationAdministration
MedicationAdministration.instantiates MedicationAdministration.instantiatesCanonical
  • Added Element
MedicationAdministration.performer.function MedicationAdministration.instantiatesUri
  • Added Element
MedicationAdministration.performer.actor MedicationAdministration.status
  • Type changed Change value set from Reference(Practitioner|Patient|RelatedPerson|Device) http://hl7.org/fhir/ValueSet/medication-admin-status|4.0.0 to Reference(Practitioner|PractitionerRole|Patient|RelatedPerson|Device) MedicationAdministration.statusReason Added Element http://hl7.org/fhir/ValueSet/medication-admin-status|4.1.0
MedicationAdministration.reasonReference MedicationAdministration.category
  • Type Max Cardinality changed from Reference(Condition|Observation) 1 to Reference(Condition|Observation|DiagnosticReport) *
MedicationAdministration.request MedicationAdministration.encounter
  • Added Element
MedicationAdministration.dosage.rate[x]
  • Remove canonical(), Add canonical() MedicationAdministration.definition deleted MedicationAdministration.performer.onBehalfOf deleted Type Quantity()
  • MedicationAdministration.notGiven
  • deleted Remove Type Quantity()
MedicationAdministration.reasonNotGiven MedicationAdministration.instantiates
  • deleted
MedicationAdministration.prescription MedicationAdministration.context
  • deleted

See the Full Difference for further information

This analysis is available as XML or JSON .

See R2 <--> R3 <--> R4 Conversion Maps (status = 3 14 tests that all execute ok. All tests pass 4 fail round-trip testing and all 14 r3 resources are valid.). Note: these have note yet been updated to be R3 to R4 invalid (0 errors). )

 

Alternate 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

Path Definition Type Reference
MedicationAdministration.status A set of codes indicating the current status of a MedicationAdministration. Required MedicationAdministrationStatus MedicationAdministration Status Codes
MedicationAdministration.statusReason A set of codes indicating the reason why the MedicationAdministration is negated. Example SNOMEDCTReasonMedicationNotGivenCodes
MedicationAdministration.category A coded concept describing where the medication administered is expected to occur occur. Preferred MedicationAdministrationCategory MedicationAdministration Category Codes
MedicationAdministration.medication[x] Codes identifying substance or product that can be administered. Example SNOMED CT Medication Codes SNOMEDCTMedicationCodes
MedicationAdministration.performer.function A code describing the role an individual played in administering the medication medication. Example MedicationAdministrationPerformerFunction MedicationAdministration.statusReason A set of codes indicating the reason why the MedicationAdministration is negated. Example SNOMED CT Reason Medication Not Given Performer Function Codes
MedicationAdministration.reasonCode A set of codes indicating the reason why the MedicationAdministration was made. Example Reason Medication Given Codes ReasonMedicationGivenCodes
MedicationAdministration.dosage.site A coded concept describing the site location the medicine enters into or onto the body. Example SNOMED CT Anatomical Structure for Administration Site Codes SNOMEDCTAnatomicalStructureForAdministrationSiteCodes
MedicationAdministration.dosage.route A coded concept describing the route or physiological path of administration of a therapeutic agent into or onto the body of a subject. Example SNOMED CT Route Codes SNOMEDCTRouteCodes
MedicationAdministration.dosage.method A coded concept describing the technique by which the medicine is administered. Example SNOMED CT Administration Method Codes SNOMEDCTAdministrationMethodCodes

id Level Location Description Expression
mad-1 : On MedicationAdministration.dosage: Rule MedicationAdministration.dosage SHALL have at least one of dosage.dose or dosage.rate[x] ( expression on MedicationAdministration.dosage: dose.exists() or rate.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.

Name Type Description Expression In Common
code token Return administrations of this medication code MedicationAdministration.medication.as(CodeableConcept) (MedicationAdministration.medication as CodeableConcept) 4 13 Resources
context reference Return administrations that share this encounter or episode of care MedicationAdministration.context ( EpisodeOfCare , Encounter ) device reference Return administrations with this administration device identity MedicationAdministration.device
( Device )
effective-time date Date administration happened (or did not happen) MedicationAdministration.effective
encounter reference Return administrations that share this encounter MedicationAdministration.encounter
( Encounter )
1 Resources
identifier token Return administrations with this external identifier MedicationAdministration.identifier 3 30 Resources
medication reference Return administrations of this medication resource MedicationAdministration.medication.as(Reference) (MedicationAdministration.medication as Reference)
( Medication )
3 Resources
patient reference The identity of a patient to list administrations for MedicationAdministration.subject MedicationAdministration.subject.where(resolve() is Patient)
( Patient )
3 33 Resources
performer reference The identity of the individual who administered the medication MedicationAdministration.performer.actor
( Practitioner , Device , Patient , PractitionerRole , RelatedPerson )
reason-given token Reasons for administering the medication MedicationAdministration.reasonCode
reason-not-given token Reasons for not administering the medication MedicationAdministration.statusReason
request reference The identity of a request to list administrations from MedicationAdministration.request
( MedicationRequest )
status token MedicationAdministration event status (for example one of active/paused/completed/nullified) MedicationAdministration.status 3 Resources
subject reference The identity of the individual or group to list administrations for MedicationAdministration.subject
( Group , Patient )