...
Given an observation code
and corresponding system
from the ValueSet "http://ehealth.sundhed.dk/vs/observation-codes"
(see https://docs.ehealth.sundhed.dk/latest-released/ig/ValueSet-ehealth-observation-codes.html), how does one then determine how to specify an observed quantity or reference range? The following describes how to obtain values to set in Quantity.code
, .system
and .unit
.
To get values forQuantity.code
and Quantity.system
use the ConceptMap "http://ehealth.sundhed.dk/ConceptMap/conceptmap-obs-code-to-ucum"
(See https://docs.ehealth.sundhed.dk/latest-released/ig/ConceptMap-conceptmap-obs-code-to-ucum.html) as follows:
Call
$translate
on the givencode
andsystem
:GET <base-url>/fhir/ConceptMap/$translate?system=<system>&code=<code>
On match found, the values to use in
Quantity.code
andQuantity.system
are the matching concept’scode
andsystem
, respectively, where the source ConceptMap is “"http://ehealth.sundhed.dk/ConceptMap/conceptmap-obs-code-to-ucum
”"
(see example response below):
Info |
---|
Example request and response on $translate on Request:
Response: { "resourceType": "Parameters", "parameter": [ { "name": "result", "valueBoolean": true }, { "name": "message", "valueString": "Matches found!" }, { "name": "match", "part": [ { "name": "equivalence", "valueCode": "specializes" }, { "name": "concept", "valueCoding": { "system": "http://unitsofmeasure.org", "code": "kg", "display": "kilogram" } }, { "name": "source", "valueUri": "http://ehealth.sundhed.dk/ConceptMap/conceptmap-obs-code-to-ucum" } ] } ] } |
...
To get the corresponding and printable value for Quantity.unit
, use the ConceptMap "http://ehealth.sundhed.dk/ConceptMap/conceptmap-ucum-to-printsymbol"
(see https://docs.ehealth.sundhed.dk/latest-released/ig/ConceptMap-conceptmap-ucum-to-printsymbol.html) as follows:
Call
$translate
on the givensystem
andcode
determined in the response above:GET <base-url>/fhir/ConceptMap/$translate?target=http://ehealth.sundhed.dk/vs/ehealth-ucum-printsymbol-supplement&code=<code>&system=<system>
On match found, extract the matching concept (see example response below).
Call
$lookup
on the matching (CodeSystem)system
andcode
:GET <base-url>/fhir/CodeSystem/$lookup?system=http://ehealth.sundhed.dk/cs/ehealth-ucum-printsymbol-supplement&code=<code>
On match found, the value to use in
Quantity.unit
is the matching concept’sdesignation.value
where thedesignation.language=da
(see example response below). If there is no such designation, the printable value inQuantity.unit
shall be left empty.
...
Info |
---|
Example request and response on $translate on Request (Note that URL-encoding of percent as code is used):
Response: { "resourceType": "Parameters", "parameter": [ { "name": "result", "valueBoolean": true }, { "name": "message", "valueString": "Matches found!" }, { "name": "match", "part": [ { "name": "equivalence", "valueCode": "specializes" }, { "name": "concept", "valueCoding": { "system": "http://ehealth.sundhed.dk/cs/ehealth-ucum-printsymbol-supplement", "code": "%", "display": "percent" } }, { "name": "source", "valueUri": "http://ehealth.sundhed.dk/ConceptMap/conceptmap-ucum-to-printsymbol" } ] } ] } |
Info |
---|
Example request and response on $lookup on Request (Note that URL-encoding of percent as code is used):
Response: { "resourceType": "Parameters", "parameter": [ { "name": "name", "valueString": "UCUMPrintSymbolSupplement" }, { "name": "version", "valueString": "0.6.0" }, { "name": "display", "valueString": "percent" }, { "name": "abstract", "valueBoolean": false }, { "name": "designation", "part": [ { "name": "language", "valueCode": "da" }, { "name": "use" }, { "name": "value", "valueString": "%" } ] } ] } |
...
Given an observation code
and corresponding system
from the ValueSet "http://ehealth.sundhed.dk/vs/observation-codes"
(see https://docs.ehealth.sundhed.dk/latest-released/ig/ValueSet-ehealth-observation-codes.html), how does one determine whether an observed quantity or reference range shall be stated as an integer or decimal? While a particular device might produce a decimal with a given precision for a measure, it is up to the client/solution to convert to the form expected by the infrastructure. Whether integer or decimal, the value is set inQuantity.value
.
To determine whether to use integer or decimal, use the ConceptMap "http://ehealth.sundhed.dk/ConceptMap/conceptmap-obs-code-to-value-type"
(see https://docs.ehealth.sundhed.dk/latest-released/ig/ConceptMap-conceptmap-obs-code-to-value-type.html) as follows:
Call
$translate
on the givencode
andsystem
:GET <base-url>/fhir/ConceptMap/$translate?system=<system>&code=<code>&target=http://hl7.org/fhir/ValueSet/data-types
On match found, indication of whether to use integer or decimal are the matching concept’s
code
andsystem
, respectively, where the source ConceptMap is “"http://ehealth.sundhed.dk/ConceptMap/conceptmap-obs-code-to-value-type
”"
(see example response below).The codes
integer
anddecimal
insystem http://hl7.org/fhir/data-types
signify that the observed value or reference range shall be given as integer and decimal, respectively.
Info |
---|
Example request and response on $translate on Request:
Response: { |
...