Stream: german (d-a-ch)
Topic: Basisprofil Blutdruck: Error in discriminator
Morten Ernebjerg (Dec 13 2018 at 09:30):
Ich bekomme gerade einen etwas seltsamen Fehler vom neusten Java JAR Validator, wenn ich versuche, eine Beispiel-Resource gegen den Blutdruck-Basisprofil (http://fhir.de/StructureDefinition/observation-de-blutdruck/0.2) zu validieren:
*FAILURE* validating examples/bp-base-example.xml: error:4 warn:0 info:0 Error @ Observation.component[1] (line 20, col16) : Error in discriminator at Observation.component:diastolisch.code.coding: slicing found Error @ Observation.component[1] (line 20, col16) : Error in discriminator at Observation.component:systolisch.code.coding: slicing found Error @ Observation.component[2] (line 34, col16) : Error in discriminator at Observation.component:diastolisch.code.coding: slicing found Error @ Observation.component[2] (line 34, col16) : Error in discriminator at Observation.component:systolisch.code.coding: slicing found
Wenn ich das richtig lese, beschwert er sich hier über den Profil, könnte aber auch einen Bug im Validator sein ($validate
auf fhir.hl7.de mit meinem Beispiel geht durch, weiss aber nicht, ob er die Profile hat). Hat jemanden diesen Fehler schon mal gesehen?
Morten Ernebjerg (Dec 13 2018 at 09:37):
Beispiel-Resource:
<Observation xmlns="http://hl7.org/fhir"> <meta> <profile value ="http://fhir.de/StructureDefinition/observation-de-blutdruck/0.2"/> </meta> <status value="final"/> <code> <coding> <system value="http://loinc.org"/> <code value="85354-9"/> </coding> </code> <subject> <reference value="Patient/patient-example"/> </subject> <effectiveDateTime value="2016-03-21T18:01:10Z"/> <performer> <reference value="Practitioner/practitioner-example"/> </performer> <component> <code> <coding> <system value="http://loinc.org"/> <code value="8462-4"/> </coding> </code> <valueQuantity> <value value="58"/> <unit value="mmHg"/> <system value="http://unitsofmeasure.org"/> <code value="mm[Hg]"/> </valueQuantity> </component> <component> <code> <coding> <system value="http://loinc.org"/> <code value="8480-6"/> </coding> </code> <valueQuantity> <value value="111"/> <unit value="mmHg"/> <system value="http://unitsofmeasure.org"/> <code value="mm[Hg]"/> </valueQuantity> </component> </Observation>
Simone Heckmann (Dec 13 2018 at 11:23):
Hallo Morten,
hast du das Beispiel mal auf Simplifier hochgeladen und validiert? Dann hättest Du eine Zweitmeinung von einem Validator, der das Profil definitiv kennt ;-)
Morten Ernebjerg (Dec 13 2018 at 11:33):
Hi Simone,
nee, nocht nicht, gute Idee - wie geht das eigentlicht? Meinst Du POST per HTTP-Client gegen https://stu3.simplifier.net/BasisprofilDE/Patient oder can ich $validate auf dem URL benutzen? (ich will ja Simplifier nicht zumüllen :grinning:).
Simone Heckmann (Dec 13 2018 at 11:36):
Simplifier Account anlegen > Sandbox-Projekt erstellen > per upload (c&p) das Beispiel hochladen und dann den Validate-Button verwenden. Ist etwas aufwendiger, aber dafür kannst du uns dann auch den Link zum Beispiel zur Verfügung stellen, und wir können das reproduzieren :)
Morten Ernebjerg (Dec 13 2018 at 11:42):
Ah ja, macht Sinn. Simplifier sagt alles gut - zieht er automatisch den richtigen Profil von dem Basisprofile-Repo?
Morten Ernebjerg (Dec 13 2018 at 11:45):
Ah, macht er. Dann sind die Validatoren wohl unterschiedlicher meinung.
Morten Ernebjerg (Dec 13 2018 at 11:49):
Ich werfe das mal in den Conformance-Stream, danke für den Tipp!
Alexander Zautke (Dec 13 2018 at 11:50):
Man kann die Ressourcen auch unter https://simplifier.net/validate per copy&paste validieren lassen. Simplifier-Account ist trotzdem Pflicht. Es wird aber nichts gespeichert.
Morten Ernebjerg (Dec 13 2018 at 11:51):
@Alexander Zautke Danke, gut zu wissen!
Morten Ernebjerg (Dec 13 2018 at 12:08):
Validator-Battle Follow-up: https://chat.fhir.org/#narrow/stream/23-conformance/topic/Java.20validator.20and.20Simplifier.20disagree.20on.20slice.20validity
Patrick Werner (Dec 13 2018 at 13:54):
Das Profil an sich ist nicht STU3 kompatibel: sdf-20: On StructureDefinition.differential: No slicing on the root element (expression on StructureDefinition.differential: element.first().slicing.empty())
Patrick Werner (Dec 13 2018 at 13:55):
Dies ist ein Bug im Standard der in R4 gefixt wurde, Firely hat es wohl in ihrer Implementierung gefixt, entspricht also nicht STU3 ;-)
Patrick Werner (Dec 13 2018 at 13:56):
Ich hatte im anderen Stream schon gefragt ob das in STU3 noch gefixt würde, ich bin da aber eher pessimistisch.
Patrick Werner (Dec 13 2018 at 13:57):
Wir könnten workarounds in die Basisprofile einbauen um das Triggern dieses Bugs zu verhindern.
Morten Ernebjerg (Dec 13 2018 at 14:08):
Hi Patrick - aha, der Bug! Habe ich schon mal getroffen, allerdings nur in Zusammenhang mit der Validierung von StructureDefinitions
. Woher genau kommt er hier in diesem Kontext? Ich habe mit anderen Blutdruck-Profilen (z.B. Argonaut) rumgespielt, die auch Slicings-in-Slicings haben, und mit dem Java-Validator dagegen validiert, und es hat problemlos geklappt.
Morten Ernebjerg (Dec 13 2018 at 14:15):
Einen Validator-Fix wäre sicherlich am schönsten (danke auch für Deinen Kommentar dazu im Implementer-Stream). Wenn das kurzfristig nicht geht dann wäre Workaround villeicht gar nicht so abwegig. Es ist eine ungute Situation, wenn der vom Spec selbst verlinkten Validator mit einem Standardprofil nicht zurechtkommt (auch wenn der Profil nicht Schuld ist und der Grund bekannt ist), ich habe schon ein paar Stunden damit verbracht und es könnte wohl anderen genauso gehen.
Alexander Zautke (Dec 13 2018 at 15:16):
Kann bestätigen, dass sdf-20 in Simplifier "behoben" wurde. Die Packages im Hintergrund sind ein wenig verschieden.
Morten Ernebjerg (Apr 02 2019 at 07:52):
Dieser Thread ist ja schon etwas eingetrocknet, aber es gibt gute Nachrichten: Der R4-Fix für den sdf-20 Bug wird für STU3 runterportiert im nächsten Technical Correction :tada:
https://gforge.hl7.org/gf/project/fhir/tracker/?action=TrackerItemEdit&tracker_item_id=20339
@Alexander Zautke @Patrick Werner @Simone Heckmann
Last updated: Apr 12 2022 at 19:14 UTC