MedNet interface implementation guide
0.16.0 - CI Build

Publication Build: This will be filled in by the publication tooling

Resource Profile: MedNet Interface (MNI) - Medication Statement

Official URL: https://mednet.swiss/fhir/StructureDefinition/mni-medicationStatement Version: 0.16.0
Active as of 2020-11-06 Computable Name: MNIMedicationStatement

Copyright/Legal: novcom AG

MedNet Interface (MNI) - Medication Statement Profile

Usage:

Formal Views of Profile Content

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

NameFlagsCard.TypeDescription & Constraintsdoco
.. MedicationStatement 0..* MedicationStatement MedNet Interface (MNI) - Medication Statement
... id SΣ 0..1 id The id is unique within the space of all resources of the same type on the same server It can be any combination of upper- or lower-case ASCII letters 'A'..'Z', and 'a'..'z', numerals ('0'..'9'), '-' and '.' with a length limit of 64 characters. (This might be an integer, an un-prefixed OID, UUID or any other identifier pattern that meets these constraints.)
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... contained S 0..* Resource It is possible to include the medication as embedded resource in this contained object. This way it is not needed to include it in the Bundle
... status ?!SΣ 1..1 code Only active medication statement are allowed. Fixed value : active
Binding: Medication Status Codes (required): A coded concept indicating the current status of a MedicationStatement.


Fixed Value: active
... Slices for medication[x] Σ 1..1 Reference() What medication was taken
Slice: Unordered, Closed by type:$this
.... medication[x]:medicationReference SΣ 1..1 Reference(MedNet Interface (MNI) - Medication) What medication was taken
... subject SΣ 1..1 Reference(MedNet Interface (MNI) - Patient) Link to the Patient
... Slices for effective[x] Σ 0..1 The date/time or interval when the medication is/was/will be taken
Slice: Unordered, Closed by type:$this
.... effectiveDateTime dateTime
.... effectivePeriod Period
.... effective[x]:effectiveDateTime SΣ 0..1 dateTime The date/time or interval when the medication is/was/will be taken
.... effective[x]:effectivePeriod SΣ 0..1 Period The date/time or interval when the medication is/was/will be taken
..... start SΣC 1..1 dateTime Starting time with inclusive boundary
..... end SΣC 1..1 dateTime End time with inclusive boundary, if not ongoing
... Slices for dosage S 0..* Dosage Details of how medication is/was taken or should be taken
Slice: Unordered, Open by profile:$this
.... dosage:nonstructured S 0..1 CHEMEDDosageNonStructured If it is not possible to deliver the dosage in structured version It can be delivered as simple text in the format X-X-X-X (Morning-Afternoon-Evening-Night)
.... dosage:structured S 0..* MNIMedicationStatementDosage MedNet Interface (MNI) - Medication Statement Dosage

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / CodeURI
MedicationStatement.statusrequiredFixed Value: active
http://hl7.org/fhir/ValueSet/medication-statement-status|4.0.1
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
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()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()

This structure is derived from MedicationStatement

NameFlagsCard.TypeDescription & Constraintsdoco
.. MedicationStatement 0..* MedicationStatement MedNet Interface (MNI) - Medication Statement
... id S 0..1 id The id is unique within the space of all resources of the same type on the same server It can be any combination of upper- or lower-case ASCII letters 'A'..'Z', and 'a'..'z', numerals ('0'..'9'), '-' and '.' with a length limit of 64 characters. (This might be an integer, an un-prefixed OID, UUID or any other identifier pattern that meets these constraints.)
... contained S 0..* Resource It is possible to include the medication as embedded resource in this contained object. This way it is not needed to include it in the Bundle
... status S 1..1 code Only active medication statement are allowed. Fixed value : active
Fixed Value: active
... subject S 1..1 Reference(MedNet Interface (MNI) - Patient) Link to the Patient
... effectiveDateTime S 0..1 dateTime The date/time or interval when the medication is/was/will be taken
... effectivePeriod S 0..1 Period The date/time or interval when the medication is/was/will be taken
.... start S 1..1 dateTime Starting time with inclusive boundary
.... end S 1..1 dateTime End time with inclusive boundary, if not ongoing
... Slices for dosage S 0..* Dosage Details of how medication is/was taken or should be taken
Slice: Unordered, Open by profile:$this
.... dosage:nonstructured S 0..1 CHEMEDDosageNonStructured If it is not possible to deliver the dosage in structured version It can be delivered as simple text in the format X-X-X-X (Morning-Afternoon-Evening-Night)
.... dosage:structured S 0..* MNIMedicationStatementDosage MedNet Interface (MNI) - Medication Statement Dosage

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraintsdoco
.. MedicationStatement 0..* MedicationStatement MedNet Interface (MNI) - Medication Statement
... id SΣ 0..1 id The id is unique within the space of all resources of the same type on the same server It can be any combination of upper- or lower-case ASCII letters 'A'..'Z', and 'a'..'z', numerals ('0'..'9'), '-' and '.' with a length limit of 64 characters. (This might be an integer, an un-prefixed OID, UUID or any other identifier pattern that meets these constraints.)
... meta Σ 0..1 Meta Metadata about the resource
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... text 0..1 Narrative Text summary of the resource, for human interpretation
... contained S 0..* Resource It is possible to include the medication as embedded resource in this contained object. This way it is not needed to include it in the Bundle
... extension 0..* Extension Additional content defined by implementations
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... identifier Σ 0..* Identifier External 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..1 code Only active medication statement are allowed. Fixed value : active
Binding: Medication Status Codes (required): A coded concept indicating the current status of a MedicationStatement.


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


... category Σ 0..1 CodeableConcept Type 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..1 Reference() What medication was taken
Slice: Unordered, Closed by type:$this
.... medication[x]:medicationReference SΣ 1..1 Reference(MedNet Interface (MNI) - Medication) What medication was taken
... subject SΣ 1..1 Reference(MedNet Interface (MNI) - Patient) Link to the Patient
... context Σ 0..1 Reference(Encounter | EpisodeOfCare) Encounter / Episode associated with MedicationStatement
... Slices for effective[x] Σ 0..1 The date/time or interval when the medication is/was/will be taken
Slice: Unordered, Closed by type:$this
.... effectiveDateTime dateTime
.... effectivePeriod Period
.... effective[x]:effectiveDateTime SΣ 0..1 dateTime The date/time or interval when the medication is/was/will be taken
.... effective[x]:effectivePeriod SΣ 0..1 Period The date/time or interval when the medication is/was/will be taken
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
..... start SΣC 1..1 dateTime Starting time with inclusive boundary
..... end SΣC 1..1 dateTime End time with inclusive boundary, if not ongoing
... dateAsserted Σ 0..1 dateTime When the statement was asserted?
... informationSource 0..1 Reference(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..* CodeableConcept Reason for why the medication is being/was taken
Binding: Condition/Problem/DiagnosisCodes (example): A coded concept identifying why the medication is being taken.


... reasonReference 0..* Reference(Condition | Observation | DiagnosticReport) Condition or observation that supports why the medication is being/was taken
... note 0..* Annotation Further information about the statement
... Slices for dosage S 0..* Dosage Details of how medication is/was taken or should be taken
Slice: Unordered, Open by profile:$this
.... dosage:nonstructured S 0..1 CHEMEDDosageNonStructured If it is not possible to deliver the dosage in structured version It can be delivered as simple text in the format X-X-X-X (Morning-Afternoon-Evening-Night)
.... dosage:structured S 0..* MNIMedicationStatementDosage MedNet Interface (MNI) - Medication Statement Dosage

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / CodeURI
MedicationStatement.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
http://hl7.org/fhir/ValueSet/languages
from the FHIR Standard
MedicationStatement.statusrequiredFixed Value: active
http://hl7.org/fhir/ValueSet/medication-statement-status|4.0.1
from the FHIR Standard
MedicationStatement.statusReasonexampleSNOMEDCTDrugTherapyStatusCodes
http://hl7.org/fhir/ValueSet/reason-medication-status-codes
from the FHIR Standard
MedicationStatement.categorypreferredMedication usage category codes
http://hl7.org/fhir/ValueSet/medication-statement-category
from the FHIR Standard
MedicationStatement.reasonCodeexampleCondition/Problem/DiagnosisCodes
http://hl7.org/fhir/ValueSet/condition-code
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
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()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()

This structure is derived from MedicationStatement

Key Elements View

NameFlagsCard.TypeDescription & Constraintsdoco
.. MedicationStatement 0..* MedicationStatement MedNet Interface (MNI) - Medication Statement
... id SΣ 0..1 id The id is unique within the space of all resources of the same type on the same server It can be any combination of upper- or lower-case ASCII letters 'A'..'Z', and 'a'..'z', numerals ('0'..'9'), '-' and '.' with a length limit of 64 characters. (This might be an integer, an un-prefixed OID, UUID or any other identifier pattern that meets these constraints.)
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... contained S 0..* Resource It is possible to include the medication as embedded resource in this contained object. This way it is not needed to include it in the Bundle
... status ?!SΣ 1..1 code Only active medication statement are allowed. Fixed value : active
Binding: Medication Status Codes (required): A coded concept indicating the current status of a MedicationStatement.


Fixed Value: active
... Slices for medication[x] Σ 1..1 Reference() What medication was taken
Slice: Unordered, Closed by type:$this
.... medication[x]:medicationReference SΣ 1..1 Reference(MedNet Interface (MNI) - Medication) What medication was taken
... subject SΣ 1..1 Reference(MedNet Interface (MNI) - Patient) Link to the Patient
... Slices for effective[x] Σ 0..1 The date/time or interval when the medication is/was/will be taken
Slice: Unordered, Closed by type:$this
.... effectiveDateTime dateTime
.... effectivePeriod Period
.... effective[x]:effectiveDateTime SΣ 0..1 dateTime The date/time or interval when the medication is/was/will be taken
.... effective[x]:effectivePeriod SΣ 0..1 Period The date/time or interval when the medication is/was/will be taken
..... start SΣC 1..1 dateTime Starting time with inclusive boundary
..... end SΣC 1..1 dateTime End time with inclusive boundary, if not ongoing
... Slices for dosage S 0..* Dosage Details of how medication is/was taken or should be taken
Slice: Unordered, Open by profile:$this
.... dosage:nonstructured S 0..1 CHEMEDDosageNonStructured If it is not possible to deliver the dosage in structured version It can be delivered as simple text in the format X-X-X-X (Morning-Afternoon-Evening-Night)
.... dosage:structured S 0..* MNIMedicationStatementDosage MedNet Interface (MNI) - Medication Statement Dosage

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / CodeURI
MedicationStatement.statusrequiredFixed Value: active
http://hl7.org/fhir/ValueSet/medication-statement-status|4.0.1
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
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()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()

Differential View

This structure is derived from MedicationStatement

NameFlagsCard.TypeDescription & Constraintsdoco
.. MedicationStatement 0..* MedicationStatement MedNet Interface (MNI) - Medication Statement
... id S 0..1 id The id is unique within the space of all resources of the same type on the same server It can be any combination of upper- or lower-case ASCII letters 'A'..'Z', and 'a'..'z', numerals ('0'..'9'), '-' and '.' with a length limit of 64 characters. (This might be an integer, an un-prefixed OID, UUID or any other identifier pattern that meets these constraints.)
... contained S 0..* Resource It is possible to include the medication as embedded resource in this contained object. This way it is not needed to include it in the Bundle
... status S 1..1 code Only active medication statement are allowed. Fixed value : active
Fixed Value: active
... subject S 1..1 Reference(MedNet Interface (MNI) - Patient) Link to the Patient
... effectiveDateTime S 0..1 dateTime The date/time or interval when the medication is/was/will be taken
... effectivePeriod S 0..1 Period The date/time or interval when the medication is/was/will be taken
.... start S 1..1 dateTime Starting time with inclusive boundary
.... end S 1..1 dateTime End time with inclusive boundary, if not ongoing
... Slices for dosage S 0..* Dosage Details of how medication is/was taken or should be taken
Slice: Unordered, Open by profile:$this
.... dosage:nonstructured S 0..1 CHEMEDDosageNonStructured If it is not possible to deliver the dosage in structured version It can be delivered as simple text in the format X-X-X-X (Morning-Afternoon-Evening-Night)
.... dosage:structured S 0..* MNIMedicationStatementDosage MedNet Interface (MNI) - Medication Statement Dosage

doco Documentation for this format

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. MedicationStatement 0..* MedicationStatement MedNet Interface (MNI) - Medication Statement
... id SΣ 0..1 id The id is unique within the space of all resources of the same type on the same server It can be any combination of upper- or lower-case ASCII letters 'A'..'Z', and 'a'..'z', numerals ('0'..'9'), '-' and '.' with a length limit of 64 characters. (This might be an integer, an un-prefixed OID, UUID or any other identifier pattern that meets these constraints.)
... meta Σ 0..1 Meta Metadata about the resource
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... text 0..1 Narrative Text summary of the resource, for human interpretation
... contained S 0..* Resource It is possible to include the medication as embedded resource in this contained object. This way it is not needed to include it in the Bundle
... extension 0..* Extension Additional content defined by implementations
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... identifier Σ 0..* Identifier External 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..1 code Only active medication statement are allowed. Fixed value : active
Binding: Medication Status Codes (required): A coded concept indicating the current status of a MedicationStatement.


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


... category Σ 0..1 CodeableConcept Type 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..1 Reference() What medication was taken
Slice: Unordered, Closed by type:$this
.... medication[x]:medicationReference SΣ 1..1 Reference(MedNet Interface (MNI) - Medication) What medication was taken
... subject SΣ 1..1 Reference(MedNet Interface (MNI) - Patient) Link to the Patient
... context Σ 0..1 Reference(Encounter | EpisodeOfCare) Encounter / Episode associated with MedicationStatement
... Slices for effective[x] Σ 0..1 The date/time or interval when the medication is/was/will be taken
Slice: Unordered, Closed by type:$this
.... effectiveDateTime dateTime
.... effectivePeriod Period
.... effective[x]:effectiveDateTime SΣ 0..1 dateTime The date/time or interval when the medication is/was/will be taken
.... effective[x]:effectivePeriod SΣ 0..1 Period The date/time or interval when the medication is/was/will be taken
..... id 0..1 string Unique id for inter-element referencing
..... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
..... start SΣC 1..1 dateTime Starting time with inclusive boundary
..... end SΣC 1..1 dateTime End time with inclusive boundary, if not ongoing
... dateAsserted Σ 0..1 dateTime When the statement was asserted?
... informationSource 0..1 Reference(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..* CodeableConcept Reason for why the medication is being/was taken
Binding: Condition/Problem/DiagnosisCodes (example): A coded concept identifying why the medication is being taken.


... reasonReference 0..* Reference(Condition | Observation | DiagnosticReport) Condition or observation that supports why the medication is being/was taken
... note 0..* Annotation Further information about the statement
... Slices for dosage S 0..* Dosage Details of how medication is/was taken or should be taken
Slice: Unordered, Open by profile:$this
.... dosage:nonstructured S 0..1 CHEMEDDosageNonStructured If it is not possible to deliver the dosage in structured version It can be delivered as simple text in the format X-X-X-X (Morning-Afternoon-Evening-Night)
.... dosage:structured S 0..* MNIMedicationStatementDosage MedNet Interface (MNI) - Medication Statement Dosage

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / CodeURI
MedicationStatement.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
http://hl7.org/fhir/ValueSet/languages
from the FHIR Standard
MedicationStatement.statusrequiredFixed Value: active
http://hl7.org/fhir/ValueSet/medication-statement-status|4.0.1
from the FHIR Standard
MedicationStatement.statusReasonexampleSNOMEDCTDrugTherapyStatusCodes
http://hl7.org/fhir/ValueSet/reason-medication-status-codes
from the FHIR Standard
MedicationStatement.categorypreferredMedication usage category codes
http://hl7.org/fhir/ValueSet/medication-statement-category
from the FHIR Standard
MedicationStatement.reasonCodeexampleCondition/Problem/DiagnosisCodes
http://hl7.org/fhir/ValueSet/condition-code
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
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()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()

This structure is derived from MedicationStatement

 

Other representations of profile: CSV, Excel, Schematron