View a markdown version of this page

Commencer à utiliser le SDK et AWS CLI - AWS HealthLake

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Commencer à utiliser le SDK et AWS CLI

Installation et configuration

Pour les instructions d'installation et de configuration, voir Installer le AWS CLI.

Étape 1 : Création d'un profil de transformation

Commencez à partir de AWS Profil de démarrage (CCDA uniquement)

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

Commencer à partir d'échantillons de données (CSV uniquement)

Créer un profil :

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

Exécutez l'agent AI pour créer le mappage YAML initial.

Lancez une nouvelle conversation avec l'agent pour obtenir un nouvel identifiant de conversation. Appelez à nouveau l'API, en transmettant cette fois la réponse précédente et votre demande réelle. ConversationId Pour un profil CSV, c'est ici que l'agent analyse les fichiers d'exemple que vous avez fournis lors de leur création et génère le mappage YAML :

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

Poursuivez la conversation avec la même chose ConversationId pour affiner le mappage sur plusieurs tours (par exemple, « Associer la colonne RACE_CD à une extension FHIR »). Si l'agent vous demande de confirmer une modification, répondez par « Type » : « confirmation_response ».

Commencez par le mappage local

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)..."}}}'

Cloner à partir d'un profil existant

aws healthlake create-data-transformation-profile \ --region us-east-1 \ --source-format CCDA \ --profile-name test-profile-clone \ --source '{"ExistingVersionedProfileId": {"ProfileId": "e41af4b891d6f9211b42b90435cf0cea", "Version": 0}}'

Réponse :

{ "ProfileId": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6", "Version": 0, "SourceFormat": "CCDA", "TargetFormat": "FHIR_R4", "ProfileName": "My CCDA Profile", "LastUpdatedAt": "2026-07-01T12:00:00Z" }

Le profil est créé à l'état de brouillon (version 0).

Étape 2 : Personnaliser le profil avec l'agent AI (facultatif)

Lancez une nouvelle conversation avec l'agent pour obtenir un nouvel identifiant de conversation. Appelez à nouveau l'API, en passant cette fois le 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"}'

Réponse :

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

Poursuivez la conversation avec le ConversationId renvoyé :

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"

Étape 3 : Test avec conversion synchronisée (facultatif)

Le point de terminaison de conversion de synchronisation est REST-only. Testez un profil par rapport à un exemple de document avant de le publier :

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 }'

Réponse :

{ "TransformedData": "{\"resourceType\":\"Bundle\",\"type\":\"collection\",\"entry\":[...]}", "DriftReport": "{\"coverageRate\":0.95,\"unmappedElements\":[...]}" }
  • TransformedData: les ressources FHIR converties sous forme de chaîne de bundle JSON-encoded FHIR.

  • DriftReport: présent uniquement lorsque DriftDetectionEnabled c'est vrai. Un rapport de JSON-encoded dérive indiquant le taux de couverture et les éléments sources non mappés.

Note

ProvenanceEnabled la valeur par défaut est true. Les ressources de provenance sont générées sauf si vous définissez explicitement ProvenanceEnabled « » : false dans la demande.

Étape 4 : Publier le 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"

La publication crée une version immuable (v1). Votre brouillon reste modifiable et les tâches groupées utilisent automatiquement la dernière version publiée.

Étape 5 : Convertir les données au format FHIR

L'agent de transformation des données propose 3 méthodes pour convertir vos données sources en FHIR R4.

1. Synchronisation et conversion

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 }'

2. Exécuter une tâche de transformation en masse vers Amazon S3

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

Surveillez le travail :

# 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. Exécuter une tâche de transformation en masse et l'intégrer dans une HealthLake banque de données

Pour convertir les fichiers source et charger les ressources FHIR résultantes directement dans une HealthLake banque de données en une seule étape, utilisez l' StartFHIRImportJob API existante avec les champs du profil de transformation :

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)"

Cela lance un travail en deux phases : le service convertit d'abord vos fichiers source à l'aide du profil publié, puis il ingère les ressources FHIR qui en résultent dans la banque de données. Les données sont immédiatement interrogeables via l'API REST FHIR une fois l'ingestion terminée.

Surveillez le travail :

aws healthlake describe-fhir-import-job \ --region us-west-2 \ --datastore-id "your-datastore-id" \ --job-id "returned-job-id"
Note

La banque de données doit être à l'état ACTIF. La provenance est activée par défaut. Le rôle d'accès aux données nécessite les mêmes AWS KMS autorisations et les mêmes Amazon S3 que les tâches autonomes.