View a markdown version of this page

Memahami laporan drift - AWS HealthLake

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

Memahami laporan drift

Saat deteksi penyimpangan diaktifkan, pekerjaan massal menulis laporan agregat yang diberi nama jobLevelDriftResult.json ke lokasi keluaran Anda. Laporan ini memberi tahu Anda berapa banyak data sumber Anda yang sebenarnya diambil profil, dan apa yang terlewatkan: sehingga Anda tahu di mana harus meningkatkan pemetaan Anda.

Struktur laporan tergantung pada format sumber: C-CDA laporan diatur di sekitar bagian dokumen dan entri (diidentifikasi oleh OID), sedangkan laporan CSV diatur di sekitar tabel, kolom, dan baris. Keduanya berbagi konsep tingkat cakupan yang sama (pecahan dari 0,0 hingga 1,0, di mana lebih tinggi berarti lebih banyak sumber Anda ditangkap).

C-CDA laporan drift

{ "jobId": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6", "profileId": "0f1e2d3c4b5a69788796a5b4c3d2e1f0", "profileVersion": 3, "timestamp": "2026-07-14T18:30:00Z", "filesProcessed": 500, "totalFilesFailed": 2, "avgSectionCoverageRate": 0.92, "avgEntryCoverageRate": 0.85, "avgOverallCoverageRate": 0.88, "avgResourceAccuracy": 0.97, "totalUnknownSections": 14, "totalUnknownEntries": 63, "documentOids": { "2.16.840.1.113883.10.20.22.1.2": 480 }, "unknownSectionOidCount": 2, "unknownSections": { "2.16.840.1.113883.10.20.22.2.14": 12 }, "unknownEntryOidCount": 5, "unknownEntries": { "2.16.840.1.113883.10.20.22.4.13": 40 }, "missingResources": { "2.16.840.1.113883.10.20.22.2.6.1": { "AllergyIntolerance": 8 } }, "perFileDrift": { "patient-001.xml": 0.95, "patient-002.xml": 0.61 } }

Cara membacanya

Mulailah dengan tingkat cakupan. Ini adalah rata-rata di semua file yang diproses, dinyatakan sebagai pecahan dari 0,0 hingga 1,0 (kalikan dengan 100 untuk persentase). Lebih tinggi lebih baik: tingkat yang lebih tinggi berarti lebih banyak data sumber Anda yang masuk ke output FHIR.

Bidang Apa artinya
avgOverallCoverageRate Nomor judul. Fraksi rata-rata konten sumber (bagian + entri) yang dipetakan profil ke FHIR. 0,88 berarti ~ 88% dari data sumber Anda ditangkap.
avgSectionCoverageRate Rata-rata fraksi C-CDA bagian (misalnya, Masalah, Obat, Alergi) yang dipetakan.
avgEntryCoverageRate Rata-rata fraksi entri individu dalam bagian (misalnya, satu masalah atau obat) yang dipetakan.
avgResourceAccuracy Dari sumber daya FHIR yang diharapkan, fraksi rata-rata yang sebenarnya diproduksi.

Kemudian temukan apa yang terlewatkan. Bidang-bidang ini mengarahkan Anda ke pemetaan tertentu untuk ditambahkan:

Bidang Apa artinya Apa yang harus dilakukan
unknownSections Peta bagian sumber OID yang tidak dikenali profil, dan berapa kali masing-masing muncul. Tambahkan pemetaan untuk OID bagian jumlah tinggi.
unknownEntries Peta OID entri sumber yang tidak dikenali profil, dan frekuensinya. Tambahkan pemetaan untuk OID entri jumlah tinggi.
missingResources Peta OID sumber → jenis sumber daya FHIR yang diharapkan tetapi tidak diproduksi, dengan hitungan. Perbaiki pemetaan yang seharusnya menghasilkan sumber daya tersebut.
totalUnknownSections / totalUnknownEntries Jumlah total bagian dan entri yang belum dipetakan di seluruh pekerjaan. Gunakan sebagai sinyal cepat “berapa banyak yang tersisa”.
documentOids Peta OID C-CDA tipe dokumen yang terlihat dalam pekerjaan, dan berapa banyak dari masing-masing. Mengonfirmasi jenis dokumen mana yang berisi data Anda.

Prioritaskan berdasarkan frekuensi. TerhitungunknownSections,unknownEntries, dan missingResources memberi tahu Anda celah mana yang mempengaruhi catatan paling banyak. OID yang muncul 40 kali adalah kemenangan yang lebih besar untuk dipetakan daripada yang muncul dua kali.

Bor ke dalam file tertentu. perFileDriftmemetakan setiap file sumber ke tingkat cakupan keseluruhannya. Urutkan berdasarkan nilai terendah untuk menemukan file yang ditangani profil terburuk: misalnya, patient-002.xml pada 0,61 layak diperiksa. Untuk perincian lengkap per file (OID spesifik mana yang dilewatkan setiap file), lihat laporan individual di bawah driftDetectionPerFileResults/ folder.

Meningkatkan cakupan

  1. Identifikasi entri frekuensi tertinggi diunknownSections,unknownEntries, dan. missingResources

  2. Gunakan agen AI Transformasi Data (UpdateProfileWithAgent) untuk menambahkan pemetaan untuk OID dan sumber daya tersebut: Anda dapat menempelkan OID dan meminta agen untuk memetakannya.

  3. Publikasikan versi profil baru dan jalankan kembali pekerjaan.

  4. Bandingkan yang baru avgOverallCoverageRate untuk mengkonfirmasi celah ditutup.

Laporan penyimpangan CSV

Untuk pekerjaan CSV, laporan diatur di sekitar tabel (setiap file CSV adalah tabel), kolom, dan baris: bukan bagian dan OID.

{ "jobId": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6", "profileId": "0f1e2d3c4b5a69788796a5b4c3d2e1f0", "profileVersion": 3, "summary": { "totalTablesInProfile": 4, "totalTablesInInput": 5, "tablesProcessed": 4, "tablesUnmapped": 1, "totalColumnsInInput": 42, "columnsMapped": 35, "columnsUnmapped": 7, "totalRowsScanned": 120000, "rowsConvertedSuccessfully": 119850, "rowsFailedCustomerError": 140, "rowsFailedServerError": 10, "totalResourcesGenerated": 245000, "tablesCoverageRate": 0.80, "columnsCoverageRate": 0.83, "overallCoverageRate": 0.83 }, "unmappedTables": [ { "tableName": "billing", "fileName": "billing.csv", "reason": "No matching table declared in the mapping profile", "columns": ["invoice_id", "amount", "payer"] } ], "unmappedColumns": [ { "tableName": "patients", "columns": ["preferred_language", "ethnicity_detail"], "reason": "Present in CSV but not referenced by any field mapping" } ] }

Cara membacanya

Mulailah dengan ringkasan. Tingkat cakupan adalah pecahan dari 0,0 hingga 1,0 (lebih tinggi lebih baik):

Bidang Apa artinya
overallCoverageRate Nomor judul: fraksi dari semua kolom di semua tabel input yang sebenarnya digunakan profil Anda. 0,83 berarti ~ 83% kolom sumber Anda dipetakan.
tablesCoverageRate Fraksi dari file CSV masukan Anda (tabel) yang dipetakan profil (tablesProcessed/totalTablesInInput).
columnsCoverageRate Fraksi kolom dalam tabel yang dipetakan yang direferensikan oleh pemetaan bidang.

Kemudian periksa hitungannya untuk memahami hasil konversi:

Bidang Apa artinya
totalTablesInInputvs tablesProcessed Berapa banyak file CSV Anda yang benar-benar digunakan vs. ditemukan.
totalColumnsInInput / columnsMapped / columnsUnmapped Berapa banyak kolom sumber yang ada, digunakan, dan diabaikan.
totalRowsScanned / rowsConvertedSuccessfully Berapa banyak baris yang dibaca vs. berhasil dikonversi.
rowsFailedCustomerError / rowsFailedServerError Baris yang gagal karena masalah kualitas data vs. kesalahan internal.
totalResourcesGenerated Total sumber daya FHIR yang dihasilkan.

Kemudian temukan apa yang terlewatkan:

Bidang Apa artinya Apa yang harus dilakukan
unmappedTables File CSV dalam masukan Anda yang tidak dinyatakan profil (dengan alasan dan kolom dalam file itu). Tambahkan pemetaan tabel jika file itu harus dikonversi.
unmappedColumns Per tabel, kolom ada di CSV tetapi tidak digunakan oleh pemetaan bidang apa pun. Tambahkan pemetaan bidang untuk kolom yang Anda inginkan dalam output FHIR.

Sinkronkan laporan penyimpangan CSV

Cara membacanyamenjelaskan format massal (asinkron) yang ditulis oleh pekerjaan transformasi ke Amazon S3. Saat Anda menjalankan deteksi penyimpangan secara serempak, respons API menyertakan laporan penyimpangan nilai yang dipisahkan koma (CSV) sebaris. Untuk mengaktifkan ini, atur enableDriftDetection ke true atas TransformData permintaan. Karena permintaan sinkronisasi memproses satu input daripada seluruh dataset, laporannya memiliki struktur yang lebih sederhana.

{ "sourceFormat": "CSV", "summary": { "totalTablesInProfile": 1, "totalTablesInInput": 1, "tablesProcessed": 1, "tablesUnmapped": 0, "totalColumnsInInput": 10, "columnsMapped": 7, "columnsUnmapped": 3, "totalRowsProcessed": 2, "totalResourcesGenerated": 2, "tablesCoverageRate": 1.0, "columnsCoverageRate": 0.7, "perTableRowCounts": { "patients": 2 } }, "unmappedTables": [], "unmappedColumns": [ { "tableName": "patients", "columns": ["ETHNICITY", "LANGUAGE", "NICKNAME"], "reason": "Columns present in CSV but not referenced in any field mapping" } ], "warnings": [] }

Bid summary angunmappedTables,, dan unmappedColumns memiliki arti yang sama seperti dalam laporan massal. Laporan sinkronisasi berbeda dari laporan CSV massal dengan cara berikut:

  • Tidak adajobId,profileId, atauprofileVersion, karena permintaan sinkronisasi tidak terkait dengan pekerjaan transformasi. Sebagai gantinya, ini mencakup sourceFormat bidang tingkat atas (CSV) yang mengidentifikasi format input.

  • Ini menghilangkan jumlah kegagalan baris (danrowsFailedServerError) rowsFailedCustomerError dan laporan massal dan bidang. totalRowsScanned rowsConvertedSuccessfully Permintaan sinkronisasi mengonversi satu input. Itu berhasil atau mengembalikan kesalahan. Setelah berhasil, ia melaporkan totalRowsProcessed dan perTableRowCounts peta yang menunjukkan jumlah baris yang diproses untuk setiap tabel.

  • Ini melaporkan tablesCoverageRate dancolumnsCoverageRate, tetapi tidak digabungkanoverallCoverageRate.

  • Ini mencakup warnings array inline yang mencantumkan masalah non-fatal yang dihadapi selama konversi, seperti kunci utama yang hilang atau entri peta nilai yang tidak dikenali.

Meningkatkan cakupan (kedua format)

  1. Identifikasi celah berdampak tertinggi: untuk C-CDA, entri frekuensi tertinggi diunknownSections/unknownEntries/missingResources; untuk CSV, entri unmappedTables di,, dan peringatan. unmappedColumns

  2. Gunakan agen AI Transformasi Data (UpdateProfileWithAgent) untuk menambahkan pemetaan yang hilang: Anda dapat menempelkan OID (C-CDA) atau nama kolom (CSV) yang belum dipetakan dan meminta agen untuk memetakannya.

  3. Publikasikan versi profil baru dan jalankan kembali pekerjaan.

  4. Bandingkan yang baru overallCoverageRate untuk mengkonfirmasi celah ditutup.

catatan

Deteksi drift melaporkan apa yang tidak dipetakan profil; itu tidak menunjukkan kesalahan konversi. Data sumber dapat dengan sengaja dibiarkan tidak dipetakan jika tidak relevan dengan kasus penggunaan Anda. Gunakan laporan untuk memutuskan apa yang layak dipetakan.