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.
Erste Schritte mit dem SDK und AWS CLI
Installieren und konfigurieren
Anweisungen zur Installation und Konfiguration finden Sie unter Installieren des AWS CLI.
Schritt 1: Erstellen Sie ein Transformationsprofil
Beginnen Sie mit AWS Starter-Profil (nur CCDA)
aws healthlake create-data-transformation-profile \ --region us-west-2 \ --source-format CCDA \ --profile-name "My CCDA Profile" \ --source '{"StarterProfile": {"StarterProfileName": "ccda-starter-kit-v1"}}'
Beginnen Sie mit Beispieldaten (nur CSV)
Profil erstellen:
aws healthlake create-data-transformation-profile \ --region us-west-2 \ --source-format CSV \ --profile-name "Patient CSV Mapping" \ --source '{"SampleData": {"S3Uri": "s3://my-bucket/samples/patient-data.csv"}}'
Führen Sie den AI-Agenten aus, um die erste YAML-Zuordnung zu erstellen.
Initiieren Sie eine neue Konversation mit dem Agenten, um eine neue Konversations-ID zu erhalten. Rufen Sie die API erneut auf und übergeben Sie diesmal die ConversationId aus der vorherigen Antwort und Ihre eigentliche Anfrage. Bei einem CSV-Profil analysiert der Agent hier die Beispieldateien, die Sie bei der Erstellung angegeben haben, und generiert das YAML-Mapping:
aws healthlake update-profile-with-agent \ --region us-west-2 \ --profile-id "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6" \ --source-format CSV \ --conversation-id "00154593-c867-4e4c-b870-25fb5237e54f" \ --input-message '{"Body": "Generate a profile to convert my CSVs into FHIR.", "Type": "normal"}'
Setzen Sie die Konversation mit derselben fort ConversationId , um das Mapping über mehrere Runden hinweg zu verfeinern (z. B. „Ordnen Sie die RACE_CD-Spalte einer FHIR-Erweiterung zu“). Wenn der Agent Sie auffordert, eine Änderung zu bestätigen, antworten Sie mit „Type“: „confirmation_response“.
Beginnen Sie mit dem lokalen Mapping
aws healthlake create-data-transformation-profile \ --region us-west-2 \ --source-format CCDA \ --profile-name "CI/CD Profile" \ --source '{"ProfileMapping": {"ProfileMapping": {"Resources/Patient.vm": "#set($patient = $input)..."}}}'
Aus vorhandenem Profil klonen
aws healthlake create-data-transformation-profile \ --region us-east-1 \ --source-format CCDA \ --profile-name test-profile-clone \ --source '{"ExistingVersionedProfileId": {"ProfileId": "e41af4b891d6f9211b42b90435cf0cea", "Version": 0}}'
Antwort:
{ "ProfileId": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6", "Version": 0, "SourceFormat": "CCDA", "TargetFormat": "FHIR_R4", "ProfileName": "My CCDA Profile", "LastUpdatedAt": "2026-07-01T12:00:00Z" }
Das Profil wird im Entwurfsstatus (Version 0) erstellt.
Schritt 2: Passen Sie das Profil mit dem AI-Agenten an (optional)
Initiieren Sie eine neue Konversation mit dem Agenten, um eine neue Konversations-ID zu erhalten. Rufen Sie die API erneut auf, diesmal mit der ConversationId
aws healthlake update-profile-with-agent \ --region us-west-2 \ --profile-id "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6" \ --source-format CCDA \ --conversation-id "conv-a1b2c3d4-e5f6-7890" \ --input-message '{"Body": "Add a mapping for Medication resources", "Type": "normal"}'
Antwort:
{ "chatOutput": { "body": "I can help you add a Medication resource mapping. Which CCDA section should I map from?", "type": "options", "optionsList": ["Medications Section", "Discharge Medications", "Immunizations"] }, "conversationId": "conv-a1b2c3d4-e5f6-7890" }
Setzen Sie die Konversation mit der zurückgegebenen ConversationID fort:
aws healthlake update-profile-with-agent \ --region us-west-2 \ --profile-id "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6" \ --source-format CCDA \ --input-message '{"body": "Medications Section", "type": "confirmation_response"}' \ --conversation-id "conv-a1b2c3d4-e5f6-7890"
Schritt 3: Testen Sie mit Synchronisierungskonvertierung (optional)
Der Endpunkt der Synchronisierungskonvertierung ist REST-only. Testen Sie ein Profil vor der Veröffentlichung anhand eines Beispieldokuments:
curl -X POST "https://datatransformation.healthlake.us-west-2.amazonaws.com/transform-data" \ --aws-sigv4 "aws:amz:us-west-2:healthlake" \ --user "${AWS_ACCESS_KEY_ID}:${AWS_SECRET_ACCESS_KEY}" \ -H "x-amz-security-token: ${AWS_SESSION_TOKEN}" \ -H "Content-Type: application/json" \ -d '{ "ProfileId": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6", "InputData": {"CcdaInput": "<?xml version=\"1.0\"?><ClinicalDocument>...</ClinicalDocument>"}, "DriftDetectionEnabled": true }'
Antwort:
{ "TransformedData": "{\"resourceType\":\"Bundle\",\"type\":\"collection\",\"entry\":[...]}", "DriftReport": "{\"coverageRate\":0.95,\"unmappedElements\":[...]}" }
-
TransformedData: Die konvertierten FHIR-Ressourcen als JSON-encoded FHIR-Bundle-Zeichenfolge.
-
DriftReport: nur vorhanden, wenn wahr DriftDetectionEnabled ist. Ein JSON-encoded Drift-Bericht, der den Abdeckungsgrad und nicht zugeordnete Quellelemente anzeigt.
Anmerkung
ProvenanceEnabled ist standardmäßig auf „true“ gesetzt. Provenance-Ressourcen werden generiert, es sei denn, Sie setzen in der Anfrage ausdrücklich "ProvenanceEnabled„: false.
Übergeben Sie bei einem CSV-Profil Ihre Eingabe als Zuordnung von Tabellennamen zum CSV-Inhalt. Jede Eingabe CsvInput muss mit einem TableName in der Zuordnungskonfiguration Ihres Profils übereinstimmen:
curl -X POST "https://datatransformation.healthlake.us-west-2.amazonaws.com/transform-data" \ --aws-sigv4 "aws:amz:us-west-2:healthlake" \ --user "${AWS_ACCESS_KEY_ID}:${AWS_SECRET_ACCESS_KEY}" \ -H "x-amz-security-token: ${AWS_SESSION_TOKEN}" \ -H "Content-Type: application/json" \ -d '{ "ProfileId": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6", "InputData": { "CsvInput": { "patients": "PAT_ID,MRN,LAST_NM,FIRST_NM,SEX,DOB,ZIP\nP001,MRN-001,Smith,John,M,1985-03-15,98101\nP002,MRN-002,Garcia,Maria,F,1990-07-22,90210" } } }'
Um mehr als eine Tabelle in einer einzigen Anfrage zu senden, fügen Sie Einträge hinzu zu CsvInput:
{ "ProfileId": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6", "InputData": { "CsvInput": { "patients": "PAT_ID,MRN,LAST_NM,...\nP001,MRN-001,Smith,...", "encounters": "ENC_ID,PAT_ID,ENC_DATE,...\nE001,P001,2024-01-15,..." } } }
Antwort:
{ "TransformedData": "{\"resourceType\":\"Bundle\",\"type\":\"transaction\",\"entry\":[...]}" }
Beachten Sie beim Konvertieren von CSV-Eingaben Folgendes:
-
Jede Eingabe CsvInput muss exakt mit einem TableName in der Zuordnungskonfiguration Ihres Profils übereinstimmen. Beim Abgleich wird zwischen Groß- und Kleinschreibung unterschieden
-
Übergeben Sie den CSV-Inhalt für jede Tabelle als einzelne Zeichenfolge. Trennen Sie Zeilen mit
\n. -
DriftDetectionEnabled wird für CSV-Eingaben nicht unterstützt. Lassen Sie es weg oder setzen Sie es auf falsch. Wenn Sie es auf true setzen, schlägt die Anfrage mit einem ValidationException fehl.
Schritt 4: Veröffentlichen Sie das Profil
aws healthlake publish-data-transformation-profile \ --region us-west-2 \ --profile-id "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6" \ --source-format CCDA \ --change-description "Initial release - Patient, Observation, Medication mappings"
Durch das Veröffentlichen wird eine unveränderliche Version (v1) erstellt. Ihr Entwurf kann weiterhin bearbeitet werden, und bei Massenaufträgen wird automatisch die neueste veröffentlichte Version verwendet.
Schritt 5: Daten in FHIR konvertieren
Der Data Transformation Agent bietet 3 Möglichkeiten, Ihre Quelldaten in FHIR R4 zu konvertieren.
1. Synchronisieren Sie die Konvertierung
Für ein C-CDA Profil:
curl -X POST "https://datatransformation.healthlake.us-west-2.amazonaws.com/transform-data" \ --aws-sigv4 "aws:amz:us-west-2:healthlake" \ --user "${AWS_ACCESS_KEY_ID}:${AWS_SECRET_ACCESS_KEY}" \ -H "x-amz-security-token: ${AWS_SESSION_TOKEN}" \ -H "Content-Type: application/json" \ -d '{ "ProfileId": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6", "InputData": {"CcdaInput": "<?xml version=\"1.0\"?><ClinicalDocument>...</ClinicalDocument>"}, "DriftDetectionEnabled": true }'
Für ein CSV-Profil:
curl -X POST "https://datatransformation.healthlake.us-west-2.amazonaws.com/transform-data" \ --aws-sigv4 "aws:amz:us-west-2:healthlake" \ --user "${AWS_ACCESS_KEY_ID}:${AWS_SECRET_ACCESS_KEY}" \ -H "x-amz-security-token: ${AWS_SESSION_TOKEN}" \ -H "Content-Type: application/json" \ -d '{ "ProfileId": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6", "InputData": { "CsvInput": { "patients": "PAT_ID,MRN,LAST_NM,FIRST_NM,SEX,DOB,ZIP\nP001,MRN-001,Smith,John,M,1985-03-15,98101" } } }'
2. Führen Sie einen Massentransformationsauftrag für Amazon S3 aus
aws healthlake start-data-transformation-job \ --region us-west-2 \ --profile-id "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6" \ --input-data-config '{"S3Uri": "s3://my-source-bucket/ccda-files/", "SourceFormat": "CCDA"}' \ --output-data-config '{"S3Configuration": {"S3Uri": "s3://my-output-bucket/fhir-output/", "KmsKeyId": "arn:aws:kms:us-west-2:123456789012:key/abcd1234"}}' \ --data-access-role-arn "arn:aws:iam::123456789012:role/DTA-DataAccessRole" \ --client-token "unique-token-$(date +%s)" \ --job-name "cardiology-batch-july" \ --drift-detection-enabled
Überwachen Sie den Job:
# Check status aws healthlake describe-data-transformation-job \ --region us-west-2 \ --job-id "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6" # List recent completed jobs aws healthlake list-data-transformation-jobs \ --region us-west-2 \ --job-status COMPLETED \ --submitted-after "2026-07-01T00:00:00Z"
3. Führen Sie einen Massentransformationsauftrag aus und nehmen Sie ihn in einen Datenspeicher auf HealthLake
Verwenden Sie die vorhandene StartFHIRImportJob API mit den Transformationsprofilfeldern, um Quelldateien zu konvertieren und die resultierenden FHIR-Ressourcen in einem einzigen Schritt direkt in einen HealthLake Datenspeicher zu laden:
aws healthlake start-fhir-import-job \ --region us-west-2 \ --datastore-id "your-datastore-id" \ --input-data-config '{"S3Uri": "s3://my-source-bucket/ccda-files/"}' \ --job-output-data-config '{"S3Configuration": {"S3Uri": "s3://my-output-bucket/import-output/", "KmsKeyId": "arn:aws:kms:us-west-2:123456789012:key/abcd1234"}}' \ --data-access-role-arn "arn:aws:iam::123456789012:role/DTA-DataAccessRole" \ --profile-id "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6" \ --input-format "CCDA" \ --drift-detection-enabled \ --job-name "cardiology-import-july" \ --client-token "import-$(date +%s)"
Dadurch wird ein zweiphasiger Job gestartet: Zuerst konvertiert der Service Ihre Quelldateien mithilfe des veröffentlichten Profils und nimmt dann die resultierenden FHIR-Ressourcen in den Datenspeicher auf. Die Daten können sofort über die FHIR-REST-API abgefragt werden, sobald die Erfassung abgeschlossen ist.
Überwachen Sie den Job:
aws healthlake describe-fhir-import-job \ --region us-west-2 \ --datastore-id "your-datastore-id" \ --job-id "returned-job-id"
Anmerkung
Der Datenspeicher muss sich im Status ACTIVE befinden. Provenance ist standardmäßig aktiviert. Die Datenzugriffsrolle benötigt dasselbe Amazon S3 und dieselben AWS KMS Berechtigungen wie eigenständige Jobs.