View a markdown version of this page

Documentação ambiental - Amazon Connect Health

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á.

Documentação ambiental

A documentação ambiental captura conversas entre pacientes e médicos em tempo real e gera documentação clínica estruturada para análise do profissional. O serviço combina reconhecimento de fala com IA generativa para produzir notas clínicas, extrair terminologia médica, identificar as funções do palestrante e classificar segmentos de diálogo.

Importante

A documentação ambiental do Amazon Connect Health produz resultados probabilísticos. A precisão da saída varia de acordo com a qualidade do áudio, o ruído de fundo, a nitidez do alto-falante, a complexidade da terminologia médica e a linguagem específica do contexto. Todos os resultados devem ser revisados quanto à precisão por um profissional médico treinado antes do uso no atendimento ao paciente.

A documentação ambiental do Amazon Connect Health está disponível nas regiões Leste dos EUA (Norte da Virgíniaus-east-1) () e Oeste dos EUA (Oregon) (us-west-2).

Como funciona a documentação ambiental

A documentação do ambiente usa streaming de áudio em tempo real por HTTP/2 ou WebSocket. O fluxo de trabalho inclui:

  1. Crie uma assinatura — Associe um provedor ao agente de documentação ambiental. As assinaturas são criadas automaticamente no modo ativado.

  2. Transmita áudio — Seu aplicativo transmite áudio da conversa entre paciente e médico para o Amazon Connect Health por ou. HTTP/2 WebSocket O serviço transcreve o áudio em tempo real e identifica os alto-falantes.

  3. Gere documentação — Após o término da conversa, o serviço gera notas clínicas estruturadas, mapeamentos de evidências e um resumo após a visita com base no modelo configurado.

  4. Recupere os resultados — O serviço grava a transcrição, a documentação clínica e o resumo após a visita em seu bucket Amazon S3 configurado.

Requisitos técnicos

  • Idioma suportado — inglês dos EUA (en-US)

  • Formatos de áudio suportados — FLAC, PCM

  • Codificação — PCM de 16 bits

  • Taxa de amostragem — 16.000 Hz ou superior

Especialidades médicas apoiadas

Atualmente, a documentação ambiental suporta as seguintes especialidades:

  • Alergia e imunologia

  • Cardiologia

  • Dermatologia

  • Endocrinologia

  • Gastroenterologia

  • Hematology/Oncology

  • Infectologia

  • Nefrologia

  • Neurologia

  • Ginecologia/obstetrícia

  • Oncologia

  • Oftalmologia

  • Ortopedia

  • Otorrinolaringologia

  • Medicina da dor

  • Pediatria

  • Atenção primária

  • Psiquiatria

  • Pneumologia

  • Reumatologia

  • Cirurgia

  • Urologia

A documentação ambiental do Amazon Connect Health usa IA para capturar e transcrever conversas clínicas em tempo real. Como esse recurso grava comunicações faladas que podem conter informações de saúde protegidas (PHI), os clientes e seus integradores posteriores são responsáveis por cumprir todas as leis de consentimento, gravação e privacidade aplicáveis. Isso inclui a obtenção de todos os consentimentos legalmente exigidos antes de habilitar a documentação ambiental para qualquer encontro com o paciente. A AWS não coleta o consentimento dos pacientes em seu nome.

O consentimento apropriado deve ser obtido de cada paciente e de qualquer pessoa presente na sala quando a documentação do ambiente for usada. Como parte da obtenção do consentimento, os pacientes devem ser informados de que a visita será registrada e usada por um provedor de serviços de IA para criar anotações clínicas, que suas informações poderão ser compartilhadas com os prestadores de serviços e que eles podem recusar sem qualquer impacto em seus cuidados. Clientes e integradores devem manter registros do consentimento do paciente, de acordo com a legislação estadual aplicável e as políticas internas de retenção. Os clientes devem garantir que o consentimento seja obtido de acordo com as práticas de privacidade de sua organização.

Idioma de amostra:

“Antes de começarmos, quero que você saiba que a visita de hoje será registrada e monitorada por um provedor de serviços de IA para ajudar na documentação. Você concorda em continuar?”

Gerenciamento de assinaturas

Criar uma assinatura

Para criar uma assinatura, chame a operação CreateSubscription da API. Isso gera um exclusivo subscriptionId que você usa para autorizar o usuário e iniciar sessões de streaming. As assinaturas são criadas automaticamente no modo ativado.

dica

Crie a assinatura no primeiro uso do usuário para alinhar o início da assinatura com o uso real.

Desativar uma assinatura

Para impedir temporariamente que uma assinatura aceite novas sessões de streaming, chame a operação DeactivateSubscription da API. Uma assinatura desativada mantém sua configuração e pode ser reativada posteriormente. In-progress os fluxos são concluídos normalmente.

Importante

A desativação de uma assinatura perde imediatamente qualquer período de teste gratuito restante. Se uma assinatura que foi desativada durante um teste gratuito for reativada posteriormente, ela será reativada como uma assinatura paga.

Reativar uma assinatura

As assinaturas desativadas podem ser reativadas chamando a operação da ActivateSubscription API com o. subscriptionId A medição paga começa imediatamente após a reativação.

Streaming de áudio

A documentação do ambiente processa o áudio em tempo real por meio de uma conexão de streaming. Seu aplicativo abre uma conexão, envia trechos de áudio como mensagens codificadas por eventos e recebe os resultados da transcrição à medida que a conversa progride. A documentação do ambiente oferece suporte a dois transportes de streaming: HTTP/2 e WebSocket ()wss://. Ambos os transportes oferecem a mesma capacidade, com os mesmos requisitos de autenticação e autorização, cotas e limitação. O comportamento da sessão — criação, streaming e encerramento — é idêntico nos dois transportes.

nota

Uma sessão está vinculada ao transporte no qual foi iniciada. Você não pode iniciar uma sessão em um transporte e retomá-la no outro. Se você pausar e retomar uma sessão, a sessão retomada deverá usar o mesmo transporte que iniciou a sessão.

Se o áudio tiver dois canais, você poderá usar a identificação do canal para transcrever a fala de cada canal separadamente. Atualmente, a documentação do ambiente suporta áudio com até dois canais. Na transcrição, são atribuídos os rótulos ch_0 e ch_1 aos canais.

Além das seções de transcrição padrão (transcrições e itens), as solicitações com identificação de canal ativada incluem uma seção channel_labels. Essa seção contém cada enunciado ou sinal de pontuação, agrupado por canal, e o rótulo do canal, os carimbos de data e hora e a pontuação de confiança correspondentes. Observe que, se uma pessoa em um canal falar ao mesmo tempo que uma pessoa em um canal distinto, os registros de data e hora de cada canal vão se sobrepor enquanto a fala de ambas se sobrepuser.

Transmitindo por HTTP/2

HTTP/2 é o transporte de streaming usado pelos SDKs da AWS e é adequado para aplicativos nativos e do lado do servidor. Seu aplicativo estabelece uma HTTP/2 conexão, envia trechos de áudio e eventos de controle como mensagens de fluxo de eventos e recebe eventos de transcrição em tempo real pela mesma conexão. Quando você usa um SDK da AWS, o SDK gerencia a configuração da conexão, a assinatura da solicitação e a codificação do fluxo de eventos para você.

Para obter a configuração detalhada do HTTP/2 streaming e a codificação do fluxo de eventos, consulte a Referência da API Amazon Connect Health.

Uso dos AWS SDKs

O exemplo de código a seguir mostra como configurar uma sessão de streaming de documentação ambiental do Amazon Connect Health usando o AWS SDK for Java 2.x.

package com.example.connecthealth; 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.http.nio.netty.NettyNioAsyncHttpClient; import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.connecthealth.ConnectHealthAsyncClient; import software.amazon.awssdk.services.connecthealth.model.*; 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.UUID; import java.util.concurrent.CompletableFuture; public class MedicalScribeStreamingApp { private static final int CHUNK_SIZE_IN_BYTES = 6400; private static final int SAMPLE_RATE = 16000; private static final Region REGION = Region.US_WEST_2; private static final String SESSION_ID = UUID.randomUUID().toString(); private static final String DOMAIN_ID = "your-domain-id"; private static final String SUBSCRIPTION_ID = "your-subscription-id"; private static final String OUTPUT_S3_URI = "s3://your-bucket/output/"; private static ConnectHealthAsyncClient client; public static void main(String[] args) { client = ConnectHealthAsyncClient.builder() .credentialsProvider(getCredentials()) .httpClientBuilder(NettyNioAsyncHttpClient.builder()) .region(REGION) .build(); try { StartMedicalScribeListeningSessionRequest request = StartMedicalScribeListeningSessionRequest.builder() .sessionId(SESSION_ID) .domainId(DOMAIN_ID) .subscriptionId(SUBSCRIPTION_ID) .languageCode(MedicalScribeLanguageCode.EN_US) .mediaSampleRateHertz(SAMPLE_RATE) .mediaEncoding(MedicalScribeMediaEncoding.PCM) .build(); MedicalScribeInputStream endSessionEvent = MedicalScribeInputStream.sessionControlEventBuilder() .type(MedicalScribeSessionControlEventType.END_OF_SESSION) .build(); CompletableFuture<Void> result = client.startMedicalScribeListeningSession( request, new AudioStreamPublisher( getStreamFromMic(), getConfigurationEvent(), endSessionEvent ), getResponseHandler() ); result.get(); client.close(); } catch (Exception e) { System.err.println("Error occurred: " + e.getMessage()); e.printStackTrace(); } } private static AudioInputStream getStreamFromMic() throws LineUnavailableException { AudioFormat format = new AudioFormat(SAMPLE_RATE, 16, 1, true, false); DataLine.Info info = new DataLine.Info(TargetDataLine.class, format); if (!AudioSystem.isLineSupported(info)) { throw new LineUnavailableException("Microphone line not supported"); } TargetDataLine line = (TargetDataLine) AudioSystem.getLine(info); line.open(format); line.start(); 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); monitorThread.start(); return new AudioInputStream( new BufferedInputStream(new AudioInputStream(line)), format, AudioSystem.NOT_SPECIFIED ); } private static AwsCredentialsProvider getCredentials() { return DefaultCredentialsProvider.create(); } private static StartMedicalScribeListeningSessionResponseHandler getResponseHandler() { return StartMedicalScribeListeningSessionResponseHandler.builder() .onResponse(r -> { System.out.println("Session started: " + r.sessionId()); System.out.println("Domain ID: " + r.domainId()); System.out.println("Subscription ID: " + r.subscriptionId()); System.out.println("Request ID: " + r.requestId()); }) .onError(e -> { System.err.println("Stream error: " + e.getMessage()); e.printStackTrace(); }) .onComplete(() -> { System.out.println("=== Stream completed successfully ==="); }) .subscriber(event -> { if (event instanceof MedicalScribeTranscriptEvent) { MedicalScribeTranscriptSegment segment = ((MedicalScribeTranscriptEvent) event).transcriptSegment(); if (segment != null && segment.content() != null) { System.out.printf("[%s][Channel %s] %s%n", segment.isPartial() ? "PARTIAL" : "FINAL", segment.channelId(), segment.content() ); } } }) .build(); } private static MedicalScribeConfigurationEvent getConfigurationEvent() { return MedicalScribeConfigurationEvent.builder() .postStreamActionSettings( MedicalScribePostStreamActionSettings.builder() .outputS3Uri(OUTPUT_S3_URI) .clinicalNoteGenerationSettings( ClinicalNoteGenerationSettings.builder() .noteTemplateSettings( NoteTemplateSettings.fromManagedTemplate( ManagedTemplate.builder() .templateType(ManagedNoteTemplate.SOAP) .build() ) ) .build() ) .build() ) .channelDefinitions(Arrays.asList( MedicalScribeChannelDefinition.builder() .channelId(0) .participantRole(MedicalScribeParticipantRole.CLINICIAN) .build(), MedicalScribeChannelDefinition.builder() .channelId(1) .participantRole(MedicalScribeParticipantRole.PATIENT) .build() )) .build(); } private static class AudioStreamPublisher implements Publisher<MedicalScribeInputStream> { private final InputStream audioInputStream; private final MedicalScribeConfigurationEvent configEvent; private final MedicalScribeInputStream endSessionEvent; private AudioStreamPublisher( AudioInputStream audioInputStream, MedicalScribeConfigurationEvent 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() { Flowable<MedicalScribeInputStream> configFlow = Flowable.just( MedicalScribeInputStream.fromConfigurationEvent(configEvent) ); 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.fromAudioEvent( MedicalScribeAudioEvent.builder() .audioChunk(SdkBytes.fromByteArray(audioData)) .build() ); emitter.onNext(audioEvent); } emitter.onComplete(); } catch (IOException e) { emitter.onError(e); } }, BackpressureStrategy.BUFFER); Flowable<MedicalScribeInputStream> endFlow = Flowable.just(endSessionEvent); return Flowable.concat(configFlow, audioFlow, endFlow); } } }

Transmitindo por WebSocket

WebSocket O suporte permite que você transmita áudio para documentação do ambiente a partir de um navegador da web ou de outro WebSocket cliente. Todas as WebSocket conexões usam TLS (wss://).

WebSocket endpoint

Conecte-se ao WebSocket endpoint da região em que você usa a documentação do ambiente:

Região Endpoint

US-EAST-1

wss://streaming.health-agent.us-east-1.api.aws/medical-scribe-stream-websocket

US-WEST-2

wss://streaming.health-agent.us-west-2.api.aws/medical-scribe-stream-websocket

Autenticando uma conexão WebSocket

Você autentica uma WebSocket conexão com um URL pré-assinado. Para criar a URL pré-assinada, assine uma GET solicitação no WebSocket endpoint com o AWS Signature versão 4 (SigV4) e incorpore os parâmetros de assinatura (X-Amz-Algorithm,,, X-Amz-Credential X-Amz-Date X-Amz-ExpiresX-Amz-Signature, eX-Amz-SignedHeaders) e os parâmetros da sessão como parâmetros da sequência de caracteres de consulta. O serviço valida o URL pré-assinado quando a conexão é estabelecida. Se o URL pré-assinado for inválido, expirado ou não autorizado, o serviço rejeitará a sessão retornando um erro e fechando a conexão.

O valor máximo X-Amz-Expires é de 60 segundos (1 minuto). Depois que a conexão é estabelecida, a assinatura do URL pré-assinado se torna a assinatura inicial usada para assinar cada quadro de fluxo de eventos subsequente, fornecendo autorização contínua durante a vida útil da conexão.

Nenhuma nova ação do IAM é necessária para WebSocket. O serviço autoriza WebSocket conexões com a mesma health-agent:StartMedicalScribeListeningSession permissão usada para HTTP/2 streaming.

O exemplo a seguir mostra o formato de um WebSocket URL pré-assinado. Quebras de linha são adicionadas para legibilidade.

wss://streaming.health-agent.us-west-2.api.aws/medical-scribe-stream-websocket ?X-Amz-Algorithm=AWS4-HMAC-SHA256 &X-Amz-Credential=<access-key>/<date>/<region>/health-agent/aws4_request &X-Amz-Date=<ISO8601-datetime> &X-Amz-Expires=60 &X-Amz-Security-Token=<session-token> &X-Amz-SignedHeaders=host &X-Amz-Signature=<signature>

Assinatura de quadros de fluxo de eventos

Cada quadro de fluxo de eventos que você envia após a atualização — configuração, áudio e controle de sessão — deve ser assinado individualmente. Cada quadro carrega dois cabeçalhos de fluxo de eventos: :date (o carimbo de data/hora da assinatura) e :chunk-signature (a assinatura do quadro). As assinaturas de quadros formam uma cadeia: cada assinatura é calculada a partir da assinatura do quadro anterior e a primeira cadeia de quadros a partir do X-Amz-Signature valor na URL pré-assinada.

Para assinar um quadro, crie uma string para assinar usando o AWS4-HMAC-SHA256-PAYLOAD algoritmo e, em seguida, calcule um HMAC-SHA256 over com uma chave de assinatura SigV4 derivada da data da solicitação, região e serviço. health-agent A string a ser assinada tem o seguinte formato:

AWS4-HMAC-SHA256-PAYLOAD <date> # signing time, ISO 8601 basic format (YYYYMMDDTHHMMSSZ) <date-stamp>/<region>/health-agent/aws4_request <prior-signature> # hex; for the first frame, the X-Amz-Signature from the presigned URL <hashed-headers> # SHA-256 hex digest of the encoded :date header <hashed-payload> # SHA-256 hex digest of the frame payload

Calcule a assinatura e anexe-a ao quadro:

  1. signature = HMAC-SHA256(signingKey, stringToSign), codificado como uma string hexadecimal.

  2. Adicione os :chunk-signature cabeçalhos :date e ao quadro e envie-o.

  3. Armazene isso signature e use-o como o <prior-signature> ao assinar o próximo quadro.

A chave de assinatura é derivada da mesma forma que para qualquer solicitação SigV4: encadeie o carimbo HMAC-SHA256 de data, região, nome do serviço (health-agent) eaws4_request, começando com sua chave de acesso secreta prefixada com. AWS4

Enviando áudio WebSocket

Depois que a conexão for estabelecida, envie a configuração da sessão e transmita o áudio como eventos de áudio binários. Cada um binaryAudioEvent carrega um pedaço de bytes PCM ou FLAC brutos. O serviço retorna eventos de transcrição pela mesma conexão em tempo real. Para finalizar a sessão, envie um evento de controle de END_OF_SESSION sessão.

WebSocket recomendações de clientes

O serviço sinaliza o fim de uma sessão enviando um quadro WebSocket fechado. Projete seu cliente para lidar com o fechamento da conexão com elegância:

  • Aguarde até que o servidor feche o quadro antes de fechar a conexão. Depois de enviarEND_OF_SESSION, o serviço envia todos os resultados finais da transcrição e, em seguida, um quadro fechado. Se um envio falhar ou ocorrer um erro, o serviço poderá enviar um quadro de erro estruturado seguido por um quadro fechado. Fechar a conexão imediatamente pode descartar essas mensagens finais, então espere que o servidor feche a conexão.

  • Use o código de status de fechamento para determinar o resultado. Um código de fechamento de 1000 (Encerramento normal) indica que a sessão foi concluída com êxito. Qualquer outro código de fechamento indica um erro, e o motivo do fechamento fornece detalhes adicionais.

  • Aplique um tempo limite limitado como proteção. Para evitar esperar indefinidamente se a conexão parar de responder, feche a conexão após um período de carência razoável se nenhum quadro de fechamento do servidor for recebido.

Os SDKs da AWS não oferecem suporte para WebSocket streaming. Para transmitir WebSocket, conecte-se diretamente ao endpoint conforme descrito nesta seção. A referência da API Amazon Connect Health documenta as operações da API e seus parâmetros de solicitação e resposta, que se aplicam a ambos os transportes.

Armazenamento

Um local de armazenamento S3 deve ser especificado no início de uma sessão. Os artefatos de saída são armazenados no seguinte local base:

s3://{customer-provided-uri}/health-agent-listening-session/{domainId}/{subscriptionId}/{sessionId}/post-stream-action/

As notas clínicas são armazenadas em uma clinical-notes pasta nesse local base.

Contexto do paciente

O contexto do paciente fornece ao agente o histórico clínico antes da conversa por meio do parâmetro encounterContext API. O encounterContext objeto contém o campounstructuredContext, que aceita até 10 KB de dados de texto para cada sessão. Quando você inclui o contexto do paciente, o agente o usa para enriquecer a documentação gerada com informações básicas que não foram explicitamente discutidas durante a visita.

O contexto do paciente pode incluir:

  • Notas de encontros anteriores e resumos de visitas

  • Listas de medicamentos ativos

  • Listas de problemas e diagnósticos

  • Alergias e imunizações

  • Relatórios laboratoriais e de imagem relevantes

  • Histórico cirúrgico e familiar

  • Pronomes preferidos do paciente, usados ao se referir ao paciente na produção clínica gerada

O contexto é usado em toda a nota gerada para melhorar a especificidade e a precisão quando as informações necessárias não estão presentes apenas na transcrição, com mapeamento de evidências para materiais de origem para revisão clínica.

nota

O exemplo a seguir usa dados fictícios de pacientes apenas para fins ilustrativos.

Exemplo de contexto do paciente

## Patient Information Name: Patricia Underwood Age: 28 years Sex: female Pronouns: she/her MEDICATIONS: Ondansetron 4mg PO PRN - Nausea/vomiting Dicyclomine 20mg PO BID PRN - Abdominal cramping Sertraline 50mg PO daily - Depression Ferrous sulfate 325mg PO TID - Iron deficiency anemia ALLERGIES: NKDA (No Known Drug Allergies) PAST MEDICAL HISTORY: Brainstem pilocytic astrocytoma diagnosed 04/2010 Posterior fossa craniotomy with gross total resection 05/12/2010 Hyperprolactinemia diagnosed 08/2013 Autoimmune hemolytic anemia diagnosed 12/2012 Splenomegaly secondary to autoimmune hemolytic anemia 01/2013 Major depressive disorder diagnosed 08/2012 Substance use disorder (heroin) in sustained remission since 04/2011 Tobacco use disorder, quit 09/15/2013 (10 pack-year history) Iron deficiency anemia diagnosed 01/2013 Gastroesophageal reflux disease diagnosed 05/2013 Appendectomy 07/23/2009 (uncomplicated laparoscopic) Wisdom teeth extraction 11/08/2008 FAMILY HISTORY: Maternal grandmother: Cervical cancer, ovarian cancer, dementia/Alzheimer's Maternal aunt: Cervical cancer Paternal grandfather: Type 2 diabetes, hypertension, kidney transplant Maternal great-grandfather: Colon cancer Multiple maternal great-uncles: Colon cancer No family history of breast, uterine, or cardiac disease SOCIAL HISTORY: Tobacco: Former smoker, quit 09/15/2013 (10 pack-year history) Alcohol: Not documented Illicit drugs: History of IV heroin use, abstinent since 04/2011, occasional marijuana use Sexual history: Single, sexually active, monogamous relationship since 05/2012 Previous relationship with military personnel ended 03/2012 Employment: Lives independently, employed Contraception: Not currently using Former plasma donor, discontinued 10/2013 due to positive syphilis screening PROBLEM LIST: History of brainstem pilocytic astrocytoma (C71.7) - Diagnosed 04/2010 with posterior fossa craniotomy and gross total resection 05/12/2010. Annual MRI surveillance shows post-surgical changes, no residual tumor. Most recent MRI 10/18/2013 normal. Followed by neurology with annual visits. Hyperprolactinemia (E22.1) - Diagnosed 08/2013 with prolactin 45.2 ng/mL (normal <25). Referred to neurology for pituitary evaluation. Recent MRI 10/18/2013 shows normal pituitary gland. Not currently on treatment. Neurology follow-up scheduled. Autoimmune hemolytic anemia with splenomegaly (D59.1) - Diagnosed 12/2012-01/2013. Positive direct Coombs test, elevated LDH 420 U/L, low haptoglobin <10 mg/dL, reticulocyte count 8.2%. Associated splenomegaly. Managed by primary care physician. On iron supplementation for concurrent iron deficiency. Major depressive disorder, mild (F32.0) - Diagnosed 08/2012. Started sertraline 50mg daily 09/08/2012 with good response. Stable mood, no current suicidal ideation. Continues on current regimen. Substance use disorder (heroin), in sustained remission (F11.21) - History of IV drug use, abstinent since 04/2011. Not currently in formal treatment program. Maintains abstinence, occasional marijuana use. Iron deficiency anemia (D50.9) - Diagnosed 01/2013 concurrent with autoimmune hemolytic anemia. Started ferrous sulfate 325mg TID 01/14/2013. Recent Hgb 9.8 g/dL, Hct 29%, MCV 102 fL. Gastroesophageal reflux disease (K21.9) - Diagnosed 05/2013. Managed with lifestyle modifications. Symptoms of nausea and vomiting, taking ondansetron and dicyclomine PRN. RECENT LABS (Various dates 2013): Prolactin: 45.2 ng/mL (08/22/2013, elevated) CBC: Hgb 9.8, Hct 29%, MCV 102 fL (10/28/2013) Direct Coombs: Positive (01/14/2013) LDH: 420 U/L, Haptoglobin <10 mg/dL (01/14/2013) MRI brain with contrast: Normal pituitary, post-surgical changes only (10/18/2013) Pap smear: Normal cytology, HPV negative (11/15/2012) Mammogram: BI-RADS 1, normal (02/28/2013)

Modelos de notas clínicas

Os modelos definem a estrutura, as seções e as regras de formatação que o agente segue ao gerar documentação clínica. Você deve especificar um formato de saída passando um objeto de configuração para o parâmetro da noteTemplateSettings API em cada sessão. A documentação do ambiente oferece suporte a dois métodos para especificar o formato de saída: modelos gerenciados ou modelos personalizados.

Modelos gerenciados

A documentação do ambiente fornece sete modelos de notas pré-criados. O objeto de configuração para modelos gerenciados,managedTemplate, especifica o modelo por meio do templateType parâmetro. O modelo padrão é HISTORY_AND_PHYSICAL.

Modelo Description Caso de uso

HISTORY_AND_PHYSICAL (padrão)

Resumos das principais seções de documentação clínica

Encontros gerais de saúde física

SABONETE FÍSICO

Formato SOAP focado na saúde física

Encontros de saúde física usando a estrutura SOAP

SABONETE COMPORTAMENTAL

Formato SOAP focado na saúde comportamental

Encontros de saúde comportamental usando a estrutura SOAP

EMPUNHADURA

Progress-toward-goals formato

Saúde comportamental — acompanhando o progresso do paciente

ARROTO

Padrões comportamentais e formato de respostas

Saúde comportamental — documentando padrões comportamentais

XAROPE

Contexto situacional do formato terapêutico

Saúde comportamental — enfatizando o contexto situacional

TOUCA

Formato simplificado de documentação clínica

Encontros breves ou focados

seções HISTORY_AND_PHYSICAL

Seção Description

QUEIXA PRINCIPAL

Breve descrição do motivo do paciente para visitar o médico

HISTÓRIA DA DOENÇA ATUAL

Informações sobre a doença do paciente, incluindo gravidade, início, tempo, tratamentos atuais e áreas afetadas

REVISÃO DE SISTEMAS

Patient-reported avaliação dos sintomas em diferentes sistemas corporais

HISTÓRICO MÉDICO

Condições médicas, cirurgias e tratamentos anteriores

HISTÓRIA FAMILIAR PASSADA

Condições de saúde que ocorrem na família do paciente

HISTÓRIA SOCIAL PASSADA

Vida social, hábitos, ocupação e fatores ambientais que afetam a saúde

EXAME FÍSICO

Descobertas do médico a partir do exame físico dos sistemas corporais e dos sinais vitais

TESTE DE DIAGNÓSTICO

Resultados e interpretações de exames laboratoriais, estudos de imagem e outros procedimentos diagnósticos

AVALIAÇÃO

Avaliação do médico sobre a saúde do paciente

PLAN

Clinician-recommended tratamentos médicos, ajustes no estilo de vida e consultas adicionais

Seções PHYSICAL_SOAP e BEHAVIORAL_SOAP

Seção Description

Subjetivo

Os objetivos, experiências e problemas existentes e passados do paciente

Objetivo

Dados e fatos sobre o paciente

Avaliação

O diagnóstico do médico sobre a situação do paciente

Plano

Clinician-recommended próximas etapas do tratamento, incluindo futuras intervenções e encaminhamentos

nota

PHYSICAL_SOAP é otimizado para documentação de saúde física. BEHAVIORAL_SOAP é otimizado para documentação de saúde comportamental. Ambos compartilham a mesma estrutura de seção.

Seções GIRPP

Seção Description

Objetivo

O problema, desafio ou comportamento identificado a ser abordado por meio do tratamento

Intervenção

O tratamento, método ou técnica específicos usados pelo médico

Resposta

Como o paciente respondeu à intervenção, incluindo nível de participação e feedback

Progresso

A avaliação do médico sobre o movimento em direção às metas de tratamento

Plano

Clinician-recommended próximas etapas do tratamento, incluindo futuras intervenções, trabalhos de casa e encaminhamentos

Seções BIRP

Seção Description

Comportamento

Os problemas que o paciente apresenta e sua resposta ao tratamento

Intervenção

O tratamento, método ou técnica específicos usados pelo médico

Resposta

Como o paciente respondeu à intervenção

Plano

Próximas etapas do tratamento

Seções SIRP

Seção Description

Situação

O problema que o paciente apresenta e seu objetivo de buscar terapia

Intervenção

O tratamento, método ou técnica específicos usados pelo médico

Resposta

Como o paciente respondeu à intervenção

Plano

Clinician-recommended próximos passos no tratamento

Seções DAP

Seção Description

Dados

Os motivos do paciente para procurar tratamento e informações sobre o paciente

Avaliação

O diagnóstico do médico sobre a situação do paciente

Plano

Clinician-recommended próximos passos no tratamento

Modelos personalizados

A documentação do ambiente usa um modelo de personalização de duas camadas: Especificação básica e de saída. Essas duas camadas são gerenciadas em um objeto de configuração,customTemplate. O objeto customTemplate de configuração contém dois parâmetros: templateType define o modelo base e templateInstructions contém a especificação de saída.

A Base (templateType) define a estrutura organizacional dos fatos clínicos detectados durante a conversa. Os seguintes modelos básicos são compatíveis:

Base Description Caso de uso

HISTÓRIA E FÍSICA

Resumos das principais seções de documentação clínica

Encontros gerais de saúde física

SABONETE COMPORTAMENTAL

Formato SOAP focado na saúde comportamental

Encontros de saúde comportamental usando a estrutura SOAP

EMPUNHADURA

Progress-toward-goals formato

Saúde comportamental — acompanhando o progresso do paciente

ARROTO

Padrões comportamentais e formato de respostas

Saúde comportamental — documentando padrões comportamentais

XAROPE

Contexto situacional do formato terapêutico

Saúde comportamental — enfatizando o contexto situacional

TOUCA

Formato simplificado de documentação clínica

Encontros breves ou focados

O objeto Especificação de Saída (templateInstructions) é organizado como uma matriz de instruções, com uma sectionHeader que define o nome da seção e sectionInstructions combina instruções e um modelo para essa seção.

As instruções de personalização podem incluir três tipos de diretivas:

  • Instruções detalhadas — Controle a concisão ou a elaboração do conteúdo. Exemplo: “Descreva a reclamação principal em uma frase ou menos”.

  • Instruções de uso do modelo — direcione como o agente lida com o desalinhamento entre o modelo e o conteúdo do encontro. Exemplo: “Siga exatamente o modelo: se os dados solicitados não estiverem disponíveis, escreva INFORMAÇÕES NÃO ENCONTRADAS”.

  • Instruções de estilo — Especifique os requisitos de formatação, terminologia e raciocínio. Exemplo: “Use problemas numerados na seção Avaliação”.

Os modelos podem ser fornecidos como texto com espaços reservados, esquemas JSON estruturados ou exemplos de notas anteriores.

Método Description Use quando

Modelo de texto com espaços reservados

Um modelo com cabeçalhos de seção e campos de espaço reservado (como<chief_complaint>) que o agente preenche a partir do encontro

Você quer um controle preciso sobre o layout da seção e o posicionamento do conteúdo

Modelo JSON estruturado

Um esquema JSON que define campos, aninhamento e regras de formatação por campo

Seu EHR requer saída de dados estruturada em vez de prosa

Exemplo de nota anterior

Uma nota clínica prévia fornecida como referência para o formato e estilo desejados

Um provedor deseja notas que correspondam aos padrões de documentação existentes

nota

O serviço é apátrida. Para usar uma nota anterior como referência de estilo, seu aplicativo deve incluí-la nas instruções de cada sessão. O agente não mantém as preferências do provedor em todas as sessões.

Exemplo de instrução de personalização

O exemplo a seguir mostra uma instrução de personalização para uma nota SOAP usando o objeto customTemplate de configuração.

{ "clinicalNoteGenerationSettings": { "noteTemplateSettings": { "customTemplate": { "templateType": "HISTORY_AND_PHYSICAL", "templateInstructions": [ { "sectionHeader": "Subjective", "sectionInstruction": "You will be generating a SOAP note one section at a time, starting with the `S` section. Please use this template when generating the `S` section:\n<template>\nSUBJECTIVE:\nChief Complaint: <Brief statement, in patient's own words, if available>\nHistory of Present Illness: <Narrative description of current symptoms, onset, duration, quality, severity, timing, context, modifying factors, associated symptoms.>\nReview of Systems:\n• Constitutional: <fever, chills, weight changes, fatigue>\n• Cardiovascular: <chest pain, palpitations, shortness of breath>\n• Respiratory: <cough, dyspnea, wheezing>\n• GI: <nausea, vomiting, diarrhea, constipation, abdominal pain>\n• GU: <dysuria, frequency, urgency, hematuria>\n• Musculoskeletal: <joint pain, muscle weakness, back pain>\n• Neurological: <headache, dizziness, numbness, weakness>\n• Psychiatric: <mood changes, anxiety, sleep disturbances>\n• All other systems negative unless noted above Past Medical History: <List chronic conditions>\nPast Surgical History: <List previous surgeries with dates>\nMedications: <Current medications with doses>\nAllergies: <Drug allergies and reactions, or NKDA>\nSocial History: <Tobacco, alcohol, drugs, occupation, living situation>\nFamily History: <Relevant family medical history>\n</template>" } ] } } } }

Práticas recomendadas de modelos

O agente alcança uma média de 97,7% de aderência ao layout com modelos bem desenhados.

  • Defina sua estrutura de notas com cabeçalhos de seção nomeados. Liste cada seção da nota desejada pelo nome, usando um delimitador consistente. O modelo usa esses cabeçalhos como âncoras estruturais para colocar o conteúdo no local correto.

  • Use espaços reservados descritivos que expliquem qual conteúdo pertence a cada seção. Por exemplo, .Chief Complaint: <Brief statement in patient’s own words, if available>

  • Enumere as subseções esperadas para campos com várias partes. Para seções que abrangem várias categorias (como sistemas corporais ou listas de problemas), liste-as explicitamente com valores representativos para indicar o escopo.

  • Lide com as informações que faltam com elegância. Use frases como “se disponível” ou “se aplicável” nos espaços reservados para indicar que uma seção pode ser omitida quando o encontro não produz conteúdo relevante.

  • Modelos de teste em todos os tipos de visita. Um modelo que funciona para visitas de acompanhamento pode não ser adequado para novos encontros com pacientes ou exames de bem-estar. Valide seus modelos em relação a uma amostra representativa de encontros antes de implantá-los amplamente.

Saídas

A documentação do ambiente gera três arquivos de saída:

Arquivo de transcrição

O arquivo de transcrição contém uma transcrição passo a passo com registros de data e hora em nível de palavra. O Amazon Connect Health adiciona a detecção da função do participante, rotulando cada palestrante como CLÍNICO 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).

Documentação clínica e arquivo de mapeamento de evidências

O arquivo de documentação clínica contém a nota clínica estruturada gerada a partir da conversa paciente-médico e uma seção vinculando cada declaração gerada à sua fonte na transcrição da conversa ou na entrada do contexto do paciente.

O arquivo segue o modelo gerenciado ou as instruções de personalização fornecidas no início da sessão. Cada seção pode conter conteúdo derivado da visita (da conversa) e conteúdo derivado do contexto (da entrada do contexto do paciente). Vários formatos de saída são suportados: prose/free -text e JSON estruturado, dependendo da configuração do modelo. A seção de mapeamento de evidências permite que os médicos verifiquem a origem de qualquer AI-generated conteúdo. Cada entrada de mapeamento contém a frase gerada e a transcript/context referência da fonte.

After-visit arquivo de resumo

O arquivo de resumo após a visita contém um resumo voltado para o paciente, escrito em linguagem acessível para análise e finalização do médico. Inclui uma descrição em linguagem simples da visita, medicamentos atuais com dosagem e frequência, instruções de acompanhamento do médico e itens de ação para o paciente.

O resumo é gerado a partir do arquivo de documentação clínica, não diretamente da transcrição, garantindo a consistência entre a nota clínica e o resumo voltado para o paciente.

Para obter detalhes completos dos parâmetros da API, request/response esquemas e instruções de configuração de streaming, consulte a Referência da API Amazon Connect Health.