Indholdsfortegnelse:
1. Introduktion
Dette er en foreløbig beskrivelse, med rettelser på vej.
Formålet med dette dokument er at beskrive systemarkitekturen for Nationalt eCPR.
Dokumentet er tiltænkt udviklere og IT-arkitekter med interesse i Nationalt eCPR og dens opbygning. Siden indeholder primært information om Nationalt eCPR-servicen i forhold til dens relationer til andre systemer
2. Introduktion til eCPR
2.1. Løsningens Afhængigheder
Nationalt eCPR anvender følgende NSP komponenter:
Komponent |
Beskrivelse |
---|---|
DCC (DeCoupling Component), også kendt som SOSI afkoblingskomponenten, fungerer som en webservice gateway og foretager routing af forespøgsler mod services der udstilles på eller via NSP'en. |
|
National Adviseringsservice på NSP'en funger som en afkoblet system-til-system advisering gennem et "publish-subscribe"-mønster |
|
Sundhedsvæsenets Elektroniske Brugerstyring er en fælles platform for brugeradministration af forskellige sundhedsfaglige systemer. SEB vil blive brugt i Nationalt eCPR til udstilling af nationale roller som understøtter anvendersystemernes brugerrettighedsstyring mod Nationalt eCPR. Denne tilgåes via Acces Handler TO BE SEB implementeres når Nationalt eCPR flyttes til NSP platformen. |
|
Stamdatamodul på NSP består af 6 registreservices, hvor eCPR gør brug af SCES servicen (se nedenfor) og Stamdata Kopi register Service (SKRS) databasen, hvor den tilgår Bemyndigelsesregisteret, CPR registeret og authorisationsregisteret gennem 3 views (Se eCPR - Installationsvejledning) |
|
CPR-enkeltopslag er en realisering af MedCom-standarden 'Det Gode CPR Opslag' |
|
eCPR2 importer bruges til at lægge eCPR stamdata i KRS-databasen. Dette foregår ved, at brugere indsender data til eCPR2-servicen, hvorefter eCPR2 servicen eksporterer dette data via et job, og lægger det i et filsystem på NSP'en. eCPR2 Importeren læser data fra dette export og lægger det i databasen hvorefter SKRS servicen udstiller dette data. |
2.2. Løsningens opbygning
Nationalt eCPR består af én javabaseret web-service, nemlig eCPR-service. Den udstilles på NSP via DCC, og udstiller ligeledes adviseringer gennem NAS på NSP. For at servicen fungerer har den ligeledes en ekstern afhængighed til NSP stamdata gennem views, herunder SCES (CPR-enkeltopslag). I nedenstående diagram ses et arkitektur overblik over servicen og dens eksterne afhængigheder:
Både service og dataformater for Nationalt eCPR er udviklet til at være generelle og fleksible, så de kan understøtte forskellige scenarier for brug, og implementeringsstrategier på tværs af sundhedsvæsenets aktører.
Nationalt eCPR-service er beskrevet i eCPR - Snitfladebeskrivelse
Dataformater er beskrevet under NSP stamdataregistre her.
Sekvensdiagrammer
Nedenfor ses 2 sekvensdisagrammer. De blå komponenenter hører alle til eCPR-servicen, og illustrerer hvordan flowet overordnet set forløber internt, uden at gå i detaljer med implementationen.
Sekvensdiagrammet for CreatePersonRequest ses nedenfor.
I forløbet "CreatePerson" bruges Cpr-enkeltopslag samt NAS ikke. I sekvensdiagrammet for UpdatePersonRequest ses hvordan Cpr-enkeltopslag og NAS bruges i et UpdatePerson kald. Cpr-enkeltopslag bruges kun, hvis UpdatePerson indeholder et CPR-nummer, hvorved der bliver tjekket op mod stamdata, om CPR-nummeret eksisterer. I nedenstående sekvensdiagram antages det, at UpdatePersonRequest laves med et medsendt CPR-nummer:
3. Sikkerhed
Sikkerhedsmodellen for National eCPR er baseret på MedComs “Den Gode Webservice” og brug af SOSI-Gateway. Sundhedsfaglige brugere anvender SOSI sikkerhedsmodellen, hvor adgang gives via lokale fagsystemer og udveksles med NSP infrastrukturen, herunder Nationalt eCPR, således sundhedsfaglige brugere er identificeret med navn, rolle og organisation. Sundhedsfaglige brugere får udstedt erhvervsidentiteter via de organisationer de er tilknyttet. Disse erhvervsidentiteter vedhæftes i SOSI sikkerhedsmodellen.
3.1. Forretningsrelateret data
Data, der anvendes forretningsmæssigt, f.eks. sygehusafdelingsnummer, ydernummer og autorisationsnummer, bør medsendes i den forretningsmæssige del af dokumentet, og ikke hentes fra dokumentheaderen. Det kan ikke udelukkes at f.eks.:
-
En sekretær på en sygehusafdeling logger ind med SKS-sygehusafdelingsnummer med 6 cifre og foretager en opdatering af data på et afsnit angivet med 7 cifre
-
En lægepraksis har to ydernumre, der logges ind med det ene men sendes data for begge.
Skal der senere opstilles regler for hvorvidt dette skal være muligt bør valideringen af disse regler holdes adskilt fra den forretningsmæssige implementering. Dette bør ske for at minimere risikoen for at ændringer i sikkerhedsmodellen påvirker denne.
3.2. Adgangsstyring
Der skelnes mellem:
- eCPR- og sundhedsfaglige roller, hvor det kræves, der anvendes et id-kort signeret med en medarbejdersignatur
- systemrollen hvor der skal anvendes et system id-kort signeret med et virksomheds- eller funktionssignatur.
I RequestedRole-elementet i SOAP headeren skal der angives hvilken rolle som brugeren eller systemet ønsker at anvende i det pågældende kald.
Det kræves af serviceaftagersystemet, at en bruger er valideret og det er en betingelse at opslaget på borgerens data er relevant, eksempelvis at der er en behandlerrelation mellem sundhedspersonen og borgeren.
4. Formater
Der er overordnet defineret to aftalte formater for eCPR-numre i sundhedsvæsenet: X-eCPR og D-eCPR.
De to formater er begge defineret på formlen DDMMYYCAAG og differentierer kun på den tilladte værdi af C.
4.1. Formatet for nationale erstatningspersonnumre - X-eCPR
eCPR-numre der udtrækkes af Nationalt eCPR betegnes Nationale eCPR-numre. De Nationale eCPR-numre udstedes i formatet X-eCPR.
X-eCPR formatet er valgt fordi det:
- sikrer entydighed på tværs af aktører, da det differentierer fra det brugte D-eCPR men samtidig
- differentierer meget lidt fra D-eCPR, hvilket gør at der ikke skal foretages ændringer i lokale systemer eller i MedCom formater for at tage X-eCPR formatet i brug.
Formatet X-eCPR: DDMMYYCAAG |
|
---|---|
DDMMYY |
Dato, måned og år svarende til personens fødselsdato. Ved ukendt fødselsdato benyttes oprettelsesdatoen for eCPR-nummeret. |
C |
Angiver århundrede: 1 for 1900-1999 og 7 for 2000-2099 |
AA |
Bogstaver A-Z. |
G |
Køn, ulige ciffer for mænd og lige for kvinder |
4.1.1. Eksempler på X-eCPR numre
-
0203291WQ3 Kent Osprey, født 2. Marts 1929
-
1308781OS6 Penny Elderspring, født 13. August 1978
-
3101057JC9 Jonathan Durtly, født 31. Januar 2005
4.2. Formatet for decentrale erstatningspersonnumre - D-eCPR
eCPR-numre der udtrækkes lokalt i regionerne, hos praksislæger m.v. betegnes ”decentrale eCPR-numre”. Decentrale eCPR-numre er kun unikke lokalt og ikke nationalt (på tværs af aktører). De decentrale eCPR-numre udstedes i formatet D-eCPR. D-eCPR er fastlagt i Fællesindhold for basisregistrering af sygehuspatienter, som beskriver de krav, der var til indberetning i den tidligere version af Landspatientregisteret, LPR2.
Formatet D-eCPR: DDMMYYCAAG |
|
---|---|
DDMMYY |
Dato, måned og år svarende til personens fødselsdato, eller ved ukendte patienter eller entiteter som ikke er en person, til oprettelsesdatoen for eCPR-nummeret. |
C |
Angiver århundrede: 0 for personer født 1900-1999, 5 for personer født før 1900 og 6 for patienter født efter 1999. |
AA |
Bogstaver A-Z. Det kan hvis muligt f.eks. være personens forbogstaver, eller en aftalt bogstavforkortelse til et bestemt forskningsprojekt. |
G |
Køn, ulige ciffer for mænd og lige for kvinder |
4.2.1. Eksempler på D-eCPR numre
-
0203290WQ3 Kent Osprey, født 2. Marts 1929
-
1308785OS6 Penny Elderspring, født 13. August 1878
-
3101056JC9 Jonathan Durtly, født 31. Januar 2005
5. Typebestemmelse med OID'er
Object Identifiers (OIDs) er en identifikationsmetode til identifikation af specifikke typer af objekter eller koncepter. OID'er anvendes når der er brug for en en entydig og blivende identifikation. Derfor bør et OID ikke genbruges når det har været anvendt til at identificere en given type af objekter eller koncepter. OID'er er udviklet i er samarbejde mellem ITU-T og ISO/UEC.
Hvert tal i en OID beskriver domænet - fx således for OIDen hørende til CPR-numre:
1 (iso) 2 (member-body) 208 (dk) 176 (nsi) 1 (registries) 2 (cpr)
Officielle OIDer kan findes beskrevet på http://www.oid-info.com/cgi-bin/display?tree=1.2.208.176.1.6
5.1. Registration Authority (RA)
For hver node, inklusive rod-noden, er der et krav om at ansvaret for den pågældende node påligger en organisation eller standard. Dvs. at det er denne organisation eller standard der har ansvaret for at allokere under-noder og at dokumentere denne allokering (inkl. information om. hvilken organisation under-noden er allokeret til). Det er dog ikke nødvendigt at allokere dette offentligt. Den ansvarlige organisation kaldes ’Registration Authority (RA)’.
Nationalt eCPR bruger OID’er, hvor dette giver mening. For OID’er der oprettes til brug i Nationalt eCPR bliver SDS (NSI) ’Registration Authority (RA)’.
5.2. Typeangivelse - brug af OID'er i Nationalt eCPR
Da hvert tal i et OID beskriver et domæne, kan man også sige at OID'er er baseret på en hierarkisk navngivningsstruktur. Denne navngivningsstruktur kaldes ”OID-træet”. OID-træet bruger en sekvens af navne, hvor det første navn identificerer en ‘node’ på øverste niveau I OID-træet, og det næste navn giver yderligere identifikation, som leder til sub-noder under det øverste niveau, og så fremdeles til en given ønsket dybde i træet.
Figur 1: OID-træet for OID'er brugt i og for det meste defineret af Nationalt eCPR, snapshot april 2021
Eksempelvis kunne OID’en for ”typen” tysk pas i Nationalt eCPR være 1.2.208.176.1.6.3.2.276. OID-træet er i dette tilfælde svarende til:
1.2.208.176.1 | NSI registre | ||||
.6 | eCPR | ||||
.3 | EPID (Udenlandsk identifikationsmiddel) | ||||
.2 | Pasnummer ”type” | ||||
.276 | Landekode for Tyskland, ISO 3166-1 numeric |
5.2.1. OID'er defineret til brug i Nationalt eCPR
Alle OID’er defineret under 1.2.208.176.1.6 (eCPR) er ikke registreret i det generelle OID repository oid-info.com.
EPID’er vil alle være defineret under 1.2.208.176.1.6.2 og 1.2.208.176.1.6.3 iOID-træet (figur 1).
Det kan ikke udelukkes at der vil kunne findes andre OID’er der peger på samme type og kilde, men Nationalt eCPR vil for udenlandske identifikationsmidler kun anvende OID’er under eCPR i OID-træet. Dette skyldes to ting: 1) at samtlige nødvendige OID’er ikke findes (f.eks. et OID for et pasnummer for et pas fra Libyen), og 2) at der ikke er garanti for at definitionen af andre organisationers OID’er ikke ændres (en Registration Authority kan vælge at ændre denne).
5.2.2. OID'ers formål i Nationalt eCPR
I Nationalt eCPR anvendes OID’er til at typebestemme Nationale eCPR-numre 1 , Decentrale eCPR-numre og EPID'er. Dvs. der er overordnet to formål:
- til at angive format og kilde for eCPR-numre (Nationale og Decentrale eCPR-numre), og
- til at identificere typer og evt. kilde for EPID’er.
De understøttede OIDer i Nationalt eCPR kan trækkes via operationen eCPR - GetOIDs.
5.3. OID’er til at angive format og kilde for eCPR
Til angivelse af eCPR-typer, som beskrevet i afsnit 2.2 Typer af eCPR-numre, benytter Nationalt eCPR OID’er. For hver type anvendes der et eller flere OID’er til at angive format og kilde. For de nationalt definerede eCPR-numre (X-eCPR) findes der kun ét OID, da der kun er er én kilde til disse. For de decentralt definerede D-eCPR-numre vil der være flere OID’er, idet der er flere kilder hertil.
Type |
OID |
Kilde |
X-eCPR |
1.2.208.176.1.6.1.1 |
National eCPR-løsning |
D-eCPR |
1.2.208.176.1.6.1.3.181 1.2.208.176.1.6.1.3.183 1.2.208.176.1.6.1.3.179 1.2.208.176.1.6.1.3.187 1.2.208.176.1.6.1.3.177 |
Region Midtjylland Region Syddanmark Region Nordjylland Region Hovedstaden Region Sjælland |
5.4. OID til at angive CPR
Type |
OID |
CPR |
1.2.208.176.1.2 |
5.5. OID’er til at angive type og kilde for EPID
eCPR indeholder en række eksterne EPID’er. Typen og evt. kilden angives med et OID.
OID’er for EPID’er vil alle være defineret under 1.2.208.176.1.6.2 og 1.2.208.176.1.6.3, under SDS i OID-træet (figur 1), men vil ikke blive registreret i det generelle OID repository oid-info.com.
Type |
OID |
Asylansøger PersonID |
1.2.208.176.1.6.1.2.1 |
EHICnummer |
1.2.208.176.1.6.3.1 + Land |
Pasnummer |
1.2.208.176.1.6.3.2 + Land |
Kørekortnummer |
1.2.208.176.1.6.3.3 + Land |
Sundhedskortnummer |
1.2.208.176.1.6.3.4 + Land |
OID’er for EPID’er kan betragtes som en simpel typebestemmelse der alene anvendes til, i servicekaldet, at angive at der f.eks. er tale om et tysk pasnummer.
Samtlige typer og værdier skal defineres under EPID, men ikke nødvendigvis offentliggøres udenfor Nationalt eCPR, og ikke alle OID’er er vist i her.
For EPID’er er der defineret en 'grund-type', eksempelvis til paskode, men her skal landekoden indgå i værdien, idet der ikke skal registreres OID’er til samtlige verdens lande.
- Historisk før Nationalt eCPR gik i drift, blev der indbygget mulighed for at Nationale eCPR-numre kunne have et andet format end X-eCPR. Dette format hed C-eCPR og var identisk med D-eCPR formatet, men kilden ville være Nationalt eCPR i stedet for den enkelte region. Man gik endeligt væk fra C-eCPR formatet efter vedtagelse i Nationalt eCPR projektets styregruppe i 2021. ↩
6. Beslutninger ift. arkitektur og jura
I følgende tabel er listet beslutninger, som har indvirkning på arkitekturen bag Nationalt eCPR.
Dato | Emne | Problem, beskrivelse og beslutning | Afklaret med |
---|---|---|---|
|
Opbevaring af data |
Problem Beskrivelse Beslutning |
SDS's juridiske afdeling |
|
Genbrug af eCPR-numre |
Problem Beskrivelse Dog kan der stadig være lokale journaler hos andre aktører som endnu ikke har fået omlagt patientjournalen. Hvis eCPR-nummeret 'genbruges' til en ny patient risikerer man derfor at flere patienters journaler samkøres; at 'gammelt data kobles på ny patient'. Beslutning |
SDS's juridiske afdeling |
|
Autorisation |
Problem Beskrivelse Beslutning |
SDS's juridiske afdeling |
|
Brug af eCPR udenfor sundhedsvæsenet |
Problem Beskrivelse Beslutning |
SDS's juridiske afdeling |
|
Log i MinLog Borgerlog |
Problem Beskrivelse Tilgang til og ændringer i CPR-registreret logges heller ikke i MinLog Borgerlog. Beslutning |
SDS's juridiske afdeling |
|
Log i MinLog Medhjælpslog |
Problem Beskrivelse Beslutning |
SDS's juridiske afdeling |
|
Anvendelse af SKRS |
Problem Beskrivelse SKRS bruges bl.a. til at have en lokale kope af CPR registret i dag. Beslutning |
SDS's juridiske afdeling |
|
Begrænsning i brug af datamodellen |
Problem Beskrivelse Da der ikke sker en automatisk opdatering af data, og da patienten ikke selv har adgang til at vedligeholde data i Nationalt eCPR, er adresse og kontaktinformation forældet med det samme efter endt kontakt; dvs. at man ikke kan forvente at kunne benytte de angivne information til at kontakte patienten efterfølgende. Slutbrugergruppen blev derfor bedt om at vurdere datamodellen, og de data det er muligt at angive. Beslutning
|
Slutbrugergruppe Nationalt eCPR 2020 |
|
Valg af X-eCPR format |
Problem Beskrivelse 1. Brug af formatet ”X-eCPR” i de lokale systemer 2. Brug af formatet ”D-eCPR+kildeangivelse” i de lokale systemer Beslutning |
Styregruppen for eCPR-projektet |
Ændringslog
0.8 | 2023-10-31 | Udkast publiceret | SDS |
1.0 | 2023-12-05 | Side færdiggjort | SDS |