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

Referenzen die im FHIR Dokument nicht auflösbar sind werden nicht als Fehler erkannt #21

Open
GithubChrisWysocki opened this issue Jul 26, 2024 · 2 comments

Comments

@GithubChrisWysocki
Copy link

Guten Tag,
ich arbeite als Softwareentwickler in einem Apotheken Rechenzentrum. Von Zeit zu Zeit erhalten wir E-Rezepte, bei denen eine Referenz innerhalb des FHIR - Dokuments nicht auflösbar ist. Laut FHIR Spezifikation ist es eine absolute Voraussetzung für die Implementierung (siehe: https://www.hl7.org/fhir/references-definitions.html). Leider ist euer app-referencevalidator nicht im Stande dieses zu erkennen, aber das Problem scheint tiefer zu liegen, denn auch die offiziellen Online-Seiten (https://inferno.healthit.gov/validator/ oder https://validator.fhir.org/ ) zur Validierung von FHIR Dokumenten klassifizieren diesen Fehler nur als Information.

image

Ich füge hier ein echtes anonymisiertes E-Rezept mit diesem Fehler bei.
NoRef.txt
In dem Beispiel gibt es eine Referenz auf einen Patienten "Patient/1764862" Zeile 281, der im Dokument nicht gefunden wird. Glücklicherweise bezieht sich die Referenz auf die Begünstigte Person, die für die Abrechnung von E-Rezepten aktuell nicht benötigt wird, sodass man das im Code ignorieren kann. Es könnte aber Fälle geben wo dies nicht der Fall ist. Ich frage mich eigentlich nur, warum das in der Validierung hier und bei den offiziellen Validatoren nicht als Fehler erkannt wird, wenn es in der Spezifikation als notwendig Voraussetzung angegeben wird?
image

@alexey-tschudnowsky
Copy link
Contributor

alexey-tschudnowsky commented Jul 26, 2024

Hallo @GithubChrisWysocki ,

danke für die Meldung.

Es gibt einen definierten Algorithmus zum Auflösen der Referenzen in Bundles, dem alle Validatoren folgen:

  1. Die relative URL in der Referenz "Patient/1764862" wird in die absolute URL "http://prd.srh-principa.de/fhir/Patient/1764862" umgewandelt
  2. Es wird im Bundle nach einem entry mit entry.fullUrl gleich der absoluten URL gesucht.
  3. Falls im Bundle kein Eintrag mit der absolutenURL gefunden wird, "wird versucht" diese zu "dereferenzieren" --> und hier besteht eine Schwierigkeit für die Validatoren, denn die Ressource kann gar nicht im ERP-Umfeld über HTTP abgerufen werden.

Die meisten Validatoren, auch Referenzvalidator, hören beim Punkt 2 auf und fragen keine extern referenzierten Ressourcen ab wie im Punkt 3 beschrieben. Es gibt gewisse Argumente dies nicht zu tun (Offline-Betrieb, Sicherheit, Performance etc.). Stattdessen wird oft nur eine Information oder Warnung ausgegeben, dass der Validator nicht weiß ob die Ressource existiert oder nicht.

Um nun in den Bundles trotzdem Integrität zu bewahren wurden in den aktuellen KBV-FHIR-Profilen viele zusätzliche FHIR Constraints definiert, die versuchen sicherzustellen, dass die Querreferenzen "korrekt" sind, also dass sie auf entries verweisen die wirklich existieren. Hier haben Sie allerdings eventuell eine Stelle entdeckt, wo ein Constraint fehlt.

Wir nehmen den Fund mit und klären ihn intern sowie mit den Kollegen aus KBV.

@ABDA-FHIR
Copy link

Die ProfileBasis "Coverage.beneficiary" erwartet eine Wertbelegung (Kardinalität 1:1), daher wurde hier auf den Patienten (begünstigte Person) referenziert. Der Typ der Referenz ist beschränkt ([Patient]) und da nur ein Patient im Bundle angegeben werden kann ist dies eigentlich eindeutig. Vielleicht eher eine Frage von gültigen URLs.

Für die Fehlerbehebung des verursachenden Systems (Composition.author:Pruefnummer.identifier.value) wäre eine Auflistung über das ERPFIND-Ticket 919 (https://service.gematik.de/browse/ERPFIND-919) hilfreich.

Danke

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

3 participants