This page is part of the Data Access Framework (v1.6.0: STU 2 Ballot 1) based on FHIR v1.6.0. . For a full list of available versions, see the Directory of published versions
Both the MedicationOrder and MedicationStatement resources can be used to record a patient’s medication. For more information about the context for their usages, refer to the medication domains’s boundaries section. This profile sets minimum expectations for the MedicationStatement resource to record, search and fetch medications associated with a patient. It identifies which core elements, extensions, vocabularies and value sets SHALL be present in the resource when using this profile.
Example Usage Scenarios:
The following are example usage scenarios for the DAF-MedicationStatement profile:
The following data-elements are mandatory (i.e data MUST be present). These are presented below in a simple human-readable explanation. Profile specific guidance and an example are provided as well. The Formal Profile Definition below provides the formal summary, definitions, and terminology requirements.
Each MedicationStatement must have:
Profile specific implementation guidance:
The official URL for this profile is:
http://hl7.org/fhir/us/daf/StructureDefinition/daf-core-medicationstatement
This profile was published on Mon Aug 01 00:00:00 AEST 2016 as a draft by Health Level Seven International (FHIR-Infrastructure).
Description of Profiles, Differentials, Snapshots, and how the XML and JSON presentations work.
This structure is derived from MedicationStatement
MedicationStatement.status
which has an required binding to:
MedicationStatement.medicationCodeableConcept
or MedicationStatement.medicationReference
MedicationStatement.medicationCodeableConcept
has an extensible binding to Medication Clinical Drug (RxNorm) value set.MedicationStatement.patient
MedicationStatement.effectiveDateTime
or MedicationStatment.effectivePeriod
This structure is derived from MedicationStatement
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
MedicationStatement | I | 0..* | Record of medication being taken by a patient dom-2: If the resource is contained in another resource, it SHALL NOT contain nested Resources dom-1: If the resource is contained in another resource, it SHALL NOT contain any narrative dom-4: If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated dom-3: If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource mst-3: Reason for use reference is only permitted if notTaken is false mst-1: Reason not taken is only permitted if notTaken is true mst-2: Reason for use code is only permitted if notTaken is false | |
id | ∑ | 0..1 | id | Logical id of this artifact |
meta | ∑ | 0..1 | Meta | Metadata about the resource |
implicitRules | ?!∑ | 0..1 | uri | A set of rules under which this content was created |
language | 0..1 | code | Language of the resource content Binding: Common Languages (extensible) | |
text | I | 0..1 | Narrative | Text summary of the resource, for human interpretation |
contained | 0..* | Resource | Contained, inline Resources | |
extension | 0..* | Extension | Additional Content defined by implementations | |
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored |
identifier | 0..* | Identifier | External identifier | |
status | ?!S | 1..1 | code | active | completed | entered-in-error | intended | stopped | on-hold Binding: MedicationStatementStatus (required) |
medication[x] | S | 1..1 | CodeableConcept, Reference(Profile daf-core-medication) | What medication was taken Binding: Medication Clinical Drug (RxNorm) (extensible) |
patient | S | 1..1 | Reference(Profile daf-core-patient) | Who is/was taking the medication |
effective[x] | S | 1..1 | dateTime, Period | Over what period was medication consumed? |
informationSource | 0..1 | Reference(Patient | Practitioner | RelatedPerson) | Person who provided the information about the taking of this medication | |
supportingInformation | 0..* | Reference(Resource) | Additional supporting information | |
dateAsserted | ∑ | 0..1 | dateTime | When the statement was asserted? |
notTaken | ?!∑ | 0..1 | boolean | True if medication is/was not being taken |
reasonNotTaken | I | 0..* | CodeableConcept | True if asserting medication was not given Binding: (unbound) (example) |
reasonForUseCode | 0..* | CodeableConcept | Reason for why the medication is being/was taken Binding: Condition/Problem/Diagnosis Codes (example) | |
reasonForUseReference | 0..* | Reference(Condition) | Condition that supports why the medication is being/was taken | |
note | 0..* | Annotation | Further information about the statement | |
category | 0..1 | code | Type of medication usage Binding: MedicationStatementCategory (example) | |
dosage | 0..* | BackboneElement | Details of how medication was taken | |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
extension | 0..* | Extension | Additional Content defined by implementations | |
modifierExtension | ?!∑ | 0..* | Extension | Extensions that cannot be ignored |
text | 0..1 | string | Free text dosage instructions as reported by the information source | |
additionalInstructions | 0..* | CodeableConcept | Supplemental instructions - e.g. "with meals" Binding: SNOMED CT Additional Dosage Instructions (example) | |
timing | 0..1 | Timing | When/how often was medication taken | |
asNeeded[x] | 0..1 | boolean, CodeableConcept | Take "as needed" (for x) Binding: SNOMED CT Medication As Needed Reason Codes (example) | |
site[x] | 0..1 | CodeableConcept, Reference(BodySite) | Where (on body) medication is/was administered Binding: SNOMED CT Anatomical Structure for Administration Site Codes (example) | |
route | 0..1 | CodeableConcept | How the medication entered the body Binding: SNOMED CT Route Codes (example) | |
method | 0..1 | CodeableConcept | Technique used to administer medication Binding: SNOMED CT Administration Method Codes (example) | |
dose[x] | 0..1 | SimpleQuantity, Range | Amount of medication per dose | |
rate[x] | 0..1 | Ratio, Range, SimpleQuantity | Dose quantity per unit of time | |
maxDosePerPeriod | 0..1 | Ratio | Maximum dose that was consumed per unit of time | |
Documentation for this format |
yet to be done: Xml template
yet to be done: Json template
This structure is derived from MedicationStatement
Differential View
This structure is derived from MedicationStatement
Snapshot View
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
MedicationStatement | I | 0..* | Record of medication being taken by a patient dom-2: If the resource is contained in another resource, it SHALL NOT contain nested Resources dom-1: If the resource is contained in another resource, it SHALL NOT contain any narrative dom-4: If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated dom-3: If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource mst-3: Reason for use reference is only permitted if notTaken is false mst-1: Reason not taken is only permitted if notTaken is true mst-2: Reason for use code is only permitted if notTaken is false | |
id | ∑ | 0..1 | id | Logical id of this artifact |
meta | ∑ | 0..1 | Meta | Metadata about the resource |
implicitRules | ?!∑ | 0..1 | uri | A set of rules under which this content was created |
language | 0..1 | code | Language of the resource content Binding: Common Languages (extensible) | |
text | I | 0..1 | Narrative | Text summary of the resource, for human interpretation |
contained | 0..* | Resource | Contained, inline Resources | |
extension | 0..* | Extension | Additional Content defined by implementations | |
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored |
identifier | 0..* | Identifier | External identifier | |
status | ?!S | 1..1 | code | active | completed | entered-in-error | intended | stopped | on-hold Binding: MedicationStatementStatus (required) |
medication[x] | S | 1..1 | CodeableConcept, Reference(Profile daf-core-medication) | What medication was taken Binding: Medication Clinical Drug (RxNorm) (extensible) |
patient | S | 1..1 | Reference(Profile daf-core-patient) | Who is/was taking the medication |
effective[x] | S | 1..1 | dateTime, Period | Over what period was medication consumed? |
informationSource | 0..1 | Reference(Patient | Practitioner | RelatedPerson) | Person who provided the information about the taking of this medication | |
supportingInformation | 0..* | Reference(Resource) | Additional supporting information | |
dateAsserted | ∑ | 0..1 | dateTime | When the statement was asserted? |
notTaken | ?!∑ | 0..1 | boolean | True if medication is/was not being taken |
reasonNotTaken | I | 0..* | CodeableConcept | True if asserting medication was not given Binding: (unbound) (example) |
reasonForUseCode | 0..* | CodeableConcept | Reason for why the medication is being/was taken Binding: Condition/Problem/Diagnosis Codes (example) | |
reasonForUseReference | 0..* | Reference(Condition) | Condition that supports why the medication is being/was taken | |
note | 0..* | Annotation | Further information about the statement | |
category | 0..1 | code | Type of medication usage Binding: MedicationStatementCategory (example) | |
dosage | 0..* | BackboneElement | Details of how medication was taken | |
id | 0..1 | string | xml:id (or equivalent in JSON) | |
extension | 0..* | Extension | Additional Content defined by implementations | |
modifierExtension | ?!∑ | 0..* | Extension | Extensions that cannot be ignored |
text | 0..1 | string | Free text dosage instructions as reported by the information source | |
additionalInstructions | 0..* | CodeableConcept | Supplemental instructions - e.g. "with meals" Binding: SNOMED CT Additional Dosage Instructions (example) | |
timing | 0..1 | Timing | When/how often was medication taken | |
asNeeded[x] | 0..1 | boolean, CodeableConcept | Take "as needed" (for x) Binding: SNOMED CT Medication As Needed Reason Codes (example) | |
site[x] | 0..1 | CodeableConcept, Reference(BodySite) | Where (on body) medication is/was administered Binding: SNOMED CT Anatomical Structure for Administration Site Codes (example) | |
route | 0..1 | CodeableConcept | How the medication entered the body Binding: SNOMED CT Route Codes (example) | |
method | 0..1 | CodeableConcept | Technique used to administer medication Binding: SNOMED CT Administration Method Codes (example) | |
dose[x] | 0..1 | SimpleQuantity, Range | Amount of medication per dose | |
rate[x] | 0..1 | Ratio, Range, SimpleQuantity | Dose quantity per unit of time | |
maxDosePerPeriod | 0..1 | Ratio | Maximum dose that was consumed per unit of time | |
Documentation for this format |
XML Template
yet to be done: Xml template
JSON Template
yet to be done: Json template
Downloads: StructureDefinition: (XML, JSON), Schema: XML Schematron
Path | Name | Conformance | ValueSet |
MedicationStatement.language | Common Languages | extensible | Common Languages |
MedicationStatement.status | MedicationStatementStatus | required | MedicationStatementStatus |
MedicationStatement.medication[x] | Medication Clinical Drug (RxNorm) | extensible | Medication Clinical Drug (RxNorm) |
MedicationStatement.reasonNotTaken | ?ext | example | |
MedicationStatement.reasonForUseCode | Condition/Problem/Diagnosis Codes | example | Condition/Problem/Diagnosis Codes |
MedicationStatement.category | MedicationStatementCategory | example | MedicationStatementCategory |
MedicationStatement.dosage.additionalInstructions | SNOMED CT Additional Dosage Instructions | example | SNOMED CT Additional Dosage Instructions |
MedicationStatement.dosage.asNeeded[x] | SNOMED CT Medication As Needed Reason Codes | example | SNOMED CT Medication As Needed Reason Codes |
MedicationStatement.dosage.site[x] | SNOMED CT Anatomical Structure for Administration Site Codes | example | SNOMED CT Anatomical Structure for Administration Site Codes |
MedicationStatement.dosage.route | SNOMED CT Route Codes | example | SNOMED CT Route Codes |
MedicationStatement.dosage.method | SNOMED CT Administration Method Codes | example | SNOMED CT Administration Method Codes |
Id | Path | Details | Requirements |
dom-2 | MedicationStatement | If the resource is contained in another resource, it SHALL NOT contain nested Resources XPath: not(parent::f:contained and f:contained) | |
dom-1 | MedicationStatement | If the resource is contained in another resource, it SHALL NOT contain any narrative XPath: not(parent::f:contained and f:text) | |
dom-4 | MedicationStatement | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated XPath: not(exists(f:contained/*/f:meta/f:versionId)) and not(exists(f:contained/*/f:meta/f:lastUpdated)) | |
dom-3 | MedicationStatement | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource XPath: not(exists(for $id in f:contained/*/@id return $id[not(ancestor::f:contained/parent::*/descendant::f:reference/@value=concat('#', $id))])) | |
mst-3 | MedicationStatement | Reason for use reference is only permitted if notTaken is false XPath: not(exists(*[starts-with(local-name(.), 'reasonForUseReference')]) and f:notTaken/@value=true()) | |
mst-1 | MedicationStatement | Reason not taken is only permitted if notTaken is true XPath: not(exists(f:reasonNotTaken) and f:notTaken/@value=false()) | |
mst-2 | MedicationStatement | Reason for use code is only permitted if notTaken is false XPath: not(exists(*[starts-with(local-name(.), 'reasonForUseCode')]) and f:notTaken/@value=true()) |