STU 2 Ballot

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

D.4.1 StructureDefinition: DAF-core-medicationstatement

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:

  • Query for active medications being taken by a patient
  • Query for all patients who are taking a particular medication
  • Query for all patients who are/were taking a particular medication within a particular time period
Mandatory Data Elements and Terminology

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:

  1. a status
  2. a medication
  3. a patient
  4. a date or date range

Profile specific implementation guidance:

  • The MedicationStatement and MedicationOrder resources can represent a medication, using either a code or refer to a Medication resource. The server application can choose one way or both methods, but the client application must support both methods. More specific guidance is provided in the conformance resource for this profile
Example: MedicationStatement Example: example

D.4.1.1 Formal Views of Profile Content

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

Complete Summary of the Mandatory Requirements

  1. One status in MedicationStatement.status which has an required binding to:
  2. One medication via MedicationStatement.medicationCodeableConcept or MedicationStatement.medicationReference
  3. One patient reference in MedicationStatement.patient
  4. One date or period in MedicationStatement.effectiveDateTime or MedicationStatment.effectivePeriod
NameFlagsCard.TypeDescription & Constraintsdoco
.. MedicationStatement I0..*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..1idLogical id of this artifact
... meta 0..1MetaMetadata about the resource
... implicitRules ?!0..1uriA set of rules under which this content was created
... language 0..1codeLanguage of the resource content
Binding: Common Languages (extensible)
... text I0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension 0..*ExtensionAdditional Content defined by implementations
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... identifier 0..*IdentifierExternal identifier
... status ?!S1..1codeactive | completed | entered-in-error | intended | stopped | on-hold
Binding: MedicationStatementStatus (required)
... medication[x] S1..1CodeableConcept, Reference(Profile daf-core-medication)What medication was taken
Binding: Medication Clinical Drug (RxNorm) (extensible)
... patient S1..1Reference(Profile daf-core-patient)Who is/was taking the medication
... effective[x] S1..1dateTime, PeriodOver what period was medication consumed?
... informationSource 0..1Reference(Patient | Practitioner | RelatedPerson)Person who provided the information about the taking of this medication
... supportingInformation 0..*Reference(Resource)Additional supporting information
... dateAsserted 0..1dateTimeWhen the statement was asserted?
... notTaken ?!0..1booleanTrue if medication is/was not being taken
... reasonNotTaken I0..*CodeableConceptTrue if asserting medication was not given
Binding: (unbound) (example)
... reasonForUseCode 0..*CodeableConceptReason 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..*AnnotationFurther information about the statement
... category 0..1codeType of medication usage
Binding: MedicationStatementCategory (example)
... dosage 0..*BackboneElementDetails of how medication was taken
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
.... text 0..1stringFree text dosage instructions as reported by the information source
.... additionalInstructions 0..*CodeableConceptSupplemental instructions - e.g. "with meals"
Binding: SNOMED CT Additional Dosage Instructions (example)
.... timing 0..1TimingWhen/how often was medication taken
.... asNeeded[x] 0..1boolean, CodeableConceptTake "as needed" (for x)
Binding: SNOMED CT Medication As Needed Reason Codes (example)
.... site[x] 0..1CodeableConcept, Reference(BodySite)Where (on body) medication is/was administered
Binding: SNOMED CT Anatomical Structure for Administration Site Codes (example)
.... route 0..1CodeableConceptHow the medication entered the body
Binding: SNOMED CT Route Codes (example)
.... method 0..1CodeableConceptTechnique used to administer medication
Binding: SNOMED CT Administration Method Codes (example)
.... dose[x] 0..1SimpleQuantity, RangeAmount of medication per dose
.... rate[x] 0..1Ratio, Range, SimpleQuantityDose quantity per unit of time
.... maxDosePerPeriod 0..1RatioMaximum dose that was consumed per unit of time

doco Documentation for this format

yet to be done: Xml template

yet to be done: Json template

This structure is derived from MedicationStatement

Summary

Mandatory: 4 elements
Must-Support: 4 elements

Structures

This structure refers to these other structures:

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. MedicationStatement I0..*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..1idLogical id of this artifact
... meta 0..1MetaMetadata about the resource
... implicitRules ?!0..1uriA set of rules under which this content was created
... language 0..1codeLanguage of the resource content
Binding: Common Languages (extensible)
... text I0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension 0..*ExtensionAdditional Content defined by implementations
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... identifier 0..*IdentifierExternal identifier
... status ?!S1..1codeactive | completed | entered-in-error | intended | stopped | on-hold
Binding: MedicationStatementStatus (required)
... medication[x] S1..1CodeableConcept, Reference(Profile daf-core-medication)What medication was taken
Binding: Medication Clinical Drug (RxNorm) (extensible)
... patient S1..1Reference(Profile daf-core-patient)Who is/was taking the medication
... effective[x] S1..1dateTime, PeriodOver what period was medication consumed?
... informationSource 0..1Reference(Patient | Practitioner | RelatedPerson)Person who provided the information about the taking of this medication
... supportingInformation 0..*Reference(Resource)Additional supporting information
... dateAsserted 0..1dateTimeWhen the statement was asserted?
... notTaken ?!0..1booleanTrue if medication is/was not being taken
... reasonNotTaken I0..*CodeableConceptTrue if asserting medication was not given
Binding: (unbound) (example)
... reasonForUseCode 0..*CodeableConceptReason 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..*AnnotationFurther information about the statement
... category 0..1codeType of medication usage
Binding: MedicationStatementCategory (example)
... dosage 0..*BackboneElementDetails of how medication was taken
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
.... text 0..1stringFree text dosage instructions as reported by the information source
.... additionalInstructions 0..*CodeableConceptSupplemental instructions - e.g. "with meals"
Binding: SNOMED CT Additional Dosage Instructions (example)
.... timing 0..1TimingWhen/how often was medication taken
.... asNeeded[x] 0..1boolean, CodeableConceptTake "as needed" (for x)
Binding: SNOMED CT Medication As Needed Reason Codes (example)
.... site[x] 0..1CodeableConcept, Reference(BodySite)Where (on body) medication is/was administered
Binding: SNOMED CT Anatomical Structure for Administration Site Codes (example)
.... route 0..1CodeableConceptHow the medication entered the body
Binding: SNOMED CT Route Codes (example)
.... method 0..1CodeableConceptTechnique used to administer medication
Binding: SNOMED CT Administration Method Codes (example)
.... dose[x] 0..1SimpleQuantity, RangeAmount of medication per dose
.... rate[x] 0..1Ratio, Range, SimpleQuantityDose quantity per unit of time
.... maxDosePerPeriod 0..1RatioMaximum dose that was consumed per unit of time

doco 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

 

D.4.1.2 Terminology Bindings

Terminology Bindings

PathNameConformanceValueSet
MedicationStatement.languageCommon LanguagesextensibleCommon Languages
MedicationStatement.statusMedicationStatementStatusrequiredMedicationStatementStatus
MedicationStatement.medication[x]Medication Clinical Drug (RxNorm)extensibleMedication Clinical Drug (RxNorm)
MedicationStatement.reasonNotTaken?extexample
MedicationStatement.reasonForUseCodeCondition/Problem/Diagnosis CodesexampleCondition/Problem/Diagnosis Codes
MedicationStatement.categoryMedicationStatementCategoryexampleMedicationStatementCategory
MedicationStatement.dosage.additionalInstructionsSNOMED CT Additional Dosage InstructionsexampleSNOMED CT Additional Dosage Instructions
MedicationStatement.dosage.asNeeded[x]SNOMED CT Medication As Needed Reason CodesexampleSNOMED CT Medication As Needed Reason Codes
MedicationStatement.dosage.site[x]SNOMED CT Anatomical Structure for Administration Site CodesexampleSNOMED CT Anatomical Structure for Administration Site Codes
MedicationStatement.dosage.routeSNOMED CT Route CodesexampleSNOMED CT Route Codes
MedicationStatement.dosage.methodSNOMED CT Administration Method CodesexampleSNOMED CT Administration Method Codes

D.4.1.3 Constraints

Constraints

IdPathDetailsRequirements
dom-2MedicationStatementIf the resource is contained in another resource, it SHALL NOT contain nested Resources
XPath: not(parent::f:contained and f:contained)
dom-1MedicationStatementIf the resource is contained in another resource, it SHALL NOT contain any narrative
XPath: not(parent::f:contained and f:text)
dom-4MedicationStatementIf 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-3MedicationStatementIf 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-3MedicationStatementReason for use reference is only permitted if notTaken is false
XPath: not(exists(*[starts-with(local-name(.), 'reasonForUseReference')]) and f:notTaken/@value=true())
mst-1MedicationStatementReason not taken is only permitted if notTaken is true
XPath: not(exists(f:reasonNotTaken) and f:notTaken/@value=false())
mst-2MedicationStatementReason for use code is only permitted if notTaken is false
XPath: not(exists(*[starts-with(local-name(.), 'reasonForUseCode')]) and f:notTaken/@value=true())
.