openIMIS FHIR R4 Implementation Guide
1.0.0 - ci-build

openIMIS FHIR R4 Implementation Guide - Local Development build (v1.0.0). See the Directory of published versions

Resource Profile: openIMIS Medication

Official URL: https://openimis.github.io/openimis_fhir_r4_ig/StructureDefinition/openimis-medication Version: 1.0.0
Active as of 2022-05-31 Responsible: openIMIS Initiative Computable Name: OpenIMISMedication

Defines a Medication for openIMIS which maps to a Medical Item.

Usage:

Formal Views of Profile Content

Description of Profiles, Differentials, Snapshots and how the different presentations work.

This structure is derived from Medication

Summary

Mandatory: 8 elements (4 nested mandatory elements)
Must-Support: 2 elements
Prohibited: 4 elements

Extensions

This structure refers to these extensions:

Slices

This structure defines the following Slices:

  • The element Medication.identifier is sliced based on the value of value:type.coding.code (Closed)

 

Other representations of profile: CSV, Excel, Schematron

Terminology Bindings

PathConformanceValueSet / Code
Medication.languagepreferredCommonLanguages
Max Binding: AllLanguages
Medication.extension:level.value[x]:valueCodeableConceptrequiredPattern: M("Medication")
Medication.identifier.userequiredIdentifierUse
Medication.identifier.typeextensibleIdentifier Type Codes
Medication.identifier.type.coding.coderequiredOpenIMISIdentifierVS
Medication.identifier:Code.userequiredIdentifierUse
Medication.identifier:Code.typeextensibleIdentifier Type Codes
Medication.identifier:UUID.userequiredIdentifierUse
Medication.identifier:UUID.typeextensibleIdentifier Type Codes
Medication.codeexampleSNOMEDCTMedicationCodes
Medication.statusrequiredPattern: active
Medication.formexampleSNOMEDCTFormCodes
Medication.amount.numerator.comparatorrequiredQuantityComparator

Constraints

IdGradePathDetailsRequirements
dom-2errorMedicationIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorMedicationIf 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-4errorMedicationIf 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-5errorMedicationIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6Best PracticeMedicationA resource should have narrative for robust management
: text.`div`.exists()
ele-1errorMedication.metaAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedication.implicitRulesAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedication.languageAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedication.textAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedication.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorMedication.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorMedication.extension:useContextAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorMedication.extension:useContextMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorMedication.extension:unitPriceAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorMedication.extension:unitPriceMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorMedication.extension:timingAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorMedication.extension:timingMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorMedication.extension:typeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorMedication.extension:typeMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorMedication.extension:levelAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorMedication.extension:levelMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorMedication.extension:level.value[x]All FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedication.extension:level.value[x]:valueCodeableConceptAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedication.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorMedication.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorMedication.identifierAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedication.identifier.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorMedication.identifier.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorMedication.identifier.useAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedication.identifier.typeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedication.identifier.type.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorMedication.identifier.type.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorMedication.identifier.type.codingAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedication.identifier.type.coding.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorMedication.identifier.type.coding.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorMedication.identifier.type.coding.systemAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedication.identifier.type.coding.versionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedication.identifier.type.coding.codeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedication.identifier.type.coding.displayAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedication.identifier.type.coding.userSelectedAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedication.identifier.type.textAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedication.identifier.systemAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedication.identifier.valueAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedication.identifier.periodAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedication.identifier.assignerAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedication.identifier:CodeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedication.identifier:Code.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorMedication.identifier:Code.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorMedication.identifier:Code.useAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedication.identifier:Code.typeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedication.identifier:Code.type.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorMedication.identifier:Code.type.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorMedication.identifier:Code.type.codingAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedication.identifier:Code.type.coding.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorMedication.identifier:Code.type.coding.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorMedication.identifier:Code.type.coding.systemAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedication.identifier:Code.type.coding.versionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedication.identifier:Code.type.coding.codeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedication.identifier:Code.type.coding.displayAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedication.identifier:Code.type.coding.userSelectedAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedication.identifier:Code.type.textAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedication.identifier:Code.systemAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedication.identifier:Code.valueAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedication.identifier:Code.periodAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedication.identifier:Code.assignerAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedication.identifier:UUIDAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedication.identifier:UUID.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorMedication.identifier:UUID.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorMedication.identifier:UUID.useAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedication.identifier:UUID.typeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedication.identifier:UUID.type.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorMedication.identifier:UUID.type.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorMedication.identifier:UUID.type.codingAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedication.identifier:UUID.type.coding.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorMedication.identifier:UUID.type.coding.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorMedication.identifier:UUID.type.coding.systemAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedication.identifier:UUID.type.coding.versionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedication.identifier:UUID.type.coding.codeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedication.identifier:UUID.type.coding.displayAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedication.identifier:UUID.type.coding.userSelectedAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedication.identifier:UUID.type.textAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedication.identifier:UUID.systemAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedication.identifier:UUID.valueAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedication.identifier:UUID.periodAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedication.identifier:UUID.assignerAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedication.codeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedication.code.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorMedication.code.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorMedication.code.codingAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedication.code.textAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedication.statusAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedication.formAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedication.amountAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedication.amount.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorMedication.amount.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorMedication.amount.numeratorAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedication.amount.numerator.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorMedication.amount.numerator.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorMedication.amount.numerator.valueAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedication.amount.numerator.comparatorAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedication.amount.numerator.unitAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedication.amount.numerator.systemAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedication.amount.numerator.codeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedication.ingredient.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorMedication.ingredient.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorMedication.ingredient.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorMedication.ingredient.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorMedication.ingredient.item[x]All FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedication.ingredient.isActiveAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedication.ingredient.strengthAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedication.batch.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorMedication.batch.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorMedication.batch.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorMedication.batch.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorMedication.batch.lotNumberAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedication.batch.expirationDateAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())