

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

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

 AWS HealthScribe è una funzionalità di machine learning (ML) idonea all'HIPAA che combina il riconoscimento vocale e l'intelligenza artificiale generativa per trascrivere le conversazioni tra paziente e medico e generare note cliniche. easy-to-review AWS HealthScribe aiuta i fornitori di software per il settore sanitario a creare applicazioni cliniche che riducono il carico di documentazione e migliorano l'esperienza di consulenza. Il servizio fornisce automaticamente ricche trascrizioni delle conversazioni, identifica i ruoli dei relatori, classifica i dialoghi, estrae i termini medici e genera note cliniche preliminari. AWS HealthScribecombina queste funzionalità per eliminare la necessità di integrare e ottimizzare servizi di intelligenza artificiale separati, consentendoti di accelerare l'implementazione. 

Casi di utilizzo comune:
+ **Riduci i tempi di documentazione**: consenti ai medici di completare rapidamente la documentazione clinica con note cliniche generate dall'IA, facili da rivedere, modificare e finalizzare nell'applicazione.
+ **Aumenta l'efficienza degli scribi medici**: fornisci agli scribi medici trascrizioni e note cliniche generate dall'IA, insieme all'audio della consultazione, per accelerare i tempi di consegna della documentazione.
+ **Riepilogo efficiente delle visite ai pazienti**: crea un'esperienza che consenta agli utenti di ricordare rapidamente i momenti salienti della conversazione nella tua applicazione.

**Importante**  
 I risultati prodotti da AWS HealthScribe sono probabilistici e potrebbero non essere sempre accurati a causa di vari fattori, tra cui la qualità audio, il rumore di fondo, la chiarezza degli altoparlanti, la complessità della terminologia medica, le sfumature linguistiche specifiche del contesto e la natura dell'apprendimento automatico e [dell'](https://aws.amazon.com/machine-learning/responsible-ai/policy/)intelligenza artificiale generativa. AWS HealthScribe è progettato per essere utilizzato in un ruolo di assistenza per medici e scribi medici. AWS HealthScribe i risultati devono essere utilizzati solo in scenari di assistenza ai pazienti, tra cui, a titolo esemplificativo ma non esaustivo, come parte delle cartelle cliniche elettroniche, previa verifica dell'accuratezza e imposizione di un valido giudizio medico da parte di professionisti medici qualificati. AWS HealthScribe i risultati non sostituiscono la consulenza, la diagnosi o il trattamento medico professionale e non sono destinati a curare, trattare, mitigare, prevenire o diagnosticare alcuna malattia o condizione di salute. 

**Topics**
+ [Sicurezza](#health-scribe-security-overview)
+ [Disponibilità del servizio](#health-scribe-availability)
+ [Requisiti tecnici](#health-scribe-tech-requirements-overview)
+ [Specialità mediche supportate](#health-scribe-specialties)
+ [Flussi di lavoro](#health-scribe-workflows)
+ [AWS HealthScribe File di trascrizione](health-scribe-transcript.md)
+ [AWS HealthScribe File di documentazione clinica](health-scribe-insights.md)
+ [AWS HealthScribe lavori di trascrizione](health-scribe-job.md)
+ [AWS HealthScribe streaming](health-scribe-streaming.md)
+ [Crittografia dei dati a riposo per AWS HealthScribe](health-scribe-encryption.md)

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

AWS HealthScribe opera secondo un modello di responsabilità condivisa, in base al quale AWS è responsabile della protezione dell'infrastruttura in esecuzione AWS HealthScribe e l'utente è responsabile della gestione dei dati. Per ulteriori informazioni, consulta [ Shared Responsibility Model](https://aws.amazon.com/compliance/shared-responsibility-model/).

 Per impostazione predefinita, AWS HealthScribe fornisce la crittografia a riposo per proteggere i dati sensibili dei clienti utilizzando chiavi Amazon S3 gestite. Quando crei un processo di AWS HealthScribe trascrizione o avvii uno stream, puoi specificare una chiave gestita dal cliente. Ciò aggiunge un secondo livello di crittografia. Per ulteriori informazioni, consulta [Crittografia dei dati a riposo per AWS HealthScribe](health-scribe-encryption.md). 

## Disponibilità del servizio
<a name="health-scribe-availability"></a>

AWS HealthScribe è disponibile nella regione Stati Uniti orientali (Virginia settentrionale).

## Requisiti tecnici
<a name="health-scribe-tech-requirements-overview"></a>
+ **Lingua supportata:** inglese americano (en-US)
+ **Formato audio consigliato:** audio senza perdita di dati (come FLAC o WAV)
+ **Codifica**: PCM a 16 bit
+ **Frequenza di campionamento: 16.000 Hz** o superiore

## Specialità mediche supportate
<a name="health-scribe-specialties"></a>

AWS HealthScribe attualmente supporta le seguenti specialità:
+ Allergologia e immunologia
+ Cardiologia
+ Dermatologia
+ Endocrinologia
+ Gastroenterologia
+ Ematologia/Oncologia
+ Malattia infettiva
+ Nefrologia
+ Neurologia
+ OSTETRICIA
+ Oncologia
+ oftalmologia
+ Ortopedia
+ Otorinolaringoiatria
+ Medicina del dolore
+ Pediatria
+ Assistenza primaria
+ Psichiatria
+ Pneumologia
+ Reumatologia
+ Chirurgia
+ Urologia

## Flussi di lavoro
<a name="health-scribe-workflows"></a>

 AWS HealthScribe i flussi di lavoro includono lavori di trascrizione e streaming. Dopo aver eseguito un processo di trascrizione o completato uno streaming, AWS HealthScribe genera un file di trascrizione, con output di trascrizione e approfondimenti per ogni turn-by-turn turno di conversazione. Inoltre genera un file di documentazione clinica, con riassunti e collegamenti alle prove. Per ulteriori informazioni, consulta [AWS HealthScribe File di trascrizione](health-scribe-transcript.md) e [AWS HealthScribe File di documentazione clinica](health-scribe-insights.md). 
+ Lavori di **trascrizione: con i lavori** di trascrizione, AWS HealthScribe analizza i file multimediali di consulenza medica completati da un bucket Amazon S3. Di seguito sono riportate le operazioni API specifiche per i lavori di trascrizione. AWS HealthScribe 
  + [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)

  Per ulteriori informazioni, inclusi esempi di codice, vedere. [AWS HealthScribe lavori di trascrizione](health-scribe-job.md)
+ **Streaming**: AWS HealthScribe lo streaming è un servizio HTTP2 bidirezionale in tempo reale che accetta lo streaming audio su un canale e fornisce una trascrizione audio sull'altro canale.

  

   Di seguito sono riportate le operazioni API specifiche per lo streaming: AWS HealthScribe 
  + [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)

  Per ulteriori informazioni, inclusi esempi di codice, consulta[AWS HealthScribe streaming](health-scribe-streaming.md).

# AWS HealthScribe File di trascrizione
<a name="health-scribe-transcript"></a>

Nel file di trascrizione, oltre all'output di turn-by-turn trascrizione standard con timestamp a livello di parola, sono disponibili: AWS HealthScribe 
+ **Rilevamento del ruolo dei partecipanti** in modo da poter distinguere i pazienti dai medici nella trascrizione della conversazione.
+ **Sezionamento delle trascrizioni**, che classifica i dialoghi trascritti in base alla loro rilevanza clinica, ad esempio chiacchierate, elementi soggettivi, oggettivi, ecc. Questo può essere usato per mostrare parti specifiche della trascrizione.
+ **Entità cliniche**, che includono informazioni strutturate come farmaci, condizioni mediche e trattamenti menzionati nella conversazione.

Inoltre, vengono fornite le seguenti informazioni per ogni turno di conversazione:
+ **Ruolo del partecipante**: ogni partecipante viene etichettato come medico o paziente. Se una conversazione ha più di un partecipante in ogni categoria, a ciascun partecipante viene assegnato un numero. Ad esempio, `CLINICIAN_0`, `CLINICIAN_1` e `PATIENT_0`, `PATIENT_1`.
+ **Sezione**: ogni turno di dialogo viene assegnato a una delle quattro possibili sezioni in base al contenuto identificato.
  + **Soggettivo**: informazioni fornite dal paziente sui suoi problemi di salute.
  + **Obiettivo**: informazioni osservate dal medico attraverso esami fisici, test di laboratorio, immagini o test diagnostici.
  + **Valutazione e piano**: informazioni relative alla valutazione e al piano di cura del medico.
  + **Visita Flow Management** — Informazioni relative a chiacchiere o transizioni.
+ **Approfondimenti**: estrai le entità clinicamente rilevanti (`ClinicalEntity`) presenti nella conversazione. AWS HealthScribe rileva tutte le entità cliniche supportate da [Amazon Comprehend Medical](https://aws.amazon.com//comprehend/medical).

Per un esempio di trascrizione da un processo di trascrizione, consulta l'output della trascrizione in. [Esempi di output di lavori di trascrizione](starting-health-scribe-job.md#health-scribe-output-example) Per un esempio di trascrizione da streaming, vedete l'output della trascrizione in. [Esempi di output di trascrizione in streaming](health-scribe-streaming-setting-up.md#health-scribe-streaming-output-example) 

# AWS HealthScribe File di documentazione clinica
<a name="health-scribe-insights"></a>

AWS HealthScribe può utilizzare uno dei seguenti modelli per il riepilogo della nota clinica. Il valore predefinito è `HISTORY_AND_PHYSICAL`.
+ HISTORY\$1AND\$1PHYSICAL: Fornisce riepiloghi per le sezioni chiave della documentazione clinica. Esempi di sezioni includono Chief Complaint, History of Present Illness, Review of Systems, Past Medical History, Assessment e Plan. 
+ GIRPP: Fornisce riepiloghi basati sui progressi dei pazienti verso gli obiettivi. Esempi di sezioni includono Obiettivo, Intervento, Risposta, Progresso e Piano.
+ BIRP: si concentra sui modelli e sulle risposte comportamentali del paziente. Esempi di sezioni includono Comportamento, Intervento, Risposta e Piano.
+ SIRP: enfatizza il contesto situazionale della terapia. Esempi di sezioni includono Situazione, Intervento, Risposta e Piano.
+ DAP: fornisce un formato semplificato per la documentazione clinica. Esempi di sezioni includono Dati, Valutazione e Piano.
+ BH\$1SOAP: formato di documentazione incentrato sulla salute comportamentale. Esempi di sezioni includono Soggettivo, Obiettivo, Valutazione e Piano.
+ PH\$1SOAP: formato di documentazione incentrato sulla salute fisica. Esempi di sezioni includono Soggettivo, Obiettivo, Valutazione e Piano.

Per specificare il modello da utilizzare, procedi come segue:
+  Per i lavori di trascrizione, specifica il modello da utilizzare nella `NoteTemplate` parte [ClinicalNoteGenerationSettings](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_ClinicalNoteGenerationSettings.html)`Settings`della tua operazione [StartMedicalScribeJob](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_StartMedicalScribeJob.html)API. 
+  Per lo streaming, specifichi il modello da utilizzare nel `NoteTemplate` file del [ClinicalNoteGenerationSettings](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_streaming_ClinicalNoteGenerationSettings.html)`PostStreamAnalyticsSettings`del tuo. [MedicalScribeConfigurationEvent](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_streaming_MedicalScribeConfigurationEvent.html) 

## Contesto di Medical Scribe
<a name="health-scribe-contextual-information"></a>

L'`MedicalScribeContext`oggetto contiene informazioni contestuali utilizzate per personalizzare la generazione di note cliniche con dettagli specifici del paziente.

L'`MedicalScribeContext`oggetto include i seguenti componenti:
+ **PatientContext**- Contiene informazioni specifiche per il paziente utilizzate per personalizzare la generazione di note cliniche. Questo include:
  + **Pronomi: i pronomi** preferiti dal paziente che si desidera fornire come contesto per la generazione di note cliniche. Questi pronomi vengono utilizzati quando ci si riferisce al paziente nell'output clinico generato.

Per informazioni su come impostare il contesto di Medical Scribe, vedere. [MedicalScribeContext](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_MedicalScribeContext.html)

**Topics**
+ [Contesto di Medical Scribe](#health-scribe-contextual-information)
+ [Sezioni del modello HISTORY\$1AND\$1PHYSICAL](#health-scribe-history-physical-insights)
+ [Sezioni del modello GIRPP](#health-scribe-GIRPP-insights)
+ [Sezioni del modello BIRP](#health-scribe-BIRP-insights)
+ [Sezioni del modello SIRP](#health-scribe-SIRP-insights)
+ [Sezioni del modello DAP](#health-scribe-DAP-insights)
+ [Sezioni del modello BH\$1SOAP](#health-scribe-BH-SOAP-insights)
+ [Sezioni del modello PH\$1SOAP](#health-scribe-PH-SOAP-insights)

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

Il modello HISTORY\$1AND\$1PHYSICAL insights include le seguenti sezioni.


| Sezione | Description | 
| --- | --- | 
|  SINTOMI PRINCIPALI  |  Breve descrizione del motivo per cui il paziente si reca dal medico.  | 
|  STORICO DELLA MALATTIA ATTUALE  |  Note che forniscono informazioni sulla malattia del paziente, compresi riferimenti alla gravità, all'insorgenza, alla tempistica dei sintomi, ai trattamenti in corso e alle aree colpite.  | 
|  REVISIONE DEI SISTEMI  |  Valutazione dei sintomi riferita dal paziente nei diversi sistemi corporei.  | 
|  STORIA MEDICA  |  Descrive in dettaglio le precedenti condizioni mediche, gli interventi chirurgici e le cure del paziente.  | 
|  VALUTAZIONE  |  Note che forniscono informazioni sulla valutazione dello stato di salute del paziente da parte del medico.  | 
|  PLAN  |  Note che fanno riferimento a eventuali cure mediche, regolazioni dello stile di vita e ulteriori visite.  | 
|  ESAME FISICO  |  Documentazione dei risultati del medico derivanti dall'esame fisico dei sistemi corporei e dei segni vitali del paziente.  | 
|  STORIA\$1FAMILIARE PASSATA  |  Informazioni sulle condizioni di salute della famiglia del paziente.  | 
|  PAST\$1SOCIAL\$1HISTORY  |  Dettagli sulla vita sociale, le abitudini, l'occupazione e i fattori ambientali del paziente che influiscono sulla salute.  | 
|  TEST\$1DIAGNOSTICI  |  Risultati e interpretazione di esami di laboratorio, studi di diagnostica per immagini e altre procedure diagnostiche.  | 

Ogni frase presente nella trascrizione `Summary` include `EvidenceLinks` ciò che fornisce `SegmentId` i dialoghi pertinenti nella trascrizione che sono stati riassunti. Questo aiuta gli utenti a convalidare l'accuratezza del riepilogo nell'applicazione. Come la spiegabilità, fornire tracciabilità e trasparenza per gli approfondimenti generati dall'intelligenza artificiale è coerente con i principi dell'IA responsabile. Fornire questi riferimenti insieme alle note riassuntive ai medici o ai redattori medici aiuta a promuovere la fiducia e incoraggiare l'uso sicuro dell'IA in ambito clinico.

Per un esempio di file di documentazione clinica tratto da un lavoro di trascrizione, vedere l'esempio di un file di documentazione clinica in. [Esempi di output di lavori di trascrizione](starting-health-scribe-job.md#health-scribe-output-example) Per un esempio di file di documentazione clinica in streaming, vedete l'esempio di un file di documentazione clinica in. [Esempi di output di trascrizione in streaming](health-scribe-streaming-setting-up.md#health-scribe-streaming-output-example) 

## Sezioni del modello GIRPP
<a name="health-scribe-GIRPP-insights"></a>

Il modello GIRPP Insights include le seguenti sezioni.


| Sezione | Description | 
| --- | --- | 
|  Obiettivo  |  Il problema, la sfida o il comportamento identificati che devono essere affrontati attraverso il trattamento.  | 
|  Intervento  |  Il trattamento, il metodo o la tecnica specifici utilizzati dal medico per aiutare il paziente a raggiungere l'obiettivo identificato.  | 
|  Risposta  |  In che modo il paziente ha risposto all'intervento, compreso il livello di partecipazione, le reazioni e il feedback.  | 
|  Avanzamento  |  La valutazione del medico in merito all'avanzamento verso gli obiettivi del trattamento, comprese le osservazioni sul miglioramento o sulle barriere del paziente.  | 
|  Pianificazione  |  Le fasi successive del trattamento, inclusi interventi futuri, compiti a casa e referenze.  | 

## Sezioni del modello BIRP
<a name="health-scribe-BIRP-insights"></a>

Il modello BIRP Insights include le seguenti sezioni.


| Sezione | Description | 
| --- | --- | 
|  Comportamento  |  I problemi che il paziente presenta e la sua risposta al trattamento.  | 
|  Intervento  |  Il trattamento, il metodo o la tecnica specifici utilizzati dal medico per aiutare il paziente a raggiungere l'obiettivo identificato.  | 
|  Risposta  |  In che modo il paziente ha risposto all'intervento, compreso il livello di partecipazione, le reazioni e il feedback.  | 
|  Pianificazione  |  Le fasi successive del trattamento, inclusi interventi futuri, compiti a casa e referenze.  | 

## Sezioni del modello SIRP
<a name="health-scribe-SIRP-insights"></a>

Il modello SIRP Insights include le seguenti sezioni.


| Sezione | Description | 
| --- | --- | 
|  Situazione  |  Il problema che presenta il paziente e il suo obiettivo per la ricerca della terapia.  | 
|  Intervento  |  Il trattamento, il metodo o la tecnica specifici utilizzati dal medico per aiutare il paziente a raggiungere l'obiettivo identificato.  | 
|  Risposta  |  In che modo il paziente ha risposto all'intervento, compreso il livello di partecipazione, le reazioni e il feedback.  | 
|  Pianificazione  |  Le fasi successive del trattamento, inclusi interventi futuri, compiti a casa e referenze.  | 

## Sezioni del modello DAP
<a name="health-scribe-DAP-insights"></a>

Il modello DAP Insights include le seguenti sezioni.


| Sezione | Description | 
| --- | --- | 
|  Dati  |  I motivi per cui il paziente richiede un trattamento e informazioni sul paziente.  | 
|  Valutazione  |  Diagnosi della situazione del paziente da parte del medico.  | 
|  Pianificazione  |  Le fasi successive del trattamento, inclusi interventi futuri, compiti a casa e referenze.  | 

## Sezioni del modello BH\$1SOAP
<a name="health-scribe-BH-SOAP-insights"></a>

Il modello BH\$1SOAP Insights include le seguenti sezioni.


| Sezione | Description | 
| --- | --- | 
|  Soggettivo  |  Gli obiettivi del cliente per il trattamento e le sue esperienze, nonché i problemi esistenti e passati.  | 
|  Obiettivo  |  Dati e fatti sul cliente.  | 
|  Valutazione  |  Diagnosi della situazione del paziente da parte del medico.  | 
|  Pianificazione  |  Le fasi successive del trattamento, inclusi interventi futuri, compiti a casa e referenze.  | 

## Sezioni del modello PH\$1SOAP
<a name="health-scribe-PH-SOAP-insights"></a>

Il modello PH\$1SOAP insights include le seguenti sezioni.


| Sezione | Description | 
| --- | --- | 
|  Soggettivo  |  Gli obiettivi del cliente per il trattamento e le sue esperienze, nonché i problemi esistenti e passati.  | 
|  Obiettivo  |  Dati e fatti sul cliente.  | 
|  Valutazione  |  Diagnosi della situazione del paziente da parte del medico.  | 
|  Pianificazione  |  Le fasi successive del trattamento, inclusi interventi futuri, compiti a casa e referenze.  | 

# AWS HealthScribe lavori di trascrizione
<a name="health-scribe-job"></a>

Un processo di AWS HealthScribe trascrizione elabora i file multimediali da un bucket Amazon S3. [https://docs.aws.amazon.com/transcribe/latest/dg/health-scribe-job.html#health-scribe-output-example](https://docs.aws.amazon.com/transcribe/latest/dg/health-scribe-job.html#health-scribe-output-example)

Di seguito sono riportate le operazioni API specifiche per i lavori di trascrizione: AWS HealthScribe 
+ [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)

# Avvio di un processo di trascrizione AWS HealthScribe
<a name="starting-health-scribe-job"></a>

È possibile avviare un AWS HealthScribe lavoro utilizzando la AWS CLI o. AWS SDKs

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

 Questo esempio utilizza il [start-medical-scribe-job](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/transcribe/start-medical-scribe-job.html)comando. Per ulteriori informazioni, consulta [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
```

Ecco un altro esempio di utilizzo del [start-medical-scribe-job](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/transcribe/start-medical-scribe-job.html)comando e un corpo della richiesta con impostazioni aggiuntive.

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

Il file `my-first-medical-scribe-job.json` contiene il seguente corpo della richiesta.

```
{
  "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 per Python (Boto3)
<a name="health-scribe-python-batch"></a>

 L'esempio seguente utilizza il AWS SDK per Python (Boto3) per effettuare una richiesta [start\$1medical\$1scribe\$1job](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/transcribe/client/start_medical_scribe_job.html). Per ulteriori informazioni, consulta [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)
```

**Nota**  
La console di gestione attualmente non supporta i lavori. AWS AWS HealthScribe 

## Esempi di output di lavori di trascrizione
<a name="health-scribe-output-example"></a>

Oltre a una trascrizione, le richieste `StartMedicalScribeJob` generano un file separato di documentazione clinica. Entrambi i file sono in formato JSON e vengono archiviati nella posizione di output specificata nella richiesta. Ecco alcuni esempi di ciascun tipo di output:

### Esempio di output di trascrizione
<a name="health-scribe-transcript-output"></a>

 Un file di AWS HealthScribe trascrizione (da una `StartMedicalScribeJob` richiesta) ha il seguente formato: 

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

Ecco un altro esempio di utilizzo del [start-medical-scribe-job](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/transcribe/start-medical-conversation-intelligence-job.html)comando e un corpo della richiesta con impostazioni aggiuntive.

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

Il file `my-first-medical-scribe-job.json` contiene il seguente corpo della richiesta.

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

### Esempio di output di documentazione clinica
<a name="health-scribe-insights-output"></a>

 Un file di approfondimenti sulla documentazione (da una richiesta `StartMedicalScribeJob`) ha il seguente formato: 

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

Con AWS HealthScribe lo streaming, puoi trascrivere le conversazioni mediche in tempo reale. AWS HealthScribe lo streaming è un servizio HTTP2 bidirezionale in tempo reale che accetta lo streaming audio su un canale e fornisce una trascrizione audio sull'altro canale. Una volta completato lo streaming, AWS HealthScribe analizza il contenuto dello stream e produce un file JSON di trascrizione e un file JSON di note cliniche. 

 Per avviare lo streaming, utilizza l'operazione API. [StartMedicalScribeStream](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_streaming_StartMedicalScribeStream.html) Questa API avvia un canale bidirezionale HTTP2 basato che utilizzi per lo streaming di eventi audio. 

Quando avvii uno stream, specifica innanzitutto la configurazione dello stream in a. `MedicalScribeConfigurationEvent` Questo evento include le definizioni dei canali, le impostazioni di crittografia e le impostazioni di analisi post-stream, come la configurazione di output per la trascrizione aggregata e la generazione di note cliniche. 

Dopo aver avviato lo streaming audio, gestisci lo streaming come segue:
+  Quando hai finito, per iniziare a elaborare i risultati con l'analisi post-stream, invia un `MedicalScribeSessionControlEvent` con a `Type` of `END_OF_SESSION` e AWS HealthScribe avvia l'analisi.
+ Per mettere in pausa lo streaming, completa il flusso di input senza inviare il. `MedicalScribeSessionControlEvent`
+ Per riprendere uno stream in pausa, utilizza l'operazione `StartMedicalScribeStream` API e specifica la stessa. `SessionId` Questo è quello che `SessionId` hai usato quando hai iniziato originariamente lo stream.

**Topics**
+ [Linee guida e requisiti](#health-scribe-streaming-requirements)
+ [ResourceAccessRoleArn autorizzazioni di ruolo](#health-scribe-data-access-role)
+ [Avvio della trascrizione in streaming AWS HealthScribe](health-scribe-streaming-setting-up.md)

## Linee guida e requisiti
<a name="health-scribe-streaming-requirements"></a>

Di seguito sono riportate le linee guida e i requisiti per AWS HealthScribe lo streaming:
+ Prima di inviare eventi audio, è necessario specificare la configurazione dello stream in a`[MedicalScribeConfigurationEvent](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_streaming_MedicalScribeConfigurationEvent.html)`.
+ Per eseguire l'analisi post-stream, è `ResourceAccessRoleArn` `MedicalScribeConfigurationEvent` necessario disporre delle autorizzazioni corrette. Per ulteriori informazioni, consulta [ResourceAccessRoleArn autorizzazioni di ruolo](#health-scribe-data-access-role). 
+ Puoi riprendere una sessione un numero qualsiasi di volte entro 5 ore dalla creazione iniziale dello stream.
+ Puoi trasmettere in streaming al massimo 2 ore di audio nel corso di una sessione per tutte le richieste di streaming.
+ Per impostazione predefinita, AWS HealthScribe fornisce la crittografia a riposo per proteggere i dati sensibili dei clienti utilizzando chiavi Amazon S3 gestite. Quando avvii uno stream, puoi specificare una AWS KMS chiave per un secondo livello di crittografia. `ResourceAccessRoleArn`Devi avere il permesso di usare la tua AWS KMS chiave. Per ulteriori informazioni, consulta [Crittografia dei dati a riposo per AWS HealthScribe](health-scribe-encryption.md). 
+ Puoi usare AWS HealthScribe lo streaming con AWS SDKs, escludendo l'SDK for Python (Boto3) e l'SDK for PHP.
+ Se si verifica un'`LimitExceededException`eccezione dopo aver terminato uno stream, puoi riavviare la sessione e continuare a generare analisi post-stream. Per riavviare lo stream, usa l'[StartMedicalScribeStream](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_streaming_StartMedicalScribeStream.html)API e usala. `SessionID` Quindi invia un `MedicalScribeSessionControlEvent` con un `Type` of `END_OF_SESSION` e AWS HealthScribe avvia l'analisi.

## ResourceAccessRoleArn autorizzazioni di ruolo
<a name="health-scribe-data-access-role"></a>

Per eseguire l'analisi post-stream, l'`ResourceAccessRoleArn`utente `MedicalScribeConfigurationEvent` deve poter accedere al bucket di output Amazon S3 e, se lo fornisci, alla tua chiave. AWS KMS Inoltre, la politica di fiducia del ruolo deve concedere al `transcribe.streaming.amazonaws.com` servizio l'autorizzazione ad assumere il ruolo.

Di seguito è riportato un esempio di policy IAM che concede le autorizzazioni per i bucket Amazon S3 e le autorizzazioni AWS KMS chiave. Per ulteriori informazioni, consulta [Crittografia dei dati a riposo per 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"
        }
    ]
}
```

------

Di seguito è illustrato un esempio di policy di attendibilità.

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

****  

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

------

# Avvio della trascrizione in streaming AWS HealthScribe
<a name="health-scribe-streaming-setting-up"></a>

Il seguente esempio di codice mostra come impostare una trascrizione AWS HealthScribe in streaming utilizzando. AWS SDKs

**Topics**
+ [SDK per Java 2.x](#health-scribe-java-stream)
+ [Esempi di output di trascrizione in streaming](#health-scribe-streaming-output-example)

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

 L'esempio seguente utilizza l'SDK for Java 2.x per configurare lo streaming ed effettuare una [StartMedicalScribeStream](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_streaming_StartMedicalScribeStream.html)richiesta. 

```
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);
        }
    }
}
```

## Esempi di output di trascrizione in streaming
<a name="health-scribe-streaming-output-example"></a>

 Una volta completato lo streaming, AWS HealthScribe analizza il contenuto dello stream e produce un file JSON di trascrizione e un file JSON di note cliniche. Ecco alcuni esempi di ciascun tipo di output:

### Esempio di output di trascrizione
<a name="health-scribe-streaming-transcript-output"></a>

 Di seguito è riportato un esempio di file di AWS HealthScribe trascrizione di una sessione di 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"
        }]
    }
}
```

### Esempio di output della documentazione clinica
<a name="health-scribe-streaming-insights-output"></a>

 Di seguito è riportato un esempio di file di analisi della documentazione AWS HealthScribe clinica tratto da una sessione di 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"
  }
}
```

# Crittografia dei dati a riposo per AWS HealthScribe
<a name="health-scribe-encryption"></a>

Per impostazione predefinita, AWS HealthScribe fornisce la crittografia inattiva per proteggere i dati sensibili dei clienti utilizzando chiavi AWS HealthScribe gestite AWS Key Management Service (AWS KMS). La crittografia predefinita dei dati a riposo aiuta a ridurre il sovraccarico operativo e la complessità associati alla protezione dei dati sensibili. Inoltre, consente di creare applicazioni sicure che soddisfano i rigorosi requisiti normativi e di conformità alla crittografia. Quando crei un processo di AWS HealthScribe trascrizione o avvii uno stream, puoi specificare una chiave gestita dal cliente. Ciò aggiunge un secondo livello di crittografia. 
+ **AWS HealthScribe AWS KMS chiavi gestite**: AWS HealthScribe utilizza le chiavi AWS HealthScribe managed AWS Key Management Service (AWS KMS) per impostazione predefinita per crittografare automaticamente i file intermedi. Non è possibile disabilitare questo livello di crittografia o scegliere un tipo di crittografia alternativo. Non puoi visualizzare, gestire o utilizzare le chiavi o controllarne l'utilizzo. Tuttavia, non è necessario effettuare alcuna operazione o modificare programmi per proteggere le chiavi che eseguono la crittografia dei dati.
+ **Chiavi gestite dal cliente**: AWS HealthScribe supporta l'uso di una chiave simmetrica gestita dal cliente che puoi creare, possedere e gestire per aggiungere un secondo livello di crittografia rispetto alla crittografia esistente di proprietà di AWS. Avendo il pieno controllo di questo livello di crittografia, è possibile eseguire operazioni quali:
  + Stabilire e mantenere le policy delle chiavi
  + Stabilire e mantenere IAM politiche e sovvenzioni
  + Abilitare e disabilitare le policy delle chiavi
  + Ruotare i materiali crittografici delle chiavi
  + Aggiungere tag
  + Creare alias delle chiavi
  + Pianificare l’eliminazione delle chiavi

  Per ulteriori informazioni, consulta [Customer Managed Key](https://docs.aws.amazon.com//kms/latest/developerguide/concepts.html#customer-cmk) nella Guida per gli AWS Key Management Service sviluppatori.

**Nota**  
AWS HealthScribe abilita automaticamente la crittografia dei dati AWS archiviati utilizzando chiavi di proprietà per proteggere gratuitamente i dati di identificazione personale. Tuttavia, l'utilizzo di una chiave gestita dal cliente comporta dei AWS KMS costi. Per ulteriori informazioni sui prezzi, consulta [Prezzi di AWS Key Management Service](https://aws.amazon.com//kms/pricing/).   
 Per ulteriori informazioni su AWS KMS, consulta [Cos'è AWS Key Management Service](https://docs.aws.amazon.com//kms/latest/developerguide/overview.html). 

**Topics**
+ [Creazione di una chiave gestita dal cliente](health-scribe-encryption-customer.md)
+ [Specificazione di una chiave gestita dal cliente per AWS HealthScribe](#health-scribe-encryption-managed)
+ [AWS KMS contesto di crittografia](#health-scribe-encryption-context)
+ [Monitoraggio delle chiavi di crittografia per AWS HealthScribe](#hscribe-monitoring-keys)

# Creazione di una chiave gestita dal cliente
<a name="health-scribe-encryption-customer"></a>

 È possibile creare una chiave simmetrica gestita dal cliente utilizzando Console di gestione AWS, o il. AWS KMS APIs Per creare una chiave simmetrica gestita dal cliente, segui i passaggi per la [creazione di una chiave gestita dal cliente simmetrica](https://docs.aws.amazon.com//kms/latest/developerguide/create-keys.html#create-symmetric-cmk) nella Guida per gli sviluppatori. AWS Key Management Service 

Le policy della chiave controllano l’accesso alla chiave gestita dal cliente. Ogni chiave gestita dal cliente deve avere esattamente una policy della chiave, che contiene istruzioni che determinano chi può usare la chiave e come la possono usare. Quando crei la chiave gestita dal cliente, è possibile specificare una policy della chiave. Per ulteriori informazioni, consulta [Gestire l'accesso alle chiavi gestite dal cliente](https://docs.aws.amazon.com//kms/latest/developerguide/control-access-overview.html#managing-access) nella Guida per gli sviluppatori. AWS Key Management Service 

## AWS KMS politiche chiave per AWS HealthScribe
<a name="health-scribe-key-policies"></a>

 Se utilizzi una chiave nello stesso account del IAM ruolo specificato nella tua richiesta [StartMedicalScribeJob](https://docs.aws.amazon.com//transcribe/latest/APIReference/API_StartMedicalScribeJob.html)o `DataAccessRole` `ResourceAccessRole` nella tua [StartMedicalScribeStream](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_streaming_StartMedicalScribeStream.html)richiesta, non è necessario aggiornare la Politica sulle chiavi. Per utilizzare la chiave gestita dai clienti in un account diverso dal tuo DataAccessRole (per lavori di trascrizione) o ResourceAccessRole (per lo streaming), devi affidare al rispettivo ruolo nella Politica chiave le seguenti azioni:
+ [https://docs.aws.amazon.com//kms/latest/APIReference/API_Encrypt.html](https://docs.aws.amazon.com//kms/latest/APIReference/API_Encrypt.html): consente di eseguire la crittografia utilizzando la chiave gestita dal cliente
+ [https://docs.aws.amazon.com//kms/latest/APIReference/API_Decrypt.html](https://docs.aws.amazon.com//kms/latest/APIReference/API_Decrypt.html): consente di utilizzare la chiave gestita dal cliente per decrittografare i dati.
+ [https://docs.aws.amazon.com//kms/latest/APIReference/API_DescribeKey.html](https://docs.aws.amazon.com//kms/latest/APIReference/API_DescribeKey.html)— Fornisce i dettagli chiave gestiti dal cliente per consentire AWS HealthScribe la convalida della chiave

Di seguito è riportato un esempio di politica chiave che puoi utilizzare per concedere a più account ResourceAccessRole le autorizzazioni per utilizzare la chiave gestita dal cliente per AWS HealthScribe lo streaming. Per utilizzare questo criterio per i lavori di trascrizione, aggiorna il file `Principal` per utilizzare l' DataAccessRole ARN e rimuovi o modifica il contesto di crittografia.

------
#### [ 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": "*"
     }
   ]
}
```

------

## Autorizzazioni della policy IAM per i ruoli di accesso
<a name="health-scribe-key-data-access-role"></a>

 La policy IAM associata al tuo account DataAccessRole o ResourceAccessRole deve concedere le autorizzazioni per eseguire le AWS KMS azioni necessarie, indipendentemente dal fatto che la chiave e il ruolo gestiti dal cliente appartengano allo stesso account o a account diversi. Inoltre, la politica di fiducia del ruolo deve concedere AWS HealthScribe l'autorizzazione per assumere il ruolo.

Il seguente esempio di policy IAM mostra come concedere un' ResourceAccessRole autorizzazione per AWS HealthScribe lo streaming. Per utilizzare questa policy per i lavori di trascrizione, sostituiscila `transcribe.streaming.amazonaws.com` con `transcribe.amazonaws.com` e rimuovi o modifica il contesto di crittografia.

------
#### [ 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"
                }
            }
        }
    ]
}
```

------

Di seguito è riportato un esempio di politica di fiducia per. ResourceAccessRole Per DataAccessRole, sostituisci `transcribe.streaming.amazonaws.com` con`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:*"
                }
            }
        }
    ]
}
```

------

 Per ulteriori informazioni sulla [specificazione delle autorizzazioni in una politica o sulla](https://docs.aws.amazon.com//kms/latest/developerguide/control-access-overview.html#overview-policy-elements) [risoluzione dei problemi di accesso con chiave](https://docs.aws.amazon.com//kms/latest/developerguide/policy-evaluation.html#example-no-iam), consulta la Guida per gli AWS Key Management Service sviluppatori. 

## Specificazione di una chiave gestita dal cliente per AWS HealthScribe
<a name="health-scribe-encryption-managed"></a>

 È possibile specificare una chiave gestita dal cliente come crittografia di secondo livello per i lavori di trascrizione o lo streaming. 
+ Per i lavori di trascrizione, specificate la chiave nell'[OutputEncryptionKMSKeyID dell'operazione API](https://docs.aws.amazon.com//transcribe/latest/APIReference/API_StartMedicalScribeJob.html#transcribe-StartMedicalScribeJob-request-OutputEncryptionKMSKeyId). [StartMedicalScribeJob](https://docs.aws.amazon.com//transcribe/latest/APIReference/API_StartMedicalScribeJob.html)
+ Per lo streaming, specifichi la chiave [MedicalScribeEncryptionSettings](https://docs.aws.amazon.com//transcribe/latest/APIReference/API_streaming_MedicalScribeEncryptionSettings.html)nel tuo. [MedicalScribeConfigurationEvent](https://docs.aws.amazon.com//transcribe/latest/APIReference/API_streaming_MedicalScribeConfigurationEvent.html) 

## AWS KMS contesto di crittografia
<a name="health-scribe-encryption-context"></a>

 AWS KMS il contesto di crittografia è una mappa di coppie chiave:valore in testo semplice e non segrete. Questa mappa rappresenta dati autenticati aggiuntivi, noti come coppie di contesti di crittografia, che forniscono un ulteriore livello di sicurezza per i dati. AWS HealthScribe richiede una chiave di crittografia simmetrica per crittografare l' AWS HealthScribe output in un bucket specificato dal cliente. Amazon S3 Per ulteriori informazioni, consulta [Chiavi asimmetriche in AWS KMS](https://docs.aws.amazon.com//kms/latest/developerguide/symmetric-asymmetric.html). 

 Quando crei le tue coppie di contesti di crittografia, *non* includere informazioni sensibili. Il contesto di crittografia non è segreto: è visibile in testo semplice all'interno dei CloudTrail log (quindi è possibile utilizzarlo per identificare e classificare le operazioni crittografiche). La coppia di contesti di crittografia può includere caratteri speciali, ad esempio caratteri di sottolineatura (`_`), trattini (`-`), barre (`/`, `\`) e due punti (`:`). 

**Suggerimento**  
 Può essere utile mettere in relazione i valori della coppia di contesti di crittografia con i dati da crittografare. Sebbene non sia obbligatorio, ti consigliamo di utilizzare metadati non sensibili relativi ai contenuti crittografati, come nomi di file, valori di intestazione o campi di database non crittografati.   
 Per utilizzare la crittografia di output con l'API, imposta il parametro [KMSEncryptionContext](https://docs.aws.amazon.com//transcribe/latest/APIReference/API_StartMedicalScribeJob.html#transcribe-StartMedicalScribeJob-request-KMSEncryptionContext) nell'operazione. [StartMedicalScribeJob](https://docs.aws.amazon.com//transcribe/latest/APIReference/API_StartMedicalScribeJob.html) Per fornire un contesto di crittografia per l'operazione di crittografia dell'output, il parametro [OutputEncryptionKMSKeyId deve fare riferimento a un ID](https://docs.aws.amazon.com//transcribe/latest/APIReference/API_StartMedicalScribeJob.html#transcribe-StartMedicalScribeJob-request-OutputEncryptionKMSKeyId) di AWS KMS chiave simmetrica.   
Per lo streaming, si specificano le coppie chiave-valore per «`KmsEncryptionContext`[MedicalScribeEncryptionSettings](https://docs.aws.amazon.com//transcribe/latest/APIReference/API_streaming_MedicalScribeEncryptionSettings.html)in the». [MedicalScribeConfigurationEvent](https://docs.aws.amazon.com//transcribe/latest/APIReference/API_streaming_MedicalScribeConfigurationEvent.html)   
 È possibile utilizzare [chiavi AWS KMS condizionali](https://docs.aws.amazon.com//kms/latest/developerguide/policy-conditions.html#conditions-kms) con IAM policy per controllare l'accesso a una AWS KMS chiave di crittografia simmetrica basata sul contesto di crittografia utilizzato nella richiesta di un'operazione [crittografica](https://docs.aws.amazon.com//kms/latest/developerguide/concepts.html#cryptographic-operations). [Per un esempio di policy del contesto di crittografia, consulta Policy del contesto di crittografia AWS KMS](https://docs.aws.amazon.com//transcribe/latest/dg/security_iam_id-based-policy-examples.html#kms-context-policy).   
 Utilizzare un contesto di crittografia è opzionale, ma consigliato. Per ulteriori informazioni, consulta [Contesto di crittografia](https://docs.aws.amazon.com//kms/latest/developerguide/concepts.html#encrypt_context). 

### AWS HealthScribe contesto di crittografia
<a name="hscribe-context-details"></a>

AWS HealthScribe utilizza lo stesso contesto di crittografia in tutte le operazioni AWS Key Management Service crittografiche. Il contesto di crittografia è una mappa di String to String che può essere personalizzata in base a qualsiasi cosa desideri.

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

Per gli AWS HealthScribe stream, quello che segue è il contesto di crittografia generato dal servizio predefinito. Applica questo contesto a qualsiasi contesto di crittografia fornito dall'utente.

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

Per i lavori di AWS HealthScribe trascrizione, quello che segue è il contesto di crittografia generato dal servizio predefinito. Applica questo contesto a qualsiasi contesto di crittografia fornito dall'utente.

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

Se non si fornisce alcun contesto di crittografia, per tutte le operazioni AWS KMS crittografiche verrà utilizzato solo il contesto di crittografia generato dal servizio.

**Monitoraggio AWS HealthScribe con contesto di crittografia**

Quando si utilizza una chiave simmetrica gestita dal cliente per crittografare i dati inattivi AWS HealthScribe, è possibile utilizzare il contesto di crittografia anche nei registri e nei registri di controllo per identificare come viene utilizzata la chiave gestita dal cliente. Il contesto di crittografia viene visualizzato anche nei log generati da or Logs. AWS CloudTrail CloudWatch 

**Utilizzo del contesto di crittografia per controllare l'accesso alla chiave gestita dal cliente**

 È possibile utilizzare il contesto di crittografia nelle policy delle chiavi e nelle policy IAM come condizioni per controllare l’accesso alla chiave simmetrica gestita dal cliente. 

 Di seguito sono riportati alcuni esempi di istruzioni delle policy della chiave per concedere l’accesso a una chiave gestita dal cliente per un contesto di crittografia specifico. La condizione di questa dichiarazione politica richiede che gli utilizzi delle chiavi KMS abbiano un vincolo di contesto di crittografia che specifica il contesto di crittografia. 

------
#### [ 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"
        }
    ]
}
```

------

## Monitoraggio delle chiavi di crittografia per AWS HealthScribe
<a name="hscribe-monitoring-keys"></a>

Quando utilizzi una chiave gestita AWS Key Management Service dal cliente con AWS HealthScribe, puoi utilizzare AWS CloudTrail or CloudWatch log per tenere traccia delle richieste AWS HealthScribe inviate a AWS KMS.

Gli esempi seguenti sono gli eventi CloudTrail Encrypt e Decrypt che puoi utilizzare per monitorare l' AWS HealthScribe utilizzo della chiave gestita dal cliente.

**Encrypt**

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

**Decrypt**

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