Inera Core Implementation Guide
0.2.0 - ci-build
Sweden
Inera Core Implementation Guide - Local Development build (v0.2.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions
| Draft as of 2025-11-24 |
<ConceptMap xmlns="http://hl7.org/fhir">
<id value="ConceptMapGetObservationsTKBToObservation"/>
<text>
<status value="generated"/>
<div xmlns="http://www.w3.org/1999/xhtml"><p class="res-header-id"><b>Generated Narrative: ConceptMap ConceptMapGetObservationsTKBToObservation</b></p><a name="ConceptMapGetObservationsTKBToObservation"> </a><a name="hcConceptMapGetObservationsTKBToObservation"> </a><p>Mapping from https://rivta.se/domains/clinicalprocess/healthcond/actoutcome/GetObservationsResponder/1 to <a href="http://hl7.org/fhir/R4/observation.html">Observation</a></p><br/><p><b>Group 1 </b>Mapping from <code>https://rivta.se/domains/clinicalprocess/healthcond/actoutcome/GetObservationsResponder/1</code> to <a href="http://hl7.org/fhir/R4/bundle.html">Bundle</a></p><table class="grid"><tr><td><b>Source Code</b></td><td><b>Relationship</b></td><td><b>Target Code</b></td><td><b>Comment</b></td></tr><tr><td>patientId (Query parameter: Patient ID filter)</td><td colspan="2" style="background-color: #efefef">(not mapped)</td><td style="background-color: #efefef">NOT MAPPED. Used as search parameter: GET /Observation?subject=Patient/191212121212</td></tr><tr><td>careUnitHSAid (Query parameter: Filter by care unit HSA-ID)</td><td colspan="2" style="background-color: #efefef">(not mapped)</td><td style="background-color: #efefef">NOT MAPPED. Used as search parameter: GET /Observation?performer.identifier=https://hsaid.se|SE2321000016-A001</td></tr><tr><td>timePeriod (Query parameter: Time period filter (from-to))</td><td colspan="2" style="background-color: #efefef">(not mapped)</td><td style="background-color: #efefef">NOT MAPPED. Used as search parameter: GET /Observation?date=ge2025-01-01&date=le2025-12-31</td></tr><tr><td>observationType (Query parameter: Filter by observation type)</td><td colspan="2" style="background-color: #efefef">(not mapped)</td><td style="background-color: #efefef">NOT MAPPED. Used as search parameter: GET /Observation?code=http://loinc.org|85354-9</td></tr></table><hr/><p><b>Group 2 </b>Mapping from <code>https://rivta.se/domains/clinicalprocess/healthcond/actoutcome/GetObservationsResponder/1</code> to <a href="http://hl7.org/fhir/R4/observation.html">Observation</a></p><table class="grid"><tr><td><b>Source Code</b></td><td><b>Relationship</b></td><td><b>Target Code</b></td><td><b>Comment</b></td></tr><tr><td>observation.observationHeader.documentId (Observation ID (unique business identifier))</td><td><a href="http://hl7.org/fhir/R5/codesystem-concept-map-relationship.html#equivalent" title="equivalent">is equivalent to</a></td><td>identifier</td><td>Unique observation identifier within source system. System derived from sourceSystemHSAid.</td></tr><tr><td>observation.observationHeader.patientId (Patient ID (personnummer/samordningsnummer))</td><td><a href="http://hl7.org/fhir/R5/codesystem-concept-map-relationship.html#equivalent" title="equivalent">is equivalent to</a></td><td>subject</td><td>Reference to Patient with Swedish national identifier. OID 1.2.752.129.2.1.3.1 (personnummer), 1.2.752.129.2.1.3.3 (samordningsnummer)</td></tr><tr><td>observation.observationHeader.approvedForPatient (Approved for patient access (true/false))</td><td><a href="http://hl7.org/fhir/R5/codesystem-concept-map-relationship.html#equivalent" title="equivalent">is equivalent to</a></td><td>meta.security</td><td>If false, add security label NOPATIENT to restrict patient access (menprövningsflagga).</td></tr><tr><td>observation.observationBody.observationType (Observation type code (LOINC, NPU, SNOMED CT))</td><td><a href="http://hl7.org/fhir/R5/codesystem-concept-map-relationship.html#equivalent" title="equivalent">is equivalent to</a></td><td>code</td><td>Observation code. Preferred: LOINC (http://loinc.org), NPU (http://npu-terminology.org), SNOMED CT (http://snomed.info/sct). Examples: BP 85354-9, HR 8867-4, Temp 8310-5, Weight 29463-7, Height 8302-2</td></tr><tr><td>observation.observationBody.observationType.code (Observation code value)</td><td><a href="http://hl7.org/fhir/R5/codesystem-concept-map-relationship.html#equivalent" title="equivalent">is equivalent to</a></td><td>code.coding.code</td><td>Code value (e.g., LOINC 8867-4 for heart rate)</td></tr><tr><td>observation.observationBody.observationType.codeSystem (Code system OID)</td><td><a href="http://hl7.org/fhir/R5/codesystem-concept-map-relationship.html#relatedto" title="relatedto">is related to</a></td><td>code.coding.system</td><td>OID → FHIR URL. LOINC OID 2.16.840.1.113883.6.1 → http://loinc.org, NPU → http://npu-terminology.org, SNOMED CT → http://snomed.info/sct</td></tr><tr><td>observation.observationBody.observationType.displayName (Observation name)</td><td><a href="http://hl7.org/fhir/R5/codesystem-concept-map-relationship.html#equivalent" title="equivalent">is equivalent to</a></td><td>code.coding.display</td><td>Human-readable observation name. Also populate code.text.</td></tr><tr><td>observation.observationBody.observationCategory (Observation category)</td><td><a href="http://hl7.org/fhir/R5/codesystem-concept-map-relationship.html#equivalent" title="equivalent">is equivalent to</a></td><td>category</td><td>FHIR category: vital-signs, exam, laboratory, procedure, imaging, survey, social-history. System: http://terminology.hl7.org/CodeSystem/observation-category</td></tr><tr><td>observation.observationBody.observationStatus (Observation status)</td><td><a href="http://hl7.org/fhir/R5/codesystem-concept-map-relationship.html#wider" title="wider">maps to wider concept</a></td><td>status</td><td>FHIR ObservationStatus: registered|preliminary|final|amended|corrected|cancelled|entered-in-error|unknown. Swedish status codes may need mapping.</td></tr><tr><td>observation.observationBody.observationTime (Observation date/time)</td><td><a href="http://hl7.org/fhir/R5/codesystem-concept-map-relationship.html#equivalent" title="equivalent">is equivalent to</a></td><td>effectiveDateTime</td><td>When observation was made. Use effectiveDateTime for point in time, effectivePeriod for time range.</td></tr><tr><td>observation.observationBody.observationValue.quantity (Observation numeric value with unit)</td><td><a href="http://hl7.org/fhir/R5/codesystem-concept-map-relationship.html#equivalent" title="equivalent">is equivalent to</a></td><td>valueQuantity</td><td>Numeric value with UCUM unit. valueQuantity.value + valueQuantity.unit + valueQuantity.system (http://unitsofmeasure.org)</td></tr><tr><td>observation.observationBody.observationValue.quantity.value (Numeric value)</td><td><a href="http://hl7.org/fhir/R5/codesystem-concept-map-relationship.html#equivalent" title="equivalent">is equivalent to</a></td><td>valueQuantity.value</td><td>Numeric measurement value (e.g., 120 for systolic BP)</td></tr><tr><td>observation.observationBody.observationValue.quantity.unit (Unit of measure)</td><td><a href="http://hl7.org/fhir/R5/codesystem-concept-map-relationship.html#wider" title="wider">maps to wider concept</a></td><td>valueQuantity.unit</td><td>Unit with UCUM code. Examples: mm[Hg] (blood pressure), /min (heart rate), Cel (temperature), kg (weight), cm (height). System: http://unitsofmeasure.org</td></tr><tr><td>observation.observationBody.observationValue.codeableConcept (Coded observation value)</td><td><a href="http://hl7.org/fhir/R5/codesystem-concept-map-relationship.html#equivalent" title="equivalent">is equivalent to</a></td><td>valueCodeableConcept</td><td>When observation value is coded (e.g., interpretation codes, categorical values)</td></tr><tr><td>observation.observationBody.observationValue.string (Text observation value)</td><td><a href="http://hl7.org/fhir/R5/codesystem-concept-map-relationship.html#equivalent" title="equivalent">is equivalent to</a></td><td>valueString</td><td>Free text value when no structured value available</td></tr><tr><td>observation.observationBody.interpretation (Observation interpretation (high, low, normal))</td><td><a href="http://hl7.org/fhir/R5/codesystem-concept-map-relationship.html#equivalent" title="equivalent">is equivalent to</a></td><td>interpretation</td><td>Interpretation codes from http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation: H (high), L (low), N (normal), HH (critically high), LL (critically low)</td></tr><tr><td>observation.observationBody.referenceRange (Reference range (normal values))</td><td><a href="http://hl7.org/fhir/R5/codesystem-concept-map-relationship.html#equivalent" title="equivalent">is equivalent to</a></td><td>referenceRange</td><td>Normal range for observation. referenceRange.low and referenceRange.high with Quantity values</td></tr><tr><td>observation.observationBody.referenceRange.low (Reference range low value)</td><td><a href="http://hl7.org/fhir/R5/codesystem-concept-map-relationship.html#equivalent" title="equivalent">is equivalent to</a></td><td>referenceRange.low</td><td>Lower bound of normal range (e.g., 60 /min for heart rate)</td></tr><tr><td>observation.observationBody.referenceRange.high (Reference range high value)</td><td><a href="http://hl7.org/fhir/R5/codesystem-concept-map-relationship.html#equivalent" title="equivalent">is equivalent to</a></td><td>referenceRange.high</td><td>Upper bound of normal range (e.g., 100 /min for heart rate)</td></tr><tr><td>observation.observationBody.method (Observation method)</td><td><a href="http://hl7.org/fhir/R5/codesystem-concept-map-relationship.html#equivalent" title="equivalent">is equivalent to</a></td><td>method</td><td>Method used for observation (e.g., auscultation, oscillometric for BP)</td></tr><tr><td>observation.observationBody.bodySite (Body site (anatomical location))</td><td><a href="http://hl7.org/fhir/R5/codesystem-concept-map-relationship.html#equivalent" title="equivalent">is equivalent to</a></td><td>bodySite</td><td>Anatomical location. Use SNOMED CT body structure codes (e.g., 368209003 for right arm)</td></tr><tr><td>observation.observationHeader.careContactId (Care contact ID (encounter context))</td><td><a href="http://hl7.org/fhir/R5/codesystem-concept-map-relationship.html#equivalent" title="equivalent">is equivalent to</a></td><td>encounter</td><td>Reference to Encounter when observation made during care contact.</td></tr><tr><td>observation.observationBody.component (Observation components (for panels))</td><td><a href="http://hl7.org/fhir/R5/codesystem-concept-map-relationship.html#equivalent" title="equivalent">is equivalent to</a></td><td>component</td><td>For panel observations (e.g., blood pressure with systolic/diastolic components). Each component has code and value[x].</td></tr><tr><td>observation.observationBody.hasMember (Related observations (battery/panel))</td><td><a href="http://hl7.org/fhir/R5/codesystem-concept-map-relationship.html#equivalent" title="equivalent">is equivalent to</a></td><td>hasMember</td><td>References to related Observation resources in a panel/battery (e.g., vital signs panel)</td></tr><tr><td>observation.observationHeader.nullified (Observation nullified flag)</td><td><a href="http://hl7.org/fhir/R5/codesystem-concept-map-relationship.html#equivalent" title="equivalent">is equivalent to</a></td><td>status</td><td>If nullified=true, set status=entered-in-error. Store nullifiedReason in Provenance.</td></tr></table><hr/><p><b>Group 3 </b>Mapping from <code>https://rivta.se/domains/clinicalprocess/healthcond/actoutcome/GetObservationsResponder/1</code> to <a href="http://hl7.org/fhir/R4/provenance.html">Provenance</a></p><table class="grid"><tr><td><b>Source Code</b></td><td><b>Relationship</b></td><td><b>Target Code</b></td><td><b>Comment</b></td></tr><tr><td>observation.observationHeader.sourceSystemHSAid (Source system HSA-ID)</td><td><a href="http://hl7.org/fhir/R5/codesystem-concept-map-relationship.html#equivalent" title="equivalent">is equivalent to</a></td><td>entity.what</td><td>HSA-ID of source system. Also mapped to Observation.meta.source as https://hsaid.se/{HSA-ID}. Provenance.entity.role=source.</td></tr><tr><td>observation.observationHeader.accountableHealthcareProfessional.authorTime (Author time (registration timestamp))</td><td><a href="http://hl7.org/fhir/R5/codesystem-concept-map-relationship.html#equivalent" title="equivalent">is equivalent to</a></td><td>recorded</td><td>When observation was recorded. Also mapped to Observation.issued.</td></tr><tr><td>observation.observationHeader.accountableHealthcareProfessional.healthcareProfessionalHSAid (Healthcare professional HSA-ID)</td><td><a href="http://hl7.org/fhir/R5/codesystem-concept-map-relationship.html#equivalent" title="equivalent">is equivalent to</a></td><td>agent.who</td><td>Reference to Practitioner with HSA-ID. Provenance.agent.type=author. Also in Observation.performer.</td></tr><tr><td>observation.observationHeader.accountableHealthcareProfessional.healthcareProfessionalName (Healthcare professional name)</td><td><a href="http://hl7.org/fhir/R5/codesystem-concept-map-relationship.html#equivalent" title="equivalent">is equivalent to</a></td><td>agent.who.display</td><td>Display name. Full Practitioner resource should have structured name.</td></tr><tr><td>observation.observationHeader.accountableHealthcareProfessional.healthcareProfessionalRoleCode (Healthcare professional role/befattning)</td><td><a href="http://hl7.org/fhir/R5/codesystem-concept-map-relationship.html#relatedto" title="relatedto">is related to</a></td><td>agent.role</td><td>Professional role (befattning). Use KV Befattning (OID 1.2.752.129.2.2.1.4).</td></tr><tr><td>observation.observationHeader.accountableHealthcareProfessional.healthcareProfessionalOrgUnit (Organization unit)</td><td><a href="http://hl7.org/fhir/R5/codesystem-concept-map-relationship.html#equivalent" title="equivalent">is equivalent to</a></td><td>agent.onBehalfOf</td><td>Reference to Organization (organizational unit).</td></tr><tr><td>observation.observationHeader.accountableHealthcareProfessional.healthcareProfessionalCareUnitHSAid (Care unit HSA-ID (vårdenhet))</td><td><a href="http://hl7.org/fhir/R5/codesystem-concept-map-relationship.html#equivalent" title="equivalent">is equivalent to</a></td><td>entity.what</td><td>HSA-ID for care unit. Reference to Organization. Part of PDL hierarchy.</td></tr><tr><td>observation.observationHeader.accountableHealthcareProfessional.healthcareProfessionalCareGiverHSAid (Care provider HSA-ID (vårdgivare))</td><td><a href="http://hl7.org/fhir/R5/codesystem-concept-map-relationship.html#equivalent" title="equivalent">is equivalent to</a></td><td>entity.what</td><td>HSA-ID for care provider. Top-level organization in PDL hierarchy.</td></tr><tr><td>observation.observationHeader.legalAuthenticator.signatureTime (Signature timestamp)</td><td><a href="http://hl7.org/fhir/R5/codesystem-concept-map-relationship.html#equivalent" title="equivalent">is equivalent to</a></td><td>signature.when</td><td>When observation was digitally signed (if applicable).</td></tr><tr><td>observation.observationHeader.legalAuthenticator.legalAuthenticatorHSAid (Legal authenticator HSA-ID)</td><td><a href="http://hl7.org/fhir/R5/codesystem-concept-map-relationship.html#equivalent" title="equivalent">is equivalent to</a></td><td>signature.who</td><td>Reference to Practitioner who signed observation. Provenance.agent.type=legal.</td></tr><tr><td>observation.observationHeader.nullifiedReason (Reason for nullification)</td><td><a href="http://hl7.org/fhir/R5/codesystem-concept-map-relationship.html#relatedto" title="relatedto">is related to</a></td><td>reason</td><td>Why observation was nullified. Store in Provenance.reason when status=entered-in-error.</td></tr></table><hr/><p><b>Group 4 </b>Mapping from <code>https://rivta.se/domains/clinicalprocess/healthcond/actoutcome/GetObservationsResponder/1</code> to <a href="http://hl7.org/fhir/R4/bundle.html">Bundle</a></p><table class="grid"><tr><td><b>Source Code</b></td><td><b>Relationship</b></td><td><b>Target Code</b></td><td><b>Comment</b></td></tr><tr><td>observation.observationHeader.documentTitle (Document title)</td><td colspan="2" style="background-color: #efefef">(not mapped)</td><td style="background-color: #efefef">NOT MAPPED. Cardinality 0..0 for GetObservations.</td></tr><tr><td>observation.observationHeader.documentTime (Document time)</td><td colspan="2" style="background-color: #efefef">(not mapped)</td><td style="background-color: #efefef">NOT MAPPED. Cardinality 0..0 for GetObservations. Use authorTime or observationTime instead.</td></tr><tr><td>result.resultCode (Result code (OK, INFO, ERROR))</td><td colspan="2" style="background-color: #efefef">(not mapped)</td><td style="background-color: #efefef">NOT MAPPED to resources. HTTP status: OK→200, INFO→200 with warnings, ERROR→4xx/5xx.</td></tr><tr><td>result.errorCode (Error code)</td><td colspan="2" style="background-color: #efefef">(not mapped)</td><td style="background-color: #efefef">NOT MAPPED to resources. Use in OperationOutcome.issue.code when resultCode=ERROR.</td></tr><tr><td>result.logId (Log ID (UUID for troubleshooting))</td><td colspan="2" style="background-color: #efefef">(not mapped)</td><td style="background-color: #efefef">NOT MAPPED to resources. Use in OperationOutcome.issue.diagnostics or X-Request-Id header.</td></tr><tr><td>result.message (Result message)</td><td colspan="2" style="background-color: #efefef">(not mapped)</td><td style="background-color: #efefef">NOT MAPPED to resources. User-facing message in OperationOutcome.issue.diagnostics.</td></tr></table></div>
</text>
<url
value="https://inera.se/fhir/core/ConceptMap/getobservations-tkb-to-observation"/>
<version value="0.2.0"/>
<name value="ConceptMapGetObservationsTKBToObservation"/>
<title value="ConceptMap GetObservations TKB to FHIR Observation"/>
<status value="draft"/>
<experimental value="true"/>
<date value="2025-11-24"/>
<publisher value="Inera AB"/>
<contact>
<name value="Inera AB"/>
<telecom>
<system value="url"/>
<value value="https://www.inera.se"/>
</telecom>
<telecom>
<system value="email"/>
<value value="info@inera.se"/>
</telecom>
</contact>
<contact>
<name value="Inera AB"/>
<telecom>
<system value="url"/>
<value value="https://www.inera.se"/>
</telecom>
<telecom>
<system value="email"/>
<value value="info@inera.se"/>
</telecom>
</contact>
<description
value="Complete mapping from GetObservations TKB service to FHIR Observation and Provenance resources"/>
<jurisdiction>
<coding>
<system value="urn:iso:std:iso:3166"/>
<code value="SE"/>
<display value="Sweden"/>
</coding>
</jurisdiction>
<sourceUri
value="https://rivta.se/domains/clinicalprocess/healthcond/actoutcome/GetObservationsResponder/1"/>
<targetCanonical
value="http://hl7.org/fhir/StructureDefinition/Observation"/>
<group>
<source
value="https://rivta.se/domains/clinicalprocess/healthcond/actoutcome/GetObservationsResponder/1"/>
<target value="http://hl7.org/fhir/StructureDefinition/Bundle"/>
<element>
<code value="patientId"/>
<display value="Query parameter: Patient ID filter"/>
<target>
<equivalence value="unmatched"/>
<comment
value="NOT MAPPED. Used as search parameter: GET /Observation?subject=Patient/191212121212"/>
</target>
</element>
<element>
<code value="careUnitHSAid"/>
<display value="Query parameter: Filter by care unit HSA-ID"/>
<target>
<equivalence value="unmatched"/>
<comment
value="NOT MAPPED. Used as search parameter: GET /Observation?performer.identifier=https://hsaid.se|SE2321000016-A001"/>
</target>
</element>
<element>
<code value="timePeriod"/>
<display value="Query parameter: Time period filter (from-to)"/>
<target>
<equivalence value="unmatched"/>
<comment
value="NOT MAPPED. Used as search parameter: GET /Observation?date=ge2025-01-01&date=le2025-12-31"/>
</target>
</element>
<element>
<code value="observationType"/>
<display value="Query parameter: Filter by observation type"/>
<target>
<equivalence value="unmatched"/>
<comment
value="NOT MAPPED. Used as search parameter: GET /Observation?code=http://loinc.org|85354-9"/>
</target>
</element>
</group>
<group>
<source
value="https://rivta.se/domains/clinicalprocess/healthcond/actoutcome/GetObservationsResponder/1"/>
<target value="http://hl7.org/fhir/StructureDefinition/Observation"/>
<element>
<code value="observation.observationHeader.documentId"/>
<display value="Observation ID (unique business identifier)"/>
<target>
<code value="identifier"/>
<equivalence value="equivalent"/>
<comment
value="Unique observation identifier within source system. System derived from sourceSystemHSAid."/>
</target>
</element>
<element>
<code value="observation.observationHeader.patientId"/>
<display value="Patient ID (personnummer/samordningsnummer)"/>
<target>
<code value="subject"/>
<equivalence value="equivalent"/>
<comment
value="Reference to Patient with Swedish national identifier. OID 1.2.752.129.2.1.3.1 (personnummer), 1.2.752.129.2.1.3.3 (samordningsnummer)"/>
</target>
</element>
<element>
<code value="observation.observationHeader.approvedForPatient"/>
<display value="Approved for patient access (true/false)"/>
<target>
<code value="meta.security"/>
<equivalence value="equivalent"/>
<comment
value="If false, add security label NOPATIENT to restrict patient access (menprövningsflagga)."/>
</target>
</element>
<element>
<code value="observation.observationBody.observationType"/>
<display value="Observation type code (LOINC, NPU, SNOMED CT)"/>
<target>
<code value="code"/>
<equivalence value="equivalent"/>
<comment
value="Observation code. Preferred: LOINC (http://loinc.org), NPU (http://npu-terminology.org), SNOMED CT (http://snomed.info/sct). Examples: BP 85354-9, HR 8867-4, Temp 8310-5, Weight 29463-7, Height 8302-2"/>
</target>
</element>
<element>
<code value="observation.observationBody.observationType.code"/>
<display value="Observation code value"/>
<target>
<code value="code.coding.code"/>
<equivalence value="equivalent"/>
<comment value="Code value (e.g., LOINC 8867-4 for heart rate)"/>
</target>
</element>
<element>
<code value="observation.observationBody.observationType.codeSystem"/>
<display value="Code system OID"/>
<target>
<code value="code.coding.system"/>
<equivalence value="relatedto"/>
<comment
value="OID → FHIR URL. LOINC OID 2.16.840.1.113883.6.1 → http://loinc.org, NPU → http://npu-terminology.org, SNOMED CT → http://snomed.info/sct"/>
</target>
</element>
<element>
<code value="observation.observationBody.observationType.displayName"/>
<display value="Observation name"/>
<target>
<code value="code.coding.display"/>
<equivalence value="equivalent"/>
<comment
value="Human-readable observation name. Also populate code.text."/>
</target>
</element>
<element>
<code value="observation.observationBody.observationCategory"/>
<display value="Observation category"/>
<target>
<code value="category"/>
<equivalence value="equivalent"/>
<comment
value="FHIR category: vital-signs, exam, laboratory, procedure, imaging, survey, social-history. System: http://terminology.hl7.org/CodeSystem/observation-category"/>
</target>
</element>
<element>
<code value="observation.observationBody.observationStatus"/>
<display value="Observation status"/>
<target>
<code value="status"/>
<equivalence value="wider"/>
<comment
value="FHIR ObservationStatus: registered|preliminary|final|amended|corrected|cancelled|entered-in-error|unknown. Swedish status codes may need mapping."/>
</target>
</element>
<element>
<code value="observation.observationBody.observationTime"/>
<display value="Observation date/time"/>
<target>
<code value="effectiveDateTime"/>
<equivalence value="equivalent"/>
<comment
value="When observation was made. Use effectiveDateTime for point in time, effectivePeriod for time range."/>
</target>
</element>
<element>
<code value="observation.observationBody.observationValue.quantity"/>
<display value="Observation numeric value with unit"/>
<target>
<code value="valueQuantity"/>
<equivalence value="equivalent"/>
<comment
value="Numeric value with UCUM unit. valueQuantity.value + valueQuantity.unit + valueQuantity.system (http://unitsofmeasure.org)"/>
</target>
</element>
<element>
<code
value="observation.observationBody.observationValue.quantity.value"/>
<display value="Numeric value"/>
<target>
<code value="valueQuantity.value"/>
<equivalence value="equivalent"/>
<comment
value="Numeric measurement value (e.g., 120 for systolic BP)"/>
</target>
</element>
<element>
<code
value="observation.observationBody.observationValue.quantity.unit"/>
<display value="Unit of measure"/>
<target>
<code value="valueQuantity.unit"/>
<equivalence value="wider"/>
<comment
value="Unit with UCUM code. Examples: mm[Hg] (blood pressure), /min (heart rate), Cel (temperature), kg (weight), cm (height). System: http://unitsofmeasure.org"/>
</target>
</element>
<element>
<code
value="observation.observationBody.observationValue.codeableConcept"/>
<display value="Coded observation value"/>
<target>
<code value="valueCodeableConcept"/>
<equivalence value="equivalent"/>
<comment
value="When observation value is coded (e.g., interpretation codes, categorical values)"/>
</target>
</element>
<element>
<code value="observation.observationBody.observationValue.string"/>
<display value="Text observation value"/>
<target>
<code value="valueString"/>
<equivalence value="equivalent"/>
<comment value="Free text value when no structured value available"/>
</target>
</element>
<element>
<code value="observation.observationBody.interpretation"/>
<display value="Observation interpretation (high, low, normal)"/>
<target>
<code value="interpretation"/>
<equivalence value="equivalent"/>
<comment
value="Interpretation codes from http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation: H (high), L (low), N (normal), HH (critically high), LL (critically low)"/>
</target>
</element>
<element>
<code value="observation.observationBody.referenceRange"/>
<display value="Reference range (normal values)"/>
<target>
<code value="referenceRange"/>
<equivalence value="equivalent"/>
<comment
value="Normal range for observation. referenceRange.low and referenceRange.high with Quantity values"/>
</target>
</element>
<element>
<code value="observation.observationBody.referenceRange.low"/>
<display value="Reference range low value"/>
<target>
<code value="referenceRange.low"/>
<equivalence value="equivalent"/>
<comment
value="Lower bound of normal range (e.g., 60 /min for heart rate)"/>
</target>
</element>
<element>
<code value="observation.observationBody.referenceRange.high"/>
<display value="Reference range high value"/>
<target>
<code value="referenceRange.high"/>
<equivalence value="equivalent"/>
<comment
value="Upper bound of normal range (e.g., 100 /min for heart rate)"/>
</target>
</element>
<element>
<code value="observation.observationBody.method"/>
<display value="Observation method"/>
<target>
<code value="method"/>
<equivalence value="equivalent"/>
<comment
value="Method used for observation (e.g., auscultation, oscillometric for BP)"/>
</target>
</element>
<element>
<code value="observation.observationBody.bodySite"/>
<display value="Body site (anatomical location)"/>
<target>
<code value="bodySite"/>
<equivalence value="equivalent"/>
<comment
value="Anatomical location. Use SNOMED CT body structure codes (e.g., 368209003 for right arm)"/>
</target>
</element>
<element>
<code value="observation.observationHeader.careContactId"/>
<display value="Care contact ID (encounter context)"/>
<target>
<code value="encounter"/>
<equivalence value="equivalent"/>
<comment
value="Reference to Encounter when observation made during care contact."/>
</target>
</element>
<element>
<code value="observation.observationBody.component"/>
<display value="Observation components (for panels)"/>
<target>
<code value="component"/>
<equivalence value="equivalent"/>
<comment
value="For panel observations (e.g., blood pressure with systolic/diastolic components). Each component has code and value[x]."/>
</target>
</element>
<element>
<code value="observation.observationBody.hasMember"/>
<display value="Related observations (battery/panel)"/>
<target>
<code value="hasMember"/>
<equivalence value="equivalent"/>
<comment
value="References to related Observation resources in a panel/battery (e.g., vital signs panel)"/>
</target>
</element>
<element>
<code value="observation.observationHeader.nullified"/>
<display value="Observation nullified flag"/>
<target>
<code value="status"/>
<equivalence value="equivalent"/>
<comment
value="If nullified=true, set status=entered-in-error. Store nullifiedReason in Provenance."/>
</target>
</element>
</group>
<group>
<source
value="https://rivta.se/domains/clinicalprocess/healthcond/actoutcome/GetObservationsResponder/1"/>
<target value="http://hl7.org/fhir/StructureDefinition/Provenance"/>
<element>
<code value="observation.observationHeader.sourceSystemHSAid"/>
<display value="Source system HSA-ID"/>
<target>
<code value="entity.what"/>
<equivalence value="equivalent"/>
<comment
value="HSA-ID of source system. Also mapped to Observation.meta.source as https://hsaid.se/{HSA-ID}. Provenance.entity.role=source."/>
</target>
</element>
<element>
<code
value="observation.observationHeader.accountableHealthcareProfessional.authorTime"/>
<display value="Author time (registration timestamp)"/>
<target>
<code value="recorded"/>
<equivalence value="equivalent"/>
<comment
value="When observation was recorded. Also mapped to Observation.issued."/>
</target>
</element>
<element>
<code
value="observation.observationHeader.accountableHealthcareProfessional.healthcareProfessionalHSAid"/>
<display value="Healthcare professional HSA-ID"/>
<target>
<code value="agent.who"/>
<equivalence value="equivalent"/>
<comment
value="Reference to Practitioner with HSA-ID. Provenance.agent.type=author. Also in Observation.performer."/>
</target>
</element>
<element>
<code
value="observation.observationHeader.accountableHealthcareProfessional.healthcareProfessionalName"/>
<display value="Healthcare professional name"/>
<target>
<code value="agent.who.display"/>
<equivalence value="equivalent"/>
<comment
value="Display name. Full Practitioner resource should have structured name."/>
</target>
</element>
<element>
<code
value="observation.observationHeader.accountableHealthcareProfessional.healthcareProfessionalRoleCode"/>
<display value="Healthcare professional role/befattning"/>
<target>
<code value="agent.role"/>
<equivalence value="relatedto"/>
<comment
value="Professional role (befattning). Use KV Befattning (OID 1.2.752.129.2.2.1.4)."/>
</target>
</element>
<element>
<code
value="observation.observationHeader.accountableHealthcareProfessional.healthcareProfessionalOrgUnit"/>
<display value="Organization unit"/>
<target>
<code value="agent.onBehalfOf"/>
<equivalence value="equivalent"/>
<comment value="Reference to Organization (organizational unit)."/>
</target>
</element>
<element>
<code
value="observation.observationHeader.accountableHealthcareProfessional.healthcareProfessionalCareUnitHSAid"/>
<display value="Care unit HSA-ID (vårdenhet)"/>
<target>
<code value="entity.what"/>
<equivalence value="equivalent"/>
<comment
value="HSA-ID for care unit. Reference to Organization. Part of PDL hierarchy."/>
</target>
</element>
<element>
<code
value="observation.observationHeader.accountableHealthcareProfessional.healthcareProfessionalCareGiverHSAid"/>
<display value="Care provider HSA-ID (vårdgivare)"/>
<target>
<code value="entity.what"/>
<equivalence value="equivalent"/>
<comment
value="HSA-ID for care provider. Top-level organization in PDL hierarchy."/>
</target>
</element>
<element>
<code
value="observation.observationHeader.legalAuthenticator.signatureTime"/>
<display value="Signature timestamp"/>
<target>
<code value="signature.when"/>
<equivalence value="equivalent"/>
<comment
value="When observation was digitally signed (if applicable)."/>
</target>
</element>
<element>
<code
value="observation.observationHeader.legalAuthenticator.legalAuthenticatorHSAid"/>
<display value="Legal authenticator HSA-ID"/>
<target>
<code value="signature.who"/>
<equivalence value="equivalent"/>
<comment
value="Reference to Practitioner who signed observation. Provenance.agent.type=legal."/>
</target>
</element>
<element>
<code value="observation.observationHeader.nullifiedReason"/>
<display value="Reason for nullification"/>
<target>
<code value="reason"/>
<equivalence value="relatedto"/>
<comment
value="Why observation was nullified. Store in Provenance.reason when status=entered-in-error."/>
</target>
</element>
</group>
<group>
<source
value="https://rivta.se/domains/clinicalprocess/healthcond/actoutcome/GetObservationsResponder/1"/>
<target value="http://hl7.org/fhir/StructureDefinition/Bundle"/>
<element>
<code value="observation.observationHeader.documentTitle"/>
<display value="Document title"/>
<target>
<equivalence value="unmatched"/>
<comment value="NOT MAPPED. Cardinality 0..0 for GetObservations."/>
</target>
</element>
<element>
<code value="observation.observationHeader.documentTime"/>
<display value="Document time"/>
<target>
<equivalence value="unmatched"/>
<comment
value="NOT MAPPED. Cardinality 0..0 for GetObservations. Use authorTime or observationTime instead."/>
</target>
</element>
<element>
<code value="result.resultCode"/>
<display value="Result code (OK, INFO, ERROR)"/>
<target>
<equivalence value="unmatched"/>
<comment
value="NOT MAPPED to resources. HTTP status: OK→200, INFO→200 with warnings, ERROR→4xx/5xx."/>
</target>
</element>
<element>
<code value="result.errorCode"/>
<display value="Error code"/>
<target>
<equivalence value="unmatched"/>
<comment
value="NOT MAPPED to resources. Use in OperationOutcome.issue.code when resultCode=ERROR."/>
</target>
</element>
<element>
<code value="result.logId"/>
<display value="Log ID (UUID for troubleshooting)"/>
<target>
<equivalence value="unmatched"/>
<comment
value="NOT MAPPED to resources. Use in OperationOutcome.issue.diagnostics or X-Request-Id header."/>
</target>
</element>
<element>
<code value="result.message"/>
<display value="Result message"/>
<target>
<equivalence value="unmatched"/>
<comment
value="NOT MAPPED to resources. User-facing message in OperationOutcome.issue.diagnostics."/>
</target>
</element>
</group>
</ConceptMap>