

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

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

 AWS HealthScribe é um recurso de aprendizado de máquina (ML) qualificado pela HIPAA que combina reconhecimento de fala e IA generativa para transcrever conversas entre pacientes e médicos e gerar notas clínicas. easy-to-review AWS HealthScribe ajuda os fornecedores de software de saúde a criar aplicativos clínicos que reduzem a carga de documentação e melhoram a experiência de consulta. O serviço fornece automaticamente transcrições ricas de conversas, identifica as funções do palestrante, classifica diálogos, extrai termos médicos e gera notas clínicas preliminares. AWS HealthScribecombina esses recursos para eliminar a necessidade de integrar e otimizar serviços de IA separados, permitindo que você agilize a implementação. 

Casos de uso comuns:
+ **Reduzir o tempo de documentação**: permita que os médicos concluam rapidamente a documentação clínica com notas clínicas geradas por IA que são fáceis de revisar, ajustar e finalizar em sua aplicação.
+ **Aumentar a eficiência do escrevente médico**: equipe os escreventes médicos com notas clínicas e transcrições geradas por IA, bem como o áudio da consulta, para agilizar o tempo de entrega da documentação.
+ **Resumir com eficiência consultas de pacientes**: crie uma experiência que permita aos usuários relembrar rapidamente os principais destaques de suas conversas na aplicação.

**Importante**  
 Os resultados produzidos por AWS HealthScribe são probabilísticos e nem sempre são precisos devido a vários fatores, incluindo qualidade de áudio, ruído de fundo, clareza do alto-falante, complexidade da terminologia médica, nuances de linguagem específicas do contexto e a [natureza do aprendizado de máquina e da IA generativa](https://aws.amazon.com/machine-learning/responsible-ai/policy/). AWS HealthScribe foi projetado para ser usado como auxiliar por médicos e escribas médicos. AWS HealthScribe a produção só deve ser usada em cenários de atendimento ao paciente, incluindo, mas não se limitando a, como parte dos Registros Eletrônicos de Saúde, após análise da precisão e imposição de um bom julgamento médico por profissionais médicos treinados. AWS HealthScribe a produção não substitui o aconselhamento, diagnóstico ou tratamento médico profissional e não se destina a curar, tratar, mitigar, prevenir ou diagnosticar qualquer doença ou condição de saúde. 

**Topics**
+ [Segurança](#health-scribe-security-overview)
+ [Disponibilidade do serviço](#health-scribe-availability)
+ [Requisitos técnicos](#health-scribe-tech-requirements-overview)
+ [Especialidades médicas compatíveis](#health-scribe-specialties)
+ [Fluxos de trabalho](#health-scribe-workflows)
+ [AWS HealthScribe Arquivo de transcrição](health-scribe-transcript.md)
+ [AWS HealthScribe Arquivo de documentação clínica](health-scribe-insights.md)
+ [Tarefas de transcrição do AWS HealthScribe](health-scribe-job.md)
+ [AWS HealthScribe streaming](health-scribe-streaming.md)
+ [Criptografia de dados em repouso para AWS HealthScribe](health-scribe-encryption.md)

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

AWS HealthScribe opera sob um modelo de responsabilidade compartilhada, em que AWS é responsável por proteger a infraestrutura em execução AWS HealthScribe e você é responsável por gerenciar seus dados. Para obter mais informações, consulte [Modelo de responsabilidade compartilhada da ](https://aws.amazon.com/compliance/shared-responsibility-model/).

 Por padrão, AWS HealthScribe fornece criptografia em repouso para proteger dados confidenciais do cliente usando chaves Amazon S3 gerenciadas. Ao criar um trabalho de AWS HealthScribe transcrição ou iniciar um stream, você pode especificar uma chave gerenciada pelo cliente. Isso adiciona uma segunda camada de criptografia. Para obter mais informações, consulte [Criptografia de dados em repouso para AWS HealthScribe](health-scribe-encryption.md). 

## Disponibilidade do serviço
<a name="health-scribe-availability"></a>

AWS HealthScribe está disponível na região Leste dos EUA (Norte da Virgínia).

## Requisitos técnicos
<a name="health-scribe-tech-requirements-overview"></a>
+ **Idioma compatível:** inglês dos EUA (en-US)
+ **Formato de áudio recomendado:** áudio sem perdas (como FLAC ou WAV)
+ **Codificação:** PCM de 16 bits
+ **Taxa de amostra:** 16.000 Hz ou superior

## Especialidades médicas compatíveis
<a name="health-scribe-specialties"></a>

AWS HealthScribe atualmente suporta as seguintes especialidades:
+ Alergia e imunologia
+ Cardiologia
+ Dermatologia
+ Endocrinologia
+ Gastroenterologia
+ Hematologia/oncologia
+ Infectologia
+ Nefrologia
+ Neurologia
+ Ginecologia/obstetrícia
+ Oncologia
+ Oftalmologia
+ Ortopedia
+ Otorrinolaringologia
+ Medicina da dor
+ Pediatria
+ Atenção primária
+ Psiquiatria
+ Pneumologia
+ Reumatologia
+ Cirurgia
+ Urologia

## Fluxos de trabalho
<a name="health-scribe-workflows"></a>

 AWS HealthScribe os fluxos de trabalho incluem trabalhos de transcrição e streaming. Depois de executar um trabalho de transcrição ou concluir um stream, AWS HealthScribe gera um arquivo de transcrição, com resultados de turn-by-turn transcrição e insights para cada turno de conversa. Além disso, gera um arquivo de documentação clínica, com resumos e links para evidências. Para obter mais informações, consulte [AWS HealthScribe Arquivo de transcrição](health-scribe-transcript.md) e [AWS HealthScribe Arquivo de documentação clínica](health-scribe-insights.md). 
+ Trabalhos de **transcrição — Com trabalhos** de transcrição, AWS HealthScribe analisa arquivos de mídia de consultas médicas preenchidos em um bucket Amazon S3. A seguir estão as operações de API específicas para trabalhos de AWS HealthScribe transcrição. 
  + [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)

  Para obter mais informações, incluindo exemplos de código, consulte [Tarefas de transcrição do AWS HealthScribe](health-scribe-job.md).
+ **Streaming** — o AWS HealthScribe streaming é um serviço bidirecional HTTP2 baseado em tempo real que aceita streaming de áudio em um canal e vende uma transcrição de áudio no outro canal.

  

   A seguir estão as operações de API específicas para 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)

  Para obter mais informações, incluindo exemplos de código, consulte [AWS HealthScribe streaming](health-scribe-streaming.md).

# AWS HealthScribe Arquivo de transcrição
<a name="health-scribe-transcript"></a>

No arquivo de transcrição, além da saída de turn-by-turn transcrição padrão com carimbos de data/hora em nível de palavra, fornece: AWS HealthScribe 
+ **Detecção da função do participante**, para que você possa distinguir os pacientes dos médicos na transcrição da conversa.
+ **Seção de transcrição**, que categoriza os diálogos da transcrição com base na relevância clínica, como conversa trivial, subjetiva, objetiva etc. Isso pode ser usado para mostrar partes específicas da transcrição.
+ **Entidades clínicas**, que incluem informações estruturadas, como medicamentos, condições médicas e tratamentos mencionados na conversa.

Além disso, os seguintes insights são fornecidos para cada turno de conversa:
+ **Função do participante**: cada participante é rotulado como médico ou paciente. Se uma conversa tiver mais de um participante em cada categoria, cada participante receberá um número. Por exemplo, `CLINICIAN_0`, `CLINICIAN_1` e `PATIENT_0`, `PATIENT_1`.
+ **Seção**: cada turno do diálogo é atribuído a uma das cinco seções possíveis com base no conteúdo identificado.
  + **Subjetivo**: informações fornecidas pelo paciente sobre seus problemas de saúde.
  + **Objetivo**: informações observadas pelo médico por meio de exames físicos, laboratoriais, de imagem ou testes de diagnóstico.
  + **Avaliação e plano**: informações relacionadas à avaliação do médico e ao plano de tratamento.
  + **Gerenciamento de fluxo da consulta**: informações relacionadas a conversas triviais ou transições.
+ **Insights** — Extraia entidades clinicamente relevantes (`ClinicalEntity`) presentes na conversa. AWS HealthScribe detecta todas as entidades clínicas apoiadas pelo [Amazon Comprehend](https://aws.amazon.com//comprehend/medical) Medical.

Para ver um exemplo de transcrição de uma tarefa de transcrição, veja o resultado da transcrição em [Exemplos de resultados de tarefas de transcrição](starting-health-scribe-job.md#health-scribe-output-example). Para ver um exemplo de transcrição de streaming, veja o resultado de transcrição em [Exemplos de saída de transcrição de streaming](health-scribe-streaming-setting-up.md#health-scribe-streaming-output-example). 

# AWS HealthScribe Arquivo de documentação clínica
<a name="health-scribe-insights"></a>

AWS HealthScribe pode usar um dos seguintes modelos para o resumo da nota clínica. O padrão é `HISTORY_AND_PHYSICAL`.
+ HISTORY\$1AND\$1PHYSICAL: fornece resumos das principais seções da documentação clínica. Exemplos de seções incluem: queixa principal, histórico da doença atual, revisão de sistemas, histórico médico, avaliação e plano. 
+ GIRPP: fornece resumos com base no progresso do paciente em relação às metas. Exemplos de seções incluem: objetivo, intervenção, resposta, progresso e plano.
+ BIRP: concentra-se nos padrões comportamentais e nas respostas do paciente. Exemplos de seções incluem: comportamento, intervenção, resposta e plano.
+ SIRP: enfatiza o contexto situacional da terapia. Exemplos de seções incluem: situação, intervenção, resposta e plano.
+ DAP: oferece um formato simplificado para documentação clínica. Exemplos de seções incluem: dados, avaliação e plano.
+ BH\$1SOAP: formato de documentação com foco em saúde comportamental. Exemplos de seções incluem: subjetivo, objetivo, avaliação e plano.
+ PH\$1SOAP: formato de documentação com foco na saúde física. Exemplos de seções incluem: subjetivo, objetivo, avaliação e plano.

Para especificar qual modelo usar, faça o seguinte:
+  Para trabalhos de transcrição, especifique o modelo a `NoteTemplate` ser usado na operação `Settings` de sua [StartMedicalScribeJob](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_StartMedicalScribeJob.html)API. [ClinicalNoteGenerationSettings](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_ClinicalNoteGenerationSettings.html) 
+  Para streaming, você especifica o modelo a ser usado no `NoteTemplate` [ClinicalNoteGenerationSettings](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_streaming_ClinicalNoteGenerationSettings.html)`PostStreamAnalyticsSettings`do seu [MedicalScribeConfigurationEvent](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_streaming_MedicalScribeConfigurationEvent.html). 

## Contexto do escriturário médico
<a name="health-scribe-contextual-information"></a>

O objeto `MedicalScribeContext` contém informações contextuais usadas para personalizar a geração de notas clínicas com detalhes específicos do paciente.

O objeto `MedicalScribeContext` inclui os seguintes componentes:
+ **PatientContext**- Contém informações específicas do paciente usadas para personalizar a geração de notas clínicas. Isso inclui:
  + **Pronouns**: os pronomes preferenciais do paciente que você deseja fornecer como contexto para a elaboração da nota clínica. Esses pronomes são usados ​​ao se referir ao paciente nos relatórios clínicos gerados.

Para obter informações sobre como configurar o contexto do escriba médico, consulte [MedicalScribeContext](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_MedicalScribeContext.html).

**Topics**
+ [Contexto do escriturário médico](#health-scribe-contextual-information)
+ [Seções do modelo HISTORY\$1AND\$1PHYSICAL](#health-scribe-history-physical-insights)
+ [Seções do modelo GIRPP](#health-scribe-GIRPP-insights)
+ [Seções do modelo BIRP](#health-scribe-BIRP-insights)
+ [Seções do modelo SIRP](#health-scribe-SIRP-insights)
+ [Seções do modelo DAP](#health-scribe-DAP-insights)
+ [Seções do modelo BH\$1SOAP](#health-scribe-BH-SOAP-insights)
+ [Seções do modelo PH\$1SOAP](#health-scribe-PH-SOAP-insights)

## Seções do modelo HISTORY\$1AND\$1PHYSICAL
<a name="health-scribe-history-physical-insights"></a>

O modelo de insights HISTORY\$1AND\$1PHYSICAL inclui as seções a seguir.


| Seção | Description | 
| --- | --- | 
|  QUEIXA PRINCIPAL  |  Breve descrição do motivo pelo qual o paciente consultou o médico.  | 
|  HISTÓRIA DA DOENÇA ATUAL  |  Notas que fornecem informações sobre a doença do paciente, incluindo referência à gravidade, início, tempo dos sintomas, tratamentos atuais e áreas afetadas.  | 
|  REVISÃO DE SISTEMAS  |  Avaliação dos sintomas relatada pelo paciente em diferentes sistemas corporais.  | 
|  HISTÓRICO MÉDICO  |  Detalha as condições médicas, cirurgias e tratamentos anteriores de um paciente.  | 
|  AVALIAÇÃO  |  Notas que fornecem informações sobre a avaliação do médico sobre a saúde do paciente.  | 
|  PLAN  |  Notas que fazem referência a tratamentos médicos, ajustes no estilo de vida e consultas adicionais.  | 
|  PHYSICAL\$1EXAMINATION  |  Documentação das descobertas do médico com base no exame físico dos sistemas corporais e nos sinais vitais do paciente.  | 
|  PAST\$1FAMILY\$1HISTORY  |  Informações sobre problemas de saúde que são hereditários na família do paciente.  | 
|  PAST\$1SOCIAL\$1HISTORY  |  Detalhes sobre a vida social do paciente, seus hábitos, ocupação e fatores ambientais que afetam sua saúde.  | 
|  DIAGNOSTIC\$1TESTING  |  Resultados e interpretação de exames laboratoriais, exames de imagem e outros procedimentos diagnósticos.  | 

Cada frase presente no `Summary` inclui `EvidenceLinks` que fornecem o `SegmentId` para os diálogos relevantes na transcrição que foram resumidos. Isso ajuda os usuários a validar a precisão do resumo em sua aplicação. Assim como a explicabilidade, fornecer rastreabilidade e transparência para os insights gerados por IA está em consonância com os princípios da IA ​​responsável. Fornecer essas referências, juntamente com as notas de resumo, aos médicos ou escriturários médicos ajuda a fomentar a confiança e a incentivar o uso seguro da IA​em ambientes clínicos.

Para ver um exemplo de um arquivo de documentação clínica de uma tarefa de transcrição, consulte o exemplo de arquivo de documentação clínica em [Exemplos de resultados de tarefas de transcrição](starting-health-scribe-job.md#health-scribe-output-example). Para ver um exemplo de um arquivo de documentação clínica proveniente de streaming, veja o exemplo de arquivo de documentação clínica em [Exemplos de saída de transcrição de streaming](health-scribe-streaming-setting-up.md#health-scribe-streaming-output-example). 

## Seções do modelo GIRPP
<a name="health-scribe-GIRPP-insights"></a>

O modelo de insights do GIRPP inclui as seções a seguir.


| Seção | Description | 
| --- | --- | 
|  Objetivo  |  O problema, desafio ou comportamento identificado que precisa ser abordado por meio de tratamento.  | 
|  Intervenção  |  O tratamento, método ou técnica específica utilizada pelo médico para ajudar o paciente a atingir o objetivo identificado.  | 
|  Resposta  |  Como o paciente respondeu à intervenção, incluindo seu nível de participação, reações e feedback.  | 
|  Progresso  |  A avaliação do médico do progresso em relação às metas do tratamento, incluindo observações sobre a melhora do paciente ou sobre as barreiras encontradas.  | 
|  Plano  |  As próximas etapas do tratamento, incluindo intervenções futuras, tarefas de casa e encaminhamentos.  | 

## Seções do modelo BIRP
<a name="health-scribe-BIRP-insights"></a>

O modelo de insights do BIRP inclui as seções a seguir.


| Seção | Description | 
| --- | --- | 
|  Comportamento  |  Os problemas apresentados pelo paciente e sua resposta ao tratamento.  | 
|  Intervenção  |  O tratamento, método ou técnica específica utilizada pelo médico para ajudar o paciente a atingir o objetivo identificado.  | 
|  Resposta  |  Como o paciente respondeu à intervenção, incluindo seu nível de participação, reações e feedback.  | 
|  Plano  |  As próximas etapas do tratamento, incluindo intervenções futuras, tarefas de casa e encaminhamentos.  | 

## Seções do modelo SIRP
<a name="health-scribe-SIRP-insights"></a>

O modelo de insights do SIRP inclui as seções a seguir.


| Seção | Description | 
| --- | --- | 
|  Situação  |  O problema apresentado pelo paciente e seu objetivo ao buscar terapia.  | 
|  Intervenção  |  O tratamento, método ou técnica específica utilizada pelo médico para ajudar o paciente a atingir o objetivo identificado.  | 
|  Resposta  |  Como o paciente respondeu à intervenção, incluindo seu nível de participação, reações e feedback.  | 
|  Plano  |  As próximas etapas do tratamento, incluindo intervenções futuras, tarefas de casa e encaminhamentos.  | 

## Seções do modelo DAP
<a name="health-scribe-DAP-insights"></a>

O modelo de insights do DAP inclui as seções a seguir.


| Seção | Description | 
| --- | --- | 
|  Dados  |  Os motivos que levaram o paciente a procurar tratamento e informações sobre o paciente.  | 
|  Avaliação  |  O diagnóstico do médico sobre a situação do paciente.  | 
|  Plano  |  As próximas etapas do tratamento, incluindo intervenções futuras, tarefas de casa e encaminhamentos.  | 

## Seções do modelo BH\$1SOAP
<a name="health-scribe-BH-SOAP-insights"></a>

O modelo de insights do BH\$1SOAP inclui as seções a seguir.


| Seção | Description | 
| --- | --- | 
|  Subjetivo  |  Os objetivos do cliente em relação ao tratamento e suas experiências, bem como os problemas atuais e passados.  | 
|  Objetivo  |  Dados e fatos sobre o cliente.  | 
|  Avaliação  |  O diagnóstico do médico sobre a situação do paciente.  | 
|  Plano  |  As próximas etapas do tratamento, incluindo intervenções futuras, tarefas de casa e encaminhamentos.  | 

## Seções do modelo PH\$1SOAP
<a name="health-scribe-PH-SOAP-insights"></a>

O modelo de insights do PH\$1SOAP inclui as seções a seguir.


| Seção | Description | 
| --- | --- | 
|  Subjetivo  |  Os objetivos do cliente em relação ao tratamento e suas experiências, bem como os problemas atuais e passados.  | 
|  Objetivo  |  Dados e fatos sobre o cliente.  | 
|  Avaliação  |  O diagnóstico do médico sobre a situação do paciente.  | 
|  Plano  |  As próximas etapas do tratamento, incluindo intervenções futuras, tarefas de casa e encaminhamentos.  | 

# Tarefas de transcrição do AWS HealthScribe
<a name="health-scribe-job"></a>

Um tarefa de transcrição do AWS HealthScribe processa arquivos de mídia de um bucket do Amazon S3. Ao processar um arquivo de mídia, o programa transcreve as conversas entre paciente e médico e analisa a consulta médica para gerar dois arquivos de saída em formato JSON: um arquivo de [transcrição](https://docs.aws.amazon.com/transcribe/latest/dg/health-scribe-job.html#health-scribe-output-example) e um arquivo de [documentação clínica](https://docs.aws.amazon.com/transcribe/latest/dg/health-scribe-job.html#health-scribe-output-example).

Veja a seguir as operações de API específicas para tarefas de transcrição do 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)

# Iniciar uma tarefa de transcrição do AWS HealthScribe
<a name="starting-health-scribe-job"></a>

Você pode iniciar uma tarefa do AWS HealthScribe usando a AWS CLI ou AWS SDKs.

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

 Este exemplo usa o comando [start-medical-scribe-job](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/transcribe/start-medical-scribe-job.html). Para obter mais informações, consulte [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
```

Veja a seguir outro exemplo usando o comando [start-medical-scribe-job](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/transcribe/start-medical-scribe-job.html) e um corpo de solicitação com configurações adicionais.

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

O arquivo `my-first-medical-scribe-job.json` contém o seguinte corpo de solicitação.

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

 O exemplo a seguir usa o AWS SDK para Python (Boto3) para fazer uma solicitação [start\$1medical\$1scribe\$1job](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/transcribe/client/start_medical_scribe_job.html). Para obter mais informações, consulte [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**  
No momento, o Console de Gerenciamento da AWS não é compatível com trabalhos do AWS HealthScribe.

## Exemplos de resultados de tarefas de transcrição
<a name="health-scribe-output-example"></a>

Além de uma transcrição, as solicitações `StartMedicalScribeJob` geram um arquivo de documentação clínica separado. Ambos os arquivos estão no formato JSON e são armazenados no local de saída especificado na solicitação. Veja exemplos de cada tipo de saída:

### Exemplo de saída de transcrição
<a name="health-scribe-transcript-output"></a>

 Um arquivo de transcrição do AWS HealthScribe (de uma solicitação `StartMedicalScribeJob`) tem o seguinte 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"
      }
    ]
  }
}
```

Veja a seguir outro exemplo usando o comando [start-medical-scribe-job](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/transcribe/start-medical-conversation-intelligence-job.html) e um corpo de solicitação com configurações adicionais.

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

O arquivo `my-first-medical-scribe-job.json` contém o seguinte corpo de solicitação.

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

### Exemplo de saída de documentação clínica
<a name="health-scribe-insights-output"></a>

 Um arquivo de insights de documentação (de uma solicitação `StartMedicalScribeJob`) tem o seguinte 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>

Com o AWS HealthScribe streaming, você pode transcrever conversas médicas em tempo real. AWS HealthScribe streaming é um serviço bidirecional HTTP2 baseado em tempo real que aceita streaming de áudio em um canal e vende uma transcrição de áudio no outro canal. Após a conclusão do streaming, AWS HealthScribe analisa o conteúdo do stream e produz um arquivo JSON de transcrição e um arquivo JSON de nota clínica. 

 Para iniciar o streaming, use a operação [StartMedicalScribeStream](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_streaming_StartMedicalScribeStream.html)da API. Essa API inicia um canal bidirecional HTTP2 baseado que você usa para transmitir eventos de áudio. 

Ao iniciar um fluxo, primeiro especifique a configuração do fluxo em um `MedicalScribeConfigurationEvent`. Esse evento inclui definições de canal, configurações de criptografia e configurações de análise pós-fluxo, como a configuração de saída para geração agregada de transcrições e notas clínicas. 

Após iniciar o streaming de áudio, você gerencia o fluxo da seguinte forma:
+  Quando terminar, para começar a processar os resultados com a análise pós-stream, envie um `MedicalScribeSessionControlEvent` com um `Type` de `END_OF_SESSION` e AWS HealthScribe inicie a análise.
+ Para pausar o streaming, complete o fluxo de entrada sem enviar o `MedicalScribeSessionControlEvent`.
+ Para retomar um fluxo pausado, use a operação de API `StartMedicalScribeStream` e especifique o mesmo `SessionId`. Esse é o `SessionId` que você usou quando iniciou o fluxo originalmente.

**Topics**
+ [Diretrizes e requisitos](#health-scribe-streaming-requirements)
+ [ResourceAccessRoleArn permissões de função](#health-scribe-data-access-role)
+ [Iniciando a transcrição do AWS HealthScribe streaming](health-scribe-streaming-setting-up.md)

## Diretrizes e requisitos
<a name="health-scribe-streaming-requirements"></a>

A seguir estão as diretrizes e os requisitos para AWS HealthScribe streaming:
+ Antes de enviar eventos de áudio, você deve primeiro especificar a configuração do fluxo em um `[MedicalScribeConfigurationEvent](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_streaming_MedicalScribeConfigurationEvent.html)`.
+ Para executar análises pós-fluxo, o `ResourceAccessRoleArn` em seu `MedicalScribeConfigurationEvent` deve ter as permissões corretas. Para obter mais informações, consulte [ResourceAccessRoleArn permissões de função](#health-scribe-data-access-role). 
+ Você pode retomar uma sessão quantas vezes quiser dentro de um período de 5 horas a partir da criação do fluxo inicial.
+ Você pode transmitir no máximo 2 horas de áudio por sessão, considerando todas as solicitações de streaming.
+ Por padrão, AWS HealthScribe fornece criptografia em repouso para proteger dados confidenciais do cliente usando chaves Amazon S3 gerenciadas. Ao iniciar um stream, você pode especificar uma AWS KMS chave para uma segunda camada de criptografia. Você `ResourceAccessRoleArn` deve ter permissão para usar sua AWS KMS chave. Para obter mais informações, consulte [Criptografia de dados em repouso para AWS HealthScribe](health-scribe-encryption.md). 
+ Você pode usar o AWS HealthScribe streaming com o AWS SDKs, exceto o SDK para Python (Boto3) e o SDK para PHP.
+ Se ocorrer uma exceção `LimitExceededException` após o encerramento de um fluxo, você pode reiniciar a sessão e ainda gerar análises pós-fluxo. Para reiniciar o stream, use a [StartMedicalScribeStream](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_streaming_StartMedicalScribeStream.html)API e use a mesma`SessionID`. Em seguida, envie um `MedicalScribeSessionControlEvent` com um `Type` de `END_OF_SESSION` e AWS HealthScribe inicie a análise.

## ResourceAccessRoleArn permissões de função
<a name="health-scribe-data-access-role"></a>

Para executar análises pós-stream, o usuário `ResourceAccessRoleArn` `MedicalScribeConfigurationEvent` deve ser capaz de acessar seu bucket de saída do Amazon S3 e, se você o fornecer, AWS KMS sua chave. Além disso, a política de confiança da função deve conceder permissão ao serviço `transcribe.streaming.amazonaws.com` para assumir a função.

Veja a seguir um exemplo de política do IAM que concede permissões de bucket e permissões de AWS KMS chave do Amazon S3. Para obter mais informações, consulte [Criptografia de dados em repouso para 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"
        }
    ]
}
```

------

Veja a seguir um exemplo de política de confiança.

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

****  

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

------

# Iniciando a transcrição do AWS HealthScribe streaming
<a name="health-scribe-streaming-setting-up"></a>

O exemplo de código a seguir mostra como configurar uma transcrição AWS HealthScribe de streaming usando o. AWS SDKs

**Topics**
+ [SDK para Java 2.x](#health-scribe-java-stream)
+ [Exemplos de saída de transcrição de streaming](#health-scribe-streaming-output-example)

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

 O exemplo a seguir usa o SDK for Java 2.x para configurar o streaming e fazer [StartMedicalScribeStream](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_streaming_StartMedicalScribeStream.html)uma solicitação. 

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

## Exemplos de saída de transcrição de streaming
<a name="health-scribe-streaming-output-example"></a>

 Após a conclusão do streaming, AWS HealthScribe analisa o conteúdo do stream e produz um arquivo JSON de transcrição e um arquivo JSON de nota clínica. Veja exemplos de cada tipo de saída:

### Exemplo de saída de transcrição
<a name="health-scribe-streaming-transcript-output"></a>

 Veja a seguir um exemplo de um arquivo de AWS HealthScribe transcrição de uma sessão de 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"
        }]
    }
}
```

### Exemplo de saída de documentação clínica
<a name="health-scribe-streaming-insights-output"></a>

 Veja a seguir um exemplo de um arquivo de insights de documentação AWS HealthScribe clínica de uma sessão de 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"
  }
}
```

# Criptografia de dados em repouso para AWS HealthScribe
<a name="health-scribe-encryption"></a>

Por padrão, AWS HealthScribe fornece criptografia em repouso para proteger dados confidenciais do cliente usando chaves AWS HealthScribe gerenciadas AWS Key Management Service (AWS KMS). Por padrão, a criptografia de dados em repouso ajuda a reduzir a sobrecarga operacional e a complexidade envolvidas na proteção de dados confidenciais. Isso também permite que você crie aplicações seguras que atendam aos rigorosos requisitos regulatórios e de conformidade de criptografia. Ao criar um trabalho de AWS HealthScribe transcrição ou iniciar um stream, você pode especificar uma chave gerenciada pelo cliente. Isso adiciona uma segunda camada de criptografia. 
+ **AWS HealthScribe AWS KMS chaves gerenciadas** — AWS HealthScribe usa chaves AWS HealthScribe gerenciadas AWS Key Management Service (AWS KMS) por padrão para criptografar automaticamente arquivos intermediários. Não é possível desabilitar essa camada de criptografia nem escolher um tipo de criptografia alternativo. Não é possível visualizar, gerenciar ou usar as chaves, nem auditar seu uso. No entanto, não é necessário realizar nenhuma ação nem alterar qualquer programa para proteger as chaves que criptografam seus dados.
+ **Chaves gerenciadas pelo cliente** — AWS HealthScribe suporta o uso de uma chave simétrica gerenciada pelo cliente que você cria, possui e gerencia para adicionar uma segunda camada de criptografia sobre a criptografia existente de propriedade da AWS. Como você tem controle total dessa camada de criptografia, você pode realizar tarefas como:
  + Estabelecer e manter as políticas de chave
  + Estabelecendo e mantendo IAM políticas e subsídios
  + Habilitar e desabilitar políticas de chaves
  + Alternar os materiais de criptografia de chave
  + Adicionar etiquetas
  + Criar réplicas de chaves
  + Chaves de agendamento para exclusão

  Para obter mais informações, consulte a [chave gerenciada pelo cliente](https://docs.aws.amazon.com//kms/latest/developerguide/concepts.html#customer-cmk) no Guia do AWS Key Management Service desenvolvedor.

**nota**  
AWS HealthScribe ativa automaticamente a criptografia em repouso usando chaves AWS próprias para proteger dados de identificação pessoal sem nenhum custo. No entanto, AWS KMS cobranças são cobradas pelo uso de uma chave gerenciada pelo cliente. Para saber mais sobre preços, consulte [Preços do AWS Key Management Service](https://aws.amazon.com//kms/pricing/).   
 Para obter mais informações sobre AWS KMS, consulte [O que é AWS Key Management Service](https://docs.aws.amazon.com//kms/latest/developerguide/overview.html). 

**Topics**
+ [Criar uma chave gerenciada pelo cliente](health-scribe-encryption-customer.md)
+ [Especificando uma chave gerenciada pelo cliente para AWS HealthScribe](#health-scribe-encryption-managed)
+ [AWS KMS contexto de criptografia](#health-scribe-encryption-context)
+ [Monitorando suas chaves de criptografia para AWS HealthScribe](#hscribe-monitoring-keys)

# Criar uma chave gerenciada pelo cliente
<a name="health-scribe-encryption-customer"></a>

 Você pode criar uma chave simétrica gerenciada pelo cliente usando o Console de gerenciamento da AWS, ou o. AWS KMS APIs Para criar uma chave simétrica gerenciada pelo cliente, siga as etapas para [Criar uma chave simétrica gerenciada pelo cliente](https://docs.aws.amazon.com//kms/latest/developerguide/create-keys.html#create-symmetric-cmk) no Guia do AWS Key Management Service desenvolvedor. 

As políticas de chaves controlam o acesso à chave gerenciada pelo cliente. Cada chave gerenciada pelo cliente deve ter exatamente uma política de chaves, que contém declarações que determinam quem pode usar a chave e como pode usá-la. Ao criar a chave gerenciada pelo cliente, é possível especificar uma política de chave. Para obter mais informações, consulte [Gerenciamento do acesso às chaves gerenciadas pelo cliente](https://docs.aws.amazon.com//kms/latest/developerguide/control-access-overview.html#managing-access) no Guia do AWS Key Management Service desenvolvedor. 

## AWS KMS principais políticas para AWS HealthScribe
<a name="health-scribe-key-policies"></a>

 Se você estiver usando uma chave na mesma conta da IAM função especificada `DataAccessRole` na sua [StartMedicalScribeJob](https://docs.aws.amazon.com//transcribe/latest/APIReference/API_StartMedicalScribeJob.html)ou `ResourceAccessRole` na sua [StartMedicalScribeStream](https://docs.aws.amazon.com/transcribe/latest/APIReference/API_streaming_StartMedicalScribeStream.html)solicitação, não precisará atualizar a Política de chaves. Para usar sua chave gerenciada pelo cliente em uma conta diferente da sua DataAccessRole (para trabalhos de transcrição) ou ResourceAccessRole (para streaming), você deve confiar na respectiva função na Política de Chave para as seguintes ações:
+ [https://docs.aws.amazon.com//kms/latest/APIReference/API_Encrypt.html](https://docs.aws.amazon.com//kms/latest/APIReference/API_Encrypt.html): permite criptografar usando a chave gerenciada pelo cliente
+ [https://docs.aws.amazon.com//kms/latest/APIReference/API_Decrypt.html](https://docs.aws.amazon.com//kms/latest/APIReference/API_Decrypt.html): permite descriptografar usando a chave gerenciada pelo cliente
+ [https://docs.aws.amazon.com//kms/latest/APIReference/API_DescribeKey.html](https://docs.aws.amazon.com//kms/latest/APIReference/API_DescribeKey.html)— Fornece os detalhes da chave gerenciada pelo cliente para permitir AWS HealthScribe a validação da chave

Veja a seguir um exemplo de política de chaves que você pode usar para conceder permissões ResourceAccessRole entre contas para usar sua chave gerenciada pelo cliente para AWS HealthScribe streaming. Para usar essa política para trabalhos de transcrição, atualize o `Principal` para usar o DataAccessRole ARN e remova ou modifique o contexto de criptografia.

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

------

## Permissões de política do IAM para funções de acesso
<a name="health-scribe-key-data-access-role"></a>

 A política do IAM anexada à sua DataAccessRole ou ResourceAccessRole deve conceder permissões para realizar as AWS KMS ações necessárias, independentemente de a chave e a função gerenciadas pelo cliente estarem na mesma conta ou em contas diferentes. Além disso, a política de confiança da função deve conceder AWS HealthScribe permissão para assumir a função.

O exemplo de política do IAM a seguir mostra como conceder ResourceAccessRole permissões para AWS HealthScribe streaming. Para usar essa política em tarefas de transcrição, substitua `transcribe.streaming.amazonaws.com` por `transcribe.amazonaws.com` e remova ou modifique o contexto de criptografia.

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

------

A seguir está um exemplo de política de confiança para ResourceAccessRole o. Para DataAccessRole, substitua `transcribe.streaming.amazonaws.com` por`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:*"
                }
            }
        }
    ]
}
```

------

 Para obter mais informações sobre como [especificar permissões em uma política](https://docs.aws.amazon.com//kms/latest/developerguide/control-access-overview.html#overview-policy-elements) ou [solucionar problemas de acesso por chave](https://docs.aws.amazon.com//kms/latest/developerguide/policy-evaluation.html#example-no-iam), consulte o Guia do AWS Key Management Service desenvolvedor. 

## Especificando uma chave gerenciada pelo cliente para AWS HealthScribe
<a name="health-scribe-encryption-managed"></a>

 Você pode especificar uma chave gerenciada pelo cliente como uma segunda camada de criptografia para tarefas de transcrição ou streaming. 
+ Para trabalhos de transcrição, você especifica sua chave no [OutputEncryptionKMSKeyID](https://docs.aws.amazon.com//transcribe/latest/APIReference/API_StartMedicalScribeJob.html#transcribe-StartMedicalScribeJob-request-OutputEncryptionKMSKeyId) da sua operação de [StartMedicalScribeJob](https://docs.aws.amazon.com//transcribe/latest/APIReference/API_StartMedicalScribeJob.html)API.
+ Para streaming, você especifica a chave [MedicalScribeEncryptionSettings](https://docs.aws.amazon.com//transcribe/latest/APIReference/API_streaming_MedicalScribeEncryptionSettings.html)no seu [MedicalScribeConfigurationEvent](https://docs.aws.amazon.com//transcribe/latest/APIReference/API_streaming_MedicalScribeConfigurationEvent.html). 

## AWS KMS contexto de criptografia
<a name="health-scribe-encryption-context"></a>

 AWS KMS o contexto de criptografia é um mapa de pares chave-valor em texto simples e não secretos. Esse mapa representa dados autenticados adicionais, conhecidos como pares de contexto de criptografia, que fornecem uma camada adicional de segurança para seus dados. AWS HealthScribe exige uma chave de criptografia simétrica para criptografar a AWS HealthScribe saída em um bucket especificado pelo cliente Amazon S3 . Para saber mais, consulte [Asymmetric keys in AWS KMS](https://docs.aws.amazon.com//kms/latest/developerguide/symmetric-asymmetric.html). 

 Ao criar pares de contexto de criptografia, *não* inclua informações confidenciais. O contexto de criptografia não é secreto — ele é visível em texto simples em seus CloudTrail registros (para que você possa usá-lo para identificar e categorizar suas operações criptográficas). O par de contexto de criptografia pode incluir caracteres especiais, como sublinhados (`_`), traços (`-`), barras (`/`, `\`) e dois-pontos (`:`). 

**dica**  
 Pode ser útil relacionar os valores do par de contexto de criptografia aos dados que estão sendo criptografados. Embora não seja obrigatório, recomendamos que você use metadados não confidenciais relacionados ao conteúdo criptografado, como nomes de arquivos, valores de cabeçalho ou campos de banco de dados não criptografados.   
 Para usar a criptografia de saída com a API, defina o parâmetro [KMSEncryptionContext](https://docs.aws.amazon.com//transcribe/latest/APIReference/API_StartMedicalScribeJob.html#transcribe-StartMedicalScribeJob-request-KMSEncryptionContext) na [StartMedicalScribeJob](https://docs.aws.amazon.com//transcribe/latest/APIReference/API_StartMedicalScribeJob.html)operação. Para fornecer contexto de criptografia para a operação de criptografia de saída, o parâmetro [OutputEncryptionKMSKeyId deve fazer referência a uma ID](https://docs.aws.amazon.com//transcribe/latest/APIReference/API_StartMedicalScribeJob.html#transcribe-StartMedicalScribeJob-request-OutputEncryptionKMSKeyId) de AWS KMS chave simétrica.   
Para streaming, você especifica os pares de valores-chave para o `KmsEncryptionContext` [MedicalScribeEncryptionSettings](https://docs.aws.amazon.com//transcribe/latest/APIReference/API_streaming_MedicalScribeEncryptionSettings.html)em seu [MedicalScribeConfigurationEvent](https://docs.aws.amazon.com//transcribe/latest/APIReference/API_streaming_MedicalScribeConfigurationEvent.html).   
 Você pode usar [chaves de AWS KMS condição](https://docs.aws.amazon.com//kms/latest/developerguide/policy-conditions.html#conditions-kms) com IAM políticas para controlar o acesso a uma AWS KMS chave de criptografia simétrica com base no contexto de criptografia usado na solicitação de uma operação [criptográfica](https://docs.aws.amazon.com//kms/latest/developerguide/concepts.html#cryptographic-operations). Para ver um exemplo de política de contexto de criptografia, consulte [AWS KMS encryption context policy](https://docs.aws.amazon.com//transcribe/latest/dg/security_iam_id-based-policy-examples.html#kms-context-policy).   
 O uso do contexto de criptografia é opcional, mas recomendado. Para obter mais informações, consulte [Encryption context](https://docs.aws.amazon.com//kms/latest/developerguide/concepts.html#encrypt_context). 

### AWS HealthScribe contexto de criptografia
<a name="hscribe-context-details"></a>

AWS HealthScribe usa o mesmo contexto de criptografia em todas as operações AWS Key Management Service criptográficas. O contexto de criptografia é um mapeamento de strings para strings que pode ser personalizado para qualquer conteúdo desejado.

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

Para AWS HealthScribe fluxos, o seguinte é o contexto padrão de criptografia gerado pelo serviço. Ele aplica esse contexto a qualquer contexto de criptografia que você fornecer.

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

Para trabalhos de AWS HealthScribe transcrição, o seguinte é o contexto padrão de criptografia gerado pelo serviço. Ele aplica esse contexto a qualquer contexto de criptografia que você fornecer.

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

Se você não fornecer nenhum contexto de criptografia, somente o contexto de criptografia gerado pelo serviço será usado para todas as operações AWS KMS criptográficas.

**Monitoramento AWS HealthScribe com contexto de criptografia**

Ao usar uma chave simétrica gerenciada pelo cliente para criptografar seus dados em repouso AWS HealthScribe, você também pode usar o contexto de criptografia nos registros e registros de auditoria para identificar como a chave gerenciada pelo cliente está sendo usada. O contexto de criptografia também aparece nos registros gerados por AWS CloudTrail ou CloudWatch Logs.

**Uso do contexto de criptografia para controlar o acesso à chave gerenciada pelo cliente**

 Você pode usar o contexto de criptografia nas políticas de chave e políticas do IAM como condições para controlar o acesso à sua chave simétrica gerenciada pelo cliente. 

 Veja a seguir exemplos de declarações de políticas de chave para conceder acesso a uma chave gerenciada pelo cliente para um contexto de criptografia específico. A condição nesta declaração de política exige que os usos da chave do KMS tenham uma restrição de contexto de criptografia que especifique o contexto de criptografia. 

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

------

## Monitorando suas chaves de criptografia para AWS HealthScribe
<a name="hscribe-monitoring-keys"></a>

Ao usar uma chave gerenciada pelo AWS Key Management Service cliente com AWS HealthScribe, você pode usar AWS CloudTrail CloudWatch ou registrar para rastrear solicitações AWS HealthScribe enviadas para AWS KMS o.

Os exemplos a seguir são eventos de CloudTrail criptografia e descriptografia que você pode usar e que permitem monitorar como os AWS HealthScribe usos da chave gerenciada pelo cliente são gerenciados.

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