

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Comprensión de los informes de deriva
<a name="data-transformation-drift-report"></a>

 Cuando la detección de desviaciones está habilitada, el trabajo masivo escribe un informe agregado `jobLevelDriftResult.json` con el nombre de su ubicación de salida. El informe le indica qué cantidad de sus datos de origen capturó realmente el perfil y qué es lo que omitió, para que sepa dónde mejorar sus mapeos. 

 La estructura del informe depende del formato de origen: C-CDA los informes se organizan en torno a las secciones y entradas del documento (identificadas mediante OID), mientras que los informes CSV se organizan en torno a tablas, columnas y filas. Ambos comparten el mismo concepto de tasa de cobertura (una fracción de 0,0 a 1,0, donde un porcentaje más alto significa que se capturó una mayor parte de la fuente). 
+ [C-CDA informe de desviación](#data-transformation-drift-report-ccda)
+ [Informe de deriva en CSV](#data-transformation-drift-report-csv)
+ [Mejora de la cobertura (ambos formatos)](#data-transformation-drift-report-improving)

## C-CDA informe de desviación
<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 
    }
}
```

### Cómo leerlo
<a name="data-transformation-drift-report-ccda-read"></a>

 Comience con las tasas de cobertura. Se trata de promedios de todos los archivos procesados, expresados como una fracción de 0,0 a 1,0 (se multiplica por 100 para obtener un porcentaje). Cuanto más alto, mejor: una tasa más alta significa que más datos de origen se incorporaron a la salida del FHIR. 


| Campo | Qué significa | 
| --- | --- | 
| avgOverallCoverageRate | El número principal. La fracción media del contenido fuente (secciones y entradas) que el perfil asignó al FHIR. 0,88 significa que se capturó aproximadamente el 88% de los datos fuente. | 
| avgSectionCoverageRate | Fracción media de C-CDA secciones (por ejemplo, Problemas, Medicamentos, Alergias) que se mapearon. | 
| avgEntryCoverageRate | Fracción media de entradas individuales dentro de las secciones (por ejemplo, un solo problema o medicamento) que se mapearon. | 
| avgResourceAccuracy | De los recursos del FHIR esperados, la fracción media que se produjo realmente. | 

 Luego encuentra lo que se perdió. Estos campos indican los mapeos específicos que se deben agregar: 


| Campo | Qué significa | Solución | 
| --- | --- | --- | 
| unknownSections | Un mapa de los ID de sección de origen que el perfil no reconoció y cuántas veces apareció cada uno. | Añada mapeos para los OID de las secciones con mayor número de números. | 
| unknownEntries | Un mapa de los OID de entrada de origen que el perfil no reconoció y su frecuencia. | Agregue mapeos para los OID de entrada con un número elevado de números. | 
| missingResources | Un mapa del OID de origen → los tipos de recursos del FHIR que se esperaban pero no se produjeron, con recuentos. | Corrija las asignaciones que deberían haber generado esos recursos. | 
| totalUnknownSections / totalUnknownEntries | Recuentos totales de secciones y entradas no mapeadas en todo el trabajo. | Úselo como una señal rápida de «cuánto queda». | 
| documentOids | Un mapa de los OID del C-CDA tipo de documento que aparecen en el trabajo y cuántos de cada uno. | Confirma qué tipos de documentos contienen sus datos. | 

 Prioriza por frecuencia. Los recuentos incluyen `unknownSections` y `missingResources` le indican qué brechas afectan a la mayoría de los registros. `unknownEntries` Un OID que aparece 40 veces es más ventajoso para mapear que uno que aparece dos veces. 

 Profundice en archivos específicos. `perFileDrift`asigna cada archivo fuente a su tasa de cobertura general. Ordena por los valores más bajos para encontrar los archivos que el perfil ha gestionado peor: por ejemplo, `patient-002.xml` vale la pena inspeccionar los archivos con un valor de 0,61. Para obtener un desglose completo por archivo (qué OID específicos omitió cada archivo), consulte los informes individuales de la carpeta. `driftDetectionPerFileResults/` 

### Mejorar la cobertura
<a name="data-transformation-drift-report-ccda-improving"></a>

1. Identifique las entradas con mayor frecuencia en `unknownSections``unknownEntries`, y. `missingResources`

1. Utilice el agente de IA de transformación de datos (`UpdateProfileWithAgent`) para añadir mapeos para esos OID y recursos: puede pegar un OID y pedirle al agente que lo mapee.

1. Publique una nueva versión del perfil y vuelva a ejecutar el trabajo.

1. Compare lo nuevo `avgOverallCoverageRate` para confirmar que se ha cerrado la brecha.

## Informe de deriva en CSV
<a name="data-transformation-drift-report-csv"></a>

 En el caso de los trabajos CSV, el informe se organiza en tablas (cada archivo CSV es una tabla), columnas y filas, no en secciones ni 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"
    }
  ]
}
```

### Cómo leerlo
<a name="data-transformation-drift-report-csv-read"></a>

 Comience con el resumen. Las tasas de cobertura son fracciones de 0.0 a 1.0 (cuanto más alto, mejor): 


| Campo | Qué significa | 
| --- | --- | 
| overallCoverageRate | El número principal: la fracción de todas las columnas de todas las tablas de entrada que utiliza realmente tu perfil. 0,83 significa que aproximadamente el 83% de las columnas de origen están mapeadas. | 
| tablesCoverageRate | Fracción de los archivos CSV de entrada (tablas) que el perfil mapea (tablesProcessed/totalTablesInInput). | 
| columnsCoverageRate | Fracción de columnas de las tablas mapeadas a las que hace referencia una asignación de campos. | 

 A continuación, compruebe los recuentos para comprender los resultados de las conversiones: 


| Campo | Qué significa | 
| --- | --- | 
| totalTablesInInputvs tablesProcessed | ¿Cuántos de tus archivos CSV se usaron realmente o se encontraron? | 
| totalColumnsInInput / columnsMapped / columnsUnmapped | Cuántas columnas de origen existen, se usaron y se ignoraron. | 
| totalRowsScanned / rowsConvertedSuccessfully | Cuántas filas se leyeron y cuántas se convirtieron correctamente. | 
| rowsFailedCustomerError / rowsFailedServerError | Las filas que fallaron debido a problemas de calidad de los datos se comparan con errores internos. | 
| totalResourcesGenerated | Total de recursos del FHIR producidos. | 

 Luego encuentra lo que se perdió: 


| Campo | Qué significa | Solución | 
| --- | --- | --- | 
| unmappedTables | Archivos CSV incluidos en tu entrada que el perfil no declara (con el motivo y las columnas de ese archivo). | Agrega un mapeo de tablas si ese archivo se debe convertir. | 
| unmappedColumns | Por tabla, las columnas presentes en el CSV pero que no se utilizan en ningún mapeo de campos. | Añada asignaciones de campos para las columnas que desee incluir en la salida del FHIR. | 

## Mejora de la cobertura (ambos formatos)
<a name="data-transformation-drift-report-improving"></a>

1. Identifique las brechas de mayor impacto: en el C-CDA caso de las entradas con mayor frecuencia en`unknownSections`/`unknownEntries`/`missingResources`; en el caso del CSV, las entradas en `unmappedTables` y las advertencias. `unmappedColumns`

1. Utilice el agente de IA de transformación de datos (`UpdateProfileWithAgent`) para añadir las asignaciones que faltan: puede pegar un OID (C-CDA) o un nombre de columna (CSV) sin mapear y pedirle al agente que lo mapee.

1. Publique una nueva versión del perfil y vuelva a ejecutar el trabajo.

1. Compare lo nuevo `overallCoverageRate` para confirmar que se ha cerrado la brecha.

**nota**  
La detección de desviaciones indica lo que un perfil no ha mapeado; no indica un error de conversión. Los datos de origen se pueden dejar sin mapear intencionadamente si no son relevantes para su caso de uso. Utilice el informe para decidir qué es lo que vale la pena mapear.