

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

# AWS HealthScribe
<a name="health-scribe"></a>

 AWS HealthScribe adalah kemampuan pembelajaran mesin (ML) yang memenuhi syarat HIPAA yang menggabungkan pengenalan suara dan AI generatif untuk mentranskripsikan percakapan pasien-dokter dan menghasilkan catatan klinis. easy-to-review AWS HealthScribe membantu vendor perangkat lunak perawatan kesehatan membangun aplikasi klinis yang mengurangi beban dokumentasi dan meningkatkan pengalaman konsultasi. Layanan ini secara otomatis menyediakan transkrip percakapan yang kaya, mengidentifikasi peran pembicara, mengklasifikasikan dialog, mengekstrak istilah medis, dan menghasilkan catatan klinis awal. AWS HealthScribemenggabungkan kemampuan ini untuk menghilangkan kebutuhan untuk mengintegrasikan dan mengoptimalkan layanan AI terpisah, memungkinkan Anda untuk mempercepat implementasi. 

Kasus penggunaan umum:
+ **Kurangi waktu dokumentasi** - Memungkinkan dokter untuk menyelesaikan dokumentasi klinis dengan cepat dengan catatan klinis yang dihasilkan AI yang mudah ditinjau, disesuaikan, dan diselesaikan dalam aplikasi Anda.
+ **Tingkatkan efisiensi juru tulis medis** - Lengkapi juru tulis medis dengan transkrip dan catatan klinis yang dihasilkan AI, bersama dengan audio konsultasi, untuk mempercepat waktu penyelesaian dokumentasi.
+ **Rekap kunjungan pasien yang efisien** — Ciptakan pengalaman yang memungkinkan pengguna mengingat kembali sorotan utama percakapan mereka dengan cepat di aplikasi Anda.

**penting**  
 Hasil yang dihasilkan oleh AWS HealthScribe bersifat probabilistik dan mungkin tidak selalu akurat karena berbagai faktor, termasuk kualitas audio, kebisingan latar belakang, kejernihan speaker, kompleksitas terminologi medis, nuansa bahasa spesifik konteks, dan [sifat pembelajaran mesin dan AI generatif](https://aws.amazon.com/machine-learning/responsible-ai/policy/). AWS HealthScribe dirancang untuk digunakan dalam peran bantu bagi dokter dan juru tulis medis. AWS HealthScribe output hanya boleh digunakan dalam skenario perawatan pasien, termasuk, tetapi tidak terbatas pada sebagai bagian dari Catatan Kesehatan Elektronik, setelah ditinjau untuk akurasi dan pengenaan penilaian medis yang baik oleh profesional medis terlatih. AWS HealthScribe output bukan pengganti saran medis profesional, diagnosis, atau pengobatan, dan tidak dimaksudkan untuk menyembuhkan, mengobati, mengurangi, mencegah, atau mendiagnosis penyakit atau kondisi kesehatan apa pun. 

**Topics**
+ [Keamanan](#health-scribe-security-overview)
+ [Ketersediaan layanan](#health-scribe-availability)
+ [Persyaratan Teknis](#health-scribe-tech-requirements-overview)
+ [Spesialisasi Medis yang Didukung](#health-scribe-specialties)
+ [Alur kerja](#health-scribe-workflows)
+ [AWS HealthScribe Berkas transkrip](health-scribe-transcript.md)
+ [AWS HealthScribe File Dokumentasi Klinis](health-scribe-insights.md)
+ [AWS HealthScribe pekerjaan transkripsi](health-scribe-job.md)
+ [AWS HealthScribe streaming](health-scribe-streaming.md)
+ [Enkripsi Data saat istirahat untuk AWS HealthScribe](health-scribe-encryption.md)

## Keamanan
<a name="health-scribe-security-overview"></a>

AWS HealthScribe beroperasi di bawah model tanggung jawab bersama, di mana AWS bertanggung jawab untuk melindungi infrastruktur yang berjalan AWS HealthScribe dan Anda bertanggung jawab untuk mengelola data Anda. Untuk informasi selengkapnya, lihat [Model Tanggung Jawab Bersama](https://aws.amazon.com/compliance/shared-responsibility-model/).

 Secara default, AWS HealthScribe menyediakan enkripsi saat istirahat untuk melindungi data pelanggan sensitif menggunakan kunci Amazon S3-managed. Saat membuat pekerjaan AWS HealthScribe transkripsi atau memulai streaming, Anda dapat menentukan kunci yang dikelola pelanggan. Ini menambahkan lapisan enkripsi kedua. Untuk informasi selengkapnya, lihat [Enkripsi Data saat istirahat untuk AWS HealthScribe](health-scribe-encryption.md). 

## Ketersediaan layanan
<a name="health-scribe-availability"></a>

AWS HealthScribe tersedia di wilayah US East (Virginia N.).

## Persyaratan Teknis
<a name="health-scribe-tech-requirements-overview"></a>
+ **Bahasa yang Didukung:** US English (en-US)
+ **Format Audio yang Disarankan:** Audio tanpa kehilangan (seperti FLAC atau WAV)
+ **Pengkodean: PCM 16-bit**
+ **Tingkat Sampel:** 16.000 Hz atau lebih tinggi

## Spesialisasi Medis yang Didukung
<a name="health-scribe-specialties"></a>

AWS HealthScribe saat ini mendukung spesialisasi berikut:
+ Imunologi Alergi
+ Kardiologi
+ Dermatologi
+ Endokrinologi
+ Gastroenterologi
+ Hematologi/Onkologi
+ Penyakit Menular
+ Nefrologi
+ Neurologi
+ OBGYN
+ Onkologi
+ Oftalmologi
+ Ortopedi
+ Otolaringologi
+ Obat Nyeri
+ Pediatri
+ Perawatan Primer
+ Psikiatri
+ Pulmonologi
+ Reumatologi
+ Bedah
+ Urologi

## Alur kerja
<a name="health-scribe-workflows"></a>

 AWS HealthScribe alur kerja meliputi pekerjaan transkripsi dan streaming. Setelah Anda menjalankan tugas transkripsi atau menyelesaikan aliran, AWS HealthScribe buat file transkrip, dengan keluaran turn-by-turn transkripsi dan wawasan untuk setiap giliran percakapan. Juga menghasilkan file dokumentasi klinis, dengan ringkasan dan tautan bukti. Untuk informasi lebih lanjut, lihat [AWS HealthScribe Berkas transkrip](health-scribe-transcript.md) dan [AWS HealthScribe File Dokumentasi Klinis](health-scribe-insights.md). 
+ **Pekerjaan transkripsi** — Dengan pekerjaan transkripsi, AWS HealthScribe menganalisis file media konsultasi medis yang lengkap dari ember Amazon S3. Berikut ini adalah operasi API khusus untuk pekerjaan AWS HealthScribe transkripsi. 
  + [StartMedicalScribeJob](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_StartMedicalScribeJob.html)
  + [ListMedicalScribeJobs](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_ListMedicalScribeJobs.html)
  + [GetMedicalScribeJob](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_GetMedicalScribeJob.html)
  + [DeleteMedicalScribeJob](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_DeleteMedicalScribeJob.html)

  Untuk informasi selengkapnya, termasuk contoh kode, lihat[AWS HealthScribe pekerjaan transkripsi](health-scribe-job.md).
+ **Streaming** adalah layanan bi-directional HTTP2 berbasis real-time yang menerima aliran audio pada satu saluran dan menjual transkripsi audio di saluran lainnya. AWS HealthScribe 

  

   Berikut ini adalah operasi API khusus untuk AWS HealthScribe streaming:
  + [StartMedicalScribeStream](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_streaming_StartMedicalScribeStream.html)
  + [GetMedicalScribeStream](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_streaming_GetMedicalScribeStream.html)

  Untuk informasi selengkapnya, termasuk contoh kode, lihat[AWS HealthScribe streaming](health-scribe-streaming.md).

# AWS HealthScribe Berkas transkrip
<a name="health-scribe-transcript"></a>

Dalam file transkrip, selain output turn-by-turn transkripsi standar dengan stempel waktu tingkat kata, AWS HealthScribe memberi Anda:
+ **Deteksi peran peserta** sehingga Anda dapat membedakan pasien dari dokter dalam transkrip percakapan.
+ **Pembagian transkrip, yang mengkategorikan** dialog transkrip berdasarkan relevansi klinisnya seperti obrolan ringan, subjektif, objektif, dll. Ini dapat digunakan untuk menunjukkan bagian tertentu dari transkrip.
+ **Entitas klinis**, yang mencakup informasi terstruktur seperti obat-obatan, kondisi medis, dan perawatan yang disebutkan dalam percakapan.

Selain itu, wawasan berikut disediakan untuk setiap giliran percakapan:
+ **Peran peserta** — Setiap peserta diberi label sebagai dokter atau pasien. Jika percakapan memiliki lebih dari satu peserta di setiap kategori, setiap peserta diberi nomor. Misalnya,`CLINICIAN_0`, `CLINICIAN_1` dan`PATIENT_0`,`PATIENT_1`.
+ **Bagian** - Setiap giliran dialog ditugaskan ke salah satu dari empat bagian yang mungkin berdasarkan konten yang diidentifikasi.
  + **Subyektif** — Informasi yang diberikan oleh pasien tentang masalah kesehatan mereka.
  + **Objektif** — Informasi yang diamati oleh dokter melalui pemeriksaan fisik, laboratorium, pencitraan, atau tes diagnostik.
  + **Penilaian dan Rencana** — Informasi yang berkaitan dengan penilaian dokter dan rencana perawatan.
  + **Kunjungi Manajemen Aliran** — Informasi yang berkaitan dengan obrolan ringan atau transisi.
+ **Wawasan** — Ekstrak entitas yang relevan secara klinis (`ClinicalEntity`) yang ada dalam percakapan. AWS HealthScribe mendeteksi semua entitas klinis yang didukung oleh [Amazon Comprehend Medical](https://aws.amazon.com//comprehend/medical).

Untuk contoh transkrip dari pekerjaan transkripsi, lihat keluaran transkrip di. [Contoh keluaran pekerjaan transkripsi](starting-health-scribe-job.md#health-scribe-output-example) Untuk contoh transkrip dari streaming, lihat output transkrip di. [Contoh keluaran transkripsi streaming](health-scribe-streaming-setting-up.md#health-scribe-streaming-output-example) 

# AWS HealthScribe File Dokumentasi Klinis
<a name="health-scribe-insights"></a>

AWS HealthScribe dapat menggunakan salah satu templat berikut untuk ringkasan catatan klinis. Nilai default-nya `HISTORY_AND_PHYSICAL`.
+ HISTORY\$1AND\$1PHYSICAL: Memberikan ringkasan untuk bagian kunci dari dokumentasi klinis. Contoh bagian termasuk Keluhan Kepala, Sejarah Penyakit Saat Ini, Tinjauan Sistem, Riwayat Medis Masa Lalu, Penilaian, dan Rencana. 
+ GIRPP: Memberikan ringkasan berdasarkan kemajuan pasien menuju tujuan. Contoh bagian termasuk Tujuan, Intervensi, Respons, Kemajuan, dan Rencana.
+ BIRP: Berfokus pada pola dan respons perilaku pasien. Contoh bagian termasuk Perilaku, Intervensi, Respons, dan Rencana.
+ SIRP: Menekankan konteks situasional terapi. Contoh bagian termasuk Situasi, Intervensi, Respons, dan Rencana.
+ DAP: Menyediakan format yang disederhanakan untuk dokumentasi klinis. Contoh bagian termasuk Data, Penilaian, dan Rencana.
+ BH\$1SOAP: Format dokumentasi yang berfokus pada kesehatan perilaku. Contoh bagian termasuk Subyektif, Objektif, Penilaian, dan Rencana.
+ PH\$1SOAP: Format dokumentasi yang berfokus pada kesehatan fisik. Contoh bagian termasuk Subyektif, Objektif, Penilaian, dan Rencana.

Untuk menentukan template apa yang akan digunakan, lakukan hal berikut:
+  Untuk tugas transkripsi, tentukan template yang akan `NoteTemplate` digunakan dalam operasi [StartMedicalScribeJob](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_StartMedicalScribeJob.html)API Anda. [ClinicalNoteGenerationSettings](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_ClinicalNoteGenerationSettings.html)`Settings` 
+  Untuk streaming, Anda menentukan template yang akan digunakan di `NoteTemplate` [ClinicalNoteGenerationSettings](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_streaming_ClinicalNoteGenerationSettings.html)bagian `PostStreamAnalyticsSettings` dari Anda [MedicalScribeConfigurationEvent](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_streaming_MedicalScribeConfigurationEvent.html). 

## Konteks Jurutulis Medis
<a name="health-scribe-contextual-information"></a>

`MedicalScribeContext`Objek berisi informasi kontekstual yang digunakan untuk menyesuaikan pembuatan catatan klinis dengan detail spesifik pasien.

`MedicalScribeContext`Objek mencakup komponen-komponen berikut:
+ **PatientContext**- Berisi informasi khusus pasien yang digunakan untuk menyesuaikan pembuatan catatan klinis. Hal ini mencakup:
  + **Kata ganti** - Kata ganti pilihan pasien yang ingin Anda berikan sebagai konteks untuk pembuatan catatan klinis. Kata ganti ini digunakan ketika merujuk pada pasien dalam output klinis yang dihasilkan.

Untuk informasi tentang cara mengatur konteks juru tulis medis, lihat [MedicalScribeContext](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_MedicalScribeContext.html).

**Topics**
+ [Konteks Jurutulis Medis](#health-scribe-contextual-information)
+ [Bagian template HISTORY\$1AND\$1PHYSICAL](#health-scribe-history-physical-insights)
+ [Bagian template GIRPP](#health-scribe-GIRPP-insights)
+ [Bagian template BIRP](#health-scribe-BIRP-insights)
+ [Bagian template SIRP](#health-scribe-SIRP-insights)
+ [Bagian template DAP](#health-scribe-DAP-insights)
+ [Bagian template BH\$1SOAP](#health-scribe-BH-SOAP-insights)
+ [Bagian template PH\$1SOAP](#health-scribe-PH-SOAP-insights)

## Bagian template HISTORY\$1AND\$1PHYSICAL
<a name="health-scribe-history-physical-insights"></a>

Template wawasan HISTORY\$1AND\$1PHYSICAL mencakup bagian berikut.


| Bagian | Deskripsi | 
| --- | --- | 
|  KELUHAN UTAMA  |  Deskripsi singkat untuk alasan pasien mengunjungi dokter.  | 
|  RIWAYAT PENYAKIT SAAT INI  |  Catatan yang memberikan informasi tentang penyakit pasien, termasuk referensi ke tingkat keparahan, onset, waktu gejala, perawatan saat ini, dan daerah yang terkena.  | 
|  TINJAUAN SISTEM  |  Evaluasi gejala yang dilaporkan pasien di berbagai sistem tubuh.  | 
|  RIWAYAT MEDIS MASA LALU  |  Merinci kondisi medis, operasi, dan perawatan pasien sebelumnya.  | 
|  PENILAIAN  |  Catatan yang memberikan informasi tentang penilaian dokter terhadap kesehatan pasien.  | 
|  RENCANA  |  Catatan yang merujuk setiap perawatan medis, penyesuaian gaya hidup, dan janji lebih lanjut.  | 
|  FISIK\$1PEMERIKSAAN  |  Dokumentasi temuan dokter dari pemeriksaan fisik sistem tubuh pasien dan tanda-tanda vital.  | 
|  PAST\$1FAMILY\$1HISTORY  |  Informasi tentang kondisi kesehatan yang berjalan dalam keluarga pasien.  | 
|  PAST\$1SOCIAL\$1HISTORY  |  Rincian tentang kehidupan sosial pasien, kebiasaan, pekerjaan, dan faktor lingkungan yang mempengaruhi kesehatan.  | 
|  DIAGNOSTIC\$1TESTING  |  Hasil dan interpretasi tes laboratorium, studi pencitraan, dan prosedur diagnostik lainnya.  | 

Setiap kalimat yang ada dalam `Summary` termasuk `EvidenceLinks` yang menyediakan dialog `SegmentId` yang relevan dalam transkrip yang dirangkum. Ini membantu pengguna memvalidasi akurasi ringkasan dalam aplikasi Anda. Seperti penjelasan, menyediakan ketertelusuran dan transparansi untuk wawasan yang dihasilkan AI konsisten dengan prinsip AI yang Bertanggung Jawab. Memberikan referensi ini bersama dengan catatan ringkasan kepada dokter atau juru tulis medis membantu menumbuhkan kepercayaan dan mendorong penggunaan AI yang aman dalam pengaturan klinis.

Untuk contoh file Dokumentasi Klinis dari pekerjaan transkripsi, lihat contoh file Dokumentasi Klinis di[Contoh keluaran pekerjaan transkripsi](starting-health-scribe-job.md#health-scribe-output-example). Untuk contoh file Dokumentasi Klinis dari streaming, lihat contoh file Dokumentasi Klinis di[Contoh keluaran transkripsi streaming](health-scribe-streaming-setting-up.md#health-scribe-streaming-output-example). 

## Bagian template GIRPP
<a name="health-scribe-GIRPP-insights"></a>

Template wawasan GIRPP mencakup bagian berikut.


| Bagian | Deskripsi | 
| --- | --- | 
|  Tujuan  |  Masalah, tantangan, atau perilaku yang diidentifikasi yang perlu ditangani melalui pengobatan.  | 
|  Intervensi  |  Perawatan, metode, atau teknik khusus yang digunakan oleh dokter untuk membantu pasien mengatasi tujuan yang diidentifikasi.  | 
|  Respons  |  Bagaimana pasien menanggapi intervensi, termasuk tingkat partisipasi, reaksi, dan umpan balik mereka.  | 
|  Kemajuan  |  Penilaian dokter tentang gerakan menuju tujuan pengobatan, termasuk pengamatan perbaikan atau hambatan pasien.  | 
|  Rencana  |  Langkah selanjutnya dalam perawatan, termasuk intervensi masa depan, tugas pekerjaan rumah, dan rujukan.  | 

## Bagian template BIRP
<a name="health-scribe-BIRP-insights"></a>

Template wawasan BIRP mencakup bagian berikut.


| Bagian | Deskripsi | 
| --- | --- | 
|  Perilaku  |  Masalah yang disajikan pasien dan respons mereka terhadap perawatan.  | 
|  Intervensi  |  Perawatan, metode, atau teknik khusus yang digunakan oleh dokter untuk membantu pasien mengatasi tujuan yang diidentifikasi.  | 
|  Respons  |  Bagaimana pasien menanggapi intervensi, termasuk tingkat partisipasi, reaksi, dan umpan balik mereka.  | 
|  Rencana  |  Langkah selanjutnya dalam perawatan, termasuk intervensi masa depan, tugas pekerjaan rumah, dan rujukan.  | 

## Bagian template SIRP
<a name="health-scribe-SIRP-insights"></a>

Template wawasan SIRP mencakup bagian-bagian berikut.


| Bagian | Deskripsi | 
| --- | --- | 
|  Situasi  |  Masalah yang disajikan pasien dan tujuan mereka untuk mencari terapi.  | 
|  Intervensi  |  Perawatan, metode, atau teknik khusus yang digunakan oleh dokter untuk membantu pasien mengatasi tujuan yang diidentifikasi.  | 
|  Respons  |  Bagaimana pasien menanggapi intervensi, termasuk tingkat partisipasi, reaksi, dan umpan balik mereka.  | 
|  Rencana  |  Langkah selanjutnya dalam perawatan, termasuk intervensi masa depan, tugas pekerjaan rumah, dan rujukan.  | 

## Bagian template DAP
<a name="health-scribe-DAP-insights"></a>

Template wawasan DAP mencakup bagian-bagian berikut.


| Bagian | Deskripsi | 
| --- | --- | 
|  Data  |  Alasan pasien untuk mencari pengobatan dan informasi tentang pasien.  | 
|  Penilaian  |  Diagnosis dokter tentang situasi pasien.  | 
|  Rencana  |  Langkah selanjutnya dalam perawatan, termasuk intervensi masa depan, tugas pekerjaan rumah, dan rujukan.  | 

## Bagian template BH\$1SOAP
<a name="health-scribe-BH-SOAP-insights"></a>

Template wawasan BH\$1SOAP mencakup bagian berikut.


| Bagian | Deskripsi | 
| --- | --- | 
|  Subyektif  |  Tujuan klien untuk perawatan dan pengalaman mereka, serta masalah yang ada dan masa lalu.  | 
|  Tujuan  |  Data dan fakta tentang klien.  | 
|  Penilaian  |  Diagnosis dokter tentang situasi pasien.  | 
|  Rencana  |  Langkah selanjutnya dalam perawatan, termasuk intervensi masa depan, tugas pekerjaan rumah, dan rujukan.  | 

## Bagian template PH\$1SOAP
<a name="health-scribe-PH-SOAP-insights"></a>

Template wawasan PH\$1SOAP mencakup bagian berikut.


| Bagian | Deskripsi | 
| --- | --- | 
|  Subyektif  |  Tujuan klien untuk perawatan dan pengalaman mereka, serta masalah yang ada dan masa lalu.  | 
|  Tujuan  |  Data dan fakta tentang klien.  | 
|  Penilaian  |  Diagnosis dokter tentang situasi pasien.  | 
|  Rencana  |  Langkah selanjutnya dalam perawatan, termasuk intervensi masa depan, tugas pekerjaan rumah, dan rujukan.  | 

# AWS HealthScribe pekerjaan transkripsi
<a name="health-scribe-job"></a>

Pekerjaan AWS HealthScribe transkripsi memproses file media dari bucket Amazon S3. [Ketika memproses file media, ia menyalin percakapan pasien-dokter dan menganalisis konsultasi medis untuk menghasilkan dua file keluaran JSON: file [transkrip](https://docs.aws.amazon.com/transcribe/latest/dg/health-scribe-job.html#health-scribe-output-example) dan file dokumentasi klinis.](https://docs.aws.amazon.com/transcribe/latest/dg/health-scribe-job.html#health-scribe-output-example)

Berikut ini adalah operasi API khusus untuk pekerjaan AWS HealthScribe transkripsi:
+ [StartMedicalScribeJob](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_StartMedicalScribeJob.html)
+ [ListMedicalScribeJobs](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_ListMedicalScribeJobs.html)
+ [GetMedicalScribeJob](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_GetMedicalScribeJob.html)
+ [DeleteMedicalScribeJob](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_DeleteMedicalScribeJob.html)

# Memulai AWS HealthScribe pekerjaan transkripsi
<a name="starting-health-scribe-job"></a>

Anda dapat memulai AWS HealthScribe pekerjaan menggunakan AWS CLI atau. AWS SDKs

## AWS CLI
<a name="health-scribe-cli-batch"></a>

 Contoh ini menggunakan [start-medical-scribe-job](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/transcribe/start-medical-scribe-job.html)perintah. Untuk informasi selengkapnya, lihat [StartMedicalScribeJob](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_StartMedicalScribeJob.html). 

```
aws transcribe start-medical-scribe-job \
--region us-west-2 \
--medical-scribe-job-name my-first-medical-scribe-job \
--media MediaFileUri=s3://amzn-s3-demo-bucket/my-input-files/my-media-file.flac \
--output-bucket-name amzn-s3-demo-bucket \
--DataAccessRoleArn=arn:aws:iam::111122223333:role/ExampleRole \
--settings ShowSpeakerLabels=false,ChannelIdentification=true \
--channel-definitions ChannelId=0,ParticipantRole=CLINICIAN ChannelId=1,ParticipantRole=PATIENT
```

Berikut adalah contoh lain menggunakan [start-medical-scribe-job](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/transcribe/start-medical-scribe-job.html)perintah, dan badan permintaan dengan pengaturan tambahan.

```
aws transcribe start-medical-scribe-job \
--region us-west-2 \
--cli-input-json file://filepath/my-first-medical-scribe-job.json
```

File `my-first-medical-scribe-job.json` berisi badan permintaan berikut.

```
{
  "MedicalScribeJobName": "my-first-medical-scribe-job",  
  "Media": {
    "MediaFileUri": "s3://amzn-s3-demo-bucket/my-input-files/my-media-file.flac"
   },
  "OutputBucketName": "amzn-s3-demo-bucket", 
  "DataAccessRoleArn": "arn:aws:iam::111122223333:role/ExampleRole",
  "Settings": {
    "ShowSpeakerLabels": false,
    "ChannelIdentification": true
  },
  "ChannelDefinitions": [
    {
      "ChannelId": 0,
      "ParticipantRole":"CLINICIAN"
    }, {
      "ChannelId": 1,
      "ParticipantRole":"PATIENT"
    }
  ]
}
```

## AWS SDK untuk Python (Boto3)
<a name="health-scribe-python-batch"></a>

 Contoh berikut menggunakan AWS SDK untuk Python (Boto3) untuk membuat permintaan [start\$1medical\$1scribe\$1job](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/transcribe/client/start_medical_scribe_job.html). Untuk informasi selengkapnya, lihat [StartMedicalScribeJob](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_StartMedicalScribeJob.html). 

```
from __future__ import print_functionimport timeimport boto3
transcribe = boto3.client('transcribe', 'us-west-2')
job_name = "my-first-medical-scribe-job"
job_uri = "s3://amzn-s3-demo-bucket/my-input-files/my-media-file.flac"
transcribe.start_medical_scribe_job(
    MedicalScribeJobName = job_name,
    Media = {
      'MediaFileUri': job_uri
    },
    OutputBucketName = 'amzn-s3-demo-bucket',
    DataAccessRoleArn = 'arn:aws:iam::111122223333:role/ExampleRole',
    Settings = {
      'ShowSpeakerLabels': false,
      'ChannelIdentification': true
    },
    ChannelDefinitions = [
      {
        'ChannelId': 0, 
        'ParticipantRole': 'CLINICIAN'
      }, {
        'ChannelId': 1, 
        'ParticipantRole': 'PATIENT'
      }
    ]
)
while True:
    status = transcribe.get_medical_scribe_job(MedicalScribeJobName = job_name)
    if status['MedicalScribeJob']['MedicalScribeJobStatus'] in ['COMPLETED', 'FAILED']:
        break
    print("Not ready yet...")
    time.sleep(5)    
print(status)
```

**catatan**  
Konsol AWS Manajemen saat ini tidak mendukung AWS HealthScribe pekerjaan.

## Contoh keluaran pekerjaan transkripsi
<a name="health-scribe-output-example"></a>

Selain transkrip, `StartMedicalScribeJob` permintaan menghasilkan file dokumentasi klinis terpisah. Kedua file dalam format JSON dan disimpan di lokasi output yang Anda tentukan dalam permintaan Anda. Berikut adalah contoh dari setiap jenis output:

### Contoh keluaran transkrip
<a name="health-scribe-transcript-output"></a>

 File AWS HealthScribe transkrip (dari `StartMedicalScribeJob` permintaan) memiliki format berikut: 

```
{
  "Conversation": {
    "ConversationId": "sampleConversationUUID",
    "JobName": "sampleJobName",
    "JobType": "ASYNC",
    "LanguageCode": "en-US",
    "ClinicalInsights": [
      {
        "Attributes": [],
        "Category": "MEDICAL_CONDITION",
        "InsightId": "insightUUID1",
        "InsightType": "ClinicalEntity",
        "Spans": [
          {
            "BeginCharacterOffset": 12,
            "Content": "pain",
            "EndCharacterOffset": 15,
            "SegmentId": "uuid1"
          }
        ],
        "Type": "DX_NAME"
      },
      {
        "Attributes": [],
        "Category": "TEST_TREATMENT_PROCEDURE",
        "InsightId": "insightUUID2",
        "InsightType": "ClinicalEntity",
        "Spans": [
          {
            "BeginCharacterOffset": 4,
            "Content": "mammogram",
            "EndCharacterOffset": 12,
            "SegmentId": "uuid2"
          }
        ],
        "Type": "TEST_NAME"
      },
      {
        "Attributes": [],
        "Category": "TEST_TREATMENT_PROCEDURE",
        "InsightId": "insightUUID3",
        "InsightType": "ClinicalEntity",
        "Spans": [
          {
            "BeginCharacterOffset": 15,
            "Content": "pap smear",
            "EndCharacterOffset": 23,
            "SegmentId": "uuid3"
          }
        ],
        "Type": "TEST_NAME"
      },
      {
        "Attributes": [],
        "Category": "MEDICATION",
        "InsightId": "insightUUID4",
        "InsightType": "ClinicalEntity",
        "Spans": [
          {
            "BeginCharacterOffset": 28,
            "Content": "phentermine",
            "EndCharacterOffset": 38,
            "SegmentId": "uuid4"
          }
        ],
        "Type": "GENERIC_NAME"
      },
      {
        "Attributes": [
          {
            "AttributeId": "attributeUUID1",
            "Spans": [
              {
                "BeginCharacterOffset": 38,
                "Content": "high",
                "EndCharacterOffset": 41,
                "SegmentId": "uuid5"
              }
            ],
            "Type": "TEST_VALUE"
          }
        ],
        "Category": "TEST_TREATMENT_PROCEDURE",
        "InsightId": "insightUUID5",
        "InsightType": "ClinicalEntity",
        "Spans": [
          {
            "BeginCharacterOffset": 14,
            "Content": "weight",
            "EndCharacterOffset": 19,
            "SegmentId": "uuid6"
          }
        ],
        "Type": "TEST_NAME"
      },
      {
        "Attributes": [],
        "Category": "ANATOMY",
        "InsightId": "insightUUID6",
        "InsightType": "ClinicalEntity",
        "Spans": [
          {
            "BeginCharacterOffset": 60,
            "Content": "heart",
            "EndCharacterOffset": 64,
            "SegmentId": "uuid7"
          }
        ],
        "Type": "SYSTEM_ORGAN_SITE"
      }
    ],
    "TranscriptItems": [
      {
        "Alternatives": [
          {
            "Confidence": 0.7925,
            "Content": "Okay"
          }
        ],
        "BeginAudioTime": 0.16,
        "EndAudioTime": 0.6,
        "Type": "PRONUNCIATION"
      },
      {
        "Alternatives": [
          {
            "Confidence": 0,
            "Content": "."
          }
        ],
        "BeginAudioTime": 0.17,
        "EndAudioTime": 0.9,
        "Type": "PUNCTUATION"
      },
      {
        "Alternatives": [
          {
            "Confidence": 1,
            "Content": "Good"
          }
        ],
        "BeginAudioTime": 0.61,
        "EndAudioTime": 0.92,
        "Type": "PRONUNCIATION"
      },
      {
        "Alternatives": [
          {
            "Confidence": 1,
            "Content": "afternoon"
          }
        ],
        "BeginAudioTime": 0.92,
        "EndAudioTime": 1.54,
        "Type": "PRONUNCIATION"
      },
      {
        "Alternatives": [
          {
            "Confidence": 0,
            "Content": "."
          }
        ],
        "BeginAudioTime": 0,
        "EndAudioTime": 0,
        "Type": "PUNCTUATION"
      },
      {
        "Alternatives": [
          {
            "Confidence": 0.9924,
            "Content": "You"
          }
        ],
        "BeginAudioTime": 1.55,
        "EndAudioTime": 1.88,
        "Type": "PRONUNCIATION"
      },
      {
        "Alternatives": [
          {
            "Confidence": 1,
            "Content": "lost"
          }
        ],
        "BeginAudioTime": 1.88,
        "EndAudioTime": 2.19,
        "Type": "PRONUNCIATION"
      },
      {
        "Alternatives": [
          {
            "Confidence": 1,
            "Content": "one"
          }
        ],
        "BeginAudioTime": 2.19,
        "EndAudioTime": 2.4,
        "Type": "PRONUNCIATION"
      },
      {
        "Alternatives": [
          {
            "Confidence": 1,
            "Content": "lb"
          }
        ],
        "BeginAudioTime": 2.4,
        "EndAudioTime": 2.97,
        "Type": "PRONUNCIATION"
      }
    ],
    "TranscriptSegments": [
      {
        "BeginAudioTime": 0.16,
        "Content": "Okay.",
        "EndAudioTime": 0.6,
        "ParticipantDetails": {
          "ParticipantRole": "CLINICIAN_0"
        },
        "SectionDetails": {
          "SectionName": "SUBJECTIVE"
        },
        "SegmentId": "uuid1"
      },
      {
        "BeginAudioTime": 0.61,
        "Content": "Good afternoon.",
        "EndAudioTime": 1.54,
        "ParticipantDetails": {
          "ParticipantRole": "CLINICIAN_0"
        },
        "SectionDetails": {
          "SectionName": "OTHER"
        },
        "SegmentId": "uuid2"
      },
      {
        "BeginAudioTime": 1.55,
        "Content": "You lost one lb.",
        "EndAudioTime": 2.97,
        "ParticipantDetails": {
          "ParticipantRole": "CLINICIAN_0"
        },
        "SectionDetails": {
          "SectionName": "SUBJECTIVE"
        },
        "SegmentId": "uuid3"
      },
      {
        "BeginAudioTime": 2.98,
        "Content": "Yeah, I think it, uh, do you feel more energy?",
        "EndAudioTime": 6.95,
        "ParticipantDetails": {
          "ParticipantRole": "CLINICIAN_0"
        },
        "SectionDetails": {
          "SectionName": "SUBJECTIVE"
        },
        "SegmentId": "uuid5"
      },
      {
        "BeginAudioTime": 6.96,
        "Content": "Yes.",
        "EndAudioTime": 7.88,
        "ParticipantDetails": {
          "ParticipantRole": "CLINICIAN_0"
        },
        "SectionDetails": {
          "SectionName": "SUBJECTIVE"
        },
        "SegmentId": "uuid6"
      },
      {
        "BeginAudioTime": 7.89,
        "Content": "Uh, how about craving for the carbohydrate or sugar or fat or anything?",
        "EndAudioTime": 17.93,
        "ParticipantDetails": {
          "ParticipantRole": "CLINICIAN_0"
        },
        "SectionDetails": {
          "SectionName": "SUBJECTIVE"
        },
        "SegmentId": "uuid7"
      }
    ]
  }
}
```

Berikut adalah contoh lain menggunakan [start-medical-scribe-job](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/transcribe/start-medical-conversation-intelligence-job.html)perintah, dan badan permintaan dengan pengaturan tambahan.

```
aws transcribe start-medical-scribe-job \
--region us-west-2 \
--cli-input-json file://filepath/my-first-medical-scribe-job.json
```

File `my-first-medical-scribe-job.json` berisi badan permintaan berikut.

```
{
  "MedicalScribeJobName": "my-first-medical-scribe-job",  
  "Media": {
    "MediaFileUri": "s3://amzn-s3-demo-bucket/my-input-files/my-media-file.flac"
   },
  "OutputBucketName": "amzn-s3-demo-bucket", 
  "DataAccessRoleArn": "arn:aws:iam::111122223333:role/ExampleRole",
  "Settings": {
    "ShowSpeakerLabels": false,
    "ChannelIdentification": true
  },
  "ChannelDefinitions": [
    {
      "ChannelId": 0,
      "ParticipantRole":"CLINICIAN"
    }, {
      "ChannelId": 1,
      "ParticipantRole":"PATIENT"
    }
  ]
}
```

### Contoh keluaran dokumentasi klinis
<a name="health-scribe-insights-output"></a>

 File wawasan dokumentasi (dari `StartMedicalScribeJob` permintaan) memiliki format berikut: 

```
{
  "ClinicalDocumentation": {
    "Sections": [
      {
        "SectionName": "CHIEF_COMPLAINT",
        "Summary": [
          {
            "EvidenceLinks": [
              {
                "SegmentId": "uuid1"
              },
              {
                "SegmentId": "uuid2"
              },
              {
                "SegmentId": "uuid3"
              },
              {
                "SegmentId": "uuid4"
              },
              {
                "SegmentId": "uuid5"
              },
              {
                "SegmentId": "uuid6"
              }
            ],
            "SummarizedSegment": "Weight loss."
          }
        ]
      },
      {
        "SectionName": "HISTORY_OF_PRESENT_ILLNESS",
        "Summary": [
          {
            "EvidenceLinks": [
              {
                "SegmentId": "uuid7"
              },
              {
                "SegmentId": "uuid8"
              },
              {
                "SegmentId": "uuid9"
              },
              {
                "SegmentId": "uuid10"
              }
            ],
            "SummarizedSegment": "The patient is seen today for a follow-up of weight loss."
          },
          {
            "EvidenceLinks": [
              {
                "SegmentId": "uuid11"
              },
              {
                "SegmentId": "uuid12"
              },
              {
                "SegmentId": "uuid13"
              }
            ],
            "SummarizedSegment": "They report feeling more energy and craving carbohydrates, sugar, and fat."
          },
          {
            "EvidenceLinks": [
              {
                "SegmentId": "uuid14"
              },
              {
                "SegmentId": "uuid15"
              },
              {
                "SegmentId": "uuid16"
              }
            ],
            "SummarizedSegment": "The patient is up to date on their mammogram and pap smear."
          },
          {
            "EvidenceLinks": [
              {
                "SegmentId": "uuid17"
              },
              {
                "SegmentId": "uuid18"
              },
              {
                "SegmentId": "uuid19"
              },
              {
                "SegmentId": "uuid20"
              }
            ],
            "SummarizedSegment": "The patient is taking phentermine and would like to continue."
          }
        ]
      },
      {
        "SectionName": "REVIEW_OF_SYSTEMS",
        "Summary": [
          {
            "EvidenceLinks": [
              {
                "SegmentId": "uuid21"
              },
              {
                "SegmentId": "uuid22"
              }
            ],
            "SummarizedSegment": "Patient reports intermittent headaches, occasional chest pains but denies any recent fevers or chills."
          },
          {
            "EvidenceLinks": [
              {
                "SegmentId": "uuid23"
              },
              {
                "SegmentId": "uuid24"
              }
            ],
            "SummarizedSegment": "No recent changes in vision, hearing, or any respiratory complaints."
          }
        ]
      },
      {
        "SectionName": "PAST_MEDICAL_HISTORY",
        "Summary": [
          {
            "EvidenceLinks": [
              {
                "SegmentId": "uuid25"
              },
              {
                "SegmentId": "uuid26"
              }
            ],
            "SummarizedSegment": "Patient has a history of hypertension and was diagnosed with Type II diabetes 5 years ago."
          },
          {
            "EvidenceLinks": [
              {
                "SegmentId": "uuid27"
              },
              {
                "SegmentId": "uuid28"
              }
            ],
            "SummarizedSegment": "Underwent an appendectomy in the early '90s and had a fracture in the left arm during childhood."
          }
        ]
      },
      {
        "SectionName": "ASSESSMENT",
        "Summary": [
          {
            "EvidenceLinks": [
              {
                "SegmentId": "uuid29"
              },
              {
                "SegmentId": "uuid30"
              }
            ],
            "SummarizedSegment": "Weight loss"
          }
        ]
      },
      {
        "SectionName": "PLAN",
        "Summary": [
          {
            "EvidenceLinks": [
              {
                "SegmentId": "uuid31"
              },
              {
                "SegmentId": "uuid32"
              },
              {
                "SegmentId": "uuid33"
              },
              {
                "SegmentId": "uuid34"
              }
            ],
            "SummarizedSegment": "For the condition of Weight loss: The patient was given a 30-day supply of phentermine and was advised to follow up in 30 days."
          }
        ]
      }
    ]
  }
}
```

# AWS HealthScribe streaming
<a name="health-scribe-streaming"></a>

Dengan AWS HealthScribe streaming, Anda dapat menyalin percakapan medis secara real-time. AWS HealthScribe streaming adalah layanan bi-directional HTTP2 berbasis real-time yang menerima aliran audio pada satu saluran dan menjual transkripsi audio di saluran lain. Setelah streaming selesai, AWS HealthScribe analisis konten aliran dan menghasilkan file JSON transkrip dan file JSON catatan klinis. 

 Untuk memulai streaming, gunakan operasi [StartMedicalScribeStream](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_streaming_StartMedicalScribeStream.html)API. API ini memulai saluran bi-directional HTTP2 berbasis yang Anda gunakan untuk melakukan streaming peristiwa audio. 

Saat Anda memulai streaming, tentukan terlebih dahulu konfigurasi aliran di file`MedicalScribeConfigurationEvent`. Acara ini mencakup definisi saluran, pengaturan enkripsi, dan pengaturan analitik pasca-aliran, seperti konfigurasi keluaran untuk transkrip agregat dan pembuatan catatan klinis. 

Setelah Anda mulai streaming audio, Anda mengelola streaming sebagai berikut:
+  Setelah selesai, untuk mulai memproses hasil dengan analitik pasca-aliran, kirim `MedicalScribeSessionControlEvent` dengan a `Type` `END_OF_SESSION` dan AWS HealthScribe mulai analitik.
+ Untuk menjeda streaming, selesaikan aliran input tanpa mengirim file. `MedicalScribeSessionControlEvent`
+ Untuk melanjutkan aliran yang dijeda, gunakan operasi `StartMedicalScribeStream` API dan tentukan hal yang sama. `SessionId` Ini adalah yang `SessionId` Anda gunakan ketika Anda awalnya memulai streaming.

**Topics**
+ [Pedoman dan persyaratan](#health-scribe-streaming-requirements)
+ [ResourceAccessRoleArn izin peran](#health-scribe-data-access-role)
+ [Memulai transkripsi AWS HealthScribe streaming](health-scribe-streaming-setting-up.md)

## Pedoman dan persyaratan
<a name="health-scribe-streaming-requirements"></a>

Berikut ini adalah pedoman dan persyaratan untuk AWS HealthScribe streaming:
+ Sebelum mengirim acara audio, Anda harus terlebih dahulu menentukan konfigurasi aliran di file`[MedicalScribeConfigurationEvent](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_streaming_MedicalScribeConfigurationEvent.html)`.
+ Untuk menjalankan analitik pasca-aliran, di `ResourceAccessRoleArn` dalam Anda `MedicalScribeConfigurationEvent` harus memiliki izin yang benar. Untuk informasi selengkapnya, lihat [ResourceAccessRoleArn izin peran](#health-scribe-data-access-role). 
+ Anda dapat melanjutkan sesi beberapa kali dalam waktu 5 jam dari pembuatan aliran awal.
+ Anda dapat melakukan streaming paling banyak 2 jam audio selama satu sesi di semua permintaan streaming.
+ Secara default, AWS HealthScribe menyediakan enkripsi saat istirahat untuk melindungi data pelanggan sensitif menggunakan kunci Amazon S3-managed. Saat memulai streaming, Anda dapat menentukan AWS KMS kunci untuk lapisan enkripsi kedua. Anda `ResourceAccessRoleArn` harus memiliki izin untuk menggunakan AWS KMS kunci Anda. Untuk informasi selengkapnya, lihat [Enkripsi Data saat istirahat untuk AWS HealthScribe](health-scribe-encryption.md). 
+ Anda dapat menggunakan AWS HealthScribe streaming dengan AWS SDKs, tidak termasuk SDK for Python (Boto3) dan SDK for PHP.
+ Jika `LimitExceededException` pengecualian terjadi setelah Anda mengakhiri streaming, Anda dapat memulai ulang sesi dan masih menghasilkan analitik pasca-aliran. Untuk memulai ulang aliran, gunakan [StartMedicalScribeStream](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_streaming_StartMedicalScribeStream.html)API dan gunakan yang sama`SessionID`. Kemudian kirim `MedicalScribeSessionControlEvent` dengan a `Type` `END_OF_SESSION` dan AWS HealthScribe mulai analitik.

## ResourceAccessRoleArn izin peran
<a name="health-scribe-data-access-role"></a>

Untuk menjalankan analitik pasca-aliran, `ResourceAccessRoleArn` in Anda `MedicalScribeConfigurationEvent` harus dapat mengakses bucket keluaran Amazon S3 dan, jika Anda menyediakannya, AWS KMS kunci Anda. Selain itu, kebijakan kepercayaan peran harus memberikan izin `transcribe.streaming.amazonaws.com` layanan untuk mengambil peran tersebut.

Berikut ini adalah contoh kebijakan IAM yang memberikan izin bucket Amazon S3 dan izin AWS KMS kunci. Untuk informasi selengkapnya, lihat [Enkripsi Data saat istirahat untuk AWS HealthScribe](health-scribe-encryption.md).

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "s3:PutObject"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket",
                "arn:aws:s3:::amzn-s3-demo-bucket/*"
            ],
            "Effect": "Allow"
        },
        {
            "Action": [
                "kms:DescribeKey",
                "kms:Decrypt",
                "kms:Encrypt",
                "kms:GenerateDataKey*"
            ],
            "Resource": "arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-123456SAMPLE",
            "Effect": "Allow"
        }
    ]
}
```

------

Berikut ini adalah contoh kebijakan kepercayaan.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": [
                    "transcribe.streaming.amazonaws.com"
                ]
            },
            "Action": "sts:AssumeRole"
        }
    ]
}
```

------

# Memulai transkripsi AWS HealthScribe streaming
<a name="health-scribe-streaming-setting-up"></a>

Contoh kode berikut menunjukkan cara mengatur transkripsi AWS HealthScribe streaming menggunakan. AWS SDKs

**Topics**
+ [SDK untuk Java 2.x](#health-scribe-java-stream)
+ [Contoh keluaran transkripsi streaming](#health-scribe-streaming-output-example)

## SDK untuk Java 2.x
<a name="health-scribe-java-stream"></a>

 Contoh berikut menggunakan SDK for Java 2.x untuk mengatur streaming dan membuat [StartMedicalScribeStream](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_streaming_StartMedicalScribeStream.html)permintaan. 

```
package org.example;

import io.reactivex.rxjava3.core.BackpressureStrategy;
import io.reactivex.rxjava3.core.Flowable;
import org.reactivestreams.Publisher;
import org.reactivestreams.Subscriber;
import software.amazon.awssdk.auth.credentials.AwsCredentialsProvider;
import software.amazon.awssdk.auth.credentials.DefaultCredentialsProvider;
import software.amazon.awssdk.core.SdkBytes;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.transcribestreaming.TranscribeStreamingAsyncClient;
import software.amazon.awssdk.services.transcribestreaming.model.ClinicalNoteGenerationSettings;
import software.amazon.awssdk.services.transcribestreaming.model.LanguageCode;
import software.amazon.awssdk.services.transcribestreaming.model.MediaEncoding;

import software.amazon.awssdk.services.transcribestreaming.model.MedicalScribeInputStream;
import software.amazon.awssdk.services.transcribestreaming.model.MedicalScribePostStreamAnalyticsSettings;
import software.amazon.awssdk.services.transcribestreaming.model.MedicalScribeSessionControlEventType;
import software.amazon.awssdk.services.transcribestreaming.model.MedicalScribeTranscriptEvent;
import software.amazon.awssdk.services.transcribestreaming.model.MedicalScribeTranscriptSegment;
import software.amazon.awssdk.services.transcribestreaming.model.StartMedicalScribeStreamRequest;
import software.amazon.awssdk.services.transcribestreaming.model.StartMedicalScribeStreamResponseHandler;
import software.amazon.awssdk.services.transcribestreaming.model.medicalscribeinputstream.DefaultConfigurationEvent;

import software.amazon.awssdk.http.nio.netty.NettyNioAsyncHttpClient;

import javax.sound.sampled.AudioFormat;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.DataLine;
import javax.sound.sampled.LineUnavailableException;
import javax.sound.sampled.TargetDataLine;
import java.io.BufferedInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.UncheckedIOException;
import java.util.Arrays;
import java.util.concurrent.CompletableFuture;


public class HealthScribeStreamingDemoApp {
    private static final int CHUNK_SIZE_IN_BYTES = 6400;
    private static final int SAMPLE_RATE = 16000;
    private static final Region REGION = Region.US_EAST_1;
    private static final String sessionId = "1234abcd-12ab-34cd-56ef-123456SAMPLE";
    private static final String bucketName = "amzn-s3-demo-bucket";
    private static final String resourceAccessRoleArn = "arn:aws:iam::123456789012:role/resource-access-role";
    private static TranscribeStreamingAsyncClient client;

    public static void main(String args[]) {

        client = TranscribeStreamingAsyncClient.builder()
                .credentialsProvider(getCredentials())
                .httpClientBuilder(NettyNioAsyncHttpClient.builder())
                .region(REGION)
                .build();
        try {
            StartMedicalScribeStreamRequest request = StartMedicalScribeStreamRequest.builder()
                    .languageCode(LanguageCode.EN_US.toString())
                    .mediaSampleRateHertz(SAMPLE_RATE)
                    .mediaEncoding(MediaEncoding.PCM.toString())
                    .sessionId(sessionId)
                    .build();

            MedicalScribeInputStream endSessionEvent = MedicalScribeInputStream.sessionControlEventBuilder()
                    .type(MedicalScribeSessionControlEventType.END_OF_SESSION)
                    .build();

            CompletableFuture<Void> result = client.startMedicalScribeStream(
                    request,
                    new AudioStreamPublisher(getStreamFromMic(), getConfigurationEvent(),endSessionEvent),
                    getMedicalScribeResponseHandler());
            result.get();
            client.close();
        } catch (Exception e) {
            System.err.println("Error occurred: " + e.getMessage());
            e.printStackTrace();
        }
    }

    private static AudioInputStream getStreamFromMic() throws LineUnavailableException {
        // Signed PCM AudioFormat with 16kHz, 16 bit sample size, mono
        AudioFormat format = new AudioFormat(SAMPLE_RATE, 16, 1, true, false);
        DataLine.Info info = new DataLine.Info(TargetDataLine.class, format);

        if (!AudioSystem.isLineSupported(info)) {
            System.out.println("Line not supported");
            throw new LineUnavailableException("The audio system microphone line is not supported.");
        }
        TargetDataLine line = (TargetDataLine) AudioSystem.getLine(info);
        int bufferSize = (CHUNK_SIZE_IN_BYTES / format.getFrameSize()) * format.getFrameSize();
        line.open(format);
        line.start();

        // Create a wrapper class that can be closed when Enter is pressed
        AudioInputStream audioStream = new AudioInputStream(line);

        // Start a thread to monitor for Enter key
        System.out.println("Recording... Press Enter to stop");
        Thread monitorThread = new Thread(() -> {
            try {
                System.in.read();
                line.stop();
                line.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        });
        monitorThread.setDaemon(true);  // Set as daemon thread so it doesn't prevent JVM shutdown
        monitorThread.start();

        return new AudioInputStream(
            new BufferedInputStream(new AudioInputStream(line)),
            format,
            AudioSystem.NOT_SPECIFIED
        );
    }

    private static AwsCredentialsProvider getCredentials() {
        return DefaultCredentialsProvider.create();
    }

    private static StartMedicalScribeStreamResponseHandler getMedicalScribeResponseHandler() {

        return StartMedicalScribeStreamResponseHandler.builder()
            .onResponse(r -> {
                System.out.println("Received Initial response");
            })
            .onError(Throwable::printStackTrace)
            .onComplete(() -> {
                System.out.println("=== All records streamed successfully ===");
            })
            .subscriber(event -> {
                if (event instanceof MedicalScribeTranscriptEvent) {
                    MedicalScribeTranscriptSegment segment = ((MedicalScribeTranscriptEvent) event).transcriptSegment();
                    if (segment != null && segment.content() != null && !segment.content().isEmpty()) {
                        System.out.println(segment.content());
                    }
                }
            })
            .build();
    }

    private static DefaultConfigurationEvent getConfigurationEvent() {
        MedicalScribePostStreamAnalyticsSettings postStreamSettings = MedicalScribePostStreamAnalyticsSettings
                .builder()
                .clinicalNoteGenerationSettings(
                        ClinicalNoteGenerationSettings.builder()
                                .outputBucketName(bucketName)
                                .build()
                )
                .build();
        return (DefaultConfigurationEvent) MedicalScribeInputStream.configurationEventBuilder()
                .resourceAccessRoleArn(resourceAccessRoleArn)
                .postStreamAnalyticsSettings(postStreamSettings)
                .build();
    }

    private static class AudioStreamPublisher implements Publisher<MedicalScribeInputStream> {
        private final InputStream audioInputStream;
        private final MedicalScribeInputStream configEvent;
        private final MedicalScribeInputStream endSessionEvent;

        private AudioStreamPublisher(AudioInputStream audioInputStream,
                                     MedicalScribeInputStream configEvent,
                                     MedicalScribeInputStream endSessionEvent) {
            this.audioInputStream = audioInputStream;
            this.configEvent = configEvent;
            this.endSessionEvent = endSessionEvent;
        }

        @Override
        public void subscribe(Subscriber<? super MedicalScribeInputStream> subscriber) {
            createAudioFlowable()
                    .doOnComplete(() -> {
                        try {
                            audioInputStream.close();
                        } catch (IOException e) {
                            throw new UncheckedIOException(e);
                        }
                    })
                    .subscribe(subscriber);
        }

        private Flowable<MedicalScribeInputStream> createAudioFlowable() {
            // Start with config event
            Flowable<MedicalScribeInputStream> configFlow = Flowable.just(configEvent);

            // Create audio chunk flowable
            Flowable<MedicalScribeInputStream> audioFlow = Flowable.create(emitter -> {
                byte[] buffer = new byte[CHUNK_SIZE_IN_BYTES];
                int bytesRead;

                try {
                    while (!emitter.isCancelled() && (bytesRead = audioInputStream.read(buffer)) > 0) {
                        byte[] audioData = bytesRead < buffer.length
                                ? Arrays.copyOfRange(buffer, 0, bytesRead)
                                : buffer;

                        MedicalScribeInputStream audioEvent = MedicalScribeInputStream.audioEventBuilder()
                                .audioChunk(SdkBytes.fromByteArray(audioData))
                                .build();

                        emitter.onNext(audioEvent);
                    }
                    emitter.onComplete();
                } catch (IOException e) {
                    emitter.onError(e);
                }
            }, BackpressureStrategy.BUFFER);

            // End with session end event
            Flowable<MedicalScribeInputStream> endFlow = Flowable.just(endSessionEvent);

            // Concatenate all flows
            return Flowable.concat(configFlow, audioFlow, endFlow);
        }
    }
}
```

## Contoh keluaran transkripsi streaming
<a name="health-scribe-streaming-output-example"></a>

 Setelah streaming selesai, AWS HealthScribe analisis konten aliran dan menghasilkan file JSON transkrip dan file JSON catatan klinis. Berikut adalah contoh dari setiap jenis output:

### Contoh keluaran transkrip
<a name="health-scribe-streaming-transcript-output"></a>

 Berikut ini adalah contoh file AWS HealthScribe transkrip dari sesi streaming. 

```
{
    "Conversation": {
        "ClinicalInsights": [{
            "Attributes": [],
            "Category": "MEDICAL_CONDITION",
            "InsightId": "insightUUID1",
            "InsightType": "ClinicalEntity",
            "Spans": [{
                "BeginCharacterOffset": 12,
                "Content": "pain",
                "EndCharacterOffset": 15,
                "SegmentId": "uuid1"
            }],
            "Type": "DX_NAME"
        }, {
            "Attributes": [],
            "Category": "TEST_TREATMENT_PROCEDURE",
            "InsightId": "insightUUID2",
            "InsightType": "ClinicalEntity",
            "Spans": [{
                "BeginCharacterOffset": 4,
                "Content": "mammogram",
                "EndCharacterOffset": 12,
                "SegmentId": "uuid2"
            }],
            "Type": "TEST_NAME"
        }, {
            "Attributes": [],
            "Category": "TEST_TREATMENT_PROCEDURE",
            "InsightId": "insightUUID3",
            "InsightType": "ClinicalEntity",
            "Spans": [{
                "BeginCharacterOffset": 15,
                "Content": "pap smear",
                "EndCharacterOffset": 23,
                "SegmentId": "uuid3"
            }],
            "Type": "TEST_NAME"
        }, {
            "Attributes": [],
            "Category": "MEDICATION",
            "InsightId": "insightUUID4",
            "InsightType": "ClinicalEntity",
            "Spans": [{
                "BeginCharacterOffset": 28,
                "Content": "phentermine",
                "EndCharacterOffset": 38,
                "SegmentId": "uuid4"
            }],
            "Type": "GENERIC_NAME"
        }, {
            "Attributes": [{
                "AttributeId": "attributeUUID1",
                "Spans": [{
                    "BeginCharacterOffset": 38,
                    "Content": "high",
                    "EndCharacterOffset": 41,
                    "SegmentId": "uuid5"
                }],
                "Type": "TEST_VALUE"
            }],
            "Category": "TEST_TREATMENT_PROCEDURE",
            "InsightId": "insightUUID5",
            "InsightType": "ClinicalEntity",
            "Spans": [{
                "BeginCharacterOffset": 14,
                "Content": "weight",
                "EndCharacterOffset": 19,
                "SegmentId": "uuid6"
            }],
            "Type": "TEST_NAME"
        }, {
            "Attributes": [],
            "Category": "ANATOMY",
            "InsightId": "insightUUID6",
            "InsightType": "ClinicalEntity",
            "Spans": [{
                "BeginCharacterOffset": 60,
                "Content": "heart",
                "EndCharacterOffset": 64,
                "SegmentId": "uuid7"
            }],
            "Type": "SYSTEM_ORGAN_SITE"
        }],
        "ConversationId": "sampleConversationUUID",
        "LanguageCode": "en-US",
        "SessionId": "sampleSessionUUID",
        "TranscriptItems": [{
            "Alternatives": [{
                "Confidence": 0.7925,
                "Content": "Okay"
            }],
            "BeginAudioTime": 0.16,
            "EndAudioTime": 0.6,
            "Type": "PRONUNCIATION"
        },
        {
            "Alternatives": [{
                "Confidence": 0,
                "Content": "."
            }],
            "BeginAudioTime": 0,
            "EndAudioTime": 0,
            "Type": "PUNCTUATION"
        },
        {
            "Alternatives": [{
                "Confidence": 1,
                "Content": "Good"
            }],
            "BeginAudioTime": 0.61,
            "EndAudioTime": 0.92,
            "Type": "PRONUNCIATION"
        },
        {
            "Alternatives": [{
                "Confidence": 1,
                "Content": "afternoon"
            }],
            "BeginAudioTime": 0.92,
            "EndAudioTime": 1.54,
            "Type": "PRONUNCIATION"
        },
        {
            "Alternatives": [{
                "Confidence": 0,
                "Content": "."
            }],
            "BeginAudioTime": 0,
            "EndAudioTime": 0,
            "Type": "PUNCTUATION"
        },
        {
            "Alternatives": [{
                "Confidence": 0.9924,
                "Content": "You"
            }],
            "BeginAudioTime": 1.55,
            "EndAudioTime": 1.88,
            "Type": "PRONUNCIATION"
        },
        {
            "Alternatives": [{
                "Confidence": 1,
                "Content": "lost"
            }],
            "BeginAudioTime": 1.88,
            "EndAudioTime": 2.19,
            "Type": "PRONUNCIATION"
        },
        {
            "Alternatives": [{
                "Confidence": 1,
                "Content": "one"
            }],
            "BeginAudioTime": 2.19,
            "EndAudioTime": 2.4,
            "Type": "PRONUNCIATION"
        },
        {
            "Alternatives": [{
                "Confidence": 1,
                "Content": "lb"
            }],
            "BeginAudioTime": 2.4,
            "EndAudioTime": 2.97,
            "Type": "PRONUNCIATION"
        }
        ],
        "TranscriptSegments": [{
            "BeginAudioTime": 0.16,
            "Content": "Okay.",
            "EndAudioTime": 0.6,
            "ParticipantDetails": {
                "ParticipantRole": "CLINICIAN_0"
            },
            "SectionDetails": {
                "SectionName": "SUBJECTIVE"
            },
            "SegmentId": "uuid1"
        }, {
            "BeginAudioTime": 0.61,
            "Content": "Good afternoon.",
            "EndAudioTime": 1.54,
            "ParticipantDetails": {
                "ParticipantRole": "CLINICIAN_0"
            },
            "SectionDetails": {
                "SectionName": "OTHER"
            },
            "SegmentId": "uuid2"
        }, {
            "BeginAudioTime": 1.55,
            "Content": "You lost one lb.",
            "EndAudioTime": 2.97,
            "ParticipantDetails": {
                "ParticipantRole": "CLINICIAN_0"
            },
            "SectionDetails": {
                "SectionName": "SUBJECTIVE"
            },
            "SegmentId": "uuid3"
        }, {
            "BeginAudioTime": 2.98,
            "Content": "Yeah, I think it, uh, do you feel more energy?",
            "EndAudioTime": 6.95,
            "ParticipantDetails": {
                "ParticipantRole": "CLINICIAN_0"
            },
            "SectionDetails": {
                "SectionName": "SUBJECTIVE"
            },
            "SegmentId": "uuid4"
        }, {
            "BeginAudioTime": 6.96,
            "Content": "Yes.",
            "EndAudioTime": 7.88,
            "ParticipantDetails": {
                "ParticipantRole": "CLINICIAN_0"
            },
            "SectionDetails": {
                "SectionName": "SUBJECTIVE"
            },
            "SegmentId": "uuid5"
        }, {
            "BeginAudioTime": 7.89,
            "Content": "Uh, how about craving for the carbohydrate or sugar or fat or anything?",
            "EndAudioTime": 17.93,
            "ParticipantDetails": {
                "ParticipantRole": "CLINICIAN_0"
            },
            "SectionDetails": {
                "SectionName": "SUBJECTIVE"
            },
            "SegmentId": "uuid6"
        }]
    }
}
```

### Contoh keluaran Dokumentasi Klinis
<a name="health-scribe-streaming-insights-output"></a>

 Berikut ini adalah contoh file wawasan dokumentasi AWS HealthScribe klinis dari sesi streaming. 

```
{
  "ClinicalDocumentation": {
    "Sections": [
      {
        "SectionName": "CHIEF_COMPLAINT",
        "Summary": [
          {
            "EvidenceLinks": [
              {
                "SegmentId": "uuid1"
              },
              {
                "SegmentId": "uuid2"
              },
              {
                "SegmentId": "uuid3"
              },
              {
                "SegmentId": "uuid4"
              },
              {
                "SegmentId": "uuid5"
              },
              {
                "SegmentId": "uuid6"
              }
            ],
            "SummarizedSegment": "Weight loss."
          }
        ]
      },
      {
        "SectionName": "HISTORY_OF_PRESENT_ILLNESS",
        "Summary": [
          {
            "EvidenceLinks": [
              {
                "SegmentId": "uuid7"
              },
              {
                "SegmentId": "uuid8"
              },
              {
                "SegmentId": "uuid9"
              },
              {
                "SegmentId": "uuid10"
              }
            ],
            "SummarizedSegment": "The patient is seen today for a follow-up of weight loss."
          },
          {
            "EvidenceLinks": [
              {
                "SegmentId": "uuid11"
              },
              {
                "SegmentId": "uuid12"
              },
              {
                "SegmentId": "uuid13"
              }
            ],
            "SummarizedSegment": "They report feeling more energy and craving carbohydrates, sugar, and fat."
          },
          {
            "EvidenceLinks": [
              {
                "SegmentId": "uuid14"
              },
              {
                "SegmentId": "uuid15"
              },
              {
                "SegmentId": "uuid16"
              }
            ],
            "SummarizedSegment": "The patient is up to date on their mammogram and pap smear."
          },
          {
            "EvidenceLinks": [
              {
                "SegmentId": "uuid17"
              },
              {
                "SegmentId": "uuid18"
              },
              {
                "SegmentId": "uuid19"
              },
              {
                "SegmentId": "uuid20"
              }
            ],
            "SummarizedSegment": "The patient is taking phentermine and would like to continue."
          }
        ]
      },
      {
        "SectionName": "REVIEW_OF_SYSTEMS",
        "Summary": [
          {
            "EvidenceLinks": [
              {
                "SegmentId": "uuid21"
              },
              {
                "SegmentId": "uuid22"
              }
            ],
            "SummarizedSegment": "Patient reports intermittent headaches, occasional chest pains but denies any recent fevers or chills."
          },
          {
            "EvidenceLinks": [
              {
                "SegmentId": "uuid23"
              },
              {
                "SegmentId": "uuid24"
              }
            ],
            "SummarizedSegment": "No recent changes in vision, hearing, or any respiratory complaints."
          }
        ]
      },
      {
        "SectionName": "PAST_MEDICAL_HISTORY",
        "Summary": [
          {
            "EvidenceLinks": [
              {
                "SegmentId": "uuid25"
              },
              {
                "SegmentId": "uuid26"
              }
            ],
            "SummarizedSegment": "Patient has a history of hypertension and was diagnosed with Type II diabetes 5 years ago."
          },
          {
            "EvidenceLinks": [
              {
                "SegmentId": "uuid27"
              },
              {
                "SegmentId": "uuid28"
              }
            ],
            "SummarizedSegment": "Underwent an appendectomy in the early '90s and had a fracture in the left arm during childhood."
          }
        ]
      },
      {
        "SectionName": "ASSESSMENT",
        "Summary": [
          {
            "EvidenceLinks": [
              {
                "SegmentId": "uuid29"
              },
              {
                "SegmentId": "uuid30"
              }
            ],
            "SummarizedSegment": "Weight loss"
          }
        ]
      },
      {
        "SectionName": "PLAN",
        "Summary": [
          {
            "EvidenceLinks": [
              {
                "SegmentId": "uuid31"
              },
              {
                "SegmentId": "uuid32"
              },
              {
                "SegmentId": "uuid33"
              },
              {
                "SegmentId": "uuid34"
              }
            ],
            "SummarizedSegment": "For the condition of Weight loss: The patient was given a 30-day supply of phentermine and was advised to follow up in 30 days."
          }
        ]
      }
    ],
    "SessionId": "sampleSessionUUID"
  }
}
```

# Enkripsi Data saat istirahat untuk AWS HealthScribe
<a name="health-scribe-encryption"></a>

Secara default, AWS HealthScribe menyediakan enkripsi saat istirahat untuk melindungi data pelanggan sensitif menggunakan kunci AWS HealthScribe managed AWS Key Management Service (AWS KMS). Enkripsi data saat istirahat secara default membantu mengurangi overhead operasional dan kompleksitas yang terlibat dalam melindungi data sensitif. Selain itu, ini memungkinkan Anda untuk membangun aplikasi aman yang memenuhi kepatuhan enkripsi yang ketat dan persyaratan peraturan. Saat membuat pekerjaan AWS HealthScribe transkripsi atau memulai streaming, Anda dapat menentukan kunci yang dikelola pelanggan. Ini menambahkan lapisan enkripsi kedua. 
+ **AWS HealthScribe AWS KMS kunci terkelola** — AWS HealthScribe menggunakan kunci AWS HealthScribe managed AWS Key Management Service (AWS KMS) secara default untuk mengenkripsi file perantara secara otomatis. Anda tidak dapat menonaktifkan lapisan enkripsi ini atau memilih jenis enkripsi alternatif. Anda tidak dapat melihat, mengelola, atau menggunakan kunci, atau mengaudit penggunaannya. Namun, Anda tidak perlu mengambil tindakan apa pun atau mengubah program apa pun untuk melindungi kunci yang mengenkripsi data Anda.
+ **Kunci terkelola pelanggan** — AWS HealthScribe mendukung penggunaan kunci terkelola pelanggan simetris yang Anda buat, miliki, dan kelola untuk menambahkan enkripsi lapisan kedua di atas enkripsi milik AWS yang ada. Karena Anda memiliki kontrol penuh atas lapisan enkripsi ini, Anda dapat melakukan tugas-tugas seperti:
  + Menetapkan dan memelihara kebijakan utama
  + Menetapkan dan memelihara IAM kebijakan dan hibah
  + Mengaktifkan dan menonaktifkan kebijakan utama
  + Memutar bahan kriptografi kunci
  + Menambahkan tanda
  + Membuat alias kunci
  + Kunci penjadwalan untuk penghapusan

  Untuk informasi selengkapnya, lihat [kunci terkelola pelanggan](https://docs.aws.amazon.com//kms/latest/developerguide/concepts.html#customer-cmk) di Panduan AWS Key Management Service Pengembang.

**catatan**  
AWS HealthScribe secara otomatis mengaktifkan enkripsi saat istirahat menggunakan kunci yang AWS dimiliki untuk melindungi data yang dapat diidentifikasi secara pribadi tanpa biaya. Namun, AWS KMS biaya berlaku untuk menggunakan kunci yang dikelola pelanggan. Untuk informasi selengkapnya tentang harga, silakan lihat [harga AWS Key Management Service](https://aws.amazon.com//kms/pricing/).   
 Untuk informasi lebih lanjut tentang AWS KMS, lihat [Apa itu AWS Key Management Service](https://docs.aws.amazon.com//kms/latest/developerguide/overview.html). 

**Topics**
+ [Membuat kunci yang dikelola pelanggan](health-scribe-encryption-customer.md)
+ [Menentukan kunci yang dikelola pelanggan untuk AWS HealthScribe](#health-scribe-encryption-managed)
+ [AWS KMS konteks enkripsi](#health-scribe-encryption-context)
+ [Memantau kunci enkripsi Anda untuk AWS HealthScribe](#hscribe-monitoring-keys)

# Membuat kunci yang dikelola pelanggan
<a name="health-scribe-encryption-customer"></a>

 Anda dapat membuat kunci yang dikelola pelanggan simetris dengan menggunakan Konsol Manajemen AWS, atau. AWS KMS APIs Untuk membuat kunci terkelola pelanggan simetris, ikuti langkah-langkah untuk [Membuat kunci terkelola pelanggan simetris](https://docs.aws.amazon.com//kms/latest/developerguide/create-keys.html#create-symmetric-cmk) di Panduan AWS Key Management Service Pengembang. 

Kebijakan utama mengontrol akses ke kunci yang dikelola pelanggan Anda. Setiap kunci yang dikelola pelanggan harus memiliki persis satu kebijakan utama, yang berisi pernyataan yang menentukan siapa yang dapat menggunakan kunci dan bagaimana mereka dapat menggunakannya. Saat membuat kunci terkelola pelanggan, Anda dapat menentukan kebijakan kunci. Untuk informasi selengkapnya, lihat [Mengelola akses ke kunci yang dikelola pelanggan](https://docs.aws.amazon.com//kms/latest/developerguide/control-access-overview.html#managing-access) di Panduan AWS Key Management Service Pengembang. 

## AWS KMS kebijakan utama untuk AWS HealthScribe
<a name="health-scribe-key-policies"></a>

 Jika Anda menggunakan kunci di akun yang sama dengan IAM peran yang Anda tentukan sebagai `ResourceAccessRole` dalam [StartMedicalScribeJob](https://docs.aws.amazon.com//transcribe/latest/APIReference/API_StartMedicalScribeJob.html)atau [StartMedicalScribeStream](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_streaming_StartMedicalScribeStream.html)permintaan Anda, Anda tidak perlu memperbarui Kebijakan Kunci. `DataAccessRole` Untuk menggunakan kunci terkelola pelanggan Anda di akun yang berbeda sebagai DataAccessRole (untuk pekerjaan transkripsi) atau ResourceAccessRole (untuk streaming), Anda harus mempercayai peran masing-masing dalam Kebijakan Utama untuk tindakan berikut:
+ [https://docs.aws.amazon.com//kms/latest/APIReference/API_Encrypt.html](https://docs.aws.amazon.com//kms/latest/APIReference/API_Encrypt.html)— Memungkinkan enkripsi menggunakan kunci yang dikelola pelanggan
+ [https://docs.aws.amazon.com//kms/latest/APIReference/API_Decrypt.html](https://docs.aws.amazon.com//kms/latest/APIReference/API_Decrypt.html)— Memungkinkan dekripsi menggunakan kunci yang dikelola pelanggan
+ [https://docs.aws.amazon.com//kms/latest/APIReference/API_DescribeKey.html](https://docs.aws.amazon.com//kms/latest/APIReference/API_DescribeKey.html)— Memberikan detail kunci yang dikelola pelanggan untuk memungkinkan AWS HealthScribe memvalidasi kunci

Berikut ini adalah contoh kebijakan utama yang dapat Anda gunakan untuk memberikan izin ResourceAccessRole lintas akun Anda untuk menggunakan kunci yang dikelola pelanggan Anda untuk AWS HealthScribe streaming. Untuk menggunakan kebijakan ini untuk pekerjaan transkripsi, `Principal` perbarui penggunaan DataAccessRole ARN, lalu hapus atau ubah konteks enkripsi.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {  
         "Sid": "AllowAccessForKeyAdministrators", 
         "Effect": "Allow", 
         "Principal": {
            "AWS": "arn:aws:iam::111122223333:root" 
         }, 
         "Action": [
           "kms:*" 
         ], 
         "Resource": "*"
      },
      {
         "Sid": "AllowAccessToResourceAccessRoleForMedicalScribe",
         "Effect": "Allow",
         "Principal": {
            "AWS": "arn:aws:iam::111122223333:role/ResourceAccessRole"
         },
         "Action": [
            "kms:Encrypt",
            "kms:Decrypt",
            "kms:GenerateDataKey*"
         ],
         "Resource": "*",
         "Condition": {
            "StringEquals": {
                "kms:EncryptionContext:aws:us-east-1:transcribe:medical-scribe:session-id": "1234abcd-12ab-34cd-56ef-123456SAMPLE"
            }
         }
      },
      {
         "Sid": "AllowAccessToResourceAccessRoleForDescribeKey",
         "Effect": "Allow",
         "Principal": {
             "AWS": "arn:aws:iam::111122223333:role/ResourceAccessRole"
         },
         "Action": "kms:DescribeKey",
         "Resource": "*"
     }
   ]
}
```

------

## Izin kebijakan IAM untuk peran akses
<a name="health-scribe-key-data-access-role"></a>

 Kebijakan IAM yang dilampirkan pada Anda DataAccessRole atau ResourceAccessRole harus memberikan izin untuk melakukan AWS KMS tindakan yang diperlukan, terlepas dari apakah kunci dan peran yang dikelola pelanggan berada di akun yang sama atau berbeda. Juga, kebijakan kepercayaan peran harus memberikan AWS HealthScribe izin untuk mengambil peran tersebut.

Contoh kebijakan IAM berikut menunjukkan cara memberikan ResourceAccessRole izin untuk AWS HealthScribe streaming. Untuk menggunakan kebijakan ini untuk pekerjaan transkripsi, ganti `transcribe.streaming.amazonaws.com` dengan `transcribe.amazonaws.com` dan hapus atau ubah konteks enkripsi.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "kms:Encrypt",
                "kms:Decrypt",
                "kms:GenerateDataKey*"
            ],
            "Resource": "arn:aws:kms:us-west-2:111122223333:key/KMS-Example-KeyId",
            "Condition": {
                "StringEquals": {
                    "kms:ViaService": "transcribe.streaming.amazonaws.com",
                    "kms:EncryptionContext:aws:us-east-1:transcribe:medical-scribe:session-id": "1234abcd-12ab-34cd-56ef-123456SAMPLE"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "kms:DescribeKey"
            ],
            "Resource": "arn:aws:kms:us-west-2:111122223333:key/KMS-Example-KeyId",
            "Condition": {
                "StringEquals": {
                    "kms:ViaService": "transcribe.streaming.amazonaws.com"
                }
            }
        }
    ]
}
```

------

Berikut ini adalah contoh kebijakan kepercayaan untuk ResourceAccessRole. Untuk DataAccessRole, ganti `transcribe.streaming.amazonaws.com` dengan`transcribe.amazonaws.com`.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "transcribe.streaming.amazonaws.com"
            },
            "Action": "sts:AssumeRole",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "111122223333"
                },
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:transcribe:us-west-2:111122223333:*"
                }
            }
        }
    ]
}
```

------

 Untuk informasi selengkapnya tentang [menentukan izin dalam kebijakan](https://docs.aws.amazon.com//kms/latest/developerguide/control-access-overview.html#overview-policy-elements) atau [akses kunci pemecahan masalah](https://docs.aws.amazon.com//kms/latest/developerguide/policy-evaluation.html#example-no-iam), lihat Panduan Pengembang. AWS Key Management Service 

## Menentukan kunci yang dikelola pelanggan untuk AWS HealthScribe
<a name="health-scribe-encryption-managed"></a>

 Anda dapat menentukan kunci terkelola pelanggan sebagai enkripsi lapisan kedua untuk pekerjaan transkripsi atau streaming. 
+ Untuk pekerjaan transkripsi, Anda menentukan kunci Anda di [OutputEncryptionKMSKeyId](https://docs.aws.amazon.com//transcribe/latest/APIReference/API_StartMedicalScribeJob.html#transcribe-StartMedicalScribeJob-request-OutputEncryptionKMSKeyId) operasi [StartMedicalScribeJob](https://docs.aws.amazon.com//transcribe/latest/APIReference/API_StartMedicalScribeJob.html)API Anda.
+ Untuk streaming, Anda menentukan kunci di [MedicalScribeEncryptionSettings](https://docs.aws.amazon.com//transcribe/latest/APIReference/API_streaming_MedicalScribeEncryptionSettings.html)dalam [MedicalScribeConfigurationEvent](https://docs.aws.amazon.com//transcribe/latest/APIReference/API_streaming_MedicalScribeConfigurationEvent.html). 

## AWS KMS konteks enkripsi
<a name="health-scribe-encryption-context"></a>

 AWS KMS konteks enkripsi adalah peta teks biasa, pasangan kunci non-rahasia: nilai. Peta ini mewakili data tambahan yang diautentikasi, yang dikenal sebagai pasangan konteks enkripsi, yang menyediakan lapisan keamanan tambahan untuk data Anda. AWS HealthScribe memerlukan kunci enkripsi simetris untuk mengenkripsi AWS HealthScribe output ke dalam bucket yang ditentukan pelanggan Amazon S3 . Untuk mempelajari lebih lanjut, lihat [Kunci asimetris di AWS KMS](https://docs.aws.amazon.com//kms/latest/developerguide/symmetric-asymmetric.html). 

 Saat membuat pasangan konteks enkripsi Anda, *jangan* sertakan informasi sensitif. Konteks enkripsi bukanlah rahasia — ini terlihat dalam teks biasa di dalam CloudTrail log Anda (sehingga Anda dapat menggunakannya untuk mengidentifikasi dan mengkategorikan operasi kriptografi Anda). Pasangan konteks enkripsi Anda dapat menyertakan karakter khusus, seperti garis bawah (`_`), tanda hubung (), garis miring (,`-`) dan `/` titik dua (`\`). `:` 

**Tip**  
 Ini dapat berguna untuk menghubungkan nilai-nilai dalam pasangan konteks enkripsi Anda dengan data yang dienkripsi. Meskipun tidak diperlukan, kami sarankan Anda menggunakan metadata non-sensitif yang terkait dengan konten terenkripsi Anda, seperti nama file, nilai header, atau bidang database yang tidak terenkripsi.   
 Untuk menggunakan enkripsi keluaran dengan API, atur parameter [KMSEncryptionKonteks](https://docs.aws.amazon.com//transcribe/latest/APIReference/API_StartMedicalScribeJob.html#transcribe-StartMedicalScribeJob-request-KMSEncryptionContext) dalam [StartMedicalScribeJob](https://docs.aws.amazon.com//transcribe/latest/APIReference/API_StartMedicalScribeJob.html)operasi. Untuk menyediakan konteks enkripsi untuk operasi enkripsi output, parameter [OutputEncryptionKMSKeyId harus mereferensikan ID](https://docs.aws.amazon.com//transcribe/latest/APIReference/API_StartMedicalScribeJob.html#transcribe-StartMedicalScribeJob-request-OutputEncryptionKMSKeyId) AWS KMS kunci simetris.   
Untuk streaming, Anda menentukan pasangan nilai kunci untuk `KmsEncryptionContext` di [MedicalScribeEncryptionSettings](https://docs.aws.amazon.com//transcribe/latest/APIReference/API_streaming_MedicalScribeEncryptionSettings.html)dalam [MedicalScribeConfigurationEvent](https://docs.aws.amazon.com//transcribe/latest/APIReference/API_streaming_MedicalScribeConfigurationEvent.html).   
 Anda dapat menggunakan [kunci AWS KMS kondisi](https://docs.aws.amazon.com//kms/latest/developerguide/policy-conditions.html#conditions-kms) dengan IAM kebijakan untuk mengontrol akses ke AWS KMS kunci enkripsi simetris berdasarkan konteks enkripsi yang digunakan dalam permintaan operasi [kriptografi](https://docs.aws.amazon.com//kms/latest/developerguide/concepts.html#cryptographic-operations). Untuk contoh kebijakan konteks enkripsi, lihat [kebijakan konteks AWS KMS enkripsi](https://docs.aws.amazon.com//transcribe/latest/dg/security_iam_id-based-policy-examples.html#kms-context-policy).   
 Menggunakan konteks enkripsi adalah opsional, tetapi disarankan. Untuk informasi selengkapnya, lihat [Konteks enkripsi](https://docs.aws.amazon.com//kms/latest/developerguide/concepts.html#encrypt_context). 

### AWS HealthScribe konteks enkripsi
<a name="hscribe-context-details"></a>

AWS HealthScribe menggunakan konteks enkripsi yang sama di semua operasi AWS Key Management Service kriptografi. Konteks enkripsi adalah peta String to String yang dapat disesuaikan dengan apa pun yang Anda inginkan.

```
"encryptionContext": {
   "ECKey": "ECValue"
   ...
}
```

Untuk AWS HealthScribe aliran, berikut ini adalah konteks enkripsi yang dihasilkan layanan default. Ini menerapkan konteks ini di atas konteks enkripsi apa pun yang Anda berikan.

```
"encryptionContext": {
  "aws:<region>:transcribe:medical-scribe:session-id": "1234abcd-12ab-34cd-56ef-123456SAMPLE"
}
```

Untuk pekerjaan AWS HealthScribe transkripsi, berikut ini adalah konteks enkripsi yang dihasilkan layanan default. Ini menerapkan konteks ini di atas konteks enkripsi apa pun yang Anda berikan.

```
"encryptionContext": {
  "aws:<region>:transcribe:medical-scribe:job-name": "<job-name>",
  "aws:<region>:transcribe:medical-scribe:start-time-epoch-ms": "<job-start-time>"
}
```

Jika Anda tidak memberikan konteks enkripsi apa pun, hanya konteks enkripsi yang dihasilkan layanan yang akan digunakan untuk semua operasi AWS KMS kriptografi.

**Pemantauan AWS HealthScribe dengan konteks enkripsi**

Saat Anda menggunakan kunci terkelola pelanggan simetris untuk mengenkripsi data Anda saat istirahat AWS HealthScribe, Anda juga dapat menggunakan konteks enkripsi dalam catatan audit dan log untuk mengidentifikasi bagaimana kunci yang dikelola pelanggan digunakan. Konteks enkripsi juga muncul di log yang dihasilkan oleh AWS CloudTrail atau CloudWatch Log.

**Menggunakan konteks enkripsi untuk mengontrol akses ke kunci terkelola pelanggan Anda**

 Anda dapat menggunakan konteks enkripsi dalam kebijakan utama dan kebijakan IAM sebagai kondisi untuk mengontrol akses ke kunci terkelola pelanggan simetris Anda. 

 Berikut ini adalah contoh pernyataan kebijakan kunci untuk memberikan akses ke kunci yang dikelola pelanggan untuk konteks enkripsi tertentu. Kondisi dalam pernyataan kebijakan ini mengharuskan penggunaan kunci KMS memiliki batasan konteks enkripsi yang menentukan konteks enkripsi. 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowAccessToResourceAccessRoleForMedicalScribe",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:role/ResourceAccessRole"
            },
            "Action": [
                "kms:Encrypt",
                "kms:Decrypt",
                "kms:GenerateDataKey*"
            ],
            "Resource": "arn:aws:kms:us-west-2:111122223333:key/KMS-Example-KeyId",
            "Condition": {
                "StringEquals": {
                    "kms:EncryptionContext:aws:us-east-1:transcribe:medical-scribe:session-id": "1234abcd-12ab-34cd-56ef-123456SAMPLE",
                    "kms:EncryptionContext:ECKey": "ECValue"
                }
            }
        },
        {
            "Sid": "AllowAccessToResourceAccessRoleForDescribeKey",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:role/ResourceAccessRole"
            },
            "Action": "kms:DescribeKey",
            "Resource": "arn:aws:kms:us-west-2:111122223333:key/KMS-Example-KeyId"
        }
    ]
}
```

------

## Memantau kunci enkripsi Anda untuk AWS HealthScribe
<a name="hscribe-monitoring-keys"></a>

Saat Anda menggunakan kunci yang dikelola AWS Key Management Service pelanggan AWS HealthScribe, Anda dapat menggunakan AWS CloudTrail atau CloudWatch mencatat untuk melacak permintaan yang AWS HealthScribe dikirim AWS KMS.

Contoh berikut adalah CloudTrail Enkripsi dan Dekripsi peristiwa yang dapat Anda gunakan yang memungkinkan Anda memantau bagaimana AWS HealthScribe penggunaan kunci yang dikelola pelanggan Anda.

**Enkripsi**

```
{
   "eventVersion":"1.09",
   "userIdentity":{
      "type":"AssumedRole",
      "principalId":"AROAIGDTESTANDEXAMPLE:Sampleuser01",
      "arn":"arn:aws:sts::123456789012:assumed-role/Admin/Sampleuser01",
      "accountId":"123456789012",
      "accessKeyId":"AKIAIOSFODNN7EXAMPLE3",
      "sessionContext":{
         "sessionIssuer":{
            "type":"Role",
            "principalId":"AROAIGDTESTANDEXAMPLE:Sampleuser01",
            "arn":"arn:aws:sts::123456789012:assumed-role/Admin/Sampleuser01",
            "accountId":"123456789012",
            "userName":"Admin"
         },
         "attributes":{
            "creationDate":"2024-08-16T01:10:05Z",
            "mfaAuthenticated":"false"
         }
      },
      "invokedBy":"transcribe.streaming.amazonaws.com"
   },
   "eventTime":"2024-08-16T01:10:05Z",
   "eventSource":"kms.amazonaws.com",
   "eventName":"Encrypt",
   "awsRegion":"us-east-1",
   "sourceIPAddress":"transcribe.streaming.amazonaws.com",
   "userAgent":"transcribe.streaming.amazonaws.com",
   "requestParameters":{
      "encryptionContext":{
         "aws:us-east-1:transcribe:medical-scribe:session-id":"1234abcd-12ab-34cd-56ef-123456SAMPLE"
      },
      "encryptionAlgorithm":"SYMMETRIC_DEFAULT",
      "keyId":"1234abcd-12ab-34cd-56ef-1234567890ab"
   },
   "responseElements":null,
   "requestID":"cbe0ac33-8cca-49e5-9bb5-dc2b8dfcb389",
   "eventID":"1b9fedde-aa96-48cc-9dd9-a2cce2964b3c",
   "readOnly":true,
   "resources":[
      {
         "accountId":"123456789012",
         "type":"AWS::KMS::Key",
         "ARN":"arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-123456SAMPLE"
      }
   ],
   "eventType":"AwsApiCall",
   "managementEvent":true,
   "recipientAccountId":"123456789012",
   "eventCategory":"Management"
}
```

**Dekripsi**

```
{
   "eventVersion":"1.09",
   "userIdentity":{
      "type":"AssumedRole",
      "principalId":"AROAIGDTESTANDEXAMPLE:Sampleuser01",
      "arn":"arn:aws:sts::123456789012:assumed-role/Admin/Sampleuser01",
      "accountId":"123456789012",
      "accessKeyId":"AKIAIOSFODNN7EXAMPLE3",
      "sessionContext":{
         "sessionIssuer":{
            "type":"Role",
            "principalId":"AROAIGDTESTANDEXAMPLE:Sampleuser01",
            "arn":"arn:aws:sts::123456789012:assumed-role/Admin/Sampleuser01",
            "accountId":"123456789012",
            "userName":"Admin"
         },
         "attributes":{
            "creationDate":"2024-08-16T20:47:04Z",
            "mfaAuthenticated":"false"
         }
      },
      "invokedBy":"transcribe.streaming.amazonaws.com"
   },
   "eventTime":"2024-08-16T20:47:04Z",
   "eventSource":"kms.amazonaws.com",
   "eventName":"Decrypt",
   "awsRegion":"us-east-1",
   "sourceIPAddress":"transcribe.streaming.amazonaws.com",
   "userAgent":"transcribe.streaming.amazonaws.com",
   "requestParameters":{
      "keyId":"mrk-de27f019178f4fbf86512ab03ba860be",
      "encryptionAlgorithm":"SYMMETRIC_DEFAULT",
      "encryptionContext":{
         "aws:us-east-1:transcribe:medical-scribe:session-id":"1234abcd-12ab-34cd-56ef-123456SAMPLE"
      }
   },
   "responseElements":null,
   "requestID":"8b7fb865-48be-4e03-ac3d-e7bee3ba30a1",
   "eventID":"68b7a263-d410-4701-9e2b-20c196628966",
   "readOnly":true,
   "resources":[
      {
         "accountId":"123456789012",
         "type":"AWS::KMS::Key",
         "ARN":"arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-123456SAMPLE"
      }
   ],
   "eventType":"AwsApiCall",
   "managementEvent":true,
   "recipientAccountId":"123456789012",
   "eventCategory":"Management"
}
```