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
| Official URL: https://inera.se/fhir/core/ConceptMap/getobservations-tkb-to-observation | Version: 0.2.0 | |||
| Draft as of 2025-11-24 | Computable Name: ConceptMapGetObservationsTKBToObservation | |||
Complete mapping from GetObservations TKB service to FHIR Observation and Provenance resources
Mapping from https://rivta.se/domains/clinicalprocess/healthcond/actoutcome/GetObservationsResponder/1 to Observation
Group 1 Mapping from https://rivta.se/domains/clinicalprocess/healthcond/actoutcome/GetObservationsResponder/1 to Bundle
| Source Code | Relationship | Target Code | Comment |
| patientId (Query parameter: Patient ID filter) | (not mapped) | NOT MAPPED. Used as search parameter: GET /Observation?subject=Patient/191212121212 | |
| careUnitHSAid (Query parameter: Filter by care unit HSA-ID) | (not mapped) | NOT MAPPED. Used as search parameter: GET /Observation?performer.identifier=https://hsaid.se|SE2321000016-A001 | |
| timePeriod (Query parameter: Time period filter (from-to)) | (not mapped) | NOT MAPPED. Used as search parameter: GET /Observation?date=ge2025-01-01&date=le2025-12-31 | |
| observationType (Query parameter: Filter by observation type) | (not mapped) | NOT MAPPED. Used as search parameter: GET /Observation?code=http://loinc.org|85354-9 | |
Group 2 Mapping from https://rivta.se/domains/clinicalprocess/healthcond/actoutcome/GetObservationsResponder/1 to Observation
| Source Code | Relationship | Target Code | Comment |
| observation.observationHeader.documentId (Observation ID (unique business identifier)) | is equivalent to | identifier | Unique observation identifier within source system. System derived from sourceSystemHSAid. |
| observation.observationHeader.patientId (Patient ID (personnummer/samordningsnummer)) | is equivalent to | subject | 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) |
| observation.observationHeader.approvedForPatient (Approved for patient access (true/false)) | is equivalent to | meta.security | If false, add security label NOPATIENT to restrict patient access (menprövningsflagga). |
| observation.observationBody.observationType (Observation type code (LOINC, NPU, SNOMED CT)) | is equivalent to | code | 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 |
| observation.observationBody.observationType.code (Observation code value) | is equivalent to | code.coding.code | Code value (e.g., LOINC 8867-4 for heart rate) |
| observation.observationBody.observationType.codeSystem (Code system OID) | is related to | code.coding.system | 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 |
| observation.observationBody.observationType.displayName (Observation name) | is equivalent to | code.coding.display | Human-readable observation name. Also populate code.text. |
| observation.observationBody.observationCategory (Observation category) | is equivalent to | category | FHIR category: vital-signs, exam, laboratory, procedure, imaging, survey, social-history. System: http://terminology.hl7.org/CodeSystem/observation-category |
| observation.observationBody.observationStatus (Observation status) | maps to wider concept | status | FHIR ObservationStatus: registered|preliminary|final|amended|corrected|cancelled|entered-in-error|unknown. Swedish status codes may need mapping. |
| observation.observationBody.observationTime (Observation date/time) | is equivalent to | effectiveDateTime | When observation was made. Use effectiveDateTime for point in time, effectivePeriod for time range. |
| observation.observationBody.observationValue.quantity (Observation numeric value with unit) | is equivalent to | valueQuantity | Numeric value with UCUM unit. valueQuantity.value + valueQuantity.unit + valueQuantity.system (http://unitsofmeasure.org) |
| observation.observationBody.observationValue.quantity.value (Numeric value) | is equivalent to | valueQuantity.value | Numeric measurement value (e.g., 120 for systolic BP) |
| observation.observationBody.observationValue.quantity.unit (Unit of measure) | maps to wider concept | valueQuantity.unit | Unit with UCUM code. Examples: mm[Hg] (blood pressure), /min (heart rate), Cel (temperature), kg (weight), cm (height). System: http://unitsofmeasure.org |
| observation.observationBody.observationValue.codeableConcept (Coded observation value) | is equivalent to | valueCodeableConcept | When observation value is coded (e.g., interpretation codes, categorical values) |
| observation.observationBody.observationValue.string (Text observation value) | is equivalent to | valueString | Free text value when no structured value available |
| observation.observationBody.interpretation (Observation interpretation (high, low, normal)) | is equivalent to | interpretation | Interpretation codes from http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation: H (high), L (low), N (normal), HH (critically high), LL (critically low) |
| observation.observationBody.referenceRange (Reference range (normal values)) | is equivalent to | referenceRange | Normal range for observation. referenceRange.low and referenceRange.high with Quantity values |
| observation.observationBody.referenceRange.low (Reference range low value) | is equivalent to | referenceRange.low | Lower bound of normal range (e.g., 60 /min for heart rate) |
| observation.observationBody.referenceRange.high (Reference range high value) | is equivalent to | referenceRange.high | Upper bound of normal range (e.g., 100 /min for heart rate) |
| observation.observationBody.method (Observation method) | is equivalent to | method | Method used for observation (e.g., auscultation, oscillometric for BP) |
| observation.observationBody.bodySite (Body site (anatomical location)) | is equivalent to | bodySite | Anatomical location. Use SNOMED CT body structure codes (e.g., 368209003 for right arm) |
| observation.observationHeader.careContactId (Care contact ID (encounter context)) | is equivalent to | encounter | Reference to Encounter when observation made during care contact. |
| observation.observationBody.component (Observation components (for panels)) | is equivalent to | component | For panel observations (e.g., blood pressure with systolic/diastolic components). Each component has code and value[x]. |
| observation.observationBody.hasMember (Related observations (battery/panel)) | is equivalent to | hasMember | References to related Observation resources in a panel/battery (e.g., vital signs panel) |
| observation.observationHeader.nullified (Observation nullified flag) | is equivalent to | status | If nullified=true, set status=entered-in-error. Store nullifiedReason in Provenance. |
Group 3 Mapping from https://rivta.se/domains/clinicalprocess/healthcond/actoutcome/GetObservationsResponder/1 to Provenance
| Source Code | Relationship | Target Code | Comment |
| observation.observationHeader.sourceSystemHSAid (Source system HSA-ID) | is equivalent to | entity.what | HSA-ID of source system. Also mapped to Observation.meta.source as https://hsaid.se/{HSA-ID}. Provenance.entity.role=source. |
| observation.observationHeader.accountableHealthcareProfessional.authorTime (Author time (registration timestamp)) | is equivalent to | recorded | When observation was recorded. Also mapped to Observation.issued. |
| observation.observationHeader.accountableHealthcareProfessional.healthcareProfessionalHSAid (Healthcare professional HSA-ID) | is equivalent to | agent.who | Reference to Practitioner with HSA-ID. Provenance.agent.type=author. Also in Observation.performer. |
| observation.observationHeader.accountableHealthcareProfessional.healthcareProfessionalName (Healthcare professional name) | is equivalent to | agent.who.display | Display name. Full Practitioner resource should have structured name. |
| observation.observationHeader.accountableHealthcareProfessional.healthcareProfessionalRoleCode (Healthcare professional role/befattning) | is related to | agent.role | Professional role (befattning). Use KV Befattning (OID 1.2.752.129.2.2.1.4). |
| observation.observationHeader.accountableHealthcareProfessional.healthcareProfessionalOrgUnit (Organization unit) | is equivalent to | agent.onBehalfOf | Reference to Organization (organizational unit). |
| observation.observationHeader.accountableHealthcareProfessional.healthcareProfessionalCareUnitHSAid (Care unit HSA-ID (vårdenhet)) | is equivalent to | entity.what | HSA-ID for care unit. Reference to Organization. Part of PDL hierarchy. |
| observation.observationHeader.accountableHealthcareProfessional.healthcareProfessionalCareGiverHSAid (Care provider HSA-ID (vårdgivare)) | is equivalent to | entity.what | HSA-ID for care provider. Top-level organization in PDL hierarchy. |
| observation.observationHeader.legalAuthenticator.signatureTime (Signature timestamp) | is equivalent to | signature.when | When observation was digitally signed (if applicable). |
| observation.observationHeader.legalAuthenticator.legalAuthenticatorHSAid (Legal authenticator HSA-ID) | is equivalent to | signature.who | Reference to Practitioner who signed observation. Provenance.agent.type=legal. |
| observation.observationHeader.nullifiedReason (Reason for nullification) | is related to | reason | Why observation was nullified. Store in Provenance.reason when status=entered-in-error. |
Group 4 Mapping from https://rivta.se/domains/clinicalprocess/healthcond/actoutcome/GetObservationsResponder/1 to Bundle
| Source Code | Relationship | Target Code | Comment |
| observation.observationHeader.documentTitle (Document title) | (not mapped) | NOT MAPPED. Cardinality 0..0 for GetObservations. | |
| observation.observationHeader.documentTime (Document time) | (not mapped) | NOT MAPPED. Cardinality 0..0 for GetObservations. Use authorTime or observationTime instead. | |
| result.resultCode (Result code (OK, INFO, ERROR)) | (not mapped) | NOT MAPPED to resources. HTTP status: OK→200, INFO→200 with warnings, ERROR→4xx/5xx. | |
| result.errorCode (Error code) | (not mapped) | NOT MAPPED to resources. Use in OperationOutcome.issue.code when resultCode=ERROR. | |
| result.logId (Log ID (UUID for troubleshooting)) | (not mapped) | NOT MAPPED to resources. Use in OperationOutcome.issue.diagnostics or X-Request-Id header. | |
| result.message (Result message) | (not mapped) | NOT MAPPED to resources. User-facing message in OperationOutcome.issue.diagnostics. | |