Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
Användarhandbok Dok.beteckning
NKRR Utgåva 1.0
Sida: 1 (13)
NKRR
Regelskrivning i praktiken
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
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.
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
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.
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
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
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.
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
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
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).
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
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.