View a markdown version of this page

$questionnaire-packageFHIR-Operation für HealthLake - AWS HealthLake

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

$questionnaire-packageFHIR-Operation für HealthLake

Bei diesem $questionnaire-package Vorgang wird ein umfangreiches Paket abgerufen, das einen FHIR-Fragebogen und all seine Abhängigkeiten enthält, die für das Rendern und Verarbeiten des Fragebogens erforderlich sind. Bei diesem Vorgang wird der Implementierungsleitfaden für Da Vinci Documentation Templates and Rules (DTR) implementiert, der ein dynamisches Rendern von Formularen für Dokumentationsanforderungen in Arbeitsabläufen im Gesundheitswesen ermöglicht.

Funktionsweise

  • Anfrage: Sie senden Parameter, die die benötigten Fragebögen sowie den Umfang und den Kontext der Bestellung angeben

  • Abrufen: HealthLake sammelt den Fragebogen und alle Abhängigkeiten (ValueSets, CQL-Bibliotheken usw.)

  • Package: Alle Ressourcen sind in einem standardisierten Format gebündelt

  • Antworten: Sie erhalten ein Komplettpaket, das zum Rendern und zur Datenerfassung bereit ist

Anwendungsfälle

  • Unterlagen zur vorherigen Autorisierung: Sammeln Sie die erforderlichen klinischen Informationen für vorherige Autorisierungsanfragen

  • Deckungsanforderungen: Sammeln Sie die Unterlagen, die zur Erfüllung der Deckungsanforderungen des Kostenträgers erforderlich sind

  • Klinischer Data Exchange: Strukturierung klinischer Daten für die Einreichung an Kostenträger

  • Dynamische Formulare: Rendern Sie Fragebögen mit vorab ausgefüllten Patientendaten und bedingter Logik

API-Endpunkt

POST /datastore/{datastoreId}/r4/Questionnaire/$questionnaire-package Content-Type: application/fhir+json

Anforderungsparameter

Eingabeparameter

Der Anfragetext muss eine FHIR-Parameter-Ressource mit den folgenden Parametern enthalten:

Parameter Typ Kardinalität Description
coverage Abdeckung 1.. * (Erforderlich) Ressource (n) zur Bestimmung des Mitglieds und des Versicherungsschutzes für die Dokumentation
questionnaire kanonisch 0.. * Kanonische URL (s) für bestimmte Fragebögen, die zurückgegeben werden sollen (kann Version enthalten)
order Ressource 0.. * Ordnen Sie Ressourcen (DeviceRequest, ServiceRequest MedicationRequest, Begegnung, Termin) an, um den Kontext festzulegen
changedSince dateTime 0.1 Falls vorhanden, werden nur Ressourcen zurückgegeben, die nach diesem Zeitstempel geändert wurden

Regeln für die Parametervalidierung

Mindestens EINE der folgenden Angaben muss angegeben werden (zusätzlich zu den erforderlichen Angabencoverage):

  • Eine oder mehrere questionnaire kanonische URLs

  • Eine oder mehrere Ressourcen order

Gültige Anforderungskombinationen:

  • coverage + questionnaire

  • coverage + order

  • coverage + questionnaire + order

Beispielanforderung

POST /datastore/example-datastore/r4/Questionnaire/$questionnaire-package Content-Type: application/fhir+json Authorization: Bearer <your-token> { "resourceType": "Parameters", "parameter": [ { "name": "coverage", "resource": { "resourceType": "Coverage", "id": "example-coverage", "status": "active", "beneficiary": { "reference": "Patient/example-patient" }, "payor": [{ "reference": "Organization/example-payer" }], "class": [{ "type": { "coding": [{ "system": "http://terminology.hl7.org/CodeSystem/coverage-class", "code": "group" }] }, "value": "12345" }] } }, { "name": "questionnaire", "valueCanonical": "http://example.org/fhir/Questionnaire/home-oxygen-therapy|2.0" }, { "name": "order", "resource": { "resourceType": "ServiceRequest", "id": "example-service-request", "status": "active", "intent": "order", "code": { "coding": [{ "system": "http://www.ama-assn.org/go/cpt", "code": "94660", "display": "Continuous positive airway pressure ventilation (CPAP)" }] }, "subject": { "reference": "Patient/example-patient" } } }, { "name": "changedSince", "valueDateTime": "2024-01-01T00:00:00Z" } ] }

Reaktionsformat

Erfolgreiche Antwort (200 OK)

Die Operation gibt eine FHIR-Parameter-Ressource zurück, die ein oder mehrere Paketpakete enthält. Jedes Package beinhaltet:

Art des Eintrags Kardinalität Description
Fragebogen 1 Der auszufüllende Fragebogen
QuestionnaireResponse 0.. 1 Vorab ausgefüllte oder teilweise ausgefüllte Antwort (falls zutreffend)
Bibliothek 0.. * CQL-Bibliotheken mit Logik vor der Befüllung und bedingter Logik
ValueSet 0.. * Erweitert ValueSets (für Antwortoptionen mit <40 Erweiterungen)
Beispiel Beispielantwort
{ "resourceType": "Parameters", "parameter": [ { "name": "PackageBundle", "resource": { "resourceType": "Bundle", "id": "questionnaire-package-example", "meta": { "profile": ["http://hl7.org/fhir/us/davinci-dtr/StructureDefinition/DTR-QPackageBundle"] }, "type": "collection", "timestamp": "2024-03-15T10:30:00Z", "entry": [ { "fullUrl": "http://example.org/fhir/Questionnaire/home-oxygen-therapy", "resource": { "resourceType": "Questionnaire", "id": "home-oxygen-therapy", "url": "http://example.org/fhir/Questionnaire/home-oxygen-therapy", "version": "2.0", "status": "active", "title": "Home Oxygen Therapy Documentation", "item": [ { "linkId": "1", "text": "Patient diagnosis", "type": "choice", "answerValueSet": "http://example.org/fhir/ValueSet/oxygen-diagnoses" } ] } }, { "fullUrl": "http://example.org/fhir/Library/oxygen-prepopulation", "resource": { "resourceType": "Library", "id": "oxygen-prepopulation", "url": "http://example.org/fhir/Library/oxygen-prepopulation", "version": "1.0", "type": { "coding": [{ "system": "http://terminology.hl7.org/CodeSystem/library-type", "code": "logic-library" }] }, "content": [{ "contentType": "text/cql", "data": "bGlicmFyeSBPeHlnZW5QcmVwb3B1bGF0aW9u..." }] } }, { "fullUrl": "http://example.org/fhir/ValueSet/oxygen-diagnoses", "resource": { "resourceType": "ValueSet", "id": "oxygen-diagnoses", "url": "http://example.org/fhir/ValueSet/oxygen-diagnoses", "status": "active", "expansion": { "timestamp": "2024-03-15T10:30:00Z", "contains": [ { "system": "http://hl7.org/fhir/sid/icd-10", "code": "J44.0", "display": "COPD with acute lower respiratory infection" }, { "system": "http://hl7.org/fhir/sid/icd-10", "code": "J96.01", "display": "Acute respiratory failure with hypoxia" } ] } } }, { "fullUrl": "http://example.org/fhir/QuestionnaireResponse/example-prepopulated", "resource": { "resourceType": "QuestionnaireResponse", "id": "example-prepopulated", "questionnaire": "http://example.org/fhir/Questionnaire/home-oxygen-therapy|2.0", "status": "in-progress", "subject": { "reference": "Patient/example-patient" }, "basedOn": [{ "reference": "ServiceRequest/example-service-request" }], "item": [ { "linkId": "1", "text": "Patient diagnosis", "answer": [{ "valueCoding": { "system": "http://hl7.org/fhir/sid/icd-10", "code": "J44.0", "display": "COPD with acute lower respiratory infection" } }] } ] } } ] } }, { "name": "Outcome", "resource": { "resourceType": "OperationOutcome", "issue": [{ "severity": "information", "code": "informational", "details": { "text": "Successfully retrieved questionnaire package" } }] } } ] }

Arbeitsablauf bei der Bedienung

Wie wird Ihre Anfrage HealthLake bearbeitet

HealthLake Führt bei $questionnaire-package Ihrem Anruf die folgenden Schritte aus:

  1. Patient und Kostenträger identifizieren: Extrahiert den Patienten und die Versicherungsorganisation aus Ihrem coverage Parameter.

  2. Finden Sie den richtigen Fragebogen:

    • Mit questionnaire Parameter: Verwendet die von Ihnen angegebene kanonische URL

    • Mit order Parameter: Stimmt mit dem Bestellcode (CPT/HCPCS/LOINC) und dem Zahler überein, um den passenden Fragebogen zu finden

  3. Abhängigkeiten erfassen: Ruft automatisch alles ab, was zum Rendern des Fragebogens benötigt wird:

    • CQL-Bibliotheken — Logik für Fragen vor der Eingabe und für bedingte Fragen

    • ValueSets- Antwortoptionen (werden automatisch erweitert, wenn weniger als 40 Optionen verfügbar sind)

    • QuestionnaireResponse- Alle vorhandenen Antworten, die gerade bearbeitet oder abgeschlossen sind

  4. Alles zusammen verpacken:

    • Bündelt alle Ressourcen (jede Ressource ist nur einmal enthalten)

    • Filtert nach changedSince Zeitstempel, falls angegeben

    • Fügt Warnungen hinzuOutcome, wenn Ressourcen fehlen

Ergebnis: Ein vollständiges, eigenständiges Paket, das zum Rendern bereit ist.

Fehlermeldungen

400 Bad Request (400 Ungültige Anfrage)

Wird zurückgegeben, wenn die Überprüfung der Anfrage fehlschlägt.

{ "resourceType": "OperationOutcome", "issue": [{ "severity": "error", "code": "required", "details": { "text": "At least one of 'questionnaire' or 'order' must be provided along with 'coverage'" } }] }

424 Fehlgeschlagene Abhängigkeit

Wird zurückgegeben, wenn eine abhängige Ressource nicht abgerufen werden kann.

{ "resourceType": "OperationOutcome", "issue": [{ "severity": "warning", "code": "not-found", "details": { "text": "Referenced Library 'http://example.org/fhir/Library/missing-library' could not be retrieved" } }] }

401 Nicht autorisiert

Wird zurückgegeben, wenn Anmeldeinformationen fehlen oder ungültig sind.

403 Forbidden

Wird zurückgegeben, wenn der authentifizierte Benutzer nicht berechtigt ist, auf die angeforderten Ressourcen zuzugreifen.

406 Nicht akzeptabel

Wird zurückgegeben, wenn der angeforderte Inhaltstyp nicht bereitgestellt werden kann.

409 Conflict (409 Konflikt)

Wird zurückgegeben, wenn ein Versions- oder Parallelitätskonflikt vorliegt.

410 Verschwunden

Wird zurückgegeben, wenn die angeforderte Ressource dauerhaft gelöscht wurde.

429 Zu viele Anfragen

Wird zurückgegeben, wenn die Ratenlimits überschritten werden.

500 Internal Server Error

Wird zurückgegeben, wenn ein unerwarteter Serverfehler auftritt.

501 Nicht implementiert

Wird zurückgegeben, wenn der angeforderte Vorgang noch nicht implementiert ist.

Validierungsregeln

Überprüfung von Eingaben

  • coverageParameter ist erforderlich (1.. * Kardinalität)

  • Mindestens einer von questionnaire oder order muss angegeben werden

  • Alle Coverage-Ressourcen müssen gültige FHIR-Ressourcen sein

  • Bei allen Ressourcen der Bestellung muss es sich um gültige FHIR-Ressourcen handeln

  • Canonical URLs muss ordnungsgemäß formatiert sein

  • changedSincemuss eine gültige ISO 8601 dateTime sein

QuestionnaireResponse Validierung

  • statusmuss angemessen sein (in-progress,completed,amended)

  • Die Struktur muss mit dem referenzierten Fragebogen übereinstimmen

  • basedOnmuss auf gültige Ressourcen der Bestellung verweisen

  • subjectmuss auf gültige Patientenressourcen verweisen

Deduplizierung von Ressourcen

  • Jede Ressource erscheint nur einmal im Paket

  • Ausnahme: Verschiedene Versionen derselben Ressource können beide enthalten sein

  • Ressourcen werden anhand ihrer kanonischen URL und Version identifiziert

Leistungsspezifikationen

Metrik Spezifikation
Limit für die Anzahl der Ressourcen 500 Ressourcen pro Paket
Größenbeschränkung für Pakete Maximal 5 MB

Erforderliche Berechtigungen

Um den $questionnaire-package Vorgang verwenden zu können, stellen Sie sicher, dass Ihre IAM-Rolle über Folgendes verfügt:

  • healthlake:QuestionnairePackage- Um den Vorgang aufzurufen

  • healthlake:ReadResource- Um den Fragebogen und die zugehörigen Ressourcen abzurufen

  • healthlake:SearchWithPost- Um nach QuestionnaireResponse und verwandten Ressourcen zu suchen

SMART auf FHIR-Zielfernrohren

Erforderliche Mindestbereiche:

  • SMART Version 1: user/Questionnaire.read user/Library.read user/ValueSet.read user/QuestionnaireResponse.read

  • SMART v2: user/Questionnaire.rs user/Library.rs user/ValueSet.rs user/QuestionnaireResponse.rs

Wichtige Hinweise zur Implementierung

Strategie zum Abruf von Ressourcen

Priorität bei der Identifizierung des Fragebogens:

  • Kanonische URL (falls der questionnaire Parameter angegeben wurde) — Höchste Priorität

  • Auftragsanalyse (falls der order Parameter angegeben wurde):

    • Ordnen Sie die Bestellcodes (CPT, HCPCS, LOINC) den Krankenversicherungen des Zahlers zu

    • Verwenden Sie Coverage Payor, um zahlerspezifische Fragebögen zu filtern

    • Erwägen Sie Ursachencodes für zusätzlichen Kontext

Auflösung von Abhängigkeiten

CQL-Bibliotheken:

  • Abgerufen über die cqf-library Erweiterung zu den Fragebogen-Ressourcen

  • Ruft abhängige Bibliotheken rekursiv mit dem Typ ab Library.relatedArtifact depends-on

  • Alle Bibliotheksabhängigkeiten sind im Paket enthalten

ValueSets:

  • Wird automatisch erweitert, wenn sie weniger als 40 Konzepte enthalten

  • Größere ValueSets sind ohne Erweiterung enthalten

  • ValueSets Die Ressourcen, auf die sowohl im Fragebogen als auch in der Bibliothek verwiesen wird, sind enthalten

QuestionnaireResponse Vorbevölkerung

Die Operation kann in folgenden Fällen eine QuestionnaireResponse mit bereits ausgefüllten Daten zurückgeben:

  • Es wurde eine bereits in Bearbeitung befindliche oder abgeschlossene Antwort gefunden

  • Die CQL-Logik in zugehörigen Bibliotheken kann Daten aus Patientenakten extrahieren

  • Die Antwort ist mit der jeweiligen Reihenfolge und dem Umfang verknüpft

Suchkriterien für QuestionnaireResponse:

Suchparameter FHIR-Pfad Description
based-on QuestionnaireResponse.basedOn Links zu oder ServiceRequest CarePlan
patient QuestionnaireResponse.subject Der Patient, der das Subjekt ist
questionnaire QuestionnaireResponse.questionnaire Der Fragebogen wird beantwortet

Die Filterung der Ressourcen wurde geändert

Wenn der changedSince Parameter bereitgestellt wird:

  • Nur Ressourcen, die nach dem angegebenen Zeitstempel geändert wurden, sind enthalten

  • Wenn sich keine Ressourcen geändert haben, wird ein leeres Paket zurückgegeben 200 OK

  • Nützlich für inkrementelle Updates und Caching-Strategien

  • Der Zeitstempelvergleich verwendet ein Ressourcenfeld meta.lastUpdated

Mehrere Paketpakete

Der Vorgang kann mehrere Paketpakete zurückgeben, wenn:

  • Über Canonical werden mehrere Fragebögen angefordert URLs

  • Für mehrere Bestellungen sind unterschiedliche Fragebögen erforderlich

  • Es gelten verschiedene Versionen desselben Fragebogens

Jedes Package ist eigenständig mit allen erforderlichen Abhängigkeiten.

Häufige Anwendungsfälle

Anwendungsfall 1: Dokumentation zur vorherigen Autorisierung

Szenario: Ein Anbieter muss vor der Genehmigung Unterlagen für eine Sauerstofftherapie zu Hause sammeln.

{ "resourceType": "Parameters", "parameter": [ { "name": "coverage", "resource": { /* Patient's insurance coverage */ } }, { "name": "order", "resource": { "resourceType": "ServiceRequest", "code": { "coding": [{ "system": "http://www.ama-assn.org/go/cpt", "code": "94660" }] } } } ] }

Ergebnis: Gibt ein Paket mit dem Fragebogen zur Sauerstofftherapie zurück, der bereits mit den Patientendaten und Diagnosecodes aus dem EHR ausgefüllt ist.

Anwendungsfall 2: Rufen Sie eine bestimmte Version des Fragebogens ab

Szenario: Ein Anbieter benötigt zur Einhaltung der Vorschriften eine bestimmte Version eines Fragebogens.

{ "resourceType": "Parameters", "parameter": [ { "name": "coverage", "resource": { /* Coverage resource */ } }, { "name": "questionnaire", "valueCanonical": "http://example.org/fhir/Questionnaire/dme-request|3.1.0" } ] }

Ergebnis: Gibt genau Version 3.1.0 des DME-Anforderungsfragebogens mit allen Abhängigkeiten zurück.

Anwendungsfall 3: Nach Updates suchen

Szenario: Ein Anbieter möchte überprüfen, ob Fragebogenressourcen seit dem letzten Abruf aktualisiert wurden.

{ "resourceType": "Parameters", "parameter": [ { "name": "coverage", "resource": { /* Coverage resource */ } }, { "name": "questionnaire", "valueCanonical": "http://example.org/fhir/Questionnaire/medication-request" }, { "name": "changedSince", "valueDateTime": "2024-03-01T00:00:00Z" } ] }

Ergebnis: Gibt nur Ressourcen zurück, die nach dem 1. März 2024 geändert wurden, oder ein leeres Paket, falls sich nichts geändert hat.

Anwendungsfall 4: Mehrere Bestellungen

Szenario: Ein Anbieter reicht mehrere Serviceanfragen ein, für die möglicherweise unterschiedliche Fragebögen erforderlich sind.

{ "resourceType": "Parameters", "parameter": [ { "name": "coverage", "resource": { /* Coverage resource */ } }, { "name": "order", "resource": { /* ServiceRequest for imaging */ } }, { "name": "order", "resource": { /* ServiceRequest for DME */ } } ] }

Ergebnis: Gibt mehrere Paketpakete zurück, eines für jeden zutreffenden Fragebogen.

Integration mit anderen Da Vinci IGs

Ermittlung der Deckungsanforderungen (CRD)

Workflow-Integration:

  • Der Anbieter bestellt einen Service in seinem EHR

  • Der CRD-Haken löst aus und überprüft die Deckungsanforderungen

  • Der Zahler gibt an, dass Unterlagen erforderlich sind

  • Der Anbieter ruft $questionnaire-package an, um das Dokumentationsformular abzurufen

  • Der Anbieter füllt den Fragebogen aus

  • Die Dokumentation wird über PAS eingereicht oder CDex

Support bei vorheriger Autorisierung (PAS)

Workflow-Integration:

  • Wird verwendet$questionnaire-package, um Dokumentationsanforderungen abzurufen

  • Vervollständigen Sie das QuestionnaireResponse mit den erforderlichen klinischen Daten

  • Reichen Sie die vorherige Genehmigung ein und verwenden Sie Claim/$submit dabei das ausgefüllte QuestionnaireResponse

  • Überprüfen Sie den Status mit Claim/$inquire

Klinischer Data Exchange (CDex)

Workflow-Integration:

  • Der Zahler fordert zusätzliche Unterlagen für einen Anspruch an

  • Der Anbieter verwendet$questionnaire-package, um das Formular zur Erfassung strukturierter Daten abzurufen

  • Der Anbieter füllt das aus QuestionnaireResponse

  • Die Dokumentation wird dem Zahler über den CDex Anhangs-Workflow übermittelt

Anleitung zur Fehlerbehebung

Problem: Es wurde kein Fragebogen zurückgesendet

Mögliche Ursachen:

  • Die kanonische URL stimmt mit keinem Fragebogen im Datenspeicher überein

  • Der Bestellcode entspricht keinem Fragebogen in der Krankenversicherung des Zahlers

  • Dem Versicherungsnehmer sind keine Fragebögen zugeordnet

Lösungen:

  • Stellen Sie sicher, dass die kanonische URL korrekt ist und der Fragebogen existiert

  • Vergewissern Sie sich, dass die Bestellcodes (CPT/HCPCS) korrekt angegeben sind

  • Vergewissern Sie sich, dass die Kostenträgerorganisation Fragebögen konfiguriert hat

Problem: Fehlende Abhängigkeiten im Package

Mögliche Ursachen:

  • Referenzierte Bibliothek oder ValueSet existiert nicht im Datenspeicher

  • Bibliotheksverweise sind defekt oder falsch

  • ValueSet Die Erweiterung ist fehlgeschlagen

Lösungen:

  • Überprüfen Sie den Outcome Parameter auf Warnungen zu fehlenden Ressourcen

  • Stellen Sie sicher, dass alle referenzierten Ressourcen in Ihrem Datenspeicher vorhanden sind

  • Stellen Sie sicher ValueSet URLs , dass sie korrekt und lösbar sind

Problem: Leeres Package mit ChangedSince

Mögliche Ursachen:

  • Dies ist erwartetes Verhalten — seit dem angegebenen Zeitstempel wurden keine Ressourcen geändert

Lösungen:

  • Verwenden Sie die zwischengespeicherte Version des Pakets

  • Entfernen Sie den changedSince Parameter, um das vollständige Paket abzurufen

Problem: QuestionnaireResponse Nicht vorab ausgefüllt

Mögliche Ursachen:

  • Keine vorhandenen QuestionnaireResponse gefunden

  • Die Logik der CQL-Bibliothek konnte die erforderlichen Daten nicht extrahieren

  • Patientendaten fehlen oder sind unvollständig

Lösungen:

  • Das ist zu erwarten — nicht alle Fragebögen basieren auf einer Präpopulationslogik

  • Prüfen Sie, ob Patientendaten im Datenspeicher vorhanden sind

  • Überprüfen Sie die Anforderungen an die Datenextraktion in der Logik der CQL-Bibliothek

Best Practices

1. Verwenden Sie Canonical URLs mit Versionen

Geben Sie immer Versionsnummern an, wenn Sie bestimmte Fragebögen anfordern:

{ "name": "questionnaire", "valueCanonical": "http://example.org/fhir/Questionnaire/dme|2.1.0" }

Warum: Sorgt für Konsistenz und verhindert unerwartete Änderungen, wenn Fragebögen aktualisiert werden.

2. Nutzen Sie ChangedSince für mehr Leistung

Verwenden Sie für häufig aufgerufene Fragebögen Folgendes, changedSince um die Datenübertragung zu minimieren:

{ "name": "changedSince", "valueDateTime": "2024-03-10T15:30:00Z" }

Warum: Reduziert die Latenz und die Bandbreitennutzung, indem nur aktualisierte Ressourcen abgerufen werden.

3. Vollständige Deckungsinformationen einschließen

Geben Sie umfassende Angaben zum Umfang an, um sicherzustellen, dass der Fragebogen korrekt ausgewählt wird:

{ "name": "coverage", "resource": { "resourceType": "Coverage", "beneficiary": { "reference": "Patient/123" }, "payor": [{ "reference": "Organization/payer-abc" }], "class": [{ /* Group/plan information */ }] } }

Warum: Hilft bei der HealthLake Identifizierung von zahlerspezifischen Fragebögen und Anforderungen.

  • Claim/$submit- Reichen Sie vorherige Autorisierungsanfragen mit ausgefüllten Unterlagen ein

  • Claim/$inquire- Überprüfen Sie den Status der eingereichten vorherigen Genehmigungen

  • ValueSet/$expand- Erweitern Sie ValueSets die Antwortmöglichkeiten