Page History
...
| Code Block | ||||||
|---|---|---|---|---|---|---|
| ||||||
// Fra klassen Iti41ValidationImpl metode validateAndTransform List<ErrorInfo> xdsValidationErrors = getXdsValidationErrors(provideAndRegisterDocumentSet, xdsValidatorFactory.buildIti41Validator(), xdsValidationLevel); // Fra klassen RegistryItiValidationImpl protected List<ErrorInfo> getXdsValidationErrors(ProvideAndRegisterDocumentSet request, ProvideAndRegisterDocumentSetStarterList<ProvideAndRegisterDocumentSetStarter> starterstarterList, XdsValidationLevel xdsValidationLevel) { List<ErrorInfo> return getXdsValidationErrors(() -> starter.validate(request), xdsValidationLevel); } private List<ErrorInfo> getXdsValidationErrors(Supplier<ValidationResultSet> validator, XdsValidationLevel xdsValidationLevel) { if(xdsValidationLevel == XdsValidationLevel.OFFerrors = new ArrayList<>(); for (ProvideAndRegisterDocumentSetStarter starter : starterList) { List<ErrorInfo> returnvalidationErrors new= ArrayList<>(getXdsValidationErrors(request, starter, xdsValidationLevel); } List<ErrorInfo> errors = new ArrayList<>( errors.addAll(validationErrors); // Perform the validation if (errors.size() > 0) { ValidationResultSet resultSet = validator.get() return errors; // Construct the result } if(resultSet.hasErrors()) {} return errors; } private List<ErrorInfo> // Based on the validation level, either return a warning or an error. Severity severity = getSeverity(xdsValidationLevel); getXdsValidationErrors(ProvideAndRegisterDocumentSet request, ProvideAndRegisterDocumentSetStarter starter, XdsValidationLevel xdsValidationLevel) { return getXdsValidationErrors(() -> starter.validate(request), xdsValidationLevel); } private List<ErrorInfo> getXdsValidationErrors(Supplier<ValidationResultSet> validator, XdsValidationLevel xdsValidationLevel) { if(xdsValidationLevel == XdsValidationLevel.OFF) { for(ValidationErrorreturn ve : resultSet.getErrorsnew ArrayList<>()) {; } List<ErrorInfo> ErrorInfo errorInfoerrors = new ErrorInfo(ErrorCode.REGISTRY_METADATA_ERROR, ve.getErrorMessage(), severity, "", ""); errors.add(errorInfo); }ArrayList<>(); // Based on the validation level, either return a warning or an error. Severity severity = getSeverity(xdsValidationLevel); try }{ return errors; } //Klassen XdsValidatorFactory public class XdsValidatorFactory { Perform the validation ValidationResultSet publicresultSet ProvideAndRegisterDocumentSetStarter= buildIti41Validatorvalidator.get() {; return Iti41ValidationFactory.createIti41Validator();// Construct the result } public RegisterDocumentSetStarter buildIti42Validator(if(resultSet.getValidationResults().size() > 0) { return Iti42ValidationFactory.createIti42Validator(); // } Based on the validation publiclevel, RegisterDocumentSetStartereither buildIti57Validator() { return a warning or an error. return Iti57ValidationFactory.createIti57Validator(); } for(ValidationResult publicvr RegisterDocumentSetStarter: buildIti61ValidatorresultSet.getValidationResults()) { return Iti61ValidationFactory.createIti61Validator(); ErrorInfo errorInfo = new ErrorInfo(ErrorCode.REGISTRY_METADATA_ERROR, vr.getValidationError().getErrorMessage(), severity, "", ""); errors.add(errorInfo); } } } |
Dvs ønsker man benytte default valideringen for ITI 41 kaldet gøres det ved at:
- Oprette en instans af ProvideAndRegisterDocumentSetStarter (linie 2)
- Kalde metoden validate på denne med ITI 41 requested (ProvideAndRegisterDocumentSet) (linie 6)
- Retur får man en liste over de fejl XdsValidation fandt (linie 15)
På samme måde kan man få valideret de øvrige kald, ved at vælge den rette Starter og sende requsted ind til den.
| Code Block | ||||||
|---|---|---|---|---|---|---|
| ||||||
// Fra klassen Iti42ValidationImpl metode validateAndTransform
List<ErrorInfo> xdsValidationErrors = getXdsValidationErrors(registerDocumentSet, xdsValidatorFactory.buildIti42Validator(), xdsValidationLevel);
// Fra klassen RegistryItiValidationImpl
protected List<ErrorInfo> getXdsValidationErrors(RegisterDocumentSet request, RegisterDocumentSetStarter starter, XdsValidationLevel xdsValidationLevel) {
return getXdsValidationErrors(() -> starter.validate(request), xdsValidationLevel); //for getXdsValidationErrors se ovenfor
}
|
| Code Block | ||||||
|---|---|---|---|---|---|---|
| ||||||
// Fra klassen Iti57ValidationImpl metode validateAndTransform
List<ErrorInfo> xdsValidationErrors = getXdsValidationErrors(registerDocumentSet, xdsValidatorFactory.buildIti61Validator(), xdsValidationLevel);
// Fra klassen RegistryItiValidationImpl
protected List<ErrorInfo> getXdsValidationErrors(RegisterDocumentSet request, RegisterDocumentSetStarter starter, XdsValidationLevel xdsValidationLevel) {
return getXdsValidationErrors(() -> starter.validate(request), xdsValidationLevel); //for getXdsValidationErrors se ovenfor
}
|
...
| language | java |
|---|---|
| title | Iti57ValidationImpl - anvendels af XdsValidation |
| linenumbers | true |
...
} catch (Exception e) {
// Because validation depends on validation library and builder parsers handling of exceptions we need to make sure any unstable exception handling there will not get to the caller.
String errorMessage = "Unhandled exception in validation library or its sub dependencies.";
LOGGER.error(errorMessage, e);
ErrorInfo errorInfo = new ErrorInfo(ErrorCode.REGISTRY_METADATA_ERROR, errorMessage, getSeverity(xdsValidationLevel), "", "");
errors.add(errorInfo);
}
return errors;
}
//Klassen XdsValidatorFactory
public class XdsValidatorFactory {
...
public List<ProvideAndRegisterDocumentSetStarter> buildIti41Validator() {
return Arrays.asList(
Iti41ValidationFactory.createIti41Validator(xdsConfigurationFactory.buildXDSConfiguration()),
createItiProvideAndRegisterDocumentSetStarterDrosValidator());
}
...
} |
Dvs ønsker man benytte default valideringen for ITI 41 kaldet gøres det ved at:
- Oprette en instans af ProvideAndRegisterDocumentSetStarter (linie 2)
- Kalde metoden validate på denne med ITI 41 requested (ProvideAndRegisterDocumentSet) (linie 18)
- Retur får man en liste over de fejl XdsValidation fandt (linie 31)
På samme måde kan man få valideret de øvrige kald, ved at vælge den rette Starter og sende requsted ind til den.
Se iøvrigt praktisk anvendelse i bibliotekets egne unit test. F.eks. CdaHeaderValidatorTest der viser CDA dokument validering og ProvideAndRegisterDocumentSetValidatorTest, der viser en række kald for iti-41.
...