Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support for bundle option to validate directly a resource within the bundle #348

Open
oliveregger opened this issue Feb 5, 2025 · 1 comment

Comments

@oliveregger
Copy link
Member

oliveregger commented Feb 5, 2025

Feedback from Rob to support bundle otpion.

The validator cli has an additional option that you can validate directly a resource conforming to a profile with -bundle

https://confluence.hl7.org/display/FHIR/Using+the+FHIR+Validator#UsingtheFHIRValidator-Validatingasingleresourceinabundle

Using this for documents, this gives you the advantage that you have only errors according to that profile and the specified resource and not the complete output with slicing information over the whole bundle:

java -jar "/Users/oegger/.vscode/extensions/yannick-lagger.vscode-fhir-tools-1.5.1/validator_cli.jar" "/Users/oegger/Downloads/ips_altera_rob.json" -version 4.0.1 -ig "hl7.fhir.uv.ips#1.1.0" -bundle Composition:0 http://hl7.org/fhir/uv/ips/StructureDefinition/Composition-uv-ips
FHIR Validation tool Version 6.5.7 (Git# 83ff4602758d). Built 2025-01-30T17:49:06.348Z (6 days old)
Java: 17.0.8 from /opt/homebrew/Cellar/openjdk@17/17.0.8/libexec/openjdk.jdk/Contents/Home on aarch64 (64bit). 8192MB available
Paths: Current = /Users/oegger/Documents/github/ch-elm, Package Cache = /Users/oegger/.fhir/packages
Params: /Users/oegger/Downloads/ips_altera_rob.json -version 4.0.1 -ig hl7.fhir.uv.ips#1.1.0 -bundle Composition:0 http://hl7.org/fhir/uv/ips/StructureDefinition/Composition-uv-ips
Locale: Switzerland/CH
Jurisdiction: Switzerland
Loading
Load FHIR v4.0 from hl7.fhir.r4.core#4.0.1 - 4576 resources (00:03.116)
Load hl7.fhir.uv.extensions.r5#5.1.0 - 1396 resources (00:01.965)
Load hl7.terminology#6.2.0 - 4287 resources (00:00.808)
Load hl7.terminology.r5#6.0.2 - 4243 resources (00:00.374)
Load hl7.fhir.uv.extensions#5.2.0-ballot - 702 resources (00:00.455)
Terminology server http://tx.fhir.org - Version Connected to Terminology Server at http://tx.fhir.org (00:01.061)
Load hl7.terminology.r4#5.0.0 - 4174 resources (00:00.436)
Load fhir.dicom#2022.4.20221006 - 1319 resources (00:00.022)
Load hl7.fhir.uv.ips#1.1.0 - 103 resources (00:00.230)
Package Summary: [hl7.fhir.r4.core#4.0.1, hl7.fhir.xver-extensions#0.1.0, hl7.fhir.uv.extensions.r5#5.1.0, hl7.terminology#6.2.0, hl7.terminology.r5#6.0.2, hl7.fhir.uv.extensions#5.2.0-ballot, hl7.terminology.r4#5.0.0, fhir.dicom#2022.4.20221006, hl7.fhir.uv.ips#1.1.0]
Terminology Cache at /Users/oegger/tmp/default-tx-cache
Get set... go (00:00.182)
Cached new session. Cache size = 1
Validating
Validate /Users/oegger/Downloads/ips_altera_rob.json
Validate Bundle against http://hl7.org/fhir/StructureDefinition/Bundle|4.0.1..........20..........40..........60..........80.........Validate MedicationStatement against http://hl7.org/fhir/uv/ips/StructureDefinition/MedicationStatement-uv-ips|1.1.0..........20..........40..........60..........80.........|
Validate MedicationStatement against http://hl7.org/fhir/uv/ips/StructureDefinition/MedicationStatement-uv-ips|1.1.0..........20..........40..........60..........80.........|
Validate MedicationStatement against http://hl7.org/fhir/uv/ips/StructureDefinition/MedicationStatement-uv-ips|1.1.0..........20..........40..........60..........80.........|
Validate MedicationStatement against http://hl7.org/fhir/uv/ips/StructureDefinition/MedicationStatement-uv-ips|1.1.0..........20..........40..........60..........80.........|
Validate MedicationStatement against http://hl7.org/fhir/uv/ips/StructureDefinition/MedicationStatement-uv-ips|1.1.0..........20..........40..........60..........80.........|
.100.Validate AllergyIntolerance against http://hl7.org/fhir/uv/ips/StructureDefinition/AllergyIntolerance-uv-ips|1.1.0..........20..........40..........60..........80.........|
Validate AllergyIntolerance against http://hl7.org/fhir/uv/ips/StructureDefinition/AllergyIntolerance-uv-ips|1.1.0..........20..........40..........60..........80.........|
Validate AllergyIntolerance against http://hl7.org/fhir/uv/ips/StructureDefinition/AllergyIntolerance-uv-ips|1.1.0..........20..........40..........60..........80.........|
Validate AllergyIntolerance against http://hl7.org/fhir/uv/ips/StructureDefinition/AllergyIntolerance-uv-ips|1.1.0..........20..........40..........60..........80.........|
Validate AllergyIntolerance against http://hl7.org/fhir/uv/ips/StructureDefinition/AllergyIntolerance-uv-ips|1.1.0..........20..........40..........60..........80.........|
...|
00:01.458
Done. Times: Loading: 00:08.775, validation: 00:01.458. Memory = 862Mb

FAILURE: 4 errors, 24 warnings, 17 notes
Error @ Bundle.entry[0].resource.section[2] (line 139, col22): Composition.section:sectionProblems.entry: minimum required = 1, but only found 0 (from http://hl7.org/fhir/uv/ips/StructureDefinition/Composition-uv-ips|1.1.0)
Error @ Bundle.entry[0].resource.section[2] (line 139, col22): Slice 'Composition.section:sectionProblems.entry:problem': a matching slice is required, but not found (from http://hl7.org/fhir/uv/ips/StructureDefinition/Composition-uv-ips|1.1.0). Note that other slices are allowed in addition to this required slice
Error @ Bundle.entry[0].resource/Composition/33A38B65386A62CCE8446299FC166D60F8620EC6/.section[1].text.div (line 119, col88): Constraint failed: txt-2: 'The narrative SHALL have some non-whitespace content'
Error @ Bundle.entry[0].resource/Composition/33A38B65386A62CCE8446299FC166D60F8620EC6/.section[2].text.div (line 152, col88): Constraint failed: txt-2: 'The narrative SHALL have some non-whitespace content'
Information @ Bundle.entry[9].resource/MedicationStatement/D04CD3183E8020D725E7A9175F539464F4AEE67F/.dosage[0].timing.code (line 690, col30): None of the codings provided are in the value set 'TimingAbbreviation' (http://hl7.org/fhir/ValueSet/timing-abbreviation|4.0.1), and a coding is recommended to come from this value set (codes = urn:oid:2.16.840.1.113883.3.57.1.3.17.1#Q4h)

see comparision here, with matchbox, where the same error is burried in the failed slicing information:

https://gazelle.ihe.net/evs/report.seam?oid=1.3.6.1.4.1.12559.11.11.4.21884

Image

the reason for the failed error message is buried in the bottom part in the information:

Image
@oliveregger
Copy link
Member Author

bundle parameter maps to BundleValidationRules
there is also an additional parameter -check-ips-codes

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant