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 }
@SuppressWarnings("unused") private static void validateFiles() throws Exception { // START SNIPPET: validateFiles FhirContext ctx = FhirContext.forDstu3(); // Create a validator and configure it FhirValidator validator = ctx.newValidator(); validator.setValidateAgainstStandardSchema(true); validator.setValidateAgainstStandardSchematron(true); // Get a list of files in a given directory String[] fileList = new File("/home/some/dir").list(new WildcardFileFilter("*.txt")); for (String nextFile : fileList) { // For each file, load the contents into a string String nextFileContents = IOUtils.toString(new FileReader(nextFile)); // Parse that string (this example assumes JSON encoding) IBaseResource resource = ctx.newJsonParser().parseResource(nextFileContents); // Apply the validation. This will throw an exception on the first // validation failure ValidationResult result = validator.validateWithResult(resource); if (result.isSuccessful() == false) { throw new Exception("We failed!"); } } // END SNIPPET: validateFiles }
private void applyDefaultValidators() { if (myValidators.isEmpty()) { setValidateAgainstStandardSchema(true); if (ourPhPresentOnClasspath) { setValidateAgainstStandardSchematron(true); } } }
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); } } } }
/** * Validates a resource instance, throwing a {@link ValidationFailureException} if the validation fails * * @param theResource * The resource to validate * @throws ValidationFailureException * If the validation fails * @deprecated use {@link #validateWithResult(IBaseResource)} instead */ @Deprecated public void validate(IResource theResource) throws ValidationFailureException { applyDefaultValidators(); ValidationResult validationResult = validateWithResult(theResource); if (!validationResult.isSuccessful()) { throw new ValidationFailureException(myContext, validationResult.toOperationOutcome()); } }
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.setValidateAgainstStandardSchema(theCommandLine.hasOption("x")); val.setValidateAgainstStandardSchematron(theCommandLine.hasOption("s")); results = val.validateWithResult(contents); } catch (DataFormatException e) { throw new CommandFailureException(e.getMessage());
@Override ValidationResult doValidate(FhirValidator theValidator, String theRequest) { return theValidator.validateWithResult(theRequest); }
validator.setValidateAgainstStandardSchema(false); validator.setValidateAgainstStandardSchematron(false); validator.registerValidatorModule(instanceVal);
validator.registerValidatorModule(instanceValidator);
@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 ValidationResult doValidate(FhirValidator theValidator, IBaseResource theRequest) { return theValidator.validateWithResult(theRequest); }
if (myValidatorModules != null) { for (IValidatorModule next : myValidatorModules) { validator.registerValidatorModule(next);
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); } } } }
/** * Validates a resource instance, throwing a {@link ValidationFailureException} if the validation fails * * @param theResource * The resource to validate * @throws ValidationFailureException * If the validation fails * @deprecated use {@link #validateWithResult(IBaseResource)} instead */ @Deprecated public void validate(IResource theResource) throws ValidationFailureException { applyDefaultValidators(); ValidationResult validationResult = validateWithResult(theResource); if (!validationResult.isSuccessful()) { throw new ValidationFailureException(myContext, validationResult.toOperationOutcome()); } }
private void applyDefaultValidators() { if (myValidators.isEmpty()) { setValidateAgainstStandardSchema(true); if (ourPhPresentOnClasspath) { setValidateAgainstStandardSchematron(true); } } }
val.registerValidatorModule(instanceValidator); ValidationResult result = val.validateWithResult(input); IBaseOperationOutcome oo = result.toOperationOutcome(); ourLog.info("Result:\n{}", xmlParser.setPrettyPrint(true).encodeResourceToString(oo));
FhirContext ctx = FhirContext.forDstu3(); FhirValidator validator = ctx.newValidator(); validator.setValidateAgainstStandardSchema(true); validator.setValidateAgainstStandardSchematron(true); ValidationResult result = validator.validateWithResult(resource); if (result.isSuccessful() == false) { for (SingleValidationMessage message : result.getMessages()) {
@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 ValidationResult doValidate(FhirValidator theValidator, String theRequest) { return theValidator.validateWithResult(theRequest); }
/** * 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); }