Stream: implementers
Topic: FHIR Validator jar source code
Niranjan Kumar (Mar 05 2020 at 09:20):
Hi All , Can anyone point me to the source code of FHIR Validator jar . Jar works fine from command line but i want to use it in my java code to validate incoming FHIR resource.
Grahame Grieve (Mar 05 2020 at 09:49):
https://github.com/hapifhir/org.hl7.fhir.core. you want the class org.hl7.fhir.validation.ValidationEngine
Grahame Grieve (Mar 05 2020 at 09:50):
or maybe org.hl7.fhir.validation.NativeHostServices
Grahame Grieve (Mar 05 2020 at 09:50):
but you would be better to use it as hosted in HAPI
Niranjan Kumar (Mar 05 2020 at 09:59):
"but you would be better to use it as hosted in HAPI " means which one ? Are you trying to say use Hapi Fhir Validation ?
Grahame Grieve (Mar 05 2020 at 10:16):
I think that's generally a better idea. HAPI has more run time wrapping services
Niranjan Kumar (Mar 05 2020 at 13:14):
I tried using Profile Validator code stated at https://hapifhir.io/hapi-fhir/docs/validation/profile_validator.html but getting issues like this :
16:13| INFO | VersionUtil.java 72 | HAPI FHIR version 4.1.0 - Rev 03163c2cf5
16:13| INFO | FhirContext.java 174 | Creating new FHIR context for FHIR version [R4]
16:13| INFO | DefaultProfileValidationSupport.java 227 | Loading structure definitions from classpath: /org/hl7/fhir/r4/model/profile/profiles-resources.xml
16:13| INFO | DependencyLogImpl.java 75 | FHIR XML procesing will use StAX implementation 'Woodstox' version '5.1.0'
16:13| INFO | DefaultProfileValidationSupport.java 227 | Loading structure definitions from classpath: /org/hl7/fhir/r4/model/profile/profiles-types.xml
16:13| INFO | DefaultProfileValidationSupport.java 227 | Loading structure definitions from classpath: /org/hl7/fhir/r4/model/profile/profiles-others.xml
16:13| INFO | DefaultProfileValidationSupport.java 227 | Loading structure definitions from classpath: /org/hl7/fhir/r4/model/extension/extension-definitions.xml
16:13| ERROR | FhirInstanceValidator.java 222 | Failure during validation
java.lang.UnsupportedOperationException
at org.hl7.fhir.r4.hapi.ctx.HapiWorkerContext.generateSnapshot(HapiWorkerContext.java:242)
at org.hl7.fhir.r4.elementmodel.ParserBase.getDefinition(ParserBase.java:122)
at org.hl7.fhir.r4.elementmodel.JsonParser.parse(JsonParser.java:123)
at org.hl7.fhir.r4.validation.InstanceValidator.validate(InstanceValidator.java:539)
at org.hl7.fhir.r4.validation.InstanceValidator.validate(InstanceValidator.java:531)
at org.hl7.fhir.r4.hapi.validation.FhirInstanceValidator.validate(FhirInstanceValidator.java:220)
at org.hl7.fhir.r4.hapi.validation.FhirInstanceValidator.validate(FhirInstanceValidator.java:242)
at org.hl7.fhir.r4.hapi.validation.BaseValidatorBridge.doValidate(BaseValidatorBridge.java:20)
at org.hl7.fhir.r4.hapi.validation.BaseValidatorBridge.validateResource(BaseValidatorBridge.java:43)
at org.hl7.fhir.r4.hapi.validation.FhirInstanceValidator.validateResource(FhirInstanceValidator.java:33)
at ca.uhn.fhir.validation.FhirValidator.validateWithResult(FhirValidator.java:243)
at ca.uhn.fhir.validation.FhirValidator.validateWithResult(FhirValidator.java:198)
This is the code i have executed :
FhirContext ctx = FhirContext.forR4(); FhirValidator validator = ctx.newValidator(); FhirInstanceValidator instanceValidator = new FhirInstanceValidator(); validator.registerValidatorModule(instanceValidator); String resourceText = ResourceStringProvider.getObservationResourceInStringContained(); //get resource json ValidationResult result2 = validator.validateWithResult(resourceText); System.out.println(result2.isSuccessful());
Am i missing something , any pointer to working example .
Grahame Grieve (Mar 05 2020 at 20:42):
probably a question for the #hapi stream
Last updated: Apr 12 2022 at 19:14 UTC