Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Det forudsættes at læseren er bekendt med grundfunktionaliteten i servicen, beskrevet i dokumentet dokumentet Organdonorregister-service (ODR).

Ændringslog

Version

Dato

Ændring

Ansvarlig

1.0.22018-08-31Ny releaseTrifork
1.0.82019-04-12Tilføjelse af flere PermissionType værdierTrifork
1.0.112019-08-16Tilføjet note om MinLog SessionIdTrifork
1.0.122021-01-18Opdateret 'Design'-figurKvalitetsIT
1.0.132021-12-07Opdateret ifm inaktive cpr numre afvisesKvalitetsIT
1.0.142022-10-24SDS-5679: validering af alderKvalitetsIT

Terminologi



HL7 CDA

Standard til udveksling af oplysninger indenfor sundhedsvæsenet.

...

Forkortelse

Betydning

ODR

Organdonorregistret

Arkitektur

Organdonorregister-servicen består af en webservice, som andre systemer kan benytte til at oprette, opdatere, slette og aflæse seneste registrering fra.


HTML
<iframe src="https://archi.nspop.dk/NSP/570928ca/views/id-198d99a1-fbb0-4f0a-8e05-e2e0e880c919.html" name="test" height="580" width="800">You need a Frames Capable browser to view this content.</iframe>   

* Hver kasse i ovenstående diagram har en kort forklaring, som kommer frem i et nyt browservindue, når der klikkes på kassenSystemet består af to services. Selve registerservicen håndterer funktionalitet og databaseadgang og en separat DGWS/IDWS Proxyservice håndterer kald til systemet. Der understøttes adgang gennem DGWS eller IDWS forudsat at adgangen sker via en DGWS/IDWS Proxy, som er en separat service der afkobler alt DGWS- og IDWS-specifikt.


Som illustreret på figuren herunder tilgår brugerne servicen indirekte via Sundhed.dk, patientjournalsystemer, lægepraksissystemer osv. Herudover foretager Dokumentdelingsservicen (DDS) opslag via FSK. Opslaget via FSK returnerer alene information om, hvorvidt der findes data for en person eller ej. Der understøttes adgang gennem DGWS eller IDWS.

Gliffy Diagram
displayNameODR-Arkitektur v7
nameODR-Arkitektur v7
pagePin

...

2

Standarder

Alt data udveksling er basereret på HL7 Clinical Document Architecture (CDA).

...

Kald til servicen kan foretages som enten DGWS- (Den Gode Webservice) eller IDWS- (Identity Based Web Services) kald. Som beskrevet i afsnittet Arkitektur ovenfor, foretages kald til servicen igennem en DGWS / IDWS proxy, der har det primære formål at validere at der er foretaget et korrekt DGWS- eller IDWS- kald.

Sundhedsprofessionelle, der vil tilgå servicen fra deres EPJ- eller EOJ-system, kan foretage DGWS-kald igennem den centrale NSP afkoblingskomponent (DCC), som viderestiller kaldet til servicen igennem DGWS / IDWS Proxyen. Der kræves anvendelse af OCES sikkerhedsniveau 4, hvor der skal medsendes et ID-kort, som er signeret med medarbejdercertifikat (MOCES). Proxyen Servicen vil verificere at kaldet er korrekt signeret, og at signeringen ikke er udløbet.

Borgerer, der ønsker at tilgå servicen, skal gøre det igennem Sundhed.dk, som står for borgervendt funktionalitet. Sundhed.dk kan kan foretage IDWS-kald til servicen igennen DGWS / IDWS Proxyen som vist på figuren længere oppe: ODR-Arkitektur.png. Proxyen vil servicen, som vil verificere at der er tale om et korrekt IDWS-kald.

Såfremt Proxyen kan verificere at der er tale om et korrekt DGWS- eller IDWS-kald, vil kaldet blive viderestillet til servicen. Servicen vil tillade kaldet hvis:

...

Der henvises til hhv. Den Gode Webservice og OIO Identity-based Web Services v1.0.1a for yderligere information.

Integrationer

CPR-subscriber

Cpr-subscriber er en fælles intern applikation hvis formål er at håndtere al kommunikation til stamdata (cpr-registry). ODR-servicen inkluderer et slettejob der skal sørge for at slette en borgers registrering 1 år efter personen er afgået ved døden.

...

MinLog

Alle opslag og ændringer af oplysninger i registret registreres i MinLog2 med . Med undtagelse af system bruger og borgerens egen tilgang og ændring læsning af data.

Ved manglende adgang til MinLog-servicen vil servicekaldet fejle.

ODR anvender MinLog Producer biblioteket til at registrere i Minlog2.


NAS

Alle ændringer (oprettelser, opdateringer og sletning) af Stamkort afstedkommer adviseringer til NAS.

Ved manglende adgang til NAS-servicen vil servicekaldet fejle.

Beskedformat

Der anvendes følgende topic (som kan konfigureres): http://sundhedsdatastyrelsen.dk/OrganDonation/2022/05/05:OrganDonationUpdated.

Indholdet i notifikationen består af et OrganDonorUpdated-objekt, med følgende attributter:

  • type: Type for beskeddefinitionen
  • date: Dato for Hvornår ændringen er sket
  • version: Versionsnummer for beskeddefinitionen.


Code Block
languagephp
firstline1
titleEksempel på notifikation
linenumberstrue
collapsetrue
<ns3:Notify xmlns:ns3="http://docs.oasis-open.org/wsn/b-2" xmlns:ns2="http://www.w3.org/2005/08/addressing" xmlns:ns6="http://nsi.dk/advis/v10" xmlns:ns8="http://sundhedsdatastyrelsen.dk/organdonor/2022/08/01/" xmlns="">
     <ns3:NotificationMessage>
          <ns3:Topic Dialect="http://docs.oasis-open.org/wsn/t-1/TopicExpression/Simple">http://sundhedsdatastyrelsen.dk/OrganDonation/2022/05/05:OrganDonationUpdated</ns3:Topic>
          <ns3:Message>
               <ns6:NotifyContent id="0501792275" idType="http://nsi.dk/advis/v10/CPR">
                    <ns8:OrgandonorUpdated>
                         <type value="http://sundhedsdatastyrelsen.dk/MessageDefinition/PDC-notification"/>
                         <date value="2022-08-01"/> 
                         <version value="1"/>
                    </ns8:OrgandonorUpdated>
               </ns6:NotifyContent>
          </ns3:Message>
     </ns3:NotificationMessage>
</ns3:Notify>


CprExists

Gennem kald til CprExists Service foretages validering af CPR nummer. CPR valideringen kan køre i følgende tre modes:

  • OFF: Der foretages ikke yderligere verifikation af CPRnummeret udover simpel validering af længde. CPRExists kaldes ikke
  • WARNING: CPRExists service kaldes. Hvis denne service svarer, at CPR nummeret ikke findes, eller er inaktivt, så audit logges denne information.
  • REJECT: CPRExists service kaldes. Svaret fra denne er en hård validering dvs kaldet til ODR fejler, hvis CPRExist service ikke kender CPR nummeret eller det er inaktivt.

CprExists Service benyttes ligeledes til validering af alder. Denne validering foretages altid.

Design

Gliffy Diagram
displayNameODR-Design v3
nameODR-Design v3
pagePin

...

7

Datamodel

Da det kun er borgeren selv der har adgang til at oprette og ændre i vedkommendes organdonorregistrering, kan datamodellen for servicen realiseres relativt simpelt, idet at det ikke er nødvendigt at lagre information omkring hvem der har oprettet / opdateret data.


HTML
<iframe src="https://archi.nspop.dk/NSP/570928ca/views/a8998bfe-c235-4089-9971-9fee199ff7f5.html" name="test" height="240" width="800">You need a Frames Capable browser to view this content.</iframe>   

* Hver kasse i ovenstående diagram har en kort forklaring, som kommer frem i et nyt browservindue, når der klikkes på kassen.


Alle registreringer indeholder oplysninger om en gyldighedsperiode, som angiver hvorvidt registreringen stadig betragtes som gyldig eller ej.

...

v2_person_simplified er et view der anvendes til at slå op i cpr-stamdata (cpr-registry)

Specifikke designbeslutninger

Vedr. DGWS/IDWS Proxy'en, er der foretaget følgende beslutninger:

Slettejob

ODR servicen indeholder også et slettejob der kan slette registreringer for afdøde personer. Registreringen for en afdød skal slettes 1 år efter personen er afgået ved døden. Registreringerne bliver slettet fra databasen og data kan således ikke genskabes igen.

Sletningen foregår ved at der opbygges en arbejdskø der indeholder cpr numre på de personer der skal slettes:

  • Hvis arbejdskøen er tom, så hentes nye cpr numre fra alle personer der findes i Organdonorregister. Dette findes ved at lave opslag i tabellen OrganDonor.
  • Hvis arbejdskøen indeholder cpr numre, så tjekkes hver cpr nummer om personen har været død i mere end et år. Hvis dette er tilfældet, så slettes personen fra OrgandonorregisterIDWS implementationen stammer fra FMK, og bygger på udgaver af oiosaml_java og oiosaml-trust, som er videreudviklet i forhold til de oprindelige, officielle udgaver af disse libraries. De 2 jar-filer er ikke tilgængelige som artifacts i nspop's Nexus repository, men levereres med som libs i nspop's Subversion sammen med den øvige DGWS/IIDWS Proxy og FSK kildekode. Kildekoden til disse libraries findes i nspop's SVN repository.
    Proxy'en anvender Seal, som ved initialisering normalt registrerer til STR-Transform algoritme i forbindelse med xmlsec-biblioteket. oiosaml registrerer ligeledes denne algoritme, hvilket giver en konflikt. Dette er løst ved at sætte en System-property "sosi:do.not.register.STRTransform", som får Seal til at undlade at registrere algoritmen. Dette har ikke negative effekter i Seal, da Proxy'en kun anvender Seal til parsning af DGWS messages. Det betyder dog, at andre services, som afvikles på samme Wildfly instans, potentiet kan bliver berørt af dette, hvilket normalt ikke er acceptabelt i henhold til NSP's regler for services.