Given an observation code
and corresponding system
from the ValueSet ehealth-observation-codes, how does one then determine how to specify an observed quantity or reference range? The following describes how to obtain values to set inQuantity.code
, .system
and .unit
.
To get values forQuantity.code
andQuantity.system
use the ConceptMap conceptmap-obs-code-to-ucum as follows:
Call $translate
on the given code
and system
:
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’s code
and system
, respectively, where the source ConceptMap is “http://ehealth.sundhed.dk/ConceptMap/conceptmap-obs-code-to-ucum” (see example response below):
Example request and response on $translate on conceptmap-obs-code-to-ucum 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 conceptmap-ucum-to-printsymbol as follows:
Call $translate
on the given system
and code
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
and code
:
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’s designation.value
where the designation.language=da
(see example response below). If there is no such designation, the printable value in Quantity.unit
shall be left empty.
The $lookup does not return designation on eHealth Infrastructure Release 4 and other releases prior to Release 5. |
Example request and response on $translate on conceptmap-ucum-to-printsymbol Request (Note that URL-encoding of percent as code is used): GET <base-url>/fhir/ConceptMap/$translate?target=http://ehealth.sundhed.dk/vs/ehealth-ucum-printsymbol-supplement&code=%25&system=http://unitsofmeasure.org 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" } ] } ] } |
Example request and response on $lookup on ehealth-ucum-printsymbol-supplement Request (Note that URL-encoding of percent as code is used): GET <base-url>/fhir/CodeSystem/$lookup?system=http://ehealth.sundhed.dk/cs/ehealth-ucum-printsymbol-supplement&code=%25 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 ehealth-observation-codes, 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 conceptmap-obs-code-to-value-type as follows:
Call $translate
on the given code
and system
:
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
and system
, respectively, where the source ConceptMap is “http://ehealth.sundhed.dk/ConceptMap/conceptmap-obs-code-to-value-type” (see example response below).
The codes integer
and decimal
in system http://hl7.org/fhir/data-types
signify that the observed value or reference range shall be given as integer and decimal, respectively.
Example request and response on $translate on conceptmap-obs-code-to-value-type Request:
Response: { |