

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Comprensione dei report sulla deriva
<a name="data-transformation-drift-report"></a>

 Quando il rilevamento delle deviazioni è abilitato, il bulk job scrive un rapporto aggregato denominato in base `jobLevelDriftResult.json` alla tua posizione di output. Il rapporto indica la quantità di dati di origine effettivamente acquisita dal profilo e i dati mancanti, in modo da sapere dove migliorare le mappature. 

 La struttura del rapporto dipende dal formato di origine: i C-CDA report sono organizzati in base a sezioni e voci del documento (identificate da OID), mentre i report CSV sono organizzati in tabelle, colonne e righe. Entrambi condividono lo stesso concetto di tasso di copertura (una frazione da 0,0 a 1,0, dove più alto significa che è stata acquisita una parte maggiore del codice sorgente). 
+ [C-CDA rapporto sulla deriva](#data-transformation-drift-report-ccda)
+ [Rapporto sulla deriva in formato CSV](#data-transformation-drift-report-csv)
+ [Miglioramento della copertura (entrambi i formati)](#data-transformation-drift-report-improving)

## C-CDA rapporto sulla deriva
<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 
    }
}
```

### Come leggere i dati
<a name="data-transformation-drift-report-ccda-read"></a>

 Inizia con i tassi di copertura. Si tratta delle medie di tutti i file elaborati, espresse come frazione da 0,0 a 1,0 (moltiplicate per 100 per ottenere una percentuale). Più alto è meglio: una frequenza più alta significa che una maggiore quantità di dati di origine viene inserita nell'output FHIR. 


| Campo | Significato | 
| --- | --- | 
| avgOverallCoverageRate | Il numero principale. La frazione media del contenuto di origine (sezioni e voci) mappata dal profilo a FHIR. 0,88 significa che è stato acquisito circa l'88% dei dati di origine. | 
| avgSectionCoverageRate | Frazione media delle C-CDA sezioni (ad esempio, Problemi, Farmaci, Allergie) che sono state mappate. | 
| avgEntryCoverageRate | Frazione media delle singole voci all'interno delle sezioni (ad esempio, un singolo problema o farmaco) che sono state mappate. | 
| avgResourceAccuracy | Delle risorse FHIR previste, la frazione media effettivamente prodotta. | 

 Allora scopri cosa ti è sfuggito. Questi campi ti indirizzano alle mappature specifiche da aggiungere: 


| Campo | Significato | Cosa fare | 
| --- | --- | --- | 
| unknownSections | Una mappa degli OID della sezione sorgente che il profilo non ha riconosciuto e quante volte ciascuno è apparso. | Aggiungi mappature per gli OID delle sezioni con un numero elevato di numeri. | 
| unknownEntries | Una mappa degli OID di immissione della sorgente che il profilo non ha riconosciuto e della relativa frequenza. | Aggiungi mappature per gli OID delle voci con un numero elevato di voci. | 
| missingResources | Una mappa dell'OID di origine → i tipi di risorse FHIR previsti ma non prodotti, con conteggi. | Correggi le mappature che avrebbero dovuto generare quelle risorse. | 
| totalUnknownSections / totalUnknownEntries | Conteggio totale delle sezioni e delle voci non mappate in tutto il lavoro. | Usa come segnale rapido «quanto resta». | 
| documentOids | Una mappa degli OID del C-CDA tipo di documento visualizzati nel lavoro e il numero di ciascuno di essi. | Conferma i tipi di documenti contenuti nei dati. | 

 Assegna priorità in base alla frequenza. Il conteggio arriva `unknownSections` e `unknownEntries` `missingResources` indica quali lacune influiscono sulla maggior parte dei record. Un OID che appare 40 volte è una vincita maggiore da mappare rispetto a uno che appare due volte. 

 Approfondisci i file specifici. `perFileDrift`associa ogni file sorgente al suo tasso di copertura complessivo. Ordina in base ai valori più bassi per trovare i file che il profilo ha gestito peggio: ad esempio, vale la pena `patient-002.xml` esaminarli a 0,61. Per un'analisi completa per file (quali OID specifici sono stati omessi da ciascun file), consulta i singoli report sotto la cartella. `driftDetectionPerFileResults/` 

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

1. Identifica le voci con la frequenza più alta in`unknownSections`, e`unknownEntries`. `missingResources`

1. Usa l'agente Data Transformation AI (`UpdateProfileWithAgent`) per aggiungere mappature per tali OID e risorse: puoi incollare un OID e chiedere all'agente di mapparlo.

1. Pubblica una nuova versione del profilo ed esegui nuovamente il processo.

1. Confronta il nuovo `avgOverallCoverageRate` per confermare che il divario è stato colmato.

## Rapporto sulla deriva in formato CSV
<a name="data-transformation-drift-report-csv"></a>

 Per i lavori CSV, il rapporto è organizzato in tabelle (ogni file CSV è una tabella), colonne e righe: non sezioni e 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"
    }
  ]
}
```

### Come leggere i dati
<a name="data-transformation-drift-report-csv-read"></a>

 Inizia con il riepilogo. I tassi di copertura sono frazioni da 0,0 a 1,0 (meglio è più alto): 


| Campo | Significato | 
| --- | --- | 
| overallCoverageRate | Il numero del titolo: la frazione di tutte le colonne di tutte le tabelle di input effettivamente utilizzate dal profilo. 0,83 significa che circa l'83% delle colonne di origine sono mappate. | 
| tablesCoverageRate | Frazione dei file CSV di input (tabelle) mappati dal profilo (/). tablesProcessed totalTablesInInput | 
| columnsCoverageRate | Frazione di colonne nelle tabelle mappate a cui fa riferimento una mappatura dei campi. | 

 Quindi controlla i conteggi per comprendere i risultati delle conversioni: 


| Campo | Significato | 
| --- | --- | 
| totalTablesInInputcontro tablesProcessed | Quanti dei tuoi file CSV sono stati effettivamente utilizzati rispetto a quelli trovati. | 
| totalColumnsInInput / columnsMapped / columnsUnmapped | Quante colonne di origine esistono, sono state utilizzate e sono state ignorate. | 
| totalRowsScanned / rowsConvertedSuccessfully | Quante righe sono state lette e quante sono state convertite con successo. | 
| rowsFailedCustomerError / rowsFailedServerError | Righe non riuscite a causa di problemi di qualità dei dati o errori interni. | 
| totalResourcesGenerated | Risorse FHIR totali prodotte. | 

 Quindi scopri cosa è mancato: 


| Campo | Significato | Cosa fare | 
| --- | --- | --- | 
| unmappedTables | File CSV nell'input che il profilo non dichiara (con il motivo e le colonne in quel file). | Aggiungi una mappatura della tabella se quel file deve essere convertito. | 
| unmappedColumns | Per tabella, le colonne presenti nel file CSV ma non utilizzate da nessuna mappatura dei campi. | Aggiungi le mappature dei campi per le colonne che desideri nell'output FHIR. | 

## Miglioramento della copertura (entrambi i formati)
<a name="data-transformation-drift-report-improving"></a>

1. Identifica le lacune con il maggiore impatto: per C-CDA, le voci con la frequenza più alta in`unknownSections`/`unknownEntries`/`missingResources`; per CSV, le voci in e e gli avvisi. `unmappedTables` `unmappedColumns`

1. Usa l'agente Data Transformation AI (`UpdateProfileWithAgent`) per aggiungere le mappature mancanti: puoi incollare un OID () o un nome di colonna (CSVC-CDA) non mappato e chiedere all'agente di mapparlo.

1. Pubblica una nuova versione del profilo ed esegui nuovamente il lavoro.

1. Confronta il nuovo `overallCoverageRate` per confermare che il divario è stato colmato.

**Nota**  
Il rilevamento della deriva segnala ciò che un profilo non è stato mappato; non indica un errore di conversione. I dati di origine possono essere intenzionalmente lasciati non mappati se non sono pertinenti al caso d'uso. Usa il rapporto per decidere cosa vale la pena mappare.