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

QI-Core Implementation Guide - This is the current published version.. See the Directory of published versions

D.4.1 StructureDefinition-qicore-mednotadministered

Introduction:

The following example illustrates a MedicationAdministration not done:


// connectathon/fhir4/cql/EXM108_FHIR4-8.2.000.cql
define "No Low Dose Unfractionated Heparin Administration":
  ["MedicationAdministration": medication in "Low Dose Unfractionated Heparin for VTE Prophylaxis"] VTEMedication
    where VTEMedication.status = 'not-done'

See the patterns page for implementation and usage patterns.

Examples:

Negation 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-mednotadministered

Negation profile of MedicationAdministration for decision support/quality metrics. Defines the core set of elements and extensions for quality rule and measure authors.

This profile builds on MedicationAdministration.

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: 2 elements (1 nested mandatory element)
Must-Support: 10 elements
Fixed Value: 1 element

Structures

This structure refers to these other structures:

Extensions

This structure refers to these extensions:

NameFlagsCard.TypeDescription & Constraintsdoco
.. MedicationAdministration I0..*MedicationAdministrationAdministration of medication to a patient
... id Σ0..1stringLogical id of this artifact
... meta ΣI0..1MetaMetadata about the resource
... implicitRules ?!ΣI0..1uriA set of rules under which this content was created
... language I0..1codeLanguage of the resource content
Binding: CommonLanguages (preferred)
Max Binding: AllLanguages
... text I0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension I0..*ExtensionExtension
Slice: Unordered, Open by value:url
... qicore-recorded SI1..1dateTimeExtension
URL: http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-recorded
... modifierExtension ?!I0..*ExtensionExtensions that cannot be ignored
... identifier I0..*IdentifierExternal identifier
... instantiates ΣI0..*uriInstantiates protocol or definition
... partOf ΣI0..*Reference(MedicationAdministration | Procedure)Part of referenced event
... status ?!SΣI1..1codein-progress | not-done | on-hold | completed | entered-in-error | stopped | unknown
Binding: MedicationAdministration Status Codes (required)
Fixed Value: not-done
... statusReason SI1..*CodeableConceptReason administration not performed
Binding: Negation Reason Codes (extensible)
... category I0..1CodeableConceptType of medication usage
Binding: MedicationAdministration Category Codes (preferred)
... medication[x] SΣI1..1CodeableConceptWhat was administered
Binding: SNOMEDCTMedicationCodes (example)
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... coding ΣI0..*CodingCode defined by a terminology system
..... id 0..1stringUnique id for inter-element referencing
..... extension I0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
..... valueset-reference SI1..1uriUrl of Value set the code was chosen from
URL: http://hl7.org/fhir/StructureDefinition/valueset-reference
..... system ΣI0..1uriIdentity of the terminology system
..... version ΣI0..1stringVersion of the system - if relevant
..... code ΣI0..1codeSymbol in syntax defined by the system
..... display ΣI0..1stringRepresentation defined by the system
..... userSelected ΣI0..1booleanIf this coding was chosen directly by the user
.... text ΣI0..1stringPlain text representation of the concept
... subject SΣI1..1Reference(QICorePatient)Who received medication
... context SI0..1Reference(QICoreEncounter | EpisodeOfCare)Encounter or Episode of Care administered as part of
... supportingInformation I0..*Reference(Resource)Additional information to support administration
... effective[x] SΣI1..1Start and end time of administration
.... effectiveDateTimedateTime
.... effectivePeriodPeriod
... performer ΣI0..*BackboneElementWho performed the medication administration and what they did
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!ΣI0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... function I0..1CodeableConceptType of performance
Binding: MedicationAdministration Performer Function Codes (example)
.... actor ΣI1..1Reference(Practitioner | PractitionerRole | Patient | RelatedPerson | Device)Who performed the medication administration
... reasonCode I0..*CodeableConceptReason administration performed
Binding: ReasonMedicationGivenCodes (example)
... reasonReference I0..*Reference(Condition | Observation | DiagnosticReport)Condition or observation that supports why the medication was administered
... request I0..1Reference(QICoreMedicationRequest)Request administration performed against
... device I0..*Reference(Device)Device used to administer
... note I0..*AnnotationInformation about the administration
... dosage I0..1BackboneElementDetails of how medication was taken
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!ΣI0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... text I0..1stringFree text dosage instructions e.g. SIG
.... site I0..1CodeableConceptBody site administered to
Binding: SNOMEDCTAnatomicalStructureForAdministrationSiteCodes (example)
.... route SI0..1CodeableConceptPath of substance into body
Binding: SNOMEDCTRouteCodes (example)
.... method I0..1CodeableConceptHow drug was administered
Binding: SNOMEDCTAdministrationMethodCodes (example)
.... dose SI0..1SimpleQuantityAmount of medication per dose
.... rate[x] I0..1Dose quantity per unit of time
..... rateRatioRatio
..... rateQuantityQuantity(SimpleQuantity)
... eventHistory I0..*Reference(Provenance)A list of events of interest in the lifecycle

doco Documentation for this format

Summary

Mandatory: 2 elements (1 nested mandatory element)
Must-Support: 10 elements
Fixed Value: 1 element

Structures

This structure refers to these other structures:

Extensions

This structure refers to these extensions:

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. MedicationAdministration I0..*MedicationAdministrationAdministration of medication to a patient
... id Σ0..1stringLogical id of this artifact
... meta ΣI0..1MetaMetadata about the resource
... implicitRules ?!ΣI0..1uriA set of rules under which this content was created
... language I0..1codeLanguage of the resource content
Binding: CommonLanguages (preferred)
Max Binding: AllLanguages
... text I0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension I0..*ExtensionExtension
Slice: Unordered, Open by value:url
... qicore-recorded SI1..1dateTimeExtension
URL: http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-recorded
... modifierExtension ?!I0..*ExtensionExtensions that cannot be ignored
... identifier I0..*IdentifierExternal identifier
... instantiates ΣI0..*uriInstantiates protocol or definition
... partOf ΣI0..*Reference(MedicationAdministration | Procedure)Part of referenced event
... status ?!SΣI1..1codein-progress | not-done | on-hold | completed | entered-in-error | stopped | unknown
Binding: MedicationAdministration Status Codes (required)
Fixed Value: not-done
... statusReason SI1..*CodeableConceptReason administration not performed
Binding: Negation Reason Codes (extensible)
... category I0..1CodeableConceptType of medication usage
Binding: MedicationAdministration Category Codes (preferred)
... medication[x] SΣI1..1CodeableConceptWhat was administered
Binding: SNOMEDCTMedicationCodes (example)
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... coding ΣI0..*CodingCode defined by a terminology system
..... id 0..1stringUnique id for inter-element referencing
..... extension I0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
..... valueset-reference SI1..1uriUrl of Value set the code was chosen from
URL: http://hl7.org/fhir/StructureDefinition/valueset-reference
..... system ΣI0..1uriIdentity of the terminology system
..... version ΣI0..1stringVersion of the system - if relevant
..... code ΣI0..1codeSymbol in syntax defined by the system
..... display ΣI0..1stringRepresentation defined by the system
..... userSelected ΣI0..1booleanIf this coding was chosen directly by the user
.... text ΣI0..1stringPlain text representation of the concept
... subject SΣI1..1Reference(QICorePatient)Who received medication
... context SI0..1Reference(QICoreEncounter | EpisodeOfCare)Encounter or Episode of Care administered as part of
... supportingInformation I0..*Reference(Resource)Additional information to support administration
... effective[x] SΣI1..1Start and end time of administration
.... effectiveDateTimedateTime
.... effectivePeriodPeriod
... performer ΣI0..*BackboneElementWho performed the medication administration and what they did
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!ΣI0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... function I0..1CodeableConceptType of performance
Binding: MedicationAdministration Performer Function Codes (example)
.... actor ΣI1..1Reference(Practitioner | PractitionerRole | Patient | RelatedPerson | Device)Who performed the medication administration
... reasonCode I0..*CodeableConceptReason administration performed
Binding: ReasonMedicationGivenCodes (example)
... reasonReference I0..*Reference(Condition | Observation | DiagnosticReport)Condition or observation that supports why the medication was administered
... request I0..1Reference(QICoreMedicationRequest)Request administration performed against
... device I0..*Reference(Device)Device used to administer
... note I0..*AnnotationInformation about the administration
... dosage I0..1BackboneElementDetails of how medication was taken
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!ΣI0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... text I0..1stringFree text dosage instructions e.g. SIG
.... site I0..1CodeableConceptBody site administered to
Binding: SNOMEDCTAnatomicalStructureForAdministrationSiteCodes (example)
.... route SI0..1CodeableConceptPath of substance into body
Binding: SNOMEDCTRouteCodes (example)
.... method I0..1CodeableConceptHow drug was administered
Binding: SNOMEDCTAdministrationMethodCodes (example)
.... dose SI0..1SimpleQuantityAmount of medication per dose
.... rate[x] I0..1Dose quantity per unit of time
..... rateRatioRatio
..... rateQuantityQuantity(SimpleQuantity)
... eventHistory I0..*Reference(Provenance)A list of events of interest in the lifecycle

doco Documentation for this format

 

D.4.1.2 Terminology Bindings

Terminology Bindings

PathConformanceValueSet / Code
MedicationAdministration.languagepreferredCommonLanguages
Max Binding: AllLanguages
MedicationAdministration.statusrequiredFixed Value: not-done
MedicationAdministration.statusReasonextensibleNegationReasonCodes
MedicationAdministration.categorypreferredMedicationAdministration Category Codes
MedicationAdministration.medication[x]exampleSNOMEDCTMedicationCodes
MedicationAdministration.performer.functionexampleMedicationAdministration Performer Function Codes
MedicationAdministration.reasonCodeexampleReasonMedicationGivenCodes
MedicationAdministration.dosage.siteexampleSNOMEDCTAnatomicalStructureForAdministrationSiteCodes
MedicationAdministration.dosage.routeexampleSNOMEDCTRouteCodes
MedicationAdministration.dosage.methodexampleSNOMEDCTAdministrationMethodCodes

D.4.1.3 Constraints

Constraints

IdPathDetailsRequirements
dom-2MedicationAdministrationIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3MedicationAdministrationIf 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-4MedicationAdministrationIf 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-5MedicationAdministrationIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6MedicationAdministrationA resource should have narrative for robust management
: text.`div`.exists()
ele-1MedicationAdministration.metaAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1MedicationAdministration.implicitRulesAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1MedicationAdministration.languageAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1MedicationAdministration.textAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1MedicationAdministration.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1MedicationAdministration.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1MedicationAdministration.extension:recordedAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1MedicationAdministration.extension:recordedMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1MedicationAdministration.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1MedicationAdministration.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1MedicationAdministration.identifierAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1MedicationAdministration.instantiatesAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1MedicationAdministration.partOfAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1MedicationAdministration.statusAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1MedicationAdministration.statusReasonAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1MedicationAdministration.categoryAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1MedicationAdministration.medication[x]All FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1MedicationAdministration.medication[x].extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1MedicationAdministration.medication[x].extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1MedicationAdministration.medication[x].codingAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1MedicationAdministration.medication[x].coding.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1MedicationAdministration.medication[x].coding.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1MedicationAdministration.medication[x].coding.extension:notDoneValueSetAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1MedicationAdministration.medication[x].coding.extension:notDoneValueSetMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1MedicationAdministration.medication[x].coding.systemAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1MedicationAdministration.medication[x].coding.versionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1MedicationAdministration.medication[x].coding.codeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1MedicationAdministration.medication[x].coding.displayAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1MedicationAdministration.medication[x].coding.userSelectedAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1MedicationAdministration.medication[x].textAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1MedicationAdministration.subjectAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1MedicationAdministration.contextAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1MedicationAdministration.supportingInformationAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1MedicationAdministration.effective[x]All FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1MedicationAdministration.performerAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1MedicationAdministration.performer.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1MedicationAdministration.performer.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1MedicationAdministration.performer.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1MedicationAdministration.performer.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1MedicationAdministration.performer.functionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1MedicationAdministration.performer.actorAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1MedicationAdministration.reasonCodeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1MedicationAdministration.reasonReferenceAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1MedicationAdministration.requestAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1MedicationAdministration.deviceAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1MedicationAdministration.noteAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1MedicationAdministration.dosageAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
mad-1MedicationAdministration.dosageSHALL have at least one of dosage.dose or dosage.rate[x]
: dose.exists() or rate.exists()
ele-1MedicationAdministration.dosage.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1MedicationAdministration.dosage.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1MedicationAdministration.dosage.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1MedicationAdministration.dosage.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1MedicationAdministration.dosage.textAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1MedicationAdministration.dosage.siteAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1MedicationAdministration.dosage.routeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1MedicationAdministration.dosage.methodAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1MedicationAdministration.dosage.doseAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1MedicationAdministration.dosage.rate[x]All FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1MedicationAdministration.eventHistoryAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())