Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
$questionnaire-packageOperasi FHIR untuk HealthLake
$questionnaire-packageOperasi mengambil bundel komprehensif yang berisi Kuesioner FHIR dan semua dependensinya yang diperlukan untuk membuat dan memproses kuesioner. Operasi ini mengimplementasikan Panduan Implementasi Template dan Aturan Dokumentasi Da Vinci (DTR)
Cara kerjanya
-
Permintaan: Anda mengirim parameter yang mengidentifikasi kuesioner yang diperlukan, bersama dengan cakupan dan konteks pesanan
-
Ambil: HealthLake mengumpulkan Kuesioner dan semua dependensi (, Perpustakaan CQLValueSets, dll.)
-
Package: Semua sumber daya dibundel bersama dalam format standar
-
Menanggapi: Anda menerima paket lengkap yang siap untuk rendering dan pengumpulan data
Kasus penggunaan
-
Dokumentasi Otorisasi Sebelumnya: Kumpulkan informasi klinis yang diperlukan untuk permintaan otorisasi sebelumnya
-
Persyaratan Cakupan: Kumpulkan dokumentasi yang diperlukan untuk memenuhi persyaratan cakupan pembayar
-
Clinical Data Exchange: Struktur data klinis untuk diserahkan kepada pembayar
-
Formulir Dinamis: Render kuesioner dengan data pasien yang telah diisi sebelumnya dan logika bersyarat
Titik akhir API
POST /datastore/{datastoreId}/r4/Questionnaire/$questionnaire-package Content-Type: application/fhir+json
Permintaan parameter
Parameter input
Badan permintaan harus berisi sumber daya Parameter FHIR dengan parameter berikut:
| Parameter | Tipe | Kardinalitas | Deskripsi |
|---|---|---|---|
coverage |
Cakupan | 1.. * (Diperlukan) | Sumber daya cakupan untuk menetapkan anggota dan cakupan untuk dokumentasi |
questionnaire |
canonical | 0.. * | URL kanonik untuk Kuesioner tertentu untuk dikembalikan (mungkin termasuk versi) |
order |
Sumber daya | 0.. * | Pesan sumber daya (DeviceRequest, ServiceRequest, MedicationRequest, Encounter, Appointment) untuk menetapkan konteks |
changedSince |
dateTime | 0.. 1 | Jika ada, hanya sumber daya yang dikembalikan yang diubah setelah stempel waktu ini |
Aturan validasi parameter
Setidaknya SATU dari berikut ini harus disediakan (selain yang diperlukancoverage):
-
Satu atau lebih
questionnairekanonik URLs -
Satu atau lebih
ordersumber daya
Kombinasi Permintaan yang Valid:
-
coverage+questionnaire -
coverage+order -
coverage+questionnaire+order
Contoh permintaan
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" } ] }
Format respons
Respon sukses (200 OK)
Operasi mengembalikan sumber daya Parameter FHIR yang berisi satu atau lebih Package Bundle. Setiap Package Bundle meliputi:
| Jenis Entri | Kardinalitas | Deskripsi |
|---|---|---|
| Kuesioner | 1 | Kuesioner yang akan diberikan |
| QuestionnaireResponse | 0.. 1 | Respons yang telah diisi sebelumnya atau sebagian selesai (jika ada) |
| Perpustakaan | 0.. * | Perpustakaan CQL yang berisi pra-populasi dan logika bersyarat |
| ValueSet | 0.. * | Diperluas ValueSets (untuk pilihan jawaban dengan <40 ekspansi) |
contoh Contoh tanggapan
{ "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" } }] } } ] }
Alur kerja operasi
Bagaimana HealthLake Memproses Permintaan Anda
Saat Anda menelepon $questionnaire-package HealthLake , lakukan langkah-langkah berikut:
-
Identifikasi Pasien & Pembayar: Ekstrak pasien dan organisasi asuransi dari
coverageparameter Anda. -
Temukan Kuesioner yang Tepat:
-
Dengan
questionnaireparameter: Menggunakan URL kanonik yang Anda berikan -
Dengan
orderparameter: Cocokkan kode pesanan (CPT/HCPCS/LOINC) dan pembayar untuk menemukan kuesioner yang sesuai
-
-
Kumpulkan Dependensi: Secara otomatis mengambil semua yang diperlukan untuk membuat kuesioner:
-
Perpustakaan CQL - Logika untuk pertanyaan pra-populasi dan bersyarat
-
ValueSets- Pilihan jawaban (secara otomatis diperluas jika <40 opsi)
-
QuestionnaireResponse- Setiap tanggapan yang sedang berlangsung atau selesai
-
-
Package Semuanya Bersama:
-
Bundel semua sumber daya (setiap sumber daya hanya disertakan sekali)
-
Filter berdasarkan
changedSincestempel waktu jika disediakan -
Menambahkan peringatan
Outcomejika ada sumber daya yang hilang
-
Hasil: Paket lengkap dan mandiri yang siap untuk dirender.
Tanggapan kesalahan
400 Permintaan Buruk
Dikembalikan ketika validasi permintaan gagal.
{ "resourceType": "OperationOutcome", "issue": [{ "severity": "error", "code": "required", "details": { "text": "At least one of 'questionnaire' or 'order' must be provided along with 'coverage'" } }] }
424 Ketergantungan Gagal
Dikembalikan ketika sumber daya dependen tidak dapat diambil.
{ "resourceType": "OperationOutcome", "issue": [{ "severity": "warning", "code": "not-found", "details": { "text": "Referenced Library 'http://example.org/fhir/Library/missing-library' could not be retrieved" } }] }
401 Tidak Sah
Dikembalikan ketika kredensi otentikasi hilang atau tidak valid.
403 Dilarang
Dikembalikan ketika pengguna yang diautentikasi tidak memiliki izin untuk mengakses sumber daya yang diminta.
406 Tidak Dapat Diterima
Dikembalikan ketika jenis konten yang diminta tidak dapat disediakan.
409 Konflik
Dikembalikan ketika ada versi atau konflik konkurensi.
410 Hilang
Dikembalikan ketika sumber daya yang diminta telah dihapus secara permanen.
429 Terlalu Banyak Permintaan
Dikembalikan ketika batas tarif terlampaui.
500 Kesalahan Server Internal
Dikembalikan ketika terjadi kesalahan server yang tidak terduga.
501 Tidak Diimplementasikan
Dikembalikan ketika operasi yang diminta belum dilaksanakan.
Aturan validasi
Validasi masukan
-
coverageparameter diperlukan (1.. * kardinalitas) -
Setidaknya satu dari
questionnaireatauorderharus disediakan -
Semua sumber daya Cakupan harus sumber daya FHIR yang valid
-
Semua sumber daya Pesanan harus sumber daya FHIR yang valid
-
Canonical URLs harus diformat dengan benar
-
changedSinceharus berupa ISO 8601 DateTime yang valid
QuestionnaireResponse validasi
-
statusharus sesuai (in-progress,completed,amended) -
Struktur harus sesuai dengan Kuesioner yang direferensikan
-
basedOnharus mereferensikan sumber daya Pesanan yang valid -
subjectharus referensi sumber daya Pasien yang valid
Deduplikasi sumber daya
-
Setiap sumber daya hanya muncul sekali dalam bundel
-
Pengecualian: Versi berbeda dari sumber daya yang sama dapat disertakan
-
Sumber daya diidentifikasi oleh URL dan versi kanonik mereka
Spesifikasi kinerja
| Metrik | Spesifikasi |
|---|---|
| Batas Hitungan Sumber Daya | 500 sumber daya per Bundel |
| Batas Ukuran Bundel | Maksimum 5 MB |
Izin yang diperlukan
Untuk menggunakan $questionnaire-package operasi, pastikan peran IAM Anda memiliki:
-
healthlake:QuestionnairePackage- Untuk memanggil operasi -
healthlake:ReadResource- Untuk mengambil Kuesioner dan sumber daya dependen -
healthlake:SearchWithPost- Untuk mencari QuestionnaireResponse dan sumber daya terkait
SMART pada Lingkup FHIR
Cakupan minimum yang diperlukan:
-
SMART v1:
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
Catatan implementasi penting
Strategi pengambilan sumber daya
Prioritas Identifikasi Kuesioner:
-
URL kanonik (jika
questionnaireparameter disediakan) - Prioritas tertinggi -
Analisis Pesanan (jika
orderparameter disediakan):-
Cocokkan kode pesanan (CPT, HCPCS, LOINC) dengan kebijakan medis pembayar
-
Gunakan pembayar cakupan untuk memfilter kuesioner khusus pembayar
-
Pertimbangkan kode alasan untuk konteks tambahan
-
Resolusi ketergantungan
Perpustakaan CQL:
-
Diperoleh melalui
cqf-libraryekstensi pada sumber Kuesioner -
Mengambil pustaka dependen secara rekursif melalui tipe
Library.relatedArtifactdepends-on -
Semua dependensi perpustakaan disertakan dalam paket
ValueSets:
-
Secara otomatis diperluas jika mengandung kurang dari 40 konsep
-
Lebih besar ValueSets disertakan tanpa ekspansi
-
ValueSets direferensikan dalam Kuesioner dan sumber daya Perpustakaan disertakan
QuestionnaireResponse pra-populasi
Operasi dapat mengembalikan data yang telah QuestionnaireResponse diisi sebelumnya ketika:
-
Respons yang sedang berlangsung atau selesai ditemukan
-
Logika CQL di Perpustakaan terkait dapat mengekstrak data dari catatan pasien
-
Tanggapan terkait dengan urutan dan cakupan yang relevan
Kriteria Pencarian untuk QuestionnaireResponse:
| Parameter Pencarian | Jalan FHIR | Deskripsi |
|---|---|---|
based-on |
QuestionnaireResponse.basedOn |
Tautan ke ServiceRequest atau CarePlan |
patient |
QuestionnaireResponse.subject |
Pasien yang menjadi subjeknya |
questionnaire |
QuestionnaireResponse.questionnaire |
Kuesioner yang dijawab |
Pemfilteran sumber daya yang diubah
Ketika changedSince parameter disediakan:
-
Hanya sumber daya yang dimodifikasi setelah stempel waktu yang ditentukan disertakan
-
Jika tidak ada sumber daya yang berubah, kembali
200 OKdengan paket kosong -
Berguna untuk pembaruan tambahan dan strategi caching
-
Perbandingan stempel waktu menggunakan bidang sumber daya
meta.lastUpdated
Beberapa paket bundel
Operasi dapat mengembalikan beberapa Package Bundle ketika:
-
Beberapa kuesioner diminta melalui kanonik URLs
-
Beberapa pesanan memerlukan kuesioner yang berbeda
-
Versi berbeda dari kuesioner yang sama berlaku
Setiap Package Bundle mandiri dengan semua dependensi yang diperlukan.
Kasus penggunaan umum
Kasus Penggunaan 1: Dokumentasi Otorisasi Sebelumnya
Skenario: Penyedia perlu mengumpulkan dokumentasi untuk terapi oksigen rumah sebelum otorisasi.
{ "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" }] } } } ] }
Hasil: Mengembalikan paket dengan kuesioner terapi oksigen, diisi sebelumnya dengan tanda vital pasien dan kode diagnosis dari EHR.
Kasus Penggunaan 2: Ambil Versi Kuesioner Khusus
Skenario: Penyedia membutuhkan versi kuesioner tertentu untuk kepatuhan.
{ "resourceType": "Parameters", "parameter": [ { "name": "coverage", "resource": { /* Coverage resource */ } }, { "name": "questionnaire", "valueCanonical": "http://example.org/fhir/Questionnaire/dme-request|3.1.0" } ] }
Hasil: Mengembalikan persis versi 3.1.0 dari kuesioner permintaan DME dengan semua dependensi.
Kasus Penggunaan 3: Periksa Pembaruan
Skenario: Penyedia ingin memeriksa apakah ada sumber kuesioner yang telah diperbarui sejak pengambilan terakhir.
{ "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" } ] }
Hasil: Mengembalikan hanya sumber daya yang telah dimodifikasi setelah 1 Maret 2024, atau paket kosong jika tidak ada yang berubah.
Kasus Penggunaan 4: Beberapa Pesanan
Skenario: Penyedia mengirimkan beberapa permintaan layanan yang mungkin memerlukan kuesioner yang berbeda.
{ "resourceType": "Parameters", "parameter": [ { "name": "coverage", "resource": { /* Coverage resource */ } }, { "name": "order", "resource": { /* ServiceRequest for imaging */ } }, { "name": "order", "resource": { /* ServiceRequest for DME */ } } ] }
Hasil: Mengembalikan beberapa Paket Paket, satu untuk setiap kuesioner yang berlaku.
Integrasi dengan Da Vinci Lainnya IGs
Penemuan Persyaratan Cakupan (CRD)
Integrasi Alur Kerja:
-
Penyedia memesan layanan di EHR mereka
-
CRD hook fire, memeriksa persyaratan cakupan
-
Pembayar merespons yang menunjukkan dokumentasi diperlukan
-
Panggilan penyedia
$questionnaire-packageuntuk mengambil formulir dokumentasi -
Penyedia melengkapi kuesioner
-
Dokumentasi disampaikan melalui PAS atau CDex
Prior Authorization Support (PAS)
Integrasi Alur Kerja:
-
Gunakan
$questionnaire-packageuntuk mengambil persyaratan dokumentasi -
Lengkapi QuestionnaireResponse dengan data klinis yang diperlukan
-
Kirimkan otorisasi sebelumnya menggunakan
Claim/$submitdengan yang sudah selesai QuestionnaireResponse -
Periksa status menggunakan
Claim/$inquire
Data Exchange Klinis (CDex)
Integrasi Alur Kerja:
-
Pembayar meminta dokumentasi tambahan untuk klaim
-
Penyedia menggunakan
$questionnaire-packageuntuk mengambil formulir pengumpulan data terstruktur -
Penyedia menyelesaikan QuestionnaireResponse
-
Dokumentasi diserahkan kepada pembayar melalui alur kerja CDex lampiran
Panduan pemecahan masalah
Masalah: Tidak Ada Kuesioner yang Dikembalikan
Kemungkinan Penyebab:
-
URL Canonical tidak cocok dengan Kuesioner apa pun di penyimpanan data
-
Kode pesanan tidak dipetakan ke kuesioner apa pun dalam kebijakan medis pembayar
-
Pembayar cakupan tidak memiliki kuesioner terkait
Solusi:
-
Verifikasi URL kanonik benar dan Kuesioner ada
-
Periksa apakah kode pesanan (CPT/HCPCS) ditentukan dengan benar
-
Konfirmasikan bahwa organisasi pembayar memiliki kuesioner yang dikonfigurasi
Masalah: Dependensi Hilang dalam Package
Kemungkinan Penyebab:
-
Perpustakaan yang direferensikan atau ValueSet tidak ada di penyimpanan data
-
Referensi perpustakaan rusak atau salah
-
ValueSet ekspansi gagal
Solusi:
-
Periksa
Outcomeparameter untuk peringatan tentang sumber daya yang hilang -
Verifikasi semua sumber daya yang direferensikan ada di penyimpanan data Anda
-
Pastikan ValueSet URLs benar dan dapat diselesaikan
Masalah: Paket Kosong dengan ChangedSince
Kemungkinan Penyebab:
-
Ini adalah perilaku yang diharapkan - tidak ada sumber daya yang telah dimodifikasi sejak stempel waktu yang ditentukan
Solusi:
-
Gunakan versi paket yang di-cache
-
Hapus
changedSinceparameter untuk mengambil paket lengkap
Masalah: QuestionnaireResponse Tidak Terisi
Kemungkinan Penyebab:
-
Tidak ada yang QuestionnaireResponse ditemukan
-
Logika Perpustakaan CQL tidak dapat mengekstrak data yang diperlukan
-
Data pasien hilang atau tidak lengkap
Solusi:
-
Ini mungkin diharapkan - tidak semua kuesioner memiliki logika pra-populasi
-
Periksa apakah data pasien ada di penyimpanan data
-
Tinjau logika Perpustakaan CQL untuk persyaratan ekstraksi data
Praktik terbaik
1. Gunakan Canonical URLs dengan Versi
Selalu tentukan nomor versi saat meminta kuesioner tertentu:
{ "name": "questionnaire", "valueCanonical": "http://example.org/fhir/Questionnaire/dme|2.1.0" }
Mengapa: Memastikan konsistensi dan mencegah perubahan tak terduga saat kuesioner diperbarui.
2. Leverage BerubahSejak untuk Kinerja
Untuk kuesioner yang sering diakses, gunakan changedSince untuk meminimalkan transfer data:
{ "name": "changedSince", "valueDateTime": "2024-03-10T15:30:00Z" }
Mengapa: Mengurangi penggunaan latensi dan bandwidth dengan hanya mengambil sumber daya yang diperbarui.
3. Sertakan Informasi Cakupan Lengkap
Berikan detail cakupan yang komprehensif untuk memastikan pemilihan kuesioner yang benar:
{ "name": "coverage", "resource": { "resourceType": "Coverage", "beneficiary": { "reference": "Patient/123" }, "payor": [{ "reference": "Organization/payer-abc" }], "class": [{ /* Group/plan information */ }] } }
Mengapa: Membantu HealthLake mengidentifikasi kuesioner dan persyaratan khusus pembayar.
Operasi terkait
-
Claim/$submit- Kirim permintaan otorisasi sebelumnya dengan dokumentasi lengkap -
Claim/$inquire- Periksa status otorisasi sebelumnya yang dikirimkan -
ValueSet/$expand- Perluas ValueSets untuk pilihan jawaban