QI-Core Implementation Guide: STU 4 (v4.0.0 for FHIR 4.0.0)

QI-Core Implementation Guide, Clinical Quality Improvement WG - CI build for vesion 4.0.0). This version is based on the current content of https://github.com/cqframework/qi-core/ and changes regularly. See the Directory of published versions

D.4.1 StructureDefinition-qicore-medicationstatement

Introduction:

See the patterns page for implementation and usage patterns.

Examples:

Penicillin MedicationStatement Example

D.4.1.1 Formal Views of Profile Content

The official URL for this profile is:

http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-medicationstatement

Profile of MedicationStatement for decision support/quality metrics. Defines the core set of elements and extensions for quality rule and measure authors.

This profile builds on USCoreMedicationStatementProfile.

This profile was published on Wed Aug 22 00:00:00 UTC 2018 as a draft by Health Level Seven, Inc. - CQI WG.

Description of Profiles, Differentials, and Snapshots.

Summary

Mandatory: 1 element
Must-Support: 11 elements

Structures

This structure refers to these other structures:

NameFlagsCard.TypeDescription & Constraintsdoco
.. MedicationStatement I0..*Record of medication being taken by a patient
... 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: CommonLanguages (preferred)
Max Binding: AllLanguages
... text 0..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
... basedOn Σ0..*Reference(MedicationRequest | CarePlan | ServiceRequest)Fulfils plan, proposal or order
... partOf Σ0..*Reference(MedicationAdministration | MedicationDispense | MedicationStatement | Procedure | Observation)Part of referenced event
... status ?!SΣ1..1codeactive | completed | entered-in-error | intended | stopped | on-hold | unknown | not-taken
Binding: Medication Status Codes (required)
... statusReason 0..*CodeableConceptReason for current status
Binding: SNOMEDCTDrugTherapyStatusCodes (example)
... category Σ0..1CodeableConceptType of medication usage
Binding: Medication Status Codes (preferred)
... medication[x] SΣ1..1What medication was taken
Binding: US Core Medication Codes (RxNorm) (preferred)
.... medicationCodeableConceptCodeableConcept
.... medicationReferenceReference(StructureDefinition-qicore-medication.html)
... subject SΣ1..1Reference(QICorePatient)Who is/was taking the medication
... context Σ0..1Reference(Encounter | EpisodeOfCare)Encounter / Episode associated with MedicationStatement
... effective[x] SΣ0..1The date/time or interval when the medication is/was/will be taken
.... effectiveDateTimedateTime
.... effectivePeriodPeriod
... dateAsserted SΣ1..1dateTimeWhen the statement was asserted?
... informationSource S0..1Reference(QICorePatient | QICorePractitioner | QICoreRelatedPerson)Person or organization that provided the information about the taking of this medication
... derivedFrom S0..*Reference(Resource)Additional supporting information
... reasonCode 0..*CodeableConceptReason for why the medication is being/was taken
Binding: Condition/Problem/DiagnosisCodes (example)
... reasonReference 0..*Reference(Condition | Observation | DiagnosticReport)Condition or observation that supports why the medication is being/was taken
... note 0..*AnnotationFurther information about the statement
... dosage 0..*DosageDetails of how medication is/was taken or should be taken
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... modifierExtension ?!Σ0..*ExtensionExtension
.... sequence Σ0..1integerThe order of the dosage instructions
.... text Σ0..1stringFree text dosage instructions e.g. SIG
.... additionalInstruction Σ0..*CodeableConceptSupplemental instruction or warnings to the patient - e.g. "with meals", "may cause drowsiness"
Binding: SNOMEDCTAdditionalDosageInstructions (example)
.... patientInstruction Σ0..1stringPatient or consumer oriented instructions
.... timing SΣ0..1TimingWhen medication should be administered
.... asNeeded[x] Σ0..1Take "as needed" (for x)
Binding: SNOMEDCTMedicationAsNeededReasonCodes (example)
..... asNeededBooleanboolean
..... asNeededCodeableConceptCodeableConcept
.... site Σ0..1CodeableConceptBody site to administer to
Binding: SNOMEDCTAnatomicalStructureForAdministrationSiteCodes (example)
.... route SΣ0..1CodeableConceptHow drug should enter body
Binding: SNOMEDCTRouteCodes (example)
.... method Σ0..1CodeableConceptTechnique for administering medication
Binding: SNOMEDCTAdministrationMethodCodes (example)
.... doseAndRate SΣI0..*ElementAmount of medication administered
..... id 0..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
..... type Σ0..1CodeableConceptThe kind of dose or rate specified
Binding: DoseAndRateType (example)
..... dose[x] SΣ0..1Amount of medication per dose
...... doseRangeRange
...... doseQuantityQuantity
..... rate[x] Σ0..1Amount of medication per unit of time
...... rateRatioRatio
...... rateRangeRange
...... rateQuantityQuantity
.... maxDosePerPeriod Σ0..1RatioUpper limit on medication per unit of time
.... maxDosePerAdministration Σ0..1SimpleQuantityUpper limit on medication per administration
.... maxDosePerLifetime Σ0..1SimpleQuantityUpper limit on medication per lifetime of the patient

doco Documentation for this format

Summary

Mandatory: 1 element
Must-Support: 11 elements

Structures

This structure refers to these other structures:

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. MedicationStatement I0..*Record of medication being taken by a patient
... 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: CommonLanguages (preferred)
Max Binding: AllLanguages
... text 0..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
... basedOn Σ0..*Reference(MedicationRequest | CarePlan | ServiceRequest)Fulfils plan, proposal or order
... partOf Σ0..*Reference(MedicationAdministration | MedicationDispense | MedicationStatement | Procedure | Observation)Part of referenced event
... status ?!SΣ1..1codeactive | completed | entered-in-error | intended | stopped | on-hold | unknown | not-taken
Binding: Medication Status Codes (required)
... statusReason 0..*CodeableConceptReason for current status
Binding: SNOMEDCTDrugTherapyStatusCodes (example)
... category Σ0..1CodeableConceptType of medication usage
Binding: Medication Status Codes (preferred)
... medication[x] SΣ1..1What medication was taken
Binding: US Core Medication Codes (RxNorm) (preferred)
.... medicationCodeableConceptCodeableConcept
.... medicationReferenceReference(StructureDefinition-qicore-medication.html)
... subject SΣ1..1Reference(QICorePatient)Who is/was taking the medication
... context Σ0..1Reference(Encounter | EpisodeOfCare)Encounter / Episode associated with MedicationStatement
... effective[x] SΣ0..1The date/time or interval when the medication is/was/will be taken
.... effectiveDateTimedateTime
.... effectivePeriodPeriod
... dateAsserted SΣ1..1dateTimeWhen the statement was asserted?
... informationSource S0..1Reference(QICorePatient | QICorePractitioner | QICoreRelatedPerson)Person or organization that provided the information about the taking of this medication
... derivedFrom S0..*Reference(Resource)Additional supporting information
... reasonCode 0..*CodeableConceptReason for why the medication is being/was taken
Binding: Condition/Problem/DiagnosisCodes (example)
... reasonReference 0..*Reference(Condition | Observation | DiagnosticReport)Condition or observation that supports why the medication is being/was taken
... note 0..*AnnotationFurther information about the statement
... dosage 0..*DosageDetails of how medication is/was taken or should be taken
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... modifierExtension ?!Σ0..*ExtensionExtension
.... sequence Σ0..1integerThe order of the dosage instructions
.... text Σ0..1stringFree text dosage instructions e.g. SIG
.... additionalInstruction Σ0..*CodeableConceptSupplemental instruction or warnings to the patient - e.g. "with meals", "may cause drowsiness"
Binding: SNOMEDCTAdditionalDosageInstructions (example)
.... patientInstruction Σ0..1stringPatient or consumer oriented instructions
.... timing SΣ0..1TimingWhen medication should be administered
.... asNeeded[x] Σ0..1Take "as needed" (for x)
Binding: SNOMEDCTMedicationAsNeededReasonCodes (example)
..... asNeededBooleanboolean
..... asNeededCodeableConceptCodeableConcept
.... site Σ0..1CodeableConceptBody site to administer to
Binding: SNOMEDCTAnatomicalStructureForAdministrationSiteCodes (example)
.... route SΣ0..1CodeableConceptHow drug should enter body
Binding: SNOMEDCTRouteCodes (example)
.... method Σ0..1CodeableConceptTechnique for administering medication
Binding: SNOMEDCTAdministrationMethodCodes (example)
.... doseAndRate SΣI0..*ElementAmount of medication administered
..... id 0..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
..... type Σ0..1CodeableConceptThe kind of dose or rate specified
Binding: DoseAndRateType (example)
..... dose[x] SΣ0..1Amount of medication per dose
...... doseRangeRange
...... doseQuantityQuantity
..... rate[x] Σ0..1Amount of medication per unit of time
...... rateRatioRatio
...... rateRangeRange
...... rateQuantityQuantity
.... maxDosePerPeriod Σ0..1RatioUpper limit on medication per unit of time
.... maxDosePerAdministration Σ0..1SimpleQuantityUpper limit on medication per administration
.... maxDosePerLifetime Σ0..1SimpleQuantityUpper limit on medication per lifetime of the patient

doco Documentation for this format

 

D.4.1.2 Terminology Bindings

Terminology Bindings

PathConformanceValueSet
MedicationStatement.languagepreferredCommonLanguages
Max Binding: AllLanguages
MedicationStatement.statusrequiredMedication Status Codes
MedicationStatement.statusReasonexampleSNOMEDCTDrugTherapyStatusCodes
MedicationStatement.categorypreferredMedication Status Codes
MedicationStatement.medication[x]preferredUSCoreMedicationCodes
MedicationStatement.reasonCodeexampleCondition/Problem/DiagnosisCodes
MedicationStatement.dosage.additionalInstructionexampleSNOMEDCTAdditionalDosageInstructions
MedicationStatement.dosage.asNeeded[x]exampleSNOMEDCTMedicationAsNeededReasonCodes
MedicationStatement.dosage.siteexampleSNOMEDCTAnatomicalStructureForAdministrationSiteCodes
MedicationStatement.dosage.routeexampleSNOMEDCTRouteCodes
MedicationStatement.dosage.methodexampleSNOMEDCTAdministrationMethodCodes
MedicationStatement.dosage.doseAndRate.typeexampleDoseAndRateType

D.4.1.3 Constraints

Constraints

IdPathDetailsRequirements
dom-2MedicationStatementIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-4MedicationStatementIf 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-3MedicationStatementIf 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-6MedicationStatementA resource should have narrative for robust management
: text.div.exists()
dom-5MedicationStatementIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
ele-1MedicationStatement.dosage.doseAndRateAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())