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
-
Identifikasi entri frekuensi tertinggi di
unknownSections,unknownEntries, dan.missingResources -
Gunakan agen AI Transformasi Data (
UpdateProfileWithAgent) untuk menambahkan pemetaan untuk OID dan sumber daya tersebut: Anda dapat menempelkan OID dan meminta agen untuk memetakannya. -
Publikasikan versi profil baru dan jalankan kembali pekerjaan.
-
Bandingkan yang baru
avgOverallCoverageRateuntuk 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 ada
jobId,profileId, atauprofileVersion, karena permintaan sinkronisasi tidak terkait dengan pekerjaan transformasi. Sebagai gantinya, ini mencakupsourceFormatbidang tingkat atas (CSV) yang mengidentifikasi format input. -
Ini menghilangkan jumlah kegagalan baris (dan
rowsFailedServerError)rowsFailedCustomerErrordan laporan massal dan bidang.totalRowsScannedrowsConvertedSuccessfullyPermintaan sinkronisasi mengonversi satu input. Itu berhasil atau mengembalikan kesalahan. Setelah berhasil, ia melaporkantotalRowsProcesseddanperTableRowCountspeta yang menunjukkan jumlah baris yang diproses untuk setiap tabel. -
Ini melaporkan
tablesCoverageRatedancolumnsCoverageRate, tetapi tidak digabungkanoverallCoverageRate. -
Ini mencakup
warningsarray 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)
-
Identifikasi celah berdampak tertinggi: untuk C-CDA, entri frekuensi tertinggi di
unknownSections/unknownEntries/missingResources; untuk CSV, entriunmappedTablesdi,, dan peringatan.unmappedColumns -
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. -
Publikasikan versi profil baru dan jalankan kembali pekerjaan.
-
Bandingkan yang baru
overallCoverageRateuntuk 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.