NHS Digital FHIR Medicines (Retired - 2.1.14)

This guidance is under active development by NHS Digital and content may be added or updated on a regular basis.

Profiles

DM-MedicationRequest-Outcome

For reference only. This profile is used by EPS for prescription-order-response messages.

Command 'tree' could not render: File not found for 'subject=NHSDigital-medicationrequest-outcome'

UKCore-List

Used by

Conformance Url
https://fhir.nhs.uk/StructureDefinition/UKCore-List

This is a list of repeat medications referenced from

Command 'pagelink' could not render: Object reference not set to an instance of an object.
.

Each medication item must contain a single medication entry. A medication entry is free text but must contain the medication item name/description using dm+d terms, where these concepts exist or where a mapping from a proprietary terminology exists, otherwise expressed using proprietary terms. Where applicable the statement should contain the current issue number and maximum number of issues authorised, e.g. “Bendroflumethiazide 2.5 mg Tablets (3/6)”. It may also contain dosage instructions or other relevant information.

{
    "resourceType": "List",
    "status": "current",
    "mode": "snapshot",
    "code": {
        "text": "Repeat Medications"
    },
    "subject": {
        "reference": "urn:uuid:848d8470-bd51-494e-9347-8142ea75cb23"
    },
    "entry": [
        {
            "item": {
                "display": "Bendroflumethiazide 2.5 mg Tablets (3/6)"
            }
        },
        {
            "item": {
                "display": "Salbutamol 100micrograms/dose inhaler CFC free 200 dose (2/6)"
            }
        }
    ]
}

Conformance Rules


Source Data Item Target FHIR Element Additional Conformance
code.text Default to 'Repeat Medications'
subject (patient) The subject of the list entries
medication entry[].item.display DM+D name of the repeat medication

Example: List

DM-Provenance

Used by

Conformance Url
https://fhir.nhs.uk/StructureDefinition/DM-Provenance

DM-Provenance is used to convey the presciption digital signature.



Conformance Rules


Source Data Item Target FHIR Element Additional Conformance

Differential



idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
extensionI0..*Extension
modifierExtension?! I0..*Extension
targetΣ1..*Reference()
occurredPeriodPeriod
occurredDateTimedateTime
recordedΣ1..1instant
policy0..*uri
location0..1Reference(Location)
reason0..*CodeableConceptBinding
activity0..1CodeableConceptBinding
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
typeΣ0..1CodeableConceptBinding
role0..*CodeableConcept
whoΣ1..1Reference()
onBehalfOf0..1Reference(Practitioner | PractitionerRole | RelatedPerson | Patient | Device | Organization)
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
roleΣ1..1codeBinding
whatΣ1..1Reference(Resource)
agent0..*see (agent)
id0..1string
extensionI0..*Extension
typeΣ1..*CodingBinding
whenΣ1..1instant
whoΣ1..1Reference( | )
onBehalfOfΣ0..1Reference(Practitioner | PractitionerRole | RelatedPerson | Patient | Device | Organization)
targetFormat0..1codeBinding
sigFormat0..1codeBinding
data0..1base64Binary

Combined



idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
extensionI0..*Extension
modifierExtension?! I0..*Extension
targetΣ1..*Reference()
occurredPeriodPeriod
occurredDateTimedateTime
recordedΣ1..1instant
policy0..*uri
location0..1Reference(Location)
reason0..*CodeableConceptBinding
activity0..1CodeableConceptBinding
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
typeΣ0..1CodeableConceptBinding
role0..*CodeableConcept
whoΣ1..1Reference()
onBehalfOf0..1Reference(Practitioner | PractitionerRole | RelatedPerson | Patient | Device | Organization)
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
roleΣ1..1codeBinding
whatΣ1..1Reference(Resource)
agent0..*see (agent)
id0..1string
extensionI0..*Extension
typeΣ1..*CodingBinding
whenΣ1..1instant
whoΣ1..1Reference( | )
onBehalfOfΣ0..1Reference(Practitioner | PractitionerRole | RelatedPerson | Patient | Device | Organization)
targetFormat0..1codeBinding
sigFormat0..1codeBinding
data0..1base64Binary

Examples

Command 'pagelink' could not render: Object reference not set to an instance of an object.

DM-MedicationRequest-Medication

Conformance Url
https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest-Medication

Differential



idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
extensionI0..*Extension
modifierExtension?! I0..*Extension
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
id0..1string
extensionI0..*Extension
id0..1string
extensionI0..*Extension
systemΣ1..1uri
versionΣ0..1string
codeΣ1..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
statusΣ ?!0..1codeBinding
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ0..1string
form0..1CodeableConceptBinding
amountΣ I0..1Ratio
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
itemCodeableConceptCodeableConcept
itemReferenceReference(Substance | )
isActive0..1boolean
strengthI0..1Ratio
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
lotNumber0..1string
expirationDate0..1dateTime

Combined



idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
extensionI0..*Extension
modifierExtension?! I0..*Extension
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
id0..1string
extensionI0..*Extension
id0..1string
extensionI0..*Extension
systemΣ1..1uri
versionΣ0..1string
codeΣ1..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
statusΣ ?!0..1codeBinding
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ0..1string
form0..1CodeableConceptBinding
amountΣ I0..1Ratio
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
itemCodeableConceptCodeableConcept
itemReferenceReference(Substance | )
isActive0..1boolean
strengthI0..1Ratio
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
lotNumber0..1string
expirationDate0..1dateTime

Examples

See Medications

DM-MedicationDispense-Medication

Conformance Url
https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationDispense-Medication

Differential



idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
extensionI0..*Extension
modifierExtension?! I0..*Extension
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
id0..1string
extensionI0..*Extension
id0..1string
extensionI0..*Extension
systemΣ1..1uri
versionΣ0..1string
codeΣ1..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
statusΣ ?!0..1codeBinding
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ0..1string
form0..1CodeableConceptBinding
amountΣ I0..1Ratio
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
itemCodeableConceptCodeableConcept
itemReferenceReference(Substance | )
isActive0..1boolean
strengthI0..1Ratio
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
lotNumber0..1string
expirationDate0..1dateTime

Combined



idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
extensionI0..*Extension
modifierExtension?! I0..*Extension
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
id0..1string
extensionI0..*Extension
id0..1string
extensionI0..*Extension
systemΣ1..1uri
versionΣ0..1string
codeΣ1..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
statusΣ ?!0..1codeBinding
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ0..1string
form0..1CodeableConceptBinding
amountΣ I0..1Ratio
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
itemCodeableConceptCodeableConcept
itemReferenceReference(Substance | )
isActive0..1boolean
strengthI0..1Ratio
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
lotNumber0..1string
expirationDate0..1dateTime

Examples

See Medications

NHSDigital-Claim

Conformance Url
https://fhir.nhs.uk/StructureDefinition/NHSDigital-Claim




idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
extensionI0..*Extension
modifierExtension?! I0..*Extension
identifierS0..*Identifier
statusS Σ ?!1..1codeBinding
typeS Σ1..1CodeableConceptBinding
subType0..1CodeableConcept
useΣ1..1codeBinding
patientS Σ1..1Reference(Patient)
billablePeriodΣ0..1Period
createdS Σ1..1dateTime
enterer0..1Reference(Practitioner | PractitionerRole)
insurerΣ0..1Reference(Organization)
providerS Σ1..1Reference( | )
priorityΣ1..1CodeableConcept
fundsReserve0..1CodeableConcept
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
claim0..1Reference(Claim)
relationship0..1CodeableConcept
reference0..1Identifier
id0..1string
groupIdentifierI1..1Extension(Complex)
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..1string
periodΣ0..1Period
assignerΣ0..1Reference(Organization)
displayΣ0..1string
id0..1string
groupIdentifierI1..1Extension(Complex)
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ0..1Period
assignerΣ0..1Reference(Organization)
displayΣ0..1string
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
type1..1CodeableConcept
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ0..1Period
assignerΣ0..1Reference(Organization)
displayΣ0..1string
referral0..1Reference(ServiceRequest)
facility0..1Reference(Location)
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
sequence1..1positiveInt
provider1..1Reference(Practitioner | PractitionerRole | Organization)
responsible0..1boolean
role0..1CodeableConcept
qualification0..1CodeableConcept
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
sequence1..1positiveInt
category1..1CodeableConcept
code0..1CodeableConcept
timingDatedate
timingPeriodPeriod
valueBooleanboolean
valueStringstring
valueQuantityQuantity
valueAttachmentAttachment
valueReferenceReference(Resource)
reason0..1CodeableConcept
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
sequence1..1positiveInt
diagnosisCodeableConceptCodeableConcept
diagnosisReferenceReference(Condition)
type0..*CodeableConcept
onAdmission0..1CodeableConcept
packageCode0..1CodeableConcept
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
sequence1..1positiveInt
type0..*CodeableConcept
date0..1dateTime
procedureCodeableConceptCodeableConcept
procedureReferenceReference(Procedure)
udi0..*Reference(Device)
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
sequenceΣ1..1positiveInt
focalΣ1..1boolean
identifier0..1Identifier
coverageΣ1..1Reference(Coverage)
businessArrangement0..1string
preAuthRef0..*string
claimResponse0..1Reference(ClaimResponse)
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
date1..1date
type0..1CodeableConceptBinding
locationAddressAddress
locationReferenceReference(Location)
id0..1string
lineItemIdentifierS I1..1Extension(Identifier)
prescriptionStatusI0..1Extension(Coding)
prescriptionStatusReassonS I0..1Extension(Coding)
modifierExtensionΣ ?! I0..*Extension
sequenceS1..1positiveInt
careTeamSequence0..*positiveInt
diagnosisSequence0..*positiveInt
procedureSequence0..*positiveInt
informationSequence0..*positiveInt
revenue0..1CodeableConcept
category0..1CodeableConcept
productOrServiceS1..1CodeableConceptBinding
modifierS1..*CodeableConceptBinding
programCodeS1..1CodeableConceptBinding
servicedDatedate
servicedPeriodPeriod
locationCodeableConceptCodeableConcept
locationAddressAddress
locationReferenceReference(Location)
quantityS0..1SimpleQuantity
unitPrice0..1Money
factor0..1decimal
net0..1Money
udi0..*Reference(Device)
bodySite0..1CodeableConcept
subSite0..*CodeableConcept
encounter0..*Reference(Encounter)
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
sequenceS1..1positiveInt
revenue0..1CodeableConcept
category0..1CodeableConcept
productOrServiceS1..1CodeableConceptBinding
modifier0..*CodeableConcept
id0..1string
extensionI0..*Extension
id0..1string
extensionI0..*Extension
systemΣ0..1uriFixed Value
versionΣ0..1string
codeΣ0..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
id0..1string
extensionI0..*Extension
id0..1string
extensionI0..*Extension
systemΣ0..1uriFixed Value
versionΣ0..1string
codeΣ0..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
id0..1string
extensionI0..*Extension
id0..1string
extensionI0..*Extension
systemΣ0..1uriFixed Value
versionΣ0..1string
codeΣ0..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
id0..1string
runningTotalI0..1Extension(Quantity)
valueΣ0..1decimal
comparatorΣ ?!0..0codeBinding
unitΣ0..1string
systemΣ I0..1uri
codeΣ0..1code
unitPrice0..1Money
factor0..1decimal
net0..1Money
udi0..*Reference(Device)
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
sequence1..1positiveInt
revenue0..1CodeableConcept
category0..1CodeableConcept
productOrService1..1CodeableConcept
modifier0..*CodeableConcept
programCode0..*CodeableConcept
quantity0..1SimpleQuantity
unitPrice0..1Money
factor0..1decimal
net0..1Money
udi0..*Reference(Device)
total0..1Money

idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
extensionI0..*Extension
modifierExtension?! I0..*Extension
identifierS0..*Identifier
statusS Σ ?!1..1codeBinding
typeS Σ1..1CodeableConceptBinding
subType0..1CodeableConcept
useΣ1..1codeBinding
patientS Σ1..1Reference(Patient)
billablePeriodΣ0..1Period
createdS Σ1..1dateTime
enterer0..1Reference(Practitioner | PractitionerRole)
insurerΣ0..1Reference(Organization)
providerS Σ1..1Reference( | )
priorityΣ1..1CodeableConcept
fundsReserve0..1CodeableConcept
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
claim0..1Reference(Claim)
relationship0..1CodeableConcept
reference0..1Identifier
id0..1string
groupIdentifierI1..1Extension(Complex)
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..1string
periodΣ0..1Period
assignerΣ0..1Reference(Organization)
displayΣ0..1string
id0..1string
groupIdentifierI1..1Extension(Complex)
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ0..1Period
assignerΣ0..1Reference(Organization)
displayΣ0..1string
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
type1..1CodeableConcept
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ0..1Period
assignerΣ0..1Reference(Organization)
displayΣ0..1string
referral0..1Reference(ServiceRequest)
facility0..1Reference(Location)
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
sequence1..1positiveInt
provider1..1Reference(Practitioner | PractitionerRole | Organization)
responsible0..1boolean
role0..1CodeableConcept
qualification0..1CodeableConcept
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
sequence1..1positiveInt
category1..1CodeableConcept
code0..1CodeableConcept
timingDatedate
timingPeriodPeriod
valueBooleanboolean
valueStringstring
valueQuantityQuantity
valueAttachmentAttachment
valueReferenceReference(Resource)
reason0..1CodeableConcept
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
sequence1..1positiveInt
diagnosisCodeableConceptCodeableConcept
diagnosisReferenceReference(Condition)
type0..*CodeableConcept
onAdmission0..1CodeableConcept
packageCode0..1CodeableConcept
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
sequence1..1positiveInt
type0..*CodeableConcept
date0..1dateTime
procedureCodeableConceptCodeableConcept
procedureReferenceReference(Procedure)
udi0..*Reference(Device)
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
sequenceΣ1..1positiveInt
focalΣ1..1boolean
identifier0..1Identifier
coverageΣ1..1Reference(Coverage)
businessArrangement0..1string
preAuthRef0..*string
claimResponse0..1Reference(ClaimResponse)
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
date1..1date
type0..1CodeableConceptBinding
locationAddressAddress
locationReferenceReference(Location)
id0..1string
lineItemIdentifierS I1..1Extension(Identifier)
prescriptionStatusI0..1Extension(Coding)
prescriptionStatusReassonS I0..1Extension(Coding)
modifierExtensionΣ ?! I0..*Extension
sequenceS1..1positiveInt
careTeamSequence0..*positiveInt
diagnosisSequence0..*positiveInt
procedureSequence0..*positiveInt
informationSequence0..*positiveInt
revenue0..1CodeableConcept
category0..1CodeableConcept
productOrServiceS1..1CodeableConceptBinding
modifierS1..*CodeableConceptBinding
programCodeS1..1CodeableConceptBinding
servicedDatedate
servicedPeriodPeriod
locationCodeableConceptCodeableConcept
locationAddressAddress
locationReferenceReference(Location)
quantityS0..1SimpleQuantity
unitPrice0..1Money
factor0..1decimal
net0..1Money
udi0..*Reference(Device)
bodySite0..1CodeableConcept
subSite0..*CodeableConcept
encounter0..*Reference(Encounter)
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
sequenceS1..1positiveInt
revenue0..1CodeableConcept
category0..1CodeableConcept
productOrServiceS1..1CodeableConceptBinding
modifier0..*CodeableConcept
id0..1string
extensionI0..*Extension
id0..1string
extensionI0..*Extension
systemΣ0..1uriFixed Value
versionΣ0..1string
codeΣ0..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
id0..1string
extensionI0..*Extension
id0..1string
extensionI0..*Extension
systemΣ0..1uriFixed Value
versionΣ0..1string
codeΣ0..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
id0..1string
extensionI0..*Extension
id0..1string
extensionI0..*Extension
systemΣ0..1uriFixed Value
versionΣ0..1string
codeΣ0..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
id0..1string
runningTotalI0..1Extension(Quantity)
valueΣ0..1decimal
comparatorΣ ?!0..0codeBinding
unitΣ0..1string
systemΣ I0..1uri
codeΣ0..1code
unitPrice0..1Money
factor0..1decimal
net0..1Money
udi0..*Reference(Device)
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
sequence1..1positiveInt
revenue0..1CodeableConcept
category0..1CodeableConcept
productOrService1..1CodeableConcept
modifier0..*CodeableConcept
programCode0..*CodeableConcept
quantity0..1SimpleQuantity
unitPrice0..1Money
factor0..1decimal
net0..1Money
udi0..*Reference(Device)
total0..1Money



extension agent

The person submitting/authoring the Claim


   "extension":  [
        {
            "url": "https://fhir.nhs.uk/StructureDefinition/Extension-Provenance-agent",
            "valueReference": {
                "identifier": {
                    "system": "https://fhir.nhs.uk/Id/sds-role-profile-id",
                    "value": "884562163557"
                },
                "display": "dummy full name"
            }
        }
    ],



identifier

MUST be unique for each Claim. In EPS this must be a UUID with a system of https://fhir.nhs.uk/Id/prescription-dispense-item-number


      "identifier":  [
          {
              "system": "https://fhir.nhs.uk/Id/prescription-dispense-item-number",
              "value": "4509B70D-D8B8-EA03-1105-64557CB54A29"
          }
      ],



status, type and use

For EPS the following MUST be used.


      "status": "active",
      "type": {
          "coding":  [
              {
                   "system": "http://terminology.hl7.org/CodeSystem/claim-type",
                    "code": "pharmacy",
                    "display": "Pharmacy"
             }             
          ]
      },
      "use": "claim",



patient

MUST be an identifier reference using the Patients NHS Number.


      "patient": {
          "identifier": {
              "system": "https://fhir.nhs.uk/Id/nhs-number",
              "value": "2300992742"
          }
      },



created

The date of the Claim


  "created": "2004-09-16T16:30:00+00:00",



provider

The organisation responsible for the claim

"provider": {
        "identifier": {
            "system": "https://fhir.nhs.uk/Id/ods-organization-code",
            "value": "VNE51"
        },
        "display": "The Simple Pharmacy"
    },


priority

Desired processing ugency. Fixed value.

"priority": {
        "coding": [
            {
                "system": "http://terminology.hl7.org/CodeSystem/processpriority",
                "code": "normal"
            }
        ]
    }


prescription

References to the original prescription, the groupIdentifier contains both the ShortForm prescription id and long form UUID variant. See NHSDigital-MedicationRequest for more details.

This MUST not be used to reference the MedicationRequest, this is done via extension medicationRequest


"prescription": {
    "extension": [
        {
            "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-GroupIdentifier",
            "extension": [
                {
                    "url": "shortForm",
                    "valueIdentifier": {
                        "system": "https://fhir.nhs.uk/Id/prescription-order-number",
                        "value": "82D996-C81010-11DB12"
                    }
                },
                {
                    "url": "UUID",
                    "valueIdentifier": {
                        "system": "https://fhir.nhs.uk/Id/prescription",
                        "value": "b2fc79f0-2793-4736-9b2d-0976c21e73a5"
                    }
                }
            ]
        }
    ],
    "display": "The original prescription"
},



payee

The recipient of benefits payable. This is the ODS Code of the Pharmacy (provider) making the Claim.


"payee": {
    "type": {
        "coding": [
            {
                "system": "http://terminology.hl7.org/CodeSystem/payeetype",
                "value": "provider",
                "display": "Provider"
            }
        ]
    },
    "party": {
        "identifier": {
            "system": "https://fhir.nhs.uk/Id/ods-organization-code",
            "value": "AB123"
        },
        "display": "The Simple Pharmacy"
    }
}


insurance

For EPS this is the NHS Business Services Authority. The sequence value must match the sequence number used in the the item section.


"insurance":  [
    {
        "sequence": 1,
        "focal": true,
        "coverage": {
            "identifier": {
                "system": "https://fhir.nhs.uk/Id/ods-organization-code",
                "value": "T1450"
            },
            "display": "NHS BUSINESS SERVICES AUTHORITY"
        }
    }
],


item, detail and subDetail

  • item refers to the prescription as a whole
  • detail refers to the MedicationRequest within the prescription.
  • subDetail refers to the MedicationDispense's which relate to a MedicationRequest.
item (prescription) detail (requested medication) subDetail (dispensed medication)
productOrService 16076005 Prescription dm+d code of requested medication dm+d code of dispensed medication
programCode exemptionEvidence prescriptionChargeExemption prescriptionCharge dispensingEndorsement additionalInstructions
modifier MedicationDispenseType
quantity MedicationRequest.quantity MedicationDispense.quantity

item

item.prescriptionStatus(extension)

A Code from DM-Task-Status-Reason. This will generally match the value of the last dispense-notification message. This should match the status of the associated NHSDigital-Task


"extension": [
    {
        "url": "https://fhir.nhs.uk/StructureDefinition/Extension-EPS-TaskBusinessStatus",
        "valueCoding": {
            "system": "https://fhir.nhs.uk/CodeSystem/EPS-task-business-status",
            "code": "0006",
            "display": "Dispensed"
        }
    }
],




item.prescriptionStatusReason(extension)

Mandatory if the medication was not dispensed. The reason will be a code from DM-MedicationDispense-status-reason This should match the statusReason of the associated NHSDigital-Task

Should be this CodeSystem https://fhir.nhs.uk/CodeSystem/medicationdispense-status-reason


"extension": [
    {
        "url": "https://fhir.nhs.uk/StructureDefinition/Extension-EPS-TaskBusinessStatusReason",
        "valueCoding": {
            "system": "https://fhir.nhs.uk/ValueSet/DM-medicationdispense-status-reason",
            "code": "0001",
            "display": "Not required as instructed by the patient"
        }
    }
],



item.sequence

An integer to identify the item within the resource. This should match the sequence value in insurance. Fixed value.


"sequence": 1,



item.productOrService

Mandatory fixed value.


"productOrService": {
    "coding":  [
        {
            "system": "http://snomed.info/sct",
            "code": "16076005",
            "display": "Prescription"
        }
    ]
},



item.programCode

Codes from:

ValueSet Min Occurrence Max Occurrence
DM-prescription-charge-exemption 0 1
DM-vs-exemption-evidence 0 1

"programCode": [
    {
        "coding": [
              {
                "code": "0001",
                "system": "https://fhir.nhs.uk/CodeSystem/prescription-charge-exemption",
                "display": "Patient has paid appropriate charges"
              }
            ]
          },
          {
            "coding": [
              {
                "system": "https://fhir.nhs.uk/CodeSystem/DM-exemption-evidence",
                "code": "no-evidence-seen",
                "display": "No Evidence Seen"
              }
            ]
          }
        ]



detail

detail.sequenceIdentifier(extension)

A uuid to identify the line item


"extension":  [
    {
        "url": "https://fhir.nhs.uk/StructureDefinition/Extension-ClaimSequenceIdentifier",
        "valueIdentifier": {
            "system": "https://fhir.nhs.uk/Id/claim-sequence-identifier",
            "value": "18fc8a8b-f7c7-4367-80ce-1f4fc84c962d"
        }
    }
],



detail.medicationRequest(extension)

This should match the identifier of the associated NHSDigital-MedicationRequest


"extension":  [
    {
        "url": "https://fhir.nhs.uk/StructureDefinition/Extension-ClaimMedicationRequestReference",
        "valueReference": {
            "identifier": {
                "system": "https://fhir.nhs.uk/Id/prescription-order-item-number",
                "value": "33560bee-bc0c-4e3b-a155-71591eee9ca5"
            }
        }
    }
],



detail.sequence

An integer to identify the item within the resource. This should match the sequence value in insurance.


"sequence": 1,



detail.productOrService

This should match the medicationCodeableConcept of the associated NHSDigital-MedicationRequest


"productOrService": {
    "coding":  [
        {
            "system": "http://snomed.info/sct",
            "code": "322237000",
            "display": "Paracetamol 500mg soluble tablets"
        }
    ]
},



detail.modifier

This is the current status of the dispensed medications and is a code from DM-MedicationDispense-Type

If the code is 0002 - Item not dispensed then the extension extension prescriptionStatusReason is required.

This should match the type of the last associated NHSDigital-MedicationDispense


"modifier":  [
    {
        "coding":  [
            {
                "system": "https://fhir.nhs.uk/CodeSystem/medicationdispense-type",
                "code": "0001",
                "display": "Item fully dispensed"
            }
        ]
    }
],



detail.quantity

This should match the quantity of the associated NHSDigital-MedicationRequest


"quantity": {
    "value": 200,
    "unit": "unit dose",
    "system": "http://snomed.info/sct",
    "code": "408102007"
},


item.detail.programCode

Dispense Exemption Codes from

ValueSet Min Occurrence Max Occurrence
DM-vs-prescription-charge 0 1
DM-dispensing-endorsement 0 *

"programCode":  [
    {
        "coding":  [
            {
                "system": "https://fhir.nhs.uk/CodeSystem/DM-prescription-charge",
                "code": "paid-once",
                "display": "Paid Once"
            }
        ]
    },
    {
        "coding":  [
            {
                "system": "https://fhir.nhs.uk/CodeSystem/medicationdispense-endorsement",
                "code": "IP",
                "display": "Invoice Price"
            }
        ]
    }
],




subDetail

subDetail is only present if the medication has been dispensed.


item.detail.subDetail.sequence

An integer id for each medication dispense.


"sequence": 1,




item.detail.subDetail.productOrService

This should match the medicationCodeableConcept of the associated NHSDigital-MedicationDispense


"productOrService": {
    "coding":  [
        {
            "system": "http://snomed.info/sct",
            "code": "3416211000001106",
            "display": "Salbutamol 100micrograms/dose inhaler (Sandoz Ltd) 200 dose"
        }
    ]
},



item.detail.subDetail.quantity

This should match the quantity of the associated NHSDigital-MedicationDispense


"quantity": {
    "value": 200,
    "unit": "unit dose",
    "system": "http://snomed.info/sct",
    "code": "408102007"
}


NHSDigital-MedicationDispense

Conformance Url
https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationDispense


Combined with UK Core MedicationDispense

idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
prescriptionStatusS I1..1Extension(Coding)
repeatInformationI0..1Extension(Complex)
modifierExtension?! I0..*Extension
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ0..1string
statusS Σ ?!1..1codeBinding
statusReasonCodeableConceptCodeableConcept
statusReasonReferenceReference(DetectedIssue)
id0..1string
extensionI0..*Extension
id0..1string
extensionI0..*Extension
systemΣ1..1uri
versionΣ0..1string
codeΣ1..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
medicationCodeableConcept
medicationReferenceReference()
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ0..1string
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ0..1string
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ0..1string
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
function0..1CodeableConcept
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ1..1string
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ0..1string
id0..1string
groupIdentifierI1..1Extension(Complex)
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ0..1string
id0..1string
extensionI0..*Extension
id0..1string
extensionI0..*Extension
systemΣ1..1uri
versionΣ0..1string
codeΣ1..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
id0..1string
runningTotalI0..1Extension(Quantity)
valueΣ1..1decimal
comparatorΣ ?!0..0codeBinding
unitΣ1..1string
systemΣ I1..1uri
codeΣ1..1code
daysSupplyS I0..1SimpleQuantity
whenPreparedS Σ0..1dateTime
whenHandedOver0..1dateTime
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ0..1string
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ0..1string
id0..1string
extensionI0..*Extension
authorStringstring
authorReferenceReference( | | | )
timeΣ0..1dateTime
textΣ1..1markdown
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
sequenceΣ0..1integer
textΣ1..1string
additionalInstructionΣ0..*CodeableConcept
patientInstructionΣ0..1string
timingΣ0..1Timing
asNeededBooleanboolean
asNeededCodeableConceptCodeableConcept
siteΣ0..1CodeableConcept
routeΣ0..1CodeableConcept
methodΣ0..1CodeableConcept
id0..1string
extensionI0..*Extension
typeΣ0..1CodeableConcept
doseRangeRange
doseQuantitySimpleQuantity
rateRatioRatio
rateRangeRange
rateQuantitySimpleQuantity
maxDosePerPeriodΣ0..1Ratio
maxDosePerAdministrationΣ0..1SimpleQuantity
maxDosePerLifetimeΣ0..1SimpleQuantity
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
wasSubstituted1..1boolean
type0..1CodeableConcept
reason0..*CodeableConcept
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ0..1string
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ0..1string
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ0..1string

idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
prescriptionStatusS I1..1Extension(Coding)
repeatInformationI0..1Extension(Complex)
modifierExtension?! I0..*Extension
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ0..1string
statusS Σ ?!1..1codeBinding
statusReasonCodeableConceptCodeableConcept
statusReasonReferenceReference(DetectedIssue)
id0..1string
extensionI0..*Extension
id0..1string
extensionI0..*Extension
systemΣ1..1uri
versionΣ0..1string
codeΣ1..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
medicationCodeableConcept
medicationReferenceReference()
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ0..1string
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ0..1string
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ0..1string
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
function0..1CodeableConcept
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ1..1string
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ0..1string
id0..1string
groupIdentifierI1..1Extension(Complex)
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ0..1string
id0..1string
extensionI0..*Extension
id0..1string
extensionI0..*Extension
systemΣ1..1uri
versionΣ0..1string
codeΣ1..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
id0..1string
runningTotalI0..1Extension(Quantity)
valueΣ1..1decimal
comparatorΣ ?!0..0codeBinding
unitΣ1..1string
systemΣ I1..1uri
codeΣ1..1code
daysSupplyS I0..1SimpleQuantity
whenPreparedS Σ0..1dateTime
whenHandedOver0..1dateTime
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ0..1string
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ0..1string
id0..1string
extensionI0..*Extension
authorStringstring
authorReferenceReference( | | | )
timeΣ0..1dateTime
textΣ1..1markdown
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
sequenceΣ0..1integer
textΣ1..1string
additionalInstructionΣ0..*CodeableConcept
patientInstructionΣ0..1string
timingΣ0..1Timing
asNeededBooleanboolean
asNeededCodeableConceptCodeableConcept
siteΣ0..1CodeableConcept
routeΣ0..1CodeableConcept
methodΣ0..1CodeableConcept
id0..1string
extensionI0..*Extension
typeΣ0..1CodeableConcept
doseRangeRange
doseQuantitySimpleQuantity
rateRatioRatio
rateRangeRange
rateQuantitySimpleQuantity
maxDosePerPeriodΣ0..1Ratio
maxDosePerAdministrationΣ0..1SimpleQuantity
maxDosePerLifetimeΣ0..1SimpleQuantity
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
wasSubstituted1..1boolean
type0..1CodeableConcept
reason0..*CodeableConcept
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ0..1string
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ0..1string
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ0..1string

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.extension:prescriptionStatus
DefinitionOptional Extension Element - found in all resources.
Cardinality1...1
TypeExtension(Coding)
Must SupportTrue
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.

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.extension:repeatInformation
DefinitionMandatory for Repeat Prescribing and Repeat Dispensing
Cardinality0...1
TypeExtension(Complex)
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.

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.identifier.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.identifier.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.identifier.use
DefinitionThe purpose of this identifier.
Cardinality0...1
Typecode
Binding

Identifies the purpose for this identifier, if known .

IdentifierUse (required)
ModifierTrue
SummaryTrue
Requirements

Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers.

Comments

Applications can assume that an identifier is permanent unless it explicitly says that it is temporary.

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: Role.code or implied by context
MedicationDispense.identifier.type
DefinitionA coded type for the identifier that can be used to determine which identifier to use for a specific purpose.
Cardinality0...1
TypeCodeableConcept
Binding

A coded type for an identifier that can be used to determine which identifier to use for a specific purpose.

Identifier Type Codes (extensible)
SummaryTrue
Requirements

Allows users to make use of identifiers when the identifier system is not known.

Comments

This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type.

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: CX.5
  • rim: Role.code or implied by context
MedicationDispense.identifier.system
DefinitionEstablishes the namespace for the value - that is, a URL that describes a set values that are unique.
Cardinality1...1
Typeuri
SummaryTrue
Requirements

There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers.

Comments

Identifier.system is always case sensitive.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Examples
General

http://www.acme.com/identifiers/patient


Mappings
  • rim: n/a
  • v2: CX.4 / EI-2-4
  • rim: II.root or Role.id.root
  • servd: ./IdentifierType
MedicationDispense.identifier.value
DefinitionThe portion of the identifier typically relevant to the user and which is unique within the context of the system.
Cardinality1...1
Typestring
SummaryTrue
Comments

If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Examples
General

123456


Mappings
  • rim: n/a
  • v2: CX.1 / EI.1
  • rim: II.extension or II.root if system indicates OID or GUID (Or Role.id.extension or root)
  • servd: ./Value
MedicationDispense.identifier.period
DefinitionTime period during which identifier is/was valid for use.
Cardinality0...1
TypePeriod
SummaryTrue
Comments

A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times").

Period is not used for a duration (a measure of elapsed time). See Duration.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • per-1: If present, start SHALL have a lower value than end
    start.hasValue().not() or end.hasValue().not() or (start <= end)
Mappings
  • rim: n/a
  • v2: DR
  • rim: IVL<TS>[lowClosed="true" and highClosed="true"] or URG<TS>[lowClosed="true" and highClosed="true"]
  • v2: CX.7 + CX.8
  • rim: Role.effectiveTime or implied by context
  • servd: ./StartDate and ./EndDate
MedicationDispense.identifier.assigner
DefinitionOrganization that issued/manages the identifier.
Cardinality0...1
TypeReference()
SummaryTrue
Comments

The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization.

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: CX.4 / (CX.4,CX.9,CX.10)
  • rim: II.assigningAuthorityName but note that this is an improper use by the definition of the field. Also Role.scoper
  • servd: ./IdentifierIssuingAuthority
MedicationDispense.partOf
DefinitionThe procedure that trigger the dispense.
Cardinality0...*
TypeReference()
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.partOf.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.partOf.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.partOf.reference
DefinitionA reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources.
Cardinality0...1
Typestring
SummaryTrue
Comments

Using absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading across closed eco-system boundaries. Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach. If the URL conforms to the structure "/[type]/[id]" then it should be assumed that the reference is to a FHIR RESTful server.

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.partOf.type
DefinitionThe expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent. The type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. "Patient" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources).
Cardinality0...1
Typeuri
Binding

Aa resource (or, for logical models, the URI of the logical model).

ResourceType (extensible)
SummaryTrue
Comments

This element is used to indicate the type of the target of the reference. This may be used which ever of the other elements are populated (or not). In some cases, the type of the target may be determined by inspection of the reference (e.g. a RESTful URL) or by resolving the target of the reference; if both the type and a reference is provided, the reference SHALL resolve to a resource of the same type as that specified.

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.partOf.identifier
DefinitionAn identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference.
Cardinality0...1
TypeIdentifier
SummaryTrue
Comments

When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy.

When both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference

Applications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it.

Reference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any).

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
  • rim: .identifier
MedicationDispense.partOf.identifier.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.partOf.identifier.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.partOf.identifier.use
DefinitionThe purpose of this identifier.
Cardinality0...1
Typecode
Binding

Identifies the purpose for this identifier, if known .

IdentifierUse (required)
ModifierTrue
SummaryTrue
Requirements

Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers.

Comments

Applications can assume that an identifier is permanent unless it explicitly says that it is temporary.

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: Role.code or implied by context
MedicationDispense.partOf.identifier.type
DefinitionA coded type for the identifier that can be used to determine which identifier to use for a specific purpose.
Cardinality0...1
TypeCodeableConcept
Binding

A coded type for an identifier that can be used to determine which identifier to use for a specific purpose.

Identifier Type Codes (extensible)
SummaryTrue
Requirements

Allows users to make use of identifiers when the identifier system is not known.

Comments

This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type.

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: CX.5
  • rim: Role.code or implied by context
MedicationDispense.partOf.identifier.system
DefinitionEstablishes the namespace for the value - that is, a URL that describes a set values that are unique.
Cardinality0...1
Typeuri
SummaryTrue
Requirements

There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers.

Comments

Identifier.system is always case sensitive.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Examples
General

http://www.acme.com/identifiers/patient


Mappings
  • rim: n/a
  • v2: CX.4 / EI-2-4
  • rim: II.root or Role.id.root
  • servd: ./IdentifierType
MedicationDispense.partOf.identifier.value
DefinitionThe portion of the identifier typically relevant to the user and which is unique within the context of the system.
Cardinality0...1
Typestring
SummaryTrue
Comments

If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Examples
General

123456


Mappings
  • rim: n/a
  • v2: CX.1 / EI.1
  • rim: II.extension or II.root if system indicates OID or GUID (Or Role.id.extension or root)
  • servd: ./Value
MedicationDispense.partOf.identifier.period
DefinitionTime period during which identifier is/was valid for use.
Cardinality0...1
TypePeriod
SummaryTrue
Comments

A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times").

Period is not used for a duration (a measure of elapsed time). See Duration.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • per-1: If present, start SHALL have a lower value than end
    start.hasValue().not() or end.hasValue().not() or (start <= end)
Mappings
  • rim: n/a
  • v2: DR
  • rim: IVL<TS>[lowClosed="true" and highClosed="true"] or URG<TS>[lowClosed="true" and highClosed="true"]
  • v2: CX.7 + CX.8
  • rim: Role.effectiveTime or implied by context
  • servd: ./StartDate and ./EndDate
MedicationDispense.partOf.identifier.assigner
DefinitionOrganization that issued/manages the identifier.
Cardinality0...1
TypeReference()
SummaryTrue
Comments

The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization.

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: CX.4 / (CX.4,CX.9,CX.10)
  • rim: II.assigningAuthorityName but note that this is an improper use by the definition of the field. Also Role.scoper
  • servd: ./IdentifierIssuingAuthority
MedicationDispense.partOf.display
DefinitionPlain text narrative that identifies the resource in addition to the resource reference.
Cardinality0...1
Typestring
SummaryTrue
Comments

This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it.

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

(required)
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
  • 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.category.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.category.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
MedicationDispense.category.coding
DefinitionA reference to a code defined by a terminology system.
Cardinality0...*
TypeCoding
SummaryTrue
Requirements

Allows for alternative encodings within a code system, and translations to other code systems.

Comments

Codes may be defined very casually in enumerations, or code lists, up to very formal definitions such as SNOMED CT - see the HL7 v3 Core Principles for more information. Ordering of codings is undefined and SHALL NOT be used to infer meaning. Generally, at most only one of the coding values will be labeled as UserSelected = true.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: C*E.1-8, C*E.10-22
  • rim: union(., ./translation)
  • orim: fhir:CodeableConcept.coding rdfs:subPropertyOf dt:CD.coding
MedicationDispense.category.coding.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.category.coding.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
MedicationDispense.category.coding.system
DefinitionThe identification of the code system that defines the meaning of the symbol in the code.
Cardinality1...1
Typeuri
SummaryTrue
Requirements

Need to be unambiguous about the source of the definition of the symbol.

Comments

The URI may be an OID (urn:oid:...) or a UUID (urn:uuid:...). OIDs and UUIDs SHALL be references to the HL7 OID registry. Otherwise, the URI should come from HL7's list of FHIR defined special URIs or it should reference to some definition that establishes the system clearly and unambiguously.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: C*E.3
  • rim: ./codeSystem
  • orim: fhir:Coding.system rdfs:subPropertyOf dt:CDCoding.codeSystem
MedicationDispense.category.coding.version
DefinitionThe version of the code system which was used when choosing this code. Note that a well-maintained code system does not need the version reported, because the meaning of codes is consistent across versions. However this cannot consistently be assured, and when the meaning is not guaranteed to be consistent, the version SHOULD be exchanged.
Cardinality0...1
Typestring
SummaryTrue
Comments

Where the terminology does not clearly define what string should be used to identify code system versions, the recommendation is to use the date (expressed in FHIR date format) on which that version was officially published as the version date.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: C*E.7
  • rim: ./codeSystemVersion
  • orim: fhir:Coding.version rdfs:subPropertyOf dt:CDCoding.codeSystemVersion
MedicationDispense.category.coding.code
DefinitionA symbol in syntax defined by the system. The symbol may be a predefined code or an expression in a syntax defined by the coding system (e.g. post-coordination).
Cardinality1...1
Typecode
SummaryTrue
Requirements

Need to refer to a particular code in the system.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: C*E.1
  • rim: ./code
  • orim: fhir:Coding.code rdfs:subPropertyOf dt:CDCoding.code
MedicationDispense.category.coding.display
DefinitionA representation of the meaning of the code in the system, following the rules of the system.
Cardinality0...1
Typestring
SummaryTrue
Requirements

Need to be able to carry a human-readable meaning of the code for readers that do not know the system.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: C*E.2 - but note this is not well followed
  • rim: CV.displayName
  • orim: fhir:Coding.display rdfs:subPropertyOf dt:CDCoding.displayName
MedicationDispense.category.coding.userSelected
DefinitionIndicates that this coding was chosen by a user directly - e.g. off a pick list of available items (codes or displays).
Cardinality0...1
Typeboolean
SummaryTrue
Requirements

This has been identified as a clinical safety criterium - that this exact system/code pair was chosen explicitly, rather than inferred by the system based on some rules or language processing.

Comments

Amongst a set of alternatives, a directly chosen code is the most appropriate starting point for new translations. There is some ambiguity about what exactly 'directly chosen' implies, and trading partner agreement may be needed to clarify the use of this element and its consequences more completely.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: Sometimes implied by being first
  • rim: CD.codingRationale
  • orim: fhir:Coding.userSelected fhir:mapsTo dt:CDCoding.codingRationale. fhir:Coding.userSelected fhir:hasMap fhir:Coding.userSelected.map. fhir:Coding.userSelected.map a fhir:Map; fhir:target dt:CDCoding.codingRationale. fhir:Coding.userSelected\#true a [ fhir:source "true"; fhir:target dt:CDCoding.codingRationale\#O ]
MedicationDispense.category.text
DefinitionA human language representation of the concept as seen/selected/uttered by the user who entered the data and/or which represents the intended meaning of the user.
Cardinality0...1
Typestring
SummaryTrue
Requirements

The codes from the terminologies do not always capture the correct meaning with all the nuances of the human using them, or sometimes there is no appropriate code at all. In these cases, the text is used to capture the full meaning of the source.

Comments

Very often the text is the same as a displayName of one of the codings.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: C*E.9. But note many systems use C*E.2 for this
  • rim: ./originalText[mediaType/code="text/plain"]/data
  • orim: fhir:CodeableConcept.text rdfs:subPropertyOf dt:CD.originalText
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
Type
Binding

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

SNOMEDCTMedicationCodes (example)
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
  • v2: CE/CNE/CWE
  • rim: CD
  • orim: fhir:CodeableConcept rdfs:subClassOf dt:CD
  • 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.
Cardinality1...1
TypeReference()
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.subject.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.subject.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.subject.reference
DefinitionA reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources.
Cardinality0...1
Typestring
SummaryTrue
Comments

Using absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading across closed eco-system boundaries. Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach. If the URL conforms to the structure "/[type]/[id]" then it should be assumed that the reference is to a FHIR RESTful server.

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.subject.type
DefinitionThe expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent. The type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. "Patient" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources).
Cardinality0...1
Typeuri
Binding

Aa resource (or, for logical models, the URI of the logical model).

ResourceType (extensible)
SummaryTrue
Comments

This element is used to indicate the type of the target of the reference. This may be used which ever of the other elements are populated (or not). In some cases, the type of the target may be determined by inspection of the reference (e.g. a RESTful URL) or by resolving the target of the reference; if both the type and a reference is provided, the reference SHALL resolve to a resource of the same type as that specified.

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.subject.identifier
DefinitionAn identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference.
Cardinality0...1
TypeIdentifier
SummaryTrue
Comments

When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy.

When both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference

Applications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it.

Reference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any).

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
  • rim: .identifier
MedicationDispense.subject.identifier.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.subject.identifier.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.subject.identifier.use
DefinitionThe purpose of this identifier.
Cardinality0...1
Typecode
Binding

Identifies the purpose for this identifier, if known .

IdentifierUse (required)
ModifierTrue
SummaryTrue
Requirements

Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers.

Comments

Applications can assume that an identifier is permanent unless it explicitly says that it is temporary.

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: Role.code or implied by context
MedicationDispense.subject.identifier.type
DefinitionA coded type for the identifier that can be used to determine which identifier to use for a specific purpose.
Cardinality0...1
TypeCodeableConcept
Binding

A coded type for an identifier that can be used to determine which identifier to use for a specific purpose.

Identifier Type Codes (extensible)
SummaryTrue
Requirements

Allows users to make use of identifiers when the identifier system is not known.

Comments

This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type.

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: CX.5
  • rim: Role.code or implied by context
MedicationDispense.subject.identifier.system
DefinitionEstablishes the namespace for the value - that is, a URL that describes a set values that are unique.
Cardinality1...1
Typeuri
SummaryTrue
Requirements

There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers.

Comments

Identifier.system is always case sensitive.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Examples
General

http://www.acme.com/identifiers/patient


Mappings
  • rim: n/a
  • v2: CX.4 / EI-2-4
  • rim: II.root or Role.id.root
  • servd: ./IdentifierType
MedicationDispense.subject.identifier.value
DefinitionThe portion of the identifier typically relevant to the user and which is unique within the context of the system.
Cardinality1...1
Typestring
SummaryTrue
Comments

If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Examples
General

123456


Mappings
  • rim: n/a
  • v2: CX.1 / EI.1
  • rim: II.extension or II.root if system indicates OID or GUID (Or Role.id.extension or root)
  • servd: ./Value
MedicationDispense.subject.identifier.period
DefinitionTime period during which identifier is/was valid for use.
Cardinality0...1
TypePeriod
SummaryTrue
Comments

A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times").

Period is not used for a duration (a measure of elapsed time). See Duration.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • per-1: If present, start SHALL have a lower value than end
    start.hasValue().not() or end.hasValue().not() or (start <= end)
Mappings
  • rim: n/a
  • v2: DR
  • rim: IVL<TS>[lowClosed="true" and highClosed="true"] or URG<TS>[lowClosed="true" and highClosed="true"]
  • v2: CX.7 + CX.8
  • rim: Role.effectiveTime or implied by context
  • servd: ./StartDate and ./EndDate
MedicationDispense.subject.identifier.assigner
DefinitionOrganization that issued/manages the identifier.
Cardinality0...1
TypeReference()
SummaryTrue
Comments

The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization.

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: CX.4 / (CX.4,CX.9,CX.10)
  • rim: II.assigningAuthorityName but note that this is an improper use by the definition of the field. Also Role.scoper
  • servd: ./IdentifierIssuingAuthority
MedicationDispense.subject.display
DefinitionPlain text narrative that identifies the resource in addition to the resource reference.
Cardinality0...1
Typestring
SummaryTrue
Comments

This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it.

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.context
DefinitionThe encounter or episode of care that establishes the context for this event.
Cardinality0...1
TypeReference(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.context.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.context.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.context.reference
DefinitionA reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources.
Cardinality0...1
Typestring
SummaryTrue
Comments

Using absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading across closed eco-system boundaries. Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach. If the URL conforms to the structure "/[type]/[id]" then it should be assumed that the reference is to a FHIR RESTful server.

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.context.type
DefinitionThe expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent. The type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. "Patient" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources).
Cardinality0...1
Typeuri
Binding

Aa resource (or, for logical models, the URI of the logical model).

ResourceType (extensible)
SummaryTrue
Comments

This element is used to indicate the type of the target of the reference. This may be used which ever of the other elements are populated (or not). In some cases, the type of the target may be determined by inspection of the reference (e.g. a RESTful URL) or by resolving the target of the reference; if both the type and a reference is provided, the reference SHALL resolve to a resource of the same type as that specified.

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.context.identifier
DefinitionAn identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference.
Cardinality0...1
TypeIdentifier
SummaryTrue
Comments

When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy.

When both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference

Applications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it.

Reference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any).

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
  • rim: .identifier
MedicationDispense.context.identifier.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.context.identifier.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.context.identifier.use
DefinitionThe purpose of this identifier.
Cardinality0...1
Typecode
Binding

Identifies the purpose for this identifier, if known .

IdentifierUse (required)
ModifierTrue
SummaryTrue
Requirements

Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers.

Comments

Applications can assume that an identifier is permanent unless it explicitly says that it is temporary.

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: Role.code or implied by context
MedicationDispense.context.identifier.type
DefinitionA coded type for the identifier that can be used to determine which identifier to use for a specific purpose.
Cardinality0...1
TypeCodeableConcept
Binding

A coded type for an identifier that can be used to determine which identifier to use for a specific purpose.

Identifier Type Codes (extensible)
SummaryTrue
Requirements

Allows users to make use of identifiers when the identifier system is not known.

Comments

This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type.

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: CX.5
  • rim: Role.code or implied by context
MedicationDispense.context.identifier.system
DefinitionEstablishes the namespace for the value - that is, a URL that describes a set values that are unique.
Cardinality0...1
Typeuri
SummaryTrue
Requirements

There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers.

Comments

Identifier.system is always case sensitive.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Examples
General

http://www.acme.com/identifiers/patient


Mappings
  • rim: n/a
  • v2: CX.4 / EI-2-4
  • rim: II.root or Role.id.root
  • servd: ./IdentifierType
MedicationDispense.context.identifier.value
DefinitionThe portion of the identifier typically relevant to the user and which is unique within the context of the system.
Cardinality0...1
Typestring
SummaryTrue
Comments

If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Examples
General

123456


Mappings
  • rim: n/a
  • v2: CX.1 / EI.1
  • rim: II.extension or II.root if system indicates OID or GUID (Or Role.id.extension or root)
  • servd: ./Value
MedicationDispense.context.identifier.period
DefinitionTime period during which identifier is/was valid for use.
Cardinality0...1
TypePeriod
SummaryTrue
Comments

A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times").

Period is not used for a duration (a measure of elapsed time). See Duration.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • per-1: If present, start SHALL have a lower value than end
    start.hasValue().not() or end.hasValue().not() or (start <= end)
Mappings
  • rim: n/a
  • v2: DR
  • rim: IVL<TS>[lowClosed="true" and highClosed="true"] or URG<TS>[lowClosed="true" and highClosed="true"]
  • v2: CX.7 + CX.8
  • rim: Role.effectiveTime or implied by context
  • servd: ./StartDate and ./EndDate
MedicationDispense.context.identifier.assigner
DefinitionOrganization that issued/manages the identifier.
Cardinality0...1
TypeReference()
SummaryTrue
Comments

The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization.

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: CX.4 / (CX.4,CX.9,CX.10)
  • rim: II.assigningAuthorityName but note that this is an improper use by the definition of the field. Also Role.scoper
  • servd: ./IdentifierIssuingAuthority
MedicationDispense.context.display
DefinitionPlain text narrative that identifies the resource in addition to the resource reference.
Cardinality0...1
Typestring
SummaryTrue
Comments

This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it.

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.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.supportingInformation.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.supportingInformation.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.supportingInformation.reference
DefinitionA reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources.
Cardinality0...1
Typestring
SummaryTrue
Comments

Using absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading across closed eco-system boundaries. Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach. If the URL conforms to the structure "/[type]/[id]" then it should be assumed that the reference is to a FHIR RESTful server.

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.supportingInformation.type
DefinitionThe expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent. The type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. "Patient" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources).
Cardinality0...1
Typeuri
Binding

Aa resource (or, for logical models, the URI of the logical model).

ResourceType (extensible)
SummaryTrue
Comments

This element is used to indicate the type of the target of the reference. This may be used which ever of the other elements are populated (or not). In some cases, the type of the target may be determined by inspection of the reference (e.g. a RESTful URL) or by resolving the target of the reference; if both the type and a reference is provided, the reference SHALL resolve to a resource of the same type as that specified.

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.supportingInformation.identifier
DefinitionAn identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference.
Cardinality0...1
TypeIdentifier
SummaryTrue
Comments

When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy.

When both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference

Applications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it.

Reference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any).

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
  • rim: .identifier
MedicationDispense.supportingInformation.identifier.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.supportingInformation.identifier.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.supportingInformation.identifier.use
DefinitionThe purpose of this identifier.
Cardinality0...1
Typecode
Binding

Identifies the purpose for this identifier, if known .

IdentifierUse (required)
ModifierTrue
SummaryTrue
Requirements

Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers.

Comments

Applications can assume that an identifier is permanent unless it explicitly says that it is temporary.

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: Role.code or implied by context
MedicationDispense.supportingInformation.identifier.type
DefinitionA coded type for the identifier that can be used to determine which identifier to use for a specific purpose.
Cardinality0...1
TypeCodeableConcept
Binding

A coded type for an identifier that can be used to determine which identifier to use for a specific purpose.

Identifier Type Codes (extensible)
SummaryTrue
Requirements

Allows users to make use of identifiers when the identifier system is not known.

Comments

This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type.

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: CX.5
  • rim: Role.code or implied by context
MedicationDispense.supportingInformation.identifier.system
DefinitionEstablishes the namespace for the value - that is, a URL that describes a set values that are unique.
Cardinality0...1
Typeuri
SummaryTrue
Requirements

There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers.

Comments

Identifier.system is always case sensitive.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Examples
General

http://www.acme.com/identifiers/patient


Mappings
  • rim: n/a
  • v2: CX.4 / EI-2-4
  • rim: II.root or Role.id.root
  • servd: ./IdentifierType
MedicationDispense.supportingInformation.identifier.value
DefinitionThe portion of the identifier typically relevant to the user and which is unique within the context of the system.
Cardinality0...1
Typestring
SummaryTrue
Comments

If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Examples
General

123456


Mappings
  • rim: n/a
  • v2: CX.1 / EI.1
  • rim: II.extension or II.root if system indicates OID or GUID (Or Role.id.extension or root)
  • servd: ./Value
MedicationDispense.supportingInformation.identifier.period
DefinitionTime period during which identifier is/was valid for use.
Cardinality0...1
TypePeriod
SummaryTrue
Comments

A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times").

Period is not used for a duration (a measure of elapsed time). See Duration.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • per-1: If present, start SHALL have a lower value than end
    start.hasValue().not() or end.hasValue().not() or (start <= end)
Mappings
  • rim: n/a
  • v2: DR
  • rim: IVL<TS>[lowClosed="true" and highClosed="true"] or URG<TS>[lowClosed="true" and highClosed="true"]
  • v2: CX.7 + CX.8
  • rim: Role.effectiveTime or implied by context
  • servd: ./StartDate and ./EndDate
MedicationDispense.supportingInformation.identifier.assigner
DefinitionOrganization that issued/manages the identifier.
Cardinality0...1
TypeReference()
SummaryTrue
Comments

The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization.

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: CX.4 / (CX.4,CX.9,CX.10)
  • rim: II.assigningAuthorityName but note that this is an improper use by the definition of the field. Also Role.scoper
  • servd: ./IdentifierIssuingAuthority
MedicationDispense.supportingInformation.display
DefinitionPlain text narrative that identifies the resource in addition to the resource reference.
Cardinality0...1
Typestring
SummaryTrue
Comments

This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it.

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.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( | | )
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.performer.actor.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.actor.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.actor.reference
DefinitionA reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources.
Cardinality0...1
Typestring
SummaryTrue
Comments

Using absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading across closed eco-system boundaries. Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach. If the URL conforms to the structure "/[type]/[id]" then it should be assumed that the reference is to a FHIR RESTful server.

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.performer.actor.type
DefinitionThe expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent. The type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. "Patient" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources).
Cardinality0...1
Typeuri
Binding

Aa resource (or, for logical models, the URI of the logical model).

ResourceType (extensible)
SummaryTrue
Comments

This element is used to indicate the type of the target of the reference. This may be used which ever of the other elements are populated (or not). In some cases, the type of the target may be determined by inspection of the reference (e.g. a RESTful URL) or by resolving the target of the reference; if both the type and a reference is provided, the reference SHALL resolve to a resource of the same type as that specified.

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.performer.actor.identifier
DefinitionAn identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference.
Cardinality1...1
TypeIdentifier
SummaryTrue
Comments

When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy.

When both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference

Applications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it.

Reference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any).

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
  • rim: .identifier
MedicationDispense.performer.actor.identifier.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.actor.identifier.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.actor.identifier.use
DefinitionThe purpose of this identifier.
Cardinality0...1
Typecode
Binding

Identifies the purpose for this identifier, if known .

IdentifierUse (required)
ModifierTrue
SummaryTrue
Requirements

Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers.

Comments

Applications can assume that an identifier is permanent unless it explicitly says that it is temporary.

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: Role.code or implied by context
MedicationDispense.performer.actor.identifier.type
DefinitionA coded type for the identifier that can be used to determine which identifier to use for a specific purpose.
Cardinality0...1
TypeCodeableConcept
Binding

A coded type for an identifier that can be used to determine which identifier to use for a specific purpose.

Identifier Type Codes (extensible)
SummaryTrue
Requirements

Allows users to make use of identifiers when the identifier system is not known.

Comments

This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type.

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: CX.5
  • rim: Role.code or implied by context
MedicationDispense.performer.actor.identifier.system
DefinitionEstablishes the namespace for the value - that is, a URL that describes a set values that are unique.
Cardinality1...1
Typeuri
SummaryTrue
Requirements

There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers.

Comments

Identifier.system is always case sensitive.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Examples
General

http://www.acme.com/identifiers/patient


Mappings
  • rim: n/a
  • v2: CX.4 / EI-2-4
  • rim: II.root or Role.id.root
  • servd: ./IdentifierType
MedicationDispense.performer.actor.identifier.value
DefinitionThe portion of the identifier typically relevant to the user and which is unique within the context of the system.
Cardinality1...1
Typestring
SummaryTrue
Comments

If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Examples
General

123456


Mappings
  • rim: n/a
  • v2: CX.1 / EI.1
  • rim: II.extension or II.root if system indicates OID or GUID (Or Role.id.extension or root)
  • servd: ./Value
MedicationDispense.performer.actor.identifier.period
DefinitionTime period during which identifier is/was valid for use.
Cardinality0...1
TypePeriod
SummaryTrue
Comments

A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times").

Period is not used for a duration (a measure of elapsed time). See Duration.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • per-1: If present, start SHALL have a lower value than end
    start.hasValue().not() or end.hasValue().not() or (start <= end)
Mappings
  • rim: n/a
  • v2: DR
  • rim: IVL<TS>[lowClosed="true" and highClosed="true"] or URG<TS>[lowClosed="true" and highClosed="true"]
  • v2: CX.7 + CX.8
  • rim: Role.effectiveTime or implied by context
  • servd: ./StartDate and ./EndDate
MedicationDispense.performer.actor.identifier.assigner
DefinitionOrganization that issued/manages the identifier.
Cardinality0...1
TypeReference()
SummaryTrue
Comments

The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization.

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: CX.4 / (CX.4,CX.9,CX.10)
  • rim: II.assigningAuthorityName but note that this is an improper use by the definition of the field. Also Role.scoper
  • servd: ./IdentifierIssuingAuthority
MedicationDispense.performer.actor.display
DefinitionPlain text narrative that identifies the resource in addition to the resource reference.
Cardinality1...1
Typestring
SummaryTrue
Comments

This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it.

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.location
DefinitionThe principal physical location where the dispense was performed.
Cardinality0...1
TypeReference()
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.location.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.location.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.location.reference
DefinitionA reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources.
Cardinality0...1
Typestring
SummaryTrue
Comments

Using absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading across closed eco-system boundaries. Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach. If the URL conforms to the structure "/[type]/[id]" then it should be assumed that the reference is to a FHIR RESTful server.

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.location.type
DefinitionThe expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent. The type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. "Patient" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources).
Cardinality0...1
Typeuri
Binding

Aa resource (or, for logical models, the URI of the logical model).

ResourceType (extensible)
SummaryTrue
Comments

This element is used to indicate the type of the target of the reference. This may be used which ever of the other elements are populated (or not). In some cases, the type of the target may be determined by inspection of the reference (e.g. a RESTful URL) or by resolving the target of the reference; if both the type and a reference is provided, the reference SHALL resolve to a resource of the same type as that specified.

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.location.identifier
DefinitionAn identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference.
Cardinality0...1
TypeIdentifier
SummaryTrue
Comments

When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy.

When both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference

Applications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it.

Reference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any).

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
  • rim: .identifier
MedicationDispense.location.identifier.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.location.identifier.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.location.identifier.use
DefinitionThe purpose of this identifier.
Cardinality0...1
Typecode
Binding

Identifies the purpose for this identifier, if known .

IdentifierUse (required)
ModifierTrue
SummaryTrue
Requirements

Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers.

Comments

Applications can assume that an identifier is permanent unless it explicitly says that it is temporary.

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: Role.code or implied by context
MedicationDispense.location.identifier.type
DefinitionA coded type for the identifier that can be used to determine which identifier to use for a specific purpose.
Cardinality0...1
TypeCodeableConcept
Binding

A coded type for an identifier that can be used to determine which identifier to use for a specific purpose.

Identifier Type Codes (extensible)
SummaryTrue
Requirements

Allows users to make use of identifiers when the identifier system is not known.

Comments

This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type.

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: CX.5
  • rim: Role.code or implied by context
MedicationDispense.location.identifier.system
DefinitionEstablishes the namespace for the value - that is, a URL that describes a set values that are unique.
Cardinality0...1
Typeuri
SummaryTrue
Requirements

There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers.

Comments

Identifier.system is always case sensitive.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Examples
General

http://www.acme.com/identifiers/patient


Mappings
  • rim: n/a
  • v2: CX.4 / EI-2-4
  • rim: II.root or Role.id.root
  • servd: ./IdentifierType
MedicationDispense.location.identifier.value
DefinitionThe portion of the identifier typically relevant to the user and which is unique within the context of the system.
Cardinality0...1
Typestring
SummaryTrue
Comments

If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Examples
General

123456


Mappings
  • rim: n/a
  • v2: CX.1 / EI.1
  • rim: II.extension or II.root if system indicates OID or GUID (Or Role.id.extension or root)
  • servd: ./Value
MedicationDispense.location.identifier.period
DefinitionTime period during which identifier is/was valid for use.
Cardinality0...1
TypePeriod
SummaryTrue
Comments

A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times").

Period is not used for a duration (a measure of elapsed time). See Duration.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • per-1: If present, start SHALL have a lower value than end
    start.hasValue().not() or end.hasValue().not() or (start <= end)
Mappings
  • rim: n/a
  • v2: DR
  • rim: IVL<TS>[lowClosed="true" and highClosed="true"] or URG<TS>[lowClosed="true" and highClosed="true"]
  • v2: CX.7 + CX.8
  • rim: Role.effectiveTime or implied by context
  • servd: ./StartDate and ./EndDate
MedicationDispense.location.identifier.assigner
DefinitionOrganization that issued/manages the identifier.
Cardinality0...1
TypeReference()
SummaryTrue
Comments

The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization.

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: CX.4 / (CX.4,CX.9,CX.10)
  • rim: II.assigningAuthorityName but note that this is an improper use by the definition of the field. Also Role.scoper
  • servd: ./IdentifierIssuingAuthority
MedicationDispense.location.display
DefinitionPlain text narrative that identifies the resource in addition to the resource reference.
Cardinality0...1
Typestring
SummaryTrue
Comments

This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it.

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.authorizingPrescription
DefinitionIndicates the medication order that is being dispensed against.
Cardinality1...*
TypeReference()
Must SupportTrue
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.authorizingPrescription.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.authorizingPrescription.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.authorizingPrescription.extension:groupIdentifier
DefinitionOptional Extension Element - found in all resources.
Cardinality1...1
TypeExtension(Complex)
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.

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.authorizingPrescription.reference
DefinitionA reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources.
Cardinality0...1
Typestring
SummaryTrue
Comments

Using absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading across closed eco-system boundaries. Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach. If the URL conforms to the structure "/[type]/[id]" then it should be assumed that the reference is to a FHIR RESTful server.

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.authorizingPrescription.type
DefinitionThe expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent. The type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. "Patient" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources).
Cardinality0...1
Typeuri
Binding

Aa resource (or, for logical models, the URI of the logical model).

ResourceType (extensible)
SummaryTrue
Comments

This element is used to indicate the type of the target of the reference. This may be used which ever of the other elements are populated (or not). In some cases, the type of the target may be determined by inspection of the reference (e.g. a RESTful URL) or by resolving the target of the reference; if both the type and a reference is provided, the reference SHALL resolve to a resource of the same type as that specified.

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.authorizingPrescription.identifier
DefinitionAn identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference.
Cardinality1...1
TypeIdentifier
SummaryTrue
Comments

When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy.

When both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference

Applications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it.

Reference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any).

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
  • rim: .identifier
MedicationDispense.authorizingPrescription.identifier.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.authorizingPrescription.identifier.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.authorizingPrescription.identifier.use
DefinitionThe purpose of this identifier.
Cardinality0...1
Typecode
Binding

Identifies the purpose for this identifier, if known .

IdentifierUse (required)
ModifierTrue
SummaryTrue
Requirements

Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers.

Comments

Applications can assume that an identifier is permanent unless it explicitly says that it is temporary.

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: Role.code or implied by context
MedicationDispense.authorizingPrescription.identifier.type
DefinitionA coded type for the identifier that can be used to determine which identifier to use for a specific purpose.
Cardinality0...1
TypeCodeableConcept
Binding

A coded type for an identifier that can be used to determine which identifier to use for a specific purpose.

Identifier Type Codes (extensible)
SummaryTrue
Requirements

Allows users to make use of identifiers when the identifier system is not known.

Comments

This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type.

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: CX.5
  • rim: Role.code or implied by context
MedicationDispense.authorizingPrescription.identifier.system
DefinitionEstablishes the namespace for the value - that is, a URL that describes a set values that are unique.
Cardinality0...1
Typeuri
SummaryTrue
Requirements

There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers.

Comments

Identifier.system is always case sensitive.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Examples
General

http://www.acme.com/identifiers/patient


Mappings
  • rim: n/a
  • v2: CX.4 / EI-2-4
  • rim: II.root or Role.id.root
  • servd: ./IdentifierType
MedicationDispense.authorizingPrescription.identifier.value
DefinitionThe portion of the identifier typically relevant to the user and which is unique within the context of the system.
Cardinality0...1
Typestring
SummaryTrue
Comments

If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Examples
General

123456


Mappings
  • rim: n/a
  • v2: CX.1 / EI.1
  • rim: II.extension or II.root if system indicates OID or GUID (Or Role.id.extension or root)
  • servd: ./Value
MedicationDispense.authorizingPrescription.identifier.period
DefinitionTime period during which identifier is/was valid for use.
Cardinality0...1
TypePeriod
SummaryTrue
Comments

A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times").

Period is not used for a duration (a measure of elapsed time). See Duration.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • per-1: If present, start SHALL have a lower value than end
    start.hasValue().not() or end.hasValue().not() or (start <= end)
Mappings
  • rim: n/a
  • v2: DR
  • rim: IVL<TS>[lowClosed="true" and highClosed="true"] or URG<TS>[lowClosed="true" and highClosed="true"]
  • v2: CX.7 + CX.8
  • rim: Role.effectiveTime or implied by context
  • servd: ./StartDate and ./EndDate
MedicationDispense.authorizingPrescription.identifier.assigner
DefinitionOrganization that issued/manages the identifier.
Cardinality0...1
TypeReference()
SummaryTrue
Comments

The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization.

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: CX.4 / (CX.4,CX.9,CX.10)
  • rim: II.assigningAuthorityName but note that this is an improper use by the definition of the field. Also Role.scoper
  • servd: ./IdentifierIssuingAuthority
MedicationDispense.authorizingPrescription.display
DefinitionPlain text narrative that identifies the resource in addition to the resource reference.
Cardinality0...1
Typestring
SummaryTrue
Comments

This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it.

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

A ValueSet to identify the type of medication item status.

(required)
Must SupportTrue
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.type.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.type.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
MedicationDispense.type.coding
DefinitionA reference to a code defined by a terminology system.
Cardinality0...*
TypeCoding
SummaryTrue
Requirements

Allows for alternative encodings within a code system, and translations to other code systems.

Comments

Codes may be defined very casually in enumerations, or code lists, up to very formal definitions such as SNOMED CT - see the HL7 v3 Core Principles for more information. Ordering of codings is undefined and SHALL NOT be used to infer meaning. Generally, at most only one of the coding values will be labeled as UserSelected = true.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: C*E.1-8, C*E.10-22
  • rim: union(., ./translation)
  • orim: fhir:CodeableConcept.coding rdfs:subPropertyOf dt:CD.coding
MedicationDispense.type.coding.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.type.coding.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
MedicationDispense.type.coding.system
DefinitionThe identification of the code system that defines the meaning of the symbol in the code.
Cardinality1...1
Typeuri
SummaryTrue
Requirements

Need to be unambiguous about the source of the definition of the symbol.

Comments

The URI may be an OID (urn:oid:...) or a UUID (urn:uuid:...). OIDs and UUIDs SHALL be references to the HL7 OID registry. Otherwise, the URI should come from HL7's list of FHIR defined special URIs or it should reference to some definition that establishes the system clearly and unambiguously.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: C*E.3
  • rim: ./codeSystem
  • orim: fhir:Coding.system rdfs:subPropertyOf dt:CDCoding.codeSystem
MedicationDispense.type.coding.version
DefinitionThe version of the code system which was used when choosing this code. Note that a well-maintained code system does not need the version reported, because the meaning of codes is consistent across versions. However this cannot consistently be assured, and when the meaning is not guaranteed to be consistent, the version SHOULD be exchanged.
Cardinality0...1
Typestring
SummaryTrue
Comments

Where the terminology does not clearly define what string should be used to identify code system versions, the recommendation is to use the date (expressed in FHIR date format) on which that version was officially published as the version date.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: C*E.7
  • rim: ./codeSystemVersion
  • orim: fhir:Coding.version rdfs:subPropertyOf dt:CDCoding.codeSystemVersion
MedicationDispense.type.coding.code
DefinitionA symbol in syntax defined by the system. The symbol may be a predefined code or an expression in a syntax defined by the coding system (e.g. post-coordination).
Cardinality1...1
Typecode
SummaryTrue
Requirements

Need to refer to a particular code in the system.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: C*E.1
  • rim: ./code
  • orim: fhir:Coding.code rdfs:subPropertyOf dt:CDCoding.code
MedicationDispense.type.coding.display
DefinitionA representation of the meaning of the code in the system, following the rules of the system.
Cardinality0...1
Typestring
SummaryTrue
Requirements

Need to be able to carry a human-readable meaning of the code for readers that do not know the system.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: C*E.2 - but note this is not well followed
  • rim: CV.displayName
  • orim: fhir:Coding.display rdfs:subPropertyOf dt:CDCoding.displayName
MedicationDispense.type.coding.userSelected
DefinitionIndicates that this coding was chosen by a user directly - e.g. off a pick list of available items (codes or displays).
Cardinality0...1
Typeboolean
SummaryTrue
Requirements

This has been identified as a clinical safety criterium - that this exact system/code pair was chosen explicitly, rather than inferred by the system based on some rules or language processing.

Comments

Amongst a set of alternatives, a directly chosen code is the most appropriate starting point for new translations. There is some ambiguity about what exactly 'directly chosen' implies, and trading partner agreement may be needed to clarify the use of this element and its consequences more completely.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: Sometimes implied by being first
  • rim: CD.codingRationale
  • orim: fhir:Coding.userSelected fhir:mapsTo dt:CDCoding.codingRationale. fhir:Coding.userSelected fhir:hasMap fhir:Coding.userSelected.map. fhir:Coding.userSelected.map a fhir:Map; fhir:target dt:CDCoding.codingRationale. fhir:Coding.userSelected\#true a [ fhir:source "true"; fhir:target dt:CDCoding.codingRationale\#O ]
MedicationDispense.type.text
DefinitionA human language representation of the concept as seen/selected/uttered by the user who entered the data and/or which represents the intended meaning of the user.
Cardinality0...1
Typestring
SummaryTrue
Requirements

The codes from the terminologies do not always capture the correct meaning with all the nuances of the human using them, or sometimes there is no appropriate code at all. In these cases, the text is used to capture the full meaning of the source.

Comments

Very often the text is the same as a displayName of one of the codings.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: C*E.9. But note many systems use C*E.2 for this
  • rim: ./originalText[mediaType/code="text/plain"]/data
  • orim: fhir:CodeableConcept.text rdfs:subPropertyOf dt:CD.originalText
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.quantity.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.quantity.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
MedicationDispense.quantity.extension:runningTotal
DefinitionOptional Extension Element - found in all resources.
Cardinality0...1
TypeExtension(Quantity)
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.

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.quantity.value
DefinitionThe value of the measured amount. The value includes an implicit precision in the presentation of the value.
Cardinality1...1
Typedecimal
SummaryTrue
Requirements

Precision is handled implicitly in almost all cases of measurement.

Comments

The implicit precision in the value should always be honored. Monetary values have their own rules for handling precision (refer to standard accounting text books).

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: SN.2 / CQ - N/A
  • rim: PQ.value, CO.value, MO.value, IVL.high or IVL.low depending on the value
MedicationDispense.quantity.comparator
DefinitionNot allowed to be used in this context
Cardinality0...0
Typecode
Binding

How the Quantity should be understood and represented.

QuantityComparator (required)
ModifierTrue
SummaryTrue
Requirements

Need a framework for handling measures where the value is <5ug/L or >400mg/L due to the limitations of measuring methodology.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: SN.1 / CQ.1
  • rim: IVL properties
MedicationDispense.quantity.unit
DefinitionA human-readable form of the unit.
Cardinality1...1
Typestring
SummaryTrue
Requirements

There are many representations for units of measure and in many contexts, particular representations are fixed and required. I.e. mcg for micrograms.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: (see OBX.6 etc.) / CQ.2
  • rim: PQ.unit
MedicationDispense.quantity.system
DefinitionThe identification of the system that provides the coded form of the unit.
Cardinality1...1
Typeuri
SummaryTrue
Requirements

Need to know the system that defines the coded form of the unit.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: (see OBX.6 etc.) / CQ.2
  • rim: CO.codeSystem, PQ.translation.codeSystem
MedicationDispense.quantity.code
DefinitionA computer processable form of the unit in some unit representation system.
Cardinality1...1
Typecode
SummaryTrue
Requirements

Need a computable form of the unit that is fixed across all forms. UCUM provides this for quantities, but SNOMED CT provides many units of interest.

Comments

The preferred system is UCUM, but SNOMED CT can also be used (for customary units) or ISO 4217 for currency. The context of use may additionally require a code from a particular system.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: (see OBX.6 etc.) / CQ.2
  • rim: PQ.code, MO.currency, PQ.translation.code
MedicationDispense.daysSupply
DefinitionThe amount of medication expressed as a timing amount.
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: 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()
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.destination.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.destination.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.destination.reference
DefinitionA reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources.
Cardinality0...1
Typestring
SummaryTrue
Comments

Using absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading across closed eco-system boundaries. Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach. If the URL conforms to the structure "/[type]/[id]" then it should be assumed that the reference is to a FHIR RESTful server.

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.destination.type
DefinitionThe expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent. The type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. "Patient" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources).
Cardinality0...1
Typeuri
Binding

Aa resource (or, for logical models, the URI of the logical model).

ResourceType (extensible)
SummaryTrue
Comments

This element is used to indicate the type of the target of the reference. This may be used which ever of the other elements are populated (or not). In some cases, the type of the target may be determined by inspection of the reference (e.g. a RESTful URL) or by resolving the target of the reference; if both the type and a reference is provided, the reference SHALL resolve to a resource of the same type as that specified.

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.destination.identifier
DefinitionAn identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference.
Cardinality0...1
TypeIdentifier
SummaryTrue
Comments

When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy.

When both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference

Applications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it.

Reference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any).

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
  • rim: .identifier
MedicationDispense.destination.identifier.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.destination.identifier.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.destination.identifier.use
DefinitionThe purpose of this identifier.
Cardinality0...1
Typecode
Binding

Identifies the purpose for this identifier, if known .

IdentifierUse (required)
ModifierTrue
SummaryTrue
Requirements

Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers.

Comments

Applications can assume that an identifier is permanent unless it explicitly says that it is temporary.

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: Role.code or implied by context
MedicationDispense.destination.identifier.type
DefinitionA coded type for the identifier that can be used to determine which identifier to use for a specific purpose.
Cardinality0...1
TypeCodeableConcept
Binding

A coded type for an identifier that can be used to determine which identifier to use for a specific purpose.

Identifier Type Codes (extensible)
SummaryTrue
Requirements

Allows users to make use of identifiers when the identifier system is not known.

Comments

This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type.

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: CX.5
  • rim: Role.code or implied by context
MedicationDispense.destination.identifier.system
DefinitionEstablishes the namespace for the value - that is, a URL that describes a set values that are unique.
Cardinality0...1
Typeuri
SummaryTrue
Requirements

There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers.

Comments

Identifier.system is always case sensitive.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Examples
General

http://www.acme.com/identifiers/patient


Mappings
  • rim: n/a
  • v2: CX.4 / EI-2-4
  • rim: II.root or Role.id.root
  • servd: ./IdentifierType
MedicationDispense.destination.identifier.value
DefinitionThe portion of the identifier typically relevant to the user and which is unique within the context of the system.
Cardinality0...1
Typestring
SummaryTrue
Comments

If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Examples
General

123456


Mappings
  • rim: n/a
  • v2: CX.1 / EI.1
  • rim: II.extension or II.root if system indicates OID or GUID (Or Role.id.extension or root)
  • servd: ./Value
MedicationDispense.destination.identifier.period
DefinitionTime period during which identifier is/was valid for use.
Cardinality0...1
TypePeriod
SummaryTrue
Comments

A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times").

Period is not used for a duration (a measure of elapsed time). See Duration.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • per-1: If present, start SHALL have a lower value than end
    start.hasValue().not() or end.hasValue().not() or (start <= end)
Mappings
  • rim: n/a
  • v2: DR
  • rim: IVL<TS>[lowClosed="true" and highClosed="true"] or URG<TS>[lowClosed="true" and highClosed="true"]
  • v2: CX.7 + CX.8
  • rim: Role.effectiveTime or implied by context
  • servd: ./StartDate and ./EndDate
MedicationDispense.destination.identifier.assigner
DefinitionOrganization that issued/manages the identifier.
Cardinality0...1
TypeReference()
SummaryTrue
Comments

The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization.

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: CX.4 / (CX.4,CX.9,CX.10)
  • rim: II.assigningAuthorityName but note that this is an improper use by the definition of the field. Also Role.scoper
  • servd: ./IdentifierIssuingAuthority
MedicationDispense.destination.display
DefinitionPlain text narrative that identifies the resource in addition to the resource reference.
Cardinality0...1
Typestring
SummaryTrue
Comments

This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it.

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.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...1
TypeReference( | )
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.receiver.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.receiver.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.receiver.reference
DefinitionA reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources.
Cardinality0...1
Typestring
SummaryTrue
Comments

Using absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading across closed eco-system boundaries. Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach. If the URL conforms to the structure "/[type]/[id]" then it should be assumed that the reference is to a FHIR RESTful server.

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.receiver.type
DefinitionThe expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent. The type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. "Patient" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources).
Cardinality0...1
Typeuri
Binding

Aa resource (or, for logical models, the URI of the logical model).

ResourceType (extensible)
SummaryTrue
Comments

This element is used to indicate the type of the target of the reference. This may be used which ever of the other elements are populated (or not). In some cases, the type of the target may be determined by inspection of the reference (e.g. a RESTful URL) or by resolving the target of the reference; if both the type and a reference is provided, the reference SHALL resolve to a resource of the same type as that specified.

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.receiver.identifier
DefinitionAn identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference.
Cardinality0...1
TypeIdentifier
SummaryTrue
Comments

When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy.

When both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference

Applications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it.

Reference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any).

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
  • rim: .identifier
MedicationDispense.receiver.identifier.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.receiver.identifier.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.receiver.identifier.use
DefinitionThe purpose of this identifier.
Cardinality0...1
Typecode
Binding

Identifies the purpose for this identifier, if known .

IdentifierUse (required)
ModifierTrue
SummaryTrue
Requirements

Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers.

Comments

Applications can assume that an identifier is permanent unless it explicitly says that it is temporary.

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: Role.code or implied by context
MedicationDispense.receiver.identifier.type
DefinitionA coded type for the identifier that can be used to determine which identifier to use for a specific purpose.
Cardinality0...1
TypeCodeableConcept
Binding

A coded type for an identifier that can be used to determine which identifier to use for a specific purpose.

Identifier Type Codes (extensible)
SummaryTrue
Requirements

Allows users to make use of identifiers when the identifier system is not known.

Comments

This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type.

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: CX.5
  • rim: Role.code or implied by context
MedicationDispense.receiver.identifier.system
DefinitionEstablishes the namespace for the value - that is, a URL that describes a set values that are unique.
Cardinality0...1
Typeuri
SummaryTrue
Requirements

There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers.

Comments

Identifier.system is always case sensitive.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Examples
General

http://www.acme.com/identifiers/patient


Mappings
  • rim: n/a
  • v2: CX.4 / EI-2-4
  • rim: II.root or Role.id.root
  • servd: ./IdentifierType
MedicationDispense.receiver.identifier.value
DefinitionThe portion of the identifier typically relevant to the user and which is unique within the context of the system.
Cardinality0...1
Typestring
SummaryTrue
Comments

If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Examples
General

123456


Mappings
  • rim: n/a
  • v2: CX.1 / EI.1
  • rim: II.extension or II.root if system indicates OID or GUID (Or Role.id.extension or root)
  • servd: ./Value
MedicationDispense.receiver.identifier.period
DefinitionTime period during which identifier is/was valid for use.
Cardinality0...1
TypePeriod
SummaryTrue
Comments

A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times").

Period is not used for a duration (a measure of elapsed time). See Duration.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • per-1: If present, start SHALL have a lower value than end
    start.hasValue().not() or end.hasValue().not() or (start <= end)
Mappings
  • rim: n/a
  • v2: DR
  • rim: IVL<TS>[lowClosed="true" and highClosed="true"] or URG<TS>[lowClosed="true" and highClosed="true"]
  • v2: CX.7 + CX.8
  • rim: Role.effectiveTime or implied by context
  • servd: ./StartDate and ./EndDate
MedicationDispense.receiver.identifier.assigner
DefinitionOrganization that issued/manages the identifier.
Cardinality0...1
TypeReference()
SummaryTrue
Comments

The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization.

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: CX.4 / (CX.4,CX.9,CX.10)
  • rim: II.assigningAuthorityName but note that this is an improper use by the definition of the field. Also Role.scoper
  • servd: ./IdentifierIssuingAuthority
MedicationDispense.receiver.display
DefinitionPlain text narrative that identifies the resource in addition to the resource reference.
Cardinality0...1
Typestring
SummaryTrue
Comments

This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it.

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.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.note.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.note.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.note.author[x]
DefinitionThe individual responsible for making the annotation.
Cardinality0...1
TypeReference( | | | )
SummaryTrue
Comments

Organization is used when there's no need for specific attribution as to who made the comment.

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: N/A
  • rim: Act.participant[typeCode=AUT].role
MedicationDispense.note.time
DefinitionIndicates when this particular annotation was made.
Cardinality0...1
TypedateTime
SummaryTrue
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.effectiveTime
MedicationDispense.note.text
DefinitionThe text of the annotation in markdown format.
Cardinality1...1
Typemarkdown
SummaryTrue
Comments

Systems are not required to have markdown support, so the text should be readable without markdown processing. The markdown syntax is GFM - see https://github.github.com/gfm/

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

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: TQ1-1
  • rim: .text
MedicationDispense.dosageInstruction.text
DefinitionFree text dosage instructions e.g. SIG.
Cardinality1...1
Typestring
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.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • 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
  • v2: RXO-7
  • rim: .text
MedicationDispense.dosageInstruction.patientInstruction
DefinitionInstructions in terms that are understood by the patient or consumer.
Cardinality0...1
Typestring
SummaryTrue
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: RXO-7
  • rim: .text
MedicationDispense.dosageInstruction.timing
DefinitionWhen medication should be administered.
Cardinality0...1
TypeTiming
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: .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 (example)
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
  • 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.

SNOMEDCTAnatomicalStructureForAdministrationSiteCodes (example)
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
  • 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.

SNOMEDCTRouteCodes (example)
SummaryTrue
Requirements

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

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • 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.

SNOMEDCTAdministrationMethodCodes (example)
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
  • v2: RXR-4
  • rim: .doseQuantity
MedicationDispense.dosageInstruction.doseAndRate
DefinitionThe amount of medication administered.
Cardinality0...*
TypeElement
SummaryTrue
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • 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
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".

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: RXO-21; RXE-23
MedicationDispense.dosageInstruction.doseAndRate.dose[x]
DefinitionAmount of medication per dose.
Cardinality0...1
TypeRange
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
  • v2: RXO-2, RXE-3
  • rim: .doseQuantity
MedicationDispense.dosageInstruction.doseAndRate.rate[x]
DefinitionAmount of medication per unit of time.
Cardinality0...1
TypeRatio
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
  • 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())
Mappings
  • 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())
Mappings
  • 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.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • 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( | )
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.substitution.responsibleParty.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.responsibleParty.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.responsibleParty.reference
DefinitionA reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources.
Cardinality0...1
Typestring
SummaryTrue
Comments

Using absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading across closed eco-system boundaries. Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach. If the URL conforms to the structure "/[type]/[id]" then it should be assumed that the reference is to a FHIR RESTful server.

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.substitution.responsibleParty.type
DefinitionThe expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent. The type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. "Patient" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources).
Cardinality0...1
Typeuri
Binding

Aa resource (or, for logical models, the URI of the logical model).

ResourceType (extensible)
SummaryTrue
Comments

This element is used to indicate the type of the target of the reference. This may be used which ever of the other elements are populated (or not). In some cases, the type of the target may be determined by inspection of the reference (e.g. a RESTful URL) or by resolving the target of the reference; if both the type and a reference is provided, the reference SHALL resolve to a resource of the same type as that specified.

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.substitution.responsibleParty.identifier
DefinitionAn identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference.
Cardinality0...1
TypeIdentifier
SummaryTrue
Comments

When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy.

When both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference

Applications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it.

Reference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any).

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
  • rim: .identifier
MedicationDispense.substitution.responsibleParty.identifier.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.responsibleParty.identifier.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.responsibleParty.identifier.use
DefinitionThe purpose of this identifier.
Cardinality0...1
Typecode
Binding

Identifies the purpose for this identifier, if known .

IdentifierUse (required)
ModifierTrue
SummaryTrue
Requirements

Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers.

Comments

Applications can assume that an identifier is permanent unless it explicitly says that it is temporary.

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: Role.code or implied by context
MedicationDispense.substitution.responsibleParty.identifier.type
DefinitionA coded type for the identifier that can be used to determine which identifier to use for a specific purpose.
Cardinality0...1
TypeCodeableConcept
Binding

A coded type for an identifier that can be used to determine which identifier to use for a specific purpose.

Identifier Type Codes (extensible)
SummaryTrue
Requirements

Allows users to make use of identifiers when the identifier system is not known.

Comments

This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type.

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: CX.5
  • rim: Role.code or implied by context
MedicationDispense.substitution.responsibleParty.identifier.system
DefinitionEstablishes the namespace for the value - that is, a URL that describes a set values that are unique.
Cardinality0...1
Typeuri
SummaryTrue
Requirements

There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers.

Comments

Identifier.system is always case sensitive.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Examples
General

http://www.acme.com/identifiers/patient


Mappings
  • rim: n/a
  • v2: CX.4 / EI-2-4
  • rim: II.root or Role.id.root
  • servd: ./IdentifierType
MedicationDispense.substitution.responsibleParty.identifier.value
DefinitionThe portion of the identifier typically relevant to the user and which is unique within the context of the system.
Cardinality0...1
Typestring
SummaryTrue
Comments

If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Examples
General

123456


Mappings
  • rim: n/a
  • v2: CX.1 / EI.1
  • rim: II.extension or II.root if system indicates OID or GUID (Or Role.id.extension or root)
  • servd: ./Value
MedicationDispense.substitution.responsibleParty.identifier.period
DefinitionTime period during which identifier is/was valid for use.
Cardinality0...1
TypePeriod
SummaryTrue
Comments

A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times").

Period is not used for a duration (a measure of elapsed time). See Duration.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • per-1: If present, start SHALL have a lower value than end
    start.hasValue().not() or end.hasValue().not() or (start <= end)
Mappings
  • rim: n/a
  • v2: DR
  • rim: IVL<TS>[lowClosed="true" and highClosed="true"] or URG<TS>[lowClosed="true" and highClosed="true"]
  • v2: CX.7 + CX.8
  • rim: Role.effectiveTime or implied by context
  • servd: ./StartDate and ./EndDate
MedicationDispense.substitution.responsibleParty.identifier.assigner
DefinitionOrganization that issued/manages the identifier.
Cardinality0...1
TypeReference()
SummaryTrue
Comments

The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization.

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: CX.4 / (CX.4,CX.9,CX.10)
  • rim: II.assigningAuthorityName but note that this is an improper use by the definition of the field. Also Role.scoper
  • servd: ./IdentifierIssuingAuthority
MedicationDispense.substitution.responsibleParty.display
DefinitionPlain text narrative that identifies the resource in addition to the resource reference.
Cardinality0...1
Typestring
SummaryTrue
Comments

This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it.

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.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.detectedIssue.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.detectedIssue.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.detectedIssue.reference
DefinitionA reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources.
Cardinality0...1
Typestring
SummaryTrue
Comments

Using absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading across closed eco-system boundaries. Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach. If the URL conforms to the structure "/[type]/[id]" then it should be assumed that the reference is to a FHIR RESTful server.

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.detectedIssue.type
DefinitionThe expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent. The type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. "Patient" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources).
Cardinality0...1
Typeuri
Binding

Aa resource (or, for logical models, the URI of the logical model).

ResourceType (extensible)
SummaryTrue
Comments

This element is used to indicate the type of the target of the reference. This may be used which ever of the other elements are populated (or not). In some cases, the type of the target may be determined by inspection of the reference (e.g. a RESTful URL) or by resolving the target of the reference; if both the type and a reference is provided, the reference SHALL resolve to a resource of the same type as that specified.

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.detectedIssue.identifier
DefinitionAn identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference.
Cardinality0...1
TypeIdentifier
SummaryTrue
Comments

When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy.

When both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference

Applications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it.

Reference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any).

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
  • rim: .identifier
MedicationDispense.detectedIssue.identifier.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.detectedIssue.identifier.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.detectedIssue.identifier.use
DefinitionThe purpose of this identifier.
Cardinality0...1
Typecode
Binding

Identifies the purpose for this identifier, if known .

IdentifierUse (required)
ModifierTrue
SummaryTrue
Requirements

Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers.

Comments

Applications can assume that an identifier is permanent unless it explicitly says that it is temporary.

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: Role.code or implied by context
MedicationDispense.detectedIssue.identifier.type
DefinitionA coded type for the identifier that can be used to determine which identifier to use for a specific purpose.
Cardinality0...1
TypeCodeableConcept
Binding

A coded type for an identifier that can be used to determine which identifier to use for a specific purpose.

Identifier Type Codes (extensible)
SummaryTrue
Requirements

Allows users to make use of identifiers when the identifier system is not known.

Comments

This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type.

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: CX.5
  • rim: Role.code or implied by context
MedicationDispense.detectedIssue.identifier.system
DefinitionEstablishes the namespace for the value - that is, a URL that describes a set values that are unique.
Cardinality0...1
Typeuri
SummaryTrue
Requirements

There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers.

Comments

Identifier.system is always case sensitive.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Examples
General

http://www.acme.com/identifiers/patient


Mappings
  • rim: n/a
  • v2: CX.4 / EI-2-4
  • rim: II.root or Role.id.root
  • servd: ./IdentifierType
MedicationDispense.detectedIssue.identifier.value
DefinitionThe portion of the identifier typically relevant to the user and which is unique within the context of the system.
Cardinality0...1
Typestring
SummaryTrue
Comments

If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Examples
General

123456


Mappings
  • rim: n/a
  • v2: CX.1 / EI.1
  • rim: II.extension or II.root if system indicates OID or GUID (Or Role.id.extension or root)
  • servd: ./Value
MedicationDispense.detectedIssue.identifier.period
DefinitionTime period during which identifier is/was valid for use.
Cardinality0...1
TypePeriod
SummaryTrue
Comments

A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times").

Period is not used for a duration (a measure of elapsed time). See Duration.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • per-1: If present, start SHALL have a lower value than end
    start.hasValue().not() or end.hasValue().not() or (start <= end)
Mappings
  • rim: n/a
  • v2: DR
  • rim: IVL<TS>[lowClosed="true" and highClosed="true"] or URG<TS>[lowClosed="true" and highClosed="true"]
  • v2: CX.7 + CX.8
  • rim: Role.effectiveTime or implied by context
  • servd: ./StartDate and ./EndDate
MedicationDispense.detectedIssue.identifier.assigner
DefinitionOrganization that issued/manages the identifier.
Cardinality0...1
TypeReference()
SummaryTrue
Comments

The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization.

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: CX.4 / (CX.4,CX.9,CX.10)
  • rim: II.assigningAuthorityName but note that this is an improper use by the definition of the field. Also Role.scoper
  • servd: ./IdentifierIssuingAuthority
MedicationDispense.detectedIssue.display
DefinitionPlain text narrative that identifies the resource in addition to the resource reference.
Cardinality0...1
Typestring
SummaryTrue
Comments

This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it.

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.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]
MedicationDispense.eventHistory.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.eventHistory.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.eventHistory.reference
DefinitionA reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources.
Cardinality0...1
Typestring
SummaryTrue
Comments

Using absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading across closed eco-system boundaries. Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach. If the URL conforms to the structure "/[type]/[id]" then it should be assumed that the reference is to a FHIR RESTful server.

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.eventHistory.type
DefinitionThe expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent. The type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. "Patient" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources).
Cardinality0...1
Typeuri
Binding

Aa resource (or, for logical models, the URI of the logical model).

ResourceType (extensible)
SummaryTrue
Comments

This element is used to indicate the type of the target of the reference. This may be used which ever of the other elements are populated (or not). In some cases, the type of the target may be determined by inspection of the reference (e.g. a RESTful URL) or by resolving the target of the reference; if both the type and a reference is provided, the reference SHALL resolve to a resource of the same type as that specified.

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.eventHistory.identifier
DefinitionAn identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference.
Cardinality0...1
TypeIdentifier
SummaryTrue
Comments

When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy.

When both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference

Applications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it.

Reference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any).

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
  • rim: .identifier
MedicationDispense.eventHistory.identifier.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.eventHistory.identifier.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.eventHistory.identifier.use
DefinitionThe purpose of this identifier.
Cardinality0...1
Typecode
Binding

Identifies the purpose for this identifier, if known .

IdentifierUse (required)
ModifierTrue
SummaryTrue
Requirements

Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers.

Comments

Applications can assume that an identifier is permanent unless it explicitly says that it is temporary.

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: Role.code or implied by context
MedicationDispense.eventHistory.identifier.type
DefinitionA coded type for the identifier that can be used to determine which identifier to use for a specific purpose.
Cardinality0...1
TypeCodeableConcept
Binding

A coded type for an identifier that can be used to determine which identifier to use for a specific purpose.

Identifier Type Codes (extensible)
SummaryTrue
Requirements

Allows users to make use of identifiers when the identifier system is not known.

Comments

This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type.

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: CX.5
  • rim: Role.code or implied by context
MedicationDispense.eventHistory.identifier.system
DefinitionEstablishes the namespace for the value - that is, a URL that describes a set values that are unique.
Cardinality0...1
Typeuri
SummaryTrue
Requirements

There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers.

Comments

Identifier.system is always case sensitive.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Examples
General

http://www.acme.com/identifiers/patient


Mappings
  • rim: n/a
  • v2: CX.4 / EI-2-4
  • rim: II.root or Role.id.root
  • servd: ./IdentifierType
MedicationDispense.eventHistory.identifier.value
DefinitionThe portion of the identifier typically relevant to the user and which is unique within the context of the system.
Cardinality0...1
Typestring
SummaryTrue
Comments

If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Examples
General

123456


Mappings
  • rim: n/a
  • v2: CX.1 / EI.1
  • rim: II.extension or II.root if system indicates OID or GUID (Or Role.id.extension or root)
  • servd: ./Value
MedicationDispense.eventHistory.identifier.period
DefinitionTime period during which identifier is/was valid for use.
Cardinality0...1
TypePeriod
SummaryTrue
Comments

A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times").

Period is not used for a duration (a measure of elapsed time). See Duration.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • per-1: If present, start SHALL have a lower value than end
    start.hasValue().not() or end.hasValue().not() or (start <= end)
Mappings
  • rim: n/a
  • v2: DR
  • rim: IVL<TS>[lowClosed="true" and highClosed="true"] or URG<TS>[lowClosed="true" and highClosed="true"]
  • v2: CX.7 + CX.8
  • rim: Role.effectiveTime or implied by context
  • servd: ./StartDate and ./EndDate
MedicationDispense.eventHistory.identifier.assigner
DefinitionOrganization that issued/manages the identifier.
Cardinality0...1
TypeReference()
SummaryTrue
Comments

The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization.

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: CX.4 / (CX.4,CX.9,CX.10)
  • rim: II.assigningAuthorityName but note that this is an improper use by the definition of the field. Also Role.scoper
  • servd: ./IdentifierIssuingAuthority
MedicationDispense.eventHistory.display
DefinitionPlain text narrative that identifies the resource in addition to the resource reference.
Cardinality0...1
Typestring
SummaryTrue
Comments

This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it.

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


See examples in dispense-notification



Must Support, Optional and Not Supported

Elements marked with a S MUST be supported by both producing and receiving systems. They should be populated if the data exists or the profile has made them mandatory.

The following elements SHOULD NOT are not expected to be supported by consuming or receiving systems.

  • detectedIssue

Elements that are neither marked as Must Support or listed as unsupported are optional. At present they will not be processed by EPS, however the intention is a future version of EPS will pass all elements to recipients. It is recommended these elements are populated from the guidance in UKCore Medicines


prescriptionStatus (extension)

This is the overall status of the prescription-order, it is not the status of the individual prescription item. This is a code from DM-Task-Status-Reason, all prescription status reasons in a dispense-notification FHIR Message Bundle must be the same.

"extension": [
    {
        "url": "https://fhir.nhs.uk/StructureDefinition/Extension-EPS-TaskBusinessStatus",
        "valueCoding": {
            "system": "https://fhir.nhs.uk/CodeSystem/EPS-task-business-status",
            "code": "0003",
            "display": "With Dispenser - Active"
        }
    }
]


repeatInformation (extension)

The extension Extension-EPS-RepeatInformation is mandatory for continuous and continuous-repeat-dispensing. The following elements MUST be populated

  • numberofRepeatsAllowed
  • numberOfRepeatsIssued
"extension": [
    {
        "url": "https://fhir.nhs.uk/StructureDefinition/Extension-EPS-RepeatInformation",
        "extension": [
            {
                "url" : "numberOfRepeatsAllowed",
                "valueInteger" : 3
            },
            {
                "url" : "numberOfRepeatsIssued",
                "valueInteger" : 2
            }
        ]
    }
]


identifier

Each MedicationDispense MUST be identified by an Universal Unique Identifiers (UUIDs) with a system of https://fhir.nhs.uk/Id/prescription-dispense-item-number

UUID example (for illustration purposes only);

4509B70D-D8B8-EA03-1105-64557CB54A29

 "identifier":  [
    {
        "system": "https://fhir.nhs.uk/Id/prescription-dispense-item-number",
        "value": "4509B70D-D8B8-EA03-1105-64557CB54A29"
    }
]


status (Dispense status)

The status of the individual medication item, this will normally indicate whether the medication has been picked up or not. The full set of statuses is MedicationDispense Status Codes

Code Display Definition
completed Completed The dispensed product has been picked up.
in-progress In Progress The dispensed product is ready for pickup.

Example:

"status": "completed"


medication[x]

Actual Medical Product Packs (AMPP) SHOULD be used. The ValueSet for medication is DM-MedicationDispense-Code It is valid to include a FHIR Medication resource within the FHIR Message, this practice is discouraged to simplify handling of the event messages.

See also Dispensing

dm+d Category dm+d Description UK SNOMED Members Of
VMPP Virtual Medical Product Pack 999000571000001104
AMPP Actual Medical Product Pack 999000551000001106
VMP Virtual Medical Product 999000561000001109
AMP Actual Medical Product 999000541000001108

"medicationCodeableConcept": {
        "coding":  [
        {
            "system": "http://snomed.info/sct",
            "code": "10460811000001109",
            "display": "Amoxil 500mg capsules (Dowelhurst Ltd) 12 capsule"
        }
    ]
}


subject (patient)

A reference to the patient via a traced NHS Number is required, an untraced NHS Number MUST NOT be used. This can be sent in two ways, first option is via a identifier reference. Only the NHS Number. Full example: 1st dispense event - partial

"subject": {
    "type": "Patient",
    "identifier": {
        "system": "https://fhir.nhs.uk/Id/nhs-number",
        "value": "2300992742"
    }
}

Second option uses a FHIR Patient resource to convey the NHS Number.
Full example: 1st dispense event - partial with Patient Resource The reference in the MedicationDispesnse is now a resource reference.

 "subject": {
                    "type": "Patient",
                    "reference": "urn:uuid:bde9eba6-079f-4210-8108-6ea8db58de8c",
                    "display": "Miss Bernie Kanfeld"
                }

The NHS Number has moved to the Patient resource alongside other patient identifiers such as MRN. E.g.

"fullUrl": "urn:uuid:bde9eba6-079f-4210-8108-6ea8db58de8c",
"resource": {
                "resourceType": "Patient",
                "identifier": [
                    {
                        "extension": [
                            {
                                "url": "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-NHSNumberVerificationStatus",
                                "valueCodeableConcept": {
                                    "coding": [
                                        {
                                            "system": "https://fhir.hl7.org.uk/CodeSystem/UKCore-NHSNumberVerificationStatus",
                                            "code": "01",
                                            "display": "Number present and verified"
                                        }
                                    ]
                                }
                            }
                        ],
                        "system": "https://fhir.nhs.uk/Id/nhs-number",
                        "value": "9876543210"
                    },
                    {
                        "system": "https://fhir.leedsth.nhs.uk/Id/pas-number",
                        "value": "ABC8650149"
                    },
                    {
                        "system": "https://fhir.leedsth.nhs.uk/Id/PPMIdentifier",
                        "value": "1"
                    }
                ],
               ... other elements removed from example.
            }

It is anticipated that hospital pharmacies will prefer the later option for compatibility with other systems. Community pharmacies are anticipated to prefer the former option.


performer (Pharmacist and Pharmacy)

The pharmacist and pharmacy MUST be present and MUST use identifier references. This means FHIR Practitioner, Organization and PractitionerRole resource are not included in the FHIR Message. Professional codes and ODS codes should be used instead. sds-user-role-id is permitted to identify a Practitioner(& Role) but professional codes are preferred to support wider NHS interoperability.

 "performer": [
                    {
                        "actor": {
                            "type" : "Practitioner",
                            "identifier":  {
                                "system": "https://fhir.hl7.org.uk/Id/gphc-number",
                                "value": "7654321"
                            },
                            "display": "Mr Peter Potion"
                        }
                    },
                    {
                        "actor": {
                            "type": "Organization",
                            "identifier": {
                                "system": "https://fhir.nhs.uk/Id/ods-organization-code",
                                "value": "AB123"
                            },
                            "display": "The Simple Pharmacy"
                        }
                    }
                ],


authorizingPrescription (Original Prescription)

"authorizingPrescription": [
    {
        "extension": [
            {
                "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-GroupIdentifier",
                "extension": [
                    {
                        "url": "shortForm",
                        "valueIdentifier": {
                            "system": "https://fhir.nhs.uk/Id/prescription-order-number",
                            "value": "3C2366-B81001-0A409U"
                        }
                    },
                    {
                        "url": "UUID",
                        "valueIdentifier": {
                            "system": "https://fhir.nhs.uk/Id/prescription",
                            "value": "66317E0C-CE13-59AD-9979-9B568E080160"
                        }
                    }
                ]
            }
        ],
        "identifier": {
            "system": "https://fhir.nhs.uk/Id/prescription-order-item-number",
            "value": "E76622AE-E2DB-5683-2045-D1C229EDA3A2"
        }
    }
]


type

"type": {
    "coding": [
        {
            "system": "https://fhir.nhs.uk/CodeSystem/medicationdispense-type",
            "code": "0001",
            "display": "Item fully dispensed"
        }
    ]
}


quantity

"quantity": {
    "value": 28,
    "unit": "capsule",
    "system": "http://snomed.info/sct",
    "code": "3316911000001105"
}


daysSupply

The amount of medication expressed as a timing amount.

"daysSupply": {
    "value": 7,
    "unit": "Day",
    "system": "http://unitsofmeasure.org",
    "code": "d"
}


whenPrepared

The time when the dispensed product was packaged and reviewed.

"whenPrepared": "2004-09-16T16:30:00+00:00"


whenHandedOver

The time the dispensed product was provided to the patient or their representative. In HL7 v3 this is: The date and local time that the medication is issued by the dispenser.

"whenHandedOver": "2004-09-16T16:30:00+00:00"


dosageInstruction

At present only the text element MUST be provided. It is recommended the guidance in FHIR Dose Syntax Implementation Guidance is followed.

Note the structure of this section is similar as the NHSDigital-MedicationRequest from the prescription-order.

"dosageInstruction": [
    {
        "text": "4 times a day for 7 days",
        "timing": {
            "repeat": {
                "boundsDuration": {
                    "value": 7,
                    "unit": "d"
                },
                "frequency": 4,
                "period": 1,
                "periodUnit": "d"
            }
        },
        "doseAndRate": [
            {
                "doseQuantity": {
                    "value": 1,
                    "unit": "capsule",
                    "system": "http://snomed.info/sct",
                    "code": "3316911000001105"
                }
            }
        ]
    }
]


Search Parameters

Name Type Description Conformance Path
code token Returns dispenses of this medicine code MAY (MedicationDispense.medication as CodeableConcept)
identifier token Returns dispenses with this external identifier MAY MedicationDispense.identifier
patient:identifier token The identity of a patient to list orders for SHALL MedicationDispense.patient (Patient)
prescription:identifier token The identity of a prescription to list dispenses from MAY MedicationDispense.authorizingPrescription (MedicationRequest)
status token Returns dispenses with a specified dispense status SHOULD MedicationDispense.status
whenhandedover date Returns dispenses handed over on this date SHALL MedicationDispense.whenHandedOver


Additional parameters can be on MedicationDispense - Search Parameters

Mandatory Search Parameters

patient:identifier

SHALL support searching using the patient:identifier search parameter:

GET [baseUrl]/MedicationDispense?patient:identifier={system|}[code]

Example:

GET [baseUrl]/MedicationDispense?patient:identifier=https://fhir.nhs.uk/Id/nhs-number|9876543210

Return all MedicationDispense resources for Patients with a NHS Number of 9876543210


whenhandedover + patient:identifier

SHALL support searching using the combination of the patient:identifier and whenhandedover search parameters

  • including support for these date comparators: gt,lt,ge,le
  • including optional support for composite AND search on date (e.g.date=[date]&date=[date]]&...)
GET [baseUrl]/MedicationDispense?patient:identifier={system|}[code]&whenhandedover=[date]

Example:

GET [baseUrl]/MedicationDispense?patient:identifier=9876543210&whenhandedover=ge2010-01-01&authoredon=le2011-12-31

Return all MedicationDispense resources that have a whenhandedover greater than or equal to 1st Jan 2010, a date less than or equal to 31st Dec 2011 and Patient with an identifier code of 9876543210.


Optional Search Parameters

code + patient:identifier

SHOULD support searching using the combination of the patient:identifier and code search parameters

  • including optional support for composite OR search on code (e.g. code={system|}[code],{system|}[code],...)
GET [baseUrl]/MedicationDispense?patient:identifier={system|}[code]&code={system|}|[code]

Example:

GET [baseUrl]/MedicationDispense?patient:identifier=9876543210&code=10460811000001109

Return all MedicationDispense resources that have a medication code (e.g. dm+d or SNOMED CT) with code of 10460811000001109.

group-identifier

MAY support searching using group-identifier search parameters:

GET [baseUrl]/MedicationDispense?group-identifier={system|}[code]

Example:

GET [baseUrl]/MedicationDispense?group-identifier=https://fhir.nhs.uk/Id/prescription-order-number|DC2C66-A1B2C3-23407B

identifier

MAY support searching using identifier search parameters:

GET [baseUrl]/MedicationDispense?identifier={system|}[code]

Example:

GET [baseUrl]/MedicationDispense?identifier=https://fhir.nhs.uk/Id/prescription-dispense-item-number|4509B70D-D8B8-EA03-1105-64557CB54A29

prescription:identifier

MAY support searching using prescription:identifier search parameters:

GET [baseUrl]/MedicationDispense?prescription:identifier={system|}[code]

Example:

GET [baseUrl]/MedicationDispense?prescription:identifier=https://fhir.nhs.uk/Id/prescription-order-item-number|E76622AE-E2DB-5683-2045-D1C229EDA3A2

status + patient:identifier

SHOULD support searching using the combination of the patient:identifier and status search parameters

GET [baseUrl]/MedicationDispense?patient:identifier={system|}[code]&status=[code]

Example:

GET [baseUrl]/MedicationDispense?patient:identifier=9876543210&status=in-progress

Return all MedicationRequest resources with a status of in-progress and Patient with an identifier code of 9876543210.


NHSDigital-MedicationRequest

Conformance Url
https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest



idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
repeatInformationS I0..1Extension(Complex)
responsiblePractitionerS I0..1Extension(IdentifierReference())
prescriptionEndorsementS I0..*Extension(CodeableConcept)
prescriptionTaskStatusReasonI0..*Extension(Complex)
NHSBSAprescriptionTypeS I1..1Extension(Coding)
controlledDrugS I0..1Extension(Complex)
dispensingInformationI0..1Extension(Complex)
modifierExtension?! I0..*Extension
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
statusS Σ ?!1..1codeBinding
id0..1string
extensionI0..*Extension
id0..1string
extensionI0..*Extension
systemΣ1..1uri
versionΣ0..1string
codeΣ1..1code
displayΣ1..1string
userSelectedΣ0..1boolean
textΣ0..1string
intentΣ ?!1..1codeBinding
id0..1string
extensionI0..*Extension
id0..1string
extensionI0..*Extension
systemΣ1..1uriFixed Value
versionΣ0..1string
codeΣ1..1code
displayΣ0..1string
userSelectedΣ0..1boolean
id0..1string
extensionI0..*Extension
systemΣ1..1uriFixed Value
versionΣ0..1string
codeΣ1..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
priorityΣ0..1codeBinding
doNotPerformΣ ?!0..1boolean
reportedBooleanboolean
reportedReferenceReference( | | | | )
medicationCodeableConcept
medicationReferenceReference()
id0..1string
extensionI0..*Extension
referenceΣ I1..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ0..1string
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ0..1string
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ0..1string
authoredOnS Σ1..1dateTime
id0..1string
extensionI0..*Extension
referenceΣ I1..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ0..1string
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ0..1string
performerTypeΣ0..1CodeableConcept
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ0..1string
reasonCode0..*CodeableConcept
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ0..1string
instantiatesCanonicalΣ0..*canonical()
instantiatesUriΣ0..*uri
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ0..1string
id0..1string
id0..1string
extensionI0..*Extension
url1..1uriFixed Value
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..1string
periodΣ0..1Period
assignerΣ0..1Reference(Organization)
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
id0..1string
extensionI0..*Extension
id0..1string
extensionI0..*Extension
systemΣ1..1uri
versionΣ0..1string
codeΣ1..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ0..1string
id0..1string
extensionI0..*Extension
authorStringstring
authorReferenceReference( | | | )
timeΣ0..1dateTime
textΣ1..1markdown
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
sequenceΣ0..1integer
textΣ1..1string
additionalInstructionΣ0..*CodeableConcept
patientInstructionΣ0..1string
timingΣ0..1Timing
asNeededBooleanboolean
asNeededCodeableConceptCodeableConcept
siteΣ0..1CodeableConcept
id0..1string
extensionI0..*Extension
id0..1string
extensionI0..*Extension
systemΣ1..1uriFixed Value
versionΣ0..1string
codeΣ1..1code
displayΣ1..1string
userSelectedΣ0..1boolean
textΣ0..1string
methodΣ0..1CodeableConcept
id0..1string
extensionI0..*Extension
typeΣ0..1CodeableConcept
doseRangeRange
doseQuantitySimpleQuantity
rateRatioRatio
rateRangeRange
rateQuantitySimpleQuantity
maxDosePerPeriodΣ I0..1Ratio
maxDosePerAdministrationΣ I0..1SimpleQuantity
maxDosePerLifetimeΣ I0..1SimpleQuantity
id0..1string
performerSiteTypeS I1..1Extension(Coding)
modifierExtensionΣ ?! I0..*Extension
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
quantityI0..1SimpleQuantity
durationI0..1DurationBinding
dispenseIntervalI0..1DurationBinding
id0..1string
extensionI0..*Extension
startΣ I1..1dateTime
endΣ I0..1dateTime
numberOfRepeatsAllowedS0..1unsignedInt
id0..1string
extensionI0..*Extension
valueΣ1..1decimal
comparatorΣ ?!0..0codeBinding
unitΣ1..1string
systemΣ I0..1uri
codeΣ1..1code
id0..1string
extensionI0..*Extension
valueΣ1..1decimal
comparatorΣ ?!0..1codeBinding
unitΣ0..1string
systemΣ I0..1uri
codeΣ1..1codeFixed Value
id0..1string
practitionerRoleI0..1Extension(Reference())
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ0..1string
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
allowedBooleanboolean
reason0..1CodeableConcept
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ0..1string
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization | )
displayΣ0..1string
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ0..1string

Differential from UK Core MedicationRequest

idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
repeatInformationS I0..1Extension(Complex)
responsiblePractitionerS I0..1Extension(IdentifierReference())
prescriptionEndorsementS I0..*Extension(CodeableConcept)
prescriptionTaskStatusReasonI0..*Extension(Complex)
NHSBSAprescriptionTypeS I1..1Extension(Coding)
controlledDrugS I0..1Extension(Complex)
dispensingInformationI0..1Extension(Complex)
modifierExtension?! I0..*Extension
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
statusS Σ ?!1..1codeBinding
id0..1string
extensionI0..*Extension
id0..1string
extensionI0..*Extension
systemΣ1..1uri
versionΣ0..1string
codeΣ1..1code
displayΣ1..1string
userSelectedΣ0..1boolean
textΣ0..1string
intentΣ ?!1..1codeBinding
id0..1string
extensionI0..*Extension
id0..1string
extensionI0..*Extension
systemΣ1..1uriFixed Value
versionΣ0..1string
codeΣ1..1code
displayΣ0..1string
userSelectedΣ0..1boolean
id0..1string
extensionI0..*Extension
systemΣ1..1uriFixed Value
versionΣ0..1string
codeΣ1..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
priorityΣ0..1codeBinding
doNotPerformΣ ?!0..1boolean
reportedBooleanboolean
reportedReferenceReference( | | | | )
medicationCodeableConcept
medicationReferenceReference()
id0..1string
extensionI0..*Extension
referenceΣ I1..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ0..1string
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ0..1string
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ0..1string
authoredOnS Σ1..1dateTime
id0..1string
extensionI0..*Extension
referenceΣ I1..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ0..1string
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ0..1string
performerTypeΣ0..1CodeableConcept
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ0..1string
reasonCode0..*CodeableConcept
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ0..1string
instantiatesCanonicalΣ0..*canonical()
instantiatesUriΣ0..*uri
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ0..1string
id0..1string
id0..1string
extensionI0..*Extension
url1..1uriFixed Value
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..1string
periodΣ0..1Period
assignerΣ0..1Reference(Organization)
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
id0..1string
extensionI0..*Extension
id0..1string
extensionI0..*Extension
systemΣ1..1uri
versionΣ0..1string
codeΣ1..1code
displayΣ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ0..1string
id0..1string
extensionI0..*Extension
authorStringstring
authorReferenceReference( | | | )
timeΣ0..1dateTime
textΣ1..1markdown
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
sequenceΣ0..1integer
textΣ1..1string
additionalInstructionΣ0..*CodeableConcept
patientInstructionΣ0..1string
timingΣ0..1Timing
asNeededBooleanboolean
asNeededCodeableConceptCodeableConcept
siteΣ0..1CodeableConcept
id0..1string
extensionI0..*Extension
id0..1string
extensionI0..*Extension
systemΣ1..1uriFixed Value
versionΣ0..1string
codeΣ1..1code
displayΣ1..1string
userSelectedΣ0..1boolean
textΣ0..1string
methodΣ0..1CodeableConcept
id0..1string
extensionI0..*Extension
typeΣ0..1CodeableConcept
doseRangeRange
doseQuantitySimpleQuantity
rateRatioRatio
rateRangeRange
rateQuantitySimpleQuantity
maxDosePerPeriodΣ I0..1Ratio
maxDosePerAdministrationΣ I0..1SimpleQuantity
maxDosePerLifetimeΣ I0..1SimpleQuantity
id0..1string
performerSiteTypeS I1..1Extension(Coding)
modifierExtensionΣ ?! I0..*Extension
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
quantityI0..1SimpleQuantity
durationI0..1DurationBinding
dispenseIntervalI0..1DurationBinding
id0..1string
extensionI0..*Extension
startΣ I1..1dateTime
endΣ I0..1dateTime
numberOfRepeatsAllowedS0..1unsignedInt
id0..1string
extensionI0..*Extension
valueΣ1..1decimal
comparatorΣ ?!0..0codeBinding
unitΣ1..1string
systemΣ I0..1uri
codeΣ1..1code
id0..1string
extensionI0..*Extension
valueΣ1..1decimal
comparatorΣ ?!0..1codeBinding
unitΣ0..1string
systemΣ I0..1uri
codeΣ1..1codeFixed Value
id0..1string
practitionerRoleI0..1Extension(Reference())
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ0..1string
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
allowedBooleanboolean
reason0..1CodeableConcept
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ0..1string
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization | )
displayΣ0..1string
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ0..1string

MedicationRequest
DefinitionAn order or request for both supply of the medication and the instructions for administration of the medication to a patient. The resource is called "MedicationRequest" rather than "MedicationPrescription" or "MedicationOrder" to generalize the use across inpatient and outpatient settings, including care plans, etc., and to harmonize with workflow patterns.
Cardinality0...*
AliasPrescription, Order
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()
  • eps-1: Only one of medicationReference or medicationCodeableConcept should be provided
    (medicationReference.exists() and medicationCodeableConcept.exists().not()) or (medicationReference.exists().not() and medicationCodeableConcept.exists())
Mappings
  • rim: Entity. Role, or Act
  • workflow: Request
  • script10.6: Message/Body/NewRx
  • rim: CombinedMedicationRequest
MedicationRequest.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.

MedicationRequest.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
MedicationRequest.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
MedicationRequest.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
MedicationRequest.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?
MedicationRequest.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
MedicationRequest.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
MedicationRequest.extension:repeatInformation
DefinitionMedication repeat information.
Cardinality0...1
TypeExtension(Complex)
Must SupportTrue
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.

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
MedicationRequest.extension:responsiblePractitioner
DefinitionA participation used to provide a link to the healthcare professional who has direct responsibility for the patient.
Cardinality0...1
TypeExtension(IdentifierReference())
Must SupportTrue
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.

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
MedicationRequest.extension:prescriptionEndorsement
DefinitionOptional Extension Element - found in all resources.
Cardinality0...*
TypeExtension(CodeableConcept)
Must SupportTrue
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.

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
MedicationRequest.extension:prescriptionTaskStatusReason
DefinitionThe status history within EPS is primarily a technical Status and the statusReason will reflect current clinical status of the order.
Cardinality0...*
TypeExtension(Complex)
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.

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
MedicationRequest.extension:NHSBSAprescriptionType
DefinitionCare Setting and type of prescriber.
Cardinality1...1
TypeExtension(Coding)
Must SupportTrue
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.

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
MedicationRequest.extension:controlledDrug
DefinitionOptional Extension Element - found in all resources.
Cardinality0...1
TypeExtension(Complex)
Must SupportTrue
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.

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
MedicationRequest.extension:dispensingInformation
DefinitionNot to be populated by prescribing systems. Tracking systems only for repeat dispensing.
Cardinality0...1
TypeExtension(Complex)
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.

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
MedicationRequest.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
MedicationRequest.identifier
DefinitionIdentifiers associated with this medication request 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.
Cardinality1...*
TypeIdentifier
Must SupportTrue
Comments

This is a business identifier, not a resource identifier.

SlicingUnordered, Open, by system(Value)
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: Request.identifier
  • script10.6: Message/Header/PrescriberOrderNumber
  • w5: FiveWs.identifier
  • v2: ORC-2-Placer Order Number / ORC-3-Filler Order Number
  • rim: .id
MedicationRequest.identifier.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
MedicationRequest.identifier.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
MedicationRequest.identifier.use
DefinitionThe purpose of this identifier.
Cardinality0...1
Typecode
Binding

Identifies the purpose for this identifier, if known .

IdentifierUse (required)
ModifierTrue
SummaryTrue
Requirements

Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers.

Comments

Applications can assume that an identifier is permanent unless it explicitly says that it is temporary.

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: Role.code or implied by context
MedicationRequest.identifier.type
DefinitionA coded type for the identifier that can be used to determine which identifier to use for a specific purpose.
Cardinality0...1
TypeCodeableConcept
Binding

A coded type for an identifier that can be used to determine which identifier to use for a specific purpose.

Identifier Type Codes (extensible)
SummaryTrue
Requirements

Allows users to make use of identifiers when the identifier system is not known.

Comments

This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type.

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: CX.5
  • rim: Role.code or implied by context
MedicationRequest.identifier.system
DefinitionEstablishes the namespace for the value - that is, a URL that describes a set values that are unique.
Cardinality0...1
Typeuri
SummaryTrue
Requirements

There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers.

Comments

Identifier.system is always case sensitive.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Examples
General

http://www.acme.com/identifiers/patient


Mappings
  • rim: n/a
  • v2: CX.4 / EI-2-4
  • rim: II.root or Role.id.root
  • servd: ./IdentifierType
MedicationRequest.identifier.value
DefinitionThe portion of the identifier typically relevant to the user and which is unique within the context of the system.
Cardinality0...1
Typestring
SummaryTrue
Comments

If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Examples
General

123456


Mappings
  • rim: n/a
  • v2: CX.1 / EI.1
  • rim: II.extension or II.root if system indicates OID or GUID (Or Role.id.extension or root)
  • servd: ./Value
MedicationRequest.identifier.period
DefinitionTime period during which identifier is/was valid for use.
Cardinality0...1
TypePeriod
SummaryTrue
Comments

A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times").

Period is not used for a duration (a measure of elapsed time). See Duration.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • per-1: If present, start SHALL have a lower value than end
    start.hasValue().not() or end.hasValue().not() or (start <= end)
Mappings
  • rim: n/a
  • v2: DR
  • rim: IVL<TS>[lowClosed="true" and highClosed="true"] or URG<TS>[lowClosed="true" and highClosed="true"]
  • v2: CX.7 + CX.8
  • rim: Role.effectiveTime or implied by context
  • servd: ./StartDate and ./EndDate
MedicationRequest.identifier.assigner
DefinitionOrganization that issued/manages the identifier.
Cardinality0...1
TypeReference()
SummaryTrue
Comments

The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization.

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: CX.4 / (CX.4,CX.9,CX.10)
  • rim: II.assigningAuthorityName but note that this is an improper use by the definition of the field. Also Role.scoper
  • servd: ./IdentifierIssuingAuthority
MedicationRequest.identifier:prescriptionOrderItem
DefinitionUnique Id of the MedicationRequest within EPS
Cardinality1...1
TypeIdentifier
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: Request.identifier
  • script10.6: Message/Header/PrescriberOrderNumber
  • w5: FiveWs.identifier
  • v2: ORC-2-Placer Order Number / ORC-3-Filler Order Number
  • rim: .id
MedicationRequest.identifier:prescriptionOrderItem.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
MedicationRequest.identifier:prescriptionOrderItem.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
MedicationRequest.identifier:prescriptionOrderItem.use
DefinitionThe purpose of this identifier.
Cardinality0...1
Typecode
Binding

Identifies the purpose for this identifier, if known .

IdentifierUse (required)
ModifierTrue
SummaryTrue
Requirements

Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers.

Comments

Applications can assume that an identifier is permanent unless it explicitly says that it is temporary.

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: Role.code or implied by context
MedicationRequest.identifier:prescriptionOrderItem.type
DefinitionA coded type for the identifier that can be used to determine which identifier to use for a specific purpose.
Cardinality0...1
TypeCodeableConcept
Binding

A coded type for an identifier that can be used to determine which identifier to use for a specific purpose.

Identifier Type Codes (extensible)
SummaryTrue
Requirements

Allows users to make use of identifiers when the identifier system is not known.

Comments

This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type.

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: CX.5
  • rim: Role.code or implied by context
MedicationRequest.identifier:prescriptionOrderItem.system
DefinitionEstablishes the namespace for the value - that is, a URL that describes a set values that are unique.
Cardinality1...1
Typeuri
SummaryTrue
Requirements

There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers.

Comments

Identifier.system is always case sensitive.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Fixed Value

https://fhir.nhs.uk/Id/prescription-order-item-number

Mappings
  • rim: n/a
  • v2: CX.4 / EI-2-4
  • rim: II.root or Role.id.root
  • servd: ./IdentifierType
MedicationRequest.identifier:prescriptionOrderItem.value
DefinitionThe portion of the identifier typically relevant to the user and which is unique within the context of the system.
Cardinality1...1
Typestring
SummaryTrue
Comments

If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Examples
General

123456


Mappings
  • rim: n/a
  • v2: CX.1 / EI.1
  • rim: II.extension or II.root if system indicates OID or GUID (Or Role.id.extension or root)
  • servd: ./Value
MedicationRequest.identifier:prescriptionOrderItem.period
DefinitionTime period during which identifier is/was valid for use.
Cardinality0...1
TypePeriod
SummaryTrue
Comments

A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times").

Period is not used for a duration (a measure of elapsed time). See Duration.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • per-1: If present, start SHALL have a lower value than end
    start.hasValue().not() or end.hasValue().not() or (start <= end)
Mappings
  • rim: n/a
  • v2: DR
  • rim: IVL<TS>[lowClosed="true" and highClosed="true"] or URG<TS>[lowClosed="true" and highClosed="true"]
  • v2: CX.7 + CX.8
  • rim: Role.effectiveTime or implied by context
  • servd: ./StartDate and ./EndDate
MedicationRequest.identifier:prescriptionOrderItem.assigner
DefinitionOrganization that issued/manages the identifier.
Cardinality0...1
TypeReference()
SummaryTrue
Comments

The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization.

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: CX.4 / (CX.4,CX.9,CX.10)
  • rim: II.assigningAuthorityName but note that this is an improper use by the definition of the field. Also Role.scoper
  • servd: ./IdentifierIssuingAuthority
MedicationRequest.status
DefinitionA code specifying the current state of the order. Generally, this will be active or completed state.
Cardinality1...1
Typecode
Binding

A coded concept specifying the state of the prescribing event. Describes the lifecycle of the prescription.

medicationrequest Status (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: Request.status
  • script10.6: no mapping
  • w5: FiveWs.status
  • rim: .statusCode
MedicationRequest.statusReason
DefinitionMandatory for cancelled prescription items
Cardinality0...1
TypeCodeableConcept
Binding

Identifies the reasons for a given status.

(required)
Must SupportTrue
Comments

This is generally only used for "exception" statuses such as "suspended" or "cancelled". The reason why the MedicationRequest was created at all is captured in reasonCode, not here.

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
  • workflow: Request.statusReason
  • rim: .inboundRelationship[typeCode=SUBJ].source[classCode=CACT, moodCode=EVN].reasonCOde
MedicationRequest.statusReason.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
MedicationRequest.statusReason.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
MedicationRequest.statusReason.coding
DefinitionA reference to a code defined by a terminology system.
Cardinality1...1
TypeCoding
SummaryTrue
Requirements

Allows for alternative encodings within a code system, and translations to other code systems.

Comments

Codes may be defined very casually in enumerations, or code lists, up to very formal definitions such as SNOMED CT - see the HL7 v3 Core Principles for more information. Ordering of codings is undefined and SHALL NOT be used to infer meaning. Generally, at most only one of the coding values will be labeled as UserSelected = true.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: C*E.1-8, C*E.10-22
  • rim: union(., ./translation)
  • orim: fhir:CodeableConcept.coding rdfs:subPropertyOf dt:CD.coding
MedicationRequest.statusReason.coding.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
MedicationRequest.statusReason.coding.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
MedicationRequest.statusReason.coding.system
DefinitionThe identification of the code system that defines the meaning of the symbol in the code.
Cardinality1...1
Typeuri
SummaryTrue
Requirements

Need to be unambiguous about the source of the definition of the symbol.

Comments

The URI may be an OID (urn:oid:...) or a UUID (urn:uuid:...). OIDs and UUIDs SHALL be references to the HL7 OID registry. Otherwise, the URI should come from HL7's list of FHIR defined special URIs or it should reference to some definition that establishes the system clearly and unambiguously.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: C*E.3
  • rim: ./codeSystem
  • orim: fhir:Coding.system rdfs:subPropertyOf dt:CDCoding.codeSystem
MedicationRequest.statusReason.coding.version
DefinitionThe version of the code system which was used when choosing this code. Note that a well-maintained code system does not need the version reported, because the meaning of codes is consistent across versions. However this cannot consistently be assured, and when the meaning is not guaranteed to be consistent, the version SHOULD be exchanged.
Cardinality0...1
Typestring
SummaryTrue
Comments

Where the terminology does not clearly define what string should be used to identify code system versions, the recommendation is to use the date (expressed in FHIR date format) on which that version was officially published as the version date.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: C*E.7
  • rim: ./codeSystemVersion
  • orim: fhir:Coding.version rdfs:subPropertyOf dt:CDCoding.codeSystemVersion
MedicationRequest.statusReason.coding.code
DefinitionA symbol in syntax defined by the system. The symbol may be a predefined code or an expression in a syntax defined by the coding system (e.g. post-coordination).
Cardinality1...1
Typecode
SummaryTrue
Requirements

Need to refer to a particular code in the system.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: C*E.1
  • rim: ./code
  • orim: fhir:Coding.code rdfs:subPropertyOf dt:CDCoding.code
MedicationRequest.statusReason.coding.display
DefinitionA representation of the meaning of the code in the system, following the rules of the system.
Cardinality1...1
Typestring
SummaryTrue
Requirements

Need to be able to carry a human-readable meaning of the code for readers that do not know the system.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: C*E.2 - but note this is not well followed
  • rim: CV.displayName
  • orim: fhir:Coding.display rdfs:subPropertyOf dt:CDCoding.displayName
MedicationRequest.statusReason.coding.userSelected
DefinitionIndicates that this coding was chosen by a user directly - e.g. off a pick list of available items (codes or displays).
Cardinality0...1
Typeboolean
SummaryTrue
Requirements

This has been identified as a clinical safety criterium - that this exact system/code pair was chosen explicitly, rather than inferred by the system based on some rules or language processing.

Comments

Amongst a set of alternatives, a directly chosen code is the most appropriate starting point for new translations. There is some ambiguity about what exactly 'directly chosen' implies, and trading partner agreement may be needed to clarify the use of this element and its consequences more completely.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: Sometimes implied by being first
  • rim: CD.codingRationale
  • orim: fhir:Coding.userSelected fhir:mapsTo dt:CDCoding.codingRationale. fhir:Coding.userSelected fhir:hasMap fhir:Coding.userSelected.map. fhir:Coding.userSelected.map a fhir:Map; fhir:target dt:CDCoding.codingRationale. fhir:Coding.userSelected\#true a [ fhir:source "true"; fhir:target dt:CDCoding.codingRationale\#O ]
MedicationRequest.statusReason.text
DefinitionA human language representation of the concept as seen/selected/uttered by the user who entered the data and/or which represents the intended meaning of the user.
Cardinality0...1
Typestring
SummaryTrue
Requirements

The codes from the terminologies do not always capture the correct meaning with all the nuances of the human using them, or sometimes there is no appropriate code at all. In these cases, the text is used to capture the full meaning of the source.

Comments

Very often the text is the same as a displayName of one of the codings.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: C*E.9. But note many systems use C*E.2 for this
  • rim: ./originalText[mediaType/code="text/plain"]/data
  • orim: fhir:CodeableConcept.text rdfs:subPropertyOf dt:CD.originalText
MedicationRequest.intent
DefinitionWhether the request is a proposal, plan, or an original order.
Cardinality1...1
Typecode
Binding

The kind of medication order.

medicationRequest Intent (required)
ModifierTrue
SummaryTrue
Comments

It is expected that the type of requester will be restricted for different stages of a MedicationRequest. For example, Proposals can be created by a patient, relatedPerson, Practitioner or Device. Plans can be created by Practitioners, Patients, RelatedPersons and Devices. Original orders can be created by a Practitioner only.

An instance-order is an instantiation of a request or order and may be used to populate Medication Administration Record.

This element is labeled as a modifier because the intent alters when and how the resource is actually applicable.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • workflow: Request.intent
  • w5: FiveWs.class
  • rim: .moodCode (nuances beyond PRP/PLAN/RQO would need to be elsewhere)
MedicationRequest.category
DefinitionIndicates the type of medication request (for example, where the medication is expected to be consumed or administered (i.e. inpatient or outpatient)).
Cardinality1...*
TypeCodeableConcept
Binding

A coded concept identifying the category of medication request. For example, where the medication is to be consumed or administered, or the type of medication treatment.

medicationRequest Category Codes (example)
Must SupportTrue
Comments

The category can be used to include where the medication is expected to be consumed or other types of requests.

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
  • script10.6: Message/Body/NewRx/MedicationPrescribed/Directions or Message/Body/NewRx/MedicationPrescribed/StructuredSIG
  • w5: FiveWs.class
  • rim: .inboundRelationship[typeCode=COMP].source[classCode=OBS, moodCode=EVN, code="type of medication usage"].value
MedicationRequest.category.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
MedicationRequest.category.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
MedicationRequest.category.coding
DefinitionA reference to a code defined by a terminology system.
Cardinality1...1
TypeCoding
SummaryTrue
Requirements

Allows for alternative encodings within a code system, and translations to other code systems.

Comments

Codes may be defined very casually in enumerations, or code lists, up to very formal definitions such as SNOMED CT - see the HL7 v3 Core Principles for more information. Ordering of codings is undefined and SHALL NOT be used to infer meaning. Generally, at most only one of the coding values will be labeled as UserSelected = true.

SlicingUnordered, Open, by system(Value)
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: C*E.1-8, C*E.10-22
  • rim: union(., ./translation)
  • orim: fhir:CodeableConcept.coding rdfs:subPropertyOf dt:CD.coding
MedicationRequest.category.coding:patientClassFHIR
DefinitionA reference to a code defined by a terminology system.
Cardinality0...1
TypeCoding
Binding (required)
SummaryTrue
Requirements

Allows for alternative encodings within a code system, and translations to other code systems.

Comments

Codes may be defined very casually in enumerations, or code lists, up to very formal definitions such as SNOMED CT - see the HL7 v3 Core Principles for more information. Ordering of codings is undefined and SHALL NOT be used to infer meaning. Generally, at most only one of the coding values will be labeled as UserSelected = true.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: C*E.1-8, C*E.10-22
  • rim: union(., ./translation)
  • orim: fhir:CodeableConcept.coding rdfs:subPropertyOf dt:CD.coding
MedicationRequest.category.coding:patientClassFHIR.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
MedicationRequest.category.coding:patientClassFHIR.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
MedicationRequest.category.coding:patientClassFHIR.system
DefinitionThe identification of the code system that defines the meaning of the symbol in the code.
Cardinality1...1
Typeuri
SummaryTrue
Requirements

Need to be unambiguous about the source of the definition of the symbol.

Comments

The URI may be an OID (urn:oid:...) or a UUID (urn:uuid:...). OIDs and UUIDs SHALL be references to the HL7 OID registry. Otherwise, the URI should come from HL7's list of FHIR defined special URIs or it should reference to some definition that establishes the system clearly and unambiguously.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Fixed Value

http://terminology.hl7.org/CodeSystem/medicationrequest-category

Mappings
  • v2: C*E.3
  • rim: ./codeSystem
  • orim: fhir:Coding.system rdfs:subPropertyOf dt:CDCoding.codeSystem
MedicationRequest.category.coding:patientClassFHIR.version
DefinitionThe version of the code system which was used when choosing this code. Note that a well-maintained code system does not need the version reported, because the meaning of codes is consistent across versions. However this cannot consistently be assured, and when the meaning is not guaranteed to be consistent, the version SHOULD be exchanged.
Cardinality0...1
Typestring
SummaryTrue
Comments

Where the terminology does not clearly define what string should be used to identify code system versions, the recommendation is to use the date (expressed in FHIR date format) on which that version was officially published as the version date.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: C*E.7
  • rim: ./codeSystemVersion
  • orim: fhir:Coding.version rdfs:subPropertyOf dt:CDCoding.codeSystemVersion
MedicationRequest.category.coding:patientClassFHIR.code
DefinitionA symbol in syntax defined by the system. The symbol may be a predefined code or an expression in a syntax defined by the coding system (e.g. post-coordination).
Cardinality1...1
Typecode
SummaryTrue
Requirements

Need to refer to a particular code in the system.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: C*E.1
  • rim: ./code
  • orim: fhir:Coding.code rdfs:subPropertyOf dt:CDCoding.code
MedicationRequest.category.coding:patientClassFHIR.display
DefinitionA representation of the meaning of the code in the system, following the rules of the system.
Cardinality0...1
Typestring
SummaryTrue
Requirements

Need to be able to carry a human-readable meaning of the code for readers that do not know the system.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: C*E.2 - but note this is not well followed
  • rim: CV.displayName
  • orim: fhir:Coding.display rdfs:subPropertyOf dt:CDCoding.displayName
MedicationRequest.category.coding:patientClassFHIR.userSelected
DefinitionIndicates that this coding was chosen by a user directly - e.g. off a pick list of available items (codes or displays).
Cardinality0...1
Typeboolean
SummaryTrue
Requirements

This has been identified as a clinical safety criterium - that this exact system/code pair was chosen explicitly, rather than inferred by the system based on some rules or language processing.

Comments

Amongst a set of alternatives, a directly chosen code is the most appropriate starting point for new translations. There is some ambiguity about what exactly 'directly chosen' implies, and trading partner agreement may be needed to clarify the use of this element and its consequences more completely.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: Sometimes implied by being first
  • rim: CD.codingRationale
  • orim: fhir:Coding.userSelected fhir:mapsTo dt:CDCoding.codingRationale. fhir:Coding.userSelected fhir:hasMap fhir:Coding.userSelected.map. fhir:Coding.userSelected.map a fhir:Map; fhir:target dt:CDCoding.codingRationale. fhir:Coding.userSelected\#true a [ fhir:source "true"; fhir:target dt:CDCoding.codingRationale\#O ]
MedicationRequest.category.coding:patientClassUK
DefinitionA reference to a code defined by a terminology system.
Cardinality0...1
TypeCoding
Binding (required)
SummaryTrue
Requirements

Allows for alternative encodings within a code system, and translations to other code systems.

Comments

Codes may be defined very casually in enumerations, or code lists, up to very formal definitions such as SNOMED CT - see the HL7 v3 Core Principles for more information. Ordering of codings is undefined and SHALL NOT be used to infer meaning. Generally, at most only one of the coding values will be labeled as UserSelected = true.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: C*E.1-8, C*E.10-22
  • rim: union(., ./translation)
  • orim: fhir:CodeableConcept.coding rdfs:subPropertyOf dt:CD.coding
MedicationRequest.category.coding:patientClassUK.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
MedicationRequest.category.coding:patientClassUK.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
MedicationRequest.category.coding:patientClassUK.system
DefinitionThe identification of the code system that defines the meaning of the symbol in the code.
Cardinality1...1
Typeuri
SummaryTrue
Requirements

Need to be unambiguous about the source of the definition of the symbol.

Comments

The URI may be an OID (urn:oid:...) or a UUID (urn:uuid:...). OIDs and UUIDs SHALL be references to the HL7 OID registry. Otherwise, the URI should come from HL7's list of FHIR defined special URIs or it should reference to some definition that establishes the system clearly and unambiguously.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Fixed Value

https://fhir.nhs.uk/CodeSystem/medicationrequest-category

Mappings
  • v2: C*E.3
  • rim: ./codeSystem
  • orim: fhir:Coding.system rdfs:subPropertyOf dt:CDCoding.codeSystem
MedicationRequest.category.coding:patientClassUK.version
DefinitionThe version of the code system which was used when choosing this code. Note that a well-maintained code system does not need the version reported, because the meaning of codes is consistent across versions. However this cannot consistently be assured, and when the meaning is not guaranteed to be consistent, the version SHOULD be exchanged.
Cardinality0...1
Typestring
SummaryTrue
Comments

Where the terminology does not clearly define what string should be used to identify code system versions, the recommendation is to use the date (expressed in FHIR date format) on which that version was officially published as the version date.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: C*E.7
  • rim: ./codeSystemVersion
  • orim: fhir:Coding.version rdfs:subPropertyOf dt:CDCoding.codeSystemVersion
MedicationRequest.category.coding:patientClassUK.code
DefinitionA symbol in syntax defined by the system. The symbol may be a predefined code or an expression in a syntax defined by the coding system (e.g. post-coordination).
Cardinality1...1
Typecode
SummaryTrue
Requirements

Need to refer to a particular code in the system.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: C*E.1
  • rim: ./code
  • orim: fhir:Coding.code rdfs:subPropertyOf dt:CDCoding.code
MedicationRequest.category.coding:patientClassUK.display
DefinitionA representation of the meaning of the code in the system, following the rules of the system.
Cardinality0...1
Typestring
SummaryTrue
Requirements

Need to be able to carry a human-readable meaning of the code for readers that do not know the system.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: C*E.2 - but note this is not well followed
  • rim: CV.displayName
  • orim: fhir:Coding.display rdfs:subPropertyOf dt:CDCoding.displayName
MedicationRequest.category.coding:patientClassUK.userSelected
DefinitionIndicates that this coding was chosen by a user directly - e.g. off a pick list of available items (codes or displays).
Cardinality0...1
Typeboolean
SummaryTrue
Requirements

This has been identified as a clinical safety criterium - that this exact system/code pair was chosen explicitly, rather than inferred by the system based on some rules or language processing.

Comments

Amongst a set of alternatives, a directly chosen code is the most appropriate starting point for new translations. There is some ambiguity about what exactly 'directly chosen' implies, and trading partner agreement may be needed to clarify the use of this element and its consequences more completely.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: Sometimes implied by being first
  • rim: CD.codingRationale
  • orim: fhir:Coding.userSelected fhir:mapsTo dt:CDCoding.codingRationale. fhir:Coding.userSelected fhir:hasMap fhir:Coding.userSelected.map. fhir:Coding.userSelected.map a fhir:Map; fhir:target dt:CDCoding.codingRationale. fhir:Coding.userSelected\#true a [ fhir:source "true"; fhir:target dt:CDCoding.codingRationale\#O ]
MedicationRequest.category.text
DefinitionA human language representation of the concept as seen/selected/uttered by the user who entered the data and/or which represents the intended meaning of the user.
Cardinality0...1
Typestring
SummaryTrue
Requirements

The codes from the terminologies do not always capture the correct meaning with all the nuances of the human using them, or sometimes there is no appropriate code at all. In these cases, the text is used to capture the full meaning of the source.

Comments

Very often the text is the same as a displayName of one of the codings.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: C*E.9. But note many systems use C*E.2 for this
  • rim: ./originalText[mediaType/code="text/plain"]/data
  • orim: fhir:CodeableConcept.text rdfs:subPropertyOf dt:CD.originalText
MedicationRequest.priority
DefinitionIndicates how quickly the Medication Request should be addressed with respect to other requests.
Cardinality0...1
Typecode
Binding

Identifies the level of importance to be assigned to actioning the request.

RequestPriority (required)
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
  • workflow: Request.priority
  • w5: FiveWs.grade
  • rim: .priorityCode
MedicationRequest.doNotPerform
DefinitionIf true indicates that the provider is asking for the medication request not to occur.
Cardinality0...1
Typeboolean
ModifierTrue
SummaryTrue
Comments

If do not perform is not specified, the request is a positive request e.g. "do perform".

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • rim: SubstanceAdministration.actionNegationInd
MedicationRequest.reported[x]
DefinitionIndicates if this record was captured as a secondary 'reported' record rather than as an original primary source-of-truth record. It may also indicate the source of the report.
Cardinality0...1
Typeboolean
SummaryTrue
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • rim: .participation[typeCode=INF].role
MedicationRequest.medication[x]
DefinitionIdentifies the medication being requested. This is a link to a resource that represents the medication which may be the details of the medication or simply an attribute carrying a code that identifies the medication from a known list of medications.
Cardinality1...1
Type
Binding

A coded concept identifying substance or product that can be ordered.

SNOMEDCTMedicationCodes (example)
Must SupportTrue
SummaryTrue
Comments

Any code from the SnomedCT UK DMD subset for VMP, AMP and VTM concepts

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
  • workflow: Request.code
  • script10.6: Message/Body/NewRx/MedicationPrescribed Medication.code.coding.code = Message/Body/NewRx/MedicationPrescribed/DrugCoded/ProductCode Medication.code.coding.system = Message/Body/NewRx/MedicationPrescribed/DrugCoded/ProductCodeQualifier Medication.code.coding.display = Message/Body/NewRx/MedicationPrescribed/DrugDescription
  • w5: FiveWs.what[x]
  • v2: RXE-2-Give Code / RXO-1-Requested Give Code / RXC-2-Component Code
  • rim: consumable.administrableMedication
MedicationRequest.subject
DefinitionA link to a resource representing the person or set of individuals to whom the medication will be given.
Cardinality1...1
TypeReference()
Must SupportTrue
SummaryTrue
Comments

The subject on a medication request is mandatory. For the secondary use case where the actual subject is not provided, there still must be an anonymized subject specified.

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: Request.subject
  • script10.6: Message/Body/NewRx/Patient (need detail to link to specific patient … Patient.Identification in SCRIPT)
  • w5: FiveWs.subject[x]
  • v2: PID-3-Patient ID List
  • rim: .participation[typeCode=AUT].role
  • w5: FiveWs.subject
MedicationRequest.subject.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
MedicationRequest.subject.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
MedicationRequest.subject.reference
DefinitionA reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources.
Cardinality1...1
Typestring
SummaryTrue
Comments

Using absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading across closed eco-system boundaries. Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach. If the URL conforms to the structure "/[type]/[id]" then it should be assumed that the reference is to a FHIR RESTful server.

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
MedicationRequest.subject.type
DefinitionThe expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent. The type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. "Patient" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources).
Cardinality0...1
Typeuri
Binding

Aa resource (or, for logical models, the URI of the logical model).

ResourceType (extensible)
SummaryTrue
Comments

This element is used to indicate the type of the target of the reference. This may be used which ever of the other elements are populated (or not). In some cases, the type of the target may be determined by inspection of the reference (e.g. a RESTful URL) or by resolving the target of the reference; if both the type and a reference is provided, the reference SHALL resolve to a resource of the same type as that specified.

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
MedicationRequest.subject.identifier
DefinitionAn identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference.
Cardinality0...1
TypeIdentifier
SummaryTrue
Comments

When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy.

When both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference

Applications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it.

Reference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any).

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
  • rim: .identifier
MedicationRequest.subject.identifier.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
MedicationRequest.subject.identifier.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
MedicationRequest.subject.identifier.use
DefinitionThe purpose of this identifier.
Cardinality0...1
Typecode
Binding

Identifies the purpose for this identifier, if known .

IdentifierUse (required)
ModifierTrue
SummaryTrue
Requirements

Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers.

Comments

Applications can assume that an identifier is permanent unless it explicitly says that it is temporary.

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: Role.code or implied by context
MedicationRequest.subject.identifier.type
DefinitionA coded type for the identifier that can be used to determine which identifier to use for a specific purpose.
Cardinality0...1
TypeCodeableConcept
Binding

A coded type for an identifier that can be used to determine which identifier to use for a specific purpose.

Identifier Type Codes (extensible)
SummaryTrue
Requirements

Allows users to make use of identifiers when the identifier system is not known.

Comments

This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type.

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: CX.5
  • rim: Role.code or implied by context
MedicationRequest.subject.identifier.system
DefinitionEstablishes the namespace for the value - that is, a URL that describes a set values that are unique.
Cardinality0...1
Typeuri
SummaryTrue
Requirements

There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers.

Comments

Identifier.system is always case sensitive.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Examples
General

http://www.acme.com/identifiers/patient


Mappings
  • rim: n/a
  • v2: CX.4 / EI-2-4
  • rim: II.root or Role.id.root
  • servd: ./IdentifierType
MedicationRequest.subject.identifier.value
DefinitionThe portion of the identifier typically relevant to the user and which is unique within the context of the system.
Cardinality0...1
Typestring
SummaryTrue
Comments

If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Examples
General

123456


Mappings
  • rim: n/a
  • v2: CX.1 / EI.1
  • rim: II.extension or II.root if system indicates OID or GUID (Or Role.id.extension or root)
  • servd: ./Value
MedicationRequest.subject.identifier.period
DefinitionTime period during which identifier is/was valid for use.
Cardinality0...1
TypePeriod
SummaryTrue
Comments

A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times").

Period is not used for a duration (a measure of elapsed time). See Duration.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • per-1: If present, start SHALL have a lower value than end
    start.hasValue().not() or end.hasValue().not() or (start <= end)
Mappings
  • rim: n/a
  • v2: DR
  • rim: IVL<TS>[lowClosed="true" and highClosed="true"] or URG<TS>[lowClosed="true" and highClosed="true"]
  • v2: CX.7 + CX.8
  • rim: Role.effectiveTime or implied by context
  • servd: ./StartDate and ./EndDate
MedicationRequest.subject.identifier.assigner
DefinitionOrganization that issued/manages the identifier.
Cardinality0...1
TypeReference()
SummaryTrue
Comments

The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization.

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: CX.4 / (CX.4,CX.9,CX.10)
  • rim: II.assigningAuthorityName but note that this is an improper use by the definition of the field. Also Role.scoper
  • servd: ./IdentifierIssuingAuthority
MedicationRequest.subject.display
DefinitionPlain text narrative that identifies the resource in addition to the resource reference.
Cardinality0...1
Typestring
SummaryTrue
Comments

This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it.

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
MedicationRequest.encounter
DefinitionEncounter is required for secondary care prescriptions.
Cardinality0...1
TypeReference()
Comments

This will typically be the encounter the event occurred within, but some activities may be initiated prior to or after the official completion of an encounter but still be tied to the context of the encounter." If there is a need to link to episodes of care they will be handled with an extension.

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: Request.context
  • script10.6: no mapping
  • w5: FiveWs.context
  • v2: PV1-19-Visit Number
  • rim: .inboundRelationship[typeCode=COMP].source[classCode=ENC, moodCode=EVN, code="type of encounter or episode"]
MedicationRequest.encounter.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
MedicationRequest.encounter.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
MedicationRequest.encounter.reference
DefinitionA reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources.
Cardinality0...1
Typestring
SummaryTrue
Comments

Using absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading across closed eco-system boundaries. Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach. If the URL conforms to the structure "/[type]/[id]" then it should be assumed that the reference is to a FHIR RESTful server.

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
MedicationRequest.encounter.type
DefinitionThe expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent. The type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. "Patient" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources).
Cardinality0...1
Typeuri
Binding

Aa resource (or, for logical models, the URI of the logical model).

ResourceType (extensible)
SummaryTrue
Comments

This element is used to indicate the type of the target of the reference. This may be used which ever of the other elements are populated (or not). In some cases, the type of the target may be determined by inspection of the reference (e.g. a RESTful URL) or by resolving the target of the reference; if both the type and a reference is provided, the reference SHALL resolve to a resource of the same type as that specified.

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
MedicationRequest.encounter.identifier
DefinitionAn identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference.
Cardinality0...1
TypeIdentifier
SummaryTrue
Comments

When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy.

When both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference

Applications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it.

Reference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any).

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
  • rim: .identifier
MedicationRequest.encounter.identifier.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
MedicationRequest.encounter.identifier.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
MedicationRequest.encounter.identifier.use
DefinitionThe purpose of this identifier.
Cardinality0...1
Typecode
Binding

Identifies the purpose for this identifier, if known .

IdentifierUse (required)
ModifierTrue
SummaryTrue
Requirements

Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers.

Comments

Applications can assume that an identifier is permanent unless it explicitly says that it is temporary.

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: Role.code or implied by context
MedicationRequest.encounter.identifier.type
DefinitionA coded type for the identifier that can be used to determine which identifier to use for a specific purpose.
Cardinality0...1
TypeCodeableConcept
Binding

A coded type for an identifier that can be used to determine which identifier to use for a specific purpose.

Identifier Type Codes (extensible)
SummaryTrue
Requirements

Allows users to make use of identifiers when the identifier system is not known.

Comments

This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type.

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: CX.5
  • rim: Role.code or implied by context
MedicationRequest.encounter.identifier.system
DefinitionEstablishes the namespace for the value - that is, a URL that describes a set values that are unique.
Cardinality0...1
Typeuri
SummaryTrue
Requirements

There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers.

Comments

Identifier.system is always case sensitive.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Examples
General

http://www.acme.com/identifiers/patient


Mappings
  • rim: n/a
  • v2: CX.4 / EI-2-4
  • rim: II.root or Role.id.root
  • servd: ./IdentifierType
MedicationRequest.encounter.identifier.value
DefinitionThe portion of the identifier typically relevant to the user and which is unique within the context of the system.
Cardinality0...1
Typestring
SummaryTrue
Comments

If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Examples
General

123456


Mappings
  • rim: n/a
  • v2: CX.1 / EI.1
  • rim: II.extension or II.root if system indicates OID or GUID (Or Role.id.extension or root)
  • servd: ./Value
MedicationRequest.encounter.identifier.period
DefinitionTime period during which identifier is/was valid for use.
Cardinality0...1
TypePeriod
SummaryTrue
Comments

A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times").

Period is not used for a duration (a measure of elapsed time). See Duration.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • per-1: If present, start SHALL have a lower value than end
    start.hasValue().not() or end.hasValue().not() or (start <= end)
Mappings
  • rim: n/a
  • v2: DR
  • rim: IVL<TS>[lowClosed="true" and highClosed="true"] or URG<TS>[lowClosed="true" and highClosed="true"]
  • v2: CX.7 + CX.8
  • rim: Role.effectiveTime or implied by context
  • servd: ./StartDate and ./EndDate
MedicationRequest.encounter.identifier.assigner
DefinitionOrganization that issued/manages the identifier.
Cardinality0...1
TypeReference()
SummaryTrue
Comments

The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization.

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: CX.4 / (CX.4,CX.9,CX.10)
  • rim: II.assigningAuthorityName but note that this is an improper use by the definition of the field. Also Role.scoper
  • servd: ./IdentifierIssuingAuthority
MedicationRequest.encounter.display
DefinitionPlain text narrative that identifies the resource in addition to the resource reference.
Cardinality0...1
Typestring
SummaryTrue
Comments

This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it.

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
MedicationRequest.supportingInformation
DefinitionInclude additional information (for example, patient height and weight) that supports the ordering of the medication.
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)
  • workflow: Request.supportingInfo
  • 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)]
MedicationRequest.supportingInformation.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
MedicationRequest.supportingInformation.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
MedicationRequest.supportingInformation.reference
DefinitionA reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources.
Cardinality0...1
Typestring
SummaryTrue
Comments

Using absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading across closed eco-system boundaries. Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach. If the URL conforms to the structure "/[type]/[id]" then it should be assumed that the reference is to a FHIR RESTful server.

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
MedicationRequest.supportingInformation.type
DefinitionThe expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent. The type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. "Patient" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources).
Cardinality0...1
Typeuri
Binding

Aa resource (or, for logical models, the URI of the logical model).

ResourceType (extensible)
SummaryTrue
Comments

This element is used to indicate the type of the target of the reference. This may be used which ever of the other elements are populated (or not). In some cases, the type of the target may be determined by inspection of the reference (e.g. a RESTful URL) or by resolving the target of the reference; if both the type and a reference is provided, the reference SHALL resolve to a resource of the same type as that specified.

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
MedicationRequest.supportingInformation.identifier
DefinitionAn identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference.
Cardinality0...1
TypeIdentifier
SummaryTrue
Comments

When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy.

When both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference

Applications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it.

Reference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any).

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
  • rim: .identifier
MedicationRequest.supportingInformation.identifier.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
MedicationRequest.supportingInformation.identifier.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
MedicationRequest.supportingInformation.identifier.use
DefinitionThe purpose of this identifier.
Cardinality0...1
Typecode
Binding

Identifies the purpose for this identifier, if known .

IdentifierUse (required)
ModifierTrue
SummaryTrue
Requirements

Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers.

Comments

Applications can assume that an identifier is permanent unless it explicitly says that it is temporary.

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: Role.code or implied by context
MedicationRequest.supportingInformation.identifier.type
DefinitionA coded type for the identifier that can be used to determine which identifier to use for a specific purpose.
Cardinality0...1
TypeCodeableConcept
Binding

A coded type for an identifier that can be used to determine which identifier to use for a specific purpose.

Identifier Type Codes (extensible)
SummaryTrue
Requirements

Allows users to make use of identifiers when the identifier system is not known.

Comments

This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type.

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: CX.5
  • rim: Role.code or implied by context
MedicationRequest.supportingInformation.identifier.system
DefinitionEstablishes the namespace for the value - that is, a URL that describes a set values that are unique.
Cardinality0...1
Typeuri
SummaryTrue
Requirements

There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers.

Comments

Identifier.system is always case sensitive.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Examples
General

http://www.acme.com/identifiers/patient


Mappings
  • rim: n/a
  • v2: CX.4 / EI-2-4
  • rim: II.root or Role.id.root
  • servd: ./IdentifierType
MedicationRequest.supportingInformation.identifier.value
DefinitionThe portion of the identifier typically relevant to the user and which is unique within the context of the system.
Cardinality0...1
Typestring
SummaryTrue
Comments

If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Examples
General

123456


Mappings
  • rim: n/a
  • v2: CX.1 / EI.1
  • rim: II.extension or II.root if system indicates OID or GUID (Or Role.id.extension or root)
  • servd: ./Value
MedicationRequest.supportingInformation.identifier.period
DefinitionTime period during which identifier is/was valid for use.
Cardinality0...1
TypePeriod
SummaryTrue
Comments

A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times").

Period is not used for a duration (a measure of elapsed time). See Duration.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • per-1: If present, start SHALL have a lower value than end
    start.hasValue().not() or end.hasValue().not() or (start <= end)
Mappings
  • rim: n/a
  • v2: DR
  • rim: IVL<TS>[lowClosed="true" and highClosed="true"] or URG<TS>[lowClosed="true" and highClosed="true"]
  • v2: CX.7 + CX.8
  • rim: Role.effectiveTime or implied by context
  • servd: ./StartDate and ./EndDate
MedicationRequest.supportingInformation.identifier.assigner
DefinitionOrganization that issued/manages the identifier.
Cardinality0...1
TypeReference()
SummaryTrue
Comments

The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization.

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: CX.4 / (CX.4,CX.9,CX.10)
  • rim: II.assigningAuthorityName but note that this is an improper use by the definition of the field. Also Role.scoper
  • servd: ./IdentifierIssuingAuthority
MedicationRequest.supportingInformation.display
DefinitionPlain text narrative that identifies the resource in addition to the resource reference.
Cardinality0...1
Typestring
SummaryTrue
Comments

This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it.

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
MedicationRequest.authoredOn
DefinitionThe date (and perhaps time) when the prescription was initially written or authored on.
Cardinality1...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
  • workflow: Request.authoredOn
  • script10.6: Message/Body/NewRx/MedicationPrescribed/WrittenDate
  • w5: FiveWs.recorded
  • v2: RXE-32-Original Order Date/Time / ORC-9-Date/Time of Transaction
  • rim: author.time
MedicationRequest.requester
DefinitionThe individual, organization, or device that initiated the request and has responsibility for its activation.
Cardinality1...1
TypeReference()
Must SupportTrue
SummaryTrue
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: Request.requester
  • w5: FiveWs.author
  • rim: .participation[typeCode=AUT].role
MedicationRequest.requester.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
MedicationRequest.requester.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
MedicationRequest.requester.reference
DefinitionA reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources.
Cardinality1...1
Typestring
SummaryTrue
Comments

Using absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading across closed eco-system boundaries. Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach. If the URL conforms to the structure "/[type]/[id]" then it should be assumed that the reference is to a FHIR RESTful server.

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
MedicationRequest.requester.type
DefinitionThe expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent. The type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. "Patient" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources).
Cardinality0...1
Typeuri
Binding

Aa resource (or, for logical models, the URI of the logical model).

ResourceType (extensible)
SummaryTrue
Comments

This element is used to indicate the type of the target of the reference. This may be used which ever of the other elements are populated (or not). In some cases, the type of the target may be determined by inspection of the reference (e.g. a RESTful URL) or by resolving the target of the reference; if both the type and a reference is provided, the reference SHALL resolve to a resource of the same type as that specified.

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
MedicationRequest.requester.identifier
DefinitionAn identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference.
Cardinality0...1
TypeIdentifier
SummaryTrue
Comments

When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy.

When both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference

Applications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it.

Reference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any).

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
  • rim: .identifier
MedicationRequest.requester.identifier.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
MedicationRequest.requester.identifier.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
MedicationRequest.requester.identifier.use
DefinitionThe purpose of this identifier.
Cardinality0...1
Typecode
Binding

Identifies the purpose for this identifier, if known .

IdentifierUse (required)
ModifierTrue
SummaryTrue
Requirements

Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers.

Comments

Applications can assume that an identifier is permanent unless it explicitly says that it is temporary.

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: Role.code or implied by context
MedicationRequest.requester.identifier.type
DefinitionA coded type for the identifier that can be used to determine which identifier to use for a specific purpose.
Cardinality0...1
TypeCodeableConcept
Binding

A coded type for an identifier that can be used to determine which identifier to use for a specific purpose.

Identifier Type Codes (extensible)
SummaryTrue
Requirements

Allows users to make use of identifiers when the identifier system is not known.

Comments

This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type.

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: CX.5
  • rim: Role.code or implied by context
MedicationRequest.requester.identifier.system
DefinitionEstablishes the namespace for the value - that is, a URL that describes a set values that are unique.
Cardinality0...1
Typeuri
SummaryTrue
Requirements

There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers.

Comments

Identifier.system is always case sensitive.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Examples
General

http://www.acme.com/identifiers/patient


Mappings
  • rim: n/a
  • v2: CX.4 / EI-2-4
  • rim: II.root or Role.id.root
  • servd: ./IdentifierType
MedicationRequest.requester.identifier.value
DefinitionThe portion of the identifier typically relevant to the user and which is unique within the context of the system.
Cardinality0...1
Typestring
SummaryTrue
Comments

If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Examples
General

123456


Mappings
  • rim: n/a
  • v2: CX.1 / EI.1
  • rim: II.extension or II.root if system indicates OID or GUID (Or Role.id.extension or root)
  • servd: ./Value
MedicationRequest.requester.identifier.period
DefinitionTime period during which identifier is/was valid for use.
Cardinality0...1
TypePeriod
SummaryTrue
Comments

A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times").

Period is not used for a duration (a measure of elapsed time). See Duration.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • per-1: If present, start SHALL have a lower value than end
    start.hasValue().not() or end.hasValue().not() or (start <= end)
Mappings
  • rim: n/a
  • v2: DR
  • rim: IVL<TS>[lowClosed="true" and highClosed="true"] or URG<TS>[lowClosed="true" and highClosed="true"]
  • v2: CX.7 + CX.8
  • rim: Role.effectiveTime or implied by context
  • servd: ./StartDate and ./EndDate
MedicationRequest.requester.identifier.assigner
DefinitionOrganization that issued/manages the identifier.
Cardinality0...1
TypeReference()
SummaryTrue
Comments

The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization.

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: CX.4 / (CX.4,CX.9,CX.10)
  • rim: II.assigningAuthorityName but note that this is an improper use by the definition of the field. Also Role.scoper
  • servd: ./IdentifierIssuingAuthority
MedicationRequest.requester.display
DefinitionPlain text narrative that identifies the resource in addition to the resource reference.
Cardinality0...1
Typestring
SummaryTrue
Comments

This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it.

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
MedicationRequest.performer
DefinitionThe specified desired performer of the medication treatment (e.g. the performer of the medication administration).
Cardinality0...1
TypeReference(Device | | | | | | )
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: Request.performer
  • w5: FiveWs.actor
  • rim: .participation[typeCode=PRF].role[scoper.determinerCode=INSTANCE]
MedicationRequest.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
MedicationRequest.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
MedicationRequest.performer.reference
DefinitionA reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources.
Cardinality0...1
Typestring
SummaryTrue
Comments

Using absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading across closed eco-system boundaries. Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach. If the URL conforms to the structure "/[type]/[id]" then it should be assumed that the reference is to a FHIR RESTful server.

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
MedicationRequest.performer.type
DefinitionThe expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent. The type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. "Patient" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources).
Cardinality0...1
Typeuri
Binding

Aa resource (or, for logical models, the URI of the logical model).

ResourceType (extensible)
SummaryTrue
Comments

This element is used to indicate the type of the target of the reference. This may be used which ever of the other elements are populated (or not). In some cases, the type of the target may be determined by inspection of the reference (e.g. a RESTful URL) or by resolving the target of the reference; if both the type and a reference is provided, the reference SHALL resolve to a resource of the same type as that specified.

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
MedicationRequest.performer.identifier
DefinitionAn identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference.
Cardinality0...1
TypeIdentifier
SummaryTrue
Comments

When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy.

When both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference

Applications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it.

Reference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any).

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
  • rim: .identifier
MedicationRequest.performer.identifier.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
MedicationRequest.performer.identifier.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
MedicationRequest.performer.identifier.use
DefinitionThe purpose of this identifier.
Cardinality0...1
Typecode
Binding

Identifies the purpose for this identifier, if known .

IdentifierUse (required)
ModifierTrue
SummaryTrue
Requirements

Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers.

Comments

Applications can assume that an identifier is permanent unless it explicitly says that it is temporary.

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: Role.code or implied by context
MedicationRequest.performer.identifier.type
DefinitionA coded type for the identifier that can be used to determine which identifier to use for a specific purpose.
Cardinality0...1
TypeCodeableConcept
Binding

A coded type for an identifier that can be used to determine which identifier to use for a specific purpose.

Identifier Type Codes (extensible)
SummaryTrue
Requirements

Allows users to make use of identifiers when the identifier system is not known.

Comments

This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type.

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: CX.5
  • rim: Role.code or implied by context
MedicationRequest.performer.identifier.system
DefinitionEstablishes the namespace for the value - that is, a URL that describes a set values that are unique.
Cardinality0...1
Typeuri
SummaryTrue
Requirements

There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers.

Comments

Identifier.system is always case sensitive.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Examples
General

http://www.acme.com/identifiers/patient


Mappings
  • rim: n/a
  • v2: CX.4 / EI-2-4
  • rim: II.root or Role.id.root
  • servd: ./IdentifierType
MedicationRequest.performer.identifier.value
DefinitionThe portion of the identifier typically relevant to the user and which is unique within the context of the system.
Cardinality0...1
Typestring
SummaryTrue
Comments

If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Examples
General

123456


Mappings
  • rim: n/a
  • v2: CX.1 / EI.1
  • rim: II.extension or II.root if system indicates OID or GUID (Or Role.id.extension or root)
  • servd: ./Value
MedicationRequest.performer.identifier.period
DefinitionTime period during which identifier is/was valid for use.
Cardinality0...1
TypePeriod
SummaryTrue
Comments

A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times").

Period is not used for a duration (a measure of elapsed time). See Duration.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • per-1: If present, start SHALL have a lower value than end
    start.hasValue().not() or end.hasValue().not() or (start <= end)
Mappings
  • rim: n/a
  • v2: DR
  • rim: IVL<TS>[lowClosed="true" and highClosed="true"] or URG<TS>[lowClosed="true" and highClosed="true"]
  • v2: CX.7 + CX.8
  • rim: Role.effectiveTime or implied by context
  • servd: ./StartDate and ./EndDate
MedicationRequest.performer.identifier.assigner
DefinitionOrganization that issued/manages the identifier.
Cardinality0...1
TypeReference()
SummaryTrue
Comments

The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization.

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: CX.4 / (CX.4,CX.9,CX.10)
  • rim: II.assigningAuthorityName but note that this is an improper use by the definition of the field. Also Role.scoper
  • servd: ./IdentifierIssuingAuthority
MedicationRequest.performer.display
DefinitionPlain text narrative that identifies the resource in addition to the resource reference.
Cardinality0...1
Typestring
SummaryTrue
Comments

This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it.

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
MedicationRequest.performerType
DefinitionIndicates the type of performer of the administration of the medication.
Cardinality0...1
TypeCodeableConcept
Binding

Identifies the type of individual that is desired to administer the medication.

ProcedurePerformerRoleCodes (example)
SummaryTrue
Comments

If specified without indicating a performer, this indicates that the performer must be of the specified type. If specified with a performer then it indicates the requirements of the performer if the designated performer is not available.

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
  • workflow: Request.performerType
  • rim: .participation[typeCode=PRF].role[scoper.determinerCode=KIND].code
MedicationRequest.recorder
DefinitionThe person who entered the order on behalf of another individual for example in the case of a verbal or a telephone order.
Cardinality0...1
TypeReference( | )
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.who
  • rim: .participation[typeCode=TRANS].role[classCode=ASSIGNED].code (HealthcareProviderType)
MedicationRequest.recorder.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
MedicationRequest.recorder.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
MedicationRequest.recorder.reference
DefinitionA reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources.
Cardinality0...1
Typestring
SummaryTrue
Comments

Using absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading across closed eco-system boundaries. Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach. If the URL conforms to the structure "/[type]/[id]" then it should be assumed that the reference is to a FHIR RESTful server.

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
MedicationRequest.recorder.type
DefinitionThe expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent. The type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. "Patient" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources).
Cardinality0...1
Typeuri
Binding

Aa resource (or, for logical models, the URI of the logical model).

ResourceType (extensible)
SummaryTrue
Comments

This element is used to indicate the type of the target of the reference. This may be used which ever of the other elements are populated (or not). In some cases, the type of the target may be determined by inspection of the reference (e.g. a RESTful URL) or by resolving the target of the reference; if both the type and a reference is provided, the reference SHALL resolve to a resource of the same type as that specified.

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
MedicationRequest.recorder.identifier
DefinitionAn identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference.
Cardinality0...1
TypeIdentifier
SummaryTrue
Comments

When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy.

When both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference

Applications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it.

Reference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any).

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
  • rim: .identifier
MedicationRequest.recorder.identifier.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
MedicationRequest.recorder.identifier.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
MedicationRequest.recorder.identifier.use
DefinitionThe purpose of this identifier.
Cardinality0...1
Typecode
Binding

Identifies the purpose for this identifier, if known .

IdentifierUse (required)
ModifierTrue
SummaryTrue
Requirements

Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers.

Comments

Applications can assume that an identifier is permanent unless it explicitly says that it is temporary.

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: Role.code or implied by context
MedicationRequest.recorder.identifier.type
DefinitionA coded type for the identifier that can be used to determine which identifier to use for a specific purpose.
Cardinality0...1
TypeCodeableConcept
Binding

A coded type for an identifier that can be used to determine which identifier to use for a specific purpose.

Identifier Type Codes (extensible)
SummaryTrue
Requirements

Allows users to make use of identifiers when the identifier system is not known.

Comments

This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type.

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: CX.5
  • rim: Role.code or implied by context
MedicationRequest.recorder.identifier.system
DefinitionEstablishes the namespace for the value - that is, a URL that describes a set values that are unique.
Cardinality0...1
Typeuri
SummaryTrue
Requirements

There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers.

Comments

Identifier.system is always case sensitive.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Examples
General

http://www.acme.com/identifiers/patient


Mappings
  • rim: n/a
  • v2: CX.4 / EI-2-4
  • rim: II.root or Role.id.root
  • servd: ./IdentifierType
MedicationRequest.recorder.identifier.value
DefinitionThe portion of the identifier typically relevant to the user and which is unique within the context of the system.
Cardinality0...1
Typestring
SummaryTrue
Comments

If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Examples
General

123456


Mappings
  • rim: n/a
  • v2: CX.1 / EI.1
  • rim: II.extension or II.root if system indicates OID or GUID (Or Role.id.extension or root)
  • servd: ./Value
MedicationRequest.recorder.identifier.period
DefinitionTime period during which identifier is/was valid for use.
Cardinality0...1
TypePeriod
SummaryTrue
Comments

A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times").

Period is not used for a duration (a measure of elapsed time). See Duration.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • per-1: If present, start SHALL have a lower value than end
    start.hasValue().not() or end.hasValue().not() or (start <= end)
Mappings
  • rim: n/a
  • v2: DR
  • rim: IVL<TS>[lowClosed="true" and highClosed="true"] or URG<TS>[lowClosed="true" and highClosed="true"]
  • v2: CX.7 + CX.8
  • rim: Role.effectiveTime or implied by context
  • servd: ./StartDate and ./EndDate
MedicationRequest.recorder.identifier.assigner
DefinitionOrganization that issued/manages the identifier.
Cardinality0...1
TypeReference()
SummaryTrue
Comments

The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization.

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: CX.4 / (CX.4,CX.9,CX.10)
  • rim: II.assigningAuthorityName but note that this is an improper use by the definition of the field. Also Role.scoper
  • servd: ./IdentifierIssuingAuthority
MedicationRequest.recorder.display
DefinitionPlain text narrative that identifies the resource in addition to the resource reference.
Cardinality0...1
Typestring
SummaryTrue
Comments

This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it.

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
MedicationRequest.reasonCode
DefinitionThe reason or the indication for ordering or not ordering the medication.
Cardinality0...*
TypeCodeableConcept
Binding

A coded concept indicating why the medication was ordered.

Condition/Problem/DiagnosisCodes (example)
Comments

This could be a diagnosis code. If a full condition record exists or additional detail is needed, use reasonReference.

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
  • workflow: Request.reasonCode
  • script10.6: Message/Body/NewRx/MedicationPrescribed/Diagnosis/Primary/Value
  • w5: FiveWs.why[x]
  • v2: ORC-16-Order Control Code Reason /RXE-27-Give Indication/RXO-20-Indication / RXD-21-Indication / RXG-22-Indication / RXA-19-Indication
  • rim: reason.observation.reasonCode
MedicationRequest.reasonReference
DefinitionCondition or observation that supports why the medication was ordered.
Cardinality0...*
TypeReference( | )
Comments

This is a reference to a condition or observation that is the reason for the medication order. If only a code exists, use reasonCode.

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: Request.reasonReference
  • script10.6: no mapping
  • w5: FiveWs.why[x]
  • rim: reason.observation[code=ASSERTION].value
MedicationRequest.reasonReference.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
MedicationRequest.reasonReference.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
MedicationRequest.reasonReference.reference
DefinitionA reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources.
Cardinality0...1
Typestring
SummaryTrue
Comments

Using absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading across closed eco-system boundaries. Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach. If the URL conforms to the structure "/[type]/[id]" then it should be assumed that the reference is to a FHIR RESTful server.

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
MedicationRequest.reasonReference.type
DefinitionThe expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent. The type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. "Patient" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources).
Cardinality0...1
Typeuri
Binding

Aa resource (or, for logical models, the URI of the logical model).

ResourceType (extensible)
SummaryTrue
Comments

This element is used to indicate the type of the target of the reference. This may be used which ever of the other elements are populated (or not). In some cases, the type of the target may be determined by inspection of the reference (e.g. a RESTful URL) or by resolving the target of the reference; if both the type and a reference is provided, the reference SHALL resolve to a resource of the same type as that specified.

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
MedicationRequest.reasonReference.identifier
DefinitionAn identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference.
Cardinality0...1
TypeIdentifier
SummaryTrue
Comments

When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy.

When both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference

Applications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it.

Reference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any).

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
  • rim: .identifier
MedicationRequest.reasonReference.identifier.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
MedicationRequest.reasonReference.identifier.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
MedicationRequest.reasonReference.identifier.use
DefinitionThe purpose of this identifier.
Cardinality0...1
Typecode
Binding

Identifies the purpose for this identifier, if known .

IdentifierUse (required)
ModifierTrue
SummaryTrue
Requirements

Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers.

Comments

Applications can assume that an identifier is permanent unless it explicitly says that it is temporary.

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: Role.code or implied by context
MedicationRequest.reasonReference.identifier.type
DefinitionA coded type for the identifier that can be used to determine which identifier to use for a specific purpose.
Cardinality0...1
TypeCodeableConcept
Binding

A coded type for an identifier that can be used to determine which identifier to use for a specific purpose.

Identifier Type Codes (extensible)
SummaryTrue
Requirements

Allows users to make use of identifiers when the identifier system is not known.

Comments

This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type.

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: CX.5
  • rim: Role.code or implied by context
MedicationRequest.reasonReference.identifier.system
DefinitionEstablishes the namespace for the value - that is, a URL that describes a set values that are unique.
Cardinality0...1
Typeuri
SummaryTrue
Requirements

There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers.

Comments

Identifier.system is always case sensitive.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Examples
General

http://www.acme.com/identifiers/patient


Mappings
  • rim: n/a
  • v2: CX.4 / EI-2-4
  • rim: II.root or Role.id.root
  • servd: ./IdentifierType
MedicationRequest.reasonReference.identifier.value
DefinitionThe portion of the identifier typically relevant to the user and which is unique within the context of the system.
Cardinality0...1
Typestring
SummaryTrue
Comments

If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Examples
General

123456


Mappings
  • rim: n/a
  • v2: CX.1 / EI.1
  • rim: II.extension or II.root if system indicates OID or GUID (Or Role.id.extension or root)
  • servd: ./Value
MedicationRequest.reasonReference.identifier.period
DefinitionTime period during which identifier is/was valid for use.
Cardinality0...1
TypePeriod
SummaryTrue
Comments

A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times").

Period is not used for a duration (a measure of elapsed time). See Duration.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • per-1: If present, start SHALL have a lower value than end
    start.hasValue().not() or end.hasValue().not() or (start <= end)
Mappings
  • rim: n/a
  • v2: DR
  • rim: IVL<TS>[lowClosed="true" and highClosed="true"] or URG<TS>[lowClosed="true" and highClosed="true"]
  • v2: CX.7 + CX.8
  • rim: Role.effectiveTime or implied by context
  • servd: ./StartDate and ./EndDate
MedicationRequest.reasonReference.identifier.assigner
DefinitionOrganization that issued/manages the identifier.
Cardinality0...1
TypeReference()
SummaryTrue
Comments

The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization.

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: CX.4 / (CX.4,CX.9,CX.10)
  • rim: II.assigningAuthorityName but note that this is an improper use by the definition of the field. Also Role.scoper
  • servd: ./IdentifierIssuingAuthority
MedicationRequest.reasonReference.display
DefinitionPlain text narrative that identifies the resource in addition to the resource reference.
Cardinality0...1
Typestring
SummaryTrue
Comments

This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it.

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
MedicationRequest.instantiatesCanonical
DefinitionThe URL pointing to a protocol, guideline, orderset, or other definition that is adhered to in whole or in part by this MedicationRequest.
Cardinality0...*
Typecanonical()
SummaryTrue
Comments

see Canonical References

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • workflow: Request.instantiates
  • rim: .outboundRelationship[typeCode=DEFN].target
MedicationRequest.instantiatesUri
DefinitionThe URL pointing to an externally maintained protocol, guideline, orderset or other definition that is adhered to in whole or in part by this MedicationRequest.
Cardinality0...*
Typeuri
SummaryTrue
Comments

see http://en.wikipedia.org/wiki/Uniform_resource_identifier

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=DEFN].target
MedicationRequest.basedOn
DefinitionA plan or request that is fulfilled in whole or in part by this medication request.
Cardinality0...*
TypeReference(ImmunizationRecommendation | )
SummaryTrue
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: Request.basedOn
  • rim: .outboundRelationship[typeCode=FLFS].target[classCode=SBADM or PROC or PCPR or OBS, moodCode=RQO orPLAN or PRP]
MedicationRequest.basedOn.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
MedicationRequest.basedOn.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
MedicationRequest.basedOn.reference
DefinitionA reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources.
Cardinality0...1
Typestring
SummaryTrue
Comments

Using absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading across closed eco-system boundaries. Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach. If the URL conforms to the structure "/[type]/[id]" then it should be assumed that the reference is to a FHIR RESTful server.

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
MedicationRequest.basedOn.type
DefinitionThe expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent. The type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. "Patient" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources).
Cardinality0...1
Typeuri
Binding

Aa resource (or, for logical models, the URI of the logical model).

ResourceType (extensible)
SummaryTrue
Comments

This element is used to indicate the type of the target of the reference. This may be used which ever of the other elements are populated (or not). In some cases, the type of the target may be determined by inspection of the reference (e.g. a RESTful URL) or by resolving the target of the reference; if both the type and a reference is provided, the reference SHALL resolve to a resource of the same type as that specified.

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
MedicationRequest.basedOn.identifier
DefinitionAn identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference.
Cardinality0...1
TypeIdentifier
SummaryTrue
Comments

When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy.

When both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference

Applications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it.

Reference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any).

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
  • rim: .identifier
MedicationRequest.basedOn.identifier.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
MedicationRequest.basedOn.identifier.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
MedicationRequest.basedOn.identifier.use
DefinitionThe purpose of this identifier.
Cardinality0...1
Typecode
Binding

Identifies the purpose for this identifier, if known .

IdentifierUse (required)
ModifierTrue
SummaryTrue
Requirements

Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers.

Comments

Applications can assume that an identifier is permanent unless it explicitly says that it is temporary.

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: Role.code or implied by context
MedicationRequest.basedOn.identifier.type
DefinitionA coded type for the identifier that can be used to determine which identifier to use for a specific purpose.
Cardinality0...1
TypeCodeableConcept
Binding

A coded type for an identifier that can be used to determine which identifier to use for a specific purpose.

Identifier Type Codes (extensible)
SummaryTrue
Requirements

Allows users to make use of identifiers when the identifier system is not known.

Comments

This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type.

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: CX.5
  • rim: Role.code or implied by context
MedicationRequest.basedOn.identifier.system
DefinitionEstablishes the namespace for the value - that is, a URL that describes a set values that are unique.
Cardinality0...1
Typeuri
SummaryTrue
Requirements

There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers.

Comments

Identifier.system is always case sensitive.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Examples
General

http://www.acme.com/identifiers/patient


Mappings
  • rim: n/a
  • v2: CX.4 / EI-2-4
  • rim: II.root or Role.id.root
  • servd: ./IdentifierType
MedicationRequest.basedOn.identifier.value
DefinitionThe portion of the identifier typically relevant to the user and which is unique within the context of the system.
Cardinality0...1
Typestring
SummaryTrue
Comments

If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Examples
General

123456


Mappings
  • rim: n/a
  • v2: CX.1 / EI.1
  • rim: II.extension or II.root if system indicates OID or GUID (Or Role.id.extension or root)
  • servd: ./Value
MedicationRequest.basedOn.identifier.period
DefinitionTime period during which identifier is/was valid for use.
Cardinality0...1
TypePeriod
SummaryTrue
Comments

A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times").

Period is not used for a duration (a measure of elapsed time). See Duration.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • per-1: If present, start SHALL have a lower value than end
    start.hasValue().not() or end.hasValue().not() or (start <= end)
Mappings
  • rim: n/a
  • v2: DR
  • rim: IVL<TS>[lowClosed="true" and highClosed="true"] or URG<TS>[lowClosed="true" and highClosed="true"]
  • v2: CX.7 + CX.8
  • rim: Role.effectiveTime or implied by context
  • servd: ./StartDate and ./EndDate
MedicationRequest.basedOn.identifier.assigner
DefinitionOrganization that issued/manages the identifier.
Cardinality0...1
TypeReference()
SummaryTrue
Comments

The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization.

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: CX.4 / (CX.4,CX.9,CX.10)
  • rim: II.assigningAuthorityName but note that this is an improper use by the definition of the field. Also Role.scoper
  • servd: ./IdentifierIssuingAuthority
MedicationRequest.basedOn.display
DefinitionPlain text narrative that identifies the resource in addition to the resource reference.
Cardinality0...1
Typestring
SummaryTrue
Comments

This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it.

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
MedicationRequest.groupIdentifier
DefinitionThe short form prescription identifier
Cardinality1...1
TypeIdentifier
Must SupportTrue
SummaryTrue
Requirements

Requests are linked either by a "basedOn" relationship (i.e. one request is fulfilling another) or by having a common requisition. Requests that are part of the same requisition are generally treated independently from the perspective of changing their state or maintaining them after initial creation.

Comments

ITK HL7v3 Mapping = The groupIdentifier is equivalent to ParentPrescription.id (prescription-order-number). The extension is used to carry the ParentPrescription.id (UUID).

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: Request.groupIdentifier
  • rim: .outboundRelationship(typeCode=COMP].target[classCode=SBADM, moodCode=INT].id
MedicationRequest.groupIdentifier.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
MedicationRequest.groupIdentifier.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
MedicationRequest.groupIdentifier.extension:PrescriptionOrderUUID
DefinitionOptional Extension Element - found in all resources.
Cardinality1...1
TypeExtension(Identifier)
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.

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
MedicationRequest.groupIdentifier.extension:PrescriptionOrderUUID.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
MedicationRequest.groupIdentifier.extension:PrescriptionOrderUUID.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
MedicationRequest.groupIdentifier.extension:PrescriptionOrderUUID.url
DefinitionSource of the definition for the extension code - a logical name or a URL.
Cardinality1...1
Typeuri
Comments

The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.

Fixed Value

https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId

Mappings
  • rim: N/A
MedicationRequest.groupIdentifier.extension:PrescriptionOrderUUID.value[x]
DefinitionValue of extension - must be one of a constrained set of the data types (see [Extensibility](extensibility.html) for a list).
Cardinality0...1
TypeIdentifier
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: N/A
MedicationRequest.groupIdentifier.extension:PrescriptionOrderUUID.value[x].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
MedicationRequest.groupIdentifier.extension:PrescriptionOrderUUID.value[x].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
MedicationRequest.groupIdentifier.extension:PrescriptionOrderUUID.value[x].use
DefinitionThe purpose of this identifier.
Cardinality0...1
Typecode
Binding

Identifies the purpose for this identifier, if known .

IdentifierUse (required)
ModifierTrue
SummaryTrue
Requirements

Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers.

Comments

Applications can assume that an identifier is permanent unless it explicitly says that it is temporary.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: N/A
  • rim: Role.code or implied by context
MedicationRequest.groupIdentifier.extension:PrescriptionOrderUUID.value[x].type
DefinitionA coded type for the identifier that can be used to determine which identifier to use for a specific purpose.
Cardinality0...1
TypeCodeableConcept
Binding

A coded type for an identifier that can be used to determine which identifier to use for a specific purpose.

Identifier Type Codes (extensible)
SummaryTrue
Requirements

Allows users to make use of identifiers when the identifier system is not known.

Comments

This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: CX.5
  • rim: Role.code or implied by context
MedicationRequest.groupIdentifier.extension:PrescriptionOrderUUID.value[x].system
DefinitionEstablishes the namespace for the value - that is, a URL that describes a set values that are unique.
Cardinality1...1
Typeuri
SummaryTrue
Requirements

There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers.

Comments

Identifier.system is always case sensitive.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Fixed Value

https://fhir.nhs.uk/Id/prescription

Mappings
  • v2: CX.4 / EI-2-4
  • rim: II.root or Role.id.root
  • servd: ./IdentifierType
MedicationRequest.groupIdentifier.extension:PrescriptionOrderUUID.value[x].value
DefinitionThe portion of the identifier typically relevant to the user and which is unique within the context of the system.
Cardinality1...1
Typestring
SummaryTrue
Comments

If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Examples
General

123456


Mappings
  • v2: CX.1 / EI.1
  • rim: II.extension or II.root if system indicates OID or GUID (Or Role.id.extension or root)
  • servd: ./Value
MedicationRequest.groupIdentifier.extension:PrescriptionOrderUUID.value[x].period
DefinitionTime period during which identifier is/was valid for use.
Cardinality0...1
TypePeriod
SummaryTrue
Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: CX.7 + CX.8
  • rim: Role.effectiveTime or implied by context
  • servd: ./StartDate and ./EndDate
MedicationRequest.groupIdentifier.extension:PrescriptionOrderUUID.value[x].assigner
DefinitionOrganization that issued/manages the identifier.
Cardinality0...1
TypeReference(Organization)
SummaryTrue
Comments

The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: CX.4 / (CX.4,CX.9,CX.10)
  • rim: II.assigningAuthorityName but note that this is an improper use by the definition of the field. Also Role.scoper
  • servd: ./IdentifierIssuingAuthority
MedicationRequest.groupIdentifier.use
DefinitionThe purpose of this identifier.
Cardinality0...1
Typecode
Binding

Identifies the purpose for this identifier, if known .

IdentifierUse (required)
ModifierTrue
SummaryTrue
Requirements

Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers.

Comments

Applications can assume that an identifier is permanent unless it explicitly says that it is temporary.

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: Role.code or implied by context
MedicationRequest.groupIdentifier.type
DefinitionA coded type for the identifier that can be used to determine which identifier to use for a specific purpose.
Cardinality0...1
TypeCodeableConcept
Binding

A coded type for an identifier that can be used to determine which identifier to use for a specific purpose.

Identifier Type Codes (extensible)
SummaryTrue
Requirements

Allows users to make use of identifiers when the identifier system is not known.

Comments

This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type.

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: CX.5
  • rim: Role.code or implied by context
MedicationRequest.groupIdentifier.system
DefinitionEstablishes the namespace for the value - that is, a URL that describes a set values that are unique.
Cardinality1...1
Typeuri
SummaryTrue
Requirements

There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers.

Comments

Identifier.system is always case sensitive.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Fixed Value

https://fhir.nhs.uk/Id/prescription-order-number

Mappings
  • rim: n/a
  • v2: CX.4 / EI-2-4
  • rim: II.root or Role.id.root
  • servd: ./IdentifierType
MedicationRequest.groupIdentifier.value
DefinitionThe portion of the identifier typically relevant to the user and which is unique within the context of the system.
Cardinality1...1
Typestring
SummaryTrue
Comments

If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Examples
General

123456


Mappings
  • rim: n/a
  • v2: CX.1 / EI.1
  • rim: II.extension or II.root if system indicates OID or GUID (Or Role.id.extension or root)
  • servd: ./Value
MedicationRequest.groupIdentifier.period
DefinitionTime period during which identifier is/was valid for use.
Cardinality0...1
TypePeriod
SummaryTrue
Comments

A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times").

Period is not used for a duration (a measure of elapsed time). See Duration.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • per-1: If present, start SHALL have a lower value than end
    start.hasValue().not() or end.hasValue().not() or (start <= end)
Mappings
  • rim: n/a
  • v2: DR
  • rim: IVL<TS>[lowClosed="true" and highClosed="true"] or URG<TS>[lowClosed="true" and highClosed="true"]
  • v2: CX.7 + CX.8
  • rim: Role.effectiveTime or implied by context
  • servd: ./StartDate and ./EndDate
MedicationRequest.groupIdentifier.assigner
DefinitionOrganization that issued/manages the identifier.
Cardinality0...1
TypeReference()
SummaryTrue
Comments

The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization.

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: CX.4 / (CX.4,CX.9,CX.10)
  • rim: II.assigningAuthorityName but note that this is an improper use by the definition of the field. Also Role.scoper
  • servd: ./IdentifierIssuingAuthority
MedicationRequest.courseOfTherapyType
DefinitionThe description of the overall pattern of the administration of the medication to the patient. Required for prescription-order
Cardinality1...1
TypeCodeableConcept
Binding

Identifies the overall pattern of medication administratio.

(required)
Must SupportTrue
Comments

The type of prescription e.g. acute, continuous, etc. Was extension in STU3 https://fhir.hl7.org.uk/STU3/StructureDefinition/Extension-CareConnect-PrescriptionType-1 and Digital Medicine uses international codes, so continuous in place of repeat.

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: Act.code where classCode = LIST and moodCode = EVN
MedicationRequest.courseOfTherapyType.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
MedicationRequest.courseOfTherapyType.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
MedicationRequest.courseOfTherapyType.coding
DefinitionA reference to a code defined by a terminology system.
Cardinality1...1
TypeCoding
SummaryTrue
Requirements

Allows for alternative encodings within a code system, and translations to other code systems.

Comments

Codes may be defined very casually in enumerations, or code lists, up to very formal definitions such as SNOMED CT - see the HL7 v3 Core Principles for more information. Ordering of codings is undefined and SHALL NOT be used to infer meaning. Generally, at most only one of the coding values will be labeled as UserSelected = true.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: C*E.1-8, C*E.10-22
  • rim: union(., ./translation)
  • orim: fhir:CodeableConcept.coding rdfs:subPropertyOf dt:CD.coding
MedicationRequest.courseOfTherapyType.coding.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
MedicationRequest.courseOfTherapyType.coding.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
MedicationRequest.courseOfTherapyType.coding.system
DefinitionThe identification of the code system that defines the meaning of the symbol in the code.
Cardinality1...1
Typeuri
SummaryTrue
Requirements

Need to be unambiguous about the source of the definition of the symbol.

Comments

The URI may be an OID (urn:oid:...) or a UUID (urn:uuid:...). OIDs and UUIDs SHALL be references to the HL7 OID registry. Otherwise, the URI should come from HL7's list of FHIR defined special URIs or it should reference to some definition that establishes the system clearly and unambiguously.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: C*E.3
  • rim: ./codeSystem
  • orim: fhir:Coding.system rdfs:subPropertyOf dt:CDCoding.codeSystem
MedicationRequest.courseOfTherapyType.coding.version
DefinitionThe version of the code system which was used when choosing this code. Note that a well-maintained code system does not need the version reported, because the meaning of codes is consistent across versions. However this cannot consistently be assured, and when the meaning is not guaranteed to be consistent, the version SHOULD be exchanged.
Cardinality0...1
Typestring
SummaryTrue
Comments

Where the terminology does not clearly define what string should be used to identify code system versions, the recommendation is to use the date (expressed in FHIR date format) on which that version was officially published as the version date.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: C*E.7
  • rim: ./codeSystemVersion
  • orim: fhir:Coding.version rdfs:subPropertyOf dt:CDCoding.codeSystemVersion
MedicationRequest.courseOfTherapyType.coding.code
DefinitionA symbol in syntax defined by the system. The symbol may be a predefined code or an expression in a syntax defined by the coding system (e.g. post-coordination).
Cardinality1...1
Typecode
SummaryTrue
Requirements

Need to refer to a particular code in the system.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: C*E.1
  • rim: ./code
  • orim: fhir:Coding.code rdfs:subPropertyOf dt:CDCoding.code
MedicationRequest.courseOfTherapyType.coding.display
DefinitionA representation of the meaning of the code in the system, following the rules of the system.
Cardinality0...1
Typestring
SummaryTrue
Requirements

Need to be able to carry a human-readable meaning of the code for readers that do not know the system.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: C*E.2 - but note this is not well followed
  • rim: CV.displayName
  • orim: fhir:Coding.display rdfs:subPropertyOf dt:CDCoding.displayName
MedicationRequest.courseOfTherapyType.coding.userSelected
DefinitionIndicates that this coding was chosen by a user directly - e.g. off a pick list of available items (codes or displays).
Cardinality0...1
Typeboolean
SummaryTrue
Requirements

This has been identified as a clinical safety criterium - that this exact system/code pair was chosen explicitly, rather than inferred by the system based on some rules or language processing.

Comments

Amongst a set of alternatives, a directly chosen code is the most appropriate starting point for new translations. There is some ambiguity about what exactly 'directly chosen' implies, and trading partner agreement may be needed to clarify the use of this element and its consequences more completely.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: Sometimes implied by being first
  • rim: CD.codingRationale
  • orim: fhir:Coding.userSelected fhir:mapsTo dt:CDCoding.codingRationale. fhir:Coding.userSelected fhir:hasMap fhir:Coding.userSelected.map. fhir:Coding.userSelected.map a fhir:Map; fhir:target dt:CDCoding.codingRationale. fhir:Coding.userSelected\#true a [ fhir:source "true"; fhir:target dt:CDCoding.codingRationale\#O ]
MedicationRequest.courseOfTherapyType.text
DefinitionA human language representation of the concept as seen/selected/uttered by the user who entered the data and/or which represents the intended meaning of the user.
Cardinality0...1
Typestring
SummaryTrue
Requirements

The codes from the terminologies do not always capture the correct meaning with all the nuances of the human using them, or sometimes there is no appropriate code at all. In these cases, the text is used to capture the full meaning of the source.

Comments

Very often the text is the same as a displayName of one of the codings.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: C*E.9. But note many systems use C*E.2 for this
  • rim: ./originalText[mediaType/code="text/plain"]/data
  • orim: fhir:CodeableConcept.text rdfs:subPropertyOf dt:CD.originalText
MedicationRequest.insurance
DefinitionInsurance plans, coverage extensions, pre-authorizations and/or pre-determinations that may be required for delivering the requested service.
Cardinality0...*
TypeReference(Coverage | ClaimResponse)
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: Request.insurance
  • rim: .outboundRelationship[typeCode=COVBY].target
MedicationRequest.insurance.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
MedicationRequest.insurance.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
MedicationRequest.insurance.reference
DefinitionA reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources.
Cardinality0...1
Typestring
SummaryTrue
Comments

Using absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading across closed eco-system boundaries. Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach. If the URL conforms to the structure "/[type]/[id]" then it should be assumed that the reference is to a FHIR RESTful server.

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
MedicationRequest.insurance.type
DefinitionThe expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent. The type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. "Patient" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources).
Cardinality0...1
Typeuri
Binding

Aa resource (or, for logical models, the URI of the logical model).

ResourceType (extensible)
SummaryTrue
Comments

This element is used to indicate the type of the target of the reference. This may be used which ever of the other elements are populated (or not). In some cases, the type of the target may be determined by inspection of the reference (e.g. a RESTful URL) or by resolving the target of the reference; if both the type and a reference is provided, the reference SHALL resolve to a resource of the same type as that specified.

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
MedicationRequest.insurance.identifier
DefinitionAn identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference.
Cardinality0...1
TypeIdentifier
SummaryTrue
Comments

When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy.

When both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference

Applications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it.

Reference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any).

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
  • rim: .identifier
MedicationRequest.insurance.identifier.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
MedicationRequest.insurance.identifier.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
MedicationRequest.insurance.identifier.use
DefinitionThe purpose of this identifier.
Cardinality0...1
Typecode
Binding

Identifies the purpose for this identifier, if known .

IdentifierUse (required)
ModifierTrue
SummaryTrue
Requirements

Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers.

Comments

Applications can assume that an identifier is permanent unless it explicitly says that it is temporary.

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: Role.code or implied by context
MedicationRequest.insurance.identifier.type
DefinitionA coded type for the identifier that can be used to determine which identifier to use for a specific purpose.
Cardinality0...1
TypeCodeableConcept
Binding

A coded type for an identifier that can be used to determine which identifier to use for a specific purpose.

Identifier Type Codes (extensible)
SummaryTrue
Requirements

Allows users to make use of identifiers when the identifier system is not known.

Comments

This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type.

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: CX.5
  • rim: Role.code or implied by context
MedicationRequest.insurance.identifier.system
DefinitionEstablishes the namespace for the value - that is, a URL that describes a set values that are unique.
Cardinality0...1
Typeuri
SummaryTrue
Requirements

There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers.

Comments

Identifier.system is always case sensitive.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Examples
General

http://www.acme.com/identifiers/patient


Mappings
  • rim: n/a
  • v2: CX.4 / EI-2-4
  • rim: II.root or Role.id.root
  • servd: ./IdentifierType
MedicationRequest.insurance.identifier.value
DefinitionThe portion of the identifier typically relevant to the user and which is unique within the context of the system.
Cardinality0...1
Typestring
SummaryTrue
Comments

If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Examples
General

123456


Mappings
  • rim: n/a
  • v2: CX.1 / EI.1
  • rim: II.extension or II.root if system indicates OID or GUID (Or Role.id.extension or root)
  • servd: ./Value
MedicationRequest.insurance.identifier.period
DefinitionTime period during which identifier is/was valid for use.
Cardinality0...1
TypePeriod
SummaryTrue
Comments

A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times").

Period is not used for a duration (a measure of elapsed time). See Duration.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • per-1: If present, start SHALL have a lower value than end
    start.hasValue().not() or end.hasValue().not() or (start <= end)
Mappings
  • rim: n/a
  • v2: DR
  • rim: IVL<TS>[lowClosed="true" and highClosed="true"] or URG<TS>[lowClosed="true" and highClosed="true"]
  • v2: CX.7 + CX.8
  • rim: Role.effectiveTime or implied by context
  • servd: ./StartDate and ./EndDate
MedicationRequest.insurance.identifier.assigner
DefinitionOrganization that issued/manages the identifier.
Cardinality0...1
TypeReference()
SummaryTrue
Comments

The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization.

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: CX.4 / (CX.4,CX.9,CX.10)
  • rim: II.assigningAuthorityName but note that this is an improper use by the definition of the field. Also Role.scoper
  • servd: ./IdentifierIssuingAuthority
MedicationRequest.insurance.display
DefinitionPlain text narrative that identifies the resource in addition to the resource reference.
Cardinality0...1
Typestring
SummaryTrue
Comments

This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it.

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
MedicationRequest.note
DefinitionExtra information about the prescription that could not be conveyed by 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: Request.note
  • script10.6: Message/Body/NewRx/MedicationPrescribed/Note
  • rim: .inboundRelationship[typeCode=SUBJ]/source[classCode=OBS,moodCode=EVN,code="annotation"].value
MedicationRequest.note.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
MedicationRequest.note.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
MedicationRequest.note.author[x]
DefinitionThe individual responsible for making the annotation.
Cardinality0...1
TypeReference( | | | )
SummaryTrue
Comments

Organization is used when there's no need for specific attribution as to who made the comment.

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: N/A
  • rim: Act.participant[typeCode=AUT].role
MedicationRequest.note.time
DefinitionIndicates when this particular annotation was made.
Cardinality0...1
TypedateTime
SummaryTrue
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.effectiveTime
MedicationRequest.note.text
DefinitionThe text of the annotation in markdown format.
Cardinality1...1
Typemarkdown
SummaryTrue
Comments

Systems are not required to have markdown support, so the text should be readable without markdown processing. The markdown syntax is GFM - see https://github.github.com/gfm/

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.text
MedicationRequest.dosageInstruction
DefinitionIndicates how the medication is to be used by the patient.
Cardinality1...*
TypeDosage
Must SupportTrue
Comments

There are examples where a medication request may include the option of an oral dose or an Intravenous or Intramuscular dose. For example, "Ondansetron 8mg orally or IV twice a day as needed for nausea" or "Compazine® (prochlorperazine) 5-10mg PO or 25mg PR bid prn nausea or vomiting". In these cases, two medication requests would be created that could be grouped together. The decision on which dose and route of administration to use is based on the patient's condition at the time the dose is needed.

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]
  • workflow: Request.occurrence[x]
  • rim: see dosageInstruction mapping
MedicationRequest.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
MedicationRequest.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
MedicationRequest.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
MedicationRequest.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
MedicationRequest.dosageInstruction.text
DefinitionFree text dosage instructions e.g. SIG.
Cardinality1...1
Typestring
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

ITK Mapping = pertinentInformation2.pertinentLineItem.pertinentInformation2.pertinentDosageInstructions.value

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
MedicationRequest.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
MedicationRequest.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
MedicationRequest.dosageInstruction.timing
DefinitionWhen medication should be administered.
Cardinality0...1
TypeTiming
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
MedicationRequest.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 (example)
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
MedicationRequest.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.

SNOMEDCTAnatomicalStructureForAdministrationSiteCodes (example)
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
MedicationRequest.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.

SNOMEDCTRouteCodes (example)
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
MedicationRequest.dosageInstruction.route.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
MedicationRequest.dosageInstruction.route.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
MedicationRequest.dosageInstruction.route.coding
DefinitionA reference to a code defined by a terminology system.
Cardinality0...*
TypeCoding
SummaryTrue
Requirements

Allows for alternative encodings within a code system, and translations to other code systems.

Comments

Codes may be defined very casually in enumerations, or code lists, up to very formal definitions such as SNOMED CT - see the HL7 v3 Core Principles for more information. Ordering of codings is undefined and SHALL NOT be used to infer meaning. Generally, at most only one of the coding values will be labeled as UserSelected = true.

SlicingUnordered, Open, by system(Value)
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 subset one of the sets of component 1-3 or 4-6
  • rim: CV
  • orim: fhir:Coding rdfs:subClassOf dt:CDCoding
  • v2: C*E.1-8, C*E.10-22
  • rim: union(., ./translation)
  • orim: fhir:CodeableConcept.coding rdfs:subPropertyOf dt:CD.coding
MedicationRequest.dosageInstruction.route.coding:snomedCT
DefinitionA reference to a code defined by a terminology system.
Cardinality0...1
TypeCoding
Binding

A code from the SNOMED Clinical Terminology UK coding system that describes the e-Prescribing route of administration. Any code from the SNOMED CT UK 'NHS e-Prescribing route of administration subset' with subset original id 30201000001137; the corresponding SNOMED CT UK Refset FSN is 'ePrescribing route of administration simple reference set (foundation metadata concept)' with Refset Id 999000051000001100.

(extensible)
SummaryTrue
Requirements

Allows for alternative encodings within a code system, and translations to other code systems.

Comments

Codes may be defined very casually in enumerations, or code lists, up to very formal definitions such as SNOMED CT - see the HL7 v3 Core Principles for more information. Ordering of codings is undefined and SHALL NOT be used to infer meaning. Generally, at most only one of the coding values will be labeled as UserSelected = true.

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 subset one of the sets of component 1-3 or 4-6
  • rim: CV
  • orim: fhir:Coding rdfs:subClassOf dt:CDCoding
  • v2: C*E.1-8, C*E.10-22
  • rim: union(., ./translation)
  • orim: fhir:CodeableConcept.coding rdfs:subPropertyOf dt:CD.coding
MedicationRequest.dosageInstruction.route.coding:snomedCT.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
MedicationRequest.dosageInstruction.route.coding:snomedCT.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
MedicationRequest.dosageInstruction.route.coding:snomedCT.system
DefinitionThe identification of the code system that defines the meaning of the symbol in the code.
Cardinality1...1
Typeuri
SummaryTrue
Requirements

Need to be unambiguous about the source of the definition of the symbol.

Comments

The URI may be an OID (urn:oid:...) or a UUID (urn:uuid:...). OIDs and UUIDs SHALL be references to the HL7 OID registry. Otherwise, the URI should come from HL7's list of FHIR defined special URIs or it should reference to some definition that establishes the system clearly and unambiguously.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Fixed Value

http://snomed.info/sct

Mappings
  • rim: n/a
  • v2: C*E.3
  • rim: ./codeSystem
  • orim: fhir:Coding.system rdfs:subPropertyOf dt:CDCoding.codeSystem
MedicationRequest.dosageInstruction.route.coding:snomedCT.version
DefinitionThe version of the code system which was used when choosing this code. Note that a well-maintained code system does not need the version reported, because the meaning of codes is consistent across versions. However this cannot consistently be assured, and when the meaning is not guaranteed to be consistent, the version SHOULD be exchanged.
Cardinality0...1
Typestring
SummaryTrue
Comments

Where the terminology does not clearly define what string should be used to identify code system versions, the recommendation is to use the date (expressed in FHIR date format) on which that version was officially published as the version date.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: C*E.7
  • rim: ./codeSystemVersion
  • orim: fhir:Coding.version rdfs:subPropertyOf dt:CDCoding.codeSystemVersion
MedicationRequest.dosageInstruction.route.coding:snomedCT.code
DefinitionA symbol in syntax defined by the system. The symbol may be a predefined code or an expression in a syntax defined by the coding system (e.g. post-coordination).
Cardinality1...1
Typecode
SummaryTrue
Requirements

Need to refer to a particular code in the system.

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: C*E.1
  • rim: ./code
  • orim: fhir:Coding.code rdfs:subPropertyOf dt:CDCoding.code
MedicationRequest.dosageInstruction.route.coding:snomedCT.display
DefinitionA representation of the meaning of the code in the system, following the rules of the system.
Cardinality1...1
Typestring
SummaryTrue
Requirements

Need to be able to carry a human-readable meaning of the code for readers that do not know the system.

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: C*E.2 - but note this is not well followed
  • rim: CV.displayName
  • orim: fhir:Coding.display rdfs:subPropertyOf dt:CDCoding.displayName
MedicationRequest.dosageInstruction.route.coding:snomedCT.userSelected
DefinitionIndicates that this coding was chosen by a user directly - e.g. off a pick list of available items (codes or displays).
Cardinality0...1
Typeboolean
SummaryTrue
Requirements

This has been identified as a clinical safety criterium - that this exact system/code pair was chosen explicitly, rather than inferred by the system based on some rules or language processing.

Comments

Amongst a set of alternatives, a directly chosen code is the most appropriate starting point for new translations. There is some ambiguity about what exactly 'directly chosen' implies, and trading partner agreement may be needed to clarify the use of this element and its consequences more completely.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: Sometimes implied by being first
  • rim: CD.codingRationale
  • orim: fhir:Coding.userSelected fhir:mapsTo dt:CDCoding.codingRationale. fhir:Coding.userSelected fhir:hasMap fhir:Coding.userSelected.map. fhir:Coding.userSelected.map a fhir:Map; fhir:target dt:CDCoding.codingRationale. fhir:Coding.userSelected\#true a [ fhir:source "true"; fhir:target dt:CDCoding.codingRationale\#O ]
MedicationRequest.dosageInstruction.route.text
DefinitionA human language representation of the concept as seen/selected/uttered by the user who entered the data and/or which represents the intended meaning of the user.
Cardinality0...1
Typestring
SummaryTrue
Requirements

The codes from the terminologies do not always capture the correct meaning with all the nuances of the human using them, or sometimes there is no appropriate code at all. In these cases, the text is used to capture the full meaning of the source.

Comments

Very often the text is the same as a displayName of one of the codings.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • v2: C*E.9. But note many systems use C*E.2 for this
  • rim: ./originalText[mediaType/code="text/plain"]/data
  • orim: fhir:CodeableConcept.text rdfs:subPropertyOf dt:CD.originalText
MedicationRequest.dosageInstruction.method
DefinitionTechnique for administering medication.
Cardinality0...1
TypeCodeableConcept
Binding

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

SNOMEDCTAdministrationMethodCodes (example)
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
MedicationRequest.dosageInstruction.doseAndRate
DefinitionThe amount of medication administered.
Cardinality0...*
TypeElement
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
MedicationRequest.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
MedicationRequest.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
MedicationRequest.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
MedicationRequest.dosageInstruction.doseAndRate.dose[x]
DefinitionAmount of medication per dose.
Cardinality0...1
TypeRange
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())
  • rng-2: If present, low SHALL have a lower value than high
    low.empty() or high.empty() or (low <= high)
Mappings
  • rim: n/a
  • v2: NR and also possibly SN (but see also quantity)
  • rim: IVL<QTY[not(type="TS")]> [lowClosed="true" and highClosed="true"]or URG<QTY[not(type="TS")]>
  • v2: RXO-2, RXE-3
  • rim: .doseQuantity
MedicationRequest.dosageInstruction.doseAndRate.rate[x]
DefinitionAmount of medication per unit of time.
Cardinality0...1
TypeRatio
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())
  • 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: RXE22, RXE23, RXE-24
  • rim: .rateQuantity
MedicationRequest.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
MedicationRequest.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
MedicationRequest.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
MedicationRequest.dispenseRequest
DefinitionIndicates the specific details for the dispense or medication supply part of a medication request (also known as a Medication Prescription or Medication Order). Note that this information is not always sent with the order. There may be in some settings (e.g. hospitals) institutional or system support for completing the dispense details in the pharmacy department.
Cardinality1...1
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
  • script10.6: Message/Body/NewRx/MedicationPrescribed/ExpirationDate
  • rim: component.supplyEvent
MedicationRequest.dispenseRequest.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
MedicationRequest.dispenseRequest.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
MedicationRequest.dispenseRequest.extension:performerSiteType
DefinitionUsed to indicate type of pharmacist
Cardinality1...1
TypeExtension(Coding)
Must SupportTrue
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.

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
MedicationRequest.dispenseRequest.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
MedicationRequest.dispenseRequest.initialFill
DefinitionIndicates the quantity or duration for the first dispense of the medication.
Cardinality0...1
TypeBackboneElement
Comments

If populating this element, either the quantity or the duration must be included.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • rim: SubstanceAdministration -> ActRelationship[sequenceNumber = '1'] -> Supply
MedicationRequest.dispenseRequest.initialFill.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
MedicationRequest.dispenseRequest.initialFill.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
MedicationRequest.dispenseRequest.initialFill.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
MedicationRequest.dispenseRequest.initialFill.quantity
DefinitionThe amount or quantity to provide as part of the first dispense.
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
  • rim: Supply.quantity[moodCode=RQO]
MedicationRequest.dispenseRequest.initialFill.duration
DefinitionThe length of time that the first dispense is expected to last.
Cardinality0...1
TypeDuration
Binding

Appropriate units for Duration.

CommonUCUMCodesForDuration (extensible)
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()
  • drt-1: There SHALL be a code if there is a value and it SHALL be an expression of time. If system is present, it SHALL be UCUM.
    code.exists() implies ((system = %ucum) and value.exists())
Mappings
  • rim: n/a
  • v2: SN (see also Range) or CQ
  • rim: PQ, IVL<PQ>, MO, CO, depending on the values
  • rim: PQ, IVL<PQ> depending on the values
  • rim: Supply.effectivetime[moodCode=RQO]
MedicationRequest.dispenseRequest.dispenseInterval
DefinitionThe minimum period of time that must occur between dispenses of the medication.
Cardinality0...1
TypeDuration
Binding

Appropriate units for Duration.

CommonUCUMCodesForDuration (extensible)
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()
  • drt-1: There SHALL be a code if there is a value and it SHALL be an expression of time. If system is present, it SHALL be UCUM.
    code.exists() implies ((system = %ucum) and value.exists())
Mappings
  • rim: n/a
  • v2: SN (see also Range) or CQ
  • rim: PQ, IVL<PQ>, MO, CO, depending on the values
  • rim: PQ, IVL<PQ> depending on the values
  • rim: Supply.effectivetime[moodCode=RQO]
MedicationRequest.dispenseRequest.validityPeriod
DefinitionThis indicates the validity period of a prescription (stale dating the Prescription).
Cardinality0...1
TypePeriod
Must SupportTrue
Requirements

Indicates when the Prescription becomes valid, and when it ceases to be a dispensable Prescription.

Comments

It reflects the prescribers' perspective for the validity of the prescription. Dispenses must not be made against the prescription outside of this period. The lower-bound of the Dispensing Window signifies the earliest date that the prescription can be filled for the first time. If an upper-bound is not specified then the Prescription is open-ended or will default to a stale-date based on regulations.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • per-1: If present, start SHALL have a lower value than end
    start.hasValue().not() or end.hasValue().not() or (start <= end)
Mappings
  • rim: n/a
  • v2: DR
  • rim: IVL<TS>[lowClosed="true" and highClosed="true"] or URG<TS>[lowClosed="true" and highClosed="true"]
  • script10.6: Message/Body/NewRx/MedicationPrescribed/Refills
  • rim: effectiveTime
MedicationRequest.dispenseRequest.validityPeriod.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
MedicationRequest.dispenseRequest.validityPeriod.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
MedicationRequest.dispenseRequest.validityPeriod.start
DefinitionThe start of the period. The boundary is inclusive.
Cardinality1...1
TypedateTime
SummaryTrue
Comments

If the low element is missing, the meaning is that the low boundary is not known.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: DR.1
  • rim: ./low
MedicationRequest.dispenseRequest.validityPeriod.end
DefinitionThe end of the period. If the end of the period is missing, it means no end was known or planned at the time the instance was created. The start may be in the past, and the end date in the future, which means that period is expected/planned to end at that time.
Cardinality0...1
TypedateTime
SummaryTrue
Comments

The high value includes any matching date/time. i.e. 2012-02-03T10:00:00 is in a period that has an end value of 2012-02-03.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: DR.2
  • rim: ./high
MedicationRequest.dispenseRequest.numberOfRepeatsAllowed
DefinitionAn integer indicating the number of times, in addition to the original dispense, (aka refills or repeats) that the patient can receive the prescribed medication. Usage Notes: This integer does not include the original order dispense. This means that if an order indicates dispense 30 tablets plus "3 repeats", then the order can be dispensed a total of 4 times and the patient can receive a total of 120 tablets. A prescriber may explicitly say that zero refills are permitted after the initial dispense.
Cardinality0...1
TypeunsignedInt
Must SupportTrue
Comments

If displaying "number of authorized fills", add 1 to this number.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • script10.6: Message/Body/NewRx/MedicationPrescribed/Quantity
  • v2: RXE-12-Number of Refills
  • rim: repeatNumber
MedicationRequest.dispenseRequest.quantity
DefinitionThe amount that is to be dispensed for one fill.
Cardinality1...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
  • script10.6: Message/Body/NewRx/MedicationPrescribed/DaysSupply
  • 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
MedicationRequest.dispenseRequest.quantity.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
MedicationRequest.dispenseRequest.quantity.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
MedicationRequest.dispenseRequest.quantity.value
DefinitionThe value of the measured amount. The value includes an implicit precision in the presentation of the value.
Cardinality1...1
Typedecimal
SummaryTrue
Requirements

Precision is handled implicitly in almost all cases of measurement.

Comments

The implicit precision in the value should always be honored. Monetary values have their own rules for handling precision (refer to standard accounting text books).

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: SN.2 / CQ - N/A
  • rim: PQ.value, CO.value, MO.value, IVL.high or IVL.low depending on the value
MedicationRequest.dispenseRequest.quantity.comparator
DefinitionNot allowed to be used in this context
Cardinality0...0
Typecode
Binding

How the Quantity should be understood and represented.

QuantityComparator (required)
ModifierTrue
SummaryTrue
Requirements

Need a framework for handling measures where the value is <5ug/L or >400mg/L due to the limitations of measuring methodology.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: SN.1 / CQ.1
  • rim: IVL properties
MedicationRequest.dispenseRequest.quantity.unit
DefinitionA human-readable form of the unit.
Cardinality1...1
Typestring
SummaryTrue
Requirements

There are many representations for units of measure and in many contexts, particular representations are fixed and required. I.e. mcg for micrograms.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: (see OBX.6 etc.) / CQ.2
  • rim: PQ.unit
MedicationRequest.dispenseRequest.quantity.system
DefinitionThe identification of the system that provides the coded form of the unit.
Cardinality0...1
Typeuri
SummaryTrue
Requirements

Need to know the system that defines the coded form of the unit.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: (see OBX.6 etc.) / CQ.2
  • rim: CO.codeSystem, PQ.translation.codeSystem
MedicationRequest.dispenseRequest.quantity.code
DefinitionA computer processable form of the unit in some unit representation system.
Cardinality1...1
Typecode
SummaryTrue
Requirements

Need a computable form of the unit that is fixed across all forms. UCUM provides this for quantities, but SNOMED CT provides many units of interest.

Comments

The preferred system is UCUM, but SNOMED CT can also be used (for customary units) or ISO 4217 for currency. The context of use may additionally require a code from a particular system.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: (see OBX.6 etc.) / CQ.2
  • rim: PQ.code, MO.currency, PQ.translation.code
MedicationRequest.dispenseRequest.expectedSupplyDuration
DefinitionIdentifies the period time over which the supplied product is expected to be used, or the length of time the dispense is expected to last.
Cardinality0...1
TypeDuration
Must SupportTrue
Comments

In some situations, this attribute may be used instead of quantity to identify the amount supplied by how long it is expected to last, rather than the physical quantity issued, e.g. 90 days supply of medication (based on an ordered dosage). When possible, it is always better to specify quantity, as this tends to be more precise. expectedSupplyDuration will always be an estimate that can be influenced by external factors.

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()
  • drt-1: There SHALL be a code if there is a value and it SHALL be an expression of time. If system is present, it SHALL be UCUM.
    code.exists() implies ((system = %ucum) and value.exists())
Mappings
  • rim: n/a
  • v2: SN (see also Range) or CQ
  • rim: PQ, IVL<PQ>, MO, CO, depending on the values
  • rim: PQ, IVL<PQ> depending on the values
  • script10.6: Message/Body/NewRx/MedicationPrescribed/Substitutions
  • rim: expectedUseTime
MedicationRequest.dispenseRequest.expectedSupplyDuration.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
MedicationRequest.dispenseRequest.expectedSupplyDuration.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
MedicationRequest.dispenseRequest.expectedSupplyDuration.value
DefinitionThe value of the measured amount. The value includes an implicit precision in the presentation of the value.
Cardinality1...1
Typedecimal
SummaryTrue
Requirements

Precision is handled implicitly in almost all cases of measurement.

Comments

The implicit precision in the value should always be honored. Monetary values have their own rules for handling precision (refer to standard accounting text books).

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: SN.2 / CQ - N/A
  • rim: PQ.value, CO.value, MO.value, IVL.high or IVL.low depending on the value
MedicationRequest.dispenseRequest.expectedSupplyDuration.comparator
DefinitionHow the value should be understood and represented - whether the actual value is greater or less than the stated value due to measurement issues; e.g. if the comparator is "<" , then the real value is < stated value.
Cardinality0...1
Typecode
Binding

How the Quantity should be understood and represented.

QuantityComparator (required)
ModifierTrue
SummaryTrue
Requirements

Need a framework for handling measures where the value is <5ug/L or >400mg/L due to the limitations of measuring methodology.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: SN.1 / CQ.1
  • rim: IVL properties
MedicationRequest.dispenseRequest.expectedSupplyDuration.unit
DefinitionA human-readable form of the unit.
Cardinality0...1
Typestring
SummaryTrue
Requirements

There are many representations for units of measure and in many contexts, particular representations are fixed and required. I.e. mcg for micrograms.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: (see OBX.6 etc.) / CQ.2
  • rim: PQ.unit
MedicationRequest.dispenseRequest.expectedSupplyDuration.system
DefinitionThe identification of the system that provides the coded form of the unit.
Cardinality0...1
Typeuri
SummaryTrue
Requirements

Need to know the system that defines the coded form of the unit.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • v2: (see OBX.6 etc.) / CQ.2
  • rim: CO.codeSystem, PQ.translation.codeSystem
MedicationRequest.dispenseRequest.expectedSupplyDuration.code
DefinitionA computer processable form of the unit in some unit representation system.
Cardinality1...1
Typecode
SummaryTrue
Requirements

Need a computable form of the unit that is fixed across all forms. UCUM provides this for quantities, but SNOMED CT provides many units of interest.

Comments

The preferred system is UCUM, but SNOMED CT can also be used (for customary units) or ISO 4217 for currency. The context of use may additionally require a code from a particular system.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Fixed Value

d

Mappings
  • v2: (see OBX.6 etc.) / CQ.2
  • rim: PQ.code, MO.currency, PQ.translation.code
MedicationRequest.dispenseRequest.performer
DefinitionIndicates the intended dispensing Pharmacy specified by the patient. Can be sourced from nominatedPharmacy in the Patient Demographics Service (PDS)
Cardinality0...1
TypeReference()
Must SupportTrue
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.who
  • rim: .outboundRelationship[typeCode=COMP].target[classCode=SPLY, moodCode=RQO] .participation[typeCode=PRF].role[scoper.determinerCode=INSTANCE]
MedicationRequest.dispenseRequest.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
MedicationRequest.dispenseRequest.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
MedicationRequest.dispenseRequest.performer.extension:practitionerRole
DefinitionOptional Extension Element - found in all resources.
Cardinality0...1
TypeExtension(Reference())
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.

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
MedicationRequest.dispenseRequest.performer.reference
DefinitionA reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources.
Cardinality0...1
Typestring
SummaryTrue
Comments

Using absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading across closed eco-system boundaries. Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach. If the URL conforms to the structure "/[type]/[id]" then it should be assumed that the reference is to a FHIR RESTful server.

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
MedicationRequest.dispenseRequest.performer.type
DefinitionThe expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent. The type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. "Patient" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources).
Cardinality0...1
Typeuri
Binding

Aa resource (or, for logical models, the URI of the logical model).

ResourceType (extensible)
SummaryTrue
Comments

This element is used to indicate the type of the target of the reference. This may be used which ever of the other elements are populated (or not). In some cases, the type of the target may be determined by inspection of the reference (e.g. a RESTful URL) or by resolving the target of the reference; if both the type and a reference is provided, the reference SHALL resolve to a resource of the same type as that specified.

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
MedicationRequest.dispenseRequest.performer.identifier
DefinitionAn identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference.
Cardinality1...1
TypeIdentifier
SummaryTrue
Comments

When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy.

When both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference

Applications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it.

Reference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any).

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
  • rim: .identifier
MedicationRequest.dispenseRequest.performer.identifier.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
MedicationRequest.dispenseRequest.performer.identifier.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
MedicationRequest.dispenseRequest.performer.identifier.use
DefinitionThe purpose of this identifier.
Cardinality0...1
Typecode
Binding

Identifies the purpose for this identifier, if known .

IdentifierUse (required)
ModifierTrue
SummaryTrue
Requirements

Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers.

Comments

Applications can assume that an identifier is permanent unless it explicitly says that it is temporary.

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: Role.code or implied by context
MedicationRequest.dispenseRequest.performer.identifier.type
DefinitionA coded type for the identifier that can be used to determine which identifier to use for a specific purpose.
Cardinality0...1
TypeCodeableConcept
Binding

A coded type for an identifier that can be used to determine which identifier to use for a specific purpose.

Identifier Type Codes (extensible)
SummaryTrue
Requirements

Allows users to make use of identifiers when the identifier system is not known.

Comments

This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type.

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: CX.5
  • rim: Role.code or implied by context
MedicationRequest.dispenseRequest.performer.identifier.system
DefinitionEstablishes the namespace for the value - that is, a URL that describes a set values that are unique.
Cardinality1...1
Typeuri
SummaryTrue
Requirements

There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers.

Comments

Identifier.system is always case sensitive.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Fixed Value

https://fhir.nhs.uk/Id/ods-organization-code

Mappings
  • rim: n/a
  • v2: CX.4 / EI-2-4
  • rim: II.root or Role.id.root
  • servd: ./IdentifierType
MedicationRequest.dispenseRequest.performer.identifier.value
DefinitionThe portion of the identifier typically relevant to the user and which is unique within the context of the system.
Cardinality1...1
Typestring
SummaryTrue
Comments

If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Examples
General

123456


Mappings
  • rim: n/a
  • v2: CX.1 / EI.1
  • rim: II.extension or II.root if system indicates OID or GUID (Or Role.id.extension or root)
  • servd: ./Value
MedicationRequest.dispenseRequest.performer.identifier.period
DefinitionTime period during which identifier is/was valid for use.
Cardinality0...1
TypePeriod
SummaryTrue
Comments

A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times").

Period is not used for a duration (a measure of elapsed time). See Duration.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • per-1: If present, start SHALL have a lower value than end
    start.hasValue().not() or end.hasValue().not() or (start <= end)
Mappings
  • rim: n/a
  • v2: DR
  • rim: IVL<TS>[lowClosed="true" and highClosed="true"] or URG<TS>[lowClosed="true" and highClosed="true"]
  • v2: CX.7 + CX.8
  • rim: Role.effectiveTime or implied by context
  • servd: ./StartDate and ./EndDate
MedicationRequest.dispenseRequest.performer.identifier.assigner
DefinitionOrganization that issued/manages the identifier.
Cardinality0...1
TypeReference()
SummaryTrue
Comments

The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization.

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: CX.4 / (CX.4,CX.9,CX.10)
  • rim: II.assigningAuthorityName but note that this is an improper use by the definition of the field. Also Role.scoper
  • servd: ./IdentifierIssuingAuthority
MedicationRequest.dispenseRequest.performer.display
DefinitionPlain text narrative that identifies the resource in addition to the resource reference.
Cardinality0...1
Typestring
SummaryTrue
Comments

This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it.

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
MedicationRequest.substitution
DefinitionIndicates whether or not substitution can or should be part of the dispense. In some cases, substitution must happen, in other cases substitution must not happen. This block explains the prescriber's intent. If nothing is specified substitution may be done. In most cases this should default to false.
Cardinality1...1
TypeBackboneElement
Must SupportTrue
Comments

Substituition is a mandatory requirement for EPS.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • script10.6: specific values within Message/Body/NewRx/MedicationPrescribed/Substitutions
  • rim: subjectOf.substitutionPersmission
MedicationRequest.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
MedicationRequest.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
MedicationRequest.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
MedicationRequest.substitution.allowed[x]
DefinitionTrue if the prescriber allows a different drug to be dispensed from what was prescribed.
Cardinality1...1
Typeboolean
Comments

This element is labeled as a modifier because whether substitution is allow or not, it cannot be ignored.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Mappings
  • rim: n/a
  • script10.6: specific values within Message/Body/NewRx/MedicationPrescribed/Substitutions
  • v2: RXO-9-Allow Substitutions / RXE-9-Substitution Status
  • rim: code
MedicationRequest.substitution.reason
DefinitionIndicates the reason for the substitution, or why substitution must or must not be performed.
Cardinality0...1
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
  • script10.6: not mapped
  • v2: RXE-9 Substition status
  • rim: reasonCode
MedicationRequest.priorPrescription
DefinitionA link to a resource representing an earlier order related order or prescription.
Cardinality0...1
TypeReference()
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: Request.replaces
  • script10.6: not mapped
  • rim: .outboundRelationship[typeCode=?RPLC or ?SUCC]/target[classCode=SBADM,moodCode=RQO]
MedicationRequest.priorPrescription.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
MedicationRequest.priorPrescription.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
MedicationRequest.priorPrescription.reference
DefinitionA reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources.
Cardinality0...1
Typestring
SummaryTrue
Comments

Using absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading across closed eco-system boundaries. Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach. If the URL conforms to the structure "/[type]/[id]" then it should be assumed that the reference is to a FHIR RESTful server.

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
MedicationRequest.priorPrescription.type
DefinitionThe expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent. The type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. "Patient" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources).
Cardinality0...1
Typeuri
Binding

Aa resource (or, for logical models, the URI of the logical model).

ResourceType (extensible)
SummaryTrue
Comments

This element is used to indicate the type of the target of the reference. This may be used which ever of the other elements are populated (or not). In some cases, the type of the target may be determined by inspection of the reference (e.g. a RESTful URL) or by resolving the target of the reference; if both the type and a reference is provided, the reference SHALL resolve to a resource of the same type as that specified.

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
MedicationRequest.priorPrescription.identifier
DefinitionAn identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference.
Cardinality0...1
TypeIdentifier
SummaryTrue
Comments

When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy.

When both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference

Applications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it.

Reference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any).

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
  • rim: .identifier
MedicationRequest.priorPrescription.identifier.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
MedicationRequest.priorPrescription.identifier.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
MedicationRequest.priorPrescription.identifier.use
DefinitionThe purpose of this identifier.
Cardinality0...1
Typecode
Binding

Identifies the purpose for this identifier, if known .

IdentifierUse (required)
ModifierTrue
SummaryTrue
Requirements

Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers.

Comments

Applications can assume that an identifier is permanent unless it explicitly says that it is temporary.

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: Role.code or implied by context
MedicationRequest.priorPrescription.identifier.type
DefinitionA coded type for the identifier that can be used to determine which identifier to use for a specific purpose.
Cardinality0...1
TypeCodeableConcept
Binding

A coded type for an identifier that can be used to determine which identifier to use for a specific purpose.

Identifier Type Codes (extensible)
SummaryTrue
Requirements

Allows users to make use of identifiers when the identifier system is not known.

Comments

This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type.

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: CX.5
  • rim: Role.code or implied by context
MedicationRequest.priorPrescription.identifier.system
DefinitionEstablishes the namespace for the value - that is, a URL that describes a set values that are unique.
Cardinality0...1
Typeuri
SummaryTrue
Requirements

There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers.

Comments

Identifier.system is always case sensitive.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Examples
General

http://www.acme.com/identifiers/patient


Mappings
  • rim: n/a
  • v2: CX.4 / EI-2-4
  • rim: II.root or Role.id.root
  • servd: ./IdentifierType
MedicationRequest.priorPrescription.identifier.value
DefinitionThe portion of the identifier typically relevant to the user and which is unique within the context of the system.
Cardinality0...1
Typestring
SummaryTrue
Comments

If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Examples
General

123456


Mappings
  • rim: n/a
  • v2: CX.1 / EI.1
  • rim: II.extension or II.root if system indicates OID or GUID (Or Role.id.extension or root)
  • servd: ./Value
MedicationRequest.priorPrescription.identifier.period
DefinitionTime period during which identifier is/was valid for use.
Cardinality0...1
TypePeriod
SummaryTrue
Comments

A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times").

Period is not used for a duration (a measure of elapsed time). See Duration.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • per-1: If present, start SHALL have a lower value than end
    start.hasValue().not() or end.hasValue().not() or (start <= end)
Mappings
  • rim: n/a
  • v2: DR
  • rim: IVL<TS>[lowClosed="true" and highClosed="true"] or URG<TS>[lowClosed="true" and highClosed="true"]
  • v2: CX.7 + CX.8
  • rim: Role.effectiveTime or implied by context
  • servd: ./StartDate and ./EndDate
MedicationRequest.priorPrescription.identifier.assigner
DefinitionOrganization that issued/manages the identifier.
Cardinality0...1
TypeReference()
SummaryTrue
Comments

The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization.

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: CX.4 / (CX.4,CX.9,CX.10)
  • rim: II.assigningAuthorityName but note that this is an improper use by the definition of the field. Also Role.scoper
  • servd: ./IdentifierIssuingAuthority
MedicationRequest.priorPrescription.display
DefinitionPlain text narrative that identifies the resource in addition to the resource reference.
Cardinality0...1
Typestring
SummaryTrue
Comments

This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it.

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
MedicationRequest.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
MedicationRequest.detectedIssue.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
MedicationRequest.detectedIssue.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
MedicationRequest.detectedIssue.reference
DefinitionA reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources.
Cardinality0...1
Typestring
SummaryTrue
Comments

Using absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading across closed eco-system boundaries. Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach. If the URL conforms to the structure "/[type]/[id]" then it should be assumed that the reference is to a FHIR RESTful server.

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
MedicationRequest.detectedIssue.type
DefinitionThe expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent. The type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. "Patient" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources).
Cardinality0...1
Typeuri
Binding

Aa resource (or, for logical models, the URI of the logical model).

ResourceType (extensible)
SummaryTrue
Comments

This element is used to indicate the type of the target of the reference. This may be used which ever of the other elements are populated (or not). In some cases, the type of the target may be determined by inspection of the reference (e.g. a RESTful URL) or by resolving the target of the reference; if both the type and a reference is provided, the reference SHALL resolve to a resource of the same type as that specified.

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
MedicationRequest.detectedIssue.identifier
DefinitionAn identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference.
Cardinality0...1
TypeIdentifier
SummaryTrue
Comments

When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy.

When both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference

Applications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it.

Reference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any).

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
  • rim: .identifier
MedicationRequest.detectedIssue.identifier.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
MedicationRequest.detectedIssue.identifier.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
MedicationRequest.detectedIssue.identifier.use
DefinitionThe purpose of this identifier.
Cardinality0...1
Typecode
Binding

Identifies the purpose for this identifier, if known .

IdentifierUse (required)
ModifierTrue
SummaryTrue
Requirements

Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers.

Comments

Applications can assume that an identifier is permanent unless it explicitly says that it is temporary.

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: Role.code or implied by context
MedicationRequest.detectedIssue.identifier.type
DefinitionA coded type for the identifier that can be used to determine which identifier to use for a specific purpose.
Cardinality0...1
TypeCodeableConcept
Binding

A coded type for an identifier that can be used to determine which identifier to use for a specific purpose.

Identifier Type Codes (extensible)
SummaryTrue
Requirements

Allows users to make use of identifiers when the identifier system is not known.

Comments

This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type.

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: CX.5
  • rim: Role.code or implied by context
MedicationRequest.detectedIssue.identifier.system
DefinitionEstablishes the namespace for the value - that is, a URL that describes a set values that are unique.
Cardinality0...1
Typeuri
SummaryTrue
Requirements

There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers.

Comments

Identifier.system is always case sensitive.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Examples
General

http://www.acme.com/identifiers/patient


Mappings
  • rim: n/a
  • v2: CX.4 / EI-2-4
  • rim: II.root or Role.id.root
  • servd: ./IdentifierType
MedicationRequest.detectedIssue.identifier.value
DefinitionThe portion of the identifier typically relevant to the user and which is unique within the context of the system.
Cardinality0...1
Typestring
SummaryTrue
Comments

If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Examples
General

123456


Mappings
  • rim: n/a
  • v2: CX.1 / EI.1
  • rim: II.extension or II.root if system indicates OID or GUID (Or Role.id.extension or root)
  • servd: ./Value
MedicationRequest.detectedIssue.identifier.period
DefinitionTime period during which identifier is/was valid for use.
Cardinality0...1
TypePeriod
SummaryTrue
Comments

A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times").

Period is not used for a duration (a measure of elapsed time). See Duration.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • per-1: If present, start SHALL have a lower value than end
    start.hasValue().not() or end.hasValue().not() or (start <= end)
Mappings
  • rim: n/a
  • v2: DR
  • rim: IVL<TS>[lowClosed="true" and highClosed="true"] or URG<TS>[lowClosed="true" and highClosed="true"]
  • v2: CX.7 + CX.8
  • rim: Role.effectiveTime or implied by context
  • servd: ./StartDate and ./EndDate
MedicationRequest.detectedIssue.identifier.assigner
DefinitionOrganization that issued/manages the identifier.
Cardinality0...1
TypeReference(Organization | )
SummaryTrue
Comments

The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization.

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: CX.4 / (CX.4,CX.9,CX.10)
  • rim: II.assigningAuthorityName but note that this is an improper use by the definition of the field. Also Role.scoper
  • servd: ./IdentifierIssuingAuthority
MedicationRequest.detectedIssue.display
DefinitionPlain text narrative that identifies the resource in addition to the resource reference.
Cardinality0...1
Typestring
SummaryTrue
Comments

This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it.

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
MedicationRequest.eventHistory
DefinitionLinks to Provenance records for past versions of this resource or fulfilling request or event resources that identify key state transitions or updates that are likely to be relevant to a user looking at the current version of the resource.
Cardinality0...*
TypeReference()
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)
  • workflow: Request.relevantHistory
  • rim: .inboundRelationship(typeCode=SUBJ].source[classCode=CACT, moodCode=EVN]
MedicationRequest.eventHistory.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
MedicationRequest.eventHistory.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
MedicationRequest.eventHistory.reference
DefinitionA reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources.
Cardinality0...1
Typestring
SummaryTrue
Comments

Using absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading across closed eco-system boundaries. Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach. If the URL conforms to the structure "/[type]/[id]" then it should be assumed that the reference is to a FHIR RESTful server.

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
MedicationRequest.eventHistory.type
DefinitionThe expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent. The type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. "Patient" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources).
Cardinality0...1
Typeuri
Binding

Aa resource (or, for logical models, the URI of the logical model).

ResourceType (extensible)
SummaryTrue
Comments

This element is used to indicate the type of the target of the reference. This may be used which ever of the other elements are populated (or not). In some cases, the type of the target may be determined by inspection of the reference (e.g. a RESTful URL) or by resolving the target of the reference; if both the type and a reference is provided, the reference SHALL resolve to a resource of the same type as that specified.

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
MedicationRequest.eventHistory.identifier
DefinitionAn identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference.
Cardinality0...1
TypeIdentifier
SummaryTrue
Comments

When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy.

When both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference

Applications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it.

Reference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any).

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
  • rim: .identifier
MedicationRequest.eventHistory.identifier.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
MedicationRequest.eventHistory.identifier.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
MedicationRequest.eventHistory.identifier.use
DefinitionThe purpose of this identifier.
Cardinality0...1
Typecode
Binding

Identifies the purpose for this identifier, if known .

IdentifierUse (required)
ModifierTrue
SummaryTrue
Requirements

Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers.

Comments

Applications can assume that an identifier is permanent unless it explicitly says that it is temporary.

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: Role.code or implied by context
MedicationRequest.eventHistory.identifier.type
DefinitionA coded type for the identifier that can be used to determine which identifier to use for a specific purpose.
Cardinality0...1
TypeCodeableConcept
Binding

A coded type for an identifier that can be used to determine which identifier to use for a specific purpose.

Identifier Type Codes (extensible)
SummaryTrue
Requirements

Allows users to make use of identifiers when the identifier system is not known.

Comments

This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type.

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: CX.5
  • rim: Role.code or implied by context
MedicationRequest.eventHistory.identifier.system
DefinitionEstablishes the namespace for the value - that is, a URL that describes a set values that are unique.
Cardinality0...1
Typeuri
SummaryTrue
Requirements

There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers.

Comments

Identifier.system is always case sensitive.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Examples
General

http://www.acme.com/identifiers/patient


Mappings
  • rim: n/a
  • v2: CX.4 / EI-2-4
  • rim: II.root or Role.id.root
  • servd: ./IdentifierType
MedicationRequest.eventHistory.identifier.value
DefinitionThe portion of the identifier typically relevant to the user and which is unique within the context of the system.
Cardinality0...1
Typestring
SummaryTrue
Comments

If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
Examples
General

123456


Mappings
  • rim: n/a
  • v2: CX.1 / EI.1
  • rim: II.extension or II.root if system indicates OID or GUID (Or Role.id.extension or root)
  • servd: ./Value
MedicationRequest.eventHistory.identifier.period
DefinitionTime period during which identifier is/was valid for use.
Cardinality0...1
TypePeriod
SummaryTrue
Comments

A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times").

Period is not used for a duration (a measure of elapsed time). See Duration.

Invariants
  • ele-1: All FHIR elements must have a @value or children
    hasValue() or (children().count() > id.count())
  • per-1: If present, start SHALL have a lower value than end
    start.hasValue().not() or end.hasValue().not() or (start <= end)
Mappings
  • rim: n/a
  • v2: DR
  • rim: IVL<TS>[lowClosed="true" and highClosed="true"] or URG<TS>[lowClosed="true" and highClosed="true"]
  • v2: CX.7 + CX.8
  • rim: Role.effectiveTime or implied by context
  • servd: ./StartDate and ./EndDate
MedicationRequest.eventHistory.identifier.assigner
DefinitionOrganization that issued/manages the identifier.
Cardinality0...1
TypeReference()
SummaryTrue
Comments

The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization.

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: CX.4 / (CX.4,CX.9,CX.10)
  • rim: II.assigningAuthorityName but note that this is an improper use by the definition of the field. Also Role.scoper
  • servd: ./IdentifierIssuingAuthority
MedicationRequest.eventHistory.display
DefinitionPlain text narrative that identifies the resource in addition to the resource reference.
Cardinality0...1
Typestring
SummaryTrue
Comments

This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it.

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

keyhumanseverityexpression
eps-1Only one of medicationReference or medicationCodeableConcept should be providederror(medicationReference.exists() and medicationCodeableConcept.exists().not()) or (medicationReference.exists().not() and medicationCodeableConcept.exists())


Digital Medicine has the following extra rules in addition to UK Core MedicationRequest:


Must Support, Optional and Not Supported

Elements marked with a S MUST be supported by both producing and receiving systems. They should be populated if the data exists or the profile has made them mandatory.

The following elements SHOULD NOT are not expected to be supported by consuming or receiving systems.

  • doNotPerform
  • detectedIssue

Elements that are neither marked as Must Support or listed as unsupported are optional. At present they will not be processed by EPS, however the intention is a future version of EPS will pass all elements to recipients. It is recommended these elements are populated from the guidance in UKCore Medicines


Continous and Continuous Repeat Dispensing

The Extension UK Core Medication Repeat Information extension MUST be present for continuous and continuous-repeat-dispensing therapy types.

Field Description
numberOfRepeatPrescriptionsIssued Running total of number of issues made against a repeat authorisation.
numberOfRepeatPrescriptionsAllowed Retired. See numberOfRepeatsAllowed
authorisationExpiryDate The date a repeat prescription authorisation will expire.
"extension": [
  {
       "url": "https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-MedicationRepeatInformation",
       "extension": [
           {
               "url": "numberOfRepeatPrescriptionsAllowed",
               "valueUnsignedInt": 4
           },
           {
               "url": "numberOfRepeatPrescriptionsIssued",
               "valueUnsignedInt": 1
           },
           {
               "url": "authorisationExpiryDate",
               "valueDateTime": "2020-08-07"
           }
       ]
   }
]


Responsible Practitioner (extension responsiblePractitioner)

Must only be populated if the requester can not be responsible for the prescription, i.e. they would not be named as the prescriber on the FP10.

In that case, the Extension-DM-ResponsiblePractitioner is mandatory.

"extension": [
        
    {
        "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-ResponsiblePractitioner",
        "valueReference": {
            "reference": "urn:uuid:a5acefc1-f8ca-4989-a5ac-34ae36741466",
            "display": "DR SAZ RAZ"
        }
    }
],


Endorsements (extension prescriptionEndorsement)

NHS BSA Endorsements are carried in the Extension-PrescriptionEndorsement The codes are contained in DM-prescription-endorsement valueset

Code Display
CC Contraceptive
FS Sexual Health
ACBS Advisory Committee on Borderline Substances. Part XV Drug Tariff
SLS Selected List Scheme. Part XVIIIB Drug Tariff
AF Food replacement/food supplement products
"resourceType": "MedicationRequest",
    "extension":  [
      {
          "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionEndorsement",
          "valueCodeableConcept": {
              "coding":  [
                {
                    "system": "https://fhir.nhs.uk/CodeSystem/medicationrequest-endorsement",
                    "code": "SLS",
                    "display": "Selected List Scheme"
                }
            ]
        }
    }
  ],


Administrative Status (extension statusHistory)

Should not be populated by prescribing systems. It is populated by EPS in 'prescription-order-response' messages. See DM-MedicationRequest-Outcome for details.


NHS BSA Prescription Type (extension NHSBSAprescriptionType)

The vocabulary for the ‘PrescriptionType’ vocabulary is defined within the NHSBSA Overprint Specification.

The System must populate the ‘PrescriptionType’ attribute for the appropriate combination of prescriber and care setting. Retired codes within this vocabulary must not be used. See also DM-Prescription-Type

"extension":  [
    {
        "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionType",
        "valueCoding": {
            "system": "https://fhir.nhs.uk/CodeSystem/prescription-type",
            "code": "1201",
            "display": "Outpatient Homecare Prescriber - Medical Prescriber"
        }
    }
    ]


Controlled Drugs (extension controlledDrug)

Controlled drugs are recorded in the category section alongside the episode class (if applicable). The codes must belong to the DM-MedicationRequest-Controlled-Drug valueset.

The table below summarises the EPS requirements for the CD schedules. The terms “Hand signature” and “Electronic signature” expressed in the table are shortened references to the legal definition of signature requirements within government legislation.

Sch. Code Signing Legal Requirement EPS Scope Expiry Date Quantity Representation Repeat Dispensing Allowed RD 1st Issue Expiry RD Subsequent Expiry
1 CD1 Invalid to prescribe Out of scope N/A N/A N/A N/A
2 CD2 Hand signature or electronic signature In scope 28 days Words and Figures No N/A N/A
3 CD3 Hand signature or electronic signature In scope 28 days Words and Figures No N/A N/A
4 CD4-1 CD4-2 Hand signature or electronic signature In scope 28 days Figures Yes 28 days Up to 12 months
5 CD5 Hand signature or electronic signature In scope 6 Months Figures Yes 6 months Up to 12 months

It is a legal requirement to state the prescribed quantity as words in the quantityWords element of Extension-DM-ControlledDrug

{
    "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-ControlledDrug",
    "extension": [
        {
            "url": "quantityWords",
            "valueString": "twenty eight"
        },
        {
            "url": "schedule",
            "valueCoding": {
                "system": "https://fhir.nhs.uk/CodeSystem/medicationrequest-controlled-drug",
                "code": "CD2",
                "display": "Schedule 2"
            }
        }
    ]
}


extension dispensingInformation

Extension-EPS-DispensingInformation Should not be populated by prescribing systems.

This extension is used in continuous-repeat-dispensing prescriptions sent by EPS to dispensing systems to convey information on prior dispensed medications.

"extension":  [
                {
                    "url": "https://fhir.nhs.uk/StructureDefinition/Extension-EPS-DispensingInformation",
                    "extension":  [
                        {
                            "url": "dispenseStatus",
                            "valueCoding": {
                                "system": "https://fhir.nhs.uk/CodeSystem/medicationdispense-type",
                                "code": "0001",
                                "display": "Item fully dispensed"
                            }
                        },
                        {
                            "url": "dateLastDispensed",
                            "valueDateTime": "2018-04-22T09:57:03+00:00"
                        }
                    ]
                }
            ],


identifier

Each MedicationRequest MUST be identified by an Universal Unique Identifiers (UUIDs) with a system of https://fhir.nhs.uk/Id/prescription-order-item-number

UUID example (for illustration purposes only);

a54219b8-f741-4c47-b662-e4f8dfa49ab6

This is contained in the extension Extension-DM-GroupIdentifier

 "identifier":  [
    {
        "system": "https://fhir.nhs.uk/Id/prescription-order-item-number",
        "value": "a54219b8-f741-4c47-b662-e4f8dfa49ab6"
    }
]


status

A code specifying the current state of the order. Generally, this will be active or completed state.

code Definition
active The prescription is 'actionable', but not all actions that are implied by it have occurred yet. It has not been dispensed or filled.
cancelled The prescription is to be cancelled or it has been cancelled been withdrawn before any administrations have occurred. Prescriptions in the process of being cancelled will be regarded as active until all actions are complete.
stopped

statusReason

This is generally only used for "exception" statuses such as "suspended" or "cancelled". It is the clinical status reason for the cancellation. It is a code from DM-MedicationRequest-Status-Reason, the administrative status is captured in extension(statusHistory)

This is mandatory for 'prescription-order-update' messages.

"statusReason": {
    "coding": [
        {
            "system": "https://fhir.nhs.uk/CodeSystem/medicationrequest-status-reason",
            "code": "0001",
            "display": "Prescribing Error"
        }
    ]
},

intent

Indicates the type of order. A code specifying the current state of the order. Generally, this will be active or completed state.

code display courseOfTherapyType Definition
order Order acute The request represents a request/demand and authorization for action
original-order Original Order continuous-repeat-dispensing instalment-dispensing The request represents the original authorization for the medication request.
reflex-order Reflex Order continuous-repeat-dispensing The request represents an automatically generated supplemental authorization (by EPS) for action based on a parent authorization together with initial results of the action taken against that parent authorization.
instance-order Instance Order instalment-dispensing The request represents an instance for the particular order.

Category

Category code from DM-MedicationRequest-Category is required. In primary care the code of community should be used. In secondary care the category will often match the Episode/Spell type.

Code System Display
leave https://fhir.nhs.uk/CodeSystem/medicationrequest-category Leave
outpatient http://terminology.hl7.org/CodeSystem/medicationrequest-category Outpatient
discharge http://terminology.hl7.org/CodeSystem/medicationrequest-category Discharge
community http://terminology.hl7.org/CodeSystem/medicationrequest-category Community
inpatient http://terminology.hl7.org/CodeSystem/medicationrequest-category Inpatient
"category": [
    {
        "coding": [
            {
                "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category",
                "code": "outpatient",
                "display": "Outpatient"
            }
        ]
    }
],

medication[x]

Only Virtual Medical Products (VMP) and Actual Medical Products (AMP) can be used. The ValueSet for medication is DM-MedicationRequest-Code

See also Prescribing

dm+d Category dm+d Description UK SNOMED Members Of
VMP Virtual Medical Product 999000561000001109
AMP Actual Medical Product 999000541000001108

 "medicationCodeableConcept": {
        "coding":  [
            {
                "system": "http://snomed.info/sct",
                "code": "9207411000001106",
                "display": "Salbutamol 100micrograms/dose dry powder inhaler"
            }
        ]
    },


subject

A resource reference to a Patient with a traced NHS Number is required, an untraced NHS Number MUST NOT be used.

 "subject": {
                    "type": "Patient",
                    "reference": "urn:uuid:bde9eba6-079f-4210-8108-6ea8db58de8c",
                    "display": "Miss Bernie Kanfeld"
                }


Requester

The requester must contain a resource reference to the Practitioner who has electronically signed the prescription.

If the requester can not take responsibility for the prescription, i.e. they would not be the prescriber on the FP10. Then the extension responsiblePractitioner must be populated.

"requester": {
    "reference": "urn:uuid:56166769-c1c4-4d07-afa8-132b5dfca666"
},


basedOn

This MUST be populated for continuous-repeat-dispensing issues where intent=reflex-order, i.e. the issues sent from EPS to pharmacists. It is recommended this is populated for continuous issues and this should reference the original order.

Example for a reflex-order (continuous-repeat-dispensing):

 "basedOn": [
        {
            "extension": [
                {
                    "url": "https://fhir.nhs.uk/StructureDefinition/Extension-EPS-RepeatInformation",
                    "extension": [
                        {
                            "url": "numberOfRepeatsAllowed",
                            "valueUnsignedInt": 6
                        }
                    ]
                }
            ],
            "identifier": {
                "system": "https://fhir.nhs.uk/Id/prescription-order-item-number",
                "value": "A7B86F8D-1D59-FC28-E050-D20AE3A215F0"
            }
        }
    ]

Example for a instance-order (continuous). Note this references an example MedicationRequest from GP Connect:

 "basedOn": [
        {
            "extension": [
                {
                    "url": "https://fhir.nhs.uk/StructureDefinition/Extension-EPS-RepeatInformation",
                    "extension": [
                        {
                            "url": "numberOfRepeatsAllowed",
                            "valueUnsignedInt": 5
                        }
                    ]
                }
            ],
            "identifier": {
                "system": "https://provider.nhs.uk/data-identifier",
                "value": "53426283749629"
            }
        }
    ]


groupIdentifier (Short Form Prescription ID)

The purpose of the Short Form Prescription ID is to identify the prescription during its lifecycle within the Spine (i.e. prescribe, dispense & claim). The prescription UUID is retained to provide the link through to the Spine medication record within the PSIS and must be included as the first identifier within the prescription message. The format of the Short Form Prescription ID is as follows;

<RandomNumber>-<PracticeODSCode/ClinicODSCode>-<PracticeSequence/ClinicSequence><CheckDigit>

Where;

<RandomNumber> is a locally generated random number each time a Prescription ID is generated of length 6 hexadecimal characters.

<PracticeODSCode/ClinicODSCode> is the unique ODS code for the practice or clinic code (aka cost centre) as defined within the Spine SDS of length 6 characters. Where the prescriber ODS code is shorter than 6 characters it must be zero-padded up to six characters from the start of the ODS code, e.g. “0A1B2C”.

<PracticeSequence/ClinicSequence> is an incremental sequence number starting from 00000 that is reset after FFFFF back to zero of length 5 hexadecimal characters. For systems that support multiple practices or clinics, a sequence number per practice/clinic is required. This is to ensure uniqueness of prescriptions within the Spine EPS component during the prescription lifecycle.

<CheckDigit> is calculated on the entire ID using the ISO/IEC 7064:2003 MOD 37-2 standard. The check digit algorithm is identical to that using for EPS Release 1.

Note. Hyphens are always included to separate the ID into 3 blocks of 6 characters.

Note. The implementation of the MOD 37-2 standard uses a “+” character for char 36 opposed to a “*” character.

Short Form Prescription ID example (for illustration purposes only);

83C40E-A23856-00123W

"groupIdentifier": {
    ...
    "system": "https://fhir.nhs.uk/Id/prescription-order-number",
    "value": "DC2C66-A1B2C3-23407B"
},


Universal Unique Identifiers (UUIDs) (groupIdentifier.extension (PrescriptionOrderUUID))

When UUIDs are used within HL7 messages they must be represented in an upper case human-readable hexadecimal format where hyphen separators are used as per the example below and as defined by the ‘datatype’ schema within the DMS.

UUID example (for illustration purposes only);

34026084-A445-84AD-2D01-97D69ED25865

This is contained in the extension Extension-DM-GroupIdentifier

"groupIdentifier": {
    "extension":  [
        {
            "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionId",
            "valueIdentifier": {
                "system": "https://fhir.nhs.uk/Id/prescription",
                "value": "ad945a29-85f8-439a-b590-6789719adc16"
            }
        }
    ],
    "system": "https://fhir.nhs.uk/Id/prescription-order-number",
    "value": "DC2C66-A1B2C3-23407B"
},


courseOfTherapyType (Prescription Therapy Type)

See Prescribing Models for more details.

A single Code from DM-MedicationRequest-Course-of-Therapy valueset
In exceptional cases where for legacy data there is no prescriptionType recorded in the system then this MUST be populated with the text ‘No information available’.

The Extension UK Core Prescription Type MUST NOT be used with EPS (if used it will be ignored).
A conversion table (ConceptMap) from the old CodeSystem is provided here UKCore-PrescriptionType to R4 Prescription Therapy Type Map

"courseOfTherapyType": {
  "coding":  [
      {
          "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy",
          "code": "acute",
          "display": "Short course (acute) therapy"
      }
  ]
},

Dispensing note (note)

Clinical information relating to a prescribed medication item that cannot be conveyed within dosage instructions is populated within note field.

Examples of dispensing notes are:

  • To explain changes in dosage, for example, “Dosage has been increased on advice of the hospital”.
  • "Tell patient to stop their statin whilst on this anitbiotic"
  • "hospital consultant has confirmed dual treatment"

One scenario where note must be populated is when the current prescribed medication item is the last authorised repeat of that medication within a repeat prescribing cycle. Appropriate text, such as “Last authorised repeat” must be included within the note to inform the dispenser and to allow the dispenser to communicate to the patient or patient representative. Note that for repeat dispensing, the ‘numberOfRepeatPrescriptionsIssued’ element also conveys this information.

"note": [
    {
      "text": "Tell patient to stop their statin whilst on this anitbiotic"
    }
  ],

Dose Syntax (dosageInstruction)

The content of the dosageInstruction should follow guidance in Dosage Structure Overview. (Note this is based on CareConnect STU3 but the guidance is still valid in UKCore R4)

dosageInstruction.text MUST be supplied and is a human readable version of the structured dose as would be printed on a paper prescription. The prescriber is required to enter a medication item dosage. The use of a generic default value, for example “Use as directed”, if a value is not entered, is not acceptable from a clinical perspective.

The prescriber is required to enter a medication item dosage. The use of a generic default value, for example “Use as directed”, if a value is not entered, is not acceptable from a clinical perspective. The user must be asked to select a dosage instruction from a pick list, type by hand or have the system populate with a valid and clinically safe dosage instruction relevant to the prescribed medication or clinical circumstances.

As per BNF guidelines, the dosage must be presented to the user without abbreviation although it may be entered and stored within the PMR in an abbreviated form. Within HL7 messaging, the dosage instruction must be represented without abbreviation.

"dosageInstruction": [
   {
        "text": "10 milligram, Inject, Subcutaneous route, once weekly",
        "timing": {
            "repeat": {
                "boundsDuration": {
                    "value": 10,
                    "unit": "day",
                     "system": "http://unitsofmeasure.org",
                     "code": "d"
                },
                 "frequency": 5,
                 "period": 1,
                "periodUnit": "d"
             }
        },
        "route": {
            "coding": [
                {
                    "system": "http://snomed.info/sct",
                    "code": "34206005",
                    "display": "Subcutaneous route"
                }
            ]
        },
        "method": {
            "coding": [
                {
                    "system": "http://snomed.info/sct",
                    "code": "422145002",
                    "display": "Inject"
                }
            ]
        },
        "doseAndRate": [
            {
                "doseQuantity": {
                    "value": 10,
                    "unit": "milligram",
                    "system": "http://unitsofmeasure.org",
                    "code": "mg"
                }
            }
        ]
    }
]


patient infomation

These sections MUST be used only be used to pass notes regarding the prescription to the pharmacist or patient. Lists of repeat medications and general practice notifications to the patient SHOULD be recorded in NHSDigital-CommunicationRequest resource.

Patient instructions for taking the drug are contained with in the patientInstruction and additionalInstruction as per the guidance in Dosage Structure Overview

"dosageInstruction": [
    {
        "text": "10 milligram, Inject, Subcutaneous route, once weekly",
        "additionalInstruction": [
            "coding": [
                {
                    "system": "http://snomed.info/sct",
                    "code": "421769005",
                    "display": "Follow directions"
                }
            ],
        ],
        "patientInstruction": "As directed"
    }
]


dispenseRequest


Days Supply (dispenseRequest.expectedSupplyDuration and dispenseRequest.validityPeriod)

The expectedSupplyDuration entity is required for repeat dispensing (repeatable) prescriptions only.

The validityPeriod attribute defines the validity period for the prescription authorisation. This period must start (the validityPeriod.start) at the date of prescribing and cannot exceed 12 months (the validityPeriod.end). Typically, most repeatable prescriptions will be authorised for a validity period of either 6 or 12 months.

"dispenseRequest": {
          "validityPeriod": {
            "start": "2020-06-10",
            "end": "2020-12-07"
          },
          ...
      }

The expectedSupplyDuration element defines the expected duration, in days, of each issue of the prescription. A default value of 28 can be used which must be amendable by the prescriber when required. The value must be an integer value greater than zero. A sensible upper limit validation should be included within the System. If this value is omitted, the Spine will assume a value of 28.

"dispenseRequest": {
          ...
          "expectedSupplyDuration": {
            "value": 28,
            "unit": "days",
            "system": "http://unitsofmeasure.org",
            "code": "d"
          }
      }


dispenseRequest.numberOfRepeatsAllowed

The number of repeat issues authorised if specified.
MUST be present where a continuous or continuous-repeat-dispensing is authorised for a defined number of issues.
MUST NOT be specified where the number of repeat issues has not been defined. Therefore, the numberOfRepeats allowed is the total number of allowed issues. See also extension repeatInformation

For continuous orders and continuous-repeat-dispensing with intent=reflex-order (i.e., orders sent from EPS to pharmacists) this MUST be zero. The numberOfRepeatsAllowed in the extension to basedOn can be used to convey this information to inform patients that they need to re-order the medication.

Example for a continuous issue:


"dispenseRequest": {
        "numberOfRepeatsAllowed": 0
    }


Example for a continuous-repeat-dispensing issue with intent of original-order:


"dispenseRequest": {
        "numberOfRepeatsAllowed": 6
    }



Nominated Pharmacy and Dispensing Site Preference (dispenseRequest.performer)

For non token based prescriptions the destination pharmacy MUST be recorded in the dispenseRequest.performer.identifier and a identifier reference (not a resource reference) with an ANANA/ODS Code MUST used.

The extension Extension-performerSiteType MUST be present and the code must be sourced from the DM-Performer-Site-Type

Patients pharmacy preferences may be sourced from PDS

Command 'pagelink' could not render: Object reference not set to an instance of an object.

Patients pharmacy preferences may be overriden by an 'one-off pharmacy nomination' by populating the dispenseRequest.performer.identifier with the ODS/ANANA code of the destination pharmacy.

"dispenseRequest": {
        "extension":  [
            {
                "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PerformerSiteType",
                "valueCoding": {
                    "system": "https://fhir.nhs.uk/CodeSystem/dispensing-site-preference",
                    "code": "0004"
                }
            },
        ],
        "performer": {
            "identifier": {
                "system": "https://fhir.nhs.uk/Id/ods-organization-code",
                "value": "FX748"
            }
        },


substitution

Within UK healthcare, substitution is not the norm and so this element will normally be set to a default of false.

Substitution being set to false is a mandatory requirement for EPS.


"substitution": {
        "allowedBoolean": false
    }


Search Parameters

Name Type Description Conformance Path
authoredon date Return prescriptions written on this date SHOULD MedicationRequest.authoredOn
code token Return prescriptions of this medication code SHOULD (MedicationRequest.medication as CodeableConcept)
group-identifier token Returns dispenses with this external group identifier (EPS prescription short form id) MAY MedicationRequest.groupdIdentifier
identifier token Returns dispenses with this external identifier MAY MedicationRequest.identifier
patient:identifier token The identity of a patient to list orders for SHALL MedicationRequest.patient (Patient)
status token Status of the prescription SHOULD MedicationRequest.status

Additional parameters can be on MedicationRequest - Search Parameters


Mandatory Search Parameters

patient:identifier

SHALL support searching using the patient:identifier search parameter:

GET [baseUrl]/MedicationRequest?patient:identifier={system|}[code]

Example:

GET [baseUrl]/MedicationRequest?patient:identifier=https://fhir.nhs.uk/Id/nhs-number|9876543210

Return all MedicationRequest resources for Patients with a NHS Number of 9876543210

status + patient:identifier

SHALL support searching using the combination of the patient:identifier and status search parameters:

GET [baseUrl]/MedicationRequest?patient.identifier={system|}[code]&status=[code]

Example:

GET [baseUrl]/MedicationRequest?patient:identifier=9876543210&status=active

Return all MedicationRequest resources with a status of active and Patient with an identifier code of 9876543210.


Optional Search Parameters

authoredon + patient:identifier

SHOULD support searching using the combination of the patient:identifier and authoredon search parameters

  • including support for these date comparators: gt,lt,ge,le
  • including optional support for composite AND search on date (e.g.date=[date]&date=[date]]&...)
GET [baseUrl]/MedicationRequest?patient:identifier={system|}[code]&authoredon=[date]

Example:

GET [baseUrl]/MedicationRequest?patient:identifier=9876543210&authoredon=ge2010-01-01&authoredon=le2011-12-31

Return all MedicationRequest resources that have a authoredon greater than or equal to 1st Jan 2010, a date less than or equal to 31st Dec 2011 and Patient with an identifier code of 9876543210.

code + patient:identifier

MAY support searching using the combination of the patient:identifier and code search parameters:

  • including optional support for composite OR search on code (e.g. code={system|}[code],{system|}[code],...)
GET [baseUrl]/MedicationRequest?patient:identifier={system|}[code]&code={system|}|[code]

See reference for details on this parameter.

GET [baseUrl]/MedicationRequest?patient:identifier=9876543210&code=9207411000001106

Return all MedicationRequest resources that have a medication code (e.g. dm+d or SNOMED CT) with code of 9207411000001106 and Patient with an identifier code of 9876543210.

identifier

MAY support searching using the identifier search parameter:

GET [baseUrl]/MedicationRequest?identifier={system|}[code]

Example:

GET [baseUrl]/MedicationRequest?identifier=https://fhir.nhs.uk/Id/prescription-order-item-number|4509B70D-D8B8-EA03-1105-64557CB54A29

group-identifier

MAY support searching using the group-identifier search parameter:

GET [baseUrl]/MedicationRequest?group-identifier={system|}[code]

Example:

GET [baseUrl]/MedicationRequest?group-identifier=https://fhir.nhs.uk/Id/prescription-order-number|DC2C66-A1B2C3-23407B

NHSDigital-Task

Conformance Url
https://fhir.nhs.uk/StructureDefinition/NHSDigital-Task




idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
extensionI0..*Extension
modifierExtension?! I0..*Extension
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ0..1Period
assignerΣ0..1Reference(Organization)
instantiatesCanonicalΣ0..1canonical(ActivityDefinition)
instantiatesUriΣ0..1uri
basedOnΣ0..*Reference(Resource)
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ0..1Period
assignerΣ0..1Reference(Organization)
partOfΣ0..*Reference(Task)
statusΣ ?!1..1codeBinding
statusReasonΣ0..1CodeableConcept
id0..1string
extensionI0..*Extension
id0..1string
extensionI0..*Extension
systemΣ1..1uri
versionΣ0..1string
codeΣ1..1code
displayΣ1..1string
userSelectedΣ0..1boolean
textΣ0..1string
intentΣ1..1codeBinding
priority0..1codeBinding
id0..1string
extensionI0..*Extension
id0..1string
extensionI0..*Extension
systemΣ1..1uri
versionΣ0..1string
codeΣ1..1code
displayΣ1..1string
userSelectedΣ0..1boolean
textΣ0..1string
descriptionΣ0..1string
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ0..1Period
assignerΣ0..1Reference(Organization)
displayΣ0..1string
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ0..1Period
assignerΣ0..1Reference(Organization)
displayΣ0..1string
encounterΣ0..1Reference(Encounter)
executionPeriodΣ0..1Period
authoredOnI1..1dateTime
lastModifiedΣ I0..1dateTime
requesterΣ0..1Reference(Device | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson)
performerType0..*CodeableConceptBinding
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ0..1Period
assignerΣ0..1Reference(Organization)
displayΣ0..1string
locationΣ0..1Reference(Location)
id0..1string
extensionI0..*Extension
id0..1string
extensionI0..*Extension
systemΣ1..1uri
versionΣ0..1string
codeΣ1..1code
displayΣ1..1string
userSelectedΣ0..1boolean
textΣ0..1string
reasonReference0..1Reference(Resource)
insurance0..*Reference(Coverage | ClaimResponse)
note0..*Annotation
relevantHistory0..*Reference(Provenance)
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
repetitions0..1positiveInt
period0..1Period
recipient0..*Reference(Patient | Practitioner | PractitionerRole | RelatedPerson | Group | Organization)
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
type1..1CodeableConcept
valueBase64Binarybase64Binary
valueBooleanboolean
valueCanonicalcanonical()
valueCodecode
valueDatedate
valueDateTimedateTime
valueDecimaldecimal
valueIdid
valueInstantinstant
valueIntegerinteger
valueMarkdownmarkdown
valueOidoid
valuePositiveIntpositiveInt
valueStringstring
valueTimetime
valueUnsignedIntunsignedInt
valueUriuri
valueUrlurl
valueUuiduuid
valueAddressAddress
valueAgeAge
valueAnnotationAnnotation
valueAttachmentAttachment
valueCodeableConceptCodeableConcept
valueCodingCoding
valueContactPointContactPoint
valueCountCount
valueDistanceDistance
valueDurationDuration
valueHumanNameHumanName
valueIdentifierIdentifier
valueMoneyMoney
valuePeriodPeriod
valueQuantityQuantity
valueRangeRange
valueRatioRatio
valueSampledDataSampledData
valueSignatureSignature
valueTimingTiming
valueContactDetailContactDetail
valueContributorContributor
valueDataRequirementDataRequirement
valueExpressionExpression
valueParameterDefinitionParameterDefinition
valueRelatedArtifactRelatedArtifact
valueTriggerDefinitionTriggerDefinition
valueUsageContextUsageContext
valueDosageDosage
valueMetaMeta
valueReferenceReference()
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
type1..1CodeableConcept
valueBase64Binarybase64Binary
valueBooleanboolean
valueCanonicalcanonical()
valueCodecode
valueDatedate
valueDateTimedateTime
valueDecimaldecimal
valueIdid
valueInstantinstant
valueIntegerinteger
valueMarkdownmarkdown
valueOidoid
valuePositiveIntpositiveInt
valueStringstring
valueTimetime
valueUnsignedIntunsignedInt
valueUriuri
valueUrlurl
valueUuiduuid
valueAddressAddress
valueAgeAge
valueAnnotationAnnotation
valueAttachmentAttachment
valueCodeableConceptCodeableConcept
valueCodingCoding
valueContactPointContactPoint
valueCountCount
valueDistanceDistance
valueDurationDuration
valueHumanNameHumanName
valueIdentifierIdentifier
valueMoneyMoney
valuePeriodPeriod
valueQuantityQuantity
valueRangeRange
valueRatioRatio
valueSampledDataSampledData
valueSignatureSignature
valueTimingTiming
valueContactDetailContactDetail
valueContributorContributor
valueDataRequirementDataRequirement
valueExpressionExpression
valueParameterDefinitionParameterDefinition
valueRelatedArtifactRelatedArtifact
valueTriggerDefinitionTriggerDefinition
valueUsageContextUsageContext
valueDosageDosage
valueMetaMeta
valueReferenceReference()

idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
extensionI0..*Extension
modifierExtension?! I0..*Extension
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ0..1Period
assignerΣ0..1Reference(Organization)
instantiatesCanonicalΣ0..1canonical(ActivityDefinition)
instantiatesUriΣ0..1uri
basedOnΣ0..*Reference(Resource)
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ0..1Period
assignerΣ0..1Reference(Organization)
partOfΣ0..*Reference(Task)
statusΣ ?!1..1codeBinding
statusReasonΣ0..1CodeableConcept
id0..1string
extensionI0..*Extension
id0..1string
extensionI0..*Extension
systemΣ1..1uri
versionΣ0..1string
codeΣ1..1code
displayΣ1..1string
userSelectedΣ0..1boolean
textΣ0..1string
intentΣ1..1codeBinding
priority0..1codeBinding
id0..1string
extensionI0..*Extension
id0..1string
extensionI0..*Extension
systemΣ1..1uri
versionΣ0..1string
codeΣ1..1code
displayΣ1..1string
userSelectedΣ0..1boolean
textΣ0..1string
descriptionΣ0..1string
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ0..1Period
assignerΣ0..1Reference(Organization)
displayΣ0..1string
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ0..1Period
assignerΣ0..1Reference(Organization)
displayΣ0..1string
encounterΣ0..1Reference(Encounter)
executionPeriodΣ0..1Period
authoredOnI1..1dateTime
lastModifiedΣ I0..1dateTime
requesterΣ0..1Reference(Device | Organization | Patient | Practitioner | PractitionerRole | RelatedPerson)
performerType0..*CodeableConceptBinding
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uri
valueΣ1..1string
periodΣ0..1Period
assignerΣ0..1Reference(Organization)
displayΣ0..1string
locationΣ0..1Reference(Location)
id0..1string
extensionI0..*Extension
id0..1string
extensionI0..*Extension
systemΣ1..1uri
versionΣ0..1string
codeΣ1..1code
displayΣ1..1string
userSelectedΣ0..1boolean
textΣ0..1string
reasonReference0..1Reference(Resource)
insurance0..*Reference(Coverage | ClaimResponse)
note0..*Annotation
relevantHistory0..*Reference(Provenance)
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
repetitions0..1positiveInt
period0..1Period
recipient0..*Reference(Patient | Practitioner | PractitionerRole | RelatedPerson | Group | Organization)
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
type1..1CodeableConcept
valueBase64Binarybase64Binary
valueBooleanboolean
valueCanonicalcanonical()
valueCodecode
valueDatedate
valueDateTimedateTime
valueDecimaldecimal
valueIdid
valueInstantinstant
valueIntegerinteger
valueMarkdownmarkdown
valueOidoid
valuePositiveIntpositiveInt
valueStringstring
valueTimetime
valueUnsignedIntunsignedInt
valueUriuri
valueUrlurl
valueUuiduuid
valueAddressAddress
valueAgeAge
valueAnnotationAnnotation
valueAttachmentAttachment
valueCodeableConceptCodeableConcept
valueCodingCoding
valueContactPointContactPoint
valueCountCount
valueDistanceDistance
valueDurationDuration
valueHumanNameHumanName
valueIdentifierIdentifier
valueMoneyMoney
valuePeriodPeriod
valueQuantityQuantity
valueRangeRange
valueRatioRatio
valueSampledDataSampledData
valueSignatureSignature
valueTimingTiming
valueContactDetailContactDetail
valueContributorContributor
valueDataRequirementDataRequirement
valueExpressionExpression
valueParameterDefinitionParameterDefinition
valueRelatedArtifactRelatedArtifact
valueTriggerDefinitionTriggerDefinition
valueUsageContextUsageContext
valueDosageDosage
valueMetaMeta
valueReferenceReference()
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
type1..1CodeableConcept
valueBase64Binarybase64Binary
valueBooleanboolean
valueCanonicalcanonical()
valueCodecode
valueDatedate
valueDateTimedateTime
valueDecimaldecimal
valueIdid
valueInstantinstant
valueIntegerinteger
valueMarkdownmarkdown
valueOidoid
valuePositiveIntpositiveInt
valueStringstring
valueTimetime
valueUnsignedIntunsignedInt
valueUriuri
valueUrlurl
valueUuiduuid
valueAddressAddress
valueAgeAge
valueAnnotationAnnotation
valueAttachmentAttachment
valueCodeableConceptCodeableConcept
valueCodingCoding
valueContactPointContactPoint
valueCountCount
valueDistanceDistance
valueDurationDuration
valueHumanNameHumanName
valueIdentifierIdentifier
valueMoneyMoney
valuePeriodPeriod
valueQuantityQuantity
valueRangeRange
valueRatioRatio
valueSampledDataSampledData
valueSignatureSignature
valueTimingTiming
valueContactDetailContactDetail
valueContributorContributor
valueDataRequirementDataRequirement
valueExpressionExpression
valueParameterDefinitionParameterDefinition
valueRelatedArtifactRelatedArtifact
valueTriggerDefinitionTriggerDefinition
valueUsageContextUsageContext
valueDosageDosage
valueMetaMeta
valueReferenceReference()

key human severity expression
nhds-10 groupIdentifier and reasonCode are mandatory for EPS interactions error code.coding.where(system = 'http://hl7.org/fhir/CodeSystem/task-code').exists().not() or (code.coding.where(system = 'http://hl7.org/fhir/CodeSystem/task-code').exists() and groupIdentifier.exists() and reasonCode.exists())


A task resource describes an activity that can be performed and tracks the state of completion of that activity. It is a representation that an activity should be or has been initiated, and eventually, represents the successful or unsuccessful completion of that activity.

Note that there are a variety of processes associated with making and processing orders. Some orders may be handled immediately by automated systems but most require real world actions by one or more humans. Some orders can only be processed when other real world actions happen, such as a patient presenting themselves so that the action to be performed can actually be performed. Often these real world dependencies are only implicit in the order details.

A Task resource often exists in parallel with clinical resources.

For example, a Task could request fulfillment of a ServiceRequest ordering a Procedure that would result in a Procedure, Observation, DiagnosticReport, ImagingStudy or similar resource. Another example would be a Task that requests fulfillment of a CommunicationRequest to be performed between various actors.


Task Type

Task Type Description
Request Represents an order that needs to be fulfilled. The request will be contained in 'Task.input'
Event Represents an order that has been or is being fulfilled. The events will be contained in 'Task.output'

In simple workflow Requests and Events may be combined into one Task. For more complex workflow the use of sub-Tasks is allowed, in this case the use of 'basedOn' to reference the Request Task is recommended. See examples in Prescription Management


Must Support, Optional and Not Supported

Elements marked with a S MUST be supported by both producing and receiving systems. They should be populated if the data exists or the profile has made them mandatory.

The following elements SHOULD NOT are not expected to be supported by consuming or receiving systems.

  • doNotPerform
  • detectedIssue

Elements that are neither marked as Must Support or listed as unsupported are optional.


extension courseOfTherapyType (Prescription Therapy Type)

See Prescribing Models for more details.

A single Code from DM-MedicationRequest-Course-of-Therapy values.

"extension":  [
        {
            "url": "https://fhir.nhs.uk/StructureDefinition/Extension-EPS-Prescription",
            "extension":  [
                {
                    "url": "courseOfTherapyType",
                    "valueCoding": {
                        "system": "http://terminology.hl7.org/CodeSystem/medicationrequest-course-of-therapy",
                        "code": "acute",
                        "display": "Acute"
                    }
                }
            ]
        }
    ],


identifier

A single identifier MUST be present and the value must be a UUID.

"identifier":  [
        {
            "system": "https://tools.ietf.org/html/rfc4122",
            "value": "5AC84C11-DB8B-44DA-8FCF-8980B3D13596"
        }
    ],


status

Only in-progress and rejected are currently supported.

rejected means I have taken no action on the order and I am returning the prescription-order to EPS.

in-progress means I am still working on the prescription-order task and I am altering one the actions I have previously made (e.g. cancelling a previous dispense-notification)

statusReason

A code from DM-Task-Reason-Code Only codes from EPS Dispense Withdraw Reason can be used when the status is in-progress. Only codes from EPS Dispense Return Reason can be used when the status is rejected.

"statusReason": [{
        "coding":  [
            {
                "system": "https://fhir.nhs.uk/CodeSystem/EPS-task-dispense-withdraw-reason",
                "code": "DA",
                "display": "Dosage Amendments"
            }
        ]
    }]

intent

Is not processed by EPS and is included for FHIR compliance reasons. The value should always be order.

groupIdentifier

An identifier to the original prescription-order MUST be present. Only the short form identifier needs to be supplied.

"groupIdentifier": {
        "system": "https://fhir.nhs.uk/Id/prescription-order-number",
        "value": "88AF6C-C81007-00001C"
    },

code

The code indicates the action to perform on the focus resource. A code from TaskCode

 "code": {
        "coding":  [
            {
                "system": "http://hl7.org/fhir/CodeSystem/task-code",
                "code": "fulfill",
                "display": "Fulfill the focal request"
            }
        ]
    }

focus

This will be the Bundle.identifier of the message this Task is acting on. For Tasks with a status of in-progress this will be a dispense-notification message. For Tasks with a status of rejected this will be the prescription-order message from the Task/$release operation.

"focus": {
        "type": "Bundle",
        "identifier": {
            "system": "https://tools.ietf.org/html/rfc4122",
            "value": "334a3195-1f6c-497a-8efe-d272ca9c4e38"
        }
    },

for

A reference to the patient the Task is for. This will always be an identifier reference using the Patients NHSNumber.

"for": {
        "identifier": {
            "system": "https://fhir.nhs.uk/Id/nhs-number",
            "value": "9446368138"
        }
    },

requester

Who is created the Request or the Event.

"requester": {
        "identifier": {
            "system": "https://fhir.nhs.uk/Id/ods-organization-code",
            "value": "C81007"
        },
        "display": "VERNON STREET MEDICAL CTR"
    },

authoredOn

Date and time the task was created.

"authoredOn": "2020-12-21T17:03:20-00:00",

owner

Who is responsible for actioning the request Task (e.g. for a prescription-order this will be the pharmacy).

"owner": {
        "identifier": {
            "system": "https://fhir.nhs.uk/Id/ods-organization-code",
            "value": "FB444"
        },
        "display": "Freds Pharmacy"
    },

reasonCode

A code from DM-Task-Reason-Code Only codes from EPS Dispense Withdraw Reason can be used when the status is in-progress. Only codes from EPS Dispense Return Reason can be used when the status is rejected.

"reasonCode": {
        "coding":  [
            {
                "system": "https://fhir.nhs.uk/CodeSystem/EPS-task-dispense-withdraw-reason",
                "code": "DA",
                "display": "Dosage Amendments"
            }
        ]
    }

input

Information used to perform task.

For request Tasks this will contain references to the key resources that are used to process the Task. E.g. for prescription-order this will be the MedicationRequest resources.

For event Tasks this may also be used to hold the key resources, however if the event has a corresponding request Task i.e. this is a sub-Task, the basedOn element can be used instead.

"input":  [
        {
            "type": {
                "coding":  [
                    {
                        "system": "http://snomed.info/sct",
                        "code": "16076005",
                        "display": "Prescription"
                    }
                ]
            },
            "valueReference": {
                "type": "MedicationRequest",
                "reference": "https://prescriptions.spineservices.nhs.uk/FHIR/R4/MedicationRequest/30b7e9cf-6f42-40a8-84c1-e61ef638eee2",
                "identifier": {
                    "system": "https://fhir.nhs.uk/Id/prescription-order-item-number",
                    "value": "30b7e9cf-6f42-40a8-84c1-e61ef638eee2"
                },
                "display" : "Perindopril erbumine 2mg tablets"
            }
        },

output

Information produced as part of task.

For event Tasks this will contain references to the key resources that are produced on completion of the Task. E.g. for dispense-notification this will be the MedicationDispense resources.

"output":  [
        {
            "type": {
                "coding":  [
                    {
                        "system": "http://snomed.info/sct",
                        "code": "373784005",
                        "display": "Dispensing medication"
                    }
                ]
            },
            "valueReference": {
                "type": "MedicationDispense",
                "reference": "https://prescriptions.spineservices.nhs.uk/FHIR/R4/MedicationDispense/fd833d33-f128-4fa2-a807-1fc8a7db2658",
                "identifier": {
                    "system": "https://fhir.nhs.uk/Id/prescription-dispense-item-number",
                    "value": "fd833d33-f128-4fa2-a807-1fc8a7db2658"
                },
                "display": "Paracetamol 500mg soluble tablets (Alliance Healthcare (Distribution) Ltd) 60 tablet"
            }
        },

Search Parameters

Name Type Description Conformance Path
authored-on date Search by creation date (of prescription) SHOULD Task.authoredOn
identifier token Search for a task instance by its business identifier MAY Task.identifier
focus:identifier token Search by prescription short form id SHOULD Task.focus.identifier
owner:identifier token Search by task (Prescription) owner SHALL Task.owner (Organization)
patient:identifier token The identity of a patient to list Tasks (prescription) for SHALL Task.for.where(resolve() is Patient) (Patient)
business-status token Search by business status SHOULD Task.businessStatus
status token Search by task (/prescription) status SHOULD Task.status

Additional parameters can be on Task - Search Parameters


Mandatory Search Parameters

patient:identifier

SHALL support searching using the patient:identifier search parameter.

GET [baseUrl]/Task?patient:identifier={system|}[code]

Example:

GET [baseUrl]/Task?patient:identifier=https://fhir.nhs.uk/Id/nhs-number|9876543210

Return all Task resources for Patients with a NHS Number of 9876543210

owner:identifier

SHALL support searching using the owner:identifier search parameter.

GET [baseUrl]/Task?owner:identifier={system|}[code]

Example:

GET [baseUrl]/Task?owner:identifier=https://fhir.nhs.uk/Id/ods-organization-code|FA666

Return all Task resources for ODS Code of FA666


focus:identifier

SHALL support searching using the focus:identifier search parameter.

GET [baseUrl]/Task?focus:identifier={system|}[code]

Example:

GET [baseUrl]/Task?focus:identifier=https://fhir.nhs.uk/Id/prescription-order-number|2D35F7-ZA0448-11E88Z

Return all Task resources for with prescription short form of 2D35F7-ZA0448-11E88Z


Optional Search Parameters

authored-on + patient:identifier

SHOULD support searching using the combination of the patient:identifier and authored-on search parameters

GET [baseUrl]/Task?patient:identifier={system|}[code]&authored-on=[date]

Example:

GET [baseUrl]/MedicationRequest?patient:identifier=9876543210&authored-on=ge2010-01-01&authored-on=le2011-12-31

Return all Task resources that have a authoredon greater than or equal to 1st Jan 2010, a date less than or equal to 31st Dec 2011 and Patient with an identifier code of 9876543210.

identifier

SHOULD support searching using the identifier search parameter.

GET [baseUrl]/Task?identifier={system|}[code]

Example:

GET [baseUrl]/Task?identifier=https://fhir.nhs.uk/Id/prescription-order-number|DC2C66-A1B2C3-23407B

business-status + patient:identifier

SHOULD support searching using the combination of the patient:identifier and business-status search parameters

GET [baseUrl]/Task?patient:identifier={system|}[code]&business-status=[code]

Example:

GET [baseUrl]/Task?patient:identifier=9876543210&business-status=active

Return all Task resources with a status of active and Patient with an identifier code of 9876543210.

business-status + owner:identifier

SHOULD support searching using the combination of the owner:identifier and business-status search parameters

GET [baseUrl]/Task?owner:identifier={system|}[code]&business-status=[code]

Example:

GET [baseUrl]/Task?https://fhir.nhs.uk/Id/ods-organization-code|FA666&business-status=active

Return all Task resources with a status of active and owner with an ODS code of FA666.

NHSDigital-MedicationRequest-Outcome

Conformance Url
https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest-Outcome


Differential

from UK Core MedicationRequest

Command 'tree' could not render: File not found for 'subject=https://fhir.nhs.uk/StructureDefinition/NHSDigital-MedicationRequest-Outcome'

Combined

with UK Core MedicationRequest

idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
responsiblePractitionerI0..1Extension(IdentifierReference())
prescriptionTaskStatusReasonI1..*Extension(Complex)
modifierExtension?! I0..*Extension
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
statusΣ ?!1..1codeBinding
statusReason0..1CodeableConcept
intentΣ ?!1..1codeBinding
category0..*CodeableConcept
priorityΣ0..1codeBinding
doNotPerformΣ ?!0..1boolean
reportedBooleanboolean
reportedReferenceReference( | | | | )
medicationCodeableConceptCodeableConcept
medicationReferenceReference()
id0..1string
extensionI0..*Extension
referenceΣ I1..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ0..1string
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ0..1string
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ0..1string
authoredOnΣ1..1dateTime
id0..1string
extensionI0..*Extension
referenceΣ I1..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ0..1string
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ0..1string
performerTypeΣ0..1CodeableConcept
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ0..1string
reasonCode0..*CodeableConcept
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ0..1string
instantiatesCanonicalΣ0..*canonical()
instantiatesUriΣ0..*uri
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ0..1string
id0..1string
id0..1string
extensionI0..*Extension
url1..1uriFixed Value
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..1string
periodΣ0..1Period
assignerΣ0..1Reference(Organization)
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
courseOfTherapyType0..1CodeableConcept
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ0..1string
id0..1string
extensionI0..*Extension
authorStringstring
authorReferenceReference( | | | )
timeΣ0..1dateTime
textΣ1..1markdown
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
sequenceΣ0..1integer
textΣ0..1string
additionalInstructionΣ0..*CodeableConcept
patientInstructionΣ0..1string
timingΣ0..1Timing
asNeededBooleanboolean
asNeededCodeableConceptCodeableConcept
siteΣ0..1CodeableConcept
id0..1string
extensionI0..*Extension
id0..1string
extensionI0..*Extension
systemΣ1..1uriFixed Value
versionΣ0..1string
codeΣ1..1code
displayΣ1..1string
userSelectedΣ0..1boolean
textΣ0..1string
methodΣ0..1CodeableConcept
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
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
quantityI0..1SimpleQuantity
durationI0..1DurationBinding
dispenseIntervalI0..1DurationBinding
validityPeriodI0..1Period
numberOfRepeatsAllowed0..1unsignedInt
quantityI0..1SimpleQuantity
expectedSupplyDurationI0..1DurationBinding
id0..1string
practitionerRoleI0..1Extension(Reference())
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uriFixed Value
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ0..1string
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
allowedBooleanboolean
allowedCodeableConceptCodeableConcept
reason0..1CodeableConcept
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ0..1string
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization | )
displayΣ0..1string
id0..1string
extensionI0..*Extension
referenceΣ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemΣ0..1uri
valueΣ0..1string
periodΣ I0..1Period
assignerΣ I0..1Reference()
displayΣ0..1string

Examples

See examples in prescription-order-response

Relationship to DM-MedicationRequest

DM-MedicationRequest-Outcome is similar to the

Command 'pagelink' could not render: Object reference not set to an instance of an object.
profile but has relaxed rules and less constraints.

This profile expresses the minimum conformance for MedicationRequest resources when used with prescription-order-update messages. Where practical, the conformance rules for

Command 'pagelink' could not render: Object reference not set to an instance of an object.
should also be followed by suppliers. Consumers should be tolerant of conformance rules being exceeded, i.e. received MedicationRequest resources may conform to both this profile and
Command 'pagelink' could not render: Object reference not set to an instance of an object.
profiles.

Administrative Status extension(statusHistory))

The administrative status is held in the Extension-DM-PrescriptionStatusHistory and is mandatory for DM-MedicationRequest-Outcome

The status of the MedicationRequest is linked to the administrative status. In the example below the request to cancel an prescription item (MedicationRequest) failed as the prescription was with the dispenser. In this case the status of the MedicationRequest would be active.

"extension": [
    {
        "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionStatusHistory",
        "extension": [
            {
                "url": "status",
                "valueCoding": {
                    "system": "https://fhir.nhs.uk/CodeSystem/medicationrequest-status-history",
                    "code": "R-0002",
                    "display": "Prescription/item was not cancelled – With dispenser"
                }
            }
        ]
    }
  ]

In the second example below, the prescription item has been returned by the pharamcy and so the status of the MedicationRequest would be cancelled.

"extension": [
    {
        "url": "https://fhir.nhs.uk/StructureDefinition/Extension-DM-PrescriptionStatusHistory",
        "extension": [
            {
                "url": "status",
                "valueCoding": {
                    "system": "https://fhir.nhs.uk/CodeSystem/medicationrequest-status-history",
                    "code": "R-0001",
                    "display": "Prescription/item was cancelled"
                }
            }
        ]
    }
]

medication[x]

Is required in the base MedicationRequest resource. When this is not available a medicationCodeableConcept with a top level SNOMED Medication Product code MUST be used.

Code Display
763158003 Medicinal product

E.g.

"medicationCodeableConcept": {
    "coding": [
        {
            "system": "http://snomed.info/sct",
            "code": "763158003",
            "display": "Medicinal product"
        }
    ]

back to top