Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Dokumentasi ambient
Dokumentasi ambien menangkap percakapan pasien-dokter secara real time dan menghasilkan dokumentasi klinis terstruktur untuk tinjauan penyedia. Layanan ini menggabungkan pengenalan suara dengan AI generatif untuk menghasilkan catatan klinis, mengekstrak terminologi medis, mengidentifikasi peran pembicara, dan mengklasifikasikan segmen dialog.
penting
Dokumentasi ambient Amazon Connect Health menghasilkan hasil probabilistik. Akurasi keluaran bervariasi berdasarkan kualitas audio, kebisingan latar belakang, kejernihan speaker, kompleksitas terminologi medis, dan bahasa khusus konteks. Semua output harus ditinjau keakuratannya oleh profesional medis terlatih sebelum digunakan dalam perawatan pasien.
Dokumentasi ambien Amazon Connect Health tersedia di Wilayah AS Timur (Virginia N.) (us-east-1) dan AS Barat (Oregon) (us-west-2).
Topik
Cara kerja dokumentasi ambient
Dokumentasi ambient menggunakan streaming audio real-time melalui HTTP/2 atau WebSocket. Alur kerja meliputi:
-
Buat langganan — Kaitkan penyedia dengan agen dokumentasi ambient. Langganan secara otomatis dibuat dalam mode yang diaktifkan.
-
Streaming audio — Aplikasi Anda mengalirkan audio dari percakapan pasien-dokter ke Amazon Connect Health melalui atau. HTTP/2 WebSocket Layanan mentranskripsikan audio secara real time dan mengidentifikasi speaker.
-
Hasilkan dokumentasi — Setelah percakapan berakhir, layanan menghasilkan catatan klinis terstruktur, pemetaan bukti, dan ringkasan setelah kunjungan berdasarkan templat yang dikonfigurasi.
-
Ambil output — Layanan menulis transkrip, dokumentasi klinis, dan ringkasan setelah kunjungan ke bucket Amazon S3 Anda yang dikonfigurasi.
Persyaratan Teknis
-
Bahasa yang didukung - Bahasa Inggris AS (id)
-
Format audio yang didukung - FLAC, PCM
-
Pengkodean - PCM 16-bit
-
Tingkat sampel - 16.000 Hz atau lebih tinggi
Spesialisasi medis yang didukung
Dokumentasi ambient saat ini mendukung spesialisasi berikut:
-
Imunologi Alergi
-
Kardiologi
-
Dermatologi
-
Endokrinologi
-
Gastroenterologi
-
Hematology/Oncology
-
Penyakit Menular
-
Nefrologi
-
Neurologi
-
OBGYN
-
Onkologi
-
Oftalmologi
-
Ortopedi
-
Otolaringologi
-
Obat Nyeri
-
Pediatri
-
Perawatan Primer
-
Psikiatri
-
Pulmonologi
-
Reumatologi
-
Bedah
-
Urologi
Persetujuan dan pemberitahuan pasien
Dokumentasi ambient Amazon Connect Health menggunakan AI untuk menangkap dan mentranskripsikan percakapan klinis secara real time. Karena fitur ini mencatat komunikasi lisan yang mungkin berisi informasi kesehatan yang dilindungi (PHI), pelanggan dan integrator hilir mereka bertanggung jawab untuk mematuhi semua undang-undang persetujuan, pencatatan, dan privasi yang berlaku. Ini termasuk mendapatkan semua persetujuan yang diwajibkan secara hukum sebelum mengaktifkan dokumentasi ambien untuk setiap pertemuan pasien. AWS tidak mengumpulkan persetujuan dari pasien atas nama Anda.
Persetujuan yang sesuai harus diperoleh dari setiap pasien dan siapa pun yang hadir di ruangan ketika dokumentasi ambien digunakan. Sebagai bagian dari mendapatkan persetujuan, pasien harus diberi tahu bahwa kunjungan akan dicatat dan digunakan oleh penyedia layanan AI untuk membuat catatan klinis, bahwa informasi mereka dapat dibagikan dengan penyedia layanan, dan bahwa mereka dapat menurun tanpa berdampak pada perawatan mereka. Pelanggan dan integrator harus menyimpan catatan persetujuan pasien, sesuai dengan hukum negara bagian yang berlaku dan kebijakan retensi internal. Pelanggan harus memastikan bahwa persetujuan diperoleh sesuai dengan praktik privasi organisasi mereka.
Contoh bahasa:
“Sebelum kita mulai, saya ingin memberi tahu Anda bahwa kunjungan hari ini akan direkam dan dipantau oleh penyedia layanan AI untuk membantu dokumentasi. Apakah Anda setuju untuk melanjutkan?”
Manajemen berlangganan
Buat langganan
Untuk membuat langganan, hubungi operasi CreateSubscription API. Ini menghasilkan keunikan subscriptionId yang Anda gunakan untuk mengotorisasi pengguna dan memulai sesi streaming. Langganan secara otomatis dibuat dalam mode yang diaktifkan.
Tip
Buat langganan pada penggunaan pertama pengguna untuk menyelaraskan langganan mulai dengan penggunaan aktual.
Nonaktifkan langganan
Untuk menghentikan sementara langganan dari menerima sesi streaming baru, hubungi operasi DeactivateSubscription API. Langganan yang dinonaktifkan mempertahankan konfigurasinya dan dapat diaktifkan kembali nanti. In-progress aliran selesai secara normal.
penting
Menonaktifkan langganan segera kehilangan masa uji coba gratis yang tersisa. Jika langganan yang dinonaktifkan selama uji coba gratis diaktifkan kembali nanti, itu diaktifkan kembali sebagai langganan berbayar.
Aktifkan kembali langganan
Langganan yang dinonaktifkan dapat diaktifkan kembali dengan memanggil operasi ActivateSubscription API dengan. subscriptionId Pengukuran berbayar dimulai segera setelah pengaktifan kembali.
Streaming audio
Dokumentasi ambient memproses audio secara real time melalui koneksi streaming. Aplikasi Anda membuka koneksi, mengirim potongan audio sebagai pesan yang disandikan peristiwa, dan menerima hasil transkripsi saat percakapan berlangsung. Dokumentasi ambient mendukung dua transportasi streaming: HTTP/2 dan WebSocket ()wss://. Kedua transportasi memberikan kemampuan yang sama, dengan persyaratan otentikasi dan otorisasi yang sama, kuota, dan pembatasan. Perilaku sesi - pembuatan, streaming, dan penghentian - identik di kedua transportasi.
catatan
Sebuah sesi terikat pada transportasi di mana ia dimulai. Anda tidak dapat memulai sesi pada satu transportasi dan melanjutkannya di yang lain. Jika Anda menjeda dan melanjutkan sesi, sesi yang dilanjutkan harus menggunakan transportasi yang sama yang memulai sesi.
Jika audio Anda memiliki dua saluran, Anda dapat menggunakan identifikasi saluran untuk mentranskripsikan ucapan dari setiap saluran secara terpisah. Dokumentasi ambient saat ini mendukung audio hingga dua saluran. Dalam transkrip Anda, saluran diberi label ch_0 danch_1.
Selain bagian transkrip standar (transkrip dan item), permintaan dengan identifikasi saluran diaktifkan termasuk bagian channel_labels. Bagian ini berisi setiap ucapan atau tanda baca, dikelompokkan berdasarkan saluran, dan label saluran terkait, stempel waktu, dan skor kepercayaan. Perhatikan bahwa jika seseorang di satu saluran berbicara pada waktu yang sama dengan orang di saluran terpisah, stempel waktu untuk setiap saluran tumpang tindih saat individu berbicara satu sama lain.
Streaming HTTP/2
HTTP/2 adalah transportasi streaming yang digunakan oleh AWS SDK, dan cocok untuk aplikasi sisi server dan asli. Aplikasi Anda membuat HTTP/2 koneksi, mengirim potongan audio dan mengontrol peristiwa sebagai pesan aliran peristiwa, dan menerima peristiwa transkrip secara real time melalui koneksi yang sama. Saat Anda menggunakan AWS SDK, SDK menangani penyiapan koneksi, penandatanganan permintaan, dan pengkodean aliran peristiwa untuk Anda.
Untuk penyiapan HTTP/2 streaming mendetail dan pengkodean aliran peristiwa, lihat Referensi API Amazon Connect Health.
Menggunakan AWS SDK
Contoh kode berikut menunjukkan cara menyiapkan sesi streaming dokumentasi ambient Amazon Connect Health menggunakan 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); } } }
Streaming WebSocket
WebSocket dukungan memungkinkan Anda melakukan streaming audio untuk dokumentasi ambient dari browser web atau WebSocket klien lain. Semua WebSocket koneksi menggunakan TLS (wss://).
WebSocket titik akhir
Connect ke WebSocket endpoint untuk Wilayah tempat Anda menggunakan dokumentasi ambient:
| Region | Titik akhir |
|---|---|
|
US-EAST-1 |
|
|
US-WEST-2 |
|
Mengautentikasi koneksi WebSocket
Anda mengautentikasi WebSocket koneksi dengan URL yang telah ditetapkan sebelumnya. Untuk membuat URL yang telah ditetapkan sebelumnya, tandatangani GET permintaan ke WebSocket titik akhir dengan AWS Signature Version 4 (SigV4) dan sematkan parameter penandatanganan (X-Amz-Algorithm,,,,X-Amz-Credential, X-Amz-Date X-Amz-ExpiresX-Amz-Signature, danX-Amz-SignedHeaders) serta parameter sesi sebagai parameter string kueri. Layanan memvalidasi URL yang telah ditetapkan sebelumnya saat koneksi dibuat. Jika URL yang ditetapkan sebelumnya tidak valid, kedaluwarsa, atau tidak sah, layanan menolak sesi dengan mengembalikan kesalahan dan menutup sambungan.
Nilai maksimum untuk X-Amz-Expires adalah 60 detik (1 menit). Setelah koneksi dibuat, tanda tangan dari URL yang telah ditetapkan sebelumnya menjadi tanda tangan benih yang digunakan untuk menandatangani setiap frame aliran peristiwa berikutnya, memberikan otorisasi berkelanjutan untuk masa pakai koneksi.
Tidak diperlukan tindakan IAM baru untuk WebSocket. Layanan ini mengotorisasi WebSocket koneksi dengan health-agent:StartMedicalScribeListeningSession izin yang sama yang digunakan untuk HTTP/2 streaming.
Contoh berikut menunjukkan format WebSocket URL presigned. Jeda baris ditambahkan untuk keterbacaan.
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>
Menandatangani bingkai aliran acara
Setiap frame event-stream yang Anda kirim setelah upgrade — konfigurasi, audio, dan kontrol sesi — harus ditandatangani secara individual. Setiap frame membawa dua header event-stream: :date (stempel waktu penandatanganan) dan :chunk-signature (tanda tangan bingkai). Tanda tangan bingkai membentuk rantai: setiap tanda tangan dihitung dari tanda tangan bingkai sebelumnya, dan rantai bingkai pertama dari X-Amz-Signature nilai di URL yang telah ditentukan sebelumnya.
Untuk menandatangani bingkai, buat string untuk ditandatangani menggunakan AWS4-HMAC-SHA256-PAYLOAD algoritme, lalu hitung di HMAC-SHA256 atasnya dengan kunci penandatanganan SigV4 yang diturunkan untuk tanggal permintaan, Wilayah, dan layanan. health-agent String yang akan ditandatangani memiliki format berikut:
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
Hitung tanda tangan dan lampirkan ke bingkai:
-
signature = HMAC-SHA256(signingKey, stringToSign), dikodekan sebagai string hex. -
Tambahkan
:datedan:chunk-signatureheader ke bingkai, lalu kirimkan. -
Simpan ini
signaturedan gunakan sebagai<prior-signature>saat menandatangani frame berikutnya.
Kunci penandatanganan diturunkan dengan cara yang sama seperti untuk permintaan SigV4: rantai HMAC-SHA256 di atas stempel tanggal, Wilayah, nama layanan (health-agent), danaws4_request, mulai dari kunci akses rahasia Anda yang diawali dengan. AWS4
Mengirim audio WebSocket
Setelah koneksi dibuat, kirim konfigurasi sesi Anda, lalu streaming audio sebagai peristiwa audio biner. Masing-masing binaryAudioEvent membawa sepotong byte PCM atau FLAC mentah. Layanan mengembalikan peristiwa transkrip melalui koneksi yang sama secara real time. Untuk mengakhiri sesi, kirim acara kontrol END_OF_SESSION sesi.
WebSocket rekomendasi klien
Layanan menandakan akhir sesi dengan mengirimkan bingkai WebSocket dekat. Rancang klien Anda untuk menangani penutupan koneksi dengan anggun:
-
Tunggu server menutup bingkai sebelum menutup koneksi. Setelah Anda mengirim
END_OF_SESSION, layanan mengirimkan hasil transkrip akhir dan kemudian bingkai tutup. Jika kirim gagal atau terjadi kesalahan, layanan dapat mengirim bingkai kesalahan terstruktur diikuti oleh bingkai tutup. Menutup koneksi segera dapat membuang pesan akhir ini, jadi tunggu server menutup koneksi. -
Gunakan kode status tutup untuk menentukan hasilnya. Kode tutup
1000(Penutupan Normal) menunjukkan sesi selesai dengan sukses. Kode tutup lainnya menunjukkan kesalahan, dan alasan penutupan memberikan detail tambahan. -
Terapkan batas waktu sebagai perlindungan. Untuk menghindari menunggu tanpa batas waktu jika koneksi menjadi tidak responsif, tutup koneksi setelah masa tenggang yang wajar jika tidak ada bingkai tutup server yang diterima.
AWS SDK tidak mendukung WebSocket streaming. Untuk melakukan streaming WebSocket, sambungkan ke titik akhir secara langsung seperti yang dijelaskan di bagian ini. Referensi API Amazon Connect Health mendokumentasikan operasi API serta parameter permintaan dan responsnya, yang berlaku untuk kedua transportasi.
Penyimpanan
Lokasi penyimpanan S3 harus ditentukan pada awal sesi. Artefak keluaran disimpan di lokasi dasar berikut:
s3://{customer-provided-uri}/health-agent-listening-session/{domainId}/{subscriptionId}/{sessionId}/post-stream-action/
Catatan klinis disimpan dalam clinical-notes folder di lokasi dasar ini.
Konteks pasien
Konteks pasien memberi agen riwayat klinis sebelum percakapan melalui parameter encounterContext API. encounterContextObjek berisi bidangunstructuredContext, yang menerima hingga 10 KB data teks untuk setiap sesi. Ketika Anda menyertakan konteks pasien, agen menggunakannya untuk memperkaya dokumentasi yang dihasilkan dengan informasi latar belakang yang tidak dibahas secara eksplisit selama kunjungan.
Konteks pasien dapat mencakup:
-
Catatan pertemuan sebelumnya dan ringkasan kunjungan
-
Daftar obat aktif
-
Daftar masalah dan diagnosa
-
Alergi dan imunisasi
-
Laporan lab dan pencitraan yang relevan
-
Riwayat bedah dan keluarga
-
Kata ganti yang disukai pasien, digunakan saat merujuk pada pasien dalam hasil klinis yang dihasilkan
Konteks digunakan di seluruh catatan yang dihasilkan untuk meningkatkan spesifisitas dan akurasi ketika informasi yang diperlukan tidak ada dalam transkrip saja, dengan pemetaan bukti ke bahan sumber untuk tinjauan dokter.
catatan
Contoh berikut menggunakan data pasien fiksi hanya untuk tujuan ilustrasi.
Contoh konteks pasien
## 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)
Templat catatan klinis
Template menentukan struktur, bagian, dan aturan pemformatan yang diikuti agen saat membuat dokumentasi klinis. Anda harus menentukan format output dengan meneruskan objek konfigurasi ke parameter noteTemplateSettings API dengan setiap sesi. Dokumentasi ambient mendukung dua metode untuk menentukan format output - templat terkelola atau templat khusus.
Template terkelola
Dokumentasi ambient menyediakan tujuh templat catatan pra-bangun. Objek konfigurasi untuk template terkelolamanagedTemplate,, menentukan template melalui templateType parameter. Template defaultnya adalah HISTORY_AND_PHYSICAL.
| Templat | Deskripsi | Kasus penggunaan |
|---|---|---|
|
HISTORY_AND_PHYSICAL (default) |
Ringkasan untuk bagian dokumentasi klinis utama |
Pertemuan kesehatan fisik secara umum |
|
FISIK_SABUN |
Format SOAP yang berfokus pada kesehatan fisik |
Pertemuan kesehatan fisik menggunakan struktur SOAP |
|
BEHAVIORAL_SOAP |
Format SOAP yang berfokus pada kesehatan perilaku |
Pertemuan kesehatan perilaku menggunakan struktur SOAP |
|
GIRPP |
Progress-toward-goals format |
Kesehatan perilaku - melacak kemajuan pasien |
|
BIRP |
Pola perilaku dan format respons |
Kesehatan perilaku - mendokumentasikan pola perilaku |
|
SIRP |
Konteks situasional dari format terapi |
Kesehatan perilaku — menekankan konteks situasional |
|
DAP |
Format dokumentasi klinis yang disederhanakan |
Pertemuan singkat atau terfokus |
Bagian HISTORY_AND_PHYSICAL
| Bagian | Deskripsi |
|---|---|
|
KELUHAN UTAMA |
Deskripsi singkat tentang alasan pasien untuk mengunjungi dokter |
|
RIWAYAT PENYAKIT SAAT INI |
Informasi tentang penyakit pasien, termasuk tingkat keparahan, onset, waktu, perawatan saat ini, dan area yang terkena |
|
TINJAUAN SISTEM |
Patient-reported evaluasi gejala di berbagai sistem tubuh |
|
RIWAYAT MEDIS MASA LALU |
Kondisi medis sebelumnya, operasi, dan perawatan |
|
SEJARAH KELUARGA MASA LALU |
Kondisi kesehatan yang berjalan dalam keluarga pasien |
|
SEJARAH SOSIAL MASA LALU |
Kehidupan sosial, kebiasaan, pekerjaan, dan faktor lingkungan yang mempengaruhi kesehatan |
|
PEMERIKSAAN FISIK |
Temuan dokter dari pemeriksaan fisik sistem tubuh dan tanda-tanda vital |
|
PENGUJIAN DIAGNOSTIK |
Hasil dan interpretasi tes laboratorium, studi pencitraan, dan prosedur diagnostik lainnya |
|
PENILAIAN |
Penilaian dokter terhadap kesehatan pasien |
|
RENCANA |
Clinician-recommended perawatan medis, penyesuaian gaya hidup, dan janji lebih lanjut |
Bagian PHYSICAL_SOAP dan BEHAVIORAL_SOAP
| Bagian | Deskripsi |
|---|---|
|
Subyektif |
Tujuan pasien, pengalaman, dan masalah yang ada dan masa lalu |
|
Tujuan |
Data dan fakta tentang pasien |
|
Penilaian |
Diagnosis dokter terhadap situasi pasien |
|
Rencana |
Clinician-recommended langkah selanjutnya dalam pengobatan, termasuk intervensi dan rujukan di masa depan |
catatan
PHYSICAL_SOAP dioptimalkan untuk dokumentasi kesehatan fisik. BEHAVIORAL_SOAP dioptimalkan untuk dokumentasi kesehatan perilaku. Keduanya berbagi struktur bagian yang sama.
Bagian GIRPP
| Bagian | Deskripsi |
|---|---|
|
Tujuan |
Masalah, tantangan, atau perilaku yang teridentifikasi untuk diatasi melalui pengobatan |
|
Intervensi |
Perawatan, metode, atau teknik khusus yang digunakan oleh dokter |
|
Respons |
Bagaimana pasien menanggapi intervensi, termasuk tingkat partisipasi dan umpan balik |
|
Kemajuan |
Penilaian dokter tentang gerakan menuju tujuan pengobatan |
|
Rencana |
Clinician-recommended langkah selanjutnya dalam perawatan, termasuk intervensi masa depan, pekerjaan rumah, dan rujukan |
Bagian BIRP
| Bagian | Deskripsi |
|---|---|
|
Perilaku |
Masalah yang dihadapi pasien dan respons mereka terhadap pengobatan |
|
Intervensi |
Perawatan, metode, atau teknik khusus yang digunakan oleh dokter |
|
Respons |
Bagaimana pasien menanggapi intervensi |
|
Rencana |
Langkah selanjutnya dalam perawatan |
Bagian SIRP
| Bagian | Deskripsi |
|---|---|
|
Situasi |
Masalah yang dihadirkan pasien dan tujuan mereka untuk mencari terapi |
|
Intervensi |
Perawatan, metode, atau teknik khusus yang digunakan oleh dokter |
|
Respons |
Bagaimana pasien menanggapi intervensi |
|
Rencana |
Clinician-recommended langkah selanjutnya dalam perawatan |
Bagian DAP
| Bagian | Deskripsi |
|---|---|
|
Data |
Alasan pasien untuk mencari pengobatan dan informasi tentang pasien |
|
Penilaian |
Diagnosis dokter terhadap situasi pasien |
|
Rencana |
Clinician-recommended langkah selanjutnya dalam perawatan |
Template kustom
Dokumentasi ambient menggunakan model kustomisasi dua lapis: Spesifikasi Dasar dan Output. Kedua lapisan ini dikelola dalam objek konfigurasi,customTemplate. Objek customTemplate konfigurasi berisi dua parameter: templateType mengatur template Base dan templateInstructions berisi Spesifikasi Output.
Base (templateType) menetapkan struktur organisasi dari fakta klinis yang terdeteksi selama percakapan. Template dasar berikut didukung:
| Basis | Deskripsi | Kasus penggunaan |
|---|---|---|
|
SEJARAH_DAN_FISIK |
Ringkasan untuk bagian dokumentasi klinis utama |
Pertemuan kesehatan fisik secara umum |
|
BEHAVIORAL_SOAP |
Format SOAP yang berfokus pada kesehatan perilaku |
Pertemuan kesehatan perilaku menggunakan struktur SOAP |
|
GIRPP |
Progress-toward-goals format |
Kesehatan perilaku - melacak kemajuan pasien |
|
BIRP |
Pola perilaku dan format respons |
Kesehatan perilaku - mendokumentasikan pola perilaku |
|
SIRP |
Konteks situasional dari format terapi |
Kesehatan perilaku — menekankan konteks situasional |
|
DAP |
Format dokumentasi klinis yang disederhanakan |
Pertemuan singkat atau terfokus |
Objek Spesifikasi Output (templateInstructions) diatur sebagai array instruksi, dengan sectionHeader yang mendefinisikan nama bagian dan sectionInstructions yang menggabungkan instruksi dan template untuk bagian itu.
Instruksi kustomisasi dapat mencakup tiga jenis arahan:
-
Instruksi verbositas — Kontrol keringkasan atau elaborasi konten. Contoh: “Jelaskan keluhan utama dalam 1 kalimat atau kurang.”
-
Petunjuk penggunaan templat — Arahkan cara agen menangani ketidaksejajaran antara template dan konten pertemuan. Contoh: “Ikuti template dengan tepat: jika data yang diminta tidak tersedia, tulis INFORMASI TIDAK DITEMUKAN.”
-
Instruksi gaya - Tentukan persyaratan pemformatan, terminologi, dan penalaran. Contoh: “Gunakan masalah bernomor di bagian Penilaian.”
Template dapat disediakan sebagai teks dengan placeholder, skema JSON terstruktur, atau contoh catatan sebelumnya.
| Metode | Deskripsi | Gunakan kapan |
|---|---|---|
|
Template teks dengan placeholder |
Template dengan header bagian dan bidang placeholder (seperti<chief_complaint>) yang diisi agen dari pertemuan |
Anda ingin kontrol yang tepat atas tata letak bagian dan penempatan konten |
|
Template JSON terstruktur |
Skema JSON yang mendefinisikan bidang, bersarang, dan aturan pemformatan per bidang |
EHR Anda membutuhkan output data terstruktur daripada prosa |
|
Contoh catatan sebelumnya |
Catatan klinis sebelumnya diberikan sebagai referensi untuk format dan gaya yang diinginkan |
Penyedia menginginkan catatan yang cocok dengan pola dokumentasi yang ada |
catatan
Layanan ini tanpa kewarganegaraan. Untuk menggunakan catatan sebelumnya sebagai referensi gaya, aplikasi Anda harus memasukkannya ke dalam instruksi untuk setiap sesi. Agen tidak mempertahankan preferensi penyedia di seluruh sesi.
Contoh instruksi kustomisasi
Contoh berikut menunjukkan instruksi kustomisasi untuk catatan SOAP menggunakan objek customTemplate konfigurasi.
{ "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>" } ] } } } }
Templat praktik terbaik
Agen mencapai kepatuhan tata letak rata-rata 97,7% dengan templat yang dirancang dengan baik.
-
Tentukan struktur catatan Anda dengan header bagian bernama. Buat daftar setiap bagian dari catatan yang Anda inginkan berdasarkan nama, menggunakan pembatas yang konsisten. Model menggunakan header ini sebagai jangkar struktural untuk menempatkan konten di lokasi yang benar.
-
Gunakan placeholder deskriptif yang menjelaskan konten apa yang termasuk di setiap bagian. Misalnya,
Chief Complaint: <Brief statement in patient’s own words, if available>. -
Hitung subbagian yang diharapkan untuk bidang multi-bagian. Untuk bagian yang mencakup beberapa kategori (seperti sistem tubuh atau daftar masalah), daftarkan secara eksplisit dengan nilai representatif untuk menunjukkan ruang lingkup.
-
Tangani informasi yang hilang dengan anggun. Gunakan frasa seperti “jika tersedia” atau “jika berlaku” di dalam placeholder untuk memberi sinyal bahwa suatu bagian dapat dihilangkan ketika pertemuan tidak menghasilkan konten yang relevan.
-
Uji templat di seluruh jenis kunjungan. Template yang berfungsi untuk kunjungan tindak lanjut mungkin tidak sesuai dengan pertemuan pasien baru atau ujian kesehatan. Validasi template Anda terhadap sampel pertemuan yang representatif sebelum menerapkan secara luas.
Output
Dokumentasi ambient menghasilkan tiga file output:
Berkas transkrip
File transkrip berisi transkripsi belokan demi belokan dengan stempel waktu tingkat kata. Amazon Connect Health menambahkan deteksi peran peserta, memberi label pada setiap pembicara sebagai CLINICIAN atau PATIENT. Jika percakapan memiliki lebih dari satu peserta dalam setiap kategori, setiap peserta diberi nomor (misalnya,CLINICIAN_0,CLINICIAN_1).
Dokumentasi klinis dan file pemetaan bukti
File dokumentasi klinis berisi catatan klinis terstruktur yang dihasilkan dari percakapan pasien-dokter dan bagian yang menghubungkan setiap pernyataan yang dihasilkan kembali ke sumbernya dalam transkrip percakapan atau input konteks pasien.
File mengikuti templat terkelola atau instruksi penyesuaian yang disediakan di awal sesi. Setiap bagian dapat berisi konten yang diturunkan dari kunjungan (dari percakapan) dan konten yang diturunkan dari konteks (dari input konteks pasien). Beberapa format output didukung: prose/free -text dan JSON terstruktur tergantung pada konfigurasi template. Bagian pemetaan bukti memungkinkan dokter untuk memverifikasi asal konten apa pun AI-generated . Setiap entri pemetaan berisi kalimat yang dihasilkan dan transcript/context referensi sumber.
After-visit file ringkasan
File ringkasan setelah kunjungan berisi ringkasan yang dihadapi pasien yang ditulis dalam bahasa yang dapat diakses untuk tinjauan dan finalisasi dokter. Ini mencakup deskripsi kunjungan dengan bahasa sederhana, obat-obatan saat ini dengan dosis dan frekuensi, instruksi tindak lanjut dokter, dan item tindakan untuk pasien.
Ringkasan dihasilkan dari file dokumentasi klinis, tidak langsung dari transkrip, memastikan konsistensi antara catatan klinis dan ringkasan yang dihadapi pasien.
Untuk detail parameter API lengkap, request/response skema, dan petunjuk penyiapan streaming, lihat Referensi API Amazon Connect Health.