Page History
...
Behandlingsrelationsservicen (BRS) udstillet på NSP er en service til kontrol af behandlingsrelationer. BRS tilbyder at løfte opgaven med at klassificere behandlingsrelationer imellem sundhedsfaglige personer og patienter, således at nationale serviceudbydere i sundhedsvæsenet lettere kan overholde lovkrav til kontrol af sundhedsfaglige personers adkomst til data og funktionalitet.Da der ikke findes et decideret "behandlingsrelationsregister", er det nødvendigt at udlede
HTML |
---|
<iframe src="https://archi.nspop.dk/NSP/570928ca/views/39ae766a-05e8-4933-bc54-9aea0ff8451e.html" name="test" height="1020" width="1000">You need a Frames Capable browser to view this content.</iframe> |
Da der ikke findes et decideret "behandlingsrelationsregister", er det nødvendigt at udlede viden om faktiske behandlingsrelationer ved opslag i nationale registre over handlinger, registreringer og relationer indenfor sundhedsvæsenet. Endvidere er der ofte en tidsmæssig forsinkelse i opsamling af de nødvendige informationer, viden om faktiske behandlingsrelationer ved opslag i nationale registre over handlinger, registreringer og relationer indenfor sundhedsvæsenet. Endvidere er der ofte en tidsmæssig forsinkelse i opsamling af de nødvendige informationer, og det er derfor nødvendigt at give adgang til funktionalitet og data på basis af ukomplette informationer, og efterfølgende foretage en opfølgende kontrol af den faktiske relation på et senere tidspunkt.
Opslag og opfølgninger varetages af BRS.
Hvis en serviceudbyder giver adgang til en bruger under forudsætning af at brugerens adkomst senere kan bekræftes, men det ikke sker, udsteder BRS en alarm, som serviceudbyderen kan agere på (en manuel opfølgning).
Systemet er opdelt i to dele "frontend" og "backend":
Gliffy Diagram | ||||||||
---|---|---|---|---|---|---|---|---|
|
Systemet
- SDM4 stamdata importeres. Der er
...
Software Blueprint
Nedenstående blueprint viser lagdelingen i BRS. For yderlige detaljer henvises der til de enkelte services.
Gliffy Diagram | ||||||
---|---|---|---|---|---|---|
|
BRS-Frontend
Frontend'en indeholder behandlingsrelationsservicen og notifikationsservicen, som er de webservices, der kaldes udefra, fra eksempelvis FMK.
Frontend'en er installeret i dNSP-miljøerne (decentral National Service Platform), samt til i cNSP-miljøet (central National Service Platform).
Frontend Blueprint
Nedenstående blueprints viser lagdelingen for henholdsvis behandlingsrelationsservicen og notifikationsservicen
Behandlingsrelation
Gliffy Diagram | ||||||||
---|---|---|---|---|---|---|---|---|
|
Notifikation
Gliffy Diagram | ||||||
---|---|---|---|---|---|---|
|
BRS-Backend
Backend'en indeholder en servlet, som ved afvikling henter at batch af beskeder fra Kafka. Hver kafka-besked indeholder netop én bestilt opfølgning. Det tjekkes, om der er opnået evidens for de behandlingsrelationer, der er sat til opfølgning, og der oprettes alarm-notifikationer i de tilfælde, hvor evidens ikke blev opnået indenfor tidsfristen. Desuden afvikles et andet batchjob, der løbende sletter gamle notifikationer.
Backend'en er installeret i NSP's Backoffice-miljø (tidligere benævnt DoDi).
I Backoffice opsamles data fra følgende kilderegistre:
- Landspatientregistret (LPR)
- Sygesikringsregistret (SSR)
- Henvisningshotellet (Refhost)
- Sikrede (AssignedDoctor)
Data indsættes i de samme MySQL databaser, som BRS anvender, men det foretages i praksis af separate stamdata-importere.
Disse data, samt de notifikationer, der er oprettet af opføgningsjobbet, replikeres løbende til NSP-miljøerne, så data er tilgængelige for frontend'en. Denne replikering foretages i praksis som MySQL-databasereplikering.
Backend Blueprint
Nedenstående blueprints viser lagdelingen for replikering og opfølgning
Replikering og Opfølgning
Gliffy Diagram | ||||||||
---|---|---|---|---|---|---|---|---|
|
RelationRelayer
FollowupConsumer kalder RelationRelayerInterface, som bruger og kalder alle underliggende RelationRelayers.
Blueprint for opbygningen af RelationRelayer service ser således ud.
Gliffy Diagram | ||||||
---|---|---|---|---|---|---|
|
Logisk arkitektur
Webservices
På NSP-miljøerne udstilles følgende webservices:
...
- i dag 4 registre som importeres og danner evidens-grundlag for visse behandlingsrelationer (henvisningshotellet/Refhost, Landspatientregisteret/LPR, ydelsesregisteret og sikrede registeret).
- Disse replikeres løbende fra den centrale database til cNSP'ens og dNSP'ernes databaser.
- Service providers (fx FMK og Sundhed.dk) kalder BRS for at registrere en adgang til data. Der angives hvilken person fra hvilken organisation, der har tilgået (eller skal til at tilgå) hvilken patient. Samtidig angives om, og i givet fald hvornår i fremtiden der ønskes opfølgning.
- BRS servicen checker først om der kan etableres tilstrækkelig evidens for en behandlingsrelation ud fra eksisterende evidens kilder.
- Hvis ikke, så skrives opslaget til Kafka.
- FollowupServlet kaldes løbende, og henter et batch fra Kafka.
- Bestillingerne behandles ud fra stamdata, eller lægges tilbage i køen hvis de først skal behandles senere.
- Notifikationer til service providers replikeres til databaserne på NSP'erne.
- Service provider (fx FMK) kalder notifikations-servicen for at hente de genererede notifikationer. Ud fra disse kan den data-ansvarlige for service providerne (fx FMK eller Sundhed.dk) følge op på, om opslagene alligevel var berettigede, fx stikprøvevis.
- Efter en fastsat periode slettes notifikationerne, uagtet om de er hentet af service providerne eller ej.
Logisk arkitektur
Webservices
På NSP-miljøerne udstilles følgende webservices:
Behandlingsrelationservice (BRS):
Servicen modtager en forespørgsel på en behandler (identificeret som person+sted), samt en patient (identificeret ved CPR), og skal afgøre hvilke kategorier af relationer der er mellem behandleren og patienten.
Der angives ligeledes et succeskriterie i form af et sæt af kategorier, der antages at være acceptable behandlingsrelationer. Skulle der ikke være en acceptabel behandlingsrelation, kan det afføde en opfølgning. For at understøtte dette, kan kalderen angive et sæt af kategorier der skal afføde en opfølgning. Dette kan også være sat til alle relationer.
Notifikationsservice:
Servicen vil returnere alle notifikationer, som er adresseret til kalderen. Notifikationer er fortløbende nummererede, og kalderen kan angive et offset, der sikrer at kun de nyeste notifikationer returneres. Servicen sletter alarmer efter et centralt konfigurerbart tidsinterval. Hvis man ikke angiver offset kan man risikere at modtage de samme alarmer flere gange.
De ovennævnte services udstilles via Den Gode Webservice (DGWS 1.0.1), og kan kun kaldes af systemer der bruger et System-IDKort udstedt til forhåndsgodkendte CVR numre. IDKort skal være udstedt af SOSI-STS.
Batchjobs i Backoffice
Backoffice indeholder to batchjobs der begge afvikles periodisk.
Relationsopfølgning:
De gemte opfølgninger kontrolleres op imod valideringsbiblioteket for at undersøge om der er opstået relationer der giver anledning til at slette en opfølgning. Hvis en opfølgning ikke har opnået den krævede relationskategori inden dens udløb oprettes en alarm i notifikationsdatabasen.
Jobbet afvikles ved at kalde FollowupServlet (se driftsvejledning for detaljer).
Oprydning:
Alarm-notifikationer replikeres til frontend i NSP-miljøerne, hvor de kan hentes med notifikationsservicen. Dette sletter dog ikke notifikationerne, så for at undgå at der blot bliver flere og flere, er der på et oprydningsjob, som løbende sletter notifikationer, som er blevet tilpas gamle.
Sletningen replikeres, så data også slettes fra de øvrige miljøer.
Jobbet afvikles med et fast interval, som kan konfigureres vha. en cron expression.
Fælles valideringsbibliotek
Valideringsbiblioteker har adgang til data fra en række databaser, deriblandt landspatientregisteret og sygesikringsregisteret, for at kunne udlede om en behandlingsrelation er til stede. Valideringsbiblioteket tilgås af behandlingsrelationservicen i dNSP/cNSP-miljøerne samt relationsopfølgningsjobbet i Backoffice miljøet.
Valideringsbiblioteket er implementeret som en fælles kodebase, der deles af front- og backend modulerne.
Flowchart
Nedenfor er der et flowchart, for det overordnede flow i systemet.
Software Blueprint
Nedenstående blueprint viser lagdelingen i BRS. For yderlige detaljer henvises der til de enkelte services.
Gliffy Diagram | ||||||
---|---|---|---|---|---|---|
|
BRS-Frontend
Frontend'en indeholder behandlingsrelationsservicen og notifikationsservicen, som er de webservices, der kaldes udefra, fra eksempelvis FMK.
Frontend'en er installeret i dNSP-miljøerne (decentral National Service Platform), samt til i cNSP-miljøet (central National Service Platform).
Frontend Blueprint
Nedenstående blueprints viser lagdelingen for henholdsvis behandlingsrelationsservicen og notifikationsservicen
Behandlingsrelation
Gliffy Diagram | ||||||||
---|---|---|---|---|---|---|---|---|
|
Notifikation
Gliffy Diagram | ||||||
---|---|---|---|---|---|---|
|
BRS-Backend
Backend'en indeholder en servlet, som ved afvikling henter at batch af beskeder fra Kafka. Hver kafka-besked indeholder netop én bestilt opfølgning. Det tjekkes, om der er opnået evidens for de behandlingsrelationer, der er sat til opfølgning, og der oprettes alarm-notifikationer i de tilfælde, hvor evidens ikke blev opnået indenfor tidsfristen. Desuden afvikles et andet batchjob, der løbende sletter gamle notifikationer.
Backend'en er installeret i NSP's Backoffice-miljø (tidligere benævnt DoDi).
I Backoffice opsamles data fra følgende kilderegistre:
- Landspatientregistret (LPR)
- Sygesikringsregistret (SSR)
- Henvisningshotellet (Refhost)
- Sikrede (AssignedDoctor)
Data indsættes i de samme MySQL databaser, som BRS anvender, men det foretages i praksis af separate stamdata-importere.
Disse data, samt de notifikationer, der er oprettet af opføgningsjobbet, replikeres løbende til NSP-miljøerne, så data er tilgængelige for frontend'en. Denne replikering foretages i praksis som MySQL-databasereplikering.
Backend Blueprint
Nedenstående blueprints viser lagdelingen for replikering og opfølgning
Replikering og Opfølgning
Gliffy Diagram | ||||||||
---|---|---|---|---|---|---|---|---|
|
RelationRelayer
FollowupConsumer kalder RelationRelayerInterface, som bruger og kalder alle underliggende RelationRelayers.
Blueprint for opbygningen af RelationRelayer service ser således ud.
Gliffy Diagram | ||||||
---|---|---|---|---|---|---|
|
Fysisk datamodel
Der er to typer databaser i datamodellen:
- En opfølgningsdatabase
- En database med registre og notifikationer
HTML |
---|
<iframe src="https://archi.nspop.dk/NSP/570928ca/views/14616003-c1ad-40ab-822a-146eb00293a1.html" name="test" height="500" width="600">You need a Frames Capable browser to view this content.</iframe> |
Batchjobs i Backoffice
Backoffice indeholder to batchjobs der begge afvikles periodisk.
...
Jobbet afvikles ved at kalde FollowupServlet (se driftsvejledning for detaljer).
...
Jobbet afvikles med et fast interval, som kan konfigureres vha. en cron expression.
Fælles valideringsbibliotek
Valideringsbiblioteker har adgang til data fra en række databaser, deriblandt landspatientregisteret og sygesikringsregisteret, for at kunne udlede om en behandlingsrelation er til stede. Valideringsbiblioteket tilgås af behandlingsrelationservicen i dNSP/cNSP-miljøerne samt relationsopfølgningsjobbet i Backoffice miljøet.
Valideringsbiblioteket er implementeret som en fælles kodebase, der deles af front- og backend modulerne.
Flowchart
Nedenfor er der et flowchart, for det overordnede flow i systemet.
Fysisk datamodel
Der er to typer databaser i datamodellen:
...
Tabellerne på de to typer databaser er beskrevet i det følgende. Det skal bemærkes at followup-databasen skal udgå, da BSR er lagt om til at overføre opfølgningsbestiliinger via Kafka. Når indholdet af BRS2_TreatmentRelationFollowup-tabellen er migreret til Kafka, kan afsnit 5.1 nedenfor slettes. Der henvises til driftsvejledningen for yderlygere detaljer om denne migrering.
...