CH EMED (R4)
2.0.0 - STU 2

This page is part of the CH EMED (R4) (v2.0.0: STU 2) based on FHIR R4. . For a full list of available versions, see the Directory of published versions

Resource Profile: CH EMED MedicationStatement Profile

Defining URL:http://fhir.ch/ig/ch-emed/StructureDefinition/ch-emed-medicationstatement
Version:2.0.0
Name:CHEMEDMedicationStatement
Title:CH EMED MedicationStatement Profile
Status:Active as of 2022-02-11 09:56:31+0100
Definition:

Definition of the basic medication statement

Publisher:HL7 Switzerland
Copyright:

CC-BY-SA-4.0

Source Resource:XML / JSON / Turtle

The official URL for this profile is:

http://fhir.ch/ig/ch-emed/StructureDefinition/ch-emed-medicationstatement

Formal Views of Profile Content

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

This structure is derived from MedicationStatement

NameFlagsCard.TypeDescription & Constraintsdoco
.. MedicationStatement I0..*MedicationStatementCH EMED MedicationStatement
ch-dosage-1: If dosing is structured it must be normal or split dosing
... contained 1..1ResourceMedication inline resource
... identifier 1..1IdentifierMedicationStatement Identifier
.... system 1..1uriThe namespace for the identifier value
Fixed Value: urn:ietf:rfc:3986
.... value 1..1stringIdentifier value as UUID
... status 1..1codeactive | completed | entered-in-error | intended | stopped | on-hold | unknown | not-taken
Fixed Value: completed
... subject 1..1Reference(CH Core Patient Profile)Patient
.... reference 1..1stringLiteral reference, Relative, internal or absolute URL
... reasonCode 0..1CodeableConceptTreatment reason
.... text 0..1stringPlain text representation of the concept
... note 0..1AnnotationAnnotation
... Slices for dosage 1..*DosageHow the medication should be taken
Slice: Unordered, Closed by profile:$this
.... dosage:nonstructured 0..1CHEMEDDosageNonStructuredFree text dosage instructions
.... dosage:structurednormal 0..1CHEMEDDosageStructuredNormalStructured Normal Dosing
.... dosage:structuredsplit 0..*CHEMEDDosageStructuredSplitStructured Split Dosing

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraintsdoco
.. MedicationStatement I0..*MedicationStatementCH EMED MedicationStatement
ch-dosage-1: If dosing is structured it must be normal or split dosing
... id Σ0..1stringLogical id of this artifact
... meta Σ0..1MetaMetadata about the resource
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... text 0..1NarrativeText summary of the resource, for human interpretation
... contained 1..1ResourceMedication inline resource
... extension 0..*ExtensionAdditional content defined by implementations
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... identifier Σ1..1IdentifierMedicationStatement Identifier
.... id 0..1stringUnique id for inter-element referencing
.... Slices for extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... use ?!Σ0..1codeusual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .

.... type Σ0..1CodeableConceptDescription of identifier
Binding: Identifier Type Codes (extensible): A coded type for an identifier that can be used to determine which identifier to use for a specific purpose.

.... system Σ1..1uriThe namespace for the identifier value
Fixed Value: urn:ietf:rfc:3986
.... value Σ1..1stringIdentifier value as UUID
Example General: 123456
.... period Σ0..1PeriodTime period when id is/was valid for use
.... assigner Σ0..1Reference(Organization)Organization that issued id (may be just text)
... basedOn Σ0..*Reference(MedicationRequest | CarePlan | ServiceRequest)Fulfils plan, proposal or order
... partOf Σ0..*Reference(MedicationAdministration | MedicationDispense | MedicationStatement | Procedure | Observation)Part of referenced event
... status ?!Σ1..1codeactive | completed | entered-in-error | intended | stopped | on-hold | unknown | not-taken
Binding: Medication Status Codes (required): A coded concept indicating the current status of a MedicationStatement.


Fixed Value: completed
... statusReason 0..*CodeableConceptReason for current status
Binding: SNOMEDCTDrugTherapyStatusCodes (example): A coded concept indicating the reason for the status of the statement.


... category Σ0..1CodeableConceptType of medication usage
Binding: Medication usage category codes (preferred): A coded concept identifying where the medication included in the MedicationStatement is expected to be consumed or administered.

... Slices for medication[x] Σ1..1Reference()What medication was taken
Slice: Unordered, Closed by type:$this
.... medication[x]:medicationReference Σ1..1Reference(CH EMED Medication Profile)Reference to the contained medication
... subject Σ1..1Reference(CH Core Patient Profile)Patient
.... id 0..1stringUnique id for inter-element referencing
.... Slices for extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... reference ΣI1..1stringLiteral reference, Relative, internal or absolute URL
.... type Σ0..1uriType the reference refers to (e.g. "Patient")
Binding: ResourceType (extensible): Aa resource (or, for logical models, the URI of the logical model).

.... identifier Σ0..1IdentifierLogical reference, when literal reference is not known
.... display Σ0..1stringText alternative for the resource
... context Σ0..1Reference(Encounter | EpisodeOfCare)Encounter / Episode associated with MedicationStatement
... effective[x] Σ0..1The date/time or interval when the medication is/was/will be taken
.... effectiveDateTimedateTime
.... effectivePeriodPeriod
... dateAsserted Σ0..1dateTimeWhen the statement was asserted?
... informationSource 0..1Reference(Patient | Practitioner | PractitionerRole | RelatedPerson | Organization)Person or organization that provided the information about the taking of this medication
... derivedFrom 0..*Reference(Resource)Additional supporting information
... reasonCode 0..1CodeableConceptTreatment reason
Binding: Condition/Problem/DiagnosisCodes (example): A coded concept identifying why the medication is being taken.


.... id 0..1stringUnique id for inter-element referencing
.... Slices for extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... coding Σ0..*CodingCode defined by a terminology system
.... text Σ0..1stringPlain text representation of the concept
... reasonReference 0..*Reference(Condition | Observation | DiagnosticReport)Condition or observation that supports why the medication is being/was taken
... note 0..1AnnotationAnnotation
... Slices for dosage 1..*DosageHow the medication should be taken
Slice: Unordered, Closed by profile:$this
.... dosage:nonstructured 0..1CHEMEDDosageNonStructuredFree text dosage instructions
.... dosage:structurednormal 0..1CHEMEDDosageStructuredNormalStructured Normal Dosing
.... dosage:structuredsplit 0..*CHEMEDDosageStructuredSplitStructured Split Dosing

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraintsdoco
.. MedicationStatement I0..*MedicationStatementCH EMED MedicationStatement
ch-dosage-1: If dosing is structured it must be normal or split dosing

doco Documentation for this format

Differential View

This structure is derived from MedicationStatement

NameFlagsCard.TypeDescription & Constraintsdoco
.. MedicationStatement I0..*MedicationStatementCH EMED MedicationStatement
ch-dosage-1: If dosing is structured it must be normal or split dosing
... contained 1..1ResourceMedication inline resource
... identifier 1..1IdentifierMedicationStatement Identifier
.... system 1..1uriThe namespace for the identifier value
Fixed Value: urn:ietf:rfc:3986
.... value 1..1stringIdentifier value as UUID
... status 1..1codeactive | completed | entered-in-error | intended | stopped | on-hold | unknown | not-taken
Fixed Value: completed
... subject 1..1Reference(CH Core Patient Profile)Patient
.... reference 1..1stringLiteral reference, Relative, internal or absolute URL
... reasonCode 0..1CodeableConceptTreatment reason
.... text 0..1stringPlain text representation of the concept
... note 0..1AnnotationAnnotation
... Slices for dosage 1..*DosageHow the medication should be taken
Slice: Unordered, Closed by profile:$this
.... dosage:nonstructured 0..1CHEMEDDosageNonStructuredFree text dosage instructions
.... dosage:structurednormal 0..1CHEMEDDosageStructuredNormalStructured Normal Dosing
.... dosage:structuredsplit 0..*CHEMEDDosageStructuredSplitStructured Split Dosing

doco Documentation for this format

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. MedicationStatement I0..*MedicationStatementCH EMED MedicationStatement
ch-dosage-1: If dosing is structured it must be normal or split dosing
... id Σ0..1stringLogical id of this artifact
... meta Σ0..1MetaMetadata about the resource
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... text 0..1NarrativeText summary of the resource, for human interpretation
... contained 1..1ResourceMedication inline resource
... extension 0..*ExtensionAdditional content defined by implementations
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... identifier Σ1..1IdentifierMedicationStatement Identifier
.... id 0..1stringUnique id for inter-element referencing
.... Slices for extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... use ?!Σ0..1codeusual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .

.... type Σ0..1CodeableConceptDescription of identifier
Binding: Identifier Type Codes (extensible): A coded type for an identifier that can be used to determine which identifier to use for a specific purpose.

.... system Σ1..1uriThe namespace for the identifier value
Fixed Value: urn:ietf:rfc:3986
.... value Σ1..1stringIdentifier value as UUID
Example General: 123456
.... period Σ0..1PeriodTime period when id is/was valid for use
.... assigner Σ0..1Reference(Organization)Organization that issued id (may be just text)
... basedOn Σ0..*Reference(MedicationRequest | CarePlan | ServiceRequest)Fulfils plan, proposal or order
... partOf Σ0..*Reference(MedicationAdministration | MedicationDispense | MedicationStatement | Procedure | Observation)Part of referenced event
... status ?!Σ1..1codeactive | completed | entered-in-error | intended | stopped | on-hold | unknown | not-taken
Binding: Medication Status Codes (required): A coded concept indicating the current status of a MedicationStatement.


Fixed Value: completed
... statusReason 0..*CodeableConceptReason for current status
Binding: SNOMEDCTDrugTherapyStatusCodes (example): A coded concept indicating the reason for the status of the statement.


... category Σ0..1CodeableConceptType of medication usage
Binding: Medication usage category codes (preferred): A coded concept identifying where the medication included in the MedicationStatement is expected to be consumed or administered.

... Slices for medication[x] Σ1..1Reference()What medication was taken
Slice: Unordered, Closed by type:$this
.... medication[x]:medicationReference Σ1..1Reference(CH EMED Medication Profile)Reference to the contained medication
... subject Σ1..1Reference(CH Core Patient Profile)Patient
.... id 0..1stringUnique id for inter-element referencing
.... Slices for extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... reference ΣI1..1stringLiteral reference, Relative, internal or absolute URL
.... type Σ0..1uriType the reference refers to (e.g. "Patient")
Binding: ResourceType (extensible): Aa resource (or, for logical models, the URI of the logical model).

.... identifier Σ0..1IdentifierLogical reference, when literal reference is not known
.... display Σ0..1stringText alternative for the resource
... context Σ0..1Reference(Encounter | EpisodeOfCare)Encounter / Episode associated with MedicationStatement
... effective[x] Σ0..1The date/time or interval when the medication is/was/will be taken
.... effectiveDateTimedateTime
.... effectivePeriodPeriod
... dateAsserted Σ0..1dateTimeWhen the statement was asserted?
... informationSource 0..1Reference(Patient | Practitioner | PractitionerRole | RelatedPerson | Organization)Person or organization that provided the information about the taking of this medication
... derivedFrom 0..*Reference(Resource)Additional supporting information
... reasonCode 0..1CodeableConceptTreatment reason
Binding: Condition/Problem/DiagnosisCodes (example): A coded concept identifying why the medication is being taken.


.... id 0..1stringUnique id for inter-element referencing
.... Slices for extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... coding Σ0..*CodingCode defined by a terminology system
.... text Σ0..1stringPlain text representation of the concept
... reasonReference 0..*Reference(Condition | Observation | DiagnosticReport)Condition or observation that supports why the medication is being/was taken
... note 0..1AnnotationAnnotation
... Slices for dosage 1..*DosageHow the medication should be taken
Slice: Unordered, Closed by profile:$this
.... dosage:nonstructured 0..1CHEMEDDosageNonStructuredFree text dosage instructions
.... dosage:structurednormal 0..1CHEMEDDosageStructuredNormalStructured Normal Dosing
.... dosage:structuredsplit 0..*CHEMEDDosageStructuredSplitStructured Split Dosing

doco Documentation for this format

 

Other representations of profile: CSV, Excel, Schematron

Terminology Bindings

PathConformanceValueSet / Code
MedicationStatement.languagepreferredCommonLanguages
Max Binding: AllLanguages
MedicationStatement.identifier.userequiredIdentifierUse
MedicationStatement.identifier.typeextensibleIdentifier Type Codes
MedicationStatement.statusrequiredFixed Value: completed
MedicationStatement.statusReasonexampleSNOMEDCTDrugTherapyStatusCodes
MedicationStatement.categorypreferredMedication usage category codes
MedicationStatement.subject.typeextensibleResourceType
MedicationStatement.reasonCodeexampleCondition/Problem/DiagnosisCodes

Constraints

IdGradePathDetailsRequirements
dom-2errorMedicationStatementIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorMedicationStatementIf 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-4errorMedicationStatementIf 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-5errorMedicationStatementIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6Best PracticeMedicationStatementA resource should have narrative for robust management
: text.`div`.exists()
ch-dosage-1errorMedicationStatementIf dosing is structured it must be normal or split dosing
: dosage.where($this.conformsTo('http://fhir.ch/ig/ch-emed/StructureDefinition/ch-emed-dosage-structured-normal')).count()=0 or dosage.where($this.conformsTo('http://fhir.ch/ig/ch-emed/StructureDefinition/ch-emed-dosage-structured-split')).count()=0
ele-1errorMedicationStatement.metaAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedicationStatement.implicitRulesAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedicationStatement.languageAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedicationStatement.textAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedicationStatement.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorMedicationStatement.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorMedicationStatement.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorMedicationStatement.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorMedicationStatement.identifierAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedicationStatement.identifier.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorMedicationStatement.identifier.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorMedicationStatement.identifier.useAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedicationStatement.identifier.typeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedicationStatement.identifier.systemAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedicationStatement.identifier.valueAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedicationStatement.identifier.periodAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedicationStatement.identifier.assignerAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedicationStatement.basedOnAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedicationStatement.partOfAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedicationStatement.statusAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedicationStatement.statusReasonAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedicationStatement.categoryAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedicationStatement.medication[x]All FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedicationStatement.medication[x]:medicationReferenceAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedicationStatement.subjectAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedicationStatement.subject.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorMedicationStatement.subject.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorMedicationStatement.subject.referenceAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedicationStatement.subject.typeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedicationStatement.subject.identifierAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedicationStatement.subject.displayAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedicationStatement.contextAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedicationStatement.effective[x]All FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedicationStatement.dateAssertedAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedicationStatement.informationSourceAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedicationStatement.derivedFromAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedicationStatement.reasonCodeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedicationStatement.reasonCode.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorMedicationStatement.reasonCode.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorMedicationStatement.reasonCode.codingAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedicationStatement.reasonCode.textAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedicationStatement.reasonReferenceAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedicationStatement.noteAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedicationStatement.dosageAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedicationStatement.dosage:nonstructuredAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedicationStatement.dosage:structurednormalAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorMedicationStatement.dosage:structuredsplitAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())