private void addOrRemoveValidator(boolean theValidateAgainstStandardSchema, Class<? extends IValidatorModule> type, IValidatorModule theInstance) { if (theValidateAgainstStandardSchema) { boolean found = haveValidatorOfType(type); if (!found) { registerValidatorModule(theInstance); } } else { for (Iterator<IValidatorModule> iter = myValidators.iterator(); iter.hasNext();) { IValidatorModule next = iter.next(); if (next.getClass().equals(type)) { unregisterValidatorModule(next); } } } }
val.registerValidatorModule(instanceValidator);
public void validationIntro() { // START SNIPPET: validationIntro FhirContext ctx = FhirContext.forDstu3(); // Ask the context for a validator FhirValidator validator = ctx.newValidator(); // Create some modules and register them IValidatorModule module1 = new SchemaBaseValidator(ctx); validator.registerValidatorModule(module1); IValidatorModule module2 = new SchematronBaseValidator(ctx); validator.registerValidatorModule(module2); // Pass a resource in to be validated. The resource can // be an IBaseResource instance, or can be a raw String // containing a serialized resource as text. Patient resource = new Patient(); ValidationResult result = validator.validateWithResult(resource); String resourceText = "<Patient.....>"; ValidationResult result2 = validator.validateWithResult(resourceText); // The result object now contains the validation results for (SingleValidationMessage next : result.getMessages()) { System.out.println(next.getLocationString() + " " + next.getMessage()); } // END SNIPPET: validationIntro }
val.registerValidatorModule(new FhirInstanceValidator(new DefaultProfileValidationSupport()));
val.registerValidatorModule(new org.hl7.fhir.r4.hapi.validation.FhirInstanceValidator(new org.hl7.fhir.r4.hapi.ctx.DefaultProfileValidationSupport()));
case DSTU2: { org.hl7.fhir.instance.hapi.validation.FhirInstanceValidator instanceValidator = new org.hl7.fhir.instance.hapi.validation.FhirInstanceValidator(); val.registerValidatorModule(instanceValidator); org.hl7.fhir.instance.hapi.validation.ValidationSupportChain validationSupport = new org.hl7.fhir.instance.hapi.validation.ValidationSupportChain( new org.hl7.fhir.instance.hapi.validation.DefaultProfileValidationSupport()); val.registerValidatorModule(instanceValidator); ValidationSupportChain validationSupport = new ValidationSupportChain(new DefaultProfileValidationSupport()); if (igPack != null) {
val.registerValidatorModule(module1); val.registerValidatorModule(module2);
validator.registerValidatorModule(instanceValidator);
validator.registerValidatorModule(instanceVal);
validator.registerValidatorModule(instanceValidator);
validator.registerValidatorModule(myInstanceValidator); validator.registerValidatorModule(new IdChecker(theMode));
validator.registerValidatorModule(myInstanceValidator); validator.registerValidatorModule(new IdChecker(theMode));
if (myValidatorModules != null) { for (IValidatorModule next : myValidatorModules) { validator.registerValidatorModule(next);
validator.registerValidatorModule(myInstanceValidator); validator.registerValidatorModule(new IdChecker(theMode));
private void addOrRemoveValidator(boolean theValidateAgainstStandardSchema, Class<? extends IValidatorModule> type, IValidatorModule theInstance) { if (theValidateAgainstStandardSchema) { boolean found = haveValidatorOfType(type); if (!found) { registerValidatorModule(theInstance); } } else { for (Iterator<IValidatorModule> iter = myValidators.iterator(); iter.hasNext();) { IValidatorModule next = iter.next(); if (next.getClass().equals(type)) { unregisterValidatorModule(next); } } } }
@Override protected void validateResourceForStorage(QuestionnaireResponse theResource, ResourceTable theEntityToSave) { super.validateResourceForStorage(theResource, theEntityToSave); if (!myValidateResponses) { return; } QuestionnaireResponse qa = theResource; if (qa == null || qa.getQuestionnaire() == null || qa.getQuestionnaire().getReference() == null || qa.getQuestionnaire().getReference().isEmpty()) { return; } FhirValidator val = myRefImplCtx.newValidator(); val.setValidateAgainstStandardSchema(false); val.setValidateAgainstStandardSchematron(false); FhirQuestionnaireResponseValidator module = new FhirQuestionnaireResponseValidator(); module.setResourceLoader(new JpaResourceLoader()); module.setWorkerContext(new HapiWorkerContext(myRefImplCtx, myValidationSupport)); val.registerValidatorModule(module); ValidationResult result = val.validateWithResult(myRefImplCtx.newJsonParser().parseResource(getContext().newJsonParser().encodeResourceToString(qa))); if (!result.isSuccessful()) { IBaseOperationOutcome oo = getContext().newJsonParser().parseResource(OperationOutcome.class, myRefImplCtx.newJsonParser().encodeResourceToString(result.toOperationOutcome())); throw new UnprocessableEntityException(getContext(), oo); } }
@Override public void validateRequest(FhirContext context, Object payload, Map<String, Object> parameters) { Bundle transactionBundle = (Bundle) payload; validateTransactionBundle(transactionBundle); validateBundleConsistency(transactionBundle); for (Bundle.BundleEntryComponent entry : transactionBundle.getEntry()) { Class<? extends IBaseResource> clazz = entry.getResource().getClass(); if (VALIDATORS.containsKey(clazz)) { FhirValidator validator = context.newValidator(); validator.registerValidatorModule(VALIDATORS.get(clazz)); ValidationResult validationResult = validator.validateWithResult(entry.getResource()); if (!validationResult.isSuccessful()) { IBaseOperationOutcome operationOutcome = validationResult.toOperationOutcome(); throw FhirUtils.exception(UnprocessableEntityException::new, operationOutcome, "Validation Failed"); } } } }
@Override public void validateRequest(FhirContext context, Object payload, Map<String, Object> parameters) { Bundle transactionBundle = (Bundle) payload; validateTransactionBundle(transactionBundle); validateBundleConsistency(transactionBundle); for (Bundle.BundleEntryComponent entry : transactionBundle.getEntry()) { Class<? extends IBaseResource> clazz = entry.getResource().getClass(); if (VALIDATORS.containsKey(clazz)) { FhirValidator validator = context.newValidator(); validator.registerValidatorModule(VALIDATORS.get(clazz)); ValidationResult validationResult = validator.validateWithResult(entry.getResource()); if (!validationResult.isSuccessful()) { IBaseOperationOutcome operationOutcome = validationResult.toOperationOutcome(); throw FhirUtils.exception(UnprocessableEntityException::new, operationOutcome, "Validation Failed"); } } } }
public static void main(String[] args) { // Create an incomplete encounter (status is required) Encounter enc = new Encounter(); enc.addIdentifier().setSystem("http://acme.org/encNums").setValue("12345"); // Create a new validator FhirValidator validator = FhirContext.forDstu3().newValidator(); // Cache this object! Supplies structure definitions DefaultProfileValidationSupport support = new DefaultProfileValidationSupport(); // Create the validator FhirInstanceValidator module = new FhirInstanceValidator(support); validator.registerValidatorModule(module); // Did we succeed? IParser parser = FhirContext.forDstu3().newXmlParser().setPrettyPrint(true); System.out.println(parser.encodeResourceToString(validator.validateWithResult(enc).toOperationOutcome())); } }
/** * Create FHIR context, validator, and validation support. */ public ValidationResources() { // Only support for dstu3 for now ctx = FhirContext.forDstu3(); validator = ctx.newValidator(); instanceValidator = new FhirInstanceValidator(); IValidationSupport valSupport = new ValidationSupport(); ValidationSupportChain support = new ValidationSupportChain(valSupport, new DefaultProfileValidationSupport()); instanceValidator.setValidationSupport(support); validator.registerValidatorModule(instanceValidator); }