HL7v2

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:

  1. Mengurai pesan.
  2. Ekstrak beberapa kolom dari segmen header pesan (MSH) untuk memungkinkan pemfilteran.
  3. 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 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:

    • Nilainya berisi jenis respons. Jenis respons AA menunjukkan Application Accept, yang berarti pesan telah divalidasi dan berhasil diserap.
    • Fasilitas pengiriman dan fasilitas penerima dikembalikan.
    • Nilai 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 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.

mllp_adapter

Diagram menunjukkan hal berikut:

  1. Sistem perawatan lokal.
  2. Pesan ADT HL7v2 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.