View a markdown version of this page

Entendendo os relatórios de deriva - AWS HealthLake

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

  1. Identifique as entradas de maior frequência em unknownSectionsunknownEntries, e. missingResources

  2. 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.

  3. Publique uma nova versão do perfil e execute o trabalho novamente.

  4. Compare o novo avgOverallCoverageRate para 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)

  1. Identifique as lacunas de maior impacto: para C-CDA, as entradas de maior frequência emunknownSections/unknownEntries/missingResources; para CSV, as entradas emunmappedTables, e os avisos. unmappedColumns

  2. 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.

  3. Publique uma nova versão do perfil e execute o trabalho novamente.

  4. Compare o novo overallCoverageRate para 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.