This page is part of the FHIR Specification v6.0.0-ballot1: Release 6 Ballot (1st Draft) (see Ballot Notes). The current version is 5.0.0. For a full list of available versions, see the Directory of published versions
Pharmacy Work Group | Maturity Level: 2 | Trial Use | Security Category: Patient | Compartments: Encounter, Patient |
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. Please refer to the Immunization resource/Profile for the treatment of vaccines. It will principally be used within care settings (including inpatient) to record medication administrations, including self-administrations of oral medications, injections, intravenous infusions, etc. It can also be used in outpatient settings to record allergy shots and other non-immunization administrations. In some cases, it might be used for home-health reporting, such as recording self-administered or even device-administered insulin.
Note: devices coated with a medication (e.g. heparin) are not typically recorded as a medication administration. However, administration of a medication via an implanted medication pump (e.g., insulin) would be recorded as a MedicationAdministration.
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. |
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 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 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. However, if systems need to use a MedicationAdministration resource to capture vaccinations for workflow or other reasons, a Medication Administration resource may be used but systems SHOULD also create and expose an equivalent Immunization instance.
Structure
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
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 | |
basedOn | 0..* | Reference(CarePlan) | Plan this is fulfilled by this administration | |
partOf | Σ | 0..* | Reference(MedicationAdministration | Procedure | MedicationDispense) | Part of referenced event |
status | ?!Σ | 1..1 | code | in-progress | not-done | on-hold | completed | entered-in-error | stopped | unknown Binding: MedicationAdministration Status Codes (Required) |
statusReason | 0..* | CodeableConcept | Reason administration not performed Binding: SNOMED CT Reason Medication Not Given Codes (Example) | |
category | 0..* | CodeableConcept | Type of medication administration Binding: MedicationAdministration Location Codes (Example) | |
medication | Σ | 1..1 | CodeableReference(Medication) | What was administered Binding: SNOMED CT Medication Codes (Example) |
subject | Σ | 1..1 | Reference(Patient | Group) | Who received medication |
encounter | 0..1 | Reference(Encounter) | Encounter administered as part of | |
supportingInformation | 0..* | Reference(Any) | Additional information to support administration | |
occurence[x] | Σ | 1..1 | Specific date/time or interval of time during which the administration took place (or did not take place) | |
occurenceDateTime | dateTime | |||
occurencePeriod | Period | |||
occurenceTiming | Timing | |||
recorded | Σ | 0..1 | dateTime | When the MedicationAdministration was first captured in the subject's record |
isSubPotent | 0..1 | boolean | Full dose was not administered | |
subPotentReason | 0..* | CodeableConcept | Reason full dose was not administered Binding: MedicationAdministration Subpotent Reason (Example) | |
performer | Σ | 0..* | BackboneElement | Who or what performed the medication administration and what type of performance they did |
function | 0..1 | CodeableConcept | Type of performance Binding: MedicationAdministration Performer Function Codes (Example) | |
actor | Σ | 1..1 | CodeableReference(Practitioner | PractitionerRole | Patient | RelatedPerson | Device) | Who or what performed the medication administration |
reason | 0..* | CodeableReference(Condition | Observation | DiagnosticReport | Procedure) | Reason that supports why the medication was administered Binding: Reason Medication Given Codes (Example) | |
request | 0..1 | Reference(MedicationRequest) | Request administration performed against | |
device | 0..* | CodeableReference(Device) | Device used to administer | |
note | 0..* | Annotation | Information about the administration | |
dosage | 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 | |
Documentation for this format |
See the Extensions for this resource
UML Diagram (Legend)
XML Template
<MedicationAdministration xmlns="http://hl7.org/fhir"> <!-- from Resource: id, meta, implicitRules, and language --> <!-- from DomainResource: text, contained, extension, and modifierExtension --> <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 administration not performed --></statusReason> <category><!-- 0..* CodeableConcept Type of medication administration --></category> <medication><!-- 1..1 CodeableReference(Medication) What was administered --></medication> <subject><!-- 1..1 Reference(Group|Patient) Who received medication --></subject> <encounter><!-- 0..1 Reference(Encounter) Encounter administered as part of --></encounter> <supportingInformation><!-- 0..* Reference(Any) Additional information to support administration --></supportingInformation> <occurence[x]><!-- 1..1 dateTime|Period|Timing Specific date/time or interval of time during which the administration took place (or did not take place) --></occurence[x]> <recorded value="[dateTime]"/><!-- 0..1 When the MedicationAdministration was first captured in the subject's record --> <isSubPotent value="[boolean]"/><!-- 0..1 Full 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|Patient|Practitioner|PractitionerRole| RelatedPerson) Who or what performed the medication administration --></actor> </performer> <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><!-- 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
{ "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 administration not performed "category" : [{ CodeableConcept }], // Type of medication administration "medication" : { CodeableReference(Medication) }, // R! What was administered "subject" : { Reference(Group|Patient) }, // R! Who received medication "encounter" : { Reference(Encounter) }, // Encounter administered as part of "supportingInformation" : [{ Reference(Any) }], // Additional information to support administration // occurence[x]: Specific date/time or interval of time during which the administration took place (or did not take place). One of these 3: "occurenceDateTime" : "<dateTime>", "occurencePeriod" : { Period }, "occurenceTiming" : { Timing }, "recorded" : "<dateTime>", // When the MedicationAdministration was first captured in the subject's record "isSubPotent" : <boolean>, // Full 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|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/> . [ 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: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 administration not performed 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 # occurence[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:occurence [ a fhir:dateTime ; dateTime ] fhir:occurence [ a fhir:Period ; Period ] fhir:occurence [ 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 Full 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|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 from both R4 and R4B
MedicationAdministration | |
MedicationAdministration.basedOn |
|
MedicationAdministration.partOf |
|
MedicationAdministration.category |
|
MedicationAdministration.medication |
|
MedicationAdministration.encounter |
|
MedicationAdministration.occurence[x] |
|
MedicationAdministration.recorded |
|
MedicationAdministration.isSubPotent |
|
MedicationAdministration.subPotentReason |
|
MedicationAdministration.performer.actor |
|
MedicationAdministration.reason |
|
MedicationAdministration.device |
|
MedicationAdministration.instantiates |
|
MedicationAdministration.context |
|
MedicationAdministration.effective[x] |
|
MedicationAdministration.reasonCode |
|
MedicationAdministration.reasonReference |
|
See the Full Difference for further information
This analysis is available for R4 as XML or JSON and for R4B as XML or JSON.
See R4 <--> R5 Conversion Maps (status = See Conversions Summary.)
Structure
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
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 | |
basedOn | 0..* | Reference(CarePlan) | Plan this is fulfilled by this administration | |
partOf | Σ | 0..* | Reference(MedicationAdministration | Procedure | MedicationDispense) | Part of referenced event |
status | ?!Σ | 1..1 | code | in-progress | not-done | on-hold | completed | entered-in-error | stopped | unknown Binding: MedicationAdministration Status Codes (Required) |
statusReason | 0..* | CodeableConcept | Reason administration not performed Binding: SNOMED CT Reason Medication Not Given Codes (Example) | |
category | 0..* | CodeableConcept | Type of medication administration Binding: MedicationAdministration Location Codes (Example) | |
medication | Σ | 1..1 | CodeableReference(Medication) | What was administered Binding: SNOMED CT Medication Codes (Example) |
subject | Σ | 1..1 | Reference(Patient | Group) | Who received medication |
encounter | 0..1 | Reference(Encounter) | Encounter administered as part of | |
supportingInformation | 0..* | Reference(Any) | Additional information to support administration | |
occurence[x] | Σ | 1..1 | Specific date/time or interval of time during which the administration took place (or did not take place) | |
occurenceDateTime | dateTime | |||
occurencePeriod | Period | |||
occurenceTiming | Timing | |||
recorded | Σ | 0..1 | dateTime | When the MedicationAdministration was first captured in the subject's record |
isSubPotent | 0..1 | boolean | Full dose was not administered | |
subPotentReason | 0..* | CodeableConcept | Reason full dose was not administered Binding: MedicationAdministration Subpotent Reason (Example) | |
performer | Σ | 0..* | BackboneElement | Who or what performed the medication administration and what type of performance they did |
function | 0..1 | CodeableConcept | Type of performance Binding: MedicationAdministration Performer Function Codes (Example) | |
actor | Σ | 1..1 | CodeableReference(Practitioner | PractitionerRole | Patient | RelatedPerson | Device) | Who or what performed the medication administration |
reason | 0..* | CodeableReference(Condition | Observation | DiagnosticReport | Procedure) | Reason that supports why the medication was administered Binding: Reason Medication Given Codes (Example) | |
request | 0..1 | Reference(MedicationRequest) | Request administration performed against | |
device | 0..* | CodeableReference(Device) | Device used to administer | |
note | 0..* | Annotation | Information about the administration | |
dosage | 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 | |
Documentation for this format |
See the Extensions for this resource
XML Template
<MedicationAdministration xmlns="http://hl7.org/fhir"> <!-- from Resource: id, meta, implicitRules, and language --> <!-- from DomainResource: text, contained, extension, and modifierExtension --> <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 administration not performed --></statusReason> <category><!-- 0..* CodeableConcept Type of medication administration --></category> <medication><!-- 1..1 CodeableReference(Medication) What was administered --></medication> <subject><!-- 1..1 Reference(Group|Patient) Who received medication --></subject> <encounter><!-- 0..1 Reference(Encounter) Encounter administered as part of --></encounter> <supportingInformation><!-- 0..* Reference(Any) Additional information to support administration --></supportingInformation> <occurence[x]><!-- 1..1 dateTime|Period|Timing Specific date/time or interval of time during which the administration took place (or did not take place) --></occurence[x]> <recorded value="[dateTime]"/><!-- 0..1 When the MedicationAdministration was first captured in the subject's record --> <isSubPotent value="[boolean]"/><!-- 0..1 Full 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|Patient|Practitioner|PractitionerRole| RelatedPerson) Who or what performed the medication administration --></actor> </performer> <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><!-- 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
{ "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 administration not performed "category" : [{ CodeableConcept }], // Type of medication administration "medication" : { CodeableReference(Medication) }, // R! What was administered "subject" : { Reference(Group|Patient) }, // R! Who received medication "encounter" : { Reference(Encounter) }, // Encounter administered as part of "supportingInformation" : [{ Reference(Any) }], // Additional information to support administration // occurence[x]: Specific date/time or interval of time during which the administration took place (or did not take place). One of these 3: "occurenceDateTime" : "<dateTime>", "occurencePeriod" : { Period }, "occurenceTiming" : { Timing }, "recorded" : "<dateTime>", // When the MedicationAdministration was first captured in the subject's record "isSubPotent" : <boolean>, // Full 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|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/> . [ 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: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 administration not performed 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 # occurence[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:occurence [ a fhir:dateTime ; dateTime ] fhir:occurence [ a fhir:Period ; Period ] fhir:occurence [ 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 Full 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|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 from both R4 and R4B
MedicationAdministration | |
MedicationAdministration.basedOn |
|
MedicationAdministration.partOf |
|
MedicationAdministration.category |
|
MedicationAdministration.medication |
|
MedicationAdministration.encounter |
|
MedicationAdministration.occurence[x] |
|
MedicationAdministration.recorded |
|
MedicationAdministration.isSubPotent |
|
MedicationAdministration.subPotentReason |
|
MedicationAdministration.performer.actor |
|
MedicationAdministration.reason |
|
MedicationAdministration.device |
|
MedicationAdministration.instantiates |
|
MedicationAdministration.context |
|
MedicationAdministration.effective[x] |
|
MedicationAdministration.reasonCode |
|
MedicationAdministration.reasonReference |
|
See the Full Difference for further information
This analysis is available for R4 as XML or JSON and for R4B as XML or JSON.
See R4 <--> R5 Conversion Maps (status = See Conversions Summary.)
Additional definitions: Master Definition XML + JSON, XML Schema/Schematron + JSON Schema, ShEx (for Turtle) + see the extensions, the spreadsheet version & the dependency analysis
Path | ValueSet | Type | Documentation |
---|---|---|---|
MedicationAdministration.status | MedicationAdministrationStatusCodes | Required | MedicationAdministration Status Codes |
MedicationAdministration.statusReason | SNOMEDCTReasonMedicationNotGivenCodes | 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 | MedicationAdministrationLocationCodes | Example | MedicationAdministration Location Codes |
MedicationAdministration.medication | SNOMEDCTMedicationCodes | Example | This value set includes all drug or medicament substance codes and all pharmaceutical/biologic products from SNOMED CT - provided as an exemplar value set. |
MedicationAdministration.subPotentReason | MedicationAdministrationSubpotentReason (a valid code from Administration SubPotent Reason) | Example | MedicationAdministration Subpotent Reason |
MedicationAdministration.performer.function | MedicationAdministrationPerformerFunctionCodes | Example | MedicationAdministration Performer Function Codes |
MedicationAdministration.reason | ReasonMedicationGivenCodes | Example | 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 | SNOMEDCTAnatomicalStructureAdministrationSites | Example | This value set includes Anatomical Structure codes from SNOMED CT - provided as an exemplar. |
MedicationAdministration.dosage.route | SNOMEDCTRouteCodes | Example | This value set includes all Route codes from SNOMED CT - provided as an exemplar. |
MedicationAdministration.dosage.method | SNOMEDCTAdministrationMethodCodes | Example | This value set includes some method codes from SNOMED CT - provided as an exemplar |
UniqueKey | Level | Location | Description | Expression |
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] | (dose.exists() or rate.exists() or text.exists()) |
Issue | Comments |
---|---|
Medication Resource | A medication will typically be referred to by means of a code drawn from a suitable medication terminology. However, on occasion a product will be required for which the "recipe" must be specified. This implies a requirement to deal with a choice of either a code or a much more complete resource. Currently that resource has not been created. |
Contrast Media | Is this resource adequate for administering contrast media to a patient? |
Author (accountability) | Authorship (and any other accountability) is assumed to be dealt with by the standard FHIR methods. |
Medication administrations can be done by:
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.
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.
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.occurence.occurenceDateTime or OccurencePeriod | 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:
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:
Patient view Medication Administration list may include medications that come:
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.
Name | Type | Description | Expression | In Common |
code | token | Return administrations of this medication code | MedicationAdministration.medication.concept | 22 Resources |
date | date | Date administration happened (or did not happen) | MedicationAdministration.occurence.ofType(dateTime) | MedicationAdministration.occurence.ofType(Period) | 1 Resources |
device | reference | Return administrations with this administration device identity | MedicationAdministration.device.reference | |
encounter | reference | Return administrations that share this encounter | MedicationAdministration.encounter (Encounter) | 2 Resources |
identifier | token | Return administrations with this external identifier | MedicationAdministration.identifier | 65 Resources |
medication | reference | Return administrations of this medication reference | MedicationAdministration.medication.reference | 4 Resources |
patient | reference | The identity of a patient to list administrations for | MedicationAdministration.subject.where(resolve() is Patient) (Patient) | 66 Resources |
performer | reference | The identity of the individual who administered the medication | MedicationAdministration.performer.actor.reference | |
performer-device-code | token | The identity of the individual who administered the medication | MedicationAdministration.performer.actor.concept | |
reason-given | reference | Reference to a resource (by instance) | MedicationAdministration.reason.reference | |
reason-given-code | token | Reasons for administering the medication | MedicationAdministration.reason.concept | |
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 | 4 Resources |
subject | reference | The identity of the individual or group to list administrations for | MedicationAdministration.subject (Group, Patient) |