View a markdown version of this page

Drift-Berichte verstehen - AWS HealthLake

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Drift-Berichte verstehen

Wenn die Drift-Erkennung aktiviert ist, schreibt der Bulk-Job einen Aggregatbericht, der jobLevelDriftResult.json nach Ihrem Ausgabespeicherort benannt ist. Der Bericht informiert Sie darüber, wie viele Ihrer Quelldaten das Profil tatsächlich erfasst hat und was dabei übersehen wurde. So wissen Sie, wo Sie Ihre Zuordnungen verbessern können.

Die Struktur des Berichts hängt vom Quellformat ab: C-CDA Berichte sind nach Dokumentabschnitten und -einträgen (gekennzeichnet durch OIDs) organisiert, während CSV-Berichte nach Tabellen, Spalten und Zeilen organisiert sind. Beide verwenden das gleiche Konzept für die Deckungsrate (ein Bruchteil von 0,0 bis 1,0, wobei höher bedeutet, dass mehr von Ihrer Quelle erfasst wurde).

C-CDA Drift-Bericht

{ "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 } }

So wird es interpretiert

Beginnen Sie mit den Deckungsraten. Dabei handelt es sich um Durchschnittswerte aller verarbeiteten Dateien, ausgedrückt als Bruchteil von 0,0 bis 1,0 (multipliziert mit 100 für einen Prozentsatz). Höher ist besser: Eine höhere Rate bedeutet, dass mehr Ihrer Quelldaten in die FHIR-Ausgabe eingegangen sind.

Feld Bedeutung
avgOverallCoverageRate Die Schlagzeile. Der durchschnittliche Anteil des Quellinhalts (Abschnitte + Einträge), den das Profil FHIR zugeordnet hat. 0,88 bedeutet, dass ~ 88% Ihrer Quelldaten erfasst wurden.
avgSectionCoverageRate Durchschnittlicher Anteil der C-CDA Abschnitte (z. B. Probleme, Medikamente, Allergien), die zugeordnet wurden.
avgEntryCoverageRate Durchschnittlicher Anteil der einzelnen Einträge innerhalb von Abschnitten (z. B. ein einzelnes Problem oder Medikament), die zugeordnet wurden.
avgResourceAccuracy Der durchschnittliche Anteil der erwarteten FHIR-Ressourcen, der tatsächlich produziert wurde.

Finden Sie dann heraus, was verpasst wurde. Diese Felder verweisen Sie auf die spezifischen Zuordnungen, die Sie hinzufügen müssen:

Feld Bedeutung Vorgehensweise
unknownSections Eine Karte mit den OIDs des Quellabschnitts, die das Profil nicht erkannte, und gibt an, wie oft sie jeweils auftauchten. Fügen Sie Zuordnungen für die Abschnitts-OIDs mit der höchsten Anzahl hinzu.
unknownEntries Eine Übersicht der Quelleintrags-OIDs, die das Profil nicht erkannt hat, und ihrer Häufigkeit. Fügen Sie Zuordnungen für die Eintrags-OIDs mit hoher Anzahl hinzu.
missingResources Eine Karte der Quell-OID → der FHIR-Ressourcentypen, die erwartet, aber nicht produziert wurden, mit Zählungen. Korrigieren Sie die Zuordnungen, die diese Ressourcen hätten generieren sollen.
totalUnknownSections / totalUnknownEntries Gesamtzahl der Abschnitte und Einträge, die nicht zugeordnet wurden, im gesamten Job. Verwenden Sie es als schnelles Signal für die Frage, wie viel noch übrig ist.
documentOids Eine Übersicht der im Job C-CDA angezeigten Dokumenten-OIDs und der Anzahl der einzelnen OIDs. Bestätigt, welche Dokumenttypen Ihre Daten enthalten.

Priorisieren Sie nach Häufigkeit. Die Zahlen werden eingegeben unknownSections und unknownEntries geben missingResources Aufschluss darüber, welche Lücken die meisten Datensätze betreffen. Eine OID, die 40-mal erscheint, ist ein größerer Gewinn für die Map als eine, die zweimal erscheint.

Untersuchen Sie bestimmte Dateien. perFileDriftordnet jede Quelldatei ihrer Gesamtabdeckungsrate zu. Sortieren Sie nach den niedrigsten Werten, um die Dateien zu finden, die das Profil patient-002.xml am schlechtesten verarbeitet hat. Ein Wert von 0,61 ist beispielsweise eine Überprüfung wert. Eine vollständige Aufschlüsselung pro Datei (welche spezifischen OIDs in jeder Datei übersehen wurden) finden Sie in den einzelnen Berichten unter dem Ordner. driftDetectionPerFileResults/

Verbesserung der Reichweite

  1. Identifizieren Sie die Einträge mit der höchsten Häufigkeit in unknownSectionsunknownEntries, und. missingResources

  2. Verwenden Sie den Data Transformation AI-Agenten (UpdateProfileWithAgent), um Zuordnungen für diese OIDs und Ressourcen hinzuzufügen: Sie können eine OID einfügen und den Agenten bitten, sie zuzuordnen.

  3. Veröffentlichen Sie eine neue Profilversion und führen Sie den Job erneut aus.

  4. Vergleichen Sie die neue VersionavgOverallCoverageRate, um zu bestätigen, dass die Lücke geschlossen wurde.

CSV-Driftbericht

Bei CSV-Aufträgen besteht der Bericht aus Tabellen (jede CSV-Datei ist eine Tabelle), Spalten und Zeilen, nicht aus Abschnitten und 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" } ] }

So wird es interpretiert

Beginnen Sie mit der Zusammenfassung. Die Deckungsraten sind Bruchteile von 0,0 bis 1,0 (höher ist besser):

Feld Bedeutung
overallCoverageRate Die Schlagzahl: der Bruchteil aller Spalten in allen Eingabetabellen, den Ihr Profil tatsächlich verwendet. 0,83 bedeutet, dass ~ 83% Ihrer Quellspalten zugeordnet sind.
tablesCoverageRate Bruchteil Ihrer CSV-Eingabedateien (Tabellen), den das Profil abbildet (tablesProcessed/totalTablesInInput).
columnsCoverageRate Bruchteil der Spalten in den zugewiesenen Tabellen, auf die eine Feldzuordnung verweist.

Überprüfen Sie dann die Anzahl, um die Konvertierungsergebnisse zu verstehen:

Feld Bedeutung
totalTablesInInputvs tablesProcessed Wie viele Ihrer CSV-Dateien wurden tatsächlich verwendet oder gefunden?
totalColumnsInInput / columnsMapped / columnsUnmapped Wie viele Quellspalten existieren, verwendet wurden und ignoriert wurden.
totalRowsScanned / rowsConvertedSuccessfully Wie viele Zeilen wurden gelesen oder erfolgreich konvertiert?
rowsFailedCustomerError / rowsFailedServerError Zeilen, die aufgrund von Problemen mit der Datenqualität fehlgeschlagen sind, im Vergleich zu internen Fehlern.
totalResourcesGenerated Gesamtzahl der produzierten FHIR-Ressourcen.

Dann finde heraus, was verpasst wurde:

Feld Bedeutung Vorgehensweise
unmappedTables CSV-Dateien in Ihrer Eingabe, die das Profil nicht deklariert (mit dem Grund und den Spalten in dieser Datei). Fügen Sie eine Tabellenzuordnung hinzu, falls diese Datei konvertiert werden soll.
unmappedColumns Pro Tabelle sind die Spalten in der CSV-Datei enthalten, werden aber bei keiner Feldzuordnung verwendet. Fügen Sie Feldzuordnungen für die Spalten hinzu, die in der FHIR-Ausgabe enthalten sein sollen.

CSV-Drift-Bericht synchronisieren

So wird es interpretiertbeschreibt das Massenformat (asynchron), das ein Transformationsauftrag in Amazon S3 schreibt. Wenn Sie die Drift-Erkennung synchron ausführen, enthält die API-Antwort den Drift-Bericht mit kommagetrennten Werten (CSV) als Inline. Um dies zu aktivieren, setzen Sie in enableDriftDetection einer Anfrage true auf. TransformData Da eine Synchronisierungsanforderung eine einzelne Eingabe und nicht einen ganzen Datensatz verarbeitet, hat der Bericht eine einfachere Struktur.

{ "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": [] }

Die unmappedColumns Felder summaryunmappedTables, und haben dieselbe Bedeutung wie im Massenbericht. Der Synchronisierungsbericht unterscheidet sich in den folgenden Punkten vom CSV-Massenbericht:

  • Er hat keinenjobId, oder profileIdprofileVersion, weil eine Synchronisierungsanforderung nicht an einen Transformationsauftrag gebunden ist. Stattdessen enthält es ein sourceFormat Feld der obersten Ebene (CSV), das das Format der Eingabe identifiziert.

  • Die Anzahl der Zeilenfehler (rowsFailedCustomerErrorundrowsFailedServerError) sowie die Felder der Massenberichte und werden weggelassen. totalRowsScanned rowsConvertedSuccessfully Eine Synchronisierungsanforderung konvertiert eine einzelne Eingabe. Sie ist entweder erfolgreich oder gibt einen Fehler zurück. Bei Erfolg werden ein Bericht totalRowsProcessed und eine perTableRowCounts Karte mit der Anzahl der verarbeiteten Zeilen für jede Tabelle angezeigt.

  • Es meldet tablesCoverageRate undcolumnsCoverageRate, aber nicht kombiniertoverallCoverageRate.

  • Es enthält ein warnings Inline-Array, das nicht schwerwiegende Probleme auflistet, die bei der Konvertierung aufgetreten sind, z. B. fehlende Primärschlüssel oder unbekannte Value-Map-Einträge.

Verbesserung der Abdeckung (beide Formate)

  1. Identifizieren Sie die Lücken mit den größten Auswirkungen: für C-CDA die Einträge inunknownSections/unknownEntries/mit der höchsten HäufigkeitmissingResources; für CSV die Einträge in unmappedTables und und für Warnungen. unmappedColumns

  2. Verwenden Sie den Data Transformation AI-Agenten (UpdateProfileWithAgent), um die fehlenden Zuordnungen hinzuzufügen: Sie können eine nicht zugeordnete OID (C-CDA) oder einen Spaltennamen (CSV) einfügen und den Agenten bitten, ihn zuzuordnen.

  3. Veröffentlichen Sie eine neue Profilversion und führen Sie den Job erneut aus.

  4. Vergleichen Sie die neue VersionoverallCoverageRate, um zu bestätigen, dass die Lücke geschlossen wurde.

Anmerkung

Die Drift-Erkennung meldet, was einem Profil nicht zugeordnet wurde. Sie weist nicht auf einen Konvertierungsfehler hin. Quelldaten können absichtlich nicht zugeordnet werden, wenn sie für Ihren Anwendungsfall nicht relevant sind. Entscheiden Sie anhand des Berichts, was eine Zuordnung wert ist.