Introduktion
XDS Validation er et Java API, der stiller validering af CDA dokumenter og kald til XDS til rådighed. Det kaldes fra DROS i forbindelse med registrering af dokumenter og metadata i XDS infrastrukturen.
For nuværende er der tale om APD v2, QRD og PHMR
Overblik
Biblioteket består en en række valideringsklasser, der kan sættes sammen i en factory til en specifik samling af regler for en given "ting", der skal valideres. F.eks. sætter Iti41ValidationFactory et antal regler sammen, sådan at et iti-41 kald valideres korrekt inkl. cda dokumentet, der sendes i kaldet.
- En "ValidationFactory" består af en række validerings klasser.
- I princippet en klasse per validerings regel.
- En valideringsklasse består af en validering samt en liste af eventuelle under-valideringer.
- En validering kan også være at forsøge at pakke et element ud, f.eks. at pakke et cda dokument ud af de bytes et kald har modtaget
- Alle klasser (undtagen "starter") operer på det samme objekt (XDSDocument), der sendes rundt og eventuelt beriges undervejs
- En valideringsklasse returner enten en fejlliste (med 0 eller flere fejl) eller null. Null returneres hvis validatorklassen ikke kunne udføre sin validering med hvad den modtog som input.
Typer
En valideringsklasse til en Factory, er en af følgende 4 typer (templates):
- Validator - har en validering og et gennemløb på sine under-validatorer
- ModelEnricher - valideringen består af udpakning af noget input. Denne "berigelse" sættes på det indkomne objekt (deraf ModelEnricher) og senere validatorer kan så arbejde herpå
- AtLeastOneValidator - adskiller sig fra en alminelig validator ved, at den kræver at mindst een af dens under-validatorer vil kendes ved input
- Starter - adskiller sig fra en ModelEnricher ved, at den ikke modtager det fælles objekt XDSDocument, men istedet en request type. Dette request pakkes ud i et eller flere XDSDocument objekter, og Starter kører så sine under-validatorer på hver af disse objekter.
Default validerings konfiguration
Følgende diagram viser, hvordan de forskellige factory klasser, der komponerer en validering, for nuværende er sat sammen.
* phad dokumenter bliver ikke enriched til XDSDocument.
Instantiering
Instantiering af biblioteket sker via en række factory klasser. Se guide til anvendere.