Finnish Base Profiles
0.3.0 - ci-build Finland flag

Finnish Base Profiles - Local Development build (v0.3.0). See the Directory of published versions

Resource Profile: fiphr-sd-bloodglucose

Official URL: http://phr.kanta.fi/StructureDefinition/fiphr-sd-bloodglucose Version: 0.3.0
Draft as of 2021-11-23 Computable Name: FIPHRSDBloodglucose

Finnish PHR profile for blood glucose measurement.

Finnish PHR profile for Observation used in blood glucose measurements. The profile is based on the Finnish PHR observation profile.

Usage:

Formal Views of Profile Content

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

This structure is derived from FIPHRsdVitalsigns

NameFlagsCard.TypeDescription & Constraintsdoco
.. Observation C0..*FIPHRsdVitalsignsFinnish PHR Blood Glucose profile
PHR-1: Resource SHALL contain code '15074-8' or '14743-9' or '14745-4'
PHR-2: When using code '15074-8' also code '14743-9' SHALL be used
PHR-3: When using code '14743-9' also code '15074-8' SHALL be used
... meta 1..1MetaMetadata about the resource
.... profile 1..*canonical(StructureDefinition)Profiles this resource claims to conform to
.... profile:fiphrProfile 1..1canonical(StructureDefinition)Profiles this resource claims to conform to
Fixed Value: http://phr.kanta.fi/StructureDefinition/fiphr-sd-bloodglucose
... Slices for extension 0..*ExtensionExtension
Slice: Unordered, Open by value:url
... hoursAfterMeal 0..1unsignedIntMeal context
URL: http://phr.kanta.fi/StructureDefinition/fiphr-unsignedint
.... Slices for coding C1..*CodingCode to be used with CGM readings
Slice: Unordered, Open by value:code, value:system
PHR-1: When using code '15074-8' or '14743-9' or '14745-4' system http://loinc.org SHALL be used
..... coding:GlucoseInBlood 0..1CodingCode defined by a terminology system
...... system 1..1uriIdentity of the terminology system
Fixed Value: http://loinc.org
...... code 1..1codeSymbol in syntax defined by the system
Fixed Value: 15074-8
...... display 1..1stringRepresentation defined by the system
..... coding:GlucoseInCapillaryBloodByGlucometer 0..1CodingCode defined by a terminology system
...... system 1..1uriIdentity of the terminology system
Fixed Value: http://loinc.org
...... code 1..1codeSymbol in syntax defined by the system
Fixed Value: 14743-9
...... display 1..1stringRepresentation defined by the system
..... coding:GlucoseInBodyFluid 0..1CodingCode defined by a terminology system
...... system 1..1uriIdentity of the terminology system
Fixed Value: http://loinc.org
...... code 1..1codeSymbol in syntax defined by the system
Fixed Value: 14745-4
...... display 1..1stringRepresentation defined by the system
... Slices for effective[x] 1..1dateTimeOften just a dateTime for Vital Signs
Slice: Unordered, Open by type:$this
.... effective[x]:effectiveDateTime 1..1dateTimeOften just a dateTime for Vital Signs
... value[x] 0..1QuantityFinnishPHR: Glucose in blood
.... Slices for extension 0..*ExtensionExtension
Slice: Unordered, Open by value:url
.... alternativeQuantity 0..1QuantityFinnish PHR physical quantity translation extension
URL: http://phr.kanta.fi/StructureDefinition/fiphr-ext-pq-translation
..... value[x]
...... system 1..1uriSystem that defines coded unit form
Fixed Value: http://unitsofmeasure.org
.... value 1..1decimalNumerical value (with implicit precision)
.... unit 1..1stringUnit representation
Fixed Value: mmol/l
.... system 1..1uriSystem that defines coded unit form
Fixed Value: http://unitsofmeasure.org
.... code 1..1codeCoded form of the unit
Fixed Value: mmol/L
... dataAbsentReason 0..1CodeableConceptWhy the result is missing
.... coding 1..1CodingCode defined by a terminology system
..... code 0..1codeSymbol in syntax defined by the system
... component 0..0

doco Documentation for this format

Constraints

IdGradePath(s)DetailsRequirements
PHR-1errorObservation, Observation.code.codingResource SHALL contain code '15074-8' or '14743-9' or '14745-4'
: (code.coding.where(code='15074-8').exists()) or (code.coding.where(code='14743-9').exists()) or (code.coding.where(code='14745-4').exists())
PHR-2errorObservationWhen using code '15074-8' also code '14743-9' SHALL be used
: code.coding.where(code='15074-8').exists() implies code.coding.where(code='14743-9').exists()
PHR-3errorObservationWhen using code '14743-9' also code '15074-8' SHALL be used
: code.coding.where(code='14743-9').exists() implies code.coding.where(code='15074-8').exists()
NameFlagsCard.TypeDescription & Constraintsdoco
.. Observation C0..*FIPHRsdVitalsignsFinnish PHR Blood Glucose profile
PHR-1: Resource SHALL contain code '15074-8' or '14743-9' or '14745-4'
PHR-2: When using code '15074-8' also code '14743-9' SHALL be used
PHR-3: When using code '14743-9' also code '15074-8' SHALL be used
... meta Σ1..1MetaMetadata about the resource
.... Slices for profile Σ1..*canonical(StructureDefinition)Profiles this resource claims to conform to
Slice: Unordered, Open by value:$this
..... profile:fiphrProfile Σ1..1canonical(StructureDefinition)Profiles this resource claims to conform to

Fixed Value: http://phr.kanta.fi/StructureDefinition/fiphr-sd-bloodglucose
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... language 1..1codeLanguage of the resource content
Binding: CommonLanguages (required): Finnish PHR: A code of human language.

... Slices for extension 0..*ExtensionExtension
Slice: Unordered, Open by value:url
... creatingApplication N0..*(Complex)Application identification
URL: http://phr.kanta.fi/StructureDefinition/fiphr-ext-creatingapplication
... hoursAfterMeal 0..1unsignedIntMeal context
URL: http://phr.kanta.fi/StructureDefinition/fiphr-unsignedint
... modifierExtension ?!N0..*ExtensionExtensions that cannot be ignored
Slice: Unordered, Open by value:url
... identifier ΣN1..*IdentifierBusiness Identifier for observation
.... use ?!Σ0..1codeusual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .

.... type SΣN0..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
Example General: http://www.acme.com/identifiers/patient
Example General: urn:ietf:rfc:3986
.... value Σ1..1stringThe value that is unique
Example General: 123456
... status ?!SΣ1..1codeFinnish PHR: Status final
Binding: ObservationStatus (required): Codes providing the status of an observation.


Fixed Value: final
... Slices for category SN1..*CodeableConceptClassification of type of observation.
Slice: Unordered, Open by value:coding.code, value:coding.system
Binding: ObservationCategoryCodes (preferred): Classification of type of observation.


.... category:VSCat SN1..1CodeableConceptClassification of type of observation
Binding: ObservationCategoryCodes (required): Codes for high level observation categories.


..... coding SΣN1..*CodingCode defined by a terminology system
...... system SΣ1..1uriIdentity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/observation-category
...... code SΣ1..1codeSymbol in syntax defined by the system
Fixed Value: vital-signs
... code SΣN1..1CodeableConceptCoded Responses from C-CDA Vital Sign Results
Binding: Value Set Finnish PHR Vital Signs (extensible): This identifies the vital sign result type.

.... Slices for coding ΣC1..*CodingCode to be used with CGM readings
Slice: Unordered, Open by value:code, value:system
PHR-1: When using code '15074-8' or '14743-9' or '14745-4' system http://loinc.org SHALL be used
..... coding:GlucoseInBlood Σ0..1CodingCode defined by a terminology system
...... system Σ1..1uriIdentity of the terminology system
Fixed Value: http://loinc.org
...... code Σ1..1codeSymbol in syntax defined by the system
Fixed Value: 15074-8
...... display Σ1..1stringRepresentation defined by the system
..... coding:GlucoseInCapillaryBloodByGlucometer Σ0..1CodingCode defined by a terminology system
...... system Σ1..1uriIdentity of the terminology system
Fixed Value: http://loinc.org
...... code Σ1..1codeSymbol in syntax defined by the system
Fixed Value: 14743-9
...... display Σ1..1stringRepresentation defined by the system
..... coding:GlucoseInBodyFluid Σ0..1CodingCode defined by a terminology system
...... system Σ1..1uriIdentity of the terminology system
Fixed Value: http://loinc.org
...... code Σ1..1codeSymbol in syntax defined by the system
Fixed Value: 14745-4
...... display Σ1..1stringRepresentation defined by the system
... subject SΣCN1..1Reference(Finnish PHR Patient profile) {r}Who and/or what the observation is about
.... reference ΣC1..1stringLiteral reference, Relative, internal or absolute URL
... Slices for effective[x] SΣC1..1dateTimeOften just a dateTime for Vital Signs
Slice: Unordered, Open by type:$this
.... effective[x]:effectiveDateTime SΣC1..1dateTimeOften just a dateTime for Vital Signs
... issued Σ1..1instantFinnish PHR: The date and time this observation is stored
... performer ΣCN1..1Reference(Finnish PHR Patient profile) {r}Finnish PHR: Application user who is responsible for the observation
.... reference ΣC1..1stringLiteral reference, Relative, internal or absolute URL
... value[x] SΣC0..1QuantityFinnishPHR: Glucose in blood
.... Slices for extension 0..*ExtensionExtension
Slice: Unordered, Open by value:url
.... alternativeQuantity 0..1QuantityFinnish PHR physical quantity translation extension
URL: http://phr.kanta.fi/StructureDefinition/fiphr-ext-pq-translation
..... url 1..1uri"http://phr.kanta.fi/StructureDefinition/fiphr-ext-pq-translation"
.... value Σ1..1decimalNumerical value (with implicit precision)
.... comparator ?!Σ0..1code< | <= | >= | > - how to understand the value
Binding: QuantityComparator (required): How the Quantity should be understood and represented.

.... unit Σ1..1stringUnit representation
Fixed Value: mmol/l
.... system ΣC1..1uriSystem that defines coded unit form
Fixed Value: http://unitsofmeasure.org
.... code Σ1..1codeCoded form of the unit
Fixed Value: mmol/L
... dataAbsentReason SC0..1CodeableConceptWhy the result is missing
Binding: DataAbsentReason (extensible): Codes specifying why the result (Observation.value[x]) is missing.

.... Slices for coding Σ1..1CodingCode defined by a terminology system
Slice: Unordered, Open by value:system
..... coding:All Slices Content/Rules for all slices
...... code Σ0..1codeSymbol in syntax defined by the system
..... coding:fiphrDataAbsentReason ΣN1..1CodingCode defined by a terminology system
...... system Σ1..1uriIdentity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/data-absent-reason
...... code Σ1..1codeSymbol in syntax defined by the system
...... display Σ1..1stringRepresentation defined by the system
... interpretation N0..1CodeableConceptHigh, low, normal, etc.
Binding: ObservationInterpretationCodes (extensible): Finnish PHR: Codes identifying interpretations of observations.


.... Slices for coding ΣN1..*CodingCode defined by a terminology system
Slice: Unordered, Open by value:system
..... coding:fiphrInterpretation ΣN1..1CodingCode defined by a terminology system
...... system Σ1..1uriIdentity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation
...... code Σ1..1codeSymbol in syntax defined by the system
...... display Σ1..1stringRepresentation defined by the system

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / Code
Observation.languagerequiredCommonLanguages
Observation.identifier.userequiredIdentifierUse
Observation.identifier.typeextensibleIdentifier Type Codes
Observation.statusrequiredFixed Value: final
Observation.categorypreferredObservationCategoryCodes
Observation.category:VSCatrequiredObservationCategoryCodes
Observation.codeextensiblefiphr-vs-vitalsigns
Observation.value[x].comparatorrequiredQuantityComparator
Observation.dataAbsentReasonextensibleDataAbsentReason
Observation.interpretationextensibleObservationInterpretationCodes
Observation.component.codeextensiblefiphr-vs-vitalsigns
Observation.component.value[x]requiredVitalSignsUnits
Observation.component.dataAbsentReasonextensibleDataAbsentReason

Constraints

IdGradePath(s)DetailsRequirements
PHR-1errorObservation, Observation.code.codingResource SHALL contain code '15074-8' or '14743-9' or '14745-4'
: (code.coding.where(code='15074-8').exists()) or (code.coding.where(code='14743-9').exists()) or (code.coding.where(code='14745-4').exists())
PHR-2errorObservationWhen using code '15074-8' also code '14743-9' SHALL be used
: code.coding.where(code='15074-8').exists() implies code.coding.where(code='14743-9').exists()
PHR-3errorObservationWhen using code '14743-9' also code '15074-8' SHALL be used
: code.coding.where(code='14743-9').exists() implies code.coding.where(code='15074-8').exists()
dom-2errorObservationIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorObservationIf 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-4errorObservationIf 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-5errorObservationIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceObservationA 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-1errorObservation.extension, Observation.extension:creatingApplication, Observation.extension:hoursAfterMeal, Observation.modifierExtension, Observation.value[x].extension, Observation.value[x].extension:alternativeQuantity, Observation.component.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
obs-6errorObservationdataAbsentReason SHALL only be present if Observation.value[x] is not present
: dataAbsentReason.empty() or value.empty()
obs-7errorObservationIf Observation.code is the same as an Observation.component.code then the value element associated with the code SHALL NOT be present
: value.empty() or component.code.where(coding.intersect(%resource.code.coding).exists()).empty()
qty-3errorObservation.value[x], Observation.component.value[x]If a code for the unit is present, the system SHALL also be present
: code.empty() or system.exists()
ref-1errorObservation.subject, Observation.performerSHALL have a contained resource if a local reference is provided
: reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
vs-1errorObservation.effective[x], Observation.effective[x]:effectiveDateTimeif Observation.effective[x] is dateTime and has a value then that value shall be precise to the day
: ($this as dateTime).toString().length() >= 8
vs-2errorObservationIf there is no component or hasMember element then either a value[x] or a data absent reason must be present.
: (component.empty() and hasMember.empty()) implies (dataAbsentReason.exists() or value.exists())
NameFlagsCard.TypeDescription & Constraintsdoco
.. Observation C0..*FIPHRsdVitalsignsFinnish PHR Blood Glucose profile
PHR-1: Resource SHALL contain code '15074-8' or '14743-9' or '14745-4'
PHR-2: When using code '15074-8' also code '14743-9' SHALL be used
PHR-3: When using code '14743-9' also code '15074-8' SHALL be used
... id Σ0..1idLogical id of this artifact
... meta Σ1..1MetaMetadata about the resource
.... id 0..1stringUnique id for inter-element referencing
.... extension N0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... versionId Σ0..1idVersion specific identifier
.... lastUpdated Σ0..1instantWhen the resource version last changed
.... source Σ0..1uriIdentifies where the resource comes from
.... Slices for profile Σ1..*canonical(StructureDefinition)Profiles this resource claims to conform to
Slice: Unordered, Open by value:$this
..... profile:fiphrProfile Σ1..1canonical(StructureDefinition)Profiles this resource claims to conform to

Fixed Value: http://phr.kanta.fi/StructureDefinition/fiphr-sd-bloodglucose
.... security ΣN0..*CodingSecurity Labels applied to this resource
Binding: All Security Labels (extensible): Security Labels from the Healthcare Privacy and Security Classification System.


.... tag ΣN0..*CodingTags applied to this resource
Binding: CommonTags (example): Codes that represent various types of tags, commonly workflow-related; e.g. "Needs review by Dr. Jones".


... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... text N1..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... Slices for extension 0..*ExtensionExtension
Slice: Unordered, Open by value:url
... creatingApplication N0..*(Complex)Application identification
URL: http://phr.kanta.fi/StructureDefinition/fiphr-ext-creatingapplication
... hoursAfterMeal 0..1unsignedIntMeal context
URL: http://phr.kanta.fi/StructureDefinition/fiphr-unsignedint
... modifierExtension ?!N0..*ExtensionExtensions that cannot be ignored
Slice: Unordered, Open by value:url
... identifier ΣN1..*IdentifierBusiness Identifier for observation
.... id 0..1stringUnique id for inter-element referencing
.... extension N0..*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 SΣN0..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
Example General: http://www.acme.com/identifiers/patient
Example General: urn:ietf:rfc:3986
.... value Σ1..1stringThe value that is unique
Example General: 123456
.... period ΣCN0..1PeriodTime period when id is/was valid for use
... status ?!SΣ1..1codeFinnish PHR: Status final
Binding: ObservationStatus (required): Codes providing the status of an observation.


Fixed Value: final
... Slices for category SN1..*CodeableConceptClassification of type of observation.
Slice: Unordered, Open by value:coding.code, value:coding.system
Binding: ObservationCategoryCodes (preferred): Classification of type of observation.


.... category:VSCat SN1..1CodeableConceptClassification of type of observation
Binding: ObservationCategoryCodes (required): Codes for high level observation categories.


..... id 0..1stringUnique id for inter-element referencing
..... extension N0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
..... coding SΣN1..*CodingCode defined by a terminology system
...... id 0..1stringUnique id for inter-element referencing
...... extension N0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
...... system SΣ1..1uriIdentity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/observation-category
...... version Σ0..1stringVersion of the system - if relevant
...... code SΣ1..1codeSymbol in syntax defined by the system
Fixed Value: vital-signs
...... display Σ0..1stringRepresentation defined by the system
...... userSelected Σ0..1booleanIf this coding was chosen directly by the user
..... text Σ0..1stringPlain text representation of the concept
... code SΣN1..1CodeableConceptCoded Responses from C-CDA Vital Sign Results
Binding: Value Set Finnish PHR Vital Signs (extensible): This identifies the vital sign result type.

.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... Slices for coding ΣC1..*CodingCode to be used with CGM readings
Slice: Unordered, Open by value:code, value:system
PHR-1: When using code '15074-8' or '14743-9' or '14745-4' system http://loinc.org SHALL be used
..... coding:GlucoseInBlood Σ0..1CodingCode defined by a terminology system
...... id 0..1stringUnique id for inter-element referencing
...... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
...... system Σ1..1uriIdentity of the terminology system
Fixed Value: http://loinc.org
...... version Σ0..1stringVersion of the system - if relevant
...... code Σ1..1codeSymbol in syntax defined by the system
Fixed Value: 15074-8
...... display Σ1..1stringRepresentation defined by the system
...... userSelected Σ0..1booleanIf this coding was chosen directly by the user
..... coding:GlucoseInCapillaryBloodByGlucometer Σ0..1CodingCode defined by a terminology system
...... id 0..1stringUnique id for inter-element referencing
...... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
...... system Σ1..1uriIdentity of the terminology system
Fixed Value: http://loinc.org
...... version Σ0..1stringVersion of the system - if relevant
...... code Σ1..1codeSymbol in syntax defined by the system
Fixed Value: 14743-9
...... display Σ1..1stringRepresentation defined by the system
...... userSelected Σ0..1booleanIf this coding was chosen directly by the user
..... coding:GlucoseInBodyFluid Σ0..1CodingCode defined by a terminology system
...... id 0..1stringUnique id for inter-element referencing
...... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
...... system Σ1..1uriIdentity of the terminology system
Fixed Value: http://loinc.org
...... version Σ0..1stringVersion of the system - if relevant
...... code Σ1..1codeSymbol in syntax defined by the system
Fixed Value: 14745-4
...... display Σ1..1stringRepresentation defined by the system
...... userSelected Σ0..1booleanIf this coding was chosen directly by the user
.... text Σ0..1stringPlain text representation of the concept
... subject SΣCN1..1Reference(Finnish PHR Patient profile) {r}Who and/or what the observation is about
.... id 0..1stringUnique id for inter-element referencing
.... extension N0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... reference ΣC1..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 ΣN0..1IdentifierLogical reference, when literal reference is not known
..... id 0..1stringUnique id for inter-element referencing
..... extension N0..*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 ΣN0..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 Σ0..1uriThe namespace for the identifier value
Example General: http://www.acme.com/identifiers/patient
..... value Σ0..1stringThe value that is unique
Example General: 123456
..... period ΣCN0..1PeriodTime period when id is/was valid for use
.... display Σ0..1stringText alternative for the resource
... Slices for effective[x] SΣC1..1dateTimeOften just a dateTime for Vital Signs
Slice: Unordered, Open by type:$this
.... effective[x]:effectiveDateTime SΣC1..1dateTimeOften just a dateTime for Vital Signs
... issued Σ1..1instantFinnish PHR: The date and time this observation is stored
... performer ΣCN1..1Reference(Finnish PHR Patient profile) {r}Finnish PHR: Application user who is responsible for the observation
.... id 0..1stringUnique id for inter-element referencing
.... extension N0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... reference ΣC1..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 ΣN0..1IdentifierLogical reference, when literal reference is not known
..... id 0..1stringUnique id for inter-element referencing
..... extension N0..*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 ΣN0..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 Σ0..1uriThe namespace for the identifier value
Example General: http://www.acme.com/identifiers/patient
..... value Σ0..1stringThe value that is unique
Example General: 123456
..... period ΣCN0..1PeriodTime period when id is/was valid for use
.... display Σ0..1stringText alternative for the resource
... value[x] SΣC0..1QuantityFinnishPHR: Glucose in blood
.... id 0..1stringUnique id for inter-element referencing
.... Slices for extension 0..*ExtensionExtension
Slice: Unordered, Open by value:url
.... alternativeQuantity 0..1QuantityFinnish PHR physical quantity translation extension
URL: http://phr.kanta.fi/StructureDefinition/fiphr-ext-pq-translation
..... id 0..1stringUnique id for inter-element referencing
..... extension N0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
..... url 1..1uri"http://phr.kanta.fi/StructureDefinition/fiphr-ext-pq-translation"
..... value[x] 0..1QuantityValue of extension
...... id 0..1stringUnique id for inter-element referencing
...... extension N0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
...... value Σ1..1decimalNumerical value (with implicit precision)
...... comparator ?!Σ0..1code< | <= | >= | > - how to understand the value
Binding: QuantityComparator (required): How the Quantity should be understood and represented.

...... unit Σ1..1stringUnit representation
...... system ΣC1..1uriSystem that defines coded unit form
Fixed Value: http://unitsofmeasure.org
...... code Σ1..1codeCoded form of the unit
.... value Σ1..1decimalNumerical value (with implicit precision)
.... comparator ?!Σ0..1code< | <= | >= | > - how to understand the value
Binding: QuantityComparator (required): How the Quantity should be understood and represented.

.... unit Σ1..1stringUnit representation
Fixed Value: mmol/l
.... system ΣC1..1uriSystem that defines coded unit form
Fixed Value: http://unitsofmeasure.org
.... code Σ1..1codeCoded form of the unit
Fixed Value: mmol/L
... dataAbsentReason SC0..1CodeableConceptWhy the result is missing
Binding: DataAbsentReason (extensible): Codes specifying why the result (Observation.value[x]) is missing.

.... id 0..1stringxml:id (or equivalent in JSON)
.... extension N0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... Slices for coding Σ1..1CodingCode defined by a terminology system
Slice: Unordered, Open by value:system
..... coding:All Slices Content/Rules for all slices
...... id 0..1stringUnique id for inter-element referencing
...... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
...... system Σ0..1uriIdentity of the terminology system
...... version Σ0..1stringVersion of the system - if relevant
...... code Σ0..1codeSymbol in syntax defined by the system
...... display Σ0..1stringRepresentation defined by the system
...... userSelected Σ0..1booleanIf this coding was chosen directly by the user
..... coding:fiphrDataAbsentReason ΣN1..1CodingCode defined by a terminology system
...... id 0..1stringUnique id for inter-element referencing
...... extension N0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
...... system Σ1..1uriIdentity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/data-absent-reason
...... version Σ0..1stringVersion of the system - if relevant
...... code Σ1..1codeSymbol in syntax defined by the system
...... display Σ1..1stringRepresentation defined by the system
...... userSelected Σ0..1booleanIf this coding was chosen directly by the user
.... text Σ0..1stringPlain text representation of the concept
... interpretation N0..1CodeableConceptHigh, low, normal, etc.
Binding: ObservationInterpretationCodes (extensible): Finnish PHR: Codes identifying interpretations of observations.


.... id 0..1stringUnique id for inter-element referencing
.... extension N0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... Slices for coding ΣN1..*CodingCode defined by a terminology system
Slice: Unordered, Open by value:system
..... coding:fiphrInterpretation ΣN1..1CodingCode defined by a terminology system
...... id 0..1stringUnique id for inter-element referencing
...... extension N0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
...... system Σ1..1uriIdentity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation
...... version Σ0..1stringVersion of the system - if relevant
...... code Σ1..1codeSymbol in syntax defined by the system
...... display Σ1..1stringRepresentation defined by the system
...... userSelected Σ0..1booleanIf this coding was chosen directly by the user
.... text Σ0..1stringPlain text representation of the concept
... note N0..*AnnotationComments about the observation
.... id 0..1stringUnique id for inter-element referencing
.... extension N0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... time Σ0..1dateTimeWhen the annotation was made
.... text Σ1..1markdownThe annotation - text content (as markdown)
... referenceRange CN0..*BackboneElementProvides guide for interpretation
.... id 0..1stringUnique id for inter-element referencing
.... extension N0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... modifierExtension ?!ΣN0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... low CN0..1SimpleQuantityLow Range, if relevant
.... high CN0..1SimpleQuantityHigh Range, if relevant
.... type N0..1CodeableConceptReference range qualifier
Binding: ObservationReferenceRangeMeaningCodes (preferred): Code for the meaning of a reference range.

.... appliesTo N0..*CodeableConceptReference range population
Binding: ObservationReferenceRangeAppliesToCodes (example): Codes identifying the population the reference range applies to.


.... age CN0..1RangeApplicable age range, if relevant
.... text 0..1stringText based reference range in an observation

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / Code
Observation.meta.securityextensibleAll Security Labels
Observation.meta.tagexampleCommonTags
Observation.languagerequiredCommonLanguages
Observation.identifier.userequiredIdentifierUse
Observation.identifier.typeextensibleIdentifier Type Codes
Observation.statusrequiredFixed Value: final
Observation.categorypreferredObservationCategoryCodes
Observation.category:VSCatrequiredObservationCategoryCodes
Observation.codeextensiblefiphr-vs-vitalsigns
Observation.subject.typeextensibleResourceType
Observation.subject.identifier.userequiredIdentifierUse
Observation.subject.identifier.typeextensibleIdentifier Type Codes
Observation.performer.typeextensibleResourceType
Observation.performer.identifier.userequiredIdentifierUse
Observation.performer.identifier.typeextensibleIdentifier Type Codes
Observation.value[x].extension:alternativeQuantity.value[x].comparatorrequiredQuantityComparator
Observation.value[x].comparatorrequiredQuantityComparator
Observation.dataAbsentReasonextensibleDataAbsentReason
Observation.interpretationextensibleObservationInterpretationCodes
Observation.note.author[x].typeextensibleResourceType
Observation.note.author[x].identifier.userequiredIdentifierUse
Observation.note.author[x].identifier.typeextensibleIdentifier Type Codes
Observation.device.typeextensibleResourceType
Observation.device.identifier.userequiredIdentifierUse
Observation.device.identifier.typeextensibleIdentifier Type Codes
Observation.referenceRange.typepreferredObservationReferenceRangeMeaningCodes
Observation.referenceRange.appliesToexampleObservationReferenceRangeAppliesToCodes
Observation.hasMember.typeextensibleResourceType
Observation.hasMember.identifier.userequiredIdentifierUse
Observation.hasMember.identifier.typeextensibleIdentifier Type Codes
Observation.component.codeextensiblefiphr-vs-vitalsigns
Observation.component.value[x]requiredVitalSignsUnits
Observation.component.dataAbsentReasonextensibleDataAbsentReason
Observation.component.interpretationextensibleObservationInterpretationCodes

Constraints

IdGradePath(s)DetailsRequirements
PHR-1errorObservation.code.codingWhen using code '15074-8' or '14743-9' or '14745-4' system http://loinc.org SHALL be used
: (where(code='15074-8').exists()) or (where(code='14743-9').exists()) or (where(code='14745-4').exists()) implies where(system="http://loinc.org").exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorObservation.meta.extension, Observation.extension, Observation.extension:creatingApplication, Observation.extension:hoursAfterMeal, Observation.modifierExtension, Observation.identifier.extension, Observation.category:VSCat.extension, Observation.category:VSCat.coding.extension, Observation.code.extension, Observation.code.coding:GlucoseInBlood.extension, Observation.code.coding:GlucoseInCapillaryBloodByGlucometer.extension, Observation.code.coding:GlucoseInBodyFluid.extension, Observation.subject.extension, Observation.subject.identifier.extension, Observation.performer.extension, Observation.performer.identifier.extension, Observation.value[x].extension, Observation.value[x].extension:alternativeQuantity, Observation.value[x].extension:alternativeQuantity.extension, Observation.value[x].extension:alternativeQuantity.value[x].extension, Observation.dataAbsentReason.extension, Observation.dataAbsentReason.coding.extension, Observation.dataAbsentReason.coding:fiphrDataAbsentReason.extension, Observation.interpretation.extension, Observation.interpretation.coding:fiphrInterpretation.extension, Observation.note.extension, Observation.note.author[x].extension, Observation.note.author[x].identifier.extension, Observation.device.extension, Observation.device.identifier.extension, Observation.referenceRange.extension, Observation.referenceRange.modifierExtension, Observation.hasMember.extension, Observation.hasMember.identifier.extension, Observation.component.extension, Observation.component.modifierExtension, Observation.component.code.extension, Observation.component.dataAbsentReason.extension, Observation.component.dataAbsentReason.coding:fiphrCoding.extension, Observation.component.interpretation.extension, Observation.component.interpretation.coding:fiphrCoding.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
obs-3errorObservation.referenceRangeMust have at least a low or a high or text
: low.exists() or high.exists() or text.exists()
per-1errorObservation.identifier.period, Observation.subject.identifier.period, Observation.performer.identifier.period, Observation.note.author[x].identifier.period, Observation.device.identifier.period, Observation.hasMember.identifier.periodIf present, start SHALL have a lower value than end
: start.hasValue().not() or end.hasValue().not() or (start <= end)
qty-3errorObservation.value[x], Observation.referenceRange.low, Observation.referenceRange.high, Observation.component.value[x]If a code for the unit is present, the system SHALL also be present
: code.empty() or system.exists()
ref-1errorObservation.subject, Observation.performerSHALL have a contained resource if a local reference is provided
: reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
rng-2errorObservation.referenceRange.ageIf present, low SHALL have a lower value than high
: low.empty() or high.empty() or (low <= high)
sqty-1errorObservation.referenceRange.low, Observation.referenceRange.highThe comparator is not used on a SimpleQuantity
: comparator.empty()
vs-1errorObservation.effective[x], Observation.effective[x]:effectiveDateTimeif Observation.effective[x] is dateTime and has a value then that value shall be precise to the day
: ($this as dateTime).toString().length() >= 8

This structure is derived from FIPHRsdVitalsigns

Summary

Mandatory: 1 element (14 nested mandatory elements)
Fixed Value: 11 elements
Prohibited: 1 element

Extensions

This structure refers to these extensions:

Slices

This structure defines the following Slices:

  • The element Observation.code.coding is sliced based on the values of value:code, value:system
  • The element Observation.effective[x] is sliced based on the value of type:$this

Differential View

This structure is derived from FIPHRsdVitalsigns

NameFlagsCard.TypeDescription & Constraintsdoco
.. Observation C0..*FIPHRsdVitalsignsFinnish PHR Blood Glucose profile
PHR-1: Resource SHALL contain code '15074-8' or '14743-9' or '14745-4'
PHR-2: When using code '15074-8' also code '14743-9' SHALL be used
PHR-3: When using code '14743-9' also code '15074-8' SHALL be used
... meta 1..1MetaMetadata about the resource
.... profile 1..*canonical(StructureDefinition)Profiles this resource claims to conform to
.... profile:fiphrProfile 1..1canonical(StructureDefinition)Profiles this resource claims to conform to
Fixed Value: http://phr.kanta.fi/StructureDefinition/fiphr-sd-bloodglucose
... Slices for extension 0..*ExtensionExtension
Slice: Unordered, Open by value:url
... hoursAfterMeal 0..1unsignedIntMeal context
URL: http://phr.kanta.fi/StructureDefinition/fiphr-unsignedint
.... Slices for coding C1..*CodingCode to be used with CGM readings
Slice: Unordered, Open by value:code, value:system
PHR-1: When using code '15074-8' or '14743-9' or '14745-4' system http://loinc.org SHALL be used
..... coding:GlucoseInBlood 0..1CodingCode defined by a terminology system
...... system 1..1uriIdentity of the terminology system
Fixed Value: http://loinc.org
...... code 1..1codeSymbol in syntax defined by the system
Fixed Value: 15074-8
...... display 1..1stringRepresentation defined by the system
..... coding:GlucoseInCapillaryBloodByGlucometer 0..1CodingCode defined by a terminology system
...... system 1..1uriIdentity of the terminology system
Fixed Value: http://loinc.org
...... code 1..1codeSymbol in syntax defined by the system
Fixed Value: 14743-9
...... display 1..1stringRepresentation defined by the system
..... coding:GlucoseInBodyFluid 0..1CodingCode defined by a terminology system
...... system 1..1uriIdentity of the terminology system
Fixed Value: http://loinc.org
...... code 1..1codeSymbol in syntax defined by the system
Fixed Value: 14745-4
...... display 1..1stringRepresentation defined by the system
... Slices for effective[x] 1..1dateTimeOften just a dateTime for Vital Signs
Slice: Unordered, Open by type:$this
.... effective[x]:effectiveDateTime 1..1dateTimeOften just a dateTime for Vital Signs
... value[x] 0..1QuantityFinnishPHR: Glucose in blood
.... Slices for extension 0..*ExtensionExtension
Slice: Unordered, Open by value:url
.... alternativeQuantity 0..1QuantityFinnish PHR physical quantity translation extension
URL: http://phr.kanta.fi/StructureDefinition/fiphr-ext-pq-translation
..... value[x]
...... system 1..1uriSystem that defines coded unit form
Fixed Value: http://unitsofmeasure.org
.... value 1..1decimalNumerical value (with implicit precision)
.... unit 1..1stringUnit representation
Fixed Value: mmol/l
.... system 1..1uriSystem that defines coded unit form
Fixed Value: http://unitsofmeasure.org
.... code 1..1codeCoded form of the unit
Fixed Value: mmol/L
... dataAbsentReason 0..1CodeableConceptWhy the result is missing
.... coding 1..1CodingCode defined by a terminology system
..... code 0..1codeSymbol in syntax defined by the system
... component 0..0

doco Documentation for this format

Constraints

IdGradePath(s)DetailsRequirements
PHR-1errorObservation, Observation.code.codingResource SHALL contain code '15074-8' or '14743-9' or '14745-4'
: (code.coding.where(code='15074-8').exists()) or (code.coding.where(code='14743-9').exists()) or (code.coding.where(code='14745-4').exists())
PHR-2errorObservationWhen using code '15074-8' also code '14743-9' SHALL be used
: code.coding.where(code='15074-8').exists() implies code.coding.where(code='14743-9').exists()
PHR-3errorObservationWhen using code '14743-9' also code '15074-8' SHALL be used
: code.coding.where(code='14743-9').exists() implies code.coding.where(code='15074-8').exists()

Key Elements View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Observation C0..*FIPHRsdVitalsignsFinnish PHR Blood Glucose profile
PHR-1: Resource SHALL contain code '15074-8' or '14743-9' or '14745-4'
PHR-2: When using code '15074-8' also code '14743-9' SHALL be used
PHR-3: When using code '14743-9' also code '15074-8' SHALL be used
... meta Σ1..1MetaMetadata about the resource
.... Slices for profile Σ1..*canonical(StructureDefinition)Profiles this resource claims to conform to
Slice: Unordered, Open by value:$this
..... profile:fiphrProfile Σ1..1canonical(StructureDefinition)Profiles this resource claims to conform to

Fixed Value: http://phr.kanta.fi/StructureDefinition/fiphr-sd-bloodglucose
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... language 1..1codeLanguage of the resource content
Binding: CommonLanguages (required): Finnish PHR: A code of human language.

... Slices for extension 0..*ExtensionExtension
Slice: Unordered, Open by value:url
... creatingApplication N0..*(Complex)Application identification
URL: http://phr.kanta.fi/StructureDefinition/fiphr-ext-creatingapplication
... hoursAfterMeal 0..1unsignedIntMeal context
URL: http://phr.kanta.fi/StructureDefinition/fiphr-unsignedint
... modifierExtension ?!N0..*ExtensionExtensions that cannot be ignored
Slice: Unordered, Open by value:url
... identifier ΣN1..*IdentifierBusiness Identifier for observation
.... use ?!Σ0..1codeusual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .

.... type SΣN0..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
Example General: http://www.acme.com/identifiers/patient
Example General: urn:ietf:rfc:3986
.... value Σ1..1stringThe value that is unique
Example General: 123456
... status ?!SΣ1..1codeFinnish PHR: Status final
Binding: ObservationStatus (required): Codes providing the status of an observation.


Fixed Value: final
... Slices for category SN1..*CodeableConceptClassification of type of observation.
Slice: Unordered, Open by value:coding.code, value:coding.system
Binding: ObservationCategoryCodes (preferred): Classification of type of observation.


.... category:VSCat SN1..1CodeableConceptClassification of type of observation
Binding: ObservationCategoryCodes (required): Codes for high level observation categories.


..... coding SΣN1..*CodingCode defined by a terminology system
...... system SΣ1..1uriIdentity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/observation-category
...... code SΣ1..1codeSymbol in syntax defined by the system
Fixed Value: vital-signs
... code SΣN1..1CodeableConceptCoded Responses from C-CDA Vital Sign Results
Binding: Value Set Finnish PHR Vital Signs (extensible): This identifies the vital sign result type.

.... Slices for coding ΣC1..*CodingCode to be used with CGM readings
Slice: Unordered, Open by value:code, value:system
PHR-1: When using code '15074-8' or '14743-9' or '14745-4' system http://loinc.org SHALL be used
..... coding:GlucoseInBlood Σ0..1CodingCode defined by a terminology system
...... system Σ1..1uriIdentity of the terminology system
Fixed Value: http://loinc.org
...... code Σ1..1codeSymbol in syntax defined by the system
Fixed Value: 15074-8
...... display Σ1..1stringRepresentation defined by the system
..... coding:GlucoseInCapillaryBloodByGlucometer Σ0..1CodingCode defined by a terminology system
...... system Σ1..1uriIdentity of the terminology system
Fixed Value: http://loinc.org
...... code Σ1..1codeSymbol in syntax defined by the system
Fixed Value: 14743-9
...... display Σ1..1stringRepresentation defined by the system
..... coding:GlucoseInBodyFluid Σ0..1CodingCode defined by a terminology system
...... system Σ1..1uriIdentity of the terminology system
Fixed Value: http://loinc.org
...... code Σ1..1codeSymbol in syntax defined by the system
Fixed Value: 14745-4
...... display Σ1..1stringRepresentation defined by the system
... subject SΣCN1..1Reference(Finnish PHR Patient profile) {r}Who and/or what the observation is about
.... reference ΣC1..1stringLiteral reference, Relative, internal or absolute URL
... Slices for effective[x] SΣC1..1dateTimeOften just a dateTime for Vital Signs
Slice: Unordered, Open by type:$this
.... effective[x]:effectiveDateTime SΣC1..1dateTimeOften just a dateTime for Vital Signs
... issued Σ1..1instantFinnish PHR: The date and time this observation is stored
... performer ΣCN1..1Reference(Finnish PHR Patient profile) {r}Finnish PHR: Application user who is responsible for the observation
.... reference ΣC1..1stringLiteral reference, Relative, internal or absolute URL
... value[x] SΣC0..1QuantityFinnishPHR: Glucose in blood
.... Slices for extension 0..*ExtensionExtension
Slice: Unordered, Open by value:url
.... alternativeQuantity 0..1QuantityFinnish PHR physical quantity translation extension
URL: http://phr.kanta.fi/StructureDefinition/fiphr-ext-pq-translation
..... url 1..1uri"http://phr.kanta.fi/StructureDefinition/fiphr-ext-pq-translation"
.... value Σ1..1decimalNumerical value (with implicit precision)
.... comparator ?!Σ0..1code< | <= | >= | > - how to understand the value
Binding: QuantityComparator (required): How the Quantity should be understood and represented.

.... unit Σ1..1stringUnit representation
Fixed Value: mmol/l
.... system ΣC1..1uriSystem that defines coded unit form
Fixed Value: http://unitsofmeasure.org
.... code Σ1..1codeCoded form of the unit
Fixed Value: mmol/L
... dataAbsentReason SC0..1CodeableConceptWhy the result is missing
Binding: DataAbsentReason (extensible): Codes specifying why the result (Observation.value[x]) is missing.

.... Slices for coding Σ1..1CodingCode defined by a terminology system
Slice: Unordered, Open by value:system
..... coding:All Slices Content/Rules for all slices
...... code Σ0..1codeSymbol in syntax defined by the system
..... coding:fiphrDataAbsentReason ΣN1..1CodingCode defined by a terminology system
...... system Σ1..1uriIdentity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/data-absent-reason
...... code Σ1..1codeSymbol in syntax defined by the system
...... display Σ1..1stringRepresentation defined by the system
... interpretation N0..1CodeableConceptHigh, low, normal, etc.
Binding: ObservationInterpretationCodes (extensible): Finnish PHR: Codes identifying interpretations of observations.


.... Slices for coding ΣN1..*CodingCode defined by a terminology system
Slice: Unordered, Open by value:system
..... coding:fiphrInterpretation ΣN1..1CodingCode defined by a terminology system
...... system Σ1..1uriIdentity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation
...... code Σ1..1codeSymbol in syntax defined by the system
...... display Σ1..1stringRepresentation defined by the system

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / Code
Observation.languagerequiredCommonLanguages
Observation.identifier.userequiredIdentifierUse
Observation.identifier.typeextensibleIdentifier Type Codes
Observation.statusrequiredFixed Value: final
Observation.categorypreferredObservationCategoryCodes
Observation.category:VSCatrequiredObservationCategoryCodes
Observation.codeextensiblefiphr-vs-vitalsigns
Observation.value[x].comparatorrequiredQuantityComparator
Observation.dataAbsentReasonextensibleDataAbsentReason
Observation.interpretationextensibleObservationInterpretationCodes
Observation.component.codeextensiblefiphr-vs-vitalsigns
Observation.component.value[x]requiredVitalSignsUnits
Observation.component.dataAbsentReasonextensibleDataAbsentReason

Constraints

IdGradePath(s)DetailsRequirements
PHR-1errorObservation, Observation.code.codingResource SHALL contain code '15074-8' or '14743-9' or '14745-4'
: (code.coding.where(code='15074-8').exists()) or (code.coding.where(code='14743-9').exists()) or (code.coding.where(code='14745-4').exists())
PHR-2errorObservationWhen using code '15074-8' also code '14743-9' SHALL be used
: code.coding.where(code='15074-8').exists() implies code.coding.where(code='14743-9').exists()
PHR-3errorObservationWhen using code '14743-9' also code '15074-8' SHALL be used
: code.coding.where(code='14743-9').exists() implies code.coding.where(code='15074-8').exists()
dom-2errorObservationIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorObservationIf 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-4errorObservationIf 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-5errorObservationIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceObservationA 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-1errorObservation.extension, Observation.extension:creatingApplication, Observation.extension:hoursAfterMeal, Observation.modifierExtension, Observation.value[x].extension, Observation.value[x].extension:alternativeQuantity, Observation.component.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
obs-6errorObservationdataAbsentReason SHALL only be present if Observation.value[x] is not present
: dataAbsentReason.empty() or value.empty()
obs-7errorObservationIf Observation.code is the same as an Observation.component.code then the value element associated with the code SHALL NOT be present
: value.empty() or component.code.where(coding.intersect(%resource.code.coding).exists()).empty()
qty-3errorObservation.value[x], Observation.component.value[x]If a code for the unit is present, the system SHALL also be present
: code.empty() or system.exists()
ref-1errorObservation.subject, Observation.performerSHALL have a contained resource if a local reference is provided
: reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
vs-1errorObservation.effective[x], Observation.effective[x]:effectiveDateTimeif Observation.effective[x] is dateTime and has a value then that value shall be precise to the day
: ($this as dateTime).toString().length() >= 8
vs-2errorObservationIf there is no component or hasMember element then either a value[x] or a data absent reason must be present.
: (component.empty() and hasMember.empty()) implies (dataAbsentReason.exists() or value.exists())

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Observation C0..*FIPHRsdVitalsignsFinnish PHR Blood Glucose profile
PHR-1: Resource SHALL contain code '15074-8' or '14743-9' or '14745-4'
PHR-2: When using code '15074-8' also code '14743-9' SHALL be used
PHR-3: When using code '14743-9' also code '15074-8' SHALL be used
... id Σ0..1idLogical id of this artifact
... meta Σ1..1MetaMetadata about the resource
.... id 0..1stringUnique id for inter-element referencing
.... extension N0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... versionId Σ0..1idVersion specific identifier
.... lastUpdated Σ0..1instantWhen the resource version last changed
.... source Σ0..1uriIdentifies where the resource comes from
.... Slices for profile Σ1..*canonical(StructureDefinition)Profiles this resource claims to conform to
Slice: Unordered, Open by value:$this
..... profile:fiphrProfile Σ1..1canonical(StructureDefinition)Profiles this resource claims to conform to

Fixed Value: http://phr.kanta.fi/StructureDefinition/fiphr-sd-bloodglucose
.... security ΣN0..*CodingSecurity Labels applied to this resource
Binding: All Security Labels (extensible): Security Labels from the Healthcare Privacy and Security Classification System.


.... tag ΣN0..*CodingTags applied to this resource
Binding: CommonTags (example): Codes that represent various types of tags, commonly workflow-related; e.g. "Needs review by Dr. Jones".


... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... text N1..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... Slices for extension 0..*ExtensionExtension
Slice: Unordered, Open by value:url
... creatingApplication N0..*(Complex)Application identification
URL: http://phr.kanta.fi/StructureDefinition/fiphr-ext-creatingapplication
... hoursAfterMeal 0..1unsignedIntMeal context
URL: http://phr.kanta.fi/StructureDefinition/fiphr-unsignedint
... modifierExtension ?!N0..*ExtensionExtensions that cannot be ignored
Slice: Unordered, Open by value:url
... identifier ΣN1..*IdentifierBusiness Identifier for observation
.... id 0..1stringUnique id for inter-element referencing
.... extension N0..*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 SΣN0..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
Example General: http://www.acme.com/identifiers/patient
Example General: urn:ietf:rfc:3986
.... value Σ1..1stringThe value that is unique
Example General: 123456
.... period ΣCN0..1PeriodTime period when id is/was valid for use
... status ?!SΣ1..1codeFinnish PHR: Status final
Binding: ObservationStatus (required): Codes providing the status of an observation.


Fixed Value: final
... Slices for category SN1..*CodeableConceptClassification of type of observation.
Slice: Unordered, Open by value:coding.code, value:coding.system
Binding: ObservationCategoryCodes (preferred): Classification of type of observation.


.... category:VSCat SN1..1CodeableConceptClassification of type of observation
Binding: ObservationCategoryCodes (required): Codes for high level observation categories.


..... id 0..1stringUnique id for inter-element referencing
..... extension N0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
..... coding SΣN1..*CodingCode defined by a terminology system
...... id 0..1stringUnique id for inter-element referencing
...... extension N0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
...... system SΣ1..1uriIdentity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/observation-category
...... version Σ0..1stringVersion of the system - if relevant
...... code SΣ1..1codeSymbol in syntax defined by the system
Fixed Value: vital-signs
...... display Σ0..1stringRepresentation defined by the system
...... userSelected Σ0..1booleanIf this coding was chosen directly by the user
..... text Σ0..1stringPlain text representation of the concept
... code SΣN1..1CodeableConceptCoded Responses from C-CDA Vital Sign Results
Binding: Value Set Finnish PHR Vital Signs (extensible): This identifies the vital sign result type.

.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... Slices for coding ΣC1..*CodingCode to be used with CGM readings
Slice: Unordered, Open by value:code, value:system
PHR-1: When using code '15074-8' or '14743-9' or '14745-4' system http://loinc.org SHALL be used
..... coding:GlucoseInBlood Σ0..1CodingCode defined by a terminology system
...... id 0..1stringUnique id for inter-element referencing
...... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
...... system Σ1..1uriIdentity of the terminology system
Fixed Value: http://loinc.org
...... version Σ0..1stringVersion of the system - if relevant
...... code Σ1..1codeSymbol in syntax defined by the system
Fixed Value: 15074-8
...... display Σ1..1stringRepresentation defined by the system
...... userSelected Σ0..1booleanIf this coding was chosen directly by the user
..... coding:GlucoseInCapillaryBloodByGlucometer Σ0..1CodingCode defined by a terminology system
...... id 0..1stringUnique id for inter-element referencing
...... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
...... system Σ1..1uriIdentity of the terminology system
Fixed Value: http://loinc.org
...... version Σ0..1stringVersion of the system - if relevant
...... code Σ1..1codeSymbol in syntax defined by the system
Fixed Value: 14743-9
...... display Σ1..1stringRepresentation defined by the system
...... userSelected Σ0..1booleanIf this coding was chosen directly by the user
..... coding:GlucoseInBodyFluid Σ0..1CodingCode defined by a terminology system
...... id 0..1stringUnique id for inter-element referencing
...... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
...... system Σ1..1uriIdentity of the terminology system
Fixed Value: http://loinc.org
...... version Σ0..1stringVersion of the system - if relevant
...... code Σ1..1codeSymbol in syntax defined by the system
Fixed Value: 14745-4
...... display Σ1..1stringRepresentation defined by the system
...... userSelected Σ0..1booleanIf this coding was chosen directly by the user
.... text Σ0..1stringPlain text representation of the concept
... subject SΣCN1..1Reference(Finnish PHR Patient profile) {r}Who and/or what the observation is about
.... id 0..1stringUnique id for inter-element referencing
.... extension N0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... reference ΣC1..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 ΣN0..1IdentifierLogical reference, when literal reference is not known
..... id 0..1stringUnique id for inter-element referencing
..... extension N0..*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 ΣN0..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 Σ0..1uriThe namespace for the identifier value
Example General: http://www.acme.com/identifiers/patient
..... value Σ0..1stringThe value that is unique
Example General: 123456
..... period ΣCN0..1PeriodTime period when id is/was valid for use
.... display Σ0..1stringText alternative for the resource
... Slices for effective[x] SΣC1..1dateTimeOften just a dateTime for Vital Signs
Slice: Unordered, Open by type:$this
.... effective[x]:effectiveDateTime SΣC1..1dateTimeOften just a dateTime for Vital Signs
... issued Σ1..1instantFinnish PHR: The date and time this observation is stored
... performer ΣCN1..1Reference(Finnish PHR Patient profile) {r}Finnish PHR: Application user who is responsible for the observation
.... id 0..1stringUnique id for inter-element referencing
.... extension N0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... reference ΣC1..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 ΣN0..1IdentifierLogical reference, when literal reference is not known
..... id 0..1stringUnique id for inter-element referencing
..... extension N0..*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 ΣN0..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 Σ0..1uriThe namespace for the identifier value
Example General: http://www.acme.com/identifiers/patient
..... value Σ0..1stringThe value that is unique
Example General: 123456
..... period ΣCN0..1PeriodTime period when id is/was valid for use
.... display Σ0..1stringText alternative for the resource
... value[x] SΣC0..1QuantityFinnishPHR: Glucose in blood
.... id 0..1stringUnique id for inter-element referencing
.... Slices for extension 0..*ExtensionExtension
Slice: Unordered, Open by value:url
.... alternativeQuantity 0..1QuantityFinnish PHR physical quantity translation extension
URL: http://phr.kanta.fi/StructureDefinition/fiphr-ext-pq-translation
..... id 0..1stringUnique id for inter-element referencing
..... extension N0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
..... url 1..1uri"http://phr.kanta.fi/StructureDefinition/fiphr-ext-pq-translation"
..... value[x] 0..1QuantityValue of extension
...... id 0..1stringUnique id for inter-element referencing
...... extension N0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
...... value Σ1..1decimalNumerical value (with implicit precision)
...... comparator ?!Σ0..1code< | <= | >= | > - how to understand the value
Binding: QuantityComparator (required): How the Quantity should be understood and represented.

...... unit Σ1..1stringUnit representation
...... system ΣC1..1uriSystem that defines coded unit form
Fixed Value: http://unitsofmeasure.org
...... code Σ1..1codeCoded form of the unit
.... value Σ1..1decimalNumerical value (with implicit precision)
.... comparator ?!Σ0..1code< | <= | >= | > - how to understand the value
Binding: QuantityComparator (required): How the Quantity should be understood and represented.

.... unit Σ1..1stringUnit representation
Fixed Value: mmol/l
.... system ΣC1..1uriSystem that defines coded unit form
Fixed Value: http://unitsofmeasure.org
.... code Σ1..1codeCoded form of the unit
Fixed Value: mmol/L
... dataAbsentReason SC0..1CodeableConceptWhy the result is missing
Binding: DataAbsentReason (extensible): Codes specifying why the result (Observation.value[x]) is missing.

.... id 0..1stringxml:id (or equivalent in JSON)
.... extension N0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... Slices for coding Σ1..1CodingCode defined by a terminology system
Slice: Unordered, Open by value:system
..... coding:All Slices Content/Rules for all slices
...... id 0..1stringUnique id for inter-element referencing
...... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
...... system Σ0..1uriIdentity of the terminology system
...... version Σ0..1stringVersion of the system - if relevant
...... code Σ0..1codeSymbol in syntax defined by the system
...... display Σ0..1stringRepresentation defined by the system
...... userSelected Σ0..1booleanIf this coding was chosen directly by the user
..... coding:fiphrDataAbsentReason ΣN1..1CodingCode defined by a terminology system
...... id 0..1stringUnique id for inter-element referencing
...... extension N0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
...... system Σ1..1uriIdentity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/data-absent-reason
...... version Σ0..1stringVersion of the system - if relevant
...... code Σ1..1codeSymbol in syntax defined by the system
...... display Σ1..1stringRepresentation defined by the system
...... userSelected Σ0..1booleanIf this coding was chosen directly by the user
.... text Σ0..1stringPlain text representation of the concept
... interpretation N0..1CodeableConceptHigh, low, normal, etc.
Binding: ObservationInterpretationCodes (extensible): Finnish PHR: Codes identifying interpretations of observations.


.... id 0..1stringUnique id for inter-element referencing
.... extension N0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... Slices for coding ΣN1..*CodingCode defined by a terminology system
Slice: Unordered, Open by value:system
..... coding:fiphrInterpretation ΣN1..1CodingCode defined by a terminology system
...... id 0..1stringUnique id for inter-element referencing
...... extension N0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
...... system Σ1..1uriIdentity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation
...... version Σ0..1stringVersion of the system - if relevant
...... code Σ1..1codeSymbol in syntax defined by the system
...... display Σ1..1stringRepresentation defined by the system
...... userSelected Σ0..1booleanIf this coding was chosen directly by the user
.... text Σ0..1stringPlain text representation of the concept
... note N0..*AnnotationComments about the observation
.... id 0..1stringUnique id for inter-element referencing
.... extension N0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... time Σ0..1dateTimeWhen the annotation was made
.... text Σ1..1markdownThe annotation - text content (as markdown)
... referenceRange CN0..*BackboneElementProvides guide for interpretation
.... id 0..1stringUnique id for inter-element referencing
.... extension N0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... modifierExtension ?!ΣN0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... low CN0..1SimpleQuantityLow Range, if relevant
.... high CN0..1SimpleQuantityHigh Range, if relevant
.... type N0..1CodeableConceptReference range qualifier
Binding: ObservationReferenceRangeMeaningCodes (preferred): Code for the meaning of a reference range.

.... appliesTo N0..*CodeableConceptReference range population
Binding: ObservationReferenceRangeAppliesToCodes (example): Codes identifying the population the reference range applies to.


.... age CN0..1RangeApplicable age range, if relevant
.... text 0..1stringText based reference range in an observation

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / Code
Observation.meta.securityextensibleAll Security Labels
Observation.meta.tagexampleCommonTags
Observation.languagerequiredCommonLanguages
Observation.identifier.userequiredIdentifierUse
Observation.identifier.typeextensibleIdentifier Type Codes
Observation.statusrequiredFixed Value: final
Observation.categorypreferredObservationCategoryCodes
Observation.category:VSCatrequiredObservationCategoryCodes
Observation.codeextensiblefiphr-vs-vitalsigns
Observation.subject.typeextensibleResourceType
Observation.subject.identifier.userequiredIdentifierUse
Observation.subject.identifier.typeextensibleIdentifier Type Codes
Observation.performer.typeextensibleResourceType
Observation.performer.identifier.userequiredIdentifierUse
Observation.performer.identifier.typeextensibleIdentifier Type Codes
Observation.value[x].extension:alternativeQuantity.value[x].comparatorrequiredQuantityComparator
Observation.value[x].comparatorrequiredQuantityComparator
Observation.dataAbsentReasonextensibleDataAbsentReason
Observation.interpretationextensibleObservationInterpretationCodes
Observation.note.author[x].typeextensibleResourceType
Observation.note.author[x].identifier.userequiredIdentifierUse
Observation.note.author[x].identifier.typeextensibleIdentifier Type Codes
Observation.device.typeextensibleResourceType
Observation.device.identifier.userequiredIdentifierUse
Observation.device.identifier.typeextensibleIdentifier Type Codes
Observation.referenceRange.typepreferredObservationReferenceRangeMeaningCodes
Observation.referenceRange.appliesToexampleObservationReferenceRangeAppliesToCodes
Observation.hasMember.typeextensibleResourceType
Observation.hasMember.identifier.userequiredIdentifierUse
Observation.hasMember.identifier.typeextensibleIdentifier Type Codes
Observation.component.codeextensiblefiphr-vs-vitalsigns
Observation.component.value[x]requiredVitalSignsUnits
Observation.component.dataAbsentReasonextensibleDataAbsentReason
Observation.component.interpretationextensibleObservationInterpretationCodes

Constraints

IdGradePath(s)DetailsRequirements
PHR-1errorObservation.code.codingWhen using code '15074-8' or '14743-9' or '14745-4' system http://loinc.org SHALL be used
: (where(code='15074-8').exists()) or (where(code='14743-9').exists()) or (where(code='14745-4').exists()) implies where(system="http://loinc.org").exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorObservation.meta.extension, Observation.extension, Observation.extension:creatingApplication, Observation.extension:hoursAfterMeal, Observation.modifierExtension, Observation.identifier.extension, Observation.category:VSCat.extension, Observation.category:VSCat.coding.extension, Observation.code.extension, Observation.code.coding:GlucoseInBlood.extension, Observation.code.coding:GlucoseInCapillaryBloodByGlucometer.extension, Observation.code.coding:GlucoseInBodyFluid.extension, Observation.subject.extension, Observation.subject.identifier.extension, Observation.performer.extension, Observation.performer.identifier.extension, Observation.value[x].extension, Observation.value[x].extension:alternativeQuantity, Observation.value[x].extension:alternativeQuantity.extension, Observation.value[x].extension:alternativeQuantity.value[x].extension, Observation.dataAbsentReason.extension, Observation.dataAbsentReason.coding.extension, Observation.dataAbsentReason.coding:fiphrDataAbsentReason.extension, Observation.interpretation.extension, Observation.interpretation.coding:fiphrInterpretation.extension, Observation.note.extension, Observation.note.author[x].extension, Observation.note.author[x].identifier.extension, Observation.device.extension, Observation.device.identifier.extension, Observation.referenceRange.extension, Observation.referenceRange.modifierExtension, Observation.hasMember.extension, Observation.hasMember.identifier.extension, Observation.component.extension, Observation.component.modifierExtension, Observation.component.code.extension, Observation.component.dataAbsentReason.extension, Observation.component.dataAbsentReason.coding:fiphrCoding.extension, Observation.component.interpretation.extension, Observation.component.interpretation.coding:fiphrCoding.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
obs-3errorObservation.referenceRangeMust have at least a low or a high or text
: low.exists() or high.exists() or text.exists()
per-1errorObservation.identifier.period, Observation.subject.identifier.period, Observation.performer.identifier.period, Observation.note.author[x].identifier.period, Observation.device.identifier.period, Observation.hasMember.identifier.periodIf present, start SHALL have a lower value than end
: start.hasValue().not() or end.hasValue().not() or (start <= end)
qty-3errorObservation.value[x], Observation.referenceRange.low, Observation.referenceRange.high, Observation.component.value[x]If a code for the unit is present, the system SHALL also be present
: code.empty() or system.exists()
ref-1errorObservation.subject, Observation.performerSHALL have a contained resource if a local reference is provided
: reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
rng-2errorObservation.referenceRange.ageIf present, low SHALL have a lower value than high
: low.empty() or high.empty() or (low <= high)
sqty-1errorObservation.referenceRange.low, Observation.referenceRange.highThe comparator is not used on a SimpleQuantity
: comparator.empty()
vs-1errorObservation.effective[x], Observation.effective[x]:effectiveDateTimeif Observation.effective[x] is dateTime and has a value then that value shall be precise to the day
: ($this as dateTime).toString().length() >= 8

This structure is derived from FIPHRsdVitalsigns

Summary

Mandatory: 1 element (14 nested mandatory elements)
Fixed Value: 11 elements
Prohibited: 1 element

Extensions

This structure refers to these extensions:

Slices

This structure defines the following Slices:

  • The element Observation.code.coding is sliced based on the values of value:code, value:system
  • The element Observation.effective[x] is sliced based on the value of type:$this

 

Other representations of profile: CSV, Excel, Schematron