Versions Compared

Key

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

...

Version

Dato

Ændring

Ansvarlig

1.0.1

2018-08-17

Initialt dokument

Trifork

1.0.22018-08-31Ny releaseTrifork
1.0.32018-11-23Tilføjet admin endpointsTrifork
1.0.132019-25-09AjourførtTrifork
1.0.162020-05-25Opdateret slettejobKIT
1.0.172021-12-07Opdateret ifm inaktive cpr numre afvisesKvalitetsIT
1.0.182023-09-26SDS-6386: ODR - oprydningsjob genbesøgKvalitetsIT

Funktionalitet

Servicen udstiller en række data som beskrevet i anvenderguiden. Komponenten kaldes af anvendere gennem NSP'ens DCC (afkoblingskomponenten), som viderestiller kaldet til servicens webservice-endpoint. Servicen udstiller derudover en række administrative og konfigurationsrelaterede funktionaliter.

...

URL

Funktionalitet

<server>/odr/status

Status-side for servicen. Viser om servicen fungerer korrekt, se afsnittet Overvågning.

<server>/odr/alarm

Alarm-side for servicen. Viser om der er valideringsfejl i servicen, se afsnittet Overvågning.

<server>/odr/odr
Webservice-endpoint
<server>/odr/odrAdmin
Webservice admin-endpoint (til brug for brugerflade)
<server>/odr/dksconfig
DCC auto-konfigurations API. Anvendes til konfiguration af NSP'ens DCC.
<server>/odr/wsdl
HTML-side med links til download af WSDL-filer i hhv. DGWS- og IDWS-udgave.
<server>/odr/wsdl/dgws
DGWS WSDL
<server>/odr/wsdl/idws
IDWS WSDL
<server>/odr-operations/odr-slettejob/deceased/start
Baggrundsjob til sletning af døde startes ved kald af denne url. Returnerer altid http status kode 200. Eventuelle fejl skrives i loggen.
<server>/odr-operations/odr-slettejob/emigrated/start
Baggrundsjob til oprydning ift. udrejste startes ved kald af denne url. Hvis person har en aktiv registrering, så tjekkes dem om denne person er udrejst. Hvis dette er tilfældet, så sættes VALIDTO-datoen til afviklingstidspunktet.
Returnerer altid http status kode 200. Eventuelle fejl skrives i loggen.
<server>/odr-operations/odr-slettejob/status

Dette kald verificerer databaseadgang.

Der kan returneres følgende fra statussnitfladen:

200: Der er adgang til databasen og jobbet kan anvendes.
5xx: Komponenten melder at den ikke kan anvendes.

Code Block
languagebash
HTTP/1.1 200 OK
Database : OK 


<server>/odr-operations/odr-slettejob/alarm

Dette kald verificerer services, eksterne kald og databaseadgange.

Denne service indeholder kun data, hvis der er alarmer.

200: Komponenten fungerer og der er ingen alarmer.
5xx: Komponenten melder at den ikke kan anvendes.

Følgende er et ekempel på et svar, hvor personinformationservice ikke er tilgængelig.

Code Block
languagebash
HTTP/1.1 500 Internal Server Error
Baggrundsjobbet StackedOperationsService fejlede sidst det blev kørt. Problemet var: Data for CPR-nummeret kunne ikke findes, fordi kaldet til PersonInformation-servicen returnerede en uventet statuskode: 409.
Person Information servicen har fejlet flere gange end tilladt i en given periode.


...

Code Block
languagebash
title/status
HTTP/1.1 200 OK
Connection: keep-alive
X-Powered-By: Undertow/1
Server: WildFly/8
Transfer-Encoding: chunked
Content-Type: text/plain;charset=ISO-8859-1
Date: Mon, 3 Dec 2024 03:13:23 GMT

200  OK

Title: odr-service-wildfly
Deployed: 2024-12-03T02:02:02.002Z
Build-Date: 2024-12-03T01:01:01Z
Build-Version: 1.0.x
Builder: A Robot
Display time: 2024-12-03T03:13:23.345Z

Den nye alarm-side vil kun melde fejl og indeholde information, hvis bagved liggende tjeks melder fejl.

Code Block
languagebash
title/alarm
HTTP/1.1 500 Internal Server Error
Connection: keep-alive
X-Powered-By: Undertow/1
Server: WildFly/8
Transfer-Encoding: chunked
Content-Type: text/plain;charset=ISO-8859-1
Date: Mon, 4 Dec 2024 16:32:48 GMT

203  Non-Authoritative Information from: CprExistsServiceClient
Antal fejl: 56
2024-12-04T16:24:32.480: Fejl i retursvar fra CPRExist

...

  • 200: Applikationen kører i øjeblikket fint.
  • 500: Der er opstået en fejl, der kræver indgriben. 

Fejlfinding

Følgende årsager kan resultere i en statuskode 500 på status-siden:

  • Hvis mindst én databaserne ikke er tilgængelige. Der overvåges databaseadgang ved et simpelt "SELECT 1" statement. Denne query køres på alle datasources.

Hvis status-siden giver HTTP 500 bør man checke den servicens log, som burde indeholde en detaljeret fejlmeddelelse med stacktrace.

Følgende årsager kan resultere i en statuskode 500 på alarm-siden:

  • Hvis der opstår fejl ved kald til PersonInformation-servicen.

Hvis alarm-siden giver HTTP 500, så vil den også sende informativ tekst med omkring fejl. Derudover bør man tjekke servicelog.

Logning

Følgende beskrivelse af logning i servicen tager udgangspunkt i standard-opsætningen. Logning konfigureres vha. konfigurationsfilerne beskrevet i installationsvejledningen.

...

Der er i ODR fire kategorier af audit logs; cpr, organdonor registrering, aktør og cpr validering

Følgende tabel viser hvilke kategorier der audit logges for hver operation i ODR.

...

Operation / brugertypeBorgerSundhedsfagligSystem brugerAdmin bruger
CreateOrganDonorRegistrationxx
x
UpdateOrganDonorRegistrationxx
x
DeleteOrganDonorRegistrationxx
x
GetOrganDonorRegistration
x
x
HasOrganDonorRegistration



Baggrundsjob (Slettejob/Oprydningsjob/Notificationsjob)

Servicens baggrundsjobs bliver afviklet vha. en udstillede RestControllere, som kaldes vha. simpelt HTTP GET kald.
Dette gøres for at sikre afviklingen af baggrundsjobs i flere-node drift, hvor en loadbalancer sørger for fordeling af kald til bagvedliggende servere.

...

ODR har følgende baggrundsjobs:

  • OrganDonorDeceasedCleanup - Slettejob til sletning af afdødes registreringer

  • OrganDonorEmigratedCleanup - Oprydningsjov til invalidering af udrejstes registreringer

  • OrganDonorNotification - Afsendelse af notificationer vha. digital post

PersonInformation

Følgende parametre bruges til styringen af forbindelsen til PersonInformation servicen, som bruges på tværs af baggrundsjobs. De kan ændres i cleanupoperations.properties for ODR:

NøgleDefault værdiBeskrivelse
personinformation.url

http://test1-cnsp.ekstern-test.nspop.dk:8080/stamdata-personinformation/2024/08/01

Den url som jobbet skal bruge, når den skal kalde servicen stamdata-personinformation.
personinformation.maxTotalConnections200Max antal forbindelser som HTTP Connection Manager må lave.

personinformation.defaultMaxConnectionsPerRoute

20

Max antal forbindelser som HTTP Connection Manager må lave pr. rute.personinformationpr. rute.

personinformation.defaultConnectionTimeoutMs

20000

Konfiguration af connection timeout (angives millisekunder)

personinformation.error.tolerance

0

Tolerance for hvor mange fejl PersonInformation servicen må have inden den melder tilbage at den ikke virker i alarm indikatoren

personinformation.errorcount.duration

PT10M

Angiver, hvor lang en periode, der skal kigges i efter antallet af fejl for PersonInformations alarm indikator

Digital Post

Følgende parametre bruges til styringen af forbindelsen til Digital post servicen. De kan ændres i operations.properties for ODR:

NøgleDefault værdiBeskrivelse
digitalpost.service.urlhttp://test1-cnsp.ekstern-test.nspop.dk:8080/digitalpost/2024/05/29/sendDen url som jobbet skal bruge, når den skal kalde servicen digital post
digitalpost.max.total.connections200Max antal forbindelser som HTTP Connection Manager må lave.
digitalpost.default.max.connections.per.route20Max antal forbindelser som HTTP Connection Manager må lave pr. rute.
digitalpost.default.connection.timeout.ms20000Konfiguration af connection timeout (angives millisekunder)
digitalpost.error.tolerance0Tolerance for hvor mange
fejl PersonInformation
fejligital post servicen må have inden den melder tilbage at den ikke virker i alarm indikatoren
digitalpost.errorcount.durationPT10MAngiver, hvor lang en periode, der skal kigges i efter antallet af fejl forigital post alarm indikator

OrganDonorDeceasedCleanup

Baggrundsjobbet kaldes når der skal slettes registreringer for personer der har været erklæret døde de sidste 60 dage (deletion.save.deceased)

Kommando til kald af slettejob:

...

Følgende parametre til styring af OrganDonorDeceasedCleanup kan ændres i cleanup operations.properties for ODR:

NøgleDefault værdiBeskrivelse

deletion.desired.execution.duration.deceased

PT20S

Den tid vi ønsker at bruge på sletning ved hvert request. Tiden er ikke garanteret, da vi kun tjekker mod den efter hver StackOperation er udført.

Default værdien er 20 sekunder.

deletion.save.deceased

P12M

Den tid som skal gå før vi sletter data for en afdød person. Dette gøres så vi ikke sletter data, hvis personens status ændres til afdød og derefter tilbage til levende.
Default værdien er 12 måneder

deletion.batchsize.deceased

1000

Max. antal entries (f.eks. CPR) vi behandler pr. batch

personinformation.batchsize.deceased

100

Max. antal CPR vi forespørger på i en enkelt request til personinformation

...

Parameteren angives som en Duration i ISO-8601 format. Dvs. eksemplet viser 20 sekunder.

OrganDonorEmigratedCleanup

Baggrundsjobbet kaldes når der skal ryddes op registreringer for person der er udrejste.

Kommando til kald af slettejob:

...

Følgende parametre til styring af OrganDonorEmigratedCleanup kan ændres i cleanupi operations.properties for ODR:

NøgleDefault værdiBeskrivelse

deletion.desired.execution.duration.emigrated

PT20S

Den tid vi ønsker at bruge på sletning ved hvert request. Tiden er ikke garanteret, da vi kun tjekker mod den efter hver StackOperation er udført.

Default værdien er 20 sekunder.

deletion.batchsize.emigrated

1000

Max. antal entries (f.eks. CPR) vi behandler pr. batch

personinformation.batchsize.emigrated

1000

Max. antal CPR vi forespørger på i en enkelt request til personinformation

...

Parameteren angives som en Duration i ISO-8601 format. Dvs. eksemplet viser 20 sekunder.

Backup

Servicen indeholder ikke nogen backup-mekanismer, og dette skal derfor konfigureres på database-niveau. Der bør foretages backup af data på en forsvarlig måde, i tilfælde af behov for en genetablering af data. Disse data skal opbevares på en forsvarlig måde, jfr. regler om personhenførbare data.