Pemecahan masalah AWS HealthLake - AWS HealthLake

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Pemecahan masalah AWS HealthLake

Topik berikut memberikan saran pemecahan masalah untuk kesalahan dan masalah yang mungkin Anda temui saat menggunakan AWS CLI, AWS SDKs, atau HealthLake konsol. Jika Anda menemukan masalah yang tidak tercantum di bagian ini, gunakan tombol Berikan umpan balik di bilah sisi kanan halaman ini untuk melaporkannya.

Tindakan penyimpanan data

Masalah: Ketika saya mencoba membuat penyimpanan HealthLake data, saya menerima kesalahan berikut:

AccessDeniedException: Insufficient Lake Formation permission(s): Required Database on Catalog

Pada 14 November 2022, HealthLake memperbarui izin IAM yang diperlukan untuk membuat penyimpanan data baru. Untuk informasi selengkapnya, lihat Konfigurasikan pengguna IAM atau peran yang akan digunakan HealthLake (Administrator IAM).

Masalah: Saat membuat penyimpanan HealthLake data menggunakan AWS SDKs, status pembuatan penyimpanan data mengembalikan pengecualian atau status tidak dikenal.

Perbarui AWS SDK Anda ke versi terbaru jika panggilan DescribeFHIRDatastore atau ListFHIRDatastores API menampilkan pengecualian atau status penyimpanan data yang tidak dikenal.

Tindakan impor

Masalah: Apakah saya masih dapat menggunakan HealthLake jika data saya tidak dalam format FHIR R4?

Hanya data berformat FHIR R4 yang dapat diimpor ke penyimpanan data. HealthLake Untuk daftar mitra yang dapat membantu mengubah data kesehatan yang ada ke format FHIR R4, lihat AWS HealthLake Mitra.

Masalah: Mengapa pekerjaan impor FHIR saya gagal?

Pekerjaan impor yang berhasil akan menghasilkan folder dengan hasil (log keluaran) dalam .ndjson format, namun, catatan individu dapat gagal diimpor. Ketika ini terjadi, FAILURE folder kedua akan dihasilkan dengan manifes catatan yang gagal diimpor. Untuk informasi selengkapnya, lihat Mengimpor data FHIR dengan AWS HealthLake.

Untuk menganalisis mengapa pekerjaan impor gagal, gunakan DescribeFHIRImportJob API untuk menganalisis JobProperties. Berikut ini direkomendasikan:

  • Jika status FAILED dan pesan ada, kegagalan terkait dengan parameter pekerjaan seperti ukuran data input atau jumlah file input yang berada di luar HealthLake kuota.

  • Jika status pekerjaan impor adalahCOMPLETED_WITH_ERRORS, periksa file manifes,manifest.json, untuk informasi tentang file mana yang tidak berhasil diimpor.

  • Jika status pekerjaan impor FAILED dan pesan tidak ada, buka lokasi keluaran pekerjaan untuk mengakses file manifes,manifest.json.

Untuk setiap file input, ada file keluaran kegagalan dengan nama file input untuk sumber daya apa pun yang gagal diimpor. Tanggapan berisi nomor baris (lineID) yang sesuai dengan lokasi data input, objek respons FHIR (UpdateResourceResponse), dan kode status (statusCode) respons.

File keluaran sampel mungkin mirip dengan yang berikut ini:

{"lineId":3, UpdateResourceResponse:{"jsonBlob":{"resourceType":"OperationOutcome","issue":[{"severity":"error","code":"processing","diagnostics":"1 validation error detected: Value 'Patient123' at 'resourceType' failed to satisfy constraint: Member must satisfy regular expression pattern: [A-Za-z]{1,256}"}]}, "statusCode":400} {"lineId":5, UpdateResourceResponse:{"jsonBlob":{"resourceType":"OperationOutcome","issue":[{"severity":"error","code":"processing","diagnostics":"This property must be an simple value, not a com.google.gson.JsonArray","location":["/EffectEvidenceSynthesis/name"]},{"severity":"error","code":"processing","diagnostics":"Unrecognised property '@telecom'","location":["/EffectEvidenceSynthesis"]},{"severity":"error","code":"processing","diagnostics":"Unrecognised property '@gender'","location":["/EffectEvidenceSynthesis"]},{"severity":"error","code":"processing","diagnostics":"Unrecognised property '@birthDate'","location":["/EffectEvidenceSynthesis"]},{"severity":"error","code":"processing","diagnostics":"Unrecognised property '@address'","location":["/EffectEvidenceSynthesis"]},{"severity":"error","code":"processing","diagnostics":"Unrecognised property '@maritalStatus'","location":["/EffectEvidenceSynthesis"]},{"severity":"error","code":"processing","diagnostics":"Unrecognised property '@multipleBirthBoolean'","location":["/EffectEvidenceSynthesis"]},{"severity":"error","code":"processing","diagnostics":"Unrecognised property '@communication'","location":["/EffectEvidenceSynthesis"]},{"severity":"warning","code":"processing","diagnostics":"Name should be usable as an identifier for the module by machine processing applications such as code generation [name.matches('[A-Z]([A-Za-z0-9_]){0,254}')]","location":["EffectEvidenceSynthesis"]},{"severity":"error","code":"processing","diagnostics":"Profile http://hl7.org/fhir/StructureDefinition/EffectEvidenceSynthesis, Element 'EffectEvidenceSynthesis.status': minimum required = 1, but only found 0","location":["EffectEvidenceSynthesis"]},{"severity":"error","code":"processing","diagnostics":"Profile http://hl7.org/fhir/StructureDefinition/EffectEvidenceSynthesis, Element 'EffectEvidenceSynthesis.population': minimum required = 1, but only found 0","location":["EffectEvidenceSynthesis"]},{"severity":"error","code":"processing","diagnostics":"Profile http://hl7.org/fhir/StructureDefinition/EffectEvidenceSynthesis, Element 'EffectEvidenceSynthesis.exposure': minimum required = 1, but only found 0","location":["EffectEvidenceSynthesis"]},{"severity":"error","code":"processing","diagnostics":"Profile http://hl7.org/fhir/StructureDefinition/EffectEvidenceSynthesis, Element 'EffectEvidenceSynthesis.exposureAlternative': minimum required = 1, but only found 0","location":["EffectEvidenceSynthesis"]},{"severity":"error","code":"processing","diagnostics":"Profile http://hl7.org/fhir/StructureDefinition/EffectEvidenceSynthesis, Element 'EffectEvidenceSynthesis.outcome': minimum required = 1, but only found 0","location":["EffectEvidenceSynthesis"]},{"severity":"information","code":"processing","diagnostics":"Unknown extension http://synthetichealth.github.io/synthea/disability-adjusted-life-years","location":["EffectEvidenceSynthesis.extension[3]"]},{"severity":"information","code":"processing","diagnostics":"Unknown extension http://synthetichealth.github.io/synthea/quality-adjusted-life-years","location":["EffectEvidenceSynthesis.extension[4]"]}]}, "statusCode":400} {"lineId":7, UpdateResourceResponse:{"jsonBlob":{"resourceType":"OperationOutcome","issue":[{"severity":"error","code":"processing","diagnostics":"2 validation errors detected: Value at 'resourceId' failed to satisfy constraint: Member must satisfy regular expression pattern: [A-Za-z0-9-.]{1,64}; Value at 'resourceId' failed to satisfy constraint: Member must have length greater than or equal to 1"}]}, "statusCode":400} {"lineId":9, UpdateResourceResponse:{"jsonBlob":{"resourceType":"OperationOutcome","issue":[{"severity":"error","code":"processing","diagnostics":"Missing required id field in resource json"}]}, "statusCode":400} {"lineId":15, UpdateResourceResponse:{"jsonBlob":{"resourceType":"OperationOutcome","issue":[{"severity":"error","code":"processing","diagnostics":"Invalid JSON found in input file"}]}, "statusCode":400}

Contoh di atas menunjukkan bahwa ada kegagalan pada baris 3, 4, 7, 9, 15 dari baris input yang sesuai dari file input. Untuk masing-masing baris tersebut, penjelasannya adalah sebagai berikut:

  • Pada Baris 3, respons menjelaskan bahwa resourceType disediakan di baris 3 file input tidak valid.

  • Pada Baris 5, respons menjelaskan bahwa ada kesalahan validasi FHIR di baris 5 file input.

  • Pada Baris 7, tanggapan menjelaskan bahwa ada masalah validasi dengan resourceId disediakan sebagai input.

  • Pada Baris 9, respons menjelaskan bahwa file input harus berisi id sumber daya yang valid.

  • Pada baris 15, respons file input adalah bahwa file tersebut tidak dalam format JSON yang valid.

FHIR APIs

Masalah: Bagaimana cara menerapkan otorisasi untuk FHIR? RESTful APIs

Tentukan Strategi otorisasi penyimpanan data yang akan digunakan.

Untuk membuat otorisasi SigV4 menggunakan AWS SDK untuk Python (Boto3), buat skrip yang mirip dengan contoh berikut.

import boto3 import requests import json from requests_auth_aws_sigv4 import AWSSigV4 # Set the input arguments data_store_endpoint = 'https://healthlake.us-east-1.amazonaws.com/datastore/<datastore id>/r4//' resource_path = "Patient" requestBody = {"resourceType": "Patient", "active": True, "name": [{"use": "official","family": "Dow","given": ["Jen"]},{"use": "usual","given": ["Jen"]}],"gender": "female","birthDate": "1966-09-01"} region = 'us-east-1' #Frame the resource endpoint resource_endpoint = data_store_endpoint+resource_path session = boto3.session.Session(region_name=region) client = session.client("healthlake") # Frame authorization auth = AWSSigV4("healthlake", session=session) # Call data store FHIR endpoint using SigV4 auth r = requests.post(resource_endpoint, json=requestBody, auth=auth, ) print(r.json())

Masalah: Mengapa saya menerima AccessDenied kesalahan saat menggunakan FHIR RESTful APIs untuk penyimpanan data yang dienkripsi dengan kunci KMS yang dikelola pelanggan?

Izin untuk kunci yang dikelola pelanggan dan kebijakan IAM diperlukan bagi pengguna atau peran untuk mengakses penyimpanan data. Pengguna harus memiliki izin IAM yang diperlukan untuk menggunakan kunci yang dikelola pelanggan. Jika pengguna mencabut atau menghentikan hibah yang memberikan HealthLake izin untuk menggunakan kunci KMS yang dikelola pelanggan, HealthLake akan mengembalikan kesalahan. AccessDenied

HealthLake harus memiliki izin untuk mengakses data pelanggan, mengenkripsi sumber daya FHIR baru yang diimpor ke penyimpanan data, dan untuk mendekripsi sumber daya FHIR saat diminta. Untuk informasi selengkapnya, lihat Izin pemecahan masalah AWS KMS.

Masalah: Operasi POST API FHIR untuk HealthLake menggunakan dokumen 10MB mengembalikan kesalahan. 413 Request Entity Too Large

AWS HealthLake memiliki batas Create and Update API sinkron sebesar 5MB untuk menghindari peningkatan latensi dan batas waktu. Anda dapat menyerap dokumen besar, hingga 164MB, menggunakan jenis Binary sumber daya menggunakan API Impor Massal.

Integrasi NLP

Masalah: Bagaimana cara mengaktifkan HealthLake fitur pemrosesan bahasa alami terintegrasi?

Per 14 November 2022, perilaku default penyimpanan HealthLake data berubah.

Penyimpanan data saat ini: Semua penyimpanan HealthLake data saat ini akan berhenti menggunakan pemrosesan bahasa alami (NLP) pada sumber daya yang dikodekan DocumentReference base64. Ini berarti bahwa DocumentReference sumber daya baru tidak akan dianalisis menggunakan NLP, dan tidak ada sumber daya baru yang akan dihasilkan berdasarkan teks dalam jenis DocumentReference sumber daya. Untuk DocumentReference sumber daya yang ada, data dan sumber daya yang dihasilkan melalui NLP tetap ada, tetapi tidak akan diperbarui setelah 20 Februari 2023.

Penyimpanan data baru: penyimpanan HealthLake data yang dibuat setelah 20 Februari 2023 tidak akan melakukan pemrosesan bahasa alami (NLP) pada sumber daya yang disandikan base64. DocumentReference

Untuk mengaktifkan integrasi HealthLake NLP, buat kasus dukungan menggunakan. AWS Support Center Console Untuk membuat kasus Anda, masuk ke kasing Anda Akun AWS, lalu pilih Buat kasus. Untuk mempelajari selengkapnya tentang membuat manajemen kasus dan kasus, lihat Membuat kasus dukungan dan manajemen kasus di Panduan Dukungan Pengguna.

Masalah: >Bagaimana cara menemukan DocumentReference sumber daya yang tidak dapat diproses oleh NLP terintegrasi?

Jika DocumentReference sumber daya tidak valid, HealthLake berikan ekstensi yang menunjukkan kesalahan validasi alih-alih menyediakannya dalam output NLP medis terintegrasi. Untuk menemukan DocumentReference sumber daya yang menyebabkan kesalahan validasi selama pemrosesan NLP, Anda dapat menggunakan HealthLake search fungsi FHIR dengan kunci pencarian cm-decoration-statusdan nilai pencarian VALIDATION_ERROR. Pencarian ini akan mencantumkan semua DocumentReference sumber daya yang menyebabkan kesalahan validasi, bersama dengan pesan kesalahan yang menjelaskan sifat kesalahan. Struktur bidang ekstensi dalam DocumentReference sumber daya tersebut dengan kesalahan validasi akan menyerupai contoh berikut.

"extension": [ { "extension": [ { "url": "http://healthlake.amazonaws.com/aws-cm/status/", "valueString": "VALIDATION_ERROR" }, { "url": "http://healthlake.amazonaws.com/aws-cm/message/", "valueString": "Resource led to too many nested objects after NLP operation processed the document. 10937 nested objects exceeds the limit of 10000." } ], "url": "http://healthlake.amazonaws.com/aws-cm/" } ]
catatan

A juga VALIDATION_ERROR dapat terjadi jika dekorasi NLP menciptakan lebih dari 10.000 objek bersarang. Ketika ini terjadi, dokumen harus dibagi menjadi dokumen yang lebih kecil sebelum diproses.

Integrasi SQL

Masalah: Mengapa saya mendapatkan Lake Formation permissions error: lakeformation:PutDataLakeSettings saat menambahkan administrator danau data baru?

Jika pengguna atau peran IAM Anda berisi kebijakan AWSLakeFormationDataAdmin AWS terkelola, Anda tidak dapat menambahkan administrator data lake baru. Anda akan mendapatkan kesalahan yang berisi berikut ini:

User arn:aws:sts::111122223333:assumed-role/lakeformation-admin-user is not authorized to perform: lakeformation:PutDataLakeSettings on resource: arn:aws:lakeformation:us-east-2:111122223333:catalog:111122223333 with an explicit deny in an identity-based policy

Kebijakan AWS terkelola AdministratorAccess diperlukan untuk menambahkan pengguna IAM atau peran sebagai administrator danau data AWS Lake Formation. Jika pengguna atau peran IAM Anda juga berisi AWSLakeFormationDataAdmin tindakan akan gagal. Kebijakan AWSLakeFormationDataAdmin AWS terkelola berisi penolakan eksplisit untuk operasi AWS Lake Formation API,PutDataLakeSetting. Bahkan administrator dengan akses penuh untuk AWS menggunakan kebijakan AdministratorAccess terkelola dapat dibatasi oleh AWSLakeFormationDataAdmin kebijakan.

Masalah: Bagaimana cara memigrasi penyimpanan HealthLake data yang ada untuk menggunakan integrasi SQL Amazon Athena?

HealthLake penyimpanan data yang dibuat sebelum 14 November 2022 berfungsi, tetapi tidak dapat ditanyakan di Athena menggunakan SQL. Untuk menanyakan penyimpanan data yang sudah ada sebelumnya dengan Athena, Anda harus terlebih dahulu memigrasikannya ke penyimpanan data baru.

Untuk memigrasikan HealthLake data Anda ke penyimpanan data baru
  1. Buat toko data baru.

  2. Ekspor data dari yang sudah ada sebelumnya ke bucket Amazon S3.

  3. Impor data ke penyimpanan data baru dari bucket Amazon S3.

catatan

Mengekspor data ke bucket Amazon S3 menimbulkan biaya tambahan. Biaya tambahan tergantung pada ukuran data yang Anda ekspor.

Masalah: Saat membuat penyimpanan HealthLake data baru untuk integrasi SQL, status penyimpanan data tidak berubah. Creating

Jika Anda mencoba membuat penyimpanan HealthLake data baru, dan status penyimpanan data Anda tidak berubah dari Membuat, Anda perlu memperbarui Athena untuk menggunakan. AWS Glue Data Catalog Untuk informasi selengkapnya, lihat Memutakhirkan ke Katalog Data AWS Glue step-by-step di Panduan Pengguna Amazon Athena.

Setelah berhasil memutakhirkan AWS Glue Data Catalog, Anda dapat membuat penyimpanan HealthLake data.

Untuk menghapus penyimpanan HealthLake data lama, buat kasus dukungan menggunakan AWS Support Center Console. Untuk membuat kasus Anda, masuk ke kasing Anda Akun AWS, lalu pilih Buat kasus. Untuk mempelajari selengkapnya, lihat Membuat kasus dukungan dan manajemen kasus di Panduan Dukungan Pengguna.

Masalah: Konsol Athena tidak berfungsi setelah mengimpor data ke penyimpanan data baru HealthLake

Setelah Anda mengimpor data ke penyimpanan HealthLake data baru, data mungkin tidak tersedia untuk segera digunakan. Ini untuk memberikan waktu bagi data untuk dicerna ke dalam tabel Apache Iceberg. Coba lagi di lain waktu.

Masalah: Bagaimana cara menghubungkan hasil pencarian di Athena ke layanan lain? AWS

Saat membagikan hasil penelusuran Anda dari Athena dengan AWS layanan lain, masalah dapat terjadi saat Anda menggunakan json_extract[1] sebagai bagian dari kueri penelusuran SQL. Untuk memperbaiki masalah ini, Anda harus memperbarui keCATVAR.

Anda mungkin mengalami masalah ini saat mencoba Membuat hasil penyimpanan, Tabel (statis), atau Tampilan (dinamis).