Introduktion

Formål

Formålet med dette dokument er at beskrive systemarkitekturen for NXRG.

Læsevejledning

Nærværende dokument er tiltænkt udviklere og IT-arkitekter med interesse i NXRG og dens opbygning.

Definitioner og referencer


NSPNational Service Platform
NXRGNXP XDS Registry
IHE

Overblik over NXRG

I det følgende gives et overblik over NXRG. Først beskrives NXRG i forhold til dennes samarbejdende services og interne arkitektur (modulopdeling etc.)

Efterfølgende beskrives og begrundes den underliggende datamodel.

Løsningsoverblik

I nedenstående dokument vises overblik over NXRG. Diagrammet viser både løsningens snitflader og eksterne services, som denne samarbejder med. Derudover vises den NXRGs intern lagdelte opbygning (herunder specificering af ansvarsfordelingen i de forskellige lag i applikation).

Samarbejdende services

NXRG samarbejder med følgende komponenter i NSP infrastrukturen:

NXRG er opbygge i en lagdelt arkitektur. I ovenstående diagram er pakkenavne specificeret og giver en kobling til den konkrete sourcekode, der realiserer NXRG (se i øvrigt NXRG - Guide til Udviklere).

Snitflader

De udbudte snitflader er realiseret som SOAP webservices (dk.nsp.nxrg.ws). ITI-XX snitfladerne er specificeret i IHE XDS revision 17 fra juli 2020.

Se følgende:

IHE IT Infrastructure Technical Framework Volume 1 (ITI TF-1) Integration Profiles (Revision 17.0 – Final Text)

IHE IT Infrastructure Technical Framework Volume 2a (ITI TF-2a) Transactions Part A (Revision 17.0 – Final Text)

IHE IT Infrastructure Technical Framework Volume 2b (ITI TF-2b) Transactions Part B (Revision 17.0 – Final Text)

Til at realisere disse ITI-XX snitflader anvendes tredjeparts biblioteker fra IPF Open eHealth Integration Platform til implementations- og hjælpeklasser (herunder mapning af XML baseret model til domænemodel samt validering af hhv requests og responses).

Forretningslag

Forretningsregler i relation til de udbudte ITI-XX services er implementeret udfra specifikationen af IHE XDS (dk.nsp.nxrg.service).

For ITI-18 er det besluttet ikke at understøtte samtlige querytyper, der fremgår af specifikationen, men at nøjes med følende:

Kald af ITI-18 med andre querytyper vil resultere i en fejlkode fra NXRG (se NXRG - Guide til Anvendere).

Databaselag

NXRG har behov for at persistere data i en database. NXRGs datamodel er realiseret udfra følgende principper:

For en detaljeret beskrivelse af databasemodellen se afsnittet nedenfor.

Databasemodel

Følgende overblik viser, hvorledes datamodellen i NXGR er opbygget. Datamodellen er opbygget med udgangspunkt i følgende overordnede principper:

  1. Understøtte MVP: NXRG er startet som et Minimal Viable Product med intentionen om senere at kunne skifte til et andet mere modent produkt. Dette betyder, at modellen ikke skal være mere kompliceret, end højst nødvendigt.
  2. Kunne understøtte udvidelser af NXRG: Selvom kravene (MVP) fra starten er begrænsede, så giver det mening at overveje, at det skal være muligt at udvide NXRG f.eks. med flere ITI-18 query typer. Datamodellen skal i denne sammenhæng være robust over for denne slags ændringer (dvs det skal være velforstået, hvad sådanne udvidelser betyder i forhold til databasemodellen).
  3. Understøtte migrering: Da en væsentlig del af MVP indeholder migrering af data fra OpenText Registry til NXRG, så skal databasemodellen være lavet på en måde, således at migreringen er understøttet.
  4. Driftsvenlig: Det skal være muligt for driften at foretage opgaver i forbindelse med support og drift (f.eks. oprydningsjob)

I det følgende beskriver vi datamodellen for NXRG og beskriver, hvorledes ovenstående principper er respekteret.



DocumentEntryContent

En af de grundlæggende datatyper i et XDS Registry er DocumentEntry. Dette objekt beskriver en indexering af et dokument, der så senere kan hentes i et XDS Repository. Da ITI-XX snitfladerne er SOAP baserede er det i sidste ende XML, der skal returneres fra snitfladerne i NXRG. Det nuværende OpenText Registry baserer sig på en XML database (xDB), som indeholder sådanne XML baserede strukturer.

Indholdet i xml feltet i DocumentEntryContent er det rå XML, der beskriver sådan en DocumentEntry.

For at kunne understøtte de udbudte ITI-XX services er det nødvendigt at kunne søge på udvalgte felter i en DocumentEntry. Disse søgbare felter er trukket ud af den lagrede XML og lagres i den relaterede tabel DocumentEntries. En reference documentEntryId i DocumentEntryContent vedligeholder 1-0 relationen mellem de to tabeller.

I forhold til migrering er det således nødvendigt at loade XML ind i DocumentEntryContent tabellen. Migreringsfunktionaliteten (se nedenfor) anvender denne tabel som dens input.

DocumentEntries

Denne tabel er den søgbare udgave af det data, der ligger i DocumentEntryContent. Behovet for fremsøgning er i høj grad påvirket af kravene fra de enkelte ITI-XX services og i ITI-18's tilfælde i kravene fra de understøttede query typer. Nedenstående tabel er en oversigt over, hvilke elementer i DocumentEntry, der skal kunne søges på:


DocumentEntryentryUuiduniqueIdpatientIdclassCodetypeCodepracticeSettingCodecreationTimeserviceStartTimeserviceStopTimehealthcareFacilityTypeCodeeventCodeListconfidentilityCodeauthorPersonformatCodeavailabilityStatusreferenceIdListhashsize
ITI-18  (FindDocuments)

x

(netop een)

x

(liste)

x

(liste)

x

(liste)

x

(interval)

x

(interval)

x

(interval)

x

(liste)

x

(flere lister)

x

(liste)

x

(liste)

x

(liste)

x

(liste)




ITI-18  (FindDocumentsByReferenceId)

x

(netop een)

x

(liste)

x

(liste)

x

(liste)

x

(interval)

x

(interval)

x

(interval)

x

(liste)

x

(flere lister)

x

(liste)

x

(liste)

x

(liste)

x

(liste)

x

(liste)



ITI-42

(forretningsregler)

3.42.4.1.3.5(opslag)

3.42.4.1.3.3.1(opslag)


3.42.4.1.3.5(brug)












3.42.4.1.3.3.1(brug)3.42.4.1.3.3.1(brug)

ITI-57

(forretningsregler)



















ITI-61

(forretningsregler)



















Migrering

TODO