View a markdown version of this page

ドリフトレポートについて - AWS HealthLake

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

ドリフトレポートについて

ドリフト検出を有効にすると、バルクジョブは という名前の集計レポートを出力場所に書き込みjobLevelDriftResult.jsonます。レポートには、プロファイルが実際にキャプチャしたソースデータの量と見逃した内容が示されます。これにより、マッピングを改善する場所がわかります。

レポートの構造はソース形式によって異なります。C-CDA レポートはドキュメントセクションとエントリ (OIDs で識別) を中心に編成され、CSV レポートはテーブル、列、行を中心に編成されます。どちらも同じカバレッジレートの概念を共有します (0.0 から 1.0 までの割合。高いほど、より多くのソースがキャプチャされたことを意味します)。

C-CDA ドリフトレポート

{ "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 } }

読み方

カバレッジレートから始めます。これらは、処理されたすべてのファイルの平均で、0.0 から 1.0 までの小数で表されます (パーセンテージに 100 を掛けます)。高いほど、レートが高いほど、より多くのソースデータが FHIR 出力になりました。

フィールド 意味
avgOverallCoverageRate ヘッドライン番号。プロファイルが FHIR にマッピングしたソースコンテンツ (セクション + エントリ) の平均割合。 0.88 は、ソースデータの最大 88% がキャプチャされたことを意味します。
avgSectionCoverageRate マッピングされた C-CDA セクション (例: 問題、薬剤、アレルギー) の平均割合。
avgEntryCoverageRate マッピングされたセクション内の個々のエントリ (単一の問題や薬剤など) の平均割合。
avgResourceAccuracy 予想された FHIR リソースのうち、実際に生成された平均割合。

次に、見逃されたものを見つけます。これらのフィールドは、追加する特定のマッピングを示します。

フィールド 意味 対応方法
unknownSections プロファイルが認識しなかったソースセクション OIDs のマップと、それぞれが出現した回数。 高カウントセクション OIDs のマッピングを追加します。
unknownEntries プロファイルが認識しなかったソースエントリ OIDs とその頻度のマップ。 高カウントエントリ OIDs のマッピングを追加します。
missingResources ソース OID のマップ → 予想されたが生成されなかった FHIR リソースタイプとカウント。 これらのリソースを生成すべきだったマッピングを修正しました。
totalUnknownSections / totalUnknownEntries ジョブ全体でマッピングされていないセクションとエントリの合計数。 クイック「どれだけ残っているか」シグナルとして を使用します。
documentOids ジョブに表示される C-CDA ドキュメントタイプの OIDs のマップと、それぞれの数。 データに含まれるドキュメントタイプを確認します。

頻度で優先順位を付けます。unknownSections、、および のカウントはunknownEntries、どのギャップが最もレコードに影響するかmissingResourcesを示します。40 回表示される OID は、2 回表示される OID よりもマッピングの勝ちが大きくなります。

特定のファイルをドリルダウンします。 は、各ソースファイルを全体的なカバレッジレートにperFileDriftマッピングします。最小値でソートして、プロファイルが処理したファイルが最悪であるかどうかを確認します。たとえば、0.61 patient-002.xmlでは検査する価値があります。ファイルごとの詳細な内訳 (各ファイルが見逃した特定の OIDs) については、 driftDetectionPerFileResults/フォルダの個々のレポートを参照してください。

カバレッジの改善

  1. 、unknownSections、unknownEntriesおよび で最も頻度の高いエントリを特定しますmissingResources。

  2. データ変換 AI エージェント (UpdateProfileWithAgent) を使用して、これらの OIDs とリソースのマッピングを追加します。OID を貼り付けて、エージェントにマッピングを依頼できます。

  3. 新しいプロファイルバージョンを発行し、ジョブを再実行します。

  4. 新しい を比較avgOverallCoverageRateして、ギャップが閉じられていることを確認します。

CSV ドリフトレポート

CSV ジョブの場合、レポートはセクションや OIDs。

{ "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" } ] }

読み方

概要から始めます。カバレッジレートは 0.0 から 1.0 までの小数です (高い方が適しています)。

フィールド 意味
overallCoverageRate ヘッドライン番号: プロファイルが実際に使用するすべての入力テーブルのすべての列の割合。 0.83 は、ソース列の約 83% がマッピングされていることを意味します。
tablesCoverageRate プロファイルがマッピングする入力 CSV ファイル (テーブル) の割合 (tablesProcessed/totalTablesInInput)。
columnsCoverageRate フィールドマッピングによって参照されるマッピングされたテーブル内の列の割合。

次に、カウントをチェックして変換結果を理解します。

フィールド 意味
totalTablesInInput と tablesProcessed 実際に使用された CSV ファイルと見つかった CSV ファイルの数。
totalColumnsInInput / columnsMapped / columnsUnmapped 存在するソース列、使用されたソース列、無視されたソース列の数。
totalRowsScanned / rowsConvertedSuccessfully 読み取り行数と正常に変換された行数。
rowsFailedCustomerError / rowsFailedServerError データ品質の問題と内部エラーが原因で失敗した行。
totalResourcesGenerated 生成された FHIR リソースの合計。

次に、見逃されたものを見つけます。

フィールド 意味 対応方法
unmappedTables プロファイルが宣言しない入力内の CSV ファイル (そのファイル内の理由と列を含む)。 そのファイルを変換する必要がある場合は、テーブルマッピングを追加します。
unmappedColumns テーブルごとに、列は CSV に存在しますが、フィールドマッピングでは使用されません。 FHIR 出力に必要な列のフィールドマッピングを追加します。

CSV ドリフトレポートの同期

読み方 は、変換ジョブが Amazon S3 に書き込むバルク (非同期) 形式について説明します。ドリフト検出を同期的に実行すると、API レスポンスにはカンマ区切り値 (CSV) ドリフトレポートをインラインで含めます。これを有効にするには、TransformDataリクエストtrueで enableDriftDetection を に設定します。同期リクエストはデータセット全体ではなく単一の入力を処理するため、レポートの構造はよりシンプルになります。

{ "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": [] }

summary、unmappedTables、および unmappedColumnsフィールドは、一括レポートと同じ意味を持ちます。同期レポートは、次の点で一括 CSV レポートとは異なります。

  • 同期リクエストは変換ジョブに関連付けられていないためprofileVersion、、jobIdprofileId、または はありません。代わりに、入力の形式を識別する最上位sourceFormatフィールド (CSV) が含まれます。

  • 行失敗数 (rowsFailedCustomerError および rowsFailedServerError) とバルクレポートの totalRowsScannedおよび rowsConvertedSuccessfullyフィールドは省略されます。同期リクエストは 1 つの入力を変換します。成功するか、エラーを返します。成功すると、各テーブルで処理された行数とperTableRowCountsマップがレポートtotalRowsProcessedされます。

  • tablesCoverageRate と が報告されますがcolumnsCoverageRate、組み合わせた は報告されませんoverallCoverageRate。

  • これには、プライマリキーの欠落や認識されない値マップエントリなど、変換中に発生した致命的でない問題を一覧表示するwarnings配列インラインが含まれます。

カバレッジの向上 (両方の形式)

  1. 最も影響の大きいギャップを特定します。C-CDA の場合は unknownSections/unknownEntries/ の最も頻度の高いエントリ、CSV missingResourcesの場合は unmappedTables、unmappedColumns、警告のエントリです。

  2. データ変換 AI エージェント (UpdateProfileWithAgent) を使用して欠落しているマッピングを追加します。マッピングされていない OID (C-CDA) または列名 (CSV) を貼り付け、エージェントにマッピングを依頼できます。

  3. 新しいプロファイルバージョンを発行し、ジョブを再実行します。

  4. 新しい を比較overallCoverageRateして、ギャップが閉じられていることを確認します。

注記

ドリフト検出は、プロファイルがマッピングしなかったことをレポートします。変換エラーを示すものではありません。ソースデータは、ユースケースに関連しない場合、意図的にマッピング解除したままにすることができます。レポートを使用して、マッピングする価値のあるものを決定します。