Stream: implementers
Topic: inconsistent structuredefinition
Nick George (Aug 08 2018 at 21:34):
hello, looking at the raw structure definition for http://hl7.org/fhir/StructureDefinition/observation-geneticsDNASequenceVariantName, I noticed that in the snapshot, it lists Extension.extension as having max="*", but in the differential it has Extension.extension with max="0". What's the story there?
Grahame Grieve (Aug 08 2018 at 21:41):
sounds like more problems in the snapshot generator
Nick George (Aug 08 2018 at 21:47):
yeah I assumed it was a bug - I'm working on codegen for profiles and not sure how to handle cases where the snapshot and diff are inconsistent. Is that something that can get updated?
Grahame Grieve (Aug 08 2018 at 21:48):
well, I will certainly fix it for R4. There's also an outstanding request for me to regenerate the R3 snapshots, but that's pretty scary... it's a great deal of work, and what's the QA process?
Nick George (Aug 08 2018 at 21:51):
I imagine the QA process would be a validator that makes sure all fields in elements in the diff match those fields in those elements in the snapshot
Grahame Grieve (Aug 08 2018 at 21:56):
if only it were so simple
Nick George (Aug 08 2018 at 22:08):
Ok Thanks, sounds like best bet is to go with differential when there is a disagreement
Nick George (Aug 10 2018 at 23:00):
so I wrote a tool that compares structure definition differentials to the snapshots and calls out inconsistencies. Let me know if that's something you'd be interested in taking a look at. Most of what it found is pretty inconsequential (changed comments/definitions, or mappings that are added in differential but not present in snapshot). Two bigger things are max number of extensions, where it looks like the differential is the correct one, and some contentReferences on profiles, where it seems that the snapshot is correct (e.g., ConsentDirective profile of Contract.term.group lists #Contract.term in the snapshot but #term in the differential)
Grahame Grieve (Aug 10 2018 at 23:58):
how does the tool work?
Grahame Grieve (Aug 10 2018 at 23:58):
I mean, what langauge/platform to run it?
Nick George (Aug 11 2018 at 00:13):
Java. right now I'm writing it into our StructureDefinition -> protobuf converter, but would be trivial to refactor into a standalone
Patrik Sundberg (Aug 11 2018 at 01:31):
@Nick George , we should add a standalone binary in the github package to do these verifications. hopefully others can add more checks if we missed some.
Grahame Grieve (Aug 11 2018 at 03:43):
I would like to be able to run it from java code on winows/linux/osx - then I could built it into the standard build
Nick George (Aug 11 2018 at 06:07):
I think we can make that work
Last updated: Apr 12 2022 at 19:14 UTC