Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Navitabs
rootXDSCleanup - Leverancebeskrivelse
includeroottrue


Table of Contents
outlinetrue

...

Nærværende dokument er tiltænkt udviklere og IT-arkitekter med interesse i anvendelsen af XDSCleanup. 

Dokumenthistorik

Version

Dato

Ansvarlig

Beskrivelse

0.1

25.02.2022

KvalitetsIT

Initiel udgave

0.2

10.10.2022

KvalitetsIT

SDS-5785

Introduktion til XDSCleanup

...

Gliffy Diagram
macroId9e6be21f-b8ed-4c47-9b52-b442d3f61d88
displayNameoverblik
nameoverblik
pagePin34


Diagrammet viser to databaser: Metadata, som er den database der vedligeholdes og ejes af NXRG, og Dokumenter, som er den database der vedligeholdes og ejes af OpenXDS. Som det fremgår af diagrammet, fungerer XDSCleanup ved at læse/skrive direkte i disse databaser, og altså ikke gennem ITI-snitfladerne.

XDSCleanup sletter også dokumenter baseret på afdøde personer. Derfor indgår SDM databasen PersonInformation servicen også i løsningen.  Der læses alene fra denne databaseDenne kaldes med snitfladen /deceased.

Løsningsdesign

XDSCleanup er implementeret på NSP-platformen, og udstiller et antal servlets som kaldes af driften. Detaljer om disse snitflader findes i driftsvejledningen. Meningen er at oprydningssnitfladen kaldes med jævne mellemrum, hvilket vil udvælge et antal dokumenter til sletning, og derefter slette dem.

...

Asynkronitet

Implementationen følger husreglerne for baggrundsjobs og understøtter derfor samtidige kørsler af alle oprydningsjobser sikker overfor samtidige kald.

Løsningen for alle oprydningsjobs er en in-memory stak, hvorpå der løbende bliver påfyldt opgaveroperationer. Elementer Operationer bliver altid lagt på stakken i tilfældig rækkefølge.Ved hver kørsel, bliver der enten fyldt nye opgaver på stakken, eller der bliver taget en opgave fra stakken, som bliver udført.

Opgaver på stakken kan enten være en operation til at udføre en oprydning eller en supplier, der leverer flere opgaver til stakken.

Følgende afsnit beskriver hvordan stakken af opgaver operationer opbygges i hver af de tre oprydningsjobs.

registry-timebased-cleanup

Der benyttes to tre typer af suppliers og en operation:operationer.

Operation
OperationSupplierBeskrivelse
Default supplieroperation

Benyttes til at fylde opgaver nye operationer på stakken, når stakken er tom.

For hver konfigureret dokumenttype, oprettes en tidsbaseret supplier typebasered operation for denne type

Tidsbaseret supplier
Typebaseret operation

Givet en dokumenttype og tilhørende konfiguration, hentes id'er på alle matchende dokumenter i NXRG databasen

Opretter en mængde batch oprydningsjobs, hver med et konfigurerbart antal af disse dokument id'er.

BeskrivelseBatch oprydningsjobGivet en liste af dokument id'er, slet dokumenterne fra NXRG

registry-

...

deceased-cleanup

Der benyttes tre fire typer af suppliers og samme operation som for registry-timebased-cleanupoperationer.

SupplierOperationBeskrivelse
Default supplieroperation

Benyttes til at fylde opgaver operationer på stakken, når stakken er tom.

For hvert af tallene 000-999, oprettes en suffix prefix baseret supplieroperation 

Suffix Prefix baseret supplieroperation

Givet et tal mellem 00 og 99, hentes alle borger id'er fra NXRG, som slutter på dette talstarter med disse cifre.

Opretter en mængde batch suppliersmængde borger id baseret operationer, hver med et konfigurerbart antal af disse borger id'er

Batch supplierBorger id baseret operation

Givet en liste af borger id'er, tages de id'er der tilhører afdøde (status 90) borgere. Dette afgøres ved kald til PersonInformation.

Henter id'er på dokumenter i NXRG databasen for disse borger id'er.

Opretter et batch oprydningsjob for en mængde batch oprydningsjobs, hver med et konfigurerbart antal af disse dokument id'er.

Batch oprydningsjobGivet en liste af dokument id'er, slet dokumenterne fra NXRG

repository-cleanup

Der benyttes en enkelt supplier og en operationto typer af operationer.

SupplierOperationBeskrivelse
Default supplieroperation

Benyttes til at fylde opgaver operationer på stakken, når stakken er tom.

Henter id'er på alle slettede dokumenter fra NXRG, som endnu ikke er slettet i OpenXDS

Opretter en mængde batch oprydningsjobs, hver med et konfigurerbart antal af disse dokument id'er.

Batch oprydningsjobGivet en liste af dokument id'er, slet dokumenterne fra OpenXDS

deprecated-document-entries

Der benyttes to typer af operationer.

fra OpenXDS
OperationBeskrivelse
Default operation

Benyttes til at fylde operationer på stakken, når stakken er tom.

For hver konfigureret type kode, oprettes for alle dage i et år oprettes en prefix baseret operation.

Der oprettes (med 2 konfigurerede typekoder)  2*12x31 prefix baserede operationer og prefixet har formen "DDMM". Dvs. for 7. november har den værdien "0711". 

Prefix baseret operation

Henter deprecated document entries ud der er mere end x dage gamle og opretter en mængde batch oprydningsjobs, med et konfigurerbart antal af disse.

Hver prefix baseret operation indeholder kun patientId'er hvor de første 4 tal er identisk med det prefix operationen er oprettet med.

Operationen respekterer den medsendte typekode.

De x antal dage er en konfigurerbar parameter.

Opretter en mængde borger id baseret operationer, hver med et konfigurerbart antal af disse borger id'er.

Batch oprydningsjobGivet en liste af dokument id'er, slet dokumenterne
fra NXRG

dangling-submissionsets

Der benyttes to typer af operationer.

OperationBeskrivelse
Default operation

Benyttes til at fylde nye operationer på stakken, når stakken er tom.

For alle kombinationer af 3 karakters string med tegnene 0-9 og a-f oprettes en prefix baseret operation. Dette giver totalt 4096 kombinationer.

Prefix baseret operation

Henter submissionsets ud, der ikke er knyttet til en association, og der oprettes en mængde batch oprydningsjobs, med et konfigurerbart antal af disse.

Hver prefix baseret operation indholder kun entryuuid'er hvor de prefix er "urn:uuid" + de 3 karakterer prefix operationen er oprettet med.

Batch oprydningsjobGivet en liste af submissionsets id'er, slet submissionsets fra NXRG

Afkobling af sletning i registry og repository

...

Det er muligt at konfigurere sletning af dokumenter hørende til afdøde personer med status 90 (=døde). I opsætningen kan man angive hvor lang tid dokumenterne for disse personer skal gemmes.

...

Alderen for et dokument beregnes ved først at kigge på attributten deletetrigger_time eller delete_time som er et feltto felter, der vedligeholdes i databasen og er

  • deletetrigger_time sættes vha en funktion (i nxrg): COALESCE(servicestarttime, creation_time). CreationTime er en påkrævet attribut, men det er serviceStartTime ikke. 
  • delete_time sættes vha en funktion (i nxrg): COALESCE(servicestoptime, '2999-12-31')).

Hvis dokumentets alder er større end det konfigurerede antal måneder, så slettes dokumentet. Det skal opsættes som en konfigurationparameter, om jobbet kigger på den ene eller den anden egenskab.

Data der slettes i NXRG og OpenXDS

...