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 a quantidade de dados de origem que 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 de origem: 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 torno de tabelas, colunas e linhas. Ambos compartilham o mesmo conceito de taxa de cobertura (uma fração de 0,0 a 1,0, em que mais significa que mais de 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 as 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 do título. 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 das entradas individuais nas 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, descubra 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 unknownSections entramunknownEntries, e missingResources indicam 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.
Analise 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 tratou pior: por exemplo, vale a pena patient-002.xml inspecionar 0,61. Para 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 a lacuna fechada.
Relatório de deriva em CSV
Para trabalhos CSV, o relatório é organizado em torno de tabelas (cada arquivo CSV é uma tabela), colunas e linhas, não 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 das 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 ou 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 de FHIR produzidos. |
Em seguida, descubra 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 nesse 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. |
Relatório de desvio de sincronização de CSV
Como interpretar o gráficodescreve o formato em massa (assíncrono) que um trabalho de transformação grava no Amazon S3. Quando você executa a detecção de desvio de forma síncrona, a resposta da API inclui o relatório de desvio de valores separados por vírgula (CSV) em linha. Para ativar isso, enableDriftDetection defina como true em uma TransformData solicitação. Como uma solicitação de sincronização processa uma única entrada em vez de um conjunto de dados inteiro, seu relatório tem uma estrutura mais simples.
{ "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": [] }
Os unmappedColumns campos summaryunmappedTables,, e têm o mesmo significado que no relatório em massa. O relatório de sincronização difere do relatório CSV em massa das seguintes maneiras:
-
Não tem, ou
jobIdprofileIdprofileVersion, porque uma solicitação de sincronização não está vinculada a um trabalho de transformação. Em vez disso, ele inclui umsourceFormatcampo de nível superior (CSV) que identifica o formato da entrada. -
Ele omite as contagens de falhas de linha (
rowsFailedCustomerErrorerowsFailedServerError) e os campos e relatórios em massa.totalRowsScannedrowsConvertedSuccessfullyUma solicitação de sincronização converte uma única entrada. Ele é bem-sucedido ou retorna um erro. Em caso de sucesso, ele relatatotalRowsProcessedumperTableRowCountsmapa mostrando o número de linhas processadas para cada tabela. -
Ele relata
tablesCoverageRateecolumnsCoverageRate, mas não um combinadooverallCoverageRate. -
Ele inclui uma
warningsmatriz em linha que lista problemas não fatais encontrados durante a conversão, como chaves primárias ausentes ou entradas de mapa de valores não reconhecidas.
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 a lacuna fechada.
nota
A detecção de desvio 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.