Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Dokumentation zur Umgebung
Ambient Documentation erfasst Gespräche zwischen Patienten und Ärzten in Echtzeit und generiert strukturierte klinische Unterlagen zur Überprüfung durch den Arzt. Der Service kombiniert Spracherkennung mit generativer KI, um klinische Notizen zu erstellen, medizinische Terminologie zu extrahieren, Sprecherrollen zu identifizieren und Dialogsegmente zu klassifizieren.
Wichtig
Die Umgebungsdokumentation von Amazon Connect Health liefert probabilistische Ergebnisse. Die Genauigkeit der Ausgabe hängt von der Audioqualität, den Hintergrundgeräuschen, der Klarheit der Lautsprecher, der Komplexität der medizinischen Terminologie und der kontextspezifischen Sprache ab. Die gesamte Ausgabe muss vor der Verwendung in der Patientenversorgung von einem geschulten medizinischen Fachpersonal auf ihre Richtigkeit überprüft werden.
Die Umgebungsdokumentation von Amazon Connect Health ist in den Regionen USA Ost (Nord-Virginiaus-east-1) () und USA West (Oregon) (us-west-2) verfügbar.
Themen
So funktioniert die Dokumentation zur Umgebungsbeleuchtung
Die Umgebungsdokumentation verwendet Audio-Streaming in Echtzeit über HTTP/2 oder WebSocket. Der Arbeitsablauf umfasst:
-
Abonnement erstellen — Ordnen Sie dem Agenten für Umgebungsdokumentation einen Anbieter zu. Abonnements werden automatisch im aktivierten Modus erstellt.
-
Audio streamen — Ihre Anwendung streamt Audio von der Konversation zwischen Patient und Arzt zu Amazon Connect Health über oder. HTTP/2 WebSocket Der Dienst transkribiert das Audio in Echtzeit und identifiziert die Sprecher.
-
Dokumentation erstellen — Nach Abschluss des Gesprächs generiert der Service auf der Grundlage der konfigurierten Vorlage strukturierte klinische Notizen, Evidenzzuordnungen und eine Zusammenfassung nach dem Besuch.
-
Ergebnisse abrufen — Der Service schreibt das Protokoll, die klinische Dokumentation und die Zusammenfassung nach dem Besuch in Ihren konfigurierten Amazon S3 S3-Bucket.
Technische Anforderungen
-
Unterstützte Sprache — US-Englisch (en-US)
-
Unterstützte Audioformate — FLAC, PCM
-
Kodierung — PCM 16-Bit
-
Abtastrate — 16.000 Hz oder höher
Unterstützte medizinische Fachgebiete
Die Umgebungsdokumentation unterstützt derzeit die folgenden Fachgebiete:
-
Allergie-Immunologie
-
Kardiologie
-
Dermatologie
-
Endokrinologie
-
Gastroenterologie
-
Hematology/Oncology
-
Infektiöse Krankheit
-
Nephrologie
-
Neurologie
-
FRAUENHEILKUNDE
-
Onkologie
-
Ophthalmologie
-
Orthopädie
-
Hals-Nasen-Ohrenheilkunde
-
Schmerzmedizin
-
Pädiatrie
-
Grundversorgung
-
Psychiatrie
-
Pulmonologie
-
Rheumatologie
-
Chirurgie
-
Urologie
Zustimmung und Patientenbenachrichtigung
Die Umgebungsdokumentation von Amazon Connect Health nutzt KI, um klinische Gespräche in Echtzeit zu erfassen und zu transkribieren. Da diese Funktion mündliche Kommunikation aufzeichnet, die geschützte Gesundheitsinformationen (PHI) enthalten kann, sind Kunden und ihre nachgeschalteten Integratoren für die Einhaltung aller geltenden Gesetze zur Einwilligung, Aufzeichnung und zum Datenschutz verantwortlich. Dazu gehört auch die Einholung aller gesetzlich vorgeschriebenen Einwilligungen, bevor die Umgebungsdokumentation für jegliche Patientenbegegnungen aktiviert wird. AWS holt in Ihrem Namen keine Einwilligung von Patienten ein.
Bei Verwendung von Umgebungsdokumenten muss von jedem Patienten und allen im Raum anwesenden Personen die entsprechende Zustimmung eingeholt werden. Im Rahmen der Einholung der Einwilligung sollten die Patienten darüber informiert werden, dass der Besuch aufgezeichnet und von einem KI-Dienstleister zur Erstellung klinischer Aufzeichnungen verwendet wird, dass ihre Daten an Leistungserbringer weitergegeben werden können und dass sie ohne Auswirkungen auf ihre Behandlung ablehnen können. Kunden und Integratoren sollten Aufzeichnungen über die Zustimmung der Patienten gemäß den geltenden staatlichen Gesetzen und internen Aufbewahrungsrichtlinien führen. Kunden sollten sicherstellen, dass die Zustimmung gemäß den Datenschutzpraktiken ihrer Organisation eingeholt wird.
Sprache des Beispiels:
„Bevor wir beginnen, möchte ich Sie darüber informieren, dass der heutige Besuch von einem KI-Dienstleister aufgezeichnet und überwacht wird, um Ihnen bei der Dokumentation zu helfen. Stimmen Sie zu, fortzufahren?“
Abonnementverwaltung
Erstellen eines Abonnements
Rufen Sie den CreateSubscription API-Vorgang auf, um ein Abonnement zu erstellen. Dadurch wird ein eindeutiges Objekt generiertsubscriptionId, mit dem Sie den Benutzer autorisieren und Streaming-Sitzungen starten können. Abonnements werden automatisch im aktivierten Modus erstellt.
Tipp
Erstellen Sie das Abonnement bei der ersten Nutzung durch den Benutzer, um den Abonnementstart an die tatsächliche Nutzung anzupassen.
Deaktivieren Sie ein Abonnement
Rufen Sie den DeactivateSubscription API-Vorgang auf, um vorübergehend zu verhindern, dass ein Abonnement neue Streaming-Sitzungen akzeptiert. Ein deaktiviertes Abonnement behält seine Konfiguration bei und kann später reaktiviert werden. In-progress Streams werden normal abgeschlossen.
Wichtig
Wenn Sie ein Abonnement deaktivieren, verfällt sofort der verbleibende kostenlose Testzeitraum. Wenn ein Abonnement, das während einer kostenlosen Testversion deaktiviert wurde, später wieder aktiviert wird, wird es als kostenpflichtiges Abonnement reaktiviert.
Reaktivieren Sie ein Abonnement
Deaktivierte Abonnements können reaktiviert werden, indem der ActivateSubscription API-Vorgang mit dem aufgerufen wird. subscriptionId Die kostenpflichtige Abrechnung beginnt sofort nach der Reaktivierung.
Audio streamen
Die Umgebungsdokumentation verarbeitet Audio in Echtzeit über eine Streaming-Verbindung. Ihre Anwendung öffnet eine Verbindung, sendet Audioblöcke als ereigniskodierte Nachrichten und empfängt im Verlauf der Konversation Transkriptionsergebnisse. Die Umgebungsdokumentation unterstützt zwei Streaming-Transporte: und (). HTTP/2 WebSocket wss:// Beide Transporte bieten dieselbe Funktionalität mit denselben Authentifizierungs- und Autorisierungsanforderungen, Kontingenten und Drosselungen. Das Sitzungsverhalten — Erstellung, Streaming und Beendigung — ist bei beiden Transporten identisch.
Anmerkung
Eine Sitzung ist an den Transport gebunden, auf dem sie gestartet wurde. Sie können eine Sitzung nicht auf einem Transport starten und auf dem anderen fortsetzen. Wenn Sie eine Sitzung anhalten und wieder aufnehmen, muss für die wiederaufgenommene Sitzung derselbe Transport verwendet werden, mit dem die Sitzung gestartet wurde.
Wenn Ihr Audio über zwei Kanäle verfügt, können Sie die Kanalidentifikation verwenden, um die Sprache von jedem Kanal separat zu transkribieren. Die Umgebungsdokumentation unterstützt derzeit Audio mit bis zu zwei Kanälen. In Ihrem Transkript sind die Kanäle mit den Bezeichnungen ch_0 und ch_1 versehen.
Zusätzlich zu den standardmäßigen Transkriptabschnitten (Transkripte und Artikel) enthalten Anfragen mit aktivierter Kanalidentifikation einen Abschnitt channel_labels. Dieser Abschnitt enthält jede Äußerung oder jedes Satzzeichen, gruppiert nach Kanal, sowie die zugehörigen Kanalbezeichnungen, Zeitstempel und Konfidenzwert. Wenn eine Person auf einem Kanal zur gleichen Zeit wie eine Person auf einem anderen Kanal spricht, überschneiden sich die Zeitstempel für jeden Kanal, während die Personen übereinander sprechen.
Streamen über HTTP/2
HTTP/2 ist der von den AWS-SDKs verwendete Streaming-Transport und eignet sich für serverseitige und native Anwendungen. Ihre Anwendung stellt eine HTTP/2 Verbindung her, sendet Audio-Chunks und Steuerereignisse als Event-Stream-Nachrichten und empfängt Transkriptereignisse in Echtzeit über dieselbe Verbindung. Wenn Sie ein AWS-SDK verwenden, übernimmt das SDK die Verbindungseinrichtung, das Signieren von Anfragen und die Event-Stream-Kodierung für Sie.
Eine detaillierte HTTP/2 Streaming-Einrichtung und Event-Stream-Kodierung finden Sie in der Amazon Connect Health API-Referenz.
Verwenden der AWS SDKs
Das folgende Codebeispiel zeigt, wie Sie mit dem AWS SDK for Java 2.x eine Amazon Connect Health-Streaming-Sitzung für Umgebungsdokumentation einrichten.
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); } } }
Streaming über WebSocket
WebSocket Mit der Unterstützung können Sie Audio für die Umgebungsdokumentation von einem Webbrowser oder einem anderen WebSocket Client streamen. Alle WebSocket Verbindungen verwenden TLS (wss://).
WebSocket Endpunkt
Connect zum WebSocket Endpunkt für die Region her, in der Sie die Umgebungsdokumentation verwenden:
| Region | Endpoint |
|---|---|
|
US-EAST-1 |
|
|
US-WEST-2 |
|
Authentifizieren einer Verbindung WebSocket
Sie authentifizieren eine WebSocket Verbindung mit einer vorsignierten URL. Um die vorsignierte URL zu erstellen, signieren Sie eine GET Anfrage an den WebSocket Endpunkt mit AWS Signature Version 4 (Sigv4) und betten Sie die Signaturparameter (X-Amz-Algorithm,,X-Amz-Credential, X-Amz-Date X-Amz-ExpiresX-Amz-Signature, undX-Amz-SignedHeaders) und die Sitzungsparameter als Abfragezeichenfolgenparameter ein. Der Service validiert die vorsignierte URL, wenn die Verbindung hergestellt ist. Wenn die vorsignierte URL ungültig, abgelaufen oder nicht autorisiert ist, lehnt der Dienst die Sitzung ab, indem er einen Fehler zurückgibt und die Verbindung schließt.
Der Höchstwert für X-Amz-Expires ist 60 Sekunden (1 Minute). Nachdem die Verbindung hergestellt wurde, wird die Signatur der vorsignierten URL zur Startsignatur, die zum Signieren jedes nachfolgenden Event-Stream-Frames verwendet wird, wodurch eine kontinuierliche Autorisierung für die gesamte Lebensdauer der Verbindung gewährleistet wird.
Für ist keine neue IAM-Aktion erforderlich. WebSocket Der Dienst autorisiert WebSocket Verbindungen mit derselben health-agent:StartMedicalScribeListeningSession Berechtigung, die für HTTP/2 das Streaming verwendet wurde.
Das folgende Beispiel zeigt das Format einer vorsignierten URL WebSocket . Zur besseren Lesbarkeit wurden Zeilenumbrüche hinzugefügt.
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>
Signieren von Event-Stream-Frames
Jeder Event-Stream-Frame, den Sie nach dem Upgrade senden — Konfiguration, Audio und Sitzungssteuerung — muss einzeln signiert sein. Jeder Frame enthält zwei Event-Stream-Header: :date (den Signaturzeitstempel) und :chunk-signature (die Frame-Signatur). Frame-Signaturen bilden eine Kette: Jede Signatur wird aus der Signatur des vorherigen Frames und die ersten Frame-Ketten aus dem X-Amz-Signature Wert in der vorsignierten URL berechnet.
Um einen Frame zu signieren, erstellen Sie eine Zeichenfolge, die mit dem AWS4-HMAC-SHA256-PAYLOAD Algorithmus signiert werden soll, und berechnen Sie dann eine HMAC-SHA256 Überschreibung mit einem Sigv4-Signaturschlüssel, der für das Anforderungsdatum, die Region und den Dienst abgeleitet wurde. health-agent Die zu signierende Zeichenfolge hat das folgende Format:
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
Berechne die Signatur und hänge sie an den Rahmen an:
-
signature = HMAC-SHA256(signingKey, stringToSign), kodiert als Hex-Zeichenfolge. -
Fügen Sie die
:chunk-signatureKopfzeilen:dateund zum Frame hinzu und senden Sie ihn dann. -
Speichern Sie dies
signatureund verwenden Sie es<prior-signature>beim Signieren des nächsten Frames.
Der Signaturschlüssel wird auf die gleiche Weise wie für jede SigV4-Anfrage abgeleitet: Kette HMAC-SHA256 über den Datumsstempel, die Region, den Dienstnamen (health-agent) undaws4_request, ausgehend von Ihrem geheimen Zugriffsschlüssel mit dem Präfix. AWS4
Audio wird gesendet WebSocket
Nachdem die Verbindung hergestellt wurde, senden Sie Ihre Sitzungskonfiguration und streamen Sie dann Audio als binäre Audioereignisse. Jedes binaryAudioEvent enthält einen Teil unformatierter PCM- oder FLAC-Bytes. Der Dienst gibt Transkriptereignisse über dieselbe Verbindung in Echtzeit zurück. Um die Sitzung zu beenden, senden Sie ein END_OF_SESSION Sitzungssteuerungsereignis.
WebSocket Empfehlungen des Kunden
Der Dienst signalisiert das Ende einer Sitzung, indem er einen WebSocket geschlossenen Frame sendet. Gestalten Sie Ihren Client so, dass er das Schließen der Verbindung elegant handhabt:
-
Warten Sie, bis der Server den Frame geschlossen hat, bevor Sie die Verbindung schließen. Nach dem Senden
END_OF_SESSIONsendet der Dienst alle endgültigen Transkriptergebnisse und anschließend einen Abschluss-Frame. Wenn ein Senden fehlschlägt oder ein Fehler auftritt, sendet der Dienst möglicherweise einen strukturierten Fehlerrahmen, gefolgt von einem Abschlussframe. Wenn Sie die Verbindung sofort schließen, können diese letzten Nachrichten verworfen werden. Warten Sie also, bis der Server die Verbindung schließt. -
Verwenden Sie den Statuscode für das Schließen, um das Ergebnis zu ermitteln. Der Abschlusscode
1000(Normaler Abschluss) gibt an, dass die Sitzung erfolgreich abgeschlossen wurde. Jeder andere Code für das Schließen weist auf einen Fehler hin, und der Grund für das Schließen enthält weitere Informationen. -
Wenden Sie als Sicherheitsmaßnahme ein begrenztes Timeout an. Um zu vermeiden, dass auf unbestimmte Zeit gewartet wird, falls die Verbindung nicht mehr reagiert, sollten Sie die Verbindung nach einer angemessenen Frist schließen, falls kein Server-Close-Frame empfangen wurde.
Die AWS-SDKs unterstützen kein WebSocket Streaming. Um zu streamen WebSocket, stellen Sie eine direkte Verbindung zum Endpunkt her, wie in diesem Abschnitt beschrieben. Die Amazon Connect Health API-Referenz dokumentiert die API-Operationen und ihre Anfrage- und Antwortparameter, die für beide Transporte gelten.
Speicher
Zu Beginn einer Sitzung muss ein S3-Speicherort angegeben werden. Ausgabeartefakte werden am folgenden Basisspeicherort gespeichert:
s3://{customer-provided-uri}/health-agent-listening-session/{domainId}/{subscriptionId}/{sessionId}/post-stream-action/
Klinische Notizen werden in einem clinical-notes Ordner an diesem Basisspeicherort gespeichert.
Kontext des Patienten
Der Patientenkontext informiert den Agenten vor dem Gespräch über den encounterContext API-Parameter über die Krankengeschichte. Das encounterContext Objekt enthält das FeldunstructuredContext, das bis zu 10 KB Textdaten für jede Sitzung akzeptiert. Wenn Sie den Patientenkontext einbeziehen, verwendet der Mitarbeiter ihn, um die generierte Dokumentation mit Hintergrundinformationen anzureichern, die während des Besuchs nicht explizit besprochen wurden.
Der Patientenkontext kann Folgendes beinhalten:
-
Notizen zu früheren Begegnungen und Zusammenfassungen der Besuche
-
Aktive Medikamentenlisten
-
Problemlisten und Diagnosen
-
Allergien und Impfungen
-
Einschlägige Labor- und Bildgebungsberichte
-
Chirurgie und Familiengeschichte
-
Bevorzugte Pronomen des Patienten, die im generierten klinischen Output verwendet werden, wenn auf den Patienten Bezug genommen wird
Der Kontext wird in der gesamten generierten Notiz verwendet, um die Spezifität und Genauigkeit zu verbessern, wenn die erforderlichen Informationen nicht allein im Transkript enthalten sind, wobei die Evidenz den Quellenmaterialien für die Überprüfung durch den Arzt zugeordnet wird.
Anmerkung
Im folgenden Beispiel werden fiktive Patientendaten nur zur Veranschaulichung verwendet.
Beispiel für einen Patientenkontext
## 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)
Vorlagen für klinische Notizen
Vorlagen definieren die Struktur, die Abschnitte und die Formatierungsregeln, die der Wirkstoff bei der Erstellung klinischer Unterlagen befolgt. Sie müssen ein Ausgabeformat angeben, indem Sie bei jeder Sitzung ein Konfigurationsobjekt an den noteTemplateSettings API-Parameter übergeben. Die Umgebungsdokumentation unterstützt zwei Methoden zur Angabe des Ausgabeformats: verwaltete Vorlagen oder benutzerdefinierte Vorlagen.
Verwaltete Vorlagen
Die Ambient-Dokumentation enthält sieben vorgefertigte Notizvorlagen. Das Konfigurationsobjekt für verwaltete Vorlagen,managedTemplate, spezifiziert die Vorlage über den templateType Parameter. Die Standardvorlage ist HISTORY_AND_PHYSICAL.
| Vorlage | Description | Anwendungsfall |
|---|---|---|
|
HISTORY_AND_PHYSICAL (Standard) |
Zusammenfassungen der wichtigsten Abschnitte der klinischen Dokumentation |
Allgemeine Begegnungen mit körperlicher Gesundheit |
|
PHYSICAL_SOAP |
SOAP-Format mit Fokus auf körperliche Gesundheit |
Begegnungen mit körperlicher Gesundheit mithilfe der SOAP-Struktur |
|
BEHAVIORAL_SOAP |
SOAP-Format mit Fokus auf Verhaltensgesundheit |
Verhaltensbedingte Gesundheitsbegegnungen unter Verwendung der SOAP-Struktur |
|
MÄDCHEN |
Progress-toward-goals formatieren |
Verhaltensgesundheit — Verfolgung des Fortschritts der Patienten |
|
BIRP |
Format von Verhaltensmustern und Antworten |
Verhaltensgesundheit — Dokumentation von Verhaltensmustern |
|
SIRP |
Situativer Kontext des Therapieformats |
Verhaltensgesundheit — Betonung des situativen Kontextes |
|
DAP |
Vereinfachtes Format der klinischen Dokumentation |
Kurze oder gezielte Begegnungen |
Abschnitte HISTORY_AND_PHYSICAL
| Abschnitt | Description |
|---|---|
|
HAUPTBESCHWERDE |
Kurze Beschreibung des Grundes des Patienten für den Besuch beim Arzt |
|
VORGESCHICHTE DER AKTUELLEN KRANKHEIT |
Informationen über die Erkrankung des Patienten, einschließlich Schweregrad, Beginn, Zeitpunkt, aktuelle Behandlungen und betroffene Bereiche |
|
SYSTEMÜBERPRÜFUNG |
Patient-reported Bewertung der Symptome in verschiedenen Körpersystemen |
|
KRANKGESCHICHTE IN DER VERGANGENHEIT |
Frühere Erkrankungen, Operationen und Behandlungen |
|
VERGANGENE FAMILIENGESCHICHTE |
Gesundheitsprobleme, die in der Familie des Patienten liegen |
|
VERGANGENE SOZIALGESCHICHTE |
Soziales Leben, Gewohnheiten, Beruf und Umweltfaktoren, die sich auf die Gesundheit auswirken |
|
KÖRPERLICHE UNTERSUCHUNG |
Ergebnisse des Arztes aus der körperlichen Untersuchung der Körpersysteme und der Vitalfunktionen |
|
DIAGNOSTISCHE TESTS |
Ergebnisse und Interpretationen von Labortests, bildgebenden Untersuchungen und anderen diagnostischen Verfahren |
|
BEWERTUNG |
Einschätzung des Gesundheitszustands des Patienten durch den Arzt |
|
PLAN |
Clinician-recommended medizinische Behandlungen, Anpassungen des Lebensstils und weitere Termine |
Abschnitte PHYSICAL_SOAP und BEHAVIORAL_SOAP
| Abschnitt | Description |
|---|---|
|
Subjektiv |
Die Ziele, Erfahrungen und bestehenden und vergangenen Probleme des Patienten |
|
Ziel |
Daten und Fakten über den Patienten |
|
Bewertung |
Die Diagnose der Situation des Patienten durch den Arzt |
|
Plan |
Clinician-recommended nächste Behandlungsschritte, einschließlich future Interventionen und Überweisungen |
Anmerkung
PHYSICAL_SOAP ist für die Dokumentation der körperlichen Gesundheit optimiert. BEHAVIORAL_SOAP ist für die Dokumentation von Verhaltensgesundheit optimiert. Beide haben dieselbe Abschnittsstruktur.
GIRPP-Abschnitte
| Abschnitt | Description |
|---|---|
|
Ziel |
Das identifizierte Problem, die Herausforderung oder das Verhalten, das durch eine Behandlung angegangen werden soll |
|
Intervention |
Die spezifische Behandlung, Methode oder Technik, die vom Arzt angewendet wird |
|
Antwort |
Wie der Patient auf die Intervention reagiert hat, einschließlich Beteiligungsgrad und Feedback |
|
Progress |
Einschätzung des Klinikers zur Erreichung der Behandlungsziele |
|
Plan |
Clinician-recommended nächste Behandlungsschritte, einschließlich future Interventionen, Hausaufgaben und Überweisungen |
BIRP-Abschnitte
| Abschnitt | Description |
|---|---|
|
Behavior |
Die Probleme, mit denen der Patient konfrontiert ist, und seine Reaktion auf die Behandlung |
|
Intervention |
Die spezifische Behandlung, Methode oder Technik, die vom Arzt angewendet wird |
|
Antwort |
Wie hat der Patient auf die Intervention reagiert |
|
Plan |
Die nächsten Schritte in der Behandlung |
SIRP-Abschnitte
| Abschnitt | Description |
|---|---|
|
Situation |
Das Problem, mit dem der Patient konfrontiert ist, und sein Ziel für die Suche nach einer Therapie |
|
Intervention |
Die spezifische Behandlung, Methode oder Technik, die vom Arzt angewendet wird |
|
Antwort |
Wie hat der Patient auf die Intervention reagiert |
|
Plan |
Clinician-recommended nächste Schritte in der Behandlung |
DAP-Abschnitte
| Abschnitt | Description |
|---|---|
|
Daten |
Die Gründe des Patienten für die Inanspruchnahme einer Behandlung und Informationen über den Patienten |
|
Bewertung |
Die Diagnose der Situation des Patienten durch den Arzt |
|
Plan |
Clinician-recommended nächste Schritte in der Behandlung |
Benutzerdefinierte Vorlagen
Die Umgebungsdokumentation verwendet ein zweistufiges Anpassungsmodell: Basis- und Ausgabespezifikation. Diese beiden Ebenen werden in einem Konfigurationsobjekt verwaltet,customTemplate. Das customTemplate Konfigurationsobjekt enthält zwei Parameter: Es templateType legt die Basisvorlage fest und templateInstructions enthält die Ausgabespezifikation.
Die Base (templateType) legt die Organisationsstruktur der während des Gesprächs festgestellten klinischen Fakten fest. Die folgenden Basisvorlagen werden unterstützt:
| Base | Description | Anwendungsfall |
|---|---|---|
|
HISTORY_AND_PHYSICAL |
Zusammenfassungen der wichtigsten Abschnitte der klinischen Dokumentation |
Allgemeine Begegnungen mit körperlicher Gesundheit |
|
BEHAVIORAL_SOAP |
SOAP-Format mit Fokus auf Verhaltensgesundheit |
Verhaltensbedingte Gesundheitsbegegnungen unter Verwendung der SOAP-Struktur |
|
MÄDCHEN |
Progress-toward-goals formatieren |
Verhaltensgesundheit — Verfolgung des Fortschritts der Patienten |
|
BIRP |
Format von Verhaltensmustern und Antworten |
Verhaltensgesundheit — Dokumentation von Verhaltensmustern |
|
SIRP |
Situativer Kontext des Therapieformats |
Verhaltensgesundheit — Betonung des situativen Kontextes |
|
DAP |
Vereinfachtes Format der klinischen Dokumentation |
Kurze oder gezielte Begegnungen |
Das Ausgabespezifikationsobjekt (templateInstructions) ist als eine Reihe von Anweisungen organisiert, wobei eine sectionHeader Anweisung den Namen des Abschnitts definiert und Anweisungen und eine Vorlage für diesen Abschnitt kombiniert. sectionInstructions
Anpassungsanweisungen können drei Arten von Direktiven beinhalten:
-
Ausführliche Anweisungen — Kontrollieren Sie die Prägnanz oder Ausformulierung des Inhalts. Beispiel: „Beschreiben Sie die Hauptbeschwerde in einem Satz oder weniger.“
-
Anweisungen zur Verwendung der Vorlage — Geben Sie an, wie der Agent mit einer falschen Ausrichtung zwischen der Vorlage und dem Inhalt der Begegnung umgeht. Beispiel: „Halten Sie sich genau an die Vorlage: Wenn die angeforderten Daten nicht verfügbar sind, geben Sie INFORMATION NOT FOUND ein.“
-
Stilanweisungen — Geben Sie die Anforderungen an Formatierung, Terminologie und Argumentation an. Beispiel: „Verwenden Sie nummerierte Probleme im Bewertungsbereich.“
Vorlagen können als Text mit Platzhaltern, strukturierten JSON-Schemas oder als Beispiel für vorherige Hinweise bereitgestellt werden.
| Methode | Description | Anwendungsfall |
|---|---|---|
|
Textvorlage mit Platzhaltern |
Eine Vorlage mit Abschnittsüberschriften und Platzhalterfeldern (z. B.<chief_complaint>), die der Agent aus der Begegnung heraus ausfüllt |
Sie möchten eine genaue Kontrolle über das Layout der Abschnitte und die Platzierung der Inhalte |
|
Strukturierte JSON-Vorlage |
Ein JSON-Schema, das Felder, Verschachtelung und Regeln für die feldspezifische Formatierung definiert |
Ihr EHR erfordert eher eine strukturierte Datenausgabe als Prosa |
|
Beispiel vorheriger Hinweis |
Eine vorherige klinische Notiz als Referenz für das gewünschte Format und den gewünschten Stil |
Ein Anbieter möchte Notizen, die seinen bestehenden Dokumentationsmustern entsprechen |
Anmerkung
Der Dienst ist staatenlos. Um eine vorherige Notiz als Stilreferenz verwenden zu können, muss Ihre Anwendung sie in den Anweisungen für jede Sitzung enthalten. Der Agent behält die Anbietereinstellungen nicht sitzungsübergreifend bei.
Beispiel für eine Anleitung zur Anpassung
Das folgende Beispiel zeigt eine Anpassungsanweisung für eine SOAP-Notiz unter Verwendung des customTemplate Konfigurationsobjekts.
{ "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>" } ] } } } }
Bewährte Methoden für Vorlagen
Der Agent erreicht mit gut gestalteten Vorlagen eine durchschnittliche Layoutkonformität von 97,7%.
-
Definieren Sie Ihre Notizstruktur mit benannten Abschnittsüberschriften. Listen Sie jeden Abschnitt Ihrer gewünschten Notiz nach Namen auf und verwenden Sie dabei ein einheitliches Trennzeichen. Das Modell verwendet diese Überschriften als strukturelle Anker, um den Inhalt an der richtigen Stelle zu platzieren.
-
Verwenden Sie aussagekräftige Platzhalter, die erklären, welcher Inhalt in die einzelnen Abschnitte gehört. Beispiel,
Chief Complaint: <Brief statement in patient’s own words, if available>. -
Zählen Sie die zu erwartenden Unterabschnitte für mehrteilige Felder auf. Führen Sie Abschnitte, die sich über mehrere Kategorien erstrecken (z. B. Körpersysteme oder Problemlisten), explizit mit repräsentativen Werten auf, um den Umfang anzugeben.
-
Gehen Sie vorsichtig mit fehlenden Informationen um. Verwenden Sie Formulierungen wie „falls verfügbar“ oder „falls zutreffend“ innerhalb von Platzhaltern, um zu signalisieren, dass ein Abschnitt weggelassen werden kann, wenn die Begegnung keinen relevanten Inhalt liefert.
-
Testen Sie Vorlagen für verschiedene Besuchsarten. Eine Vorlage, die für Folgetermine geeignet ist, eignet sich möglicherweise nicht für neue Patientengespräche oder Wellnessuntersuchungen. Überprüfen Sie Ihre Vorlagen anhand einer repräsentativen Stichprobe von Patientenbefragungen, bevor Sie sie allgemein einsetzen.
Outputs
Die Umgebungsdokumentation generiert drei Ausgabedateien:
Transkriptionsdatei
Die Transkriptdatei enthält eine schrittweise Transkription mit Zeitstempeln auf Wortebene. Amazon Connect Health fügt die Rollenerkennung der Teilnehmer hinzu und kennzeichnet jeden Sprecher als KLINIKER oder PATIENT. Wenn eine Konversation mehr als einen Teilnehmer in jeder Kategorie hat, wird jedem Teilnehmer eine Nummer zugewiesen (z. B.CLINICIAN_0,CLINICIAN_1).
Datei zur Zuordnung klinischer Unterlagen und Evidenz
Die klinische Dokumentationsdatei enthält die strukturierte klinische Notiz, die aus dem Gespräch zwischen Patient und Arzt generiert wurde, und einen Abschnitt, in dem jede generierte Aussage mit ihrer Quelle im Gesprächsprotokoll oder der Eingabe im Patientenkontext verknüpft wird.
Die Datei folgt der verwalteten Vorlage oder den Anpassungsanweisungen, die zu Beginn der Sitzung bereitgestellt wurden. Jeder Abschnitt kann vom Besuch abgeleitete Inhalte (aus der Konversation) und aus dem Kontext abgeleitete Inhalte (aus dem Patientenkontext) enthalten. Je nach Vorlagenkonfiguration werden mehrere Ausgabeformate unterstützt: prose/free -Text und strukturiertes JSON. Im Bereich Evidence Mapping können Ärzte die Herkunft aller Inhalte überprüfen. AI-generated Jeder Zuordnungseintrag enthält den generierten Satz und die transcript/context Quellenreferenz.
After-visit Übersichtsdatei
Die Übersichtsdatei nach dem Besuch enthält eine Zusammenfassung für den Patienten, die in einer barrierefreien Sprache verfasst ist und von einem Arzt überprüft und fertiggestellt werden kann. Sie enthält eine Beschreibung des Besuchs in verständlicher Sprache, aktuelle Medikamente mit Dosierung und Häufigkeit, Anweisungen für die Nachsorge durch den Arzt und Maßnahmen für den Patienten.
Die Zusammenfassung wird aus der Datei mit den klinischen Unterlagen und nicht direkt aus dem Protokoll generiert, sodass die Konsistenz zwischen der klinischen Notiz und der Zusammenfassung für den Patienten gewährleistet ist.
Vollständige API-Parameterdetails, request/response Schemas und Anweisungen zur Streaming-Einrichtung finden Sie in der Amazon Connect Health API-Referenz.