

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 了解漂移报告
<a name="data-transformation-drift-report"></a>

 启用偏差检测后，批量作业会将名为的汇总报告写入`jobLevelDriftResult.json`到您的输出位置。该报告会告诉您配置文件实际捕获了多少源数据，以及遗漏了什么：因此您知道在哪里可以改进映射。

 报告的结构取决于源格式： C-CDA 报告围绕文档章节和条目（由 OID 标识）进行组织，而 CSV 报告则围绕表、列和行进行组织。两者都有相同的覆盖率概念（从0.0到1.0的分数，其中越高意味着捕获的来源越多）。
+ [C-CDA 漂移报告](#data-transformation-drift-report-ccda)
+ [CSV 偏差报告](#data-transformation-drift-report-csv)
+ [提高覆盖范围（两种格式）](#data-transformation-drift-report-improving)

## C-CDA 漂移报告
<a name="data-transformation-drift-report-ccda"></a>

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

### 如何查看
<a name="data-transformation-drift-report-ccda-read"></a>

 从覆盖率开始。这些是所有已处理文件的平均值，以 0.0 到 1.0 之间的分数表示（乘以 100 得出百分比）。越高越好：速率越高意味着更多的源数据进入了 FHIR 输出。


| 字段 | 含义 | 
| --- | --- | 
| avgOverallCoverageRate | 标题编号。配置文件映射到 FHIR 的源内容（章节\+条目）的平均比例。0.88 表示捕获了大约 88% 的源数据。 | 
| avgSectionCoverageRate | 绘制的 C-CDA 部分（例如，问题、药物、过敏）的平均比例。 | 
| avgEntryCoverageRate | 绘制的章节（例如，单个问题或药物）中单个条目的平均比例。 | 
| avgResourceAccuracy | 在预期的FHIR资源中，实际生产的平均比例。 | 

 然后找出错过的东西。这些字段指向要添加的特定映射：


| 字段 | 含义 | 操作 | 
| --- | --- | --- | 
| unknownSections | 配置文件无法识别的来源部分 OID 的地图，以及每个标识出现的次数。 | 为高计数部分 OID 添加映射。 | 
| unknownEntries | 配置文件无法识别的来源条目 OID 及其频率的地图。 | 为高计数条目 OID 添加映射。 | 
| missingResources | 源 OID 的地图 → 预期但未生成的 FHIR 资源类型，包括计数。 | 修复本应生成这些资源的映射。 | 
| totalUnknownSections / totalUnknownEntries | 作业中未映射的章节和条目的总数。 | 用作 “还剩多少” 的快速信号。 | 
| documentOids | 作业中看到的 C-CDA 文档类型 OID 的地图，以及每个 OID 的数量。 | 确认您的数据包含哪些文档类型。 | 

 按频率确定优先顺序。`unknownSections`、`unknownEntries`、中的计数会`missingResources`告诉你哪些差距影响最多的记录。出现 40 次的 OID 比出现两次的 OID 更胜一筹。

 深入研究特定文件。 `perFileDrift`将每个源文件映射到其总体覆盖率。按最低值排序，找出配置文件处理得最差的文件：例如，`patient-002.xml`0.61 值值得检查。有关每个文件的完整细分（每个文件错过了哪些特定 OID），请参阅该`driftDetectionPerFileResults/`文件夹下的各个报告。

### 改善覆盖范围
<a name="data-transformation-drift-report-ccda-improving"></a>

1. 确定`unknownSections`、`unknownEntries`和中频率最高的条目。`missingResources`

1. 使用数据转换 AI 代理 (`UpdateProfileWithAgent`) 为这些 OID 和资源添加映射：您可以粘贴 OID 并要求代理对其进行映射。

1. 发布新的配置文件版本并重新运行作业。

1. 比较新的`avgOverallCoverageRate`以确认差距已缩小。

## CSV 偏差报告
<a name="data-transformation-drift-report-csv"></a>

 对于 CSV 作业，报告是围绕表格（每个 CSV 文件都是一个表格）、列和行进行组织的，而不是章节和 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"
    }
  ]
}
```

### 如何查看
<a name="data-transformation-drift-report-csv-read"></a>

 从摘要开始。覆盖率是从 0.0 到 1.0 的分数（越高越好）：


| 字段 | 含义 | 
| --- | --- | 
| overallCoverageRate | 标题编号：您的配置文件实际使用的所有输入表中所有列的比例。0.83 表示大约 83% 的源列已映射。 | 
| tablesCoverageRate | 配置文件映射的输入 CSV 文件（表）的一部分（tablesProcessed/totalTablesInInput）。 | 
| columnsCoverageRate | 字段映射引用的映射表中列的比例。 | 

 然后查看计数以了解转化结果：


| 字段 | 含义 | 
| --- | --- | 
| totalTablesInInputvs tablesProcessed | 实际使用了多少个 CSV 文件与找到的相比。 | 
| totalColumnsInInput / columnsMapped / columnsUnmapped | 有多少源列存在、被使用和被忽略。 | 
| totalRowsScanned / rowsConvertedSuccessfully | 读取了多少行与成功转换的行数。 | 
| rowsFailedCustomerError / rowsFailedServerError | 与内部错误相比，由于数据质量问题而失败的行。 | 
| totalResourcesGenerated | 产生的 FHIR 资源总额。 | 

 然后找出错过的内容：


| 字段 | 含义 | 操作 | 
| --- | --- | --- | 
| unmappedTables | 您输入的配置文件中未声明的 CSV 文件（包括该文件中的原因和列）。 | 如果要转换该文件，请添加表映射。 | 
| unmappedColumns | 根据表，列存在于 CSV 中，但未被任何字段映射使用。 | 在 FHIR 输出中为所需的列添加字段映射。 | 

## 提高覆盖范围（两种格式）
<a name="data-transformation-drift-report-improving"></a>

1. 确定影响最大的差距：对于 C-CDA，`unknownSections`/`unknownEntries`/中频率最高的条目`missingResources`；对于 CSV，在`unmappedTables`、`unmappedColumns`中的条目和警告。

1. 使用数据转换 AI 代理 (`UpdateProfileWithAgent`) 添加缺少的映射：您可以粘贴未映射的 OID (C-CDA) 或列名 (CSV)，然后要求代理对其进行映射。

1. 发布新的配置文件版本并重新运行作业。

1. 比较新的`overallCoverageRate`以确认差距已缩小。

**注意**  
漂移检测会报告配置文件未映射的内容；它并不表示存在转换错误。如果源数据与您的用例无关，则可以故意将其置于未映射状态。使用该报告来决定哪些内容值得绘制。