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
This page describes how TKB service contract request parameters are implemented as FHIR search parameters, and lists the search parameters defined or used by this Implementation Guide.
Swedish TKB (Tjänstekontrakt Beskrivning) service contracts define input parameters for retrieving clinical information. In FHIR, these request parameters are implemented using RESTful search parameters.
When migrating from TKB services to FHIR APIs, the following principles apply:
patientId parameters map to FHIR patient or patient.identifier search parameterstimePeriod or datePeriod parameters map to date-based search parameters with prefixes (ge, le)careUnitId parameters map to organization or performer search parameterscode, category, or resource-specific search parametersclinical-status or status search parametersTKB services typically require three fields for patient identification:
patientId (or similar): The actual identifier valuepatientIdRoot: OID identifying the identifier systempatientIdExtension: The identifier value (redundant with patientId)TKB Example (GetActivities):
<patientid>191212121212</patientid>
<patientidroot>1.2.752.129.2.1.3.1</patientidroot>
<patientidextension>191212121212</patientidextension>
FHIR Equivalent:
GET [base]/CarePlan?patient.identifier=https://terminology.hl7.se/sid/se-personnummer|191212121212
Alternative using patient resource reference (if patient resource known):
GET [base]/CarePlan?patient=Patient/191212121212
Supported Identifier Systems:
https://terminology.hl7.se/sid/se-personnummer (OID: 1.2.752.129.2.1.3.1)https://terminology.hl7.se/sid/se-samordningsnummer (OID: 1.2.752.129.2.1.3.3)https://terminology.hl7.se/sid/se-hsa-personalid (OID: 1.2.752.129.2.1.4.1)https://terminology.hl7.se/sid/se-hsa-vardenhetsid (OID: 1.2.752.129.2.1.4.3)For complete identifier system reference, see Conformance.
TKB services often use date/time period parameters to limit results:
TKB Example (GetCareContacts):
<dateperiod>
<start>2024-01-01</start>
<end>2024-12-31</end>
</dateperiod>
FHIR Equivalent - Using date range prefixes:
GET [base]/Encounter?date=ge2024-01-01&date=le2024-12-31
Common Date Search Parameters by Resource:
Encounter: date (period of encounter)MedicationStatement: effective (when medication was/is taken)Condition: onset-date (when condition began)Observation: date (observation effective time)Procedure: date (procedure performed date)CarePlan: date (time period of care plan)Date Prefix Operators:
ge - Greater than or equal (start of period)le - Less than or equal (end of period)gt - Greater thanlt - Less thaneq - Equal (default if no prefix)TKB services may filter by care unit using HSA-ID:
TKB Example (GetActivities):
<careunitid>
<root>1.2.752.129.2.1.4.1</root>
<extension>SE2321000131-E000000000123</extension>
</careunitid>
FHIR Equivalent:
GET [base]/CarePlan?performer.identifier=https://terminology.hl7.se/sid/se-hsa-vardenhetsid|SE2321000131-E000000000123
Or using organization reference:
GET [base]/CarePlan?performer=Organization/SE2321000131-E000000000123
TKB Request Parameters:
patientId: Patient identifiercareUnitId: Optional care unit filteractivityStatus: Optional status filterFHIR Search Implementation:
GET [base]/CarePlan?patient.identifier=http://electronichealth.se/identifier/personnummer|191212121212
&performer.identifier=https://terminology.hl7.se/sid/se-hsa-vardenhetsid|SE2321000131-E000000000123
&status=active
&_include=CarePlan:performer
&_revinclude=Provenance:target
Search Parameters Used:
| Parameter | Type | Description |
|———–|——|————-|
| patient.identifier | token | Patient identifier (chained search) |
| performer.identifier | token | Care unit HSA-ID (chained search) |
| status | token | CarePlan status (active, completed, etc.) |
| _include | special | Include referenced performer organizations |
| _revinclude | special | Include provenance for audit trail |
TKB Request Parameters:
patientId: Patient identifiertimePeriod.start: Start of time periodtimePeriod.end: End of time periodmedicationId: Optional NPL medication codeFHIR Search Implementation:
GET [base]/MedicationStatement?patient.identifier=http://electronichealth.se/identifier/personnummer|191212121212
&effective=ge2024-01-01
&effective=le2024-12-31
&code=http://hl7.org/fhir/sid/npl|123456
&_include=MedicationStatement:medication
Search Parameters Used:
| Parameter | Type | Description |
|———–|——|————-|
| patient.identifier | token | Patient identifier |
| effective | date | When medication was/is taken (supports prefixes) |
| code | token | NPL or ATC code for medication |
| _include | special | Include referenced Medication resources |
TKB Request Parameters:
patientId: Patient identifierdatePeriod.start: Start datedatePeriod.end: End dateFHIR Search Implementation:
GET [base]/Encounter?patient.identifier=http://electronichealth.se/identifier/personnummer|191212121212
&date=ge2024-01-01
&date=le2024-12-31
&_include=Encounter:location
&_include=Encounter:participant
Search Parameters Used:
| Parameter | Type | Description |
|———–|——|————-|
| patient.identifier | token | Patient identifier |
| date | date | Encounter period (start/end) |
| _include | special | Include locations and participants |
TKB Request Parameters:
patientId: Patient identifiertimePeriod: Optional time filterdiagnosisCode: Optional ICD-10 codeFHIR Search Implementation:
GET [base]/Condition?patient.identifier=http://electronichealth.se/identifier/personnummer|191212121212
&onset-date=ge2024-01-01
&code=http://hl7.org/fhir/sid/icd-10|E11
&clinical-status=active
Search Parameters Used:
| Parameter | Type | Description |
|———–|——|————-|
| patient.identifier | token | Patient identifier |
| onset-date | date | When condition began |
| code | token | ICD-10-SE diagnosis code |
| clinical-status | token | active, inactive, resolved |
TKB Request Parameters:
patientId: Patient identifieralertLevel: Optional severity filterFHIR Search Implementation:
GET [base]/AllergyIntolerance?patient.identifier=http://electronichealth.se/identifier/personnummer|191212121212
&clinical-status=active
&criticality=high
Search Parameters Used:
| Parameter | Type | Description |
|———–|——|————-|
| patient.identifier | token | Patient identifier |
| clinical-status | token | active, inactive, resolved |
| criticality | token | low, high, unable-to-assess |
Combine multiple search parameters to replicate complex TKB filters:
GET [base]/Observation?patient.identifier=http://electronichealth.se/identifier/personnummer|191212121212
&category=vital-signs
&code=http://loinc.org|85354-9
&date=ge2024-01-01
&date=le2024-12-31
&_sort=-date
Use chained searches to filter by referenced resource properties:
GET [base]/CarePlan?patient.identifier=http://electronichealth.se/identifier/personnummer|191212121212
&performer.type=http://terminology.hl7.org/CodeSystem/organization-type|prov
Use _include and _revinclude to fetch related resources in a single request:
GET [base]/MedicationStatement?patient=Patient/191212121212
&_include=MedicationStatement:medication
&_revinclude=Provenance:target
&_revinclude=DocumentReference:related
Handle large result sets with pagination parameters:
GET [base]/Observation?patient=Patient/191212121212&_count=50&_offset=0
EHR systems SHOULD index the following commonly used search parameters for performance:
patient and patient.identifier (all clinical resources)date, effective, onset-date (temporal searches)code, category (code-based filtering)status, clinical-status (status filtering)identifier (Organization, Practitioner)When implementing TKB-equivalent searches:
patient=Patient/123patient.identifier=system|value_include and _revinclude operations_summary or _elements for large result sets
_summary=true returns abbreviated resources_elements=status,code,subject returns only specified fields_count to limit result sizeThe following search parameters are defined or used by this Implementation Guide: