13
Användarhandbok Dok.beteckning NKRR Utgåva 1.0 Sida: 1 (13) NKRR Regelskrivning i praktiken

NKRR Regelskrivning i praktiken - Kvalitetsregister · 2018-06-11 · en grundläggande SQL-kunskap. Dokumentet kan dock vara intressant även för andra roller, exempelvis för att

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: NKRR Regelskrivning i praktiken - Kvalitetsregister · 2018-06-11 · en grundläggande SQL-kunskap. Dokumentet kan dock vara intressant även för andra roller, exempelvis för att

Användarhandbok Dok.beteckning

NKRR Utgåva 1.0

Sida: 1 (13)

NKRR

Regelskrivning i praktiken

Page 2: NKRR Regelskrivning i praktiken - Kvalitetsregister · 2018-06-11 · en grundläggande SQL-kunskap. Dokumentet kan dock vara intressant även för andra roller, exempelvis för att

Användarhandbok Dok.beteckning

NKRR Utgåva 1.0

Sida: 2 (13)

Innehåll

1 Inledning ............................................................................................................................. 3 1.1 Förkortningar och begrepp .......................................................................................... 3

2 Ändringshistorik för dokumentet ..................................................................................... 4

3 Bakgrund ............................................................................................................................ 5 3.1 Regler i NKRR ............................................................................................................ 5 3.2 Informationsspecifikation ............................................................................................ 5 3.2.1 Klasser ..................................................................................................................... 5 3.2.2 Attribut ...................................................................................................................... 6 3.3 Från informationsspecifikation till regel i NKRR .......................................................... 6 3.3.1 Klasser - tjänstekontrakt i operatorn datakälla .......................................................... 6 3.3.2 Attribut i klass - fält som adresseras i regeln ............................................................ 6

4 Exempel .............................................................................................................................. 8 4.1 Beslutsdatum för välgrundad misstanke om cancer .................................................... 8 4.1.1 Informationsspecifkation ........................................................................................... 8 4.1.2 Skapa regel .............................................................................................................. 9 4.1.3 Rapport sammanställning regler ............................................................................. 10 4.2 Screeningupptäckt .................................................................................................... 11 4.2.1 Informationsspecifikation ........................................................................................ 11 4.2.2 Skapa regel ............................................................................................................ 12 4.2.3 Rapport sammanställning regler ............................................................................. 13

Page 3: NKRR Regelskrivning i praktiken - Kvalitetsregister · 2018-06-11 · en grundläggande SQL-kunskap. Dokumentet kan dock vara intressant även för andra roller, exempelvis för att

Användarhandbok Dok.beteckning

NKRR Utgåva 1.0

Sida: 3 (13)

1 Inledning

Detta dokument innehåller exempel hur du kan skapa regler i NKRR med informationsspecifikationen som

utgångspunkt. Dokumentet riktar sig främst till dig som ska skriva regler i NKRR och förutsätter att du har

en grundläggande SQL-kunskap. Dokumentet kan dock vara intressant även för andra roller, exempelvis

för att få en förståelse för hur informationsspecifikationen används vid regelskrivning. Andra dokument som

kan vara till hjälp är Användarhandbok NKRR som du når efter att ha loggat in i användargränssnittet.

Dokumentet börjar med en kort introduktion om regler, operatorer och uttryck i NKRR samt mappning

mellan klasser som anges i informationsspecifikationen och gällande tjänstekontrakt respektive attribut i

klasserna och vanligaste fält i aktuellt tjänstekontrakt vilka adresseras vid regelskrivningen. Tanken är att

detta inledande avsnitt ska kunna användas som ett stöd vid regelskrivningen.

Observera att de delar som används från informationsspecifikation kan ha korrigerats för att underlätta

exemplen i detta dokument. Syftet är inte att ta fram ”facit” för dessa regler, utan att illustrera praktisk

regelskrivning.

1.1 Förkortningar och begrepp

Begrepp Beskrivning

NKRR Nationell kvalitetsregisterrapportering. Teknisk lösning för att kunna

tillhandahålla information anpassad för respektive registers frågeställning

via ett tjänstegränssnitt på den nationella tjänsteplattformen.

Tjänstekontrakt Specifikation av ett tekniskt meddelande format för att kunna överföra en

viss informationsmängd.

Tjänstekontraktsbeskrivning Beskrivning av tjänstekontrakt. Aktuella tjänstekontraktsbeskrivningar finns

att hämta på http://rivta.se/

Operator En regelkomponent som var för sig bestämmer och sållar ut den

information som regeln i helhet ska söka ut. Flera operatorer bygger

tillsammans upp en regel.

Sammansatt fält Ett fält med kardinalitet 0..* eller 1..*, dvs. fältet kan förekomma noll till

många eller en till många gånger. Sammansatt fält kan jämföras med en

lista som itereras igenom med hjälp av ”For” eller ”ForEach”.

NI Nationell informationsstruktur. Generell referensmodell från Socialstyrelsen.

För mer information se

http://www.socialstyrelsen.se/nationellehalsa/nationellinformationsstruktur.

Page 4: NKRR Regelskrivning i praktiken - Kvalitetsregister · 2018-06-11 · en grundläggande SQL-kunskap. Dokumentet kan dock vara intressant även för andra roller, exempelvis för att

Användarhandbok Dok.beteckning

NKRR Utgåva 1.0

Sida: 4 (13)

2 Ändringshistorik för dokumentet

Utgåva Datum Författare Kommentar

1.0 2018-01-26 Eva Biberg Första versionen

Page 5: NKRR Regelskrivning i praktiken - Kvalitetsregister · 2018-06-11 · en grundläggande SQL-kunskap. Dokumentet kan dock vara intressant även för andra roller, exempelvis för att

Användarhandbok Dok.beteckning

NKRR Utgåva 1.0

Sida: 5 (13)

3 Bakgrund

3.1 Regler i NKRR

Syftet med regler i NKRR är att specificera hur ett svar på en fråga i ett kvalitetsregister ska ges utifrån

tillgänglig vårddata för en patient. Vanligtvis förekommer en regel för varje registervariabel eller fråga.

För att formulera en regel används olika operatorer som semantiskt liknar SQL samt deras uttryck. Syftet

med uttrycken är ange hur inhämtad vårddata ska filtreras och användas.

Nedanstående bild visar tillgängliga operatorer samt ger en överblick över deras funktion (filtrering eller beräkning) och kategori (inledande, mellanliggande eller avslutande operator). Skriptnod kan dock även användas som en avslutande operator och ange ett svar i form av en sträng om den placeras sist i en regel. För att även ge en överblick hur de olika operatorerna används görs en mappning till den SQL-funktionalitet som respektive operatorer kan liknas vid.

3.2 Informationsspecifikation

Som underlag för regelskrivning har vi informationsspecifikation för aktuellt register. I

informationsspecifikationen beskrivs en eller flera tillämpade informationsmodeller som visar vilka klasser

och attribut som representerar registrets behov av information. De tillämpade informationsmodellerna

baseras på den generella referensmodellen Nationell informationsstruktur (NI).

3.2.1 Klasser

I en informationsmodell används klasser, vilket är en samling uppgifter som hålls som

en enhet. Ett exempel på en klass som kan förekomma i en tillämpad

informationsmodell för ett register är Operation: Aktivitet. Registret är i detta fall

intresserad av information om operation. Namnet på klassen (Operation: Aktivitet) anger

att den är en tillämpning av klassen Aktivitet i NI.

Page 6: NKRR Regelskrivning i praktiken - Kvalitetsregister · 2018-06-11 · en grundläggande SQL-kunskap. Dokumentet kan dock vara intressant även för andra roller, exempelvis för att

Användarhandbok Dok.beteckning

NKRR Utgåva 1.0

Sida: 6 (13)

3.2.2 Attribut

Attribut är egenskaper för att beskriva aktuell klass. Exempelvis används attributen kod, tid och lokalisation för att beskriva klassen Operation: Aktivitet. I informationsspecifikationen ges en detaljerad beskrivning av varje klass och attribut i informationsmodellen,

3.3 Från informationsspecifikation till regel i NKRR

I detta avsnitt beskrivs kort hur du tillämpar den information om klasser och attribut som anges i

informationsspecifikationen i reglerna som du skapar i NKRR.

3.3.1 Klasser - tjänstekontrakt i operatorn datakälla

Som tidigare nämnts så anger namnet på varje klass i informationsmodellen vilken klass i NI som denna är

en tillämpning av (exempelvis Observation). Detta talar i sin tur om vilken informationsmängd som vi vill

hämta ut och vilket tjänstekontrakt som ska användas för att hämta den. Nedan är en mappning mellan

klass i NI och gällande tjänstekontrakt. Det är med hjälp av operatorn Datakälla som du definierar via vilket

tjänstekontraktsanrop som källdata ska hämtas.

Observera att det finns fler klasser och tjänstekontrakt än de som anges nedan. Tabeller är således inte

heltäckande utan visar exempel med två vanligt förekommande klasser.

Klass i NI Tjänstekontrakt

Aktivitet GetActivities 1.0 (1.x i regeln i NKRR)

Observation GetObservations 1.0 (1.x i regeln i NKRR)

3.3.2 Attribut i klass - fält som adresseras i regeln

För att få en översikt över samtliga fält som aktuellt tjänstekontrakt hanterar hänvisas till respektive

tjänstekontraktsbeskrivning. I efterföljande avsnitt har vi tagit ut de vanligaste attributen som används i

informationsspecifikationen i de fall som aktuell klass är en tillämpning av klassen Aktivitet respektive

Observation och mappat mot fält i motsvarande tjänstekontrakt. Det är alltså dessa fält som ska adresseras

i regeln.

Observera att det kan finnas andra fält som ska användas som inte är angivna nedan.

3.3.2.1 Aktivitet

I nedanstående tabell anges de vanligaste attributen i de fall som aktuell klass är en tillämpning av klassen Aktivitet. Observera att en aktivitetsgrupp kan innehålla 1..* aktiviteter1. För att adressera underliggande fält till aktivitet i reglerna behöver man använda uttryckstyp sammansatt fält.

Attribut i klass Fält i tjänstekontraktet GetActivities 1.0

kod activityGroup.activity.code.code activityGroup.activity.code.codeSystem

1 Enligt tjänstekontraktsbeskrivning för aktuellt tjänstekontrakt, domvänversion 1.0.5

Page 7: NKRR Regelskrivning i praktiken - Kvalitetsregister · 2018-06-11 · en grundläggande SQL-kunskap. Dokumentet kan dock vara intressant även för andra roller, exempelvis för att

Användarhandbok Dok.beteckning

NKRR Utgåva 1.0

Sida: 7 (13)

status activityGroup.activity.status.code activityGroup.activity.status.codeSystem

lokalisation activityGroup.activity.targetSite.code activityGroup.activity.targetSite.codeSystem

tid activityGroup.activity.time.start.value

(activityGroup.activity.time.end.value)

3.3.2.2 Observation

I nedanstående tabell anges de vanligaste attributen i de fall som aktuell klass är en tillämpning av klassen Observation. Observera att en observationsgrupp kan innehålla 1..* observationer2. För att adressera

underliggande fält till observation i reglerna behöver man använda uttryckstyp sammansatt fält.

Attribut i klass Fält i tjänstekontraktet GetObservations 1.x

typ observationGroup.observation.type.code observationGroup.observation.type.codeSystem

värde med datatyp PQ observationGroup.observation.value.pq.value observationGroup.observation.value.pq.unit

värde med datatyp CV observationGroup.observation.value.cv.code observationGroup.observation.value.cv.codeSystem

lokalisation observationGroup.observation.targetSite.code observationGroup.observation.targetSite.codeSystem

tid observationGroup.observation.time.start.value (observationGroup.observation.time.end.value)

2 Enligt tjänstekontraktsbeskrivning för aktuellt tjänstekontrakt, domvänversion 1.0.5

Page 8: NKRR Regelskrivning i praktiken - Kvalitetsregister · 2018-06-11 · en grundläggande SQL-kunskap. Dokumentet kan dock vara intressant även för andra roller, exempelvis för att

Användarhandbok Dok.beteckning

NKRR Utgåva 1.0

Sida: 8 (13)

4 Exempel

4.1 Beslutsdatum för välgrundad misstanke om cancer

Här visar vi ett exempel där man vill plocka ut ett värde från inhämtad vårddata och ge som svar till

registret. I det aktuella exemplet är det tid för aktiviteten välgrundad misstanke om cancer som man vill ha

ut.

4.1.1 Informationsspecifkation

Omskrivet kan man säga att vi vill ha ut den senaste registreringen av aktiviteten VG910 (KVÅ) som finns

för patienten under de senaste två åren. Vi börjar med att försöka översätta detta till de operatorer som

används för att formulera en regel.

Vi vill hämta aktiviteter rörande patienten. Detta gör vi genom operatorn Datakälla (FROM)

Vi vill filtrera aktiviteter på kod, status och tid. Detta gör vi med hjälp av uttryck i operatorn

Datakälla (WHERE)

Vi vill ha ut den senaste aktiviteten. Detta gör vi med hjälp av operatorn Välj (TOP 1 + ORDER

BY)

Vi vill plocka ut tid för aktiviteten. Detta gör vi med hjälp av operatorn Filter (SELECT). Det är

denna tid som kommer att returneras till kvalitetsregistret.

Page 9: NKRR Regelskrivning i praktiken - Kvalitetsregister · 2018-06-11 · en grundläggande SQL-kunskap. Dokumentet kan dock vara intressant även för andra roller, exempelvis för att

Användarhandbok Dok.beteckning

NKRR Utgåva 1.0

Sida: 9 (13)

4.1.2 Skapa regel

I de efterföljande tre sektionera beskrivs nedanstående tre operatorer som vi kommer att använda för aktuell regel.

Inledande operator – Datakälla

Mellanliggande operator – Välj

Avslutande operator - Filter

4.1.2.1 Inledande operator – Datakälla

Med hjälp av operatorn Datakälla definierar vi att vi vill hämta ut aktiviteter rörande patienten. Med hjälp

av uttryck i operatorn Datakälla filtrerar vi aktiviteter på kod, status och tid. För att se vilka fält som vi ska

adressera i uttrycken tittar vi i tabellen i avsnitt 3.3.2.1 Aktivitet.

Observera att vi i exemplet har utgått från att det datum som anges som inparameter till GetFormData motsvarar aktuellt registreringsdatum och att man vill söka ut aktiviteter från två år tillbaka i tiden och fram till aktuellt registreringsdatum.

Datakälla: GetActivities 1.x

Uttryckstyp: Sammansatt fält

Fält: activityGroup.activity

Uttryckstyp: Logiskt uttryck OCH

I de underliggande uttrycken ange:

activityGroup.activity.code.code är: VG910 "SVF bröstcancer - beslut välgrundad misstanke om cancer" (1.2.752.116.1.3.2.1.4 "KVÅ") och activityGroup.activity.time.start.value inträffade senare eller samtidigt som 2 år före getFormData.careEncounterStartDate och activityGroup.activity.time.start.value inträffade tidigare eller samtidigt som getFormData. careEncounterStartDate och (activityGroup.activity.status.code inte förekommer eller activityGroup.activity.status.code är: 398166005 "utförd" (1.2.752.116.2.1.1 "Snomed CT")3)

3 Enligt tjänstekontraktsbeskrivning för aktuellt tjänstekontrakt, domvänversion 1.0.5: ”Om statuskoden

utelämnas antas detta vara en faktiskt utförd aktivitet som dokumenterats.”. I praktiken filtrerar regeln bort

aktiviteter med status planerad.

Uttryckstyp: Matcha

koder

Uttryckstyp:

Tidsuttryck

Uttryckstyp:

Tidsuttryck

Uttryckstyp Logiskt

uttryck ELLER och

sedan förekomst och

matcha koder som

underliggande

uttryck

activityGroup.activity är ett

sammansatt fält

Vi vill lägga till flera filtervillkor

för varje aktivitet

Page 10: NKRR Regelskrivning i praktiken - Kvalitetsregister · 2018-06-11 · en grundläggande SQL-kunskap. Dokumentet kan dock vara intressant även för andra roller, exempelvis för att

Användarhandbok Dok.beteckning

NKRR Utgåva 1.0

Sida: 10 (13)

4.1.2.2 Mellanliggande operator – Välj

Med hjälp av operatorn Välj tar vi fram den aktivitet som har den senaste tidpunkten. För att se vilket fält

som vi ska välja tittar vi i tabellen i avsnitt 3.3.2.1 Aktivitet.

Datakälla: GetActivities 1.x

Fält: activityGroup.activity.time.start.value

Typ: Senaste (max)

4.1.2.3 Avslutande operator – Filter

Med hjälp av operatorn Filter gör vi en filtrering av utplockat källdata och sorterar ut tid för aktiviteten. Det

är detta värde som kommer att returneras till kvalitetsregistret. För att se vilket fält som vi ska välja för att få

fram tid tittar vi i tabellen i avsnitt 3.3.2.1 Aktivitet.

Datakälla: GetActivities 1.x

Fält: activityGroup.activity.time.start.value

4.1.3 Rapport sammanställning regler

Vi är nu klara med regeln men för att kontrollera att vi har gjort rätt hämtar vi ut en rapport som beskriver regeln för att enklare kunna verifiera mot informationsspecifikationen.

FROM

WHERE

ORDER BY +

TOP 1

SELECT

Page 11: NKRR Regelskrivning i praktiken - Kvalitetsregister · 2018-06-11 · en grundläggande SQL-kunskap. Dokumentet kan dock vara intressant även för andra roller, exempelvis för att

Användarhandbok Dok.beteckning

NKRR Utgåva 1.0

Sida: 11 (13)

4.2 Screeningupptäckt

Här visar vi ett exempel där utifrån inhämtad vårddata översätter till olika svarsalternativ. I det aktuella

exemplet vill vi ge svaret ”Ja” i det fall som det förekommer observationer som avser screeningupptäckt

och annars ”Uppgift saknas”. Här ges också ett exempel på när en och samma klass i

informationsspecifikationen motsvarar flera registervariabler och ska således motsvara separata regler i

NKRR. Det värde vi kommer att använda i regeln är således endast värde för screeningupptäckt.

4.2.1 Informationsspecifikation

Omskrivet kan man säga att vi vill söka ut eventuella screeningupptäckter som finns för patienten under de

senaste två åren. Om det finns så vill vi returnera ”Ja” till registret och annars ”Uppgift saknas”. Vi börjar

med att försöka översätta detta till de operatorer som används för att formulera en regel.

Vi vill hämta observationer rörande patienten. Detta gör vi genom operatorn Datakälla (FROM)

Vi vill filtrera observationer på typ, värde och tid. Detta gör vi med hjälp av uttryck i operatorn

Datakälla (WHERE)

Vi vill göra om hämtad information till ett svar som kvalitetsregistret kan tolka. Detta gör vi med hjälp av operatorn Översätt (CASE).

Page 12: NKRR Regelskrivning i praktiken - Kvalitetsregister · 2018-06-11 · en grundläggande SQL-kunskap. Dokumentet kan dock vara intressant även för andra roller, exempelvis för att

Användarhandbok Dok.beteckning

NKRR Utgåva 1.0

Sida: 12 (13)

4.2.2 Skapa regel

I de efterföljande två sektionera beskrivs nedanstående två operatorer som vi kommer att använda för aktuell regel. I respektive operator beskrivs hur information filtreras.

Inledande operator – Datakälla

Avslutande operator - Översätt

4.2.2.1 Inledande operator – Datakälla

Med hjälp av operatorn Datakälla definierar vi att vi vill hämta ut observationer rörande patienten. Med

hjälp av uttryck i operatorn Datakälla filtrerar vi observationer på typ, värde och tid. För att se vilka fält

som vi ska adressera i uttrycken tittar vi i tabellen i avsnitt 3.3.2.2 Observation.

Observera att vi i exemplet har utgått från att det datum som anges som inparameter till GetFormData motsvarar aktuellt registreringsdatum och att man vill söka ut aktiviteter från två år tillbaka i tiden och fram till aktuellt registreringsdatum.

Datakälla: GetObservations 1.x

Uttryckstyp: Sammansatt fält

Fält: observationGroup.observation

Uttryckstyp: Logiskt uttryck OCH

I de underliggande uttrycken ange:

observationGroup.observation.type.code är: 185351004 "administrativ anledning till vårdkontakt" (1.2.752.116.2.1.1 "Snomed CT") och observationGroup.observation.value.cv.code är: 171176006 "avvikande screeningresultat för brösttumör" (1.2.752.116.2.1.1 "Snomed CT") och observationGroup.observation.time.start.value inträffade senare eller samtidigt som 2 år före getFormData.careEncounterStartDate och observationGroup.observation.time.start.value inträffade tidigare eller samtidigt som getFormData.careEncounterStartDate

Uttryckstyp: Matcha

koder

Uttryckstyp:

Tidsuttryck

Uttryckstyp:

Tidsuttryck

Uttryckstyp: Matcha

koder

observationGroup.observation

är ett sammansatt fält

Vi vill lägga till flera filtervillkor

för varje observation

Page 13: NKRR Regelskrivning i praktiken - Kvalitetsregister · 2018-06-11 · en grundläggande SQL-kunskap. Dokumentet kan dock vara intressant även för andra roller, exempelvis för att

Användarhandbok Dok.beteckning

NKRR Utgåva 1.0

Sida: 13 (13)

4.2.2.2 Avslutande operator – Översätt

I den avslutande operatorn vill vi ta fram själva svaret till registret vilket i detta exempel är ”Ja” eller ”Uppgift saknas” beroende på om det finns ett värde eller inte.

Villkor 1

Uttryck: Sammansatt fält

Datakälla: GetObservations 1.x

Fält: observationGroup.observation

Uttryckstyp: Förekomst Datakälla: GetObservations 1.x Fält: observationGroup.observation.id.extension Se till att förekommer är valt

Om sant ge svar: Ja

Villkor 2:

Uttryck: Alltid sant

Annars, Svar: Uppgift saknas

Observera att vi i denna nod har ett antal valmöjligheter för att kontrollera om det förekommer någon observationspost överhuvudtaget (första uttrycket). observationGroup.observation.id.extension är ett obligatoriskt fält i aktuellt tjänstekontraktet men man skulle lika gärna kunna kontrollera något av de fält som adresseras i noden Datakälla, exempelvis kan man använda uttryckstyp matcha koder för att kontrollera om värdet förekommer.

4.2.3 Rapport sammanställning regler

Verifiera regeln genom att ta ut en rapport som beskriver reglerna.