Skip to content

Validator for ITI-65 only supports MHD 3.2 #497

@Ivan1pl

Description

@Ivan1pl

I'm attempting to use itiRequestValidator to validate MHD 4.x requests (IPF version: 5.1.0). My route looks like this:

        from("mhd-iti65:mhdservice?audit=true")
                // ...
                .setHeader(VALIDATION_MODE, constant(MODEL | SCHEMA))
                .process(itiRequestValidator())
                // ...

As a result, I get errors for everything related to the new MHD specification, e.g.:

In Iti65Validator I found that it has a separate bundle consistency validation based on MHD version:

        if (transactionBundle instanceof Mhd421) {
            validateBundleConsistency421(transactionBundle);
        } else {
            validateBundleConsistency320(transactionBundle);
        }

But then validates using only the instance validator for MHD 3.2:

        var validator = fhirContext.newValidator();
        validator.setValidateAgainstStandardSchema(false);
        validator.setValidateAgainstStandardSchematron(false);
        var instanceValidator = new FhirInstanceValidator(validationSupportv320);
        instanceValidator.setNoTerminologyChecks(false);
        instanceValidator.setErrorForUnknownProfiles(true);
        instanceValidator.setBestPracticeWarningLevel(BestPracticeWarningLevel.Hint);
        validator.registerValidatorModule(instanceValidator);
        var validationResult = validator.validateWithResult(transactionBundle);

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions