Page History
...
Yderligere detaljer og introduktion til dokumentdeling kan læses i Dokumentdeling på NSP.
For at lette arbejdet med at overholde/validerere for standarderne, findes XdsValidation biblioteket. DROS komponenten kan gøre brug af denne validering, for at sikre, at der ikke komme ugyldige data ind i XDS infrastrukturen. Anvendere af DROS kan selv implementere validering vha. af XdsValidation biblioteket, hvis man ønsker at finde fejl, inden det faktiske kald udføres. Alle, der er koblet på NSP XDS infrastrukturen med enten registry eller repository eller som har sit eget affinitetsdomæne, kan med fordel anvende XdsValiderings biblioteket. Også som supplement til eventuel egen validering.
...
- Udvikling af egen udvidede validering i klassen Apd2StartStopTimeSpecifikValueValidator (en almindelig validator vil her være passende som som skabelon)
- Lave en kopi af klassen Iti41ValidationFactory som Iti41ValidationFactoryExtended
- Tilføj egen validering (se eksemplet ovenfor i afsnit 2.1 for "fremtidigt eksempel med yderligere validering"for "fremtidigt eksempel med yderligere validering"
- Der, hvor man normalt ville bruge Iti41ValidationFactory.createIti41Validator anvender man istedet Iti41ValidationFactoryExtended.createIti41Validator.
Har man brug for at kunne lave sin egen enricher, og tilhørende opbevaring til en validator senere i flowet kan man gøre følgende
- Opret en klasse, som beskriver det objekt man gerne vil have enricheren til at enriche til
- Opret en enricher i stil med f.eks. CdaDocumentPhmrModelEnricher
- Dens enrich metode skal modtage XDSDocument som input
- Den skal oprette et beriget objekt (punkt 1) og tilføje det til XDSDocument som en "enrichment".
- Lav de yderligere relevante validatorer, som validererer dette ny enriched object
Kombiner ekisterende og nye enrichere og validatorer i en ValidationFactory som beskrevet i afsnittet tidligere.
Der, hvor man normalt ville bruge Iti41ValidationFactory.createIti41Validator anvender man istedet Iti41ValidationFactoryExtended.createIti41Validator.Code Block language java title Eksempel på anvendelse af eget format public static final EnrichmentKey<MyTestDocument> ENRICHMENT_MY_TEST_DOCUMENT = EnrichmentKey.create(MyTestDocument.class); public class MyTestDocument { private String somefield1; private String somefield2; } public class MyTestDocumentModelEnricher extends AbstractModelEnricherImpl<XDSDocument> implements Validator<XDSDocument> { @Override protected ValidationResultSet enrich(XDSDocument input) { ValidationResultSet validationResultSet = new ValidationResultSet(); MyTestDocument myTestClass = new MyTestDocument(); // lav logik som tager relevant indhold fra XDSDocument og pakker det om til MyTestDocument // opstår der fejl kan de returneres i validationResultSet xdsDocument.setEnrichment(ENRICHMENT_MY_TEST_DOCUMENT, myTestClass); return validationResultSet; } } public class MyTestDocumentSomeField1Validator extends AbstractValidatorImpl<XDSDocument> { @Override protected ValidationResultSet validateInternal(XDSDocument input) { if (input == null || input.getEnrichment(ENRICHMENT_MY_TEST_DOCUMENT) == null) { return null; } ValidationResultSet validationResultSet = new ValidationResultSet(); // lav logik til validering af input.getEnrichment(ENRICHMENT_MY_TEST_DOCUMENT).getSomeField1(); // hvis fejl returneres de i validationResultSet; return validationResultSet; } }
Eksempel fra DROS
For at gøre brug af xdsValidation skal følgende dependencies tilføjes til maven pom fil:
...
- ClassCode: Default gyldigt codeSystem er OID "1.2.208.184.100.9" (DK_IHE_ClassCode_DE).
- ConfidentialityCode: Default gyldigt codeSystem er OID "2.16.840.1.113883.5.25" .25". Gyldig kode er "N". (DK_IHE_ConfidentialityCode_DE).
- OrganisationCode: Default gyldige codeSystemer er "1.2.208.176.1.1" (SOR) og "1.2.208.176.1.4" (YDERNUMMER).
- PatientIdCode: Default gyldigt codeSystem er "1.2.208.176.1.2" (CPR).
...
Klasse | Validering | ITI 41 | ITI 42 | ITI 61 | ITI 57 | Cda dokument |
---|---|---|---|---|---|---|
ProvideAndRegisterDocumentSetStarter |
| x | ||||
RegisterDocumentSetStarter |
| x | x | x | ||
XDSDocumentITI41StructureValidator |
| x | ||||
XDSDocumentITI42StructureValidator |
| x | ||||
XDSDocumentITI61StructureValidator |
| x | ||||
XDSDocumentITI57StructureValidator |
| x | ||||
XDSDocumentValidator |
| x | ||||
CdaDocumentValidator |
| x | ||||
CdaDocumentTypeValidator |
| x | x | |||
XDSDocumentContentModelEnricher |
| x | ||||
CdaDocumentHeaderModelEnricher |
| x | x | |||
CdaDocumentApdV2ModelEnricher |
| x | x | |||
CdaDocumentPhmrModelEnricher |
| x | x | |||
CdaDocumentQrdModelEnricher |
| x | x | |||
CdaDocumentPhadModelEnricher |
| x | x |
Typevalideringer
Dette er hjælpevalideringer, som feltvalideringer gør brug af.
Klasse | Validering |
---|---|
AbstractElementCompare |
|
CodedModelCompare |
|
DateTimeCompare |
|
DateCompare |
|
StringCompare |
|
CodedValueValidation |
|
StringValidation |
|
ClassCodeValidation |
|
ConfidentialityCodeValidation |
|
EventCodeValidation |
|
FormatCodeValidation |
|
HealthcareFacilityTypeCodeValidation |
|
LanguageCodeValidation |
|
OrganisationCodeValidation |
|
PatientIdCodeValidation |
|
PracticeSettingCodeValidation |
|
TitleValidation |
|
TypeCodeValidation |
|
...
Klasse | Validering mellem de 2 entiter nævnt i klassens navn | ITI 41 | ITI 42 | ITI 61 | ITI 57 | Cda dokument |
---|---|---|---|---|---|---|
CdaCrossDocumentEntryAuthorInstitutionValidator |
| x | ||||
CdaCrossDocumentEntryAuthorPersonValidator |
| x | ||||
CdaCrossDocumentEntryConfidentialityCodeValidator |
| x | ||||
CdaCrossDocumentEntryCreationTimeValidator |
| x | ||||
CdaCrossDocumentEntryEventCodeValidator |
| x | ||||
CdaCrossDocumentEntryLanguageCodeValidator |
| x | ||||
CdaCrossDocumentEntryLegalAuthenticatorValidator |
| x | ||||
CdaCrossDocumentEntryPatientIdValidator |
| x | ||||
CdaCrossDocumentEntryServiceStartTimeValidator |
| x | ||||
CdaCrossDocumentEntryServiceStopTimeValidator |
| x | ||||
CdaCrossDocumentEntrySourcePatientIdValidator |
| x | ||||
CdaCrossDocumentEntrySourcePatientInfoValidator |
| x | ||||
CdaCrossDocumentEntryTitleValidator |
| x | ||||
CdaCrossDocumentEntryTypeCodeValidator |
| x | ||||
SubmissionSetCrossDocumentEntryAuthorInstitutionValidator |
| x | x | x | x | |
SubmissionSetCrossDocumentEntryAuthorPersonValidator |
| x | x | x | x | |
SubmissionSetCrossDocumentEntryPatientIdValidator |
| x | x | x | x |
...
Klasse | Felt | Validering | ITI 41 | ITI 42 | ITI 61 | ITI 57 | Cda dokument |
---|---|---|---|---|---|---|---|
CdaHeaderAuthorInstitutionValidator | AuthorInstitution |
| x | x | |||
CdaHeaderAuthorPersonValidator | AuthorPerson |
| x | x | |||
CdaHeaderConfidentialityCodeValidator | ConfidentialityCode |
| x | x | |||
CdaHeaderEventCodeValidator | EventCode |
| x | x | |||
CdaHeaderFormatCodeValidator | FormatCode |
| x | x | |||
CdaHeaderLanguageCodeValidator | LanguageCode |
| x | x | |||
CdaHeaderPatientIdValidator | PatientId |
| x | x | |||
CdaHeaderSourcePatientIdValidator | SourcePatientId |
| x | x | |||
CdaHeaderSourcePatientInfoValidator | SourcePatientInfo |
| x | x | |||
CdaHeaderTitleValidator | Title |
| x | x | |||
CdaHeaderTypeCodeValidator | TypeCode |
| x | x | |||
DocumentEntryClassCodeValidator | ClassCode |
| x | x | x | x | |
DocumentEntryAuthorInstitutionValidator | AuthorInstitution |
| x | x | x | x | |
DocumentEntryAuthorPersonValidator | AuthorPerson |
| x | x | x | x | |
DocumentEntryAvailabilityStatusValidator | AvailabilityStatus |
| x | x | x | x | |
DocumentEntryClassCodeValidator | ClassCode |
| x | x | x | x | |
DocumentEntryConfidentialityCodeValidator | ConfidentialityCode |
| x | x | x | x | |
DocumentEntryCreationTimeValidator | CreationTime |
| x | x | x | x | |
DocumentEntryEntryUUIDValidator | EntryUUID |
| x | x | x | x | |
DocumentEntryEventCodeValidator | EventCode |
| x | x | x | x | |
DocumentEntryFormatCodeValidator | FormatCode |
| x | x | x | x | |
DocumentEntryHashValidator | Hash |
| x | x | x | ||
DocumentEntryHealthcareFacilityTypeCodeValidator | HealthcareFacilityTypeCode |
| x | x | x | x | |
DocumentEntryLanguageCodeValidator | LanguageCode |
| x | x | x | x | |
DocumentEntryLegalAuthenticatorValidator | LegalAuthenticator |
| x | x | x | x | |
DocumentEntryMimeTypeValidator | MimeType |
| x | x | x | x | |
DocumentEntryPatientIdValidator | PatientId |
| x | x | x | x | |
DocumentEntryPracticeSettingCodeValidator | PracticeSettingCode |
| x | x | x | x | |
DocumentEntryReferenceidListValidator | ReferenceidList |
| x | x | x | x | |
DocumentEntryRepositoryUniqueIdValidator | RepositoryUniqueId |
| x | x | x | x | |
DocumentEntrySizeValidator | Size |
| x | x | x | ||
DocumentEntrySourcePatientIdValidator | SourcePatientId |
| x | x | x | x | |
DocumentEntrySourcePatientInfoValidator | SourcePatientInfo |
| x | x | x | x | |
DocumentEntryTitleValidator | Title |
| x | x | x | x | |
DocumentEntryTypeCodeValidator | TypeCode |
| x | x | x | x | |
DocumentEntryTypeValidator | Type |
| x | x | x | x | |
DocumentEntryUniqueIdValidator | UniqueId |
| x | x | x | x | |
DocumentEntryURIValidator | URI |
| x | x | x | x | |
SubmissionSetAuthorInstitutionValidator | AuthorInstitution |
| x | x | x | x | |
SubmissionSetEntryUUIDValidator | EntryUUID |
| x | x | x | x | |
SubmissionSetPatientIdValidator | PatientId |
| x | x | x | x | |
SubmissionSetUniqueIdValidator | UniqueId |
| x | x | x | x | |
Apd2AppointmentIdValidator | AppointmentId |
| x | x | |||
Apd2CustodianIdValidator | Custodian |
| x | x | |||
Apd2StartStopTimeValidator | StartStopTime |
| x | x | |||
PhmrCustodianIdValidator | Custodian |
| x | x | |||
QrdCustodianIdValidator | Custodian |
| x | x |
...