UPTIS FHIR PoC Test Implementation Guide
1.0.0 - draft Estonia flag

UPTIS FHIR PoC Test Implementation Guide, published by TEHIK. This guide is not an authorized publication; it is the continuous build for version 1.0.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/TEHIK-EE/FHIR-PoC/ and changes regularly. See the Directory of published versions

Resource Profile: EETISMedicationList

Official URL: https://fhir.ee/StructureDefinition/ee-tis-medication-list Version: 1.0.0
Draft as of 2023-11-07 Computable Name: EETISMedicationList

Usage:

  • This Resource Profile is not used by any profiles in this Implementation Guide

Formal Views of Profile Content

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

This structure is derived from List

NameFlagsCard.TypeDescription & Constraintsdoco
.. List 0..* List List of patient's medication
... contained 0..0
... title 0..1 string Ravimiskeem
... subject 0..* Reference(EEBasePatient) {r} If all resources have the same subject(s)
... source 1..1 Reference(EETISDeviceTJT | EETISPractitioner | EETISPractitionerRole) {r} Who and/or what defined the list contents (aka Author)
... entry
.... item 1..1 Reference(EETISMedicationStatement) {r} Actual entry

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraintsdoco
.. List C 0..* List List of patient's medication
lst-1: A list can only have an emptyReason if it is empty
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored
... status ?!Σ 1..1 code current | retired | entered-in-error
Binding: ListStatus (required): The current state of the list.

... title Σ 0..1 string Ravimiskeem
Example General: Dr. Jane's Patients
... subject Σ 0..* Reference(EEBasePatient) {r} If all resources have the same subject(s)
... source Σ 1..1 Reference(EETISDeviceTJT | EETISPractitioner | EETISPractitionerRole) {r} Who and/or what defined the list contents (aka Author)

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
List.statusrequiredListStatus
http://hl7.org/fhir/ValueSet/list-status|5.0.0
from the FHIR Standard
List.moderequiredListMode
http://hl7.org/fhir/ValueSet/list-mode|5.0.0
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorListIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorListIf 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().ofType(canonical) | %resource.descendants().ofType(uri) | %resource.descendants().ofType(url))) or descendants().where(reference = '#').exists() or descendants().where(ofType(canonical) = '#').exists() or descendants().where(ofType(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4errorListIf 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-5errorListIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceListA 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()
lst-1errorListA list can only have an emptyReason if it is empty
: emptyReason.empty() or entry.empty()
NameFlagsCard.TypeDescription & Constraintsdoco
.. List C 0..* List List of patient's medication
lst-1: A list can only have an emptyReason if it is empty
... id Σ 0..1 id Logical id of this artifact
... 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
... extension 0..* Extension Additional content defined by implementations
... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored
... identifier 0..* Identifier Business identifier
... status ?!Σ 1..1 code current | retired | entered-in-error
Binding: ListStatus (required): The current state of the list.

... mode ?!Σ 1..1 code working | snapshot | changes
Binding: ListMode (required): The processing mode that applies to this list.

... title Σ 0..1 string Ravimiskeem
Example General: Dr. Jane's Patients
... code Σ 0..1 CodeableConcept What the purpose of this list is
Binding: ExampleUseCodesForList (example): What the purpose of a list is.

... subject Σ 0..* Reference(EEBasePatient) {r} If all resources have the same subject(s)
... date Σ 0..1 dateTime When the list was prepared
... source Σ 1..1 Reference(EETISDeviceTJT | EETISPractitioner | EETISPractitionerRole) {r} Who and/or what defined the list contents (aka Author)
... orderedBy 0..1 CodeableConcept What order the list has
Binding: ListOrderCodes (preferred): What order applies to the items in a list.

... note 0..* Annotation Comments about the list
... entry C 0..* BackboneElement Entries in the list
This repeating element order: Order has no meaning unless specifically asserted by List.orderedBy, in which case the List SHALL be interpreted as being ordered as specified by List.orderedBy.
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... flag 0..1 CodeableConcept Status/Workflow information about this item
Binding: PatientMedicineChangeTypes (example): Codes that provide further information about the reason and meaning of the item in the list.

.... deleted ?! 0..1 boolean If this item is actually marked as deleted
.... date 0..1 dateTime When item added to list
.... item 1..1 Reference(EETISMedicationStatement) {r} Actual entry
... emptyReason C 0..1 CodeableConcept Why list is empty
Binding: ListEmptyReasons (preferred): If a list is empty, why it is empty.


doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
List.languagerequiredAllLanguages
http://hl7.org/fhir/ValueSet/all-languages|5.0.0
from the FHIR Standard
List.statusrequiredListStatus
http://hl7.org/fhir/ValueSet/list-status|5.0.0
from the FHIR Standard
List.moderequiredListMode
http://hl7.org/fhir/ValueSet/list-mode|5.0.0
from the FHIR Standard
List.codeexampleExampleUseCodesForList
http://hl7.org/fhir/ValueSet/list-example-codes
from the FHIR Standard
List.orderedBypreferredListOrderCodes
http://hl7.org/fhir/ValueSet/list-order
from the FHIR Standard
List.entry.flagexamplePatientMedicineChangeTypes
http://hl7.org/fhir/ValueSet/list-item-flag
from the FHIR Standard
List.emptyReasonpreferredListEmptyReasons
http://hl7.org/fhir/ValueSet/list-empty-reason
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorListIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorListIf 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().ofType(canonical) | %resource.descendants().ofType(uri) | %resource.descendants().ofType(url))) or descendants().where(reference = '#').exists() or descendants().where(ofType(canonical) = '#').exists() or descendants().where(ofType(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4errorListIf 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-5errorListIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceListA 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()
lst-1errorListA list can only have an emptyReason if it is empty
: emptyReason.empty() or entry.empty()

Differential View

This structure is derived from List

NameFlagsCard.TypeDescription & Constraintsdoco
.. List 0..* List List of patient's medication
... contained 0..0
... title 0..1 string Ravimiskeem
... subject 0..* Reference(EEBasePatient) {r} If all resources have the same subject(s)
... source 1..1 Reference(EETISDeviceTJT | EETISPractitioner | EETISPractitionerRole) {r} Who and/or what defined the list contents (aka Author)
... entry
.... item 1..1 Reference(EETISMedicationStatement) {r} Actual entry

doco Documentation for this format

Key Elements View

NameFlagsCard.TypeDescription & Constraintsdoco
.. List C 0..* List List of patient's medication
lst-1: A list can only have an emptyReason if it is empty
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored
... status ?!Σ 1..1 code current | retired | entered-in-error
Binding: ListStatus (required): The current state of the list.

... title Σ 0..1 string Ravimiskeem
Example General: Dr. Jane's Patients
... subject Σ 0..* Reference(EEBasePatient) {r} If all resources have the same subject(s)
... source Σ 1..1 Reference(EETISDeviceTJT | EETISPractitioner | EETISPractitionerRole) {r} Who and/or what defined the list contents (aka Author)

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
List.statusrequiredListStatus
http://hl7.org/fhir/ValueSet/list-status|5.0.0
from the FHIR Standard
List.moderequiredListMode
http://hl7.org/fhir/ValueSet/list-mode|5.0.0
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorListIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorListIf 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().ofType(canonical) | %resource.descendants().ofType(uri) | %resource.descendants().ofType(url))) or descendants().where(reference = '#').exists() or descendants().where(ofType(canonical) = '#').exists() or descendants().where(ofType(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4errorListIf 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-5errorListIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceListA 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()
lst-1errorListA list can only have an emptyReason if it is empty
: emptyReason.empty() or entry.empty()

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. List C 0..* List List of patient's medication
lst-1: A list can only have an emptyReason if it is empty
... id Σ 0..1 id Logical id of this artifact
... 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
... extension 0..* Extension Additional content defined by implementations
... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored
... identifier 0..* Identifier Business identifier
... status ?!Σ 1..1 code current | retired | entered-in-error
Binding: ListStatus (required): The current state of the list.

... mode ?!Σ 1..1 code working | snapshot | changes
Binding: ListMode (required): The processing mode that applies to this list.

... title Σ 0..1 string Ravimiskeem
Example General: Dr. Jane's Patients
... code Σ 0..1 CodeableConcept What the purpose of this list is
Binding: ExampleUseCodesForList (example): What the purpose of a list is.

... subject Σ 0..* Reference(EEBasePatient) {r} If all resources have the same subject(s)
... date Σ 0..1 dateTime When the list was prepared
... source Σ 1..1 Reference(EETISDeviceTJT | EETISPractitioner | EETISPractitionerRole) {r} Who and/or what defined the list contents (aka Author)
... orderedBy 0..1 CodeableConcept What order the list has
Binding: ListOrderCodes (preferred): What order applies to the items in a list.

... note 0..* Annotation Comments about the list
... entry C 0..* BackboneElement Entries in the list
This repeating element order: Order has no meaning unless specifically asserted by List.orderedBy, in which case the List SHALL be interpreted as being ordered as specified by List.orderedBy.
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... flag 0..1 CodeableConcept Status/Workflow information about this item
Binding: PatientMedicineChangeTypes (example): Codes that provide further information about the reason and meaning of the item in the list.

.... deleted ?! 0..1 boolean If this item is actually marked as deleted
.... date 0..1 dateTime When item added to list
.... item 1..1 Reference(EETISMedicationStatement) {r} Actual entry
... emptyReason C 0..1 CodeableConcept Why list is empty
Binding: ListEmptyReasons (preferred): If a list is empty, why it is empty.


doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
List.languagerequiredAllLanguages
http://hl7.org/fhir/ValueSet/all-languages|5.0.0
from the FHIR Standard
List.statusrequiredListStatus
http://hl7.org/fhir/ValueSet/list-status|5.0.0
from the FHIR Standard
List.moderequiredListMode
http://hl7.org/fhir/ValueSet/list-mode|5.0.0
from the FHIR Standard
List.codeexampleExampleUseCodesForList
http://hl7.org/fhir/ValueSet/list-example-codes
from the FHIR Standard
List.orderedBypreferredListOrderCodes
http://hl7.org/fhir/ValueSet/list-order
from the FHIR Standard
List.entry.flagexamplePatientMedicineChangeTypes
http://hl7.org/fhir/ValueSet/list-item-flag
from the FHIR Standard
List.emptyReasonpreferredListEmptyReasons
http://hl7.org/fhir/ValueSet/list-empty-reason
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorListIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorListIf 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().ofType(canonical) | %resource.descendants().ofType(uri) | %resource.descendants().ofType(url))) or descendants().where(reference = '#').exists() or descendants().where(ofType(canonical) = '#').exists() or descendants().where(ofType(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4errorListIf 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-5errorListIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceListA 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()
lst-1errorListA list can only have an emptyReason if it is empty
: emptyReason.empty() or entry.empty()

 

Other representations of profile: CSV, Excel, Schematron