Page History
| Navitabs |
|---|
| Table of Contents |
|---|
Introduktion
Formål
Formålet med dette dokument er at beskrive systemarkitekturen for DROS.
Læsevejledning
Nærværende dokument er tiltænkt udviklere og IT-arkitekter med interesse i DROS og dens opbygning.
Definitioner og referencer
| NSP | National Service Platform |
| DROS | Dokumentregistrings- og opdateringsservice |
| DGWS | Den Gode WebService |
Overblik over DROS
Dokumentregistrings- og opdateringsservice (DROS) håndterer oprettelsen af nye dokumenter. Servicen tager såldees imod registreringer til repository. Efterfølgende sørger det centrale XDS repository for at meta-data afleveres til registry, så dokumenterne kan fremsøges vha. Dokumentdelingsservice (DDS)
| HTML |
|---|
<iframe src="https://archi.nspop.dk/NSP/570928ca/views/id-6a5cebb5-c103-4f88-bfc3-0e96ed8049b4.html" name="test" height="450" 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.
Løsningens afhængigheder
DROS betjener sig af tredjeparts biblioteker fra IPF Open eHealth Integration Platform til implementations- og hjælpeklasser, der har med XDS IHE at gøre.
DROS anvender NSP libraries:
- audit-api
- security-api
- NSP validerings bibliotek
DROS kalder følgende eksterne services:
- Sores. Integrationen har en intern cache til genbrug af kald inden for en konfigurerbare duration.
- PersonInformation
Løsningens opbygning
Nedenstående diagram viser opbygningen af DROS.
...
Hvis valideringerne er overholdt, så anvender DROS klasser i pakkerne dk.nsp.dros.backend(.impl) til at kalde den bagvedliggende XDS infrastruktur.
Validering i DROS
DROS validerer de indkommende request.requests.
Whitelisting
DROS har sin egen whitelistingtabel, hvor cvr eller UUID for det kaldende certifikat skal være whitelistet. Se DROS - Driftsvejledning for detaljer.
Håndterede type koder (type codes)
DROS kan konfigureres med en liste af type codes, sådan at en instans håndtere en eller flere type koder. Dette resulterer i følgende opførsel, hvis der kaldes med en ikke håndteret type:
- ITI-41 Provide and Register document: hvis typecode indgår i dokumentets metadata (documententry) og den ikke håndteres afvises kaldet med en fejl.
- ITI-42 Register document set: hvis typecode indgår i dokumentets metadata (documententry) og den ikke håndteres afvises kaldet med en fejl.
- ITI-61 Register on demand document: hvis typecode indgår i dokumentets metadata (documententry) og den ikke håndteres afvises kaldet med en fejl.
- ITI-57 Update metadata: hvis typecode indgår i dokumentets metadata (documententry) og den ikke håndteres afvises kaldet med en fejl.
- ITI-57 Deprecate: forventes at blive afvist af bagvedliggende registry, da target dokument forventes ikke at være tilgængeligt.
IHE validering
I det anvendte openhealth bibliotek findes en standard XDS validering. Dette anvendes til en simpel validering, som tjekker, at I skrivende stund er der tale om en simpel validering, der tjekker, om det indkommende request er lovligt i henhold til standarden IHE XDS.
Valideringspakkerne er struktureret, så disse senere kan udvides med NSP specifikke valideringer.
Validering af
...
Kalderen vil således altid få et eller flere Document Entry tilbage fra FSK Registry, hvis der spørges på et lovligt CPR nummer og man ikke vha. søgekriterier har udeholdt formatcode og typecode.
Til valideringen skal der opsættes en CPR validering, der anvender CPRExists service til verficering af CPR-numre. CPR valideringen kan køre i følgende tre modes:
...
requests vha. standard valideringsbibliotek
Der er udviklet et bibliotek til validering af XDS dokumenter, XdsValidation.
DROS er konfigureret til at anvende dette bibliotek til at validere requests, inden de videresendes til det bagvedliggende registry. Der er en række konfigurationer, som sættes op til valideringsbiblioteket, sådan at DROS har mulighed for at påvirke valideringen. I dets nuværende form drejer det sig hovedsagligt om en række lister af gyldige koder. F.eks. hvilke typecodes, formatcodes, eventscodes etc metadata og dokument må indeholde.
Se driftsvejledning for detaljer om muligheder og konfiguration. Validering gennem validerings bibliotek kan køre i fire modes:
- OFF: Validering foretages ikke.
- LOG: Validering foretages, men requestet videresendes alligevel. Eventuelle valideringsfejl bliver auditlogget (se driftsvejledning for detaljer om dette). Anvenderen ser ikke resultatet af validering.
- WARNING: Validering foretages, men requestet videresendes alligevel. Eventuelle valideringsfejl bliver auditlogget (se driftsvejledning for detaljer om dette), og sendes tilbage til anvenderen som warnings.
- REJECT: Validering foretages, og requestet afvises hvis valideringen mislykkes.
Validering af request vha. DROS' udvidede valideringsbibliotek
DROS har implementeret egen validering vha. valideringsbiblioteket framework. Det drejer sig om validering af Cpr numre vha. PatientInformation samt Sor koder vha. Sores.
Der findes i DROS en enricher og 2 validatorer. Se dokumentationen til valideringsbiblioteket for en bedre forståelse af principperne.
Det udvidede valideringsbibliotek anvender de samme 4 modes, som standard biblioteket.
| Gliffy Diagram | ||||||
|---|---|---|---|---|---|---|
|
Ovenstående figur visualiseres hvordan DROS' lokale validerings træ er struktureret.
DocumentEntryPatientIdExistsValidator kalder PatientInformation i forbindelse med validering.
DocumentEntryAuthorInstitutionSorEnricher kalder Sores i forbindelse med enrichment.
For flere detaljer omkring den enkelte validator, se DROS anvender guide
...
.