Hantera hälsorelaterade tillstånd, basuppgifter clinicalprocess:healthcond:basic
0.1.0 - CI Build Sweden

Hantera hälsorelaterade tillstånd, basuppgifter clinicalprocess:healthcond:basic - Local Development build (v0.1.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

Tj??nstekontrakt

Tjänstekontrakt

GetObservations

Detta tjänstekontrakt returnerar strukturerade observationer för en patient. Den praktiska tillämpningen av detta kontrakt beskrivs i särskilda tilläggsbeskrivningar i form av interaktionsöverenskommelser.

En typ av observation kan exempelvis vara ett kliniskt fynd eller en huvuddiagnos. Värdeattributet innehåller den faktiska observationen, t.ex. ”ankylos på tand” kodat med en Snomed CT-kod. Om observationen består av något som är uppmätt så beskrivs vad som uppmätts i attributet Observation.type/typ (exempelvis diastoliskt blodtryck) och resultatet av mätningen i Observation.value/värde (exempelvis 90 mmHg).

Meddelandemodell från stycke 5.1 V-MIM - Observationer motsvarar svarsmeddelandet för detta tjänstekontrakt. Kopplingen mellan V-MIM enligt NI 2015:1 och de tekniska engelska namnen visas i tabellen i samma avsnitt.

Version

1.1

Fältregler

Nedanstående tabell beskriver varje element i begäran och svar. Referens till ytterligare regler för enskilda element anges i kolumnen ”Namn”. Dessa regler beskrivs mer i detalj i kapitlet ”Övriga regler”.

Begäran

| Namn | Typ | Beskrivning | Kardinalitet | | — | — | — | — | | patientId | IIType | Begränsar sökningen till angiven personidentifierare för en patient. Tjänsteproducenten ska i svaret leverera alla uppgifter kopplad till patienten, dvs. även uppgifter som har registrerats på andra, till individen, kopplade personidentifierare. Regel 1.1 | 1 | | patientId.root | String | Sätts till OID för typ av personidentifierare. För personnummer ska Skatteverkets OID för personnummer (1.2.752.129.2.1.3.1) användas. För samordningsnummer skall Skatteverkets OID för samordningsnummer (1.2.752.129.2.1.3.3) användas. För andra typer av personidentifierare sätts root till aktuell OID. | 1 | | patientId.extension | String | Sätts till patientens identifierare. Anges med 12 tecken utan avskiljare. | 1 | | time | TimePeriodType | Begränsar sökningen till det angivna intervallet. Om tidsattributet Observation.Time i svaret är en tidpunkt innebär begränsningen att endast poster returneras där Observation.Time i svaret ligger inom sökintervallets start- och sluttidpunkt. Om tidsattributet Observation.Time i svaret är ett intervall innebär begränsningen att endast poster returneras där tidsintervallet som anges i attributet Observation.Time i svaret, överlappar med det angivna sökintervallet, dvs. det bildade intervallets starttidpunkt ligger inom sökintervallets start- och sluttidpunkt det bildade intervallets sluttidpunkt ligger inom sökintervallets start- och sluttidpunkt det bildade intervallets starttidpunkt ligger före sökintervallets starttidpunkt och sluttidpunkt ligger efter sökintervallets sluttidpunkt | 0..1 | | time.start | TimeStampType | Startdatum. Format ÅÅÅÅMMDDttmmss. | 0..1 | | time.end | TimeStampType | Slutdatum. Format ÅÅÅÅMMDDttmmss. | 0..1 | | observationType | CVType | Begränsning av sökning avseende observationen till en viss typ av värde som man vill titta närmare på, t.ex. kliniskt fynd eller diagnoser. | 0..* | | observationType.code | String | Kod för observationstyp | 1 | | observationType.codeSystem | String | Kodsystem för angiven kod för observationstyp. | 1 | | observationType.codeSystemName | String | Ska ignoreras i begäran och ej skickas. | 0..0 | | observationType.codeSystemVersion | String | Ska ignoreras i begäran och ej skickas. | 0..0 | | observationType.displayName | String | Ska ignoreras i begäran och ej skickas. | 0..0 | | observationId | IIType | Ett unikt värde för själva observationen som också refererar till vilket källsystem informationen kommer ifrån. Motsvarar observation/id i svaret. | 0..* | | observationId.root | String | Källsystemets HSA-id. | 1 | | observationId.extension | String | Det i källsystemet unika identiteten för observationen | 1 | | sourceSystemHSAId | HSAIdType | Begränsar sökningen till aktivitet som är skapad i det angivna källsystemet. Tjänsteproducenten förväntas enbart returnera poster som tillhör efterfrågat källsystem. Motsvarar observationGroup/sourceSystem i svaret. | 0..1 | | careGiverId | IIType | Används när man vill söka hos en specifik vårdgivare. | 0..1 | | careGiverId.root | String | Root sätts till OID för HSA-id: 1.2.752.129.2.1.4.1 | 1 | | careGiverId.extension | String | Extension sätts till HSA-id för den vårdgivaren från vilken observationer skall returneras från. | 1 | | careUnitId | IIType | Begränsning av sökning mha HSAid för (PDL) vårdenhet som har ansvar för dokumentationen av obdervationen/observationerna. | 0..1 | | careUnitId.root | String | Root sätts till OID för HSA-id: 1.2.752.129.2.1.4.1 | 1 | | careUnitId.extension | String | Extension sätts till HSA-id för PDL-vårdenheten. | 1 | | interactionAgreementId | UUIDType | Detta attribut används inte. Ange UUID 2866a7c4-9c60-433f-9035-a4d779ffe7a1 | 1..1 | | relation | RelationFilterType | Endast de poster med relationer som matchar villkoren i denna lista skall returneras. Om listan är tom filtreras inte observationer på deras relationer. | 0..* | | relation.typeCode | CVType | Filtrera på sambandstyp | 0..1 | | relation.typeCode.code | String | Kod för sambandstyp | 0..1 | | relation.typeCode.codeSystem | String | Kodsystem för sambandstyp | 0..1 | | relation.typeCode.codeSystemName | String | Ska ignoreras i begäran och ej skickas. | 0..0 | | relation.typeCode.codeSystemVersion | String | Versionsnummer för använt kodsystem. | 0..0 | | relation.typeCode.displayname | String | Ska ignoreras i begäran och ej skickas. | 0..0 | | relation.id | IIType | Filtrera poster på den identitet som anges i sambandet/relationen. Detta ger exempelvis möjlighet att söka ut alla observationer som har en relation till en viss aktivitet. | 0..1 | | relation.id.root | String | Id-root från den Uppgift i patientjournal som sambandet pekar ut. Detta är den vårdgivares HSA-id som är ansvarig för informationen. | 0..1 | | relation.id.extension | String | Id-extension från den uppgift i patientjournal som sambandet pekar ut. Detta ska vara ett id som är unikt inom vårdgivaren oavsett vilket källsystem informationen lagras inom. | 0..1 | | relation. referredInformationType | String | Den typ av uppgift i patientjournal som sambandet pekar ut. Detta är en kod från Categorization i engagemangsindexposten. I denna version av tjänstekontraktet är följande typer möjliga: chb-o (observation) caa-a (aktivitet) | 1..1 |

Svar: observationGroup

Namn Typ Beskrivning Kardinalitet
observationGroup ObservationGroupType Grupp av observationer som delar samma patient, utförare (m. tillhörande organisatorisk knytning), signerare, ytterligare deltagare, källsystem, vårdprocess-id, utrustning, samt plats. Denna nivå är framförallt till för att kunna begränsa mängden redundant data i överföringen i de fall då flera observationer gjorts med samma medverkande (exempelvis mätning av systoliskt och diastoliskt blodtryck). Denna klass är en teknisk optimering som inte speglas i NI 2015:1. 0..*
patient PatientType Den patient som observationsgruppen avser. 1..1
performerRole PerformerRoleType Den som utfört observationerna inom gruppen. 1..1
legalAuthenticator LegalAuthenticatorType Den som signerat observationerna inom gruppen. 0..1
additionalParticipant AdditionalParticipantType Övriga deltagare relaterat till observationerna inom gruppen. 0..*
sourceSystem SourceSystemType Källsystem som observationsgruppen lagras i. 1..1
observation ObservationType De observationer som ligger inom denna grupp av observationer. 1..*

Svarsdel: observationGroup/patient

Klassen PatientType är en kompakt och specifik representation av den patient som observationen gäller.

observationGroup/ patient PatientType    
id IIType 1 1
id.root String 1 1
id.extension String 1 1
name String 0..1 0..1
dateOfBirth DateTime 1 1
gender CVType 0..1 0..1
gender.code String 1 1
gender.codeSystem String 1 1
gender.codeSystemName String 0..1 0..1
gender.codeSystemVersion String 0..1 0..1
gender.displayName String 0..1 0..1

Svarsdel: observationGroup/performerRole

observationGroup/ performerRole PerformerRoleType    
id IIType 0..1 0..1
id.root String 1 1
id.extension String 1 1
code CVType 1 1
code.code String 1 1
code.codeSystem String 1 1
code.codeSystemName String 0..1 0..1
code.codeSystemVersion String 0..1 0..1
code.displayName String 0..1 0..1
person PersonType 0..1 0..1
careUnit CareUnitType 0..1 0..1

Svarsdel: observationGroup/legalAuthenticator

Klassen LegalAuthenticator är en kompakt och specifik version av AdditionalPartipication.

LegalAuthenticator är indirekt en ”Professionell aktör” med deltagandetyp signerare enligt V-MIM i de fall då informationen signerats.

observationGroup/ legalAuthenticator LegalAuthenticatorType    
id IIType 0..1 0..1
id.root String 1 1
id.extension String 1 1
time PartialTimeStampType 1 1
name String 0..1 0..1

Svarsdel: observationGroup/additionalParticipant

observationGroup/ additionalParticipant AdditionalParticipantType    
id IIType 0..1 0..1
id.root String 1..1 1..1
id.extension String 1..1 1..1
type CVType 1..1 1..1
type.code String 1..1 1..1
type.codeSystem String 1..1 1..1
type.codeSystemName String 0..0 0..0
type.codeSystemVersion String 0..0 0..0
type.displayName String 0..0 0..0
role CVType 1..1 1..1
role.code String 1..1 1..1
role.codeSystem String 1..1 1..1
role.codeSystemName String 0..0 0..0
role.codeSystemVersion String 0..0 0..0
role.displayName String 0..0 0..0
time TimePeriodType 0..1 0..1
Endast en av nedanstående Endast en av nedanstående Endast en av nedanstående Endast en av nedanstående
person PersonType 0..1 0..1
organisation OrganisationType 0..1 0..1
device DeviceType 0..1 0..1
location LocationType 0..1 0..1

Svarsdel: observationGroup/sourceSystem

observationGroup/ sourceSystem SourceSystemType    
id IIType 1 1
id.root String 1 1
id.extension String 1 1

Svarsdel: observationGroup/additionalParticipant/device

observationGroup/ additionalParticipant/ device DeviceType    
id IIType 0..1 0..1
id.root String 1 1
id.extension String 1 1
type CVType 0..1 0..1
type .code String 1 1
type.codeSystem String 1 1
type.codeSystemName String 0..1 0..1
type.codeSystemVersion String 0..1 0..1
type.displayName String 0..1 0..1
model SCType 0..1 0..1
model.code CVType 0..1 0..1
model.code.code String 1..1 1..1
model.code.codeSystem String 1..1 1..1
model.code.codeSystemVersion String 0..0 0..0
model.code.displayName String 0..1 0..1
model.value String 0..1 0..1

Svarsdel: observationGroup/additionalParticipant/location

Klassen Location är en sammanslagning av typen roll och plats enligt V-MIM.

observationGroup/ additionalParticipant/ location LocationType    
id IIType 0..1 0..1
id.root String 1 1
id.extension String 1 1
name String 1 1
address AddressType 0..* 0..*
electronicAddress TelType 0..* 0..*

Svarsdel: observationGroup/observation

observationGroup/ observation ObservationType    
id IIType 1..1 1..1
id.root String 1 1
id.extension String 1 1
type CVType 1 1
type.code String 1 1
type.codeSystem String 1 1
type.codeSystemName String 0..1 0..1
type.codeSystemVersion String 0..1 0..1
type.displayName String 0..1 0..1
status CVType 0..0  
Denna version av specifikation tillåter endast faktiskt utförda observationer. 0..0    
Denna version av specifikation tillåter endast faktiskt utförda observationer.      
status.code String 1 1
status.codeSystem String 1 1
status.codeSystemName String 0..1 0..1
status.displayName String 0..1 0..1
targetSite CVType 0..1 0..1
targetSite.code String 1 1
targetSite.codeSystem String 1 1
targetSite.codeSystemName String 0..1 0..1
targetSite.codeSystemVersion String 0..1 0..1
targetSite.displayName String 0..1 0..1
time PartialTimePeriodType 1 1
time.start TimeStampType 0..1 0..1
time.end TimeStampType 0..1 0..1
method CVType 0..1 0..1
method.code String 1 1
method.codeSystem String 1 1
method.codeSystemName String 0..1 0..1
method.codeSystemVersion String 0..1 0..1
method.displayName String 0..1 0..1
value ValueANYType 1..1 1..1
valueNegation Boolean 1..1 1..1
description String 0..1 0..1
approvedForPatient Boolean 1 1
registrationTime TimeStampType 0..1 0..1
relation RelationType 0..* 0..*

Svarsdel: observationGroup/observation/value

| observationGroup/ observation/ value | ValueAnyType | Observations utfall/värde | | | — | — | — | — | | En och endast en av nedanstående huvudtyper | En och endast en av nedanstående huvudtyper | En och endast en av nedanstående huvudtyper | En och endast en av nedanstående huvudtyper | | Kodade värden | Kodade värden | Kodade värden | Kodade värden | | cv | CVType | Här anges det som observerats som ett kodat värde. Kan exempelvis vara en diagnoskod enligt ICD-10 eller ett kliniskt fynd enligt Snomed CT. | 0..1 | | cv.code | string | Kod för värdetyp. | 1..1 | | cv.codeSystem | string | Kodsystem för angiven kod för värdestyp. | 1..1 | | cv.codeSystemName | string | Namn för kodsystem. | 0..1 | | cv.codeSystemVersion | string | Versionsnummer för använt kodsystem. | 0..1 | | cv.displayName | string | Textuell beskrivning av det som koden anger. | 0..1 | | Mätvärden | Mätvärden | Mätvärden | Mätvärden | | pq | PQType | Här anges det mätvärde som uppmätts. Kan exempelvis vara 187 cm. | 0..1 | | pq.value | decimal | Den numeriska delen av värdet (187). | 1..1 | | pq.unit | string | Enhet enligt UCUM. Om värdet av observationen är enhetslöst (exempelvis ett värde på en skala) ska unit sättas till 1. Exempel för värdet 2 för hudfärg på Apgarskalan: pq.value=2 pq.unit=1 | 1..1 | | Mätvärdesintervall | Mätvärdesintervall | Mätvärdesintervall | Mätvärdesintervall | | ivl_pq | PQIntervalType | Här anges det mätvärdesintervall som uppmätts. Kan exempelvis vara 5–10 st. | 0..1 | | ivl_pq.low | decimal | Intervallets lägsta mätetal mätt i enheten som anges av ”unit”. Minst ett av fälten low och high måste anges. | 0..1 | | ivl_pq.lowClosed | boolean | Angivelse av om värdet är en del av intervallet eller ej. Exempel: lowClosed = true och low = 5 motsvarar intervallet ≥ 5 lowClosed = false och low = 5 motsvarar intervallet > 5 | 0..1 | | ivl_pq.high | decimal | Intervallets högsta mätetal mätt i enheten som anges av ”unit”. Minst ett av fälten low och high måste anges. | 0..1 | | ivl_pq.highClosed | boolean | Angivelse av om värdet är en del av intervallet eller ej. Exempel: highClosed = true och high = 5 motsvarar intervallet ≤ 5 highClosed = false och high = 5 motsvarar intervallet <5 | 0..1 | | ivl_pq.unit | string | Enhet enligt UCUM. Om värdet av observationen är enhetslöst (exempelvis ett värde på en skala) ska unit sättas till 1. Exempel för värdet 2 för hudfärg på Apgarskalan: pq.value=2 pq.unit=1 | 1..1 | | Tidpunkt | Tidpunkt | Tidpunkt | Tidpunkt | | ts | PartialTimeStampType | Tidsstämpel på formatet YYYYMMDDhhmmss där precisionen kan minskas ner till endast årtal | 0..1 | | Tidsintervall | Tidsintervall | Tidsintervall | Tidsintervall | | ivl_ts | PartialTimePeriodType | Tidsintervall. Minst en av start och end tiderna skall anges på formatet YYYYMMDDhhmmss där precisionen kan minskas ner till endast årtal. | 0..1 |

Svarsdel: observationGroup/additionalParticipant/location/address

observationGroup/ additionalParticipant/ location/ address/ AddressType    
use PostalAddressUseEnum 0..1 0..1
part AddressPartType 1..* 1..*

Svarsdel: observationGroup/additionalParticipant/location/address/part

observationGroup/ additionalParticipant/ location/ address/ part AddressPartType    
value String 1..1 1..1
type AddressPartTypeEnum 0..1 0..1

Svarsdel: observationGroup/observation/relation

observationGroup/ observation/ relation RelationType    
code CVType 1 1
code.code String 1 1
code.codeSystem String 1 1
code.codeSystemName String 0..1 0..1
code.codeSystemVersion String 0..1 0..1
referredInformation ReferredInformationType 1..1 1..1

Svarsdel: observationGroup/observation/relation/referredInformation

observationGroup/ observation/ relation/ referredInformation ReferredInformationType    
id IIType 1..1 1..1
id.root String 1..1 1..1
id.extension String 1..1 1..1
time PartialTimeStampType 1 1
type String 1 1
informationOwner InformationOwnerType 1..1 1..1

Svarsdel: observationGroup/observation/relation/referredInformation/informationOwner

observationGroup/ observation/ relation/ referredInformation/ informationOwner InformationOwnerType    
id IIType 1..1 1..1
id.root String 1..1 1..1
id.extension String 1..1 1..1

Svarsdel: observationGroup/performerRole/person

observationGroup/ performerRole / person (och i additionalParticipant) PersonType    
id IIType 0..1 0..1
id.root String 1 1
id.extension String 1 1
name String 0..1 0..1

Svarsdel: observationGroup/performerRole/careUnit

observationGroup/ performarRole/ careUnit CareUnitType    
id IIType 1..1 1..1
id.root String 1..1 1..1
id.extension String 1..1 1..1
name String 0..1 0..1
careGiver CareGiverType 1..1 1..1

Svarsdel: observationGroup/performerRole/careUnit/caregiver

observationGroup/ performerRole / careUnit / careGiver CareGiverType    
id IIType 1..1 1..1
id.root String 1..1 1..1
id.extension String 1..1 1..1
name String 0..1 0..1

Svarsdel: observationGroup/additionalParticipant/location/ electronicAddress

observationGroup/ additionalParticipant/ location/ TelType    
electronicAddress      
use TelTypeEnum 1..1 1..1
value String 1..1 1..1

Svarsdel: observationGroup/additionalParticipant/organization

observationGroup/ additionalParticipant/ organisation OrganisationType    
id IIType 0..1 0..1
id.root String 1..1 1..1
id.extension String 1..1 1..1
name String 0..1 0..1

Övriga regler

Till detta tjänstekontrakt finns regler som ej uttrycks i schemafilerna och tabellen ovan. Dessa återfinns nedan.

| ID | Kontext | Beskrivning | | — | — | — | | Regler i begäran | Regler i begäran | Regler i begäran | | 1.1 | Den enda sökparametern som explicit behöver anges är patientId. Det finns även möjlighet att kombinera patientId med ett eller flera andra parametrar: timePeriod För att begränsa till ett tidsintervall observationCode För att begränsa till en viss typ av observation observationId För att begränsa till en specifik observation careGiverId För att begränsa till en specifik vårdgivare careUnitId För att begränsa till en specifik vårdenhet sourceSystemHSAId För att begränsa till ett specifikt system Relation För att begränsa till observationer med relationer till annan instans För att begränsa till observationer med relationer av viss typ

En begäran med patientId men utan någon av de andra sökparametrarna får nekas av producent, dvs inte vara genomförbart och ska i så fall resultera i ett tydligt felmeddelande. Detta skulle exempelvis inträffa om sökmängden blir för stor för att kunna returneras till konsumenten. | Den enda sökparametern som explicit behöver anges är patientId. Det finns även möjlighet att kombinera patientId med ett eller flera andra parametrar: timePeriod För att begränsa till ett tidsintervall observationCode För att begränsa till en viss typ av observation observationId För att begränsa till en specifik observation careGiverId För att begränsa till en specifik vårdgivare careUnitId För att begränsa till en specifik vårdenhet sourceSystemHSAId För att begränsa till ett specifikt system Relation För att begränsa till observationer med relationer till annan instans För att begränsa till observationer med relationer av viss typ

En begäran med patientId men utan någon av de andra sökparametrarna får nekas av producent, dvs inte vara genomförbart och ska i så fall resultera i ett tydligt felmeddelande. Detta skulle exempelvis inträffa om sökmängden blir för stor för att kunna returneras till konsumenten. | | Regler i svaret | Regler i svaret | Regler i svaret | | 2.1 | PerformerRole | Observation utförd av hälso- och sjukvårdpersonal Då observation är utförd av hälso- och sjukvårdpersonal ska PerformerRole.id anges med HSAid. Om producenten ska stödja sammanhållen journalföring och patientens direktåtkomst krävs även att klassen Person används och att Person.name anges. Observation utförd av icke vårdpersonal Då observationen är utförd av personer som inte innefattar vårdpersonal ska PerformerRole.id inte anges. Klasserna CareUnit (vårdenhet) och CareGiver (vårdgivare) ska inte användas. Klassen Person ska användas samt Person.name anges. | | 2.2 | AdditionalParticipant | AdditionalParticipant är hälso- och sjukvårdspersonal Då ytterligare medverkande är hälso- och sjukvårdpersonal ska AdditionalParticipant.id anges med HSAid. Om producenten ska stödja sammanhållen journalföring och patientens direktåtkomst krävs även att klassen Person används och att Person.name anges. AdditionalParticipant är INTE hälso- och sjukvårdspersonal Då ytterligare medverkande personer inte är hälso- och sjukvårdspersonal ska additionalParticipant.id inte anges. Istället används klassen Person. AdditionalParticipant är inte en person Då additionalParticipant är en device, careUnit eller organization används inte additionalParticipant.id | | 2.3 | LegalAuthenticator | Om informationen är signerad av hälso- och sjukvårdspersonal ska LegalAuthenticator anges med namn och/eller HSA-id i svars-delen. Minst ett av attributen LegalAuthenticator.id eller LegalAuthenticator.name ska anges. | | 2.4 | referredInformation.time | ReferredInformation.time ska innehålla en tidpunkt som ska kunna användas som inparameter i ett tidsintervallbaserat sökvillkor till den tjänst som returnerar den identifierade informationsmängd som relationen pekar ut. Denna tidpunkt skall vara den tidpunkt som tidssökparametern till den utpekade tjänsten filtrerar på. I det fall då en konsument har behov av att söka upp flera relaterade informationsmängder från samma tjänst kan konsumenten skapa ett sökintervall som omfattar de ReferredInformation.time från dessa relationer. Detta sökintervall används sedan som inparameter till den tjänst som relationerna pekar ut. På detta sätt kan en konsument göra endast ett anrop över en begränsad tid som returnerar samtlig relaterad information istället för att göra anrop ett och ett med respektive id som anges i relationen, eller ta ut en patients totala informationsmängd utan någon möjlighet att filtrera på tid. | | 2.5 | observationGroup/ performerRole/ careUnit | Åtkomstkontroll inom sammanhållen journalföring Krävs för spärrhantering, åtkomstkontroll samt loggning enligt PDL. Om HSA-id för vårdenhet inte kan lämnas kommer elementet inte visas upp av konsumenter inom sammanhållen journalföring |

Icke funktionella krav

Inga övriga icke funktionella krav.

SLA-krav

Inga avvikande SLA-krav

Annan information om kontraktet

Ingen övrig information om kontraktet