Health Level Seven International Versi 2 (HL7v2) adalah format pesan klinis yang memberikan data tentang peristiwa yang terjadi di dalam organisasi.
Lihat dokumentasi Product Suite HL7 Versi 2 untuk detail selengkapnya tentang HL7v2.
Toko 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 (jika, misalnya, aplikasi Anda menerima pesan baru) ke topik Pub/Sub.
- Cara mengurai pesan yang diserap ke penyimpanan HL7v2.
Pesan HL7v2
Pesan HL7v2 mentah mungkin sulit dibaca. Misalnya, ambil 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.
- Ekstrak beberapa kolom dari segmen header pesan (MSH) untuk memungkinkan pemfilteran.
- Menampilkan konten pesan sebagai data JSON untuk pemrosesan lebih lanjut atau pertukaran data.
Resource Message
memberikan representasi pesan HL7v2. Hal ini mencakup
informasi seperti:
- Waktu saat pesan dibuat
- Siapa yang membuat pesan
- Data yang ada 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
:- Nilainya berisi jenis respons. Jenis respons
AA
menunjukkanApplication Accept
, yang berarti pesan telah divalidasi dan berhasil diserap. - Fasilitas pengiriman dan fasilitas penerima dikembalikan.
- Nilai berisi ID kontrol pesan asli.
- Nilainya 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 dipertahankan di penyimpanan HL7v2.
Saat Anda membuat atau menyerap pesan HL7v2, pesan tersebut akan diberi ID oleh server. Anda dapat menggunakan ID ini saat berinteraksi dengan pesan (misalnya, untuk menghapus pesan atau memberinya label dengan label yang ditentukan pengguna).
MLLP dan adaptor MLLP Google Cloud
Protokol lapisan bawah (MLLP) minimal adalah standar yang digunakan untuk mentransmisikan pesan HL7v2 melalui koneksi TCP/IP dalam jaringan, seperti rumah sakit.
MLLP tidak menawarkan pemetaan persis ke HL7v2 REST API Cloud Healthcare API yang menggunakan HTTP. Oleh karena itu, adaptor MLLP harus digunakan untuk mengonversi pesan yang dikirim melalui MLLP ke dalam format yang dapat diterima HTTP/REST API. Untuk mengirim pesan melalui MLLP, lalu ke Cloud Healthcare API, gunakan adaptor MLLP Google Cloud. Untuk tutorial yang menggunakan adaptor MLLP ini, lihat Mengirim pesan HL7v2 melalui koneksi TCP/IP.
Jika aplikasi Anda mengharuskan otoritas tepercaya menandatangani pesan HL7v2, gunakan Adaptor MLLP Otorisasi Biner Google Cloud. Untuk tutorial yang 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 penyimpanan HL7v2. Selanjutnya, Anda dapat melakukan validasi lebih lanjut pada pesan dengan melihatnya atau memberi label untuk dianalisis.
Saat berjalan, adaptor akan membuat koneksi TCP berumur panjang tetap terbuka antara jaringan sistem perawatan dan adaptor. 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 dijelaskan dalam standar MLLP.
Saat adaptor MLLP menerima pesan HL7v2 dari sistem perawatan melalui
koneksi TCP, adaptor MLLP akan menyerap pesan tersebut ke penyimpanan HL7v2. Penyimpanan kemudian
akan merespons adaptor MLLP secara sinkron dengan ACK
atau NACK
. ACK
dikirim jika pesan diformat 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 toko, adaptor MLLP akan menerima notifikasi dan memublikasikan pesan tersebut ke sistem layanan.
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 yang 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 dasar penggunaan HL7v2 dengan Cloud Healthcare API melibatkan konfigurasi notifikasi Pub/Sub. Dengan menggunakan aplikasi pelanggan dengan Pub/Sub, Anda dapat menerima notifikasi saat pesan HL7v2 dibuat atau diserap ke penyimpanan HL7v2.
Baca Mengonfigurasi notifikasi Pub/Sub untuk melihat cara menggunakan topik Pub/Sub dengan implementasi Cloud Healthcare API HL7v2.
Arsitektur HL7v2, MLLP, dan Google Cloud
Diagram berikut menunjukkan cara pesan HL7v2 dikirim dari sistem perawatan
dan diserap ke 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 toko HL7v2 menerima notifikasi
bahwa pesan telah diserap. Cloud Healthcare API juga menghasilkan
ACK
untuk adaptor MLLP dan mengirimkannya kembali melalui tunnel VPN
dan ke sistem perawatan.
Pesan HL7v2 yang dikirim dari sistem perawatan adalah pesan "ADT", yang merupakan pesan umum di HL7v2. Saat mengirim pesan ADT, sistem perawatan tidak mengharapkan pesan baru dibuat dan ditampilkan dari sistem jarak jauh/lokal.
Diagram menunjukkan hal berikut:
- Sistem perawatan lokal.
- Pesan ADT HL7v2 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.