As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Entendendo os relatórios de deriva
Quando a detecção de desvio está ativada, o trabalho em massa grava um relatório agregado com o nome do seu jobLevelDriftResult.json local de saída. O relatório informa quanto dos seus dados de origem o perfil realmente capturou e o que ele perdeu: para que você saiba onde melhorar seus mapeamentos.
A estrutura do relatório depende do formato da fonte: os C-CDA relatórios são organizados em torno de seções e entradas do documento (identificadas por OIDs), enquanto os relatórios CSV são organizados em tabelas, colunas e linhas. Ambos compartilham o mesmo conceito de taxa de cobertura (uma fração de 0,0 a 1,0, onde maior significa que mais da sua fonte foi capturada).
C-CDA relatório de deriva
{ "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 } }
Como interpretar o gráfico
Comece com as taxas de cobertura. Essas são médias de todos os arquivos processados, expressas como uma fração de 0,0 a 1,0 (multiplique por 100 para obter uma porcentagem). Quanto maior, melhor: uma taxa mais alta significa que mais dados de origem chegaram à saída FHIR.
| Campo | O que significa |
|---|---|
avgOverallCoverageRate |
O número da manchete. A fração média do conteúdo de origem (seções + entradas) que o perfil mapeou para o FHIR. 0,88 significa que ~ 88% dos dados de origem foram capturados. |
avgSectionCoverageRate |
Fração média das C-CDA seções (por exemplo, Problemas, Medicamentos, Alergias) que foram mapeadas. |
avgEntryCoverageRate |
Fração média de entradas individuais em seções (por exemplo, um único problema ou medicamento) que foram mapeadas. |
avgResourceAccuracy |
Dos recursos do FHIR esperados, a fração média que foi realmente produzida. |
Em seguida, encontre o que foi perdido. Esses campos indicam os mapeamentos específicos a serem adicionados:
| Campo | O que significa | O que fazer |
|---|---|---|
unknownSections |
Um mapa dos OIDs da seção de origem que o perfil não reconheceu e quantas vezes cada um apareceu. | Adicione mapeamentos para os OIDs de seção de alta contagem. |
unknownEntries |
Um mapa dos OIDs de entrada da fonte que o perfil não reconheceu e sua frequência. | Adicione mapeamentos para os OIDs de entrada de alta contagem. |
missingResources |
Um mapa do OID de origem → os tipos de recursos do FHIR que eram esperados, mas não produzidos, com contagens. | Corrija os mapeamentos que deveriam ter gerado esses recursos. |
totalUnknownSections /
totalUnknownEntries |
Contagens totais de seções e entradas não mapeadas em todo o trabalho. | Use como um sinal rápido de “quanto resta”. |
documentOids |
Um mapa dos OIDs do C-CDA tipo de documento vistos no trabalho e quantos de cada um. | Confirma quais tipos de documentos seus dados contêm. |
Priorize por frequência. As contagens emunknownSections,unknownEntries, e missingResources informam quais lacunas afetam a maioria dos registros. Um OID que aparece 40 vezes é uma vitória maior para mapear do que um que aparece duas vezes.
Examine arquivos específicos. perFileDriftmapeia cada arquivo de origem para sua taxa de cobertura geral. Classifique pelos valores mais baixos para encontrar os arquivos que o perfil mais manipulou: por exemplo, vale a pena inspecionar patient-002.xml em 0,61. Para obter uma análise completa por arquivo (quais OIDs específicos cada arquivo perdeu), consulte os relatórios individuais na driftDetectionPerFileResults/ pasta.
Melhorando a cobertura
-
Identifique as entradas de maior frequência em
unknownSectionsunknownEntries, e.missingResources -
Use o agente de IA de transformação de dados (
UpdateProfileWithAgent) para adicionar mapeamentos para esses OIDs e recursos: você pode colar um OID e pedir ao agente que o mapeie. -
Publique uma nova versão do perfil e execute o trabalho novamente.
-
Compare o novo
avgOverallCoverageRatepara confirmar que a lacuna foi fechada.
Relatório de desvio em CSV
Para trabalhos em CSV, o relatório é organizado em tabelas (cada arquivo CSV é uma tabela), colunas e linhas: não em seções e 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" } ] }
Como interpretar o gráfico
Comece com o resumo. As taxas de cobertura são frações de 0,0 a 1,0 (quanto maior, melhor):
| Campo | O que significa |
|---|---|
overallCoverageRate |
O número do título: a fração de todas as colunas em todas as tabelas de entrada que seu perfil realmente usa. 0,83 significa que ~ 83% das colunas de origem estão mapeadas. |
tablesCoverageRate |
Fração dos arquivos CSV de entrada (tabelas) que o perfil mapeia (tablesProcessed/totalTablesInInput). |
columnsCoverageRate |
Fração de colunas nas tabelas mapeadas que são referenciadas por um mapeamento de campo. |
Em seguida, verifique as contagens para entender os resultados da conversão:
| Campo | O que significa |
|---|---|
totalTablesInInputvs tablesProcessed |
Quantos dos seus arquivos CSV foram realmente usados versus encontrados. |
totalColumnsInInput /
columnsMapped /
columnsUnmapped |
Quantas colunas de origem existem, foram usadas e foram ignoradas. |
totalRowsScanned /
rowsConvertedSuccessfully |
Quantas linhas foram lidas versus convertidas com sucesso. |
rowsFailedCustomerError /
rowsFailedServerError |
Linhas que falharam devido a problemas de qualidade de dados versus erros internos. |
totalResourcesGenerated |
Total de recursos do FHIR produzidos. |
Em seguida, encontre o que foi perdido:
| Campo | O que significa | O que fazer |
|---|---|---|
unmappedTables |
Arquivos CSV em sua entrada que o perfil não declara (com o motivo e as colunas desse arquivo). | Adicione um mapeamento de tabela se esse arquivo precisar ser convertido. |
unmappedColumns |
Por tabela, as colunas presentes no CSV, mas não usadas por nenhum mapeamento de campo. | Adicione mapeamentos de campo para as colunas que você deseja na saída FHIR. |
Melhorando a cobertura (ambos os formatos)
-
Identifique as lacunas de maior impacto: para C-CDA, as entradas de maior frequência em
unknownSections/unknownEntries/missingResources; para CSV, as entradas emunmappedTables, e os avisos.unmappedColumns -
Use o agente de IA de transformação de dados (
UpdateProfileWithAgent) para adicionar os mapeamentos ausentes: você pode colar um OID (C-CDA) ou nome de coluna (CSV) não mapeado e pedir ao agente que o mapeie. -
Publique uma nova versão do perfil e execute o trabalho novamente.
-
Compare o novo
overallCoverageRatepara confirmar que a lacuna foi fechada.
nota
A detecção de desvios relata o que um perfil não mapeou; ela não indica um erro de conversão. Os dados de origem podem ser intencionalmente deixados sem mapeamento se não forem relevantes para seu caso de uso. Use o relatório para decidir o que vale a pena mapear.