HL7v2

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:

  1. Mengurai pesan.
  2. Mengekstrak beberapa kolom dari segmen header pesan (MSH) untuk memungkinkan pemfilteran.
  3. 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 resource Message dan menyimpannya di penyimpanan HL7v2. Respons metode ini berisi isi pesan.

  • messages.ingest: menyerap resource Message 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 menunjukkan Application Accept, yang berarti pesan telah divalidasi dan berhasil diserap.
    • Fasilitas pengiriman dan fasilitas penerimaan dibalik.
    • Nilai ini berisi ID kontrol pesan asli.

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.

mllp_adapter

Diagram menunjukkan hal berikut:

  1. Sistem perawatan di tempat.
  2. Pesan HL7v2 ADT keluar dari sistem perawatan.
  3. Pesan HL7v2 diserap melalui adaptor MLLP ke penyimpanan HL7v2.
  4. Topik Pub/Sub yang dikonfigurasi di penyimpanan HL7v2 menerima notifikasi bahwa pesan telah diserap.
  5. Aplikasi pelanggan memproses notifikasi penyerapan pesan HL7v2 dari topik Pub/Sub-nya.