View a markdown version of this page

Memulai SDK dan AWS CLI - AWS HealthLake

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Memulai SDK dan AWS CLI

Menginstal dan mengonfigurasi

Untuk petunjuk instalasi dan konfigurasi, lihat Menginstal AWS CLI.

Langkah 1: Buat profil transformasi

Mulai dari AWS Profil Pemula (hanya 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"}}'

Mulai dari data sampel (khusus CSV)

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

Jalankan agen AI untuk membuat pemetaan YAMM awal.

Memulai percakapan baru dengan agen untuk mendapatkan ID percakapan baru. Panggil API lagi, kali ini meneruskan ConversationId dari respons sebelumnya dan permintaan Anda yang sebenarnya. Untuk profil CSV, di sinilah agen menganalisis file sampel yang Anda berikan saat pembuatan dan menghasilkan pemetaan YAMM:

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

Lanjutkan percakapan dengan yang sama ConversationId untuk menyempurnakan pemetaan di beberapa putaran (misalnya, “Petakan kolom RACE_CD ke ekstensi FHIR”). Jika agen meminta Anda untuk mengonfirmasi perubahan, tanggapi dengan “Type”: “confirmation_response”.

Mulai dari Pemetaan Lokal

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

Kloning dari Profil yang ada

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

Respons:

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

Profil dibuat dalam keadaan draf (versi 0).

Langkah 2: Sesuaikan Profil dengan agen AI (opsional)

Memulai percakapan baru dengan agen untuk mendapatkan ID percakapan baru. Panggil API lagi, kali ini melewati 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"}'

Respons:

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

Lanjutkan percakapan dengan ConversationId yang dikembalikan:

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"

Langkah 3: Uji dengan konversi sinkronisasi (opsional)

Titik akhir konversi sinkronisasi adalah REST-only. Uji profil terhadap dokumen sampel sebelum menerbitkan:

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

Respons:

{ "TransformedData": "{\"resourceType\":\"Bundle\",\"type\":\"collection\",\"entry\":[...]}", "DriftReport": "{\"coverageRate\":0.95,\"unmappedElements\":[...]}" }
  • TransformedData: sumber daya FHIR yang dikonversi sebagai string Bundel JSON-encoded FHIR.

  • DriftReport: hadir hanya ketika DriftDetectionEnabled itu benar. Laporan JSON-encoded drift yang menunjukkan tingkat cakupan dan elemen sumber yang tidak dipetakan.

catatan

ProvenanceEnabled default ke true. Sumber daya asal dihasilkan kecuali Anda secara eksplisit menetapkan "ProvenanceEnabled“: false dalam permintaan.

Langkah 4: Publikasikan 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"

Penerbitan membuat versi yang tidak dapat diubah (v1). Draf Anda tetap dapat diedit, dan pekerjaan massal menggunakan versi terbaru yang diterbitkan secara otomatis.

Langkah 5: Konversi data ke FHIR

Agen Transformasi Data menawarkan 3 cara untuk mengonversi data sumber Anda ke FHIR R4.

1. Konversi sinkronisasi

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. Jalankan pekerjaan transformasi massal ke 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

Pantau pekerjaan:

# 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. Jalankan pekerjaan transformasi massal dan masukkan ke dalam datastore HealthLake

Untuk mengonversi file sumber dan memuat sumber daya FHIR yang dihasilkan secara langsung ke HealthLake datastore dalam satu langkah, gunakan StartFHIRImportJob API yang ada dengan bidang profil transformasi:

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

Ini memulai pekerjaan dua fase: pertama layanan mengonversi file sumber Anda menggunakan profil yang dipublikasikan, kemudian menyerap sumber daya FHIR yang dihasilkan ke dalam datastore. Data segera dapat dikueri melalui FHIR REST API setelah konsumsi selesai.

Pantau pekerjaan:

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

Datastore harus dalam keadaan AKTIF. Asal diaktifkan secara default. Peran akses data memerlukan Amazon S3 dan AWS KMS izin yang sama dengan pekerjaan mandiri.