StructureDefinition UKCore-MedicationDispense

Canonical_URLStatusCurrent_VersionLast_UpdatedDescription
https://fhir.hl7.org.uk/StructureDefinition/UKCore-MedicationDispenseactive2.4.02023-12-12

This profile defines the UK constraints and extensions on the International FHIR resource MedicationDispense.


Profile_Purpose

This profile covers the supply of medications to a patient. Examples include dispensing and pick-up from an outpatient or community pharmacy, dispensing patient-specific medications from inpatient pharmacy to ward, as well as issuing a single dose from ward stock to a patient for consumption. The medication dispense is the result of a pharmacy system responding to a medication order.

idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
extensionI0..*Extension
modifierExtension?! I0..*Extension
identifierS0..*Identifier
partOfI0..*Reference(Procedure)
statusS Σ ?!1..1codeBinding
statusReasonCodeableConceptCodeableConcept
statusReasonReferenceReference(DetectedIssue)
category0..1CodeableConceptBinding
medicationCodeableConceptCodeableConcept
medicationReferenceReference(Medication)
subjectS Σ I0..1Reference(Patient | Group)
contextI0..1Reference(Encounter | EpisodeOfCare)
supportingInformationI0..*Reference(Resource)
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
function0..1CodeableConcept
actorI1..1Reference(Practitioner | PractitionerRole | Organization | Patient | Device | RelatedPerson)
locationI0..1Reference(Location)
authorizingPrescriptionI0..*Reference(MedicationRequest)
type0..1CodeableConceptBinding
quantityS I0..1SimpleQuantity
daysSupplyI0..1SimpleQuantity
whenPreparedS Σ0..1dateTime
whenHandedOver0..1dateTime
destinationI0..1Reference(Location)
receiverI0..*Reference(Patient | Practitioner)
note0..*Annotation
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
sequenceΣ0..1integer
textS Σ0..1string
additionalInstructionΣ0..*CodeableConcept
patientInstructionΣ0..1string
timingS Σ0..1Timing
asNeededBooleanboolean
asNeededCodeableConceptCodeableConcept
siteΣ0..1CodeableConceptBinding
routeΣ0..1CodeableConceptBinding
methodΣ0..1CodeableConceptBinding
id0..1string
extensionI0..*Extension
typeΣ0..1CodeableConcept
doseRangeRange
doseQuantitySimpleQuantity
rateRatioRatio
rateRangeRange
rateQuantitySimpleQuantity
maxDosePerPeriodΣ I0..1Ratio
maxDosePerAdministrationΣ I0..1SimpleQuantity
maxDosePerLifetimeΣ I0..1SimpleQuantity
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
wasSubstituted1..1boolean
type0..1CodeableConcept
reason0..*CodeableConcept
responsiblePartyI0..*Reference(Practitioner | PractitionerRole)
detectedIssueI0..*Reference(DetectedIssue)
eventHistoryI0..*Reference(Provenance)

Detailed Descriptions

MedicationDispense
DefinitionIndicates that a medication product is to be or has been dispensed for a named person/patient. This includes a description of the medication product (supply) provided and the instructions for administering the medication. The medication dispense is the result of a pharmacy system responding to a medication order.
Cardinality0...*
Invariants
  • dom-2: If the resource is contained in another resource, it SHALL NOT contain nested Resources
    contained.contained.empty()
  • dom-4: If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated
    contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
  • dom-3: If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource
    contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
  • dom-6: A resource should have narrative for robust management
    text.`div`.exists()
  • dom-5: If a resource is contained in another resource, it SHALL NOT have a security label
    contained.meta.security.empty()
  • mdd-1: whenHandedOver cannot be before whenPrepared
    whenHandedOver.empty() or whenPrepared.empty() or whenHandedOver >= whenPrepared
Mappings
  • rim: Entity. Role, or Act
  • workflow: Event
  • rim: Supply[moodCode=EVN]
MedicationDispense.id
DefinitionThe logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.
Cardinality0...1
Typestring
SummaryTrue
Comments

The only time that a resource does not have an id is when it is being submitted to the server using a create operation.

MedicationDispense.meta
DefinitionThe metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.
Cardinality0...1
TypeMeta
SummaryTrue
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • rim: N/A
MedicationDispense.implicitRules
DefinitionA reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.
Cardinality0...1
Typeuri
ModifierTrue
SummaryTrue
Comments

Asserting this rule set restricts the content to be only understood by a limited set of trading partners. This inherently limits the usefulness of the data in the long term. However, the existing health eco-system is highly fractured, and not yet ready to define, collect, and exchange data in a generally computable sense. Wherever possible, implementers and/or specification writers should avoid using this element. Often, when used, the URL is a reference to an implementation guide that defines these special rules as part of it's narrative along with other profiles, value sets, etc.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
MedicationDispense.language
DefinitionThe base language in which the resource is written.
Cardinality0...1
Typecode
Binding

A human language.

CommonLanguages (preferred)
Comments

Language is provided to support indexing and accessibility (typically, services such as text to speech use the language tag). The html language tag in the narrative applies to the narrative. The language tag on the resource may be used to specify the language of other presentations generated from the data in the resource. Not all the content has to be in the base language. The Resource.language should not be assumed to apply to the narrative automatically. If a language is specified, it should it also be specified on the div element in the html (see rules in HTML5 for information about the relationship between xml:lang and the html lang attribute).

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
MedicationDispense.text
DefinitionA human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it "clinically safe" for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.
Cardinality0...1
TypeNarrative
Aliasnarrative, html, xhtml, display
Comments

Contained resources do not have narrative. Resources that are not contained SHOULD have a narrative. In some cases, a resource may only have text with little or no additional discrete data (as long as all minOccurs=1 elements are satisfied). This may be necessary for data from legacy systems where information is captured as a "text blob" or where text is additionally entered raw or narrated and encoded information is added later.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • rim: N/A
  • rim: Act.text?
MedicationDispense.contained
DefinitionThese resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope.
Cardinality0...*
TypeResource
Aliasinline resources, anonymous resources, contained resources
Comments

This should never be done when the content can be identified properly, as once identification is lost, it is extremely difficult (and context dependent) to restore it again. Contained resources may have profiles and tags In their meta elements, but SHALL NOT have security labels.

Mappings
  • rim: Entity. Role, or Act
  • rim: N/A
MedicationDispense.extension
DefinitionMay be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
Cardinality0...*
TypeExtension
Aliasextensions, user content
Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

SlicingUnordered, Open, by url(Value)
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
MedicationDispense.modifierExtension
DefinitionMay be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions. Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).
Cardinality0...*
TypeExtension
ModifierTrue
Aliasextensions, user content
Requirements

Modifier extensions allow for extensions that cannot be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the definition of modifier extensions.

Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

SlicingUnordered, Open, by url(Value)
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
MedicationDispense.identifier
DefinitionIdentifiers associated with this Medication Dispense that are defined by business processes and/or used to refer to it when a direct URL reference to the resource itself is not appropriate. They are business identifiers assigned to this resource by the performer or other systems and remain constant as the resource is updated and propagates from server to server.
Cardinality0...*
TypeIdentifier
Must SupportTrue
Comments

This is a business identifier, not a resource identifier.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: CX / EI (occasionally, more often EI maps to a resource id or a URL)
  • rim: II - The Identifier class is a little looser than the v3 type II because it allows URIs as well as registered OIDs or GUIDs. Also maps to Role[classCode=IDENT]
  • servd: Identifier
  • workflow: Event.identifier
  • w5: FiveWs.identifier
  • rim: .id
  • rx-dispense-rmim: CombinedMedicationDispense.id
MedicationDispense.partOf
DefinitionThe procedure that trigger the dispense.
Cardinality0...*
TypeReference(Procedure)
Comments

References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ref-1: SHALL have a contained resource if a local reference is provided
    reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
Mappings
  • rim: n/a
  • rim: The target of a resource reference is a RIM entry point (Act, Role, or Entity)
  • workflow: Event.partOf
  • rim: .outboundRelationship[typeCode=COMP]/target[classCode=PROC,moodCode=EVN]
MedicationDispense.status
DefinitionA code specifying the state of the set of dispense events.
Cardinality1...1
Typecode
Binding

A coded concept specifying the state of the dispense event.

MedicationDispense Status Codes (required)
Must SupportTrue
ModifierTrue
SummaryTrue
Comments

This element is labeled as a modifier because the status contains codes that mark the resource as not currently valid.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • workflow: Event.status
  • w5: FiveWs.status
  • rim: .statusCode
  • rx-dispense-rmim: CombinedMedicationDispense.SupplyEvent.statusCode
MedicationDispense.statusReason[x]
DefinitionIndicates the reason why a dispense was not performed.
Cardinality0...1
TypeCodeableConcept
Binding

A code describing why a dispense was not performed.

MedicationDispense Status Reason Codes (example)
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • workflow: Event.statusReason
  • rim: .outboundRelationship[typeCode=RSON]/target[classCode=OBS,moodCode=EVN, code="not done reason"].value
MedicationDispense.category
DefinitionIndicates the type of medication dispense (for example, where the medication is expected to be consumed or administered (i.e. inpatient or outpatient)).
Cardinality0...1
TypeCodeableConcept
Binding

A code describing where the dispensed medication is expected to be consumed or administered.

MedicationDispense Category Codes (preferred)
Comments

The category can be used to include where the medication is expected to be consumed or other types of dispenses. Invariants can be used to bind to different value sets when profiling to bind.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: CE/CNE/CWE
  • rim: CD
  • orim: fhir:CodeableConcept rdfs:subClassOf dt:CD
  • rim: .inboundRelationship[typeCode=COMP].source[classCode=OBS, moodCode=EVN, code="type of medication dispense"].value
MedicationDispense.medication[x]
DefinitionIdentifies the medication being 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.
Cardinality1...1
TypeCodeableConcept
Binding

A coded concept identifying which substance or product can be dispensed.

UKCoreMedicationCode (preferred)
Must SupportTrue
SummaryTrue
Comments

If only a code is specified, then it needs to be a code for a specific product. If more information is required, then the use of the medication resource is recommended. For example, if you require form or lot number, then you must reference the Medication resource.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • workflow: Event.code
  • w5: FiveWs.what[x]
  • v2: RXD-2-Dispense/Give Code
  • rim: .participation[typeCode=PRD].role
  • rx-dispense-rmim: CombinedMedicationRequest.component1.AdministrationRequest.consumable
MedicationDispense.subject
DefinitionA link to a resource representing the person or the group to whom the medication will be given.
Cardinality0...1
TypeReference(Patient | Group)
Must SupportTrue
SummaryTrue
Comments

SubstanceAdministration->subject->Patient.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ref-1: SHALL have a contained resource if a local reference is provided
    reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
Mappings
  • rim: n/a
  • rim: The target of a resource reference is a RIM entry point (Act, Role, or Entity)
  • workflow: Event.subject
  • w5: FiveWs.subject[x]
  • v2: PID-3-Patient ID List
  • rim: .participation[typeCode=SBJ].role[classCode=PAT]
  • w5: FiveWs.subject
MedicationDispense.context
DefinitionThe encounter or episode of care that establishes the context for this event.
Cardinality0...1
TypeReference(Encounter | EpisodeOfCare)
Comments

References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ref-1: SHALL have a contained resource if a local reference is provided
    reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
Mappings
  • rim: n/a
  • rim: The target of a resource reference is a RIM entry point (Act, Role, or Entity)
  • workflow: Event.context
  • rim: .inboundRelationship[typeCode=COMP].source[classCode=ENC, moodCode=EVN, code="type of encounter or episode"]
MedicationDispense.supportingInformation
DefinitionAdditional information that supports the medication being dispensed.
Cardinality0...*
TypeReference(Resource)
Comments

References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ref-1: SHALL have a contained resource if a local reference is provided
    reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
Mappings
  • rim: n/a
  • rim: The target of a resource reference is a RIM entry point (Act, Role, or Entity)
  • w5: FiveWs.context
  • rim: .outboundRelationship[typeCode=PERT].target[A_SupportingClinicalStatement CMET minimal with many different choices of classCodes(ORG, ENC, PROC, SPLY, SBADM, OBS) and each of the act class codes draws from one or more of the following moodCodes (EVN, DEF, INT PRMS, RQO, PRP, APT, ARQ, GOL)]
MedicationDispense.performer
DefinitionIndicates who or what performed the event.
Cardinality0...*
TypeBackboneElement
Must SupportTrue
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • workflow: Event.performer
  • rim: .participation[typeCode=PRF]
MedicationDispense.performer.id
DefinitionUnique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
Cardinality0...1
Typestring
Mappings
  • rim: n/a
MedicationDispense.performer.extension
DefinitionMay be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
Cardinality0...*
TypeExtension
Aliasextensions, user content
Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

SlicingUnordered, Open, by url(Value)
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
MedicationDispense.performer.modifierExtension
DefinitionMay be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions. Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).
Cardinality0...*
TypeExtension
ModifierTrue
SummaryTrue
Aliasextensions, user content, modifiers
Requirements

Modifier extensions allow for extensions that cannot be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the definition of modifier extensions.

Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
MedicationDispense.performer.function
DefinitionDistinguishes the type of performer in the dispense. For example, date enterer, packager, final checker.
Cardinality0...1
TypeCodeableConcept
Binding

A code describing the role an individual played in dispensing a medication.

MedicationDispense Performer Function Codes (example)
Requirements

Allows disambiguation of the types of involvement of different performers.

Comments

Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: CE/CNE/CWE
  • rim: CD
  • orim: fhir:CodeableConcept rdfs:subClassOf dt:CD
  • rim: participation[typeCode=PRF].functionCode
MedicationDispense.performer.actor
DefinitionThe device, practitioner, etc. who performed the action. It should be assumed that the actor is the dispenser of the medication.
Cardinality1...1
TypeReference(Practitioner | PractitionerRole | Organization | Patient | Device | RelatedPerson)
Comments

References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ref-1: SHALL have a contained resource if a local reference is provided
    reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
Mappings
  • rim: n/a
  • rim: The target of a resource reference is a RIM entry point (Act, Role, or Entity)
  • workflow: Event.performer.actor
  • rim: .role
MedicationDispense.location
DefinitionThe principal physical location where the dispense was performed.
Cardinality0...1
TypeReference(Location)
Comments

References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ref-1: SHALL have a contained resource if a local reference is provided
    reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
Mappings
  • rim: n/a
  • rim: The target of a resource reference is a RIM entry point (Act, Role, or Entity)
  • rim: .participation[typeCode=LOC].role
MedicationDispense.authorizingPrescription
DefinitionIndicates the medication order that is being dispensed against.
Cardinality0...*
TypeReference(MedicationRequest)
Comments

Maps to basedOn in Event logical model.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ref-1: SHALL have a contained resource if a local reference is provided
    reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
Mappings
  • rim: n/a
  • rim: The target of a resource reference is a RIM entry point (Act, Role, or Entity)
  • workflow: Event.basedOn
  • v2: ORC-2 Placer Order Number
  • rim: .outboundRelationship[typeCode=FLFS].target[moodCode=RQO]
  • rx-dispense-rmim: CombinedMedicationDispense.inFulfillmentOf
MedicationDispense.type
DefinitionIndicates the type of dispensing event that is performed. For example, Trial Fill, Completion of Trial, Partial Fill, Emergency Fill, Samples, etc.
Cardinality0...1
TypeCodeableConcept
Binding

Indicates the type of dispensing event that is performed. For example, Trial Fill, Completion of Trial, Partial Fill, Emergency Fill, Samples, etc.

UKCoreMedicationSupplyType (extensible)
Comments

Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: CE/CNE/CWE
  • rim: CD
  • orim: fhir:CodeableConcept rdfs:subClassOf dt:CD
  • v2: RXD-33-Dispense Type
  • rim: .code
  • rx-dispense-rmim: CombinedMedicationDispense.SupplyEvent.code
MedicationDispense.quantity
DefinitionThe amount of medication that has been dispensed. Includes unit of measure.
Cardinality0...1
TypeSimpleQuantity
Must SupportTrue
Comments

The context of use may frequently define what kind of quantity this is and therefore what kind of units can be used. The context of use may also restrict the values for the comparator.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • qty-3: If a code for the unit is present, the system SHALL also be present
    code.empty() or system.exists()
  • sqty-1: The comparator is not used on a SimpleQuantity
    comparator.empty()
Mappings
  • rim: n/a
  • v2: SN (see also Range) or CQ
  • rim: PQ, IVL<PQ>, MO, CO, depending on the values
  • v2: RXD-4-Actual Dispense Amount / RXD-5.1-Actual Dispense Units.code / RXD-5.3-Actual Dispense Units.name of coding system
  • rim: .quantity
  • rx-dispense-rmim: CombinedMedicationDispense.SupplyEvent.quantity
MedicationDispense.daysSupply
DefinitionThe amount of medication expressed as a timing amount.
Cardinality0...1
TypeSimpleQuantity
Comments

The context of use may frequently define what kind of quantity this is and therefore what kind of units can be used. The context of use may also restrict the values for the comparator.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • qty-3: If a code for the unit is present, the system SHALL also be present
    code.empty() or system.exists()
  • sqty-1: The comparator is not used on a SimpleQuantity
    comparator.empty()
Mappings
  • rim: n/a
  • v2: SN (see also Range) or CQ
  • rim: PQ, IVL<PQ>, MO, CO, depending on the values
  • v2: TQ1.6 Timing/Quantity Segment Service Duration. Prior to v2.5, ORC.7.3 Common Order Segment / Quantity/Timing / Duration component. This is a formatted string, first character for the time unit (e.g., D=days), followed by the value. For example, “D14” represents “14 days supply” From v2.5 on, TQ1.6 Timing/Quantity Segment / Service Duration. This is a CQ data type (<Quantity (NM)> ^ <Units (CWE)>), thus for days supply, assuming the unit of measure is “days”, the numeric value is TQ1.6.1 (…|14^ For backwards compatibility, ORC.7 was permitted through v2.6. Both forms (field and segment) may be present in v2.5, v2.5.1, and v2.6
  • rim: effectiveUseTime
MedicationDispense.whenPrepared
DefinitionThe time when the dispensed product was packaged and reviewed.
Cardinality0...1
TypedateTime
Must SupportTrue
SummaryTrue
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: RXD-3-Date/Time Dispensed
  • rim: .effectiveTime[xmi:type=IVL_TS].low
  • rx-dispense-rmim: CombinedMedicationDispense.SupplyEvent.effectiveTime
MedicationDispense.whenHandedOver
DefinitionThe time the dispensed product was provided to the patient or their representative.
Cardinality0...1
TypedateTime
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • workflow: Event.occurrence[x]
  • v2: RXD-3-Date/Time Dispensed
  • rim: .effectiveTime[xmi:type=IVL_TS].high
  • rx-dispense-rmim: CombinedMedicationDispense.SupplyEvent.effectiveTime
MedicationDispense.destination
DefinitionIdentification of the facility/location where the medication was shipped to, as part of the dispense event.
Cardinality0...1
TypeReference(Location)
Comments

References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ref-1: SHALL have a contained resource if a local reference is provided
    reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
Mappings
  • rim: n/a
  • rim: The target of a resource reference is a RIM entry point (Act, Role, or Entity)
  • v2: RXD-13 Dispense-to Location; RXD-30 Dispense to Pharmacy; RXD-31 Dispense to Pharmacy Address
  • rim: .participation[typeCode=DST].role
  • rx-dispense-rmim: CombinedMedicationDispense.SupplyEvent.destination
MedicationDispense.receiver
DefinitionIdentifies the person who picked up the medication. This will usually be a patient or their caregiver, but some cases exist where it can be a healthcare professional.
Cardinality0...*
TypeReference(Patient | Practitioner)
Comments

References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ref-1: SHALL have a contained resource if a local reference is provided
    reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
Mappings
  • rim: n/a
  • rim: The target of a resource reference is a RIM entry point (Act, Role, or Entity)
  • rim: .participation[typeCode=RCV].role
  • rx-dispense-rmim: CombinedMedicationDispense.SupplyEvent.receiver
MedicationDispense.note
DefinitionExtra information about the dispense that could not be conveyed in the other attributes.
Cardinality0...*
TypeAnnotation
Comments

For systems that do not have structured annotations, they can simply communicate a single annotation with no author or time. This element may need to be included in narrative because of the potential for modifying information. Annotations SHOULD NOT be used to communicate "modifying" information that could be computable. (This is a SHOULD because enforcing user behavior is nearly impossible).

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: N/A
  • rim: Act
  • workflow: Event.note
  • v2: RXD-9 Dispense Notes
  • rim: .inboundRelationship[typeCode=SUBJ]/source[classCode=ACT,moodCode=EVN]
MedicationDispense.dosageInstruction
DefinitionIndicates how the medication is to be used by the patient.
Cardinality0...*
TypeDosage
Must SupportTrue
Comments

When the dose or rate is intended to change over the entire administration period (e.g. Tapering dose prescriptions), multiple instances of dosage instructions will need to be supplied to convey the different doses/rates. The pharmacist reviews the medication order prior to dispense and updates the dosageInstruction based on the actual product being dispensed.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • rim: .outboundRelationship[typeCode=COMP].target[classCode=SBADM, moodCode=INT]
MedicationDispense.dosageInstruction.id
DefinitionUnique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
Cardinality0...1
Typestring
Mappings
  • rim: n/a
MedicationDispense.dosageInstruction.extension
DefinitionMay be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
Cardinality0...*
TypeExtension
Aliasextensions, user content
Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

SlicingUnordered, Open, by url(Value)
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
MedicationDispense.dosageInstruction.modifierExtension
DefinitionMay be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions. Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).
Cardinality0...*
TypeExtension
ModifierTrue
SummaryTrue
Aliasextensions, user content, modifiers
Requirements

Modifier extensions allow for extensions that cannot be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the definition of modifier extensions.

Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
MedicationDispense.dosageInstruction.sequence
DefinitionIndicates the order in which the dosage instructions should be applied or interpreted.
Cardinality0...1
Typeinteger
SummaryTrue
Requirements

If the sequence number of multiple Dosages is the same, then it is implied that the instructions are to be treated as concurrent. If the sequence number is different, then the Dosages are intended to be sequential.

Comments

32 bit number; for values larger than this, use decimal

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: TQ1-1
  • rim: .text
MedicationDispense.dosageInstruction.text
DefinitionFree text dosage instructions e.g. SIG.
Cardinality0...1
Typestring
Must SupportTrue
SummaryTrue
Requirements

Free text dosage instructions can be used for cases where the instructions are too complex to code. The content of this attribute does not include the name or description of the medication. When coded instructions are present, the free text instructions may still be present for display to humans taking or administering the medication. It is expected that the text instructions will always be populated. If the dosage.timing attribute is also populated, then the dosage.text should reflect the same information as the timing. Additional information about administration or preparation of the medication should be included as text.

Comments

Note that FHIR strings SHALL NOT exceed 1MB in size

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: RXO-6; RXE-21
  • rim: .text
MedicationDispense.dosageInstruction.additionalInstruction
DefinitionSupplemental instructions to the patient on how to take the medication (e.g. "with meals" or"take half to one hour before food") or warnings for the patient about the medication (e.g. "may cause drowsiness" or "avoid exposure of skin to direct sunlight or sunlamps").
Cardinality0...*
TypeCodeableConcept
Binding

A coded concept identifying additional instructions such as "take with water" or "avoid operating heavy machinery".

SNOMEDCTAdditionalDosageInstructions (example)
SummaryTrue
Requirements

Additional instruction is intended to be coded, but where no code exists, the element could include text. For example, "Swallow with plenty of water" which might or might not be coded.

Comments

Information about administration or preparation of the medication (e.g. "infuse as rapidly as possibly via intraperitoneal port" or "immediately following drug x") should be populated in dosage.text.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: CE/CNE/CWE
  • rim: CD
  • orim: fhir:CodeableConcept rdfs:subClassOf dt:CD
  • v2: RXO-7
  • rim: .text
MedicationDispense.dosageInstruction.patientInstruction
DefinitionInstructions in terms that are understood by the patient or consumer.
Cardinality0...1
Typestring
SummaryTrue
Comments

Note that FHIR strings SHALL NOT exceed 1MB in size

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: RXO-7
  • rim: .text
MedicationDispense.dosageInstruction.timing
DefinitionWhen medication should be administered.
Cardinality0...1
TypeTiming
Must SupportTrue
SummaryTrue
Requirements

The timing schedule for giving the medication to the patient. This data type allows many different expressions. For example: "Every 8 hours"; "Three times a day"; "1/2 an hour before breakfast for 10 days from 23-Dec 2011:"; "15 Oct 2013, 17 Oct 2013 and 1 Nov 2013". Sometimes, a rate can imply duration when expressed as total volume / duration (e.g. 500mL/2 hours implies a duration of 2 hours). However, when rate doesn't imply duration (e.g. 250mL/hour), then the timing.repeat.duration is needed to convey the infuse over time period.

Comments

This attribute might not always be populated while the Dosage.text is expected to be populated. If both are populated, then the Dosage.text should reflect the content of the Dosage.timing.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: N/A
  • rim: QSET<TS> (GTS)
  • rim: .effectiveTime
MedicationDispense.dosageInstruction.asNeeded[x]
DefinitionIndicates whether the Medication is only taken when needed within a specific dosing schedule (Boolean option), or it indicates the precondition for taking the Medication (CodeableConcept).
Cardinality0...1
Typeboolean
Binding

A coded concept identifying the precondition that should be met or evaluated prior to consuming or administering a medication dose. For example "pain", "30 minutes prior to sexual intercourse", "on flare-up" etc.

SNOMEDCTMedicationAsNeededReasonCodes (preferred)
SummaryTrue
Comments

Can express "as needed" without a reason by setting the Boolean = True. In this case the CodeableConcept is not populated. Or you can express "as needed" with a reason by including the CodeableConcept. In this case the Boolean is assumed to be True. If you set the Boolean to False, then the dose is given according to the schedule and is not "prn" or "as needed".

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: TQ1-9
  • rim: .outboundRelationship[typeCode=PRCN].target[classCode=OBS, moodCode=EVN, code="as needed"].value=boolean or codable concept
MedicationDispense.dosageInstruction.site
DefinitionBody site to administer to.
Cardinality0...1
TypeCodeableConcept
Binding

A coded concept describing the site location the medicine enters into or onto the body.

UKCoreBodySite (preferred)
SummaryTrue
Requirements

A coded specification of the anatomic site where the medication first enters the body.

Comments

If the use case requires attributes from the BodySite resource (e.g. to identify and track separately) then use the standard extension bodySite. May be a summary code, or a reference to a very precise definition of the location, or both.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: CE/CNE/CWE
  • rim: CD
  • orim: fhir:CodeableConcept rdfs:subClassOf dt:CD
  • v2: RXR-2
  • rim: .approachSiteCode
MedicationDispense.dosageInstruction.route
DefinitionHow drug should enter body.
Cardinality0...1
TypeCodeableConcept
Binding

A coded concept describing the route or physiological path of administration of a therapeutic agent into or onto the body of a subject.

UKCoreSubstanceOrProductAdministrationRoute (preferred)
SummaryTrue
Requirements

A code specifying the route or physiological path of administration of a therapeutic agent into or onto a patient's body.

Comments

Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: CE/CNE/CWE
  • rim: CD
  • orim: fhir:CodeableConcept rdfs:subClassOf dt:CD
  • v2: RXR-1
  • rim: .routeCode
MedicationDispense.dosageInstruction.method
DefinitionTechnique for administering medication.
Cardinality0...1
TypeCodeableConcept
Binding

A coded concept describing the technique by which the medicine is administered.

UKCoreMedicationDosageMethod (preferred)
SummaryTrue
Requirements

A coded value indicating the method by which the medication is introduced into or onto the body. Most commonly used for injections. For examples, Slow Push; Deep IV.

Comments

Terminologies used often pre-coordinate this term with the route and or form of administration.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: CE/CNE/CWE
  • rim: CD
  • orim: fhir:CodeableConcept rdfs:subClassOf dt:CD
  • v2: RXR-4
  • rim: .doseQuantity
MedicationDispense.dosageInstruction.doseAndRate
DefinitionThe amount of medication administered.
Cardinality0...*
TypeElement
Must SupportTrue
SummaryTrue
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: TQ1-2
MedicationDispense.dosageInstruction.doseAndRate.id
DefinitionUnique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
Cardinality0...1
Typestring
Mappings
  • rim: n/a
MedicationDispense.dosageInstruction.doseAndRate.extension
DefinitionMay be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
Cardinality0...*
TypeExtension
Aliasextensions, user content
Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

SlicingUnordered, Open, by url(Value)
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
MedicationDispense.dosageInstruction.doseAndRate.type
DefinitionThe kind of dose or rate specified, for example, ordered or calculated.
Cardinality0...1
TypeCodeableConcept
Binding

The kind of dose or rate specified.

DoseAndRateType (example)
SummaryTrue
Requirements

If the type is not populated, assume to be "ordered".

Comments

Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: CE/CNE/CWE
  • rim: CD
  • orim: fhir:CodeableConcept rdfs:subClassOf dt:CD
  • v2: RXO-21; RXE-23
MedicationDispense.dosageInstruction.doseAndRate.dose[x]
DefinitionAmount of medication per dose.
Cardinality0...1
TypeRange
Must SupportTrue
SummaryTrue
Requirements

The amount of therapeutic or other substance given at one administration event.

Comments

Note that this specifies the quantity of the specified medication, not the quantity for each active ingredient(s). Each ingredient amount can be communicated in the Medication resource. For example, if one wants to communicate that a tablet was 375 mg, where the dose was one tablet, you can use the Medication resource to document that the tablet was comprised of 375 mg of drug XYZ. Alternatively if the dose was 375 mg, then you may only need to use the Medication resource to indicate this was a tablet. If the example were an IV such as dopamine and you wanted to communicate that 400mg of dopamine was mixed in 500 ml of some IV solution, then this would all be communicated in the Medication resource. If the administration is not intended to be instantaneous (rate is present or timing has a duration), this can be specified to convey the total amount to be administered over the period of time as indicated by the schedule e.g. 500 ml in dose, with timing used to convey that this should be done over 4 hours.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: RXO-2, RXE-3
  • rim: .doseQuantity
MedicationDispense.dosageInstruction.doseAndRate.rate[x]
DefinitionAmount of medication per unit of time.
Cardinality0...1
TypeRatio
Must SupportTrue
SummaryTrue
Requirements

Identifies the speed with which the medication was or will be introduced into the patient. Typically the rate for an infusion e.g. 100 ml per 1 hour or 100 ml/hr. May also be expressed as a rate per unit of time e.g. 500 ml per 2 hours. Other examples: 200 mcg/min or 200 mcg/1 minute; 1 liter/8 hours. Sometimes, a rate can imply duration when expressed as total volume / duration (e.g. 500mL/2 hours implies a duration of 2 hours). However, when rate doesn't imply duration (e.g. 250mL/hour), then the timing.repeat.duration is needed to convey the infuse over time period.

Comments

It is possible to supply both a rate and a doseQuantity to provide full details about how the medication is to be administered and supplied. If the rate is intended to change over time, depending on local rules/regulations, each change should be captured as a new version of the MedicationRequest with an updated rate, or captured with a new MedicationRequest with the new rate.

It is possible to specify a rate over time (for example, 100 ml/hour) using either the rateRatio and rateQuantity. The rateQuantity approach requires systems to have the capability to parse UCUM grammer where ml/hour is included rather than a specific ratio where the time is specified as the denominator. Where a rate such as 500ml over 2 hours is specified, the use of rateRatio may be more semantically correct than specifying using a rateQuantity of 250 mg/hour.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: RXE22, RXE23, RXE-24
  • rim: .rateQuantity
MedicationDispense.dosageInstruction.maxDosePerPeriod
DefinitionUpper limit on medication per unit of time.
Cardinality0...1
TypeRatio
SummaryTrue
Requirements

The maximum total quantity of a therapeutic substance that may be administered to a subject over the period of time. For example, 1000mg in 24 hours.

Comments

This is intended for use as an adjunct to the dosage when there is an upper cap. For example "2 tablets every 4 hours to a maximum of 8/day".

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • rat-1: Numerator and denominator SHALL both be present, or both are absent. If both are absent, there SHALL be some extension present
    (numerator.empty() xor denominator.exists()) and (numerator.exists() or extension.exists())
Mappings
  • rim: n/a
  • v2: N/A
  • rim: RTO
  • v2: RXO-23, RXE-19
  • rim: .maxDoseQuantity
MedicationDispense.dosageInstruction.maxDosePerAdministration
DefinitionUpper limit on medication per administration.
Cardinality0...1
TypeSimpleQuantity
SummaryTrue
Requirements

The maximum total quantity of a therapeutic substance that may be administered to a subject per administration.

Comments

This is intended for use as an adjunct to the dosage when there is an upper cap. For example, a body surface area related dose with a maximum amount, such as 1.5 mg/m2 (maximum 2 mg) IV over 5 – 10 minutes would have doseQuantity of 1.5 mg/m2 and maxDosePerAdministration of 2 mg.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • qty-3: If a code for the unit is present, the system SHALL also be present
    code.empty() or system.exists()
  • sqty-1: The comparator is not used on a SimpleQuantity
    comparator.empty()
Mappings
  • rim: n/a
  • v2: SN (see also Range) or CQ
  • rim: PQ, IVL<PQ>, MO, CO, depending on the values
  • rim: not supported
MedicationDispense.dosageInstruction.maxDosePerLifetime
DefinitionUpper limit on medication per lifetime of the patient.
Cardinality0...1
TypeSimpleQuantity
SummaryTrue
Requirements

The maximum total quantity of a therapeutic substance that may be administered per lifetime of the subject.

Comments

The context of use may frequently define what kind of quantity this is and therefore what kind of units can be used. The context of use may also restrict the values for the comparator.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • qty-3: If a code for the unit is present, the system SHALL also be present
    code.empty() or system.exists()
  • sqty-1: The comparator is not used on a SimpleQuantity
    comparator.empty()
Mappings
  • rim: n/a
  • v2: SN (see also Range) or CQ
  • rim: PQ, IVL<PQ>, MO, CO, depending on the values
  • rim: not supported
MedicationDispense.substitution
DefinitionIndicates whether or not substitution was made as part of the dispense. In some cases, substitution will be expected but does not happen, in other cases substitution is not expected but does happen. This block explains what substitution did or did not happen and why. If nothing is specified, substitution was not done.
Cardinality0...1
TypeBackboneElement
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • rim: .outboundRelationship[typeCode=COMP].target[classCode=SUBST, moodCode=EVN]
  • rx-dispense-rmim: CombinedMedicationDispense.substitutionMade
MedicationDispense.substitution.id
DefinitionUnique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
Cardinality0...1
Typestring
Mappings
  • rim: n/a
MedicationDispense.substitution.extension
DefinitionMay be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
Cardinality0...*
TypeExtension
Aliasextensions, user content
Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

SlicingUnordered, Open, by url(Value)
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
MedicationDispense.substitution.modifierExtension
DefinitionMay be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions. Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).
Cardinality0...*
TypeExtension
ModifierTrue
SummaryTrue
Aliasextensions, user content, modifiers
Requirements

Modifier extensions allow for extensions that cannot be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the definition of modifier extensions.

Comments

There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ext-1: Must have either extensions or value[x], not both
    extension.exists() != value.exists()
Mappings
  • rim: n/a
  • rim: N/A
MedicationDispense.substitution.wasSubstituted
DefinitionTrue if the dispenser dispensed a different drug or product from what was prescribed.
Cardinality1...1
Typeboolean
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • rim: .actionNegationInd
MedicationDispense.substitution.type
DefinitionA code signifying whether a different drug was dispensed from what was prescribed.
Cardinality0...1
TypeCodeableConcept
Binding

A coded concept describing whether a different medicinal product may be dispensed other than the product as specified exactly in the prescription.

v3.ActSubstanceAdminSubstitutionCode (example)
Comments

Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: CE/CNE/CWE
  • rim: CD
  • orim: fhir:CodeableConcept rdfs:subClassOf dt:CD
  • v2: RXO-9-Allow Substitutions / RXE-9-Substitution Status
  • rim: .code
  • rx-dispense-rmim: CombinedMedicationDispense.substitutionMade.code
MedicationDispense.substitution.reason
DefinitionIndicates the reason for the substitution (or lack of substitution) from what was prescribed.
Cardinality0...*
TypeCodeableConcept
Binding

A coded concept describing the reason that a different medication should (or should not) be substituted from what was prescribed.

v3.SubstanceAdminSubstitutionReason (example)
Comments

Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: CE/CNE/CWE
  • rim: CD
  • orim: fhir:CodeableConcept rdfs:subClassOf dt:CD
  • rim: .reasonCode
  • rx-dispense-rmim: CombinedMedicationDispense.substitutionMade.reasonCode
MedicationDispense.substitution.responsibleParty
DefinitionThe person or organization that has primary responsibility for the substitution.
Cardinality0...*
TypeReference(Practitioner | PractitionerRole)
Comments

References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ref-1: SHALL have a contained resource if a local reference is provided
    reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
Mappings
  • rim: n/a
  • rim: The target of a resource reference is a RIM entry point (Act, Role, or Entity)
  • rim: .participation[typeCode=PFM].role[classCode=ASSIGN]
  • rx-dispense-rmim: CombinedMedicationDispense.substitutionMade.ResponsibleParty
MedicationDispense.detectedIssue
DefinitionIndicates an actual or potential clinical issue with or between one or more active or proposed clinical actions for a patient; e.g. drug-drug interaction, duplicate therapy, dosage alert etc.
Cardinality0...*
TypeReference(DetectedIssue)
AliasContraindication, Drug Utilization Review (DUR), Alert
Comments

This element can include a detected issue that has been identified either by a decision support system or by a clinician and may include information on the steps that were taken to address the issue.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ref-1: SHALL have a contained resource if a local reference is provided
    reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
Mappings
  • rim: n/a
  • rim: The target of a resource reference is a RIM entry point (Act, Role, or Entity)
  • rim: .inboundRelationship[typeCode=SUBJ]/source[classCode=ALRT,moodCode=EVN].value
MedicationDispense.eventHistory
DefinitionA summary of the events of interest that have occurred, such as when the dispense was verified.
Cardinality0...*
TypeReference(Provenance)
Comments

This might not include provenances for all versions of the request – only those deemed “relevant” or important. This SHALL NOT include the Provenance associated with this current version of the resource. (If that provenance is deemed to be a “relevant” change, it will need to be added as part of a later update. Until then, it can be queried directly as the Provenance that points to this version using _revinclude All Provenances should have some historical version of this Request as their subject.).

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • ref-1: SHALL have a contained resource if a local reference is provided
    reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
Mappings
  • rim: n/a
  • rim: The target of a resource reference is a RIM entry point (Act, Role, or Entity)
  • rim: .inboundRelationship(typeCode=SUBJ].source[classCode=CACT, moodCode=EVN]

Table View

MedicationDispense..
MedicationDispense.identifier..
MedicationDispense.status..
MedicationDispense.medication[x]..
MedicationDispense.subject..
MedicationDispense.performer..
MedicationDispense.type..
MedicationDispense.quantity..
MedicationDispense.whenPrepared..
MedicationDispense.dosageInstruction..
MedicationDispense.dosageInstruction.text..
MedicationDispense.dosageInstruction.timing..
MedicationDispense.dosageInstruction.asNeeded[x]..
MedicationDispense.dosageInstruction.site..
MedicationDispense.dosageInstruction.route..
MedicationDispense.dosageInstruction.method..
MedicationDispense.dosageInstruction.doseAndRate..
MedicationDispense.dosageInstruction.doseAndRate.dose[x]..
MedicationDispense.dosageInstruction.doseAndRate.rate[x]..

XML View

<StructureDefinition xmlns="http://hl7.org/fhir">
    <id value="UKCore-MedicationDispense" />
    <url value="https://fhir.hl7.org.uk/StructureDefinition/UKCore-MedicationDispense" />
    <version value="2.4.0" />
    <name value="UKCoreMedicationDispense" />
    <title value="UK Core MedicationDispense" />
    <status value="active" />
    <date value="2023-12-12" />
    <publisher value="HL7 UK" />
    <contact>
        <name value="HL7 UK" />
        <telecom>
            <system value="email" />
            <value value="ukcore@hl7.org.uk" />
            <use value="work" />
            <rank value="1" />
        </telecom>
    </contact>
    <description value="This profile defines the UK constraints and extensions on the International FHIR resource [MedicationDispense](https://hl7.org/fhir/R4/MedicationDispense.html)." />
    <purpose value="This profile covers the supply of medications to a patient. Examples include dispensing and pick-up from an outpatient or community pharmacy, dispensing patient-specific medications from inpatient pharmacy to ward, as well as issuing a single dose from ward stock to a patient for consumption. The medication dispense is the result of a pharmacy system responding to a medication order." />
    <copyright value="Copyright &#169; 2021+ HL7 UK Licensed under the Apache License, Version 2.0 (the &quot;License&quot;); you may not use this file except in compliance with the License. You may obtain a copy of the License at  http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. HL7&#174; FHIR&#174; standard Copyright &#169; 2011+ HL7 The HL7&#174; FHIR&#174; standard is used under the FHIR license. You may obtain a copy of the FHIR license at  https://www.hl7.org/fhir/license.html." />
    <fhirVersion value="4.0.1" />
    <kind value="resource" />
    <abstract value="false" />
    <type value="MedicationDispense" />
    <baseDefinition value="http://hl7.org/fhir/StructureDefinition/MedicationDispense" />
    <derivation value="constraint" />
    <differential>
        <element id="MedicationDispense.identifier">
            <path value="MedicationDispense.identifier" />
            <short value="Allows the resource to be referenced within / by other resources." />
            <mustSupport value="true" />
        </element>
        <element id="MedicationDispense.status">
            <path value="MedicationDispense.status" />
            <short value="A code that describes the status of the dispensing event." />
            <mustSupport value="true" />
        </element>
        <element id="MedicationDispense.medication[x]">
            <path value="MedicationDispense.medication[x]" />
            <short value="What medication was supplied." />
            <mustSupport value="true" />
            <binding>
                <strength value="preferred" />
                <valueSet value="https://fhir.hl7.org.uk/ValueSet/UKCore-MedicationCode" />
            </binding>
        </element>
        <element id="MedicationDispense.subject">
            <path value="MedicationDispense.subject" />
            <short value="Identifies the patient." />
            <mustSupport value="true" />
        </element>
        <element id="MedicationDispense.performer">
            <path value="MedicationDispense.performer" />
            <short value="Who or what performed the dispensing event." />
            <mustSupport value="true" />
        </element>
        <element id="MedicationDispense.type">
            <path value="MedicationDispense.type" />
            <binding>
                <strength value="extensible" />
                <valueSet value="https://fhir.hl7.org.uk/ValueSet/UKCore-MedicationSupplyType" />
            </binding>
        </element>
        <element id="MedicationDispense.quantity">
            <path value="MedicationDispense.quantity" />
            <short value="Quantity of medication dispensed." />
            <mustSupport value="true" />
        </element>
        <element id="MedicationDispense.whenPrepared">
            <path value="MedicationDispense.whenPrepared" />
            <short value="Timestamp for when the medication was prepared." />
            <mustSupport value="true" />
        </element>
        <element id="MedicationDispense.dosageInstruction">
            <path value="MedicationDispense.dosageInstruction" />
            <short value="Dosage instruction for the dispensed medication." />
            <mustSupport value="true" />
        </element>
        <element id="MedicationDispense.dosageInstruction.text">
            <path value="MedicationDispense.dosageInstruction.text" />
            <short value="Free text dosage instructions." />
            <mustSupport value="true" />
        </element>
        <element id="MedicationDispense.dosageInstruction.timing">
            <path value="MedicationDispense.dosageInstruction.timing" />
            <short value="When medication should be administered." />
            <mustSupport value="true" />
        </element>
        <element id="MedicationDispense.dosageInstruction.asNeeded[x]">
            <path value="MedicationDispense.dosageInstruction.asNeeded[x]" />
            <binding>
                <strength value="preferred" />
            </binding>
        </element>
        <element id="MedicationDispense.dosageInstruction.site">
            <path value="MedicationDispense.dosageInstruction.site" />
            <binding>
                <strength value="preferred" />
                <valueSet value="https://fhir.hl7.org.uk/ValueSet/UKCore-BodySite" />
            </binding>
        </element>
        <element id="MedicationDispense.dosageInstruction.route">
            <path value="MedicationDispense.dosageInstruction.route" />
            <binding>
                <strength value="preferred" />
                <valueSet value="https://fhir.hl7.org.uk/ValueSet/UKCore-SubstanceOrProductAdministrationRoute" />
            </binding>
        </element>
        <element id="MedicationDispense.dosageInstruction.method">
            <path value="MedicationDispense.dosageInstruction.method" />
            <binding>
                <strength value="preferred" />
                <valueSet value="https://fhir.hl7.org.uk/ValueSet/UKCore-MedicationDosageMethod" />
            </binding>
        </element>
        <element id="MedicationDispense.dosageInstruction.doseAndRate">
            <path value="MedicationDispense.dosageInstruction.doseAndRate" />
            <short value="Dosage instructions for the medication." />
            <mustSupport value="true" />
        </element>
        <element id="MedicationDispense.dosageInstruction.doseAndRate.dose[x]">
            <path value="MedicationDispense.dosageInstruction.doseAndRate.dose[x]" />
            <short value="Quantity of medication administered." />
            <mustSupport value="true" />
        </element>
        <element id="MedicationDispense.dosageInstruction.doseAndRate.rate[x]">
            <path value="MedicationDispense.dosageInstruction.doseAndRate.rate[x]" />
            <short value="Rate at which the medication is to be administered." />
            <mustSupport value="true" />
        </element>
    </differential>
</StructureDefinition>

JSON View

{
    "resourceType": "StructureDefinition",
    "id": "UKCore-MedicationDispense",
    "url": "https://fhir.hl7.org.uk/StructureDefinition/UKCore-MedicationDispense",
    "version": "2.4.0",
    "name": "UKCoreMedicationDispense",
    "title": "UK Core MedicationDispense",
    "status": "active",
    "date": "2023-12-12",
    "publisher": "HL7 UK",
    "contact":  [
        {
            "name": "HL7 UK",
            "telecom":  [
                {
                    "system": "email",
                    "value": "ukcore@hl7.org.uk",
                    "use": "work",
                    "rank": 1
                }
            ]
        }
    ],
    "description": "This profile defines the UK constraints and extensions on the International FHIR resource [MedicationDispense](https://hl7.org/fhir/R4/MedicationDispense.html).",
    "purpose": "This profile covers the supply of medications to a patient. Examples include dispensing and pick-up from an outpatient or community pharmacy, dispensing patient-specific medications from inpatient pharmacy to ward, as well as issuing a single dose from ward stock to a patient for consumption. The medication dispense is the result of a pharmacy system responding to a medication order.",
    "copyright": "Copyright © 2021+ HL7 UK Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at  http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. HL7® FHIR® standard Copyright © 2011+ HL7 The HL7® FHIR® standard is used under the FHIR license. You may obtain a copy of the FHIR license at  https://www.hl7.org/fhir/license.html.",
    "fhirVersion": "4.0.1",
    "kind": "resource",
    "abstract": false,
    "type": "MedicationDispense",
    "baseDefinition": "http://hl7.org/fhir/StructureDefinition/MedicationDispense",
    "derivation": "constraint",
    "differential": {
        "element":  [
            {
                "id": "MedicationDispense.identifier",
                "path": "MedicationDispense.identifier",
                "short": "Allows the resource to be referenced within / by other resources.",
                "mustSupport": true
            },
            {
                "id": "MedicationDispense.status",
                "path": "MedicationDispense.status",
                "short": "A code that describes the status of the dispensing event.",
                "mustSupport": true
            },
            {
                "id": "MedicationDispense.medication[x]",
                "path": "MedicationDispense.medication[x]",
                "short": "What medication was supplied.",
                "mustSupport": true,
                "binding": {
                    "strength": "preferred",
                    "valueSet": "https://fhir.hl7.org.uk/ValueSet/UKCore-MedicationCode"
                }
            },
            {
                "id": "MedicationDispense.subject",
                "path": "MedicationDispense.subject",
                "short": "Identifies the patient.",
                "mustSupport": true
            },
            {
                "id": "MedicationDispense.performer",
                "path": "MedicationDispense.performer",
                "short": "Who or what performed the dispensing event.",
                "mustSupport": true
            },
            {
                "id": "MedicationDispense.type",
                "path": "MedicationDispense.type",
                "binding": {
                    "strength": "extensible",
                    "valueSet": "https://fhir.hl7.org.uk/ValueSet/UKCore-MedicationSupplyType"
                }
            },
            {
                "id": "MedicationDispense.quantity",
                "path": "MedicationDispense.quantity",
                "short": "Quantity of medication dispensed.",
                "mustSupport": true
            },
            {
                "id": "MedicationDispense.whenPrepared",
                "path": "MedicationDispense.whenPrepared",
                "short": "Timestamp for when the medication was prepared.",
                "mustSupport": true
            },
            {
                "id": "MedicationDispense.dosageInstruction",
                "path": "MedicationDispense.dosageInstruction",
                "short": "Dosage instruction for the dispensed medication.",
                "mustSupport": true
            },
            {
                "id": "MedicationDispense.dosageInstruction.text",
                "path": "MedicationDispense.dosageInstruction.text",
                "short": "Free text dosage instructions.",
                "mustSupport": true
            },
            {
                "id": "MedicationDispense.dosageInstruction.timing",
                "path": "MedicationDispense.dosageInstruction.timing",
                "short": "When medication should be administered.",
                "mustSupport": true
            },
            {
                "id": "MedicationDispense.dosageInstruction.asNeeded[x]",
                "path": "MedicationDispense.dosageInstruction.asNeeded[x]",
                "binding": {
                    "strength": "preferred"
                }
            },
            {
                "id": "MedicationDispense.dosageInstruction.site",
                "path": "MedicationDispense.dosageInstruction.site",
                "binding": {
                    "strength": "preferred",
                    "valueSet": "https://fhir.hl7.org.uk/ValueSet/UKCore-BodySite"
                }
            },
            {
                "id": "MedicationDispense.dosageInstruction.route",
                "path": "MedicationDispense.dosageInstruction.route",
                "binding": {
                    "strength": "preferred",
                    "valueSet": "https://fhir.hl7.org.uk/ValueSet/UKCore-SubstanceOrProductAdministrationRoute"
                }
            },
            {
                "id": "MedicationDispense.dosageInstruction.method",
                "path": "MedicationDispense.dosageInstruction.method",
                "binding": {
                    "strength": "preferred",
                    "valueSet": "https://fhir.hl7.org.uk/ValueSet/UKCore-MedicationDosageMethod"
                }
            },
            {
                "id": "MedicationDispense.dosageInstruction.doseAndRate",
                "path": "MedicationDispense.dosageInstruction.doseAndRate",
                "short": "Dosage instructions for the medication.",
                "mustSupport": true
            },
            {
                "id": "MedicationDispense.dosageInstruction.doseAndRate.dose[x]",
                "path": "MedicationDispense.dosageInstruction.doseAndRate.dose[x]",
                "short": "Quantity of medication administered.",
                "mustSupport": true
            },
            {
                "id": "MedicationDispense.dosageInstruction.doseAndRate.rate[x]",
                "path": "MedicationDispense.dosageInstruction.doseAndRate.rate[x]",
                "short": "Rate at which the medication is to be administered.",
                "mustSupport": true
            }
        ]
    }
}

Examples

Eye drops - An example to illustrate a dispense eye drops.
Example UKCore-MedicationDispense-EyeDrops

Example Usage Scenarios

The following are example usage scenarios for the UK Core MedicationDispense profile:

  • Query for a patient's specific dispensed medication
  • Record or update a dispensed medication.

Profile Specific Implementation Guidance:

Mandatory and Must Support Data Elements

The following elements are identified as MustSupport, and it is expected that consumers and suppliers SHALL support these as per the MustSupport Guidance.

ElementReason
MedicationDispense.identifierAllows the resource to be referenced within / by other resources.
MedicationDispense.statusA code that describes the status of the dispensing event.
MedicationDispense.medication[x]What medication was supplied.
MedicationDispense.subjectIdentifies the patient.
MedicationDispense.performerWho or what performed the dispensing event.
MedicationDispense.quantityQuantity of medication dispensed.
MedicationDispense.whenPreparedTimestamp for when the medication was prepared.
MedicationDispense.dosageInstructionDosage instruction for the dispensed medication.
MedicationDispense.dosageInstruction.textFree text dosage instructions.
MedicationDispense.dosageInstruction.timingWhen medication should be administered.
MedicationDispense.dosageInstruction.doseAndRateDosage instructions for the medication.
MedicationDispense.dosageInstruction.doseAndRate.dose[x]Quantity of medication administered.
MedicationDispense.dosageInstruction.doseAndRate.rate[x]Rate at which the medication is to be administered.


Bindings (differential)

More information about the bindings to UK Core ValueSets can be found below.

ContextStrengthLink
MedicationDispense.medication[x]preferredhttps://fhir.hl7.org.uk/ValueSet/UKCore-MedicationCode
MedicationDispense.typeextensiblehttps://fhir.hl7.org.uk/ValueSet/UKCore-MedicationSupplyType
MedicationDispense.dosageInstruction.sitepreferredhttps://fhir.hl7.org.uk/ValueSet/UKCore-BodySite
MedicationDispense.dosageInstruction.routepreferredhttps://fhir.hl7.org.uk/ValueSet/UKCore-SubstanceOrProductAdministrationRoute
MedicationDispense.dosageInstruction.methodpreferredhttps://fhir.hl7.org.uk/ValueSet/UKCore-MedicationDosageMethod


partOf

The resource being referenced SHALL conform to Profile UKCore-Procedure


status

It is expected that most implementations will require the use of status to support workflow.

The status can be used to determine the overall status of dispense request; however, it does not cater for the granularity that prescription tracking software can offer.

It is recommended that the MedicationDispense.status is used to indicate the status at a high-level so that integrated systems can determine how to represent this information.

Status FHIR Definition Implementation Guidance
preparation The core event has not started yet, but some staging activities have begun (e.g. initial compounding or packaging of medication). Preparation stages MAY be tracked for billing purposes. Consider how the status preparation is presented to the end-user to avoid confusion with in-progress.
in-progress The dispensed product is ready for pickup. Consider how the status in-progress is presented to the end-user to avoid confusion with complete when dispensed medication is in-transit to a ward, or to a patient via a delivery service.
cancelled The dispensed product was not and will never be picked up by the patient. Avoid the use of this status value where possible as very similar to stopped and therefore potentially confusing.
on-hold The dispense process is paused while waiting for an external event to reactivate the dispense. For example, new stock has arrived or the prescriber has called. Probably most useful as a pharmacy-facing status. If exposed to users outside the pharmacy, such users may want to know how long the dispensing event will be on hold in case alternative dispensing arrangements need to be identified.
completed The dispensed product has been picked up. This would be a suitable trigger to post / share the medication dispense with the requesting ePMA system.
entered-in-error The dispense was entered in error and therefore nullified. Not to be used unless specific use-cases can be identified.
stopped Actions implied by the dispense have been permanently halted, before all of them occurred. A MedicationDispense.statusReason SHOULD be populated with a coded reason for stopping the medication administration. This would be a suitable trigger to post / share the medication dispense with the requesting ePMA system.
declined The dispense was declined and not performed This would be a suitable trigger to post / share the declined medication dispense event with the requesting ePMA system.
unknown The authoring system does not know which of the status values applies for this medication dispense. Note: this concept is not to be used for other - one of the listed statuses is presumed to apply, it's just not known which one. Avoid the use of this status value where possible.

medication-dispense-status-flow

statusReason[x]

A reason for why a dispense was not performed, either as a reference to a DetectedIssue resource, or a coded reason from the medicationdispense-status-reason valueset.

This SHOULD only be populated when the MedicationDispense.status is either cancelled, stopped or declined.


medication[x]

Medication WITH dm+d code

Where a dm+d code exists it SHALL be used either as MedicationDispense.medicationCodeableConcept.coding or as MedicationDispense.medicationReference.Medication.code

Where CodeableConcept is used, MedicationDispense.medicationCodeableConcept.coding is the dm+d code and MedicationDispense.medicationCodeableConcept.text is dm+d concept name/description.

Can be either a dm+d code as a CodeableConcept or reference to UK Core Profile UKCore-Medication resource. Using a CodeableConcept is preferred unless additional data if required that would be contained within a UK Core Profile UKCore-Medication resource.

The elements MedicationDispense.medicationCodeableConcept.coding and MedicationDispense.medicationReference.Medication.code are both bound to ValueSet UKCore-MedicationCode

Examples where a reference to a UK Core Profile UKCore-Medication would be applicable include:

  • Record a VTM with a specific form
  • Record manufacturer with a concept as described in ValueSet UKCore-MedicationCode
  • Record batch number
  • Record ingredients (for example with a magisterial prescription or an excipient).

Medication WITHOUT dm+d code

Medication not published within the dm+d may be requested in the Acute care setting.

In this scenario it is recommended to use the MedicationDispense.medicationCodeableConcept variant for this element.

If the prescribing system has both a locally assigned code and description for the medication then;

  • The MedicationDispense.medicationCodeableConcept.text SHOULD be the description for the medication.
  • The MedicationDispense.medicationCodeableConcept.coding.code SHOULD be the code for the medication.
  • The MedicationDispense.medicationCodeableConcept.coding.display SHOULD be the description for the medication, i.e. the same value as MedicationDispense.medicationCodeableConcept.text.

If the prescribing system only has a description for the medication then;

  • The MedicationDispense.medicationCodeableConcept.text SHOULD be the locally assigned description for the medication.

subject

Where possible, it is expected that the resource being referenced SHOULD conform to one of the following UK Core profiles:


context

Where possible, it is expected that the resource being referenced SHOULD conform to one of the following UK Core profiles:


supportingInformation

Where a UK Core profile exists the resource being referenced SHOULD conform to the profile.


location

Where possible, it is expected that the resource being referenced SHOULD conform to Profile UKCore-Location


authorizingPrescription

This is a required element where the prescription is known and available when constructing the MedicationDispense resource.

Supply Events

Examples of where medications can be supplied without a prescription are shown below:

  • Emergency supply
  • Over The Counter (OTC)
  • Patient Group Directions (PGD)
  • Minor Ailment Schemes.

Dispense Events

Where possible, it is expected that the resource being referenced SHOULD conform to Profile UKCore-MedicationRequest


quantity

This element could be useful for discharge prescriptions (TTO) when representing "1 of something", for example:

  • 1 pack
  • 1 tablet
  • 1 bottle.

It may be simpler to always express as dose units. For example;

  • 14 tablets
  • 50 ml.

whenPrepared

A timestamp, as close as business processes allow for when the dispensed medication was prepared, i.e. labelled and checked.


destination

If used, consider interpreting as the Intended Destination in the real world, this could change between being marked as "dispensed" and the patient receiving the medication.

For example, within an inpatient setting, the patient could have been transferred to a different ward before the dispensed medication is delivered.

Where possible, it is expected that the resource being referenced SHOULD conform to Profile UKCore-Location


receiver

Where possible, it is expected that the resource being referenced SHOULD conform to one of the following UK Core profiles:


note

Not required as part of a minimum viable content; however, if this field is populated, the receiving system SHALL consume the information in the event that it contains important information (and should be treat as required)


dosageInstruction

Consider aligning to the Implementation Guide for Digital Medicines, but as a minimum, MedicationDispense.dosageInstruction.text.

Where a structured dosage is provided, populate MedicationDispense.dosageInstruction.text with a human readable dosage string that is clinically equivalent to the coded dosage instruction. This is for interoperability with consuming systems that do not yet support fully structured dosing instructions.


eventHistory

Where possible, it is expected that the resource being referenced SHOULD conform to UKCore-Provenance (draft).