Page History
...
Det som kendetegner en almindelig validator er extension af klassen AbstractStarterImpl.
Dem gode kombination
Den gode kombination
Principperne for oprettelse af validerings regler og sammensætning i struktur er:
- Start med en Starter, som forstår input
- Berig input efterhånden som behovet opstår
- Valider kun data, som er relevant. Dvs. anvend træstrukturer
- Tjek relevant overordnede dele er til stede i input (så validatorer ikke behøver blive negative, hvis de ikke er)
- Er input "uforståligt" så returner ingen ting
- Er input "forståligt" men forkert så returner fejl
Alle ITI kald default valideringer konfigureret i XdsValidation biblioteket er sat op efter følgende princippetstruktur:
- Den tilhørende starter vælges (Starter)
- En struktur validator tilknyttes (Validator) som sikrer at et kald indeholder de komponenter, det skal (eksempel for ITI 41 documententry, assocation og selve dokumentet)
- Alle andre relevante validatorer tilføjes, for ITI 41 drejer det sig om følgende træstruktur:
- XDSDocumentContentModelEnricher (ModelEnricher), der pakker input ud som UTF8 bytes hvis muligt
- XDSDocumentValidator (AtLeastOneValidator) og CdaDocumentHeaderModelEnricher, som forventer at kunne pakke input ud som et CDA dokument ved at finde en CDA header
- CdaDocumentTypeValidator (AtLeastOneValidator) og CdaDocumentApdV2ModelEnricher, CdaDocumentPhmrModelEnricher samt CdaDocumentQrdModelEnricher der forventer at dokumentet er af en af typerne APD, PHMR eller QRD
- Felt specifikke validatorer (Validator) for hver af de 3 dokument typer
- CdaDocumentTypeValidator (AtLeastOneValidator) og CdaDocumentApdV2ModelEnricher, CdaDocumentPhmrModelEnricher samt CdaDocumentQrdModelEnricher der forventer at dokumentet er af en af typerne APD, PHMR eller QRD
- XDSDocumentValidator (AtLeastOneValidator) og CdaDocumentHeaderModelEnricher, som forventer at kunne pakke input ud som et CDA dokument ved at finde en CDA header
- Felt specifikke validatorer (Validator) for documentEntry
- Felt specifikke validatorer (Validator) for SubmissionSet
- Sammenlignings validatorer per felt (Validator) der sikrer DocumentEntry og SubmissionSet indeholder samme værdier
- Sammenlignings validatorer per felt (Validator) der sikrer DocumentEntry og dokumentets CDA header indeholder samme værdier
- XDSDocumentContentModelEnricher (ModelEnricher), der pakker input ud som UTF8 bytes hvis muligt
Hvor ITI kald har sin kombination, da ikke alle elementer er til stede i de forskellige kald. F.eks, har et ITI 41 det eneste kald, som har et faktisk dokument, der kan valideres.
En grafisk præsenation af denne konfiguration af default validering kan ses i Design og arkitektur dokumentet.En grafisk præsenation af dette for et ITI 41 kald ser ud på følgende måde
Eksempel fra DROS
Følgende kode, består af 3 trin.
...