Health Level Seven International Version 2 (HL7v2) adalah format pesan klinis yang memberikan data tentang peristiwa yang terjadi di dalam organisasi.
Lihat dokumentasi Suite Produk HL7 Versi 2 untuk mengetahui detail selengkapnya tentang HL7v2.
Penyimpanan HL7v2
Penyimpanan HL7v2 adalah penyimpanan data yang berada dalam set data. Penyimpanan HL7v2 menyimpan pesan HL7v2.
Resource HL7V2Store
memberikan representasi atribut penyimpanan HL7v2. Untuk setiap
penyimpanan HL7v2, Anda dapat memilih opsi seperti:
- Apakah akan memublikasikan perubahan ke penyimpanan HL7v2 (misalnya, jika aplikasi Anda menerima pesan baru) ke topik Pub/Sub.
- Cara mengurai pesan yang diserap ke dalam penyimpanan HL7v2.
Pesan HL7v2
Pesan HL7v2 mentah mungkin sulit dibaca. Misalnya, perhatikan pesan berikut:
MSH|^~\&|FROM_APP|FROM_FACILITY|TO_APP|TO_FACILITY|20180101000000||ADT^A01|20180101000000|P|2.5| EVN|A01|20110613083617| PID|1|843125^^^^MRN|21004053^^^^MRN~2269030303^^^^ORGNMBR||SULLY^BRIAN||19611209|M|||123 MAIN ST^^CITY^STATE^12345| PV1||I|H73 RM1^1^^HIGHWAY 01 CLINIC||||5148^MARY QUINN|||||||||Y||||||||||||||||||||||||||||20180101000000|
Cloud Healthcare API dapat:
- Mengurai pesan.
- Mengekstrak beberapa kolom dari segmen header pesan (MSH) untuk memungkinkan pemfilteran.
- Merepresentasikan konten pesan sebagai data JSON untuk pemrosesan lebih lanjut atau pertukaran data.
Resource Message
memberikan representasi pesan HL7v2. Laporan ini mencakup
informasi seperti:
- Waktu pembuatan pesan
- Orang yang membuat pesan
- Data yang terdapat dalam pesan
Resource Message
untuk pesan sebelumnya
terlihat seperti ini:
{ "name": "projects/PROJECT_ID /locations/LOCATION /datasets/DATASET_ID /hl7V2Stores/HL7V2_STORE_ID /messages/W5_pxOBkoLoCxiFxE4cg8zwEWRzMlOzIfaLBrZPf0Zg=", "data": "TVNIfF5+XCZ8RlJPTV9BUFB8RlJPTV9GQUNJTElUWXxUT19BUFB8VE9fRkFDSUxJVFl8MjAxODAxMDEwMDAwMDB8fEFEVF5BMDF8MjAxODAxMDEwMDAwMDB8UHwyLjV8DUVWTnxBMDF8MjAxMTA2MTMwODM2MTd8DVBJRHwxfDg0MzEyNV5eXl5NUk58MjEwMDQwNTNeXl5eTVJOfjIyNjkwMzAzMDNeXl5eT1JHTk1CUnx8U1VMTFleQlJJQU58fDE5NjExMjA5fE18fHwxMjMgTUFJTiBTVF5eQ0lUWV5TVEFURV4xMjM0NXwNUFYxfHxJfEg3MyBSTTFeMV5eSElHSFdBWSAwMSBDTElOSUN8fHx8NTE0OF5NQVJZIFFVSU5OfHx8fHx8fHx8WXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHwyMDE4MDEwMTAwMDAwMHw=", "sendFacility": "FROM_FACILITY", "sendTime": "2018-01-01T00:00:00Z", "messageType": "ADT", "createTime": "2018-01-01T00:00:00Z", "patientIds": [ { "value": "843125", "type": "MRN" }, { "value": "21004053", "type": "MRN" }, { "value": "2269030303", "type": "ORGNMBR" } ], "parsedData": { "segments": [ { "segmentId": "MSH", "fields": { "5": "TO_FACILITY", "2": "FROM_APP", "3": "FROM_FACILITY", "0": "MSH", "1": "^~\\&", "10": "P", "4": "TO_APP", "9": "20180101000000", "8.1": "ADT", "11": "2.5", "8.2": "A01", "6": "20180101000000" } }, { "segmentId": "EVN", "fields": { "1": "A01", "2": "20110613083617", "0": "EVN" } }, { "segmentId": "PID", "fields": { "1": "1", "3[0].1": "21004053", "3[1].1": "2269030303", "3[0].5": "MRN", "0": "PID", "11.4": "STATE", "11.5": "12345", "2.1": "843125", "2.5": "MRN", "5.1": "SULLY", "11.3": "CITY", "8": "M", "11.1": "123 MAIN ST", "3[1].5": "ORGNMBR", "7": "19611209", "5.2": "BRIAN" } }, { "segmentId": "PV1", "fields": { "44": "20180101000000", "7.1": "5148", "16": "Y", "2": "I", "3.2": "1", "3.4": "HIGHWAY 01 CLINIC", "7.2": "MARY QUINN", "3.1": "H73 RM1", "0": "PV1" } } ] } }
Membuat dan menyerap pesan
Anda dapat menyimpan pesan HL7v2 di penyimpanan HL7v2 menggunakan metode berikut:
messages.create
: membuat resourceMessage
dan menyimpannya di penyimpanan HL7v2. Respons metode ini berisi isi pesan.messages.ingest
: menyerap resourceMessage
dan menyimpannya di penyimpanan HL7v2. Respons metode ini berisi isi pesan dan kolom konfirmasi,hl7ack
, yang memverifikasi bahwa pesan telah diterima.Perhatikan informasi penting berikut tentang nilai kolom
hl7ack
:- Nilai berisi jenis respons. Jenis respons
AA
menunjukkanApplication Accept
, yang berarti pesan telah divalidasi dan berhasil diserap. - Fasilitas pengiriman dan fasilitas penerimaan dibalik.
- Nilai ini berisi ID kontrol pesan asli.
- Nilai berisi jenis respons. Jenis respons
Jika aplikasi Anda memerlukan respons ACK
, gunakan messages.ingest
. Jika
aplikasi Anda tidak memerlukan respons ACK
, gunakan messages.create
. Respons ACK
tidak disimpan di penyimpanan HL7v2.
Saat Anda membuat atau menyerap pesan HL7v2, pesan akan diberi ID oleh server. Anda dapat menggunakan ID ini saat berinteraksi dengan pesan (misalnya, untuk menghapus pesan atau memberi label dengan label yang ditentukan pengguna).
MLLP dan Google Cloud Adaptor MLLP
Minimal lower layer protocol (MLLP) adalah standar yang digunakan untuk mengirimkan pesan HL7v2 melalui koneksi TCP/IP dalam jaringan, seperti rumah sakit.
MLLP tidak menawarkan pemetaan yang tepat ke HL7v2 REST API Cloud Healthcare API, yang menggunakan HTTP. Oleh karena itu, adaptor MLLP harus digunakan untuk mengonversi pesan yang dikirim melalui MLLP menjadi format yang dapat diterima HTTP/REST API. Untuk mengirimkan pesan melalui MLLP, lalu ke Cloud Healthcare API, gunakan adaptor MLLP Google Cloud. Untuk tutorial menggunakan adaptor MLLP ini, lihat Mengirim pesan HL7v2 melalui koneksi TCP/IP.
Jika aplikasi Anda mewajibkan otoritas tepercaya menandatangani pesan HL7v2, gunakan Adaptor MLLP Otorisasi Biner Google Cloud. Untuk tutorial menggunakan adaptor MLLP ini, lihat Mengirim pesan HL7v2 melalui koneksi TCP/IP dengan Otorisasi Biner.
Adaptor tidak mengurai atau memeriksa pesan HL7v2; Cloud Healthcare API mengurai dan memvalidasi pesan saat diserap ke dalam penyimpanan HL7v2. Kemudian, Anda dapat melakukan validasi lebih lanjut pada pesan dengan melihat atau memberi label pada pesan tersebut untuk analisis.
Saat berjalan, adaptor akan terus membuka koneksi TCP yang berumur panjang antara jaringan sistem perawatan dan adaptor. Soket ini juga mengekspos soket TCP untuk menerima pesan HL7v2 melalui MLLP. Adaptor menentukan batas pesan dengan mendeteksi byte blok awal dan akhir setiap pesan, seperti yang ditentukan dalam standar MLLP.
Saat adaptor MLLP menerima pesan HL7v2 dari sistem perawatan melalui koneksi TCP, adaptor akan menyerap pesan ke dalam penyimpanan HL7v2. Kemudian, toko
akan merespons adaptor MLLP secara sinkron dengan ACK
atau NACK
. ACK
akan dikirim jika pesan dibentuk dengan benar dan memiliki segmen header yang valid. Adaptor
MLLP mengirimkan respons ACK
atau NACK
ke sistem perawatan.
Adaptor MLLP juga dapat memproses langganan Pub/Sub yang terkait dengan penyimpanan HL7v2. Saat pesan HL7v2 dibuat atau diserap ke dalam penyimpanan, adaptor MLLP akan menerima notifikasi dan memublikasikan pesan ke sistem perawatan.
MLLP dan keamanan
MLLP tidak mendukung enkripsi atau autentikasi apa pun secara native. Oleh karena itu, koneksi TCP yang menggunakan MLLP harus digabungkan dalam koneksi aman menggunakan virtual private network (VPN). Anda dapat menggunakan Cloud VPN untuk membuat koneksi aman antara cluster GKE tempat adaptor MLLP berjalan dan aplikasi lokal Anda. Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi Cloud VPN.
HL7v2, MLLP, dan Pub/Sub
Aspek mendasar penggunaan HL7v2 dengan Cloud Healthcare API meliputi konfigurasi notifikasi Pub/Sub. Dengan menggunakan aplikasi subscriber dengan Pub/Sub, Anda dapat menerima notifikasi saat pesan HL7v2 dibuat atau diserap ke dalam penyimpanan HL7v2.
Baca artikel Mengonfigurasi notifikasi Pub/Sub untuk melihat cara menggunakan topik Pub/Sub dengan penerapan HL7v2 Cloud Healthcare API.
Arsitektur HL7v2, MLLP, dan Google Cloud
Diagram berikut menunjukkan cara pesan HL7v2 dikirim dari sistem perawatan
dan diserap ke dalam Cloud Healthcare API. Adaptor MLLP di-deploy ke
Google Kubernetes Engine dan pesan dikirim melalui VPN menggunakan Cloud VPN. Setelah penyerapan, aplikasi pelanggan yang berlangganan
topik Pub/Sub penyimpanan HL7v2 akan menerima notifikasi
bahwa pesan telah diserap. Cloud Healthcare API juga menghasilkan
ACK
untuk adaptor MLLP dan mengirimkannya kembali melalui tunnel VPN
dan ke dalam sistem perawatan.
Pesan HL7v2 yang dikirim dari sistem perawatan adalah pesan "ADT", yang merupakan pesan umum di HL7v2. Saat sistem perawatan mengirim pesan ADT, sistem tersebut tidak mengharapkan pesan baru dibuat dan ditampilkan dari sistem jarak jauh/lokal.
Diagram menunjukkan hal berikut:
- Sistem perawatan di tempat.
- Pesan HL7v2 ADT keluar dari sistem perawatan.
- Pesan HL7v2 diserap melalui adaptor MLLP ke penyimpanan HL7v2.
- Topik Pub/Sub yang dikonfigurasi di penyimpanan HL7v2 menerima notifikasi bahwa pesan telah diserap.
- Aplikasi pelanggan memproses notifikasi penyerapan pesan HL7v2 dari topik Pub/Sub-nya.