FHIR Release 3 (STU) CI-Build

This page is part of the FHIR Specification (v3.0.2: STU 3). The current version which supercedes this version is 5.0.0 . For a full list Continuous Integration Build of available versions, see FHIR (will be incorrect/inconsistent at times).
See the Directory of published versions icon . Page versions: R5 R4B R4 R3 R2

11.2 14.2 Resource MedicationAdministration - Content

Responsible Owner: Pharmacy icon Work Group   Normative Maturity Level : 2   Trial Use Security Category : Patient Compartments : Device , Encounter , Group , 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. medications. Please refer to the Immunization Resource/Profile 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, intravenous infusions, etc. It can also be used in out-patient 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.

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.

This resource can also be used for recording waste by setting the status to 'not-done' and the statusReason to a code that refers to waste. The remaining fields would support the waste elements, i.e. performer of the waste, quantity of medication wasted, date/time of waste, etc. It is also possible, using the partOf reference to a MedicationDispense, to indicate that this waste occurred as part of a dispense event.

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 them.
MedicationStatement 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 However, if systems need to use a MedicationAdministration resource to capture vaccinations for workflow or other reasons, they a Medication Administration resource may be used but systems SHOULD also create and expose an equivalent Immunization instance.

This resource Note to Balloters: The code system used in medication administration category is referenced by presented here but is expected to move to terminology.hl7.org icon.

Structure

Σ Type Σ 1..1 Who administered substance Reference ( Practitioner | Patient | RelatedPerson 0..1 True if I 0..* Reason administration not performed Condition or Observation
Name Flags Card. Type Description & Constraints      Filter: Filters doco
. . MedicationAdministration I N DomainResource Administration of medication to a patient
+ Reason not given is only permitted if NotGiven is true + Reason given is only permitted if NotGiven is false
Elements defined in Ancestors: id , meta , implicitRules , language , text , contained , extension , modifierExtension
. . . identifier 0..* Identifier External identifier

. . . definition basedOn 0..* Reference ( PlanDefinition | ActivityDefinition CarePlan ) Plan this is fulfilled by this administration
Instantiates protocol or definition
. . . partOf Σ 0..* Reference ( MedicationAdministration | Procedure | MedicationDispense ) Part of referenced event

. . category . statusReason 0..1 0..* CodeableConcept Reason status of medication usage the administration changed
MedicationAdministrationCategory Binding: SNOMED CT Reason Medication Not Given Codes ( Preferred Example )

. . medication[x] . category 0..* CodeableConcept What was administered Type of medication administration
SNOMED CT Medication Binding: MedicationAdministration Category Codes ( Example )

. . medicationCodeableConcept . medication CodeableConcept Σ medicationReference 1..1 Reference CodeableReference ( Medication ) What was administered
Binding: SNOMED CT Medication Codes ( Example )
. . . 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] . occurrence[x] Σ 1..1 Start and end time Specific date/time or interval of time during which the administration took place (or did not take place)
. . . . effectiveDateTime occurrenceDateTime dateTime
. . . . effectivePeriod occurrencePeriod Period
. performer . . Σ . occurrenceTiming 0..* BackboneElement Timing
. . actor . recorded Σ 0..1 dateTime 1..1 When the MedicationAdministration was first captured in the subject's record
. . . isSubPotent | Device ) Individual who 0..1 boolean An indication that the full ordered dose was performing not administered
. . onBehalfOf . subPotentReason 0..1 0..* CodeableConcept Reference Reason full dose was not administered
Binding: MedicationAdministration Subpotent Reason ( Organization Example )

Organization organization was acting for
. . notGiven . performer ?! Σ 0..* boolean BackboneElement Who or what performed the medication not administered administration and what type of performance they did

. . . reasonNotGiven . function 0..1 CodeableConcept Type of performance
SNOMED CT Reason Medication Not Given Binding: MedicationAdministration Performer Function Codes ( Example )
. . reasonCode . . actor I 0..* CodeableConcept Σ 1..1 Reason administration performed Reason Medication Given Codes CodeableReference ( Example Practitioner | PractitionerRole | Patient | RelatedPerson | Device | Group ) Who or what performed the medication administration
. . reasonReference . reason 0..* Reference CodeableReference ( Condition | Observation | DiagnosticReport | Procedure ) Reason that supports why the medication was administered
Binding: Reason Medication Given Codes ( Example )

. . . prescription request 0..1 Reference ( MedicationRequest ) Request administration performed against
. . . device 0..* Reference CodeableReference ( Device ) Device used to administer

. . . note 0..* Annotation Information about the administration

. . . dosage I C 0..1 BackboneElement Details 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 C 0..1 string Free text dosage instructions e.g. SIG
. . . . site 0..1 CodeableConcept Body site administered to
Binding: SNOMED CT Anatomical Structure for Administration Site Codes ( Example )
. . . . route 0..1 CodeableConcept Path of substance into body
Binding: SNOMED CT Route Codes ( Example )
. . . . method 0..1 CodeableConcept How drug was administered
Binding: SNOMED CT Administration Method Codes ( Example )
. . . . dose C 0..1 SimpleQuantity Amount of medication per dose
. . . . rate[x] C 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 icon

See the Extensions for this resource

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. Particularly important if these records have to be resource is updated and propagates from server to server identifier : Identifier [0..*] A protocol, guideline, orderset or other definition plan that was adhered to is fulfilled in whole or in part by this event MedicationAdministration definition basedOn : Reference [0..*] PlanDefinition | ActivityDefinition « CarePlan » A larger event of which this particular event is a component or step partOf : Reference [0..*] « MedicationAdministration | Procedure | MedicationDispense » Will generally be set to show that the administration has been completed. For some long running administrations such as infusions 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) MedicationAdministrationStatu... ! » A set of codes code indicating why the current status of a MedicationAdministration. (Strength=Required) the administration changed MedicationAdministrationStatus ! statusReason : CodeableConcept [0..*] « null (Strength=Example) SNOMEDCTReasonMedicationNotGi... ?? » Indicates the The type of medication administration and 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 (Strength=Preferred) null (Strength=Example) MedicationAdministrationCateg... ? ?? » 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] medication : Type CodeableReference [1..1] CodeableConcept | Reference ( « Medication ); ; Codes identifying substance or product that can be administered. null (Strength=Example) SNOMED CT Medication SNOMEDCTMedicationCodes ?? » The person or animal or group receiving the medication subject : Reference [1..1] « Patient | Group » The visit, admission admission, or other contact between patient and health care provider during which the medication administration was performed as part of context encounter : Reference [0..1] « Encounter | EpisodeOfCare » Additional information (for example, patient height and weight) that supports the administration of the medication 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 attribute 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). place). For many administrations, such as swallowing a tablet the use of dateTime is more appropriate effective[x] occurrence[x] : Type DataType [1..1] « dateTime | Period | Timing » Set this to true if The date the record is saying that occurrence of the medication MedicationAdministration was NOT administered (this element modifies first captured in the meaning record - potentially significantly after the occurrence of other elements) the event notGiven recorded : boolean dateTime [0..1] A code indicating why An indication that the administration full dose was not performed administered reasonNotGiven isSubPotent : CodeableConcept [0..*] A set of codes indicating the reason why the MedicationAdministration is negated. (Strength=Example) SNOMED CT Reason Medication N... boolean ?? [0..1] A code indicating The reason or reasons why the medication full dose was given not administered reasonCode subPotentReason : CodeableConcept [0..*] « A set of codes indicating the reason why the MedicationAdministration was made. null (Strength=Example) Reason Medication Given MedicationAdministrationSubpo... ?? » A code, Condition or observation that supports why the medication was administered reasonReference reason : Reference CodeableReference [0..*] « Condition | Observation | DiagnosticReport | Procedure ; null (Strength=Example) ReasonMedicationGivenCodes ?? » The original request, instruction or authority to perform the administration prescription request : Reference [0..1] « MedicationRequest » The device that is to be used in administering for the medication to administration of the patient. For medication (for example, a particular infusion pump PCA Pump) device : Reference CodeableReference [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 The device, practitioner, etc. Distinguishes the type of involvement of the performer in the medication administration function : CodeableConcept [0..1] « null (Strength=Example) MedicationAdministrationPerfo... ?? » Indicates who or what performed the action medication administration actor : Reference CodeableReference [1..1] « Practitioner | PractitionerRole | Patient | RelatedPerson | Device The organization the device or practitioner was acting on behalf of onBehalfOf : Reference [0..1] Organization | Group » 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] « This element has or is affected by some invariants C » A coded specification of the anatomic site where the medication first entered the body. For example, "left arm" "left arm" site : CodeableConcept [0..1] « A coded concept describing the site location the medicine enters into or onto the body. null (Strength=Example) SNOMED CT Anatomical Structur... SNOMEDCTAnatomicalStructureAd... ?? » 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. null (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. null (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] « This element has or is affected by some invariants C » 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 DataType [0..1] « Ratio | Quantity ( SimpleQuantity ) » « This element has or is affected by some invariants C » The individual who was responsible for giving performer of the medication to treatment. For devices this is the patient device that performed the administration of the medication. An IV Pump would be an example of a device that is performing the administration. Both the IV Pump and the practitioner that set the rate or bolus on the pump can be listed as performers 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>
 <</definition>
 <</partOf>
 <
 <</category>
 <</medication[x]>
 <</subject>
 <</context>
 <</supportingInformation>
 <</effective[x]>
 <
  <</actor>
  <</onBehalfOf>

 <identifier><!-- 0..* Identifier External identifier --></identifier>
 <basedOn><!-- 0..* Reference(CarePlan) Plan this is fulfilled by this administration --></basedOn>
 <partOf><!-- 0..* Reference(MedicationAdministration|MedicationDispense|
   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 status of the administration changed --></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>
 <occurrence[x]><!-- 1..1 dateTime|Period|Timing Specific date/time or interval of time during which the administration took place (or did not take place) --></occurrence[x]>
 <recorded value="[dateTime]"/><!-- 0..1 When the MedicationAdministration was first captured in the subject's record -->
 <isSubPotent value="[boolean]"/><!-- 0..1 An indication that the full ordered dose was not administered -->
 <subPotentReason><!-- 0..* CodeableConcept Reason full dose was not administered --></subPotentReason>
 <performer>  <!-- 0..* Who or what performed the medication administration and what type of performance they did -->
  <function><!-- 0..1 CodeableConcept Type of performance --></function>
  <actor><!-- 1..1 CodeableReference(Device|Group|Patient|Practitioner|
    PractitionerRole|RelatedPerson) Who or what performed the medication administration --></actor>
 </performer>
 <
 <</reasonNotGiven>
 <</reasonCode>
 <</reasonReference>
 <</prescription>
 <</device>

 <reason><!-- 0..* CodeableReference(Condition|DiagnosticReport|Observation|
   Procedure) Reason that supports why the medication was administered --></reason>

 <request><!-- 0..1 Reference(MedicationRequest) Request administration performed against --></request>
 <device><!-- 0..* CodeableReference(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]"/><!-- I 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>
  <</rate[x]>

  <dose><!-- I 0..1 Quantity(SimpleQuantity) Amount of medication per dose --></dose>
  <rate[x]><!-- I 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" : "",

  "resourceType" : "MedicationAdministration",

  // from Resource: id, meta, implicitRules, and language
  // from DomainResource: text, contained, extension, and modifierExtension
  "
  "
  "
  "
  "
  
  " },
  " },
  "
  "
  "
  
  ">",
  " },
  "
    "
    "

  "identifier" : [{ Identifier }], // External identifier
  "basedOn" : [{ Reference(CarePlan) }], // Plan this is fulfilled by this administration
  "partOf" : [{ Reference(MedicationAdministration|MedicationDispense|
   Procedure) }], // Part of referenced event

  "status" : "<code>", // R!  in-progress | not-done | on-hold | completed | entered-in-error | stopped | unknown
  "statusReason" : [{ CodeableConcept }], // Reason status of the administration changed
  "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
  // occurrence[x]: 

     Specific date/time or interval of time during which the administration took place (or did not take place). One of these 3:
  "occurrenceDateTime" : "<dateTime>",
  "occurrencePeriod" : { Period },
  "occurrenceTiming" : { Timing },
  "recorded" : "<dateTime>", // When the MedicationAdministration was first captured in the subject's record
  "isSubPotent" : <boolean>, // An indication that the full ordered dose was not administered
  "subPotentReason" : [{ CodeableConcept }], // Reason full dose was not administered
  "performer" : [{ // Who or what performed the medication administration and what type of performance they did
    "function" : { CodeableConcept }, // Type of performance
    "actor" : { CodeableReference(Device|Group|Patient|Practitioner|
    PractitionerRole|RelatedPerson) } // R!  Who or what performed the medication administration
  }],
  "
  "
  "
  "
  "
  "
  "
  "
    "
    "
    "
    "
    "

  "reason" : [{ CodeableReference(Condition|DiagnosticReport|Observation|
   Procedure) }], // Reason that supports why the medication was administered

  "request" : { Reference(MedicationRequest) }, // Request administration performed against
  "device" : [{ CodeableReference(Device) }], // Device used to administer
  "note" : [{ Annotation }], // Information about the administration
  "dosage" : { // Details of how medication was taken
    "text" : "<string>", // I 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) }, // I 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 
  # from 
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  # . One of these 2
    fhir: ]
    fhir:) ]
  fhir:
  fhir:
  fhir:
  # . One of these 2
    fhir: ]
    fhir: ]
  fhir:
    fhir:
    fhir:
  ], ...;
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
    fhir:
    fhir:
    fhir:
    fhir:
    fhir:
    # . One of these 2
      fhir: ]
      fhir:) ]
  ];
  fhir:

  # from Resource: fhir:id, fhir:meta, fhir:implicitRules, and fhir:language
  # from DomainResource: fhir:text, fhir:contained, fhir:extension, and fhir:modifierExtension
  fhir:identifier  ( [ Identifier ] ... ) ; # 0..* External identifier
  fhir:basedOn  ( [ Reference(CarePlan) ] ... ) ; # 0..* Plan this is fulfilled by this administration
  fhir:partOf  ( [ Reference(MedicationAdministration|MedicationDispense|Procedure) ] ... ) ; # 0..* Part of referenced event
  fhir:status [ code ] ; # 1..1 in-progress | not-done | on-hold | completed | entered-in-error | stopped | unknown
  fhir:statusReason  ( [ CodeableConcept ] ... ) ; # 0..* Reason status of the administration changed
  fhir:category  ( [ CodeableConcept ] ... ) ; # 0..* Type of medication administration
  fhir:medication [ CodeableReference(Medication) ] ; # 1..1 What was administered
  fhir:subject [ Reference(Group|Patient) ] ; # 1..1 Who received medication
  fhir:encounter [ Reference(Encounter) ] ; # 0..1 Encounter administered as part of
  fhir:supportingInformation  ( [ Reference(Any) ] ... ) ; # 0..* Additional information to support administration
  # occurrence[x] : 1..1 Specific date/time or interval of time during which the administration took place (or did not take place). One of these 3
    fhir:occurrence [  a fhir:DateTime ; dateTime ]
    fhir:occurrence [  a fhir:Period ; Period ]
    fhir:occurrence [  a fhir:Timing ; Timing ]
  fhir:recorded [ dateTime ] ; # 0..1 When the MedicationAdministration was first captured in the subject's record
  fhir:isSubPotent [ boolean ] ; # 0..1 An indication that the full ordered dose was not administered
  fhir:subPotentReason  ( [ CodeableConcept ] ... ) ; # 0..* Reason full dose was not administered
  fhir:performer ( [ # 0..* Who or what performed the medication administration and what type of performance they did
    fhir:function [ CodeableConcept ] ; # 0..1 Type of performance
    fhir:actor [ CodeableReference(Device|Group|Patient|Practitioner|PractitionerRole|RelatedPerson) ] ; # 1..1 Who or what performed the medication administration
  ] ... ) ;
  fhir:reason  ( [ CodeableReference(Condition|DiagnosticReport|Observation|Procedure) ] ... ) ; # 0..* Reason that supports why the medication was administered
  fhir:request [ Reference(MedicationRequest) ] ; # 0..1 Request administration performed against
  fhir:device  ( [ CodeableReference(Device) ] ... ) ; # 0..* Device used to administer
  fhir:note  ( [ Annotation ] ... ) ; # 0..* Information about the administration
  fhir:dosage [ # 0..1 Details of how medication was taken
    fhir:text [ string ] ; # 0..1 I Free text dosage instructions e.g. SIG
    fhir:site [ CodeableConcept ] ; # 0..1 Body site administered to
    fhir:route [ CodeableConcept ] ; # 0..1 Path of substance into body
    fhir:method [ CodeableConcept ] ; # 0..1 How drug was administered
    fhir:dose [ Quantity(SimpleQuantity) ] ; # 0..1 I Amount of medication per dose
    # rate[x] : 0..1 I Dose quantity per unit of time. One of these 2
      fhir:rate [  a fhir:Ratio ; Ratio ]
      fhir:rate [  a fhir:SimpleQuantity ; Quantity(SimpleQuantity) ]
  ] ;
  fhir:eventHistory  ( [ Reference(Provenance) ] ... ) ; # 0..* A list of events of interest in the lifecycle

]

Changes since DSTU2 from R5 to R6

MedicationAdministration.definition Added Element MedicationAdministration.partOf Added Element MedicationAdministration.category
MedicationAdministration Added Element
MedicationAdministration.subject MedicationAdministration.occurrence[x]
  • Renamed from patient occurence[x] to subject Add Reference(Group) occurrence[x]

Changes from R4 and R4B to R6

MedicationAdministration.context MedicationAdministration Renamed from encounter to context Add Reference(EpisodeOfCare)
MedicationAdministration.supportingInformation MedicationAdministration.basedOn
  • Added Element
MedicationAdministration.effective[x] MedicationAdministration.partOf
  • Type Reference: Added Element Target Type MedicationDispense
MedicationAdministration.performer MedicationAdministration.category
    Renamed from practitioner to performer
  • Max Cardinality changed from 1 to *
  • Remove Reference(Practitioner), Remove Reference(Patient), Remove Reference(RelatedPerson)
MedicationAdministration.performer.actor MedicationAdministration.medication
  • Added Element Renamed from medication[x] to medication
  • Add Type CodeableReference
  • Remove Types CodeableConcept, Reference(Medication)
MedicationAdministration.performer.onBehalfOf MedicationAdministration.encounter
  • Added Element Renamed from context to encounter
  • Type Reference: Removed Target Type EpisodeOfCare
MedicationAdministration.notGiven MedicationAdministration.occurrence[x]
  • Renamed from wasNotGiven effective[x] to notGiven occurrence[x]
  • Add Type Timing
MedicationAdministration.reasonCode MedicationAdministration.recorded
  • Added Element
MedicationAdministration.reasonReference MedicationAdministration.isSubPotent
  • Added Element
MedicationAdministration.prescription MedicationAdministration.subPotentReason
  • Type changed from Reference(MedicationOrder) to Reference(MedicationRequest) Added Element
MedicationAdministration.note MedicationAdministration.performer.actor
    Max Cardinality changed from 1 to *
  • Type changed from string Reference(Practitioner | PractitionerRole | Patient | RelatedPerson | Device) to Annotation CodeableReference
MedicationAdministration.dosage.site MedicationAdministration.reason
  • Renamed from site[x] to site Remove Reference(BodySite) Added Element
MedicationAdministration.dosage.dose
  • Renamed from quantity to dose Merged both reasonCode and reasonReference into reason
MedicationAdministration.dosage.rate[x] MedicationAdministration.device
  • Remove Range, Add Quantity{http://hl7.org/fhir/StructureDefinition/SimpleQuantity} Type changed from Reference(Device) to CodeableReference
MedicationAdministration.eventHistory MedicationAdministration.instantiates
  • Added Element Deleted
MedicationAdministration.reasonGiven MedicationAdministration.reasonCode
  • deleted Deleted (-> reason.concept)
MedicationAdministration.effectiveTime[x] MedicationAdministration.reasonReference
  • deleted Deleted (-> reason.reference)

See the Full Difference for further information

This analysis is available for R4 as XML or JSON . See R2 <--> R3 Conversion Maps (status = 3 tests that all execute ok. All tests pass round-trip testing and all r3 resources are valid.). for R4B as XML or JSON .

Structure

Σ Type Σ 1..1 Who administered substance Reference ( Practitioner | Patient | RelatedPerson 0..1 True if I 0..* Reason administration not performed Condition or Observation
Name Flags Card. Type Description & Constraints      Filter: Filters doco
. . MedicationAdministration I N DomainResource Administration of medication to a patient
+ Reason not given is only permitted if NotGiven is true + Reason given is only permitted if NotGiven is false
Elements defined in Ancestors: id , meta , implicitRules , language , text , contained , extension , modifierExtension
. . . identifier 0..* Identifier External identifier

. . . definition basedOn 0..* Reference ( PlanDefinition | ActivityDefinition CarePlan ) Plan this is fulfilled by this administration
Instantiates protocol or definition
. . . partOf Σ 0..* Reference ( MedicationAdministration | Procedure | MedicationDispense ) Part of referenced event

. . category . statusReason 0..1 0..* CodeableConcept Reason status of medication usage the administration changed
MedicationAdministrationCategory Binding: SNOMED CT Reason Medication Not Given Codes ( Preferred Example )

. . medication[x] . category 0..* CodeableConcept What was administered Type of medication administration
SNOMED CT Medication Binding: MedicationAdministration Category Codes ( Example )

. . medicationCodeableConcept . medication CodeableConcept Σ medicationReference 1..1 Reference CodeableReference ( Medication ) What was administered
Binding: SNOMED CT Medication Codes ( Example )
. . . 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] . occurrence[x] Σ 1..1 Start and end time Specific date/time or interval of time during which the administration took place (or did not take place)
. . . . effectiveDateTime occurrenceDateTime dateTime
. . . . effectivePeriod occurrencePeriod Period
. performer . . Σ . occurrenceTiming 0..* BackboneElement Timing
. . actor . recorded Σ 0..1 dateTime 1..1 When the MedicationAdministration was first captured in the subject's record
. . . isSubPotent | Device ) 0..1 Individual who boolean An indication that the full ordered dose was performing not administered
. . onBehalfOf . subPotentReason 0..1 0..* CodeableConcept Reference Reason full dose was not administered
Binding: MedicationAdministration Subpotent Reason ( Organization Example )

Organization organization was acting for
. . notGiven . performer ?! Σ 0..* boolean BackboneElement Who or what performed the medication not administered administration and what type of performance they did

. . . reasonNotGiven . function 0..1 CodeableConcept Type of performance
SNOMED CT Reason Medication Not Given Binding: MedicationAdministration Performer Function Codes ( Example )
. . reasonCode . . actor I 0..* CodeableConcept Σ 1..1 Reason administration performed Reason Medication Given Codes CodeableReference ( Example Practitioner | PractitionerRole | Patient | RelatedPerson | Device | Group ) Who or what performed the medication administration
. . reasonReference . reason 0..* Reference CodeableReference ( Condition | Observation | DiagnosticReport | Procedure ) Reason that supports why the medication was administered
Binding: Reason Medication Given Codes ( Example )

. . . prescription request 0..1 Reference ( MedicationRequest ) Request administration performed against
. . . device 0..* Reference CodeableReference ( Device ) Device used to administer

. . . note 0..* Annotation Information about the administration

. . . dosage I C 0..1 BackboneElement Details 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 C 0..1 string Free text dosage instructions e.g. SIG
. . . . site 0..1 CodeableConcept Body site administered to
Binding: SNOMED CT Anatomical Structure for Administration Site Codes ( Example )
. . . . route 0..1 CodeableConcept Path of substance into body
Binding: SNOMED CT Route Codes ( Example )
. . . . method 0..1 CodeableConcept How drug was administered
Binding: SNOMED CT Administration Method Codes ( Example )
. . . . dose C 0..1 SimpleQuantity Amount of medication per dose
. . . . rate[x] C 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 icon

See the Extensions for this resource

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. Particularly important if these records have to be resource is updated and propagates from server to server identifier : Identifier [0..*] A protocol, guideline, orderset or other definition plan that was adhered to is fulfilled in whole or in part by this event MedicationAdministration definition basedOn : Reference [0..*] PlanDefinition | ActivityDefinition « CarePlan » A larger event of which this particular event is a component or step partOf : Reference [0..*] « MedicationAdministration | Procedure | MedicationDispense » Will generally be set to show that the administration has been completed. For some long running administrations such as infusions 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) MedicationAdministrationStatu... ! » A set of codes code indicating why the current status of a MedicationAdministration. (Strength=Required) the administration changed MedicationAdministrationStatus ! statusReason : CodeableConcept [0..*] « null (Strength=Example) SNOMEDCTReasonMedicationNotGi... ?? » Indicates the The type of medication administration and 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 (Strength=Preferred) null (Strength=Example) MedicationAdministrationCateg... ? ?? » 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] medication : Type CodeableReference [1..1] CodeableConcept | Reference ( « Medication ); ; Codes identifying substance or product that can be administered. null (Strength=Example) SNOMED CT Medication SNOMEDCTMedicationCodes ?? » The person or animal or group receiving the medication subject : Reference [1..1] « Patient | Group » The visit, admission admission, or other contact between patient and health care provider during which the medication administration was performed as part of context encounter : Reference [0..1] « Encounter | EpisodeOfCare » Additional information (for example, patient height and weight) that supports the administration of the medication 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 attribute 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). place). For many administrations, such as swallowing a tablet the use of dateTime is more appropriate effective[x] occurrence[x] : Type DataType [1..1] « dateTime | Period | Timing » Set this to true if The date the record is saying that occurrence of the medication MedicationAdministration was NOT administered (this element modifies first captured in the meaning record - potentially significantly after the occurrence of other elements) the event notGiven recorded : boolean dateTime [0..1] A code indicating why An indication that the administration full dose was not performed administered reasonNotGiven isSubPotent : CodeableConcept [0..*] A set of codes indicating the reason why the MedicationAdministration is negated. (Strength=Example) SNOMED CT Reason Medication N... boolean ?? [0..1] A code indicating The reason or reasons why the medication full dose was given not administered reasonCode subPotentReason : CodeableConcept [0..*] « A set of codes indicating the reason why the MedicationAdministration was made. null (Strength=Example) Reason Medication Given MedicationAdministrationSubpo... ?? » A code, Condition or observation that supports why the medication was administered reasonReference reason : Reference CodeableReference [0..*] « Condition | Observation | DiagnosticReport | Procedure ; null (Strength=Example) ReasonMedicationGivenCodes ?? » The original request, instruction or authority to perform the administration prescription request : Reference [0..1] « MedicationRequest » The device that is to be used in administering for the medication to administration of the patient. For medication (for example, a particular infusion pump PCA Pump) device : Reference CodeableReference [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 The device, practitioner, etc. Distinguishes the type of involvement of the performer in the medication administration function : CodeableConcept [0..1] « null (Strength=Example) MedicationAdministrationPerfo... ?? » Indicates who or what performed the action medication administration actor : Reference CodeableReference [1..1] « Practitioner | PractitionerRole | Patient | RelatedPerson | Device The organization the device or practitioner was acting on behalf of onBehalfOf : Reference [0..1] Organization | Group » 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] « This element has or is affected by some invariants C » A coded specification of the anatomic site where the medication first entered the body. For example, "left arm" "left arm" site : CodeableConcept [0..1] « A coded concept describing the site location the medicine enters into or onto the body. null (Strength=Example) SNOMED CT Anatomical Structur... SNOMEDCTAnatomicalStructureAd... ?? » 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. null (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. null (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] « This element has or is affected by some invariants C » 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 DataType [0..1] « Ratio | Quantity ( SimpleQuantity ) » « This element has or is affected by some invariants C » The individual who was responsible for giving performer of the medication to treatment. For devices this is the patient device that performed the administration of the medication. An IV Pump would be an example of a device that is performing the administration. Both the IV Pump and the practitioner that set the rate or bolus on the pump can be listed as performers 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>
 <</definition>
 <</partOf>
 <
 <</category>
 <</medication[x]>
 <</subject>
 <</context>
 <</supportingInformation>
 <</effective[x]>
 <
  <</actor>
  <</onBehalfOf>

 <identifier><!-- 0..* Identifier External identifier --></identifier>
 <basedOn><!-- 0..* Reference(CarePlan) Plan this is fulfilled by this administration --></basedOn>
 <partOf><!-- 0..* Reference(MedicationAdministration|MedicationDispense|
   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 status of the administration changed --></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>
 <occurrence[x]><!-- 1..1 dateTime|Period|Timing Specific date/time or interval of time during which the administration took place (or did not take place) --></occurrence[x]>
 <recorded value="[dateTime]"/><!-- 0..1 When the MedicationAdministration was first captured in the subject's record -->
 <isSubPotent value="[boolean]"/><!-- 0..1 An indication that the full ordered dose was not administered -->
 <subPotentReason><!-- 0..* CodeableConcept Reason full dose was not administered --></subPotentReason>
 <performer>  <!-- 0..* Who or what performed the medication administration and what type of performance they did -->
  <function><!-- 0..1 CodeableConcept Type of performance --></function>
  <actor><!-- 1..1 CodeableReference(Device|Group|Patient|Practitioner|
    PractitionerRole|RelatedPerson) Who or what performed the medication administration --></actor>
 </performer>
 <
 <</reasonNotGiven>
 <</reasonCode>
 <</reasonReference>
 <</prescription>
 <</device>

 <reason><!-- 0..* CodeableReference(Condition|DiagnosticReport|Observation|
   Procedure) Reason that supports why the medication was administered --></reason>

 <request><!-- 0..1 Reference(MedicationRequest) Request administration performed against --></request>
 <device><!-- 0..* CodeableReference(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]"/><!-- I 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>
  <</rate[x]>

  <dose><!-- I 0..1 Quantity(SimpleQuantity) Amount of medication per dose --></dose>
  <rate[x]><!-- I 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" : "",

  "resourceType" : "MedicationAdministration",

  // from Resource: id, meta, implicitRules, and language
  // from DomainResource: text, contained, extension, and modifierExtension
  "
  "
  "
  "
  "
  
  " },
  " },
  "
  "
  "
  
  ">",
  " },
  "
    "
    "

  "identifier" : [{ Identifier }], // External identifier
  "basedOn" : [{ Reference(CarePlan) }], // Plan this is fulfilled by this administration
  "partOf" : [{ Reference(MedicationAdministration|MedicationDispense|
   Procedure) }], // Part of referenced event

  "status" : "<code>", // R!  in-progress | not-done | on-hold | completed | entered-in-error | stopped | unknown
  "statusReason" : [{ CodeableConcept }], // Reason status of the administration changed
  "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
  // occurrence[x]: 

     Specific date/time or interval of time during which the administration took place (or did not take place). One of these 3:
  "occurrenceDateTime" : "<dateTime>",
  "occurrencePeriod" : { Period },
  "occurrenceTiming" : { Timing },
  "recorded" : "<dateTime>", // When the MedicationAdministration was first captured in the subject's record
  "isSubPotent" : <boolean>, // An indication that the full ordered dose was not administered
  "subPotentReason" : [{ CodeableConcept }], // Reason full dose was not administered
  "performer" : [{ // Who or what performed the medication administration and what type of performance they did
    "function" : { CodeableConcept }, // Type of performance
    "actor" : { CodeableReference(Device|Group|Patient|Practitioner|
    PractitionerRole|RelatedPerson) } // R!  Who or what performed the medication administration
  }],
  "
  "
  "
  "
  "
  "
  "
  "
    "
    "
    "
    "
    "

  "reason" : [{ CodeableReference(Condition|DiagnosticReport|Observation|
   Procedure) }], // Reason that supports why the medication was administered

  "request" : { Reference(MedicationRequest) }, // Request administration performed against
  "device" : [{ CodeableReference(Device) }], // Device used to administer
  "note" : [{ Annotation }], // Information about the administration
  "dosage" : { // Details of how medication was taken
    "text" : "<string>", // I 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) }, // I 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 
  # from 
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  # . One of these 2
    fhir: ]
    fhir:) ]
  fhir:
  fhir:
  fhir:
  # . One of these 2
    fhir: ]
    fhir: ]
  fhir:
    fhir:
    fhir:
  ], ...;
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
  fhir:
    fhir:
    fhir:
    fhir:
    fhir:
    fhir:
    # . One of these 2
      fhir: ]
      fhir:) ]
  ];
  fhir:

  # from Resource: fhir:id, fhir:meta, fhir:implicitRules, and fhir:language
  # from DomainResource: fhir:text, fhir:contained, fhir:extension, and fhir:modifierExtension
  fhir:identifier  ( [ Identifier ] ... ) ; # 0..* External identifier
  fhir:basedOn  ( [ Reference(CarePlan) ] ... ) ; # 0..* Plan this is fulfilled by this administration
  fhir:partOf  ( [ Reference(MedicationAdministration|MedicationDispense|Procedure) ] ... ) ; # 0..* Part of referenced event
  fhir:status [ code ] ; # 1..1 in-progress | not-done | on-hold | completed | entered-in-error | stopped | unknown
  fhir:statusReason  ( [ CodeableConcept ] ... ) ; # 0..* Reason status of the administration changed
  fhir:category  ( [ CodeableConcept ] ... ) ; # 0..* Type of medication administration
  fhir:medication [ CodeableReference(Medication) ] ; # 1..1 What was administered
  fhir:subject [ Reference(Group|Patient) ] ; # 1..1 Who received medication
  fhir:encounter [ Reference(Encounter) ] ; # 0..1 Encounter administered as part of
  fhir:supportingInformation  ( [ Reference(Any) ] ... ) ; # 0..* Additional information to support administration
  # occurrence[x] : 1..1 Specific date/time or interval of time during which the administration took place (or did not take place). One of these 3
    fhir:occurrence [  a fhir:DateTime ; dateTime ]
    fhir:occurrence [  a fhir:Period ; Period ]
    fhir:occurrence [  a fhir:Timing ; Timing ]
  fhir:recorded [ dateTime ] ; # 0..1 When the MedicationAdministration was first captured in the subject's record
  fhir:isSubPotent [ boolean ] ; # 0..1 An indication that the full ordered dose was not administered
  fhir:subPotentReason  ( [ CodeableConcept ] ... ) ; # 0..* Reason full dose was not administered
  fhir:performer ( [ # 0..* Who or what performed the medication administration and what type of performance they did
    fhir:function [ CodeableConcept ] ; # 0..1 Type of performance
    fhir:actor [ CodeableReference(Device|Group|Patient|Practitioner|PractitionerRole|RelatedPerson) ] ; # 1..1 Who or what performed the medication administration
  ] ... ) ;
  fhir:reason  ( [ CodeableReference(Condition|DiagnosticReport|Observation|Procedure) ] ... ) ; # 0..* Reason that supports why the medication was administered
  fhir:request [ Reference(MedicationRequest) ] ; # 0..1 Request administration performed against
  fhir:device  ( [ CodeableReference(Device) ] ... ) ; # 0..* Device used to administer
  fhir:note  ( [ Annotation ] ... ) ; # 0..* Information about the administration
  fhir:dosage [ # 0..1 Details of how medication was taken
    fhir:text [ string ] ; # 0..1 I Free text dosage instructions e.g. SIG
    fhir:site [ CodeableConcept ] ; # 0..1 Body site administered to
    fhir:route [ CodeableConcept ] ; # 0..1 Path of substance into body
    fhir:method [ CodeableConcept ] ; # 0..1 How drug was administered
    fhir:dose [ Quantity(SimpleQuantity) ] ; # 0..1 I Amount of medication per dose
    # rate[x] : 0..1 I Dose quantity per unit of time. One of these 2
      fhir:rate [  a fhir:Ratio ; Ratio ]
      fhir:rate [  a fhir:SimpleQuantity ; Quantity(SimpleQuantity) ]
  ] ;
  fhir:eventHistory  ( [ Reference(Provenance) ] ... ) ; # 0..* A list of events of interest in the lifecycle

]

Changes since DSTU2 from R5 to R6

MedicationAdministration.definition Added Element MedicationAdministration.partOf Added Element MedicationAdministration.category
MedicationAdministration Added Element
MedicationAdministration.subject MedicationAdministration.occurrence[x]
  • Renamed from patient occurence[x] to subject Add Reference(Group) occurrence[x]

Changes from R4 and R4B to R6

MedicationAdministration.context MedicationAdministration Renamed from encounter to context Add Reference(EpisodeOfCare)
MedicationAdministration.supportingInformation MedicationAdministration.basedOn
  • Added Element
MedicationAdministration.effective[x] MedicationAdministration.partOf
  • Type Reference: Added Element Target Type MedicationDispense
MedicationAdministration.performer MedicationAdministration.category
    Renamed from practitioner to performer
  • Max Cardinality changed from 1 to *
  • Remove Reference(Practitioner), Remove Reference(Patient), Remove Reference(RelatedPerson)
MedicationAdministration.performer.actor MedicationAdministration.medication
  • Added Element Renamed from medication[x] to medication
  • Add Type CodeableReference
  • Remove Types CodeableConcept, Reference(Medication)
MedicationAdministration.performer.onBehalfOf MedicationAdministration.encounter
  • Added Element Renamed from context to encounter
  • Type Reference: Removed Target Type EpisodeOfCare
MedicationAdministration.notGiven MedicationAdministration.occurrence[x]
  • Renamed from wasNotGiven effective[x] to notGiven occurrence[x]
  • Add Type Timing
MedicationAdministration.reasonCode MedicationAdministration.recorded
  • Added Element
MedicationAdministration.reasonReference MedicationAdministration.isSubPotent
  • Added Element
MedicationAdministration.prescription MedicationAdministration.subPotentReason
  • Type changed from Reference(MedicationOrder) to Reference(MedicationRequest) Added Element
MedicationAdministration.note MedicationAdministration.performer.actor
    Max Cardinality changed from 1 to *
  • Type changed from string Reference(Practitioner | PractitionerRole | Patient | RelatedPerson | Device) to Annotation CodeableReference
MedicationAdministration.dosage.site MedicationAdministration.reason
  • Renamed from site[x] to site Remove Reference(BodySite) Added Element
MedicationAdministration.dosage.dose
  • Renamed from quantity to dose Merged both reasonCode and reasonReference into reason
MedicationAdministration.dosage.rate[x] MedicationAdministration.device
  • Remove Range, Add Quantity{http://hl7.org/fhir/StructureDefinition/SimpleQuantity} Type changed from Reference(Device) to CodeableReference
MedicationAdministration.eventHistory MedicationAdministration.instantiates
  • Added Element Deleted
MedicationAdministration.reasonGiven MedicationAdministration.reasonCode
  • deleted Deleted (-> reason.concept)
MedicationAdministration.effectiveTime[x] MedicationAdministration.reasonReference
  • deleted Deleted (-> reason.reference)

See the Full Difference for further information

This analysis is available for R4 as XML or JSON . See R2 <--> R3 Conversion Maps (status = 3 tests that all execute ok. All tests pass round-trip testing and all r3 resources are valid.). for R4B as XML or JSON .

 

Alternate Additional definitions: Master Definition ( XML , + JSON ), , XML Schema / Schematron (for ) + JSON Schema , ShEx (for Turtle ) + see the extensions , the spreadsheet version & the dependency analysis

MedicationAdministration.category MedicationAdministration.reasonNotGiven
Path Definition ValueSet Type Reference Documentation
MedicationAdministration.status A set of codes indicating the current status of a MedicationAdministration. MedicationAdministrationStatusCodes Required MedicationAdministrationStatus

MedicationAdministration Status Codes

MedicationAdministration.statusReason A coded concept describing where the medication administered is expected to occur SNOMEDCTReasonMedicationNotGivenCodes Preferred Example

This value set includes all medication refused, medication not administered, and non-administration of necessary drug or medicine codes from SNOMED CT - provided as an exemplar value set.

MedicationAdministration.category MedicationAdministrationCategory MedicationAdministrationCategoryCodes Example

MedicationAdministration Category Codes

MedicationAdministration.medication[x] MedicationAdministration.medication Codes identifying substance or product that can be administered. SNOMEDCTMedicationCodes Example

This value set includes all drug or medicament substance codes and all pharmaceutical/biologic products from SNOMED CT Medication Codes - provided as an exemplar value set.

MedicationAdministration.subPotentReason MedicationAdministrationSubpotentReason (a valid code from Administration SubPotent Reason ) Example A set of codes indicating the reason why the

MedicationAdministration is negated. Subpotent Reason

MedicationAdministration.performer.function MedicationAdministrationPerformerFunctionCodes Example SNOMED CT Reason Medication Not Given

MedicationAdministration Performer Function Codes

MedicationAdministration.reasonCode MedicationAdministration.reason A set of codes indicating the reason why the MedicationAdministration was made. ReasonMedicationGivenCodes Example Reason Medication Given Codes

This value set is provided as an example. The value set to instantiate this attribute should be drawn from a robust terminology code system that consists of or contains concepts to support the medication process.

MedicationAdministration.dosage.site A coded concept describing the site location the medicine enters into or onto the body. SNOMEDCTAnatomicalStructureAdministrationSites Example SNOMED CT

This value set includes Anatomical Structure for Administration Site Codes codes from SNOMED CT - provided as an exemplar.

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. SNOMEDCTRouteCodes Example

This value set includes all Route codes from SNOMED CT Route Codes - provided as an exemplar.

MedicationAdministration.dosage.method A coded concept describing the technique by which the medicine is administered. SNOMEDCTAdministrationMethodCodes Example

This value set includes some method codes from SNOMED CT Administration Method Codes - provided as an exemplar

mad-3 : Reason given is only permitted if NotGiven is false ( expression : reasonCode.empty() or notGiven.empty() or notGiven = 'false' )
UniqueKey Level Location Description Expression
mad-1 : On MedicationAdministration.dosage: img  mad-1 Rule MedicationAdministration.dosage If dosage attribute is present then SHALL have at least one of dosage.text or dosage.dose or dosage.rate[x] ( expression on MedicationAdministration.dosage: dose.exists() (dose.exists() or rate.exists() ) mad-2 : Reason not given is only permitted if NotGiven is true ( expression : reasonNotGiven.empty() or notGiven = true 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" "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.

Medication administrations can be done by:

  • clinician e.g. nurse, physician, other providers
  • patient via self-administration
  • family member e.g. mother for the baby
  • caregiver (non-clinician)
  • devices e.g. IV pumps, insulin pumps, patient-controlled analgesic (PCA) pumps

In order to administer a medication, there is often a list of medications that includes the medication itself e.g code or name , dose, date/time the medication is to be administered and route and in some cases additional administration instructions. A common name for this type of list of medications to be administered and the corresponding record of medication administrations is Medication Administration Record (MAR).

Medication Administration Record (MAR) - a view of a patients medications that need to be administered. Typically, an MAR is seen in settings where there is a requirement to document who, when, what and where information, concerning medications administered to a patient, or if self-administered, taken by a patient. The same record often has two primary functions - first it lists what medications need to be administered and what date and time or time interval, the administration should be done; and second it lists what medications have been administered and the details associated with the administration.

  • Scheduled Medication Administration - this represents a specific medication, a dose, or IV rate, a route of administration, a date and time, dosage instructions, and optionally, it may include a time interval Use the MedicationRequest resource to represent each individual medication administration
Resource Element Clinical Description
MedicationRequest.intent=instance-order Specific instance of a medication order, sometimes called a "child" order of the parent full medication order
MedicationRequest.medication.concept or reference to Medication resource Drug that has been ordered and is to be administered
MedicationRequest.dosage.dose[x] or rate[x] Dose of medication to be administered. If the drug is intravenous, you may represent this administration as a rate.
MedicationRequest.dosageInstructions.dosage.timing.bounds Time the medication should be administered e.g. 10am on a specific date, or at time of sleep, or after breakfast, or over 60 minutes starting at 3pm on a specific date, etc.
MedicationRequest.dosageInstructions.dosage.route Route of administration e.g. oral, intravenous, topical, etc.
MedicationRequest.dosageInstructions.dosage.site Anatomical site where the drug enters the body e.g. subclavian vein

Other attributes may be included, such as those for access sites, dosage instructions, reason, device used, etc. The list of attributes above is meant to help the reader understand the definitions. It is not meant to define what attributes an individual implementation may include in their design.

  • Recording a Medication Administration - this represents a specific medication administration that includes a dose, or IV rate, a route of administration, and optional administration method, a date and time, or in the case of some IV medications a start date/time and end date/time, administration site, name of person who administered the medication, optional details about the administration e.g., patient refused, patient only took a partial dose because they were ill, etc.
Resource Element Clinical Description
MedicationAdministration.medication.concept or reference to Medication resource Drug that has been administered
MedicationAdministration.dosage.dose or rate[x] Dose of medication that was administered. If the drug is intravenous, you may represent this a rate e.g. 60 ml/30 minutes
MedicationAdministration.occurrenceDateTime or .occurrencePeriod Date and time or, date/time of the period over which the medication was administered
MedicationAdministration.dosage.route Route of administration used to administer medication to the patient
MedicationAdministration.dosage.site Anatomical site where the drug administered entered the body e.g. subclavian vein
MedicationAdministration.statusReason The reason for not giving the medication. This is used when the status = not-done.
MedicationAdministration.supportingInformation.reference (resource) Used to capture data such as lab test values or heart rate, or blood pressure values, etc. This type of data is often expressed in the order and is used to determine if the medication should be administered or held.
MedicationAdministration.performer.function (=performer) MedicationAdministration.performer.actor.reference (resource) Identifies who administered the medication. The specific referenced resource could be: Provider, Patient, Device, RelatedPerson
MedicationAdministration.performer.function (=verifier) MedicationAdministration.performer.actor.reference (resource) Identifies who verified the medication to be administered. This is most often a clinician who is verifying the administration for another clinician where there is a requirement for verification prior to administration.

Other attributes may be included e.g. method, reason, etc. The list of attributes above is meant to help the reader understand the definitions. It is not meant to define what attributes an individual implementation may include in their design.

Scheduled Medication Administration information is used to inform the person who will administer the medication(s) the date/time, and medication specific information e.g., dose, route, method, special instructions for each medication a person is scheduled to take.

Recording Medication Administration details provides a place to capture the data about the actual administration e.g., date/time or time interval of administration, dose, route, method, device, performer, etc.

Depending on the type of application, this type of information may be presented to the user who is administering the medication in an EHR module for medication administration, in a mobile application for the patient or caregiver.

Medication administrations occur in all types of settings e.g. hospitals, outpatient clinics, home, ambulance, ER, etc.

The list of medications to be administered, or that have been administered may be captured in an application on a patient's phone, tablet or computer workstation.

The lists may be created by a variety of users or systems, for example:

  • Patient - direct entry into a mobile app
  • Other e.g. parent for a child, caregiver for a patient
  • Electronically e.g., health system auto generates the list from orders/prescriptions known to the system
  • Clinician e.g., user entry within an EHR Medication Administration module
  • Output of a process e.g. medication reconciliation; new or updated medication orders (prescriptions, requests)

Data sources for the medications that are listed on the Medication Administration list determine what will be displayed to a user. Here are two common examples:

Provider view Medication Administration list may include medications that come from:

  • Prescribed by clinicians who have the authority to write these types of medication orders
  • Over-the-counter (OTC) medications that the patient informs/adds to the list - this would include herbals and supplements
  • NOTE: Medication errors may lead to medications potentially showing up on a list of medications to be administered e.g., medication order was written for the wrong patient In this case, the MAR indicates that a medication should be administered to a patient (later found to be in error e.g., wrong patient)
  • NOTE: Medication errors may also lead to medications showing up on a list of administered medications e.g., medication was mistakenly administered to the wrong patient, or the wrong dose was administered, or wrong route was used, etc.

Patient view Medication Administration list may include medications that come:

  • from an identical list as above with the following caveats:
    • The list might not include some medications if the patient is one of the sources for the list and states they are not taking a specific medication, irrespective of whether it was prescribed
    • The patient does not know or has incomplete memory of the medications they have been prescribed
    • The level of detail for each medication might not be as detailed as provider-based list

Search parameters for this resource. See also the full list of search parameters for this resource , and check the Extensions registry for search parameters on extensions related to this resource. The common parameters also apply. See Searching for more information about searching in REST, messaging, and services.

Administrations that were not made MedicationAdministration.notGiven patient
Name Type Description Expression In Common
code token Return administrations of this medication code MedicationAdministration.medication.as(CodeableConcept) MedicationAdministration.medication.concept 4 19 Resources
date context reference date Return administrations that share this encounter or episode of care Date administration happened (or did not happen) MedicationAdministration.context ( EpisodeOfCare , Encounter ) MedicationAdministration.occurrence.ofType(dateTime) | MedicationAdministration.occurrence.ofType(Period) 1 Resources
device reference Return administrations with this administration device identity MedicationAdministration.device ( Device ) MedicationAdministration.device.reference
effective-time encounter date reference Date administration happened (or did not happen) Return administrations that share this encounter MedicationAdministration.effective MedicationAdministration.encounter
( Encounter )
2 Resources
identifier token Return administrations with this external identifier MedicationAdministration.identifier 3 58 Resources
medication reference Return administrations of this medication resource reference MedicationAdministration.medication.as(Reference) ( Medication ) MedicationAdministration.medication.reference 3 4 Resources
not-given token patient reference The identity of a patient to list administrations for MedicationAdministration.subject MedicationAdministration.subject.where(resolve() is Patient)
( Patient )
3 60 Resources
performer reference The identify identity of the individual who administered the medication MedicationAdministration.performer.actor ( Practitioner , Device , Patient , RelatedPerson ) MedicationAdministration.performer.actor.reference
performer-device-code prescription reference token The identity of a prescription to list administrations from the individual who administered the medication MedicationAdministration.prescription ( MedicationRequest ) MedicationAdministration.performer.actor.concept 1 Resources
reason-given reference Reference to a resource (by instance) MedicationAdministration.reason.reference
reason-given-code token Reasons for administering the medication MedicationAdministration.reasonCode MedicationAdministration.reason.concept
reason-not-given token Reasons for not administering the medication MedicationAdministration.reasonNotGiven 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 4 Resources
subject reference The identify identity of the individual or group to list administrations for MedicationAdministration.subject
( Group , Patient )