Menggunakan skema kustom untuk mengurai pesan HL7v2

Halaman ini menjelaskan cara mengonfigurasi skema kustom untuk mengurai pesan HL7v2 yang tidak sesuai dengan standar HL7v2.

Jika Anda mengonversi pesan HL7v2 ke format lain, seperti FHIR atau OMOP, Anda harus dapat mengurai dan menyerap pesan HL7v2 Anda ke penyimpanan HL7v2 terlebih dahulu. Gunakan panduan ini untuk memastikan Anda berhasil mengurai dan menyerap pesan HL7v2.

Ringkasan

Terkadang, pesan HL7v2 Anda mungkin tidak sesuai dengan standar HL7v2. Misalnya, pesan HL7v2 Anda mungkin berisi segmen yang tidak disertakan dalam standar HL7v2, atau segmen tersebut mungkin tidak berurutan. Saat mencoba menyerap pesan yang tidak sesuai, Anda mungkin mengalami error.

Untuk menyerap pesan HL7v2 yang tidak sesuai, Anda harus mengubah objek ParserConfig saat membuat atau mengedit penyimpanan HL7v2. Di dalam ParserConfig, Anda dapat mengonfigurasi penguraian berskema berdasarkan segmen dan jenis kustom, menentukan cara penanganan pesan HL7v2 yang ditolak, dan banyak lagi.

Sebelum mengonfigurasi ParserConfig, baca bagian berikut untuk memahami pesan HL7v2, definisi jenis, dan definisi grup.

Pesan HL7v2

Bagian ini memberikan ringkasan singkat tentang struktur pesan HL7v2, yang akan berguna saat mengonfigurasi parser skema kustom.

Pesan HL7v2 berbasis peristiwa dan menjelaskan transisi status serta pembaruan sebagian pada catatan klinis. Setiap pesan HL7v2 memiliki jenis pesan yang menentukan tujuan pesan. Jenis pesan menggunakan kode tiga karakter dan ditentukan dalam header segmen utama (MSH) wajib dalam pesan. Ada banyak jenis pesan, termasuk yang berikut ini:

  • ADT: digunakan untuk mengirimkan sebagian data Administrasi Pasien pasien
  • ORU: digunakan untuk mengirimkan hasil pengamatan
  • ORM: digunakan untuk mengirimkan informasi tentang pesanan

Tinjau struktur pesan HL7v2, yang terdiri dari segmen, kolom, komponen, dan sub-komponen:

Gambar 1. Diagram struktur pesan HL7v2.

Dalam gambar 1, bagian pesan HL7v2 berikut diberi label: segmen, header segmen, kolom, dan komponen.

Secara default, pesan HL7v2 menggunakan karakter berikut untuk memisahkan informasi. Anda dapat mengganti pemisah, pemisah, dan penutup pesan HL7v2 per pesan di segmen MSH.

  • Terminator segmen: \r

    Jika pesan HL7v2 Anda menggunakan pemisah segmen yang berbeda, lihat contoh Terminator segmen kustom dan kolom kustom.

  • Pemisah kolom: |

  • Pemisah komponen: ^

  • Pemisah sub-komponen: &

  • Pemisah pengulangan: ~

  • Karakter escape: \

Definisi jenis dan grup

Untuk memahami parser skema, Anda harus menggunakan definisi jenis dan definisi grup.

Definisi jenis

Istilah "jenis" mencakup hal berikut:

  • Jenis segmen HL7v2, seperti MSH (Message Segment Header), DG1 (Diagnosis), dan PID (Patient Identification)

    Untuk mengetahui daftar semua jenis segmen HL7v2, lihat Definisi segmen.

  • Jenis data HL7v2, seperti ST (Data String), TS (Stempel waktu), dan SI (ID Urutan)

    Untuk mengetahui daftar semua jenis data default HL7v2, lihat Jenis data.

Anda menentukan jenis di kolom name di dalam objek Type.

Jenis menggunakan format modular yang terdiri dari segmen serta kolom, komponen, serta sub-komponen segmen. Informasi dalam objek Type menunjukkan cara mengurai atau menafsirkan segmen dan menjawab pertanyaan seperti berikut:

  • Kolom apa yang ada di segmen?
  • Apa saja jenis data untuk {i>field-<i}nya?

Contoh berikut menunjukkan definisi jenis untuk segmen ZCD kustom:

{
  "type": {
    "name": "ZCD", // Segment type
    "fields": [
      {
        "name": "1",
        "type": "ST", // Primitive string data type
        "minOccurs": 1, // Must occur at least once
        "maxOccurs": 1 // Not repeated, because it can only occur once
      },
      {
        "name": "2",
        "type": "A", // Custom data type
        "minOccurs": 1 // Repeated, because maxOccurs is not defined
      }
    ]
  }
}

Dalam contoh ini, segmen ZCD berisi dua kolom yang bernama 1 dan 2. Jenis data untuk 1 adalah ST, yang merupakan jenis data string primitif. Jenis data untuk 2 adalah A, yang merupakan jenis data kustom.

Definisi jenis untuk jenis data kustom A berikut menunjukkan bahwa jenis data kustom tersebut juga berisi jenis data kustom lain, bernama B.

{
  "type": {
    "name": "A", // Custom data type
    "fields": [
      {
        "name": "1",
        "type": "ST", // Primitive string data type
        "minOccurs": 1, // Must occur at least once
        "maxOccurs": 1 // Not repeated, because it can only occur once
      },
      {
        "name": "2",
        "type": "B", // Custom data type
        "minOccurs": 1,
        "maxOccurs": 1
      }
    ]
  }
}

Contoh berikut menunjukkan definisi jenis untuk jenis data kustom B, yang memiliki kolom bernama 1 dengan jenis data ST dan kolom bernama 2 yang memiliki jenis data ST berulang:

{
  "type": {
    "name": "B", // Custom data type
    "fields": [
      {
        "name": "1",
        "type": "ST", // Primitive string data type
        "minOccurs": 1, // Must occur at least once
        "maxOccurs": 1 // Not repeated, because it can only occur once
      },
      {
        "name": "2",
        "type": "ST"
        "minOccurs": 1,
        "maxOccurs": 1
      }
    ]
  }
}

Dengan mengetahui informasi tentang segmen dan jenis data, Anda dapat memperkirakan seperti apa segmen ZCD dalam pesan HL7v2 asli. Contoh ini menunjukkan pesan HL7v2 dengan kolom A yang diulang satu kali, yang diizinkan untuk dilakukan karena maxOccurs tidak ditetapkan pada kolom A:

ZCD|ZCD_field_1|A_field_1^B_component_1&B_component_2_repetition_1~A_field_1^B_component_1&B_component_2_repetition_2
Gambar 2. Diagram definisi jenis.

Dalam gambar 2, bagian dari definisi jenis berikut diberi label: segmen, header segmen, kolom, komponen, sub-komponen, dan pengulangan.

Definisi grup

Grup ditentukan pada tingkat segmen dan memberi tahu Anda informasi tentang jenis segmen yang dapat muncul di setiap pesan HL7v2.

Anda menentukan grup dalam array groups di dalam objek GroupOrSegment.

Pertimbangkan cuplikan struktur grup berikut untuk pesan HL7v2 ADT_A01:

  • segment pertama dalam array members adalah MSH (Message Segment Header), karena MSH diperlukan dalam setiap pesan HL7v2.
  • group bernama Group 1.

    Grup ini hanya dapat terjadi maksimal 2 kali dan berisi segmen ZCD kustom.

    Biasanya, group berisi beberapa segmen bertingkat yang dikelompokkan secara logis dan grup lainnya, tetapi dalam contoh ini Group 1 hanya berisi satu segmen: ZCD.

{
  "ADT_A01": {
    "members": [
      {
        "segment": {
          "type": "MSH"
        }
      },
      {
        "group": {
          "name": "Group 1",
          "minOccurs": 1,
          "maxOccurs": "2",
          "members": [
            {
              "segment": {
                "type": "ZCD"
              }
            }
          ]
        }
      }
    ]
  }
}

Dengan mengetahui informasi tentang grup tersebut, Anda dapat memperkirakan tampilan pesan HL7v2 asli jika ZCD muncul dua kali dalam pesan HL7v2, yang diizinkan karena maxOccurs pada Group 1 disetel ke 2. Bagian ZCD lainnya tidak diketahui tanpa mengetahui definisi jenis.

MSH|^~\&|||||20100308000000||ADT^A01|23701|1|2.3||
ZCD|ZCD_CONTENT
ZCD|ZCD_CONTENT
Gambar 3. Diagram definisi grup.

Pada gambar 3, bagian definisi grup berikut diberi label: segmen dan header segmen.

Mengonfigurasi skema kustom di penyimpanan HL7v2

Bagian berikut menjelaskan komponen skema kustom dan cara mengonfigurasi skema di penyimpanan HL7v2.

Konfigurasi jenis penyimpanan HL7v2

Setelah memahami definisi jenis pesan HL7v2, Anda dapat menentukan konfigurasi jenis di penyimpanan HL7v2. Untuk menentukan konfigurasi, tambahkan array types dan array version.

Contoh berikut menunjukkan cara menentukan konfigurasi untuk jenis yang ditampilkan dalam Definisi jenis di penyimpanan HL7v2.

Perhatikan bahwa konfigurasi tersebut menggunakan array version untuk menentukan kolom mshField dan value. Kolom ini sesuai dengan kolom dan komponen di segmen MSH.

Array types yang Anda tentukan hanya berlaku untuk pesan yang memiliki segmen MSH yang sesuai dengan nilai untuk mshField dan value dalam array version. Dengan begitu, Anda dapat menyerap pesan HL7v2 dengan versi yang berbeda ke penyimpanan HL7v2 yang sama.

{
  "types": [
    {
      "version": [
        {
          "mshField": "12",
          "value": "2.3"
        }
      ],
      "type": [
        {
          "name": "ZCD", // Segment type
          "fields": [
            {
              "name": "1",
              "type": "ST",
              "minOccurs": 1,
              "maxOccurs": 1
            },
            {
              "name": "2",
              "type": "A",
              "minOccurs": 1
            }
          ]
        },
        {
          "name": "A", // Data type
          "fields": [
            {
              "name": "1",
              "type": "ST",
              "minOccurs": 1,
              "maxOccurs": 1
            },
            {
              "name": "2",
              "type": "B",
              "minOccurs": 1,
              "maxOccurs": 1
            }
          ]
        },
        {
          "name": "B", // Data type
          "fields": [
            {
              "name": "1",
              "type": "ST",
              "minOccurs": 1,
              "maxOccurs": 1
            },
            {
              "name": "2",
              "type": "ST"
            }
          ]
        }
      ]
    }
  ]
}

Konfigurasi grup penyimpanan HL7v2

Anda dapat menggunakan grup untuk mengonfigurasi struktur bertingkat pada tingkat "keanggotaan". Grup ditentukan dalam array members di tingkat segmen. Struktur segmen dapat diprediksi dan biasanya berisi kolom, komponen, dan sub-komponen, tetapi segmen itu sendiri dapat berada pada level pesan HL7v2.

Seperti konfigurasi jenis, konfigurasi grup menggunakan filter version untuk memungkinkan Anda menyerap pesan HL7v2 dengan versi berbeda ke penyimpanan HL7v2 yang sama.

Contoh berikut menunjukkan cara menentukan konfigurasi untuk grup yang ditampilkan dalam Definisi grup di penyimpanan HL7v2:

{
  "version": [
    {
      "mshField": "12",
      "value": "2.3"
    }
  ],
  "messageSchemaConfigs": {
    "ADT_A01": {
      "members": [
        {
          "segment": {
            "type": "MSH"
          }
        },
        {
          "group": {
            "name": "Group 1",
            "maxOccurs": "2",
            "members": [
              "segment": {
                "type": "ZCD"
              }
            ]
          }
        }
      ]
    }
  }
}

Selesaikan konfigurasi penyimpanan HL7v2

Saat menggabungkan konfigurasi type dan konfigurasi grup, Anda dapat menentukan tampilan konfigurasi skema kustom lengkap di penyimpanan HL7v2. Anda juga dapat menentukan bahwa skema kustom cocok dengan pesan HL7v2 yang terlihat seperti berikut:

MSH|^~\&|||||20100101000000||ADT^A01^A01|23701|1|2.3||
ZCD|ZCD_field_1|A_field_1^B_component_1&B_component_2_repetition_1~A_field_1^B_component_1&B_component_2_repetition_2

Luaskan bagian berikut untuk melihat skema kustom lengkap di penyimpanan HL7v2, lalu lanjutkan membuat penyimpanan HL7v2 yang menggunakan skema kustom:

Luaskan

{
  "parserConfig": {
    "schema": {
      "schemas": [
        {
          "version": [
            {
              "mshField": "12",
              "value": "2.3"
            }
          ],
          "messageSchemaConfigs": {
            "ADT_A01": {
              "name": "ADT_A01",
              "members": [
                {
                  "segment": {
                    "type": "MSH",
                    "minOccurs": 1,
                    "maxOccurs": 1
                  }
                },
                {
                  "group": {
                    "name": "Group 1",
                    "minOccurs": 1,
                    "maxOccurs": "2",
                    "members": [
                      {
                        "segment": {
                          "type": "ZCD"
                        }
                      }
                    ]
                  }
                }
              ]
            }
          }
        }
      ],
      "types": [
        {
          "version": [
            {
              "mshField": "12",
              "value": "2.3"
            }
          ],
          "type": [
            {
              "name": "ZCD", // Segment type
              "fields": [
                {
                  "name": "1",
                  "type": "ST",
                  "minOccurs": 1,
                  "maxOccurs": 1
                },
                {
                  "name": "2",
                  "type": "A"
                  "minOccurs": 1,
                  "maxOccurs": 1
                }
              ]
            },
            {
              "name": "A", // Data type
              "fields": [
                {
                  "name": "1",
                  "type": "ST"
                  "minOccurs": 1,
                  "maxOccurs": 1
                },
                {
                  "name": "2",
                  "type": "B"
                  "minOccurs": 1,
                  "maxOccurs": 1
                }
              ]
            },
            {
              "name": "B", // Data type
              "fields": [
                {
                  "name": "1",
                  "type": "ST"
                  "minOccurs": 1,
                  "maxOccurs": 1
                },
                {
                  "name": "2",
                  "type": "ST"
                  "minOccurs": 1
                }
              ]
            }
          ]
        }
      ]
    },
    "version": "V3"
  }
}

Membuat penyimpanan HL7v2 dengan skema kustom

Untuk membuat penyimpanan HL7v2 yang menggunakan skema kustom lengkap, selesaikan bagian ini.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: ID project Google Cloud Anda
  • LOCATION: lokasi set data
  • DATASET_ID: set data induk toko HL7v2
  • HL7V2_STORE_ID: ID toko HL7v2

Meminta isi JSON:

{
  "parserConfig": {
    "schema": {
      "schemas": [
        {
          "version": [
            {
              "mshField": "12",
              "value": "2.3"
            }
          ],
          "messageSchemaConfigs": {
            "ADT_A01": {
              "name": "ADT_A01",
              "members": [
                {
                  "segment": {
                    "type": "MSH",
                    "minOccurs": 1
                  }
                },
                {
                  "group": {
                    "name": "Group 1",
                    "minOccurs": 1,
                    "members": [
                      {
                        "segment": {
                          "type": "ZCD"
                        }
                      }
                    ]
                  }
                }
              ]
            }
          }
        }
      ],
      "types": [
        {
          "version": [
            {
              "mshField": "12",
              "value": "2.3"
            }
          ],
          "type": [
            {
              "name": "ZCD",
              "fields": [
                {
                  "name": "1",
                  "type": "ST",
                  "minOccurs": 1,
                  "maxOccurs": 1
                },
                {
                  "name": "2",
                  "type": "A",
                  "minOccurs": 1
                }
              ]
            },
            {
              "name": "A",
              "fields": [
                {
                  "name": "1",
                  "type": "ST",
                  "minOccurs": 1,
                  "maxOccurs": 1
                },
                {
                  "name": "2",
                  "type": "B",
                  "minOccurs": 1,
                  "maxOccurs": 1
                }
              ]
            },
            {
              "name": "B",
              "fields": [
                {
                  "name": "1",
                  "type": "ST",
                  "minOccurs": 1,
                  "maxOccurs": 1
                },
                {
                  "name": "2",
                  "type": "ST",
                  "minOccurs": 1,
                  "maxOccurs": 1
                }
              ]
            }
          ]
        }
      ]
    },
    "version": "V3"
  }
}

Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

curl

Simpan isi permintaan dalam file bernama request.json. Jalankan perintah berikut di terminal untuk membuat atau menimpa file ini di direktori saat ini:

cat > request.json << 'EOF'
{
  "parserConfig": {
    "schema": {
      "schemas": [
        {
          "version": [
            {
              "mshField": "12",
              "value": "2.3"
            }
          ],
          "messageSchemaConfigs": {
            "ADT_A01": {
              "name": "ADT_A01",
              "members": [
                {
                  "segment": {
                    "type": "MSH",
                    "minOccurs": 1
                  }
                },
                {
                  "group": {
                    "name": "Group 1",
                    "minOccurs": 1,
                    "members": [
                      {
                        "segment": {
                          "type": "ZCD"
                        }
                      }
                    ]
                  }
                }
              ]
            }
          }
        }
      ],
      "types": [
        {
          "version": [
            {
              "mshField": "12",
              "value": "2.3"
            }
          ],
          "type": [
            {
              "name": "ZCD",
              "fields": [
                {
                  "name": "1",
                  "type": "ST",
                  "minOccurs": 1,
                  "maxOccurs": 1
                },
                {
                  "name": "2",
                  "type": "A",
                  "minOccurs": 1
                }
              ]
            },
            {
              "name": "A",
              "fields": [
                {
                  "name": "1",
                  "type": "ST",
                  "minOccurs": 1,
                  "maxOccurs": 1
                },
                {
                  "name": "2",
                  "type": "B",
                  "minOccurs": 1,
                  "maxOccurs": 1
                }
              ]
            },
            {
              "name": "B",
              "fields": [
                {
                  "name": "1",
                  "type": "ST",
                  "minOccurs": 1,
                  "maxOccurs": 1
                },
                {
                  "name": "2",
                  "type": "ST",
                  "minOccurs": 1,
                  "maxOccurs": 1
                }
              ]
            }
          ]
        }
      ]
    },
    "version": "V3"
  }
}
EOF

Kemudian, jalankan perintah berikut untuk mengirim permintaan REST Anda:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/hl7V2Stores?hl7V2StoreId=HL7V2_STORE_ID"

PowerShell

Simpan isi permintaan dalam file bernama request.json. Jalankan perintah berikut di terminal untuk membuat atau menimpa file ini di direktori saat ini:

@'
{
  "parserConfig": {
    "schema": {
      "schemas": [
        {
          "version": [
            {
              "mshField": "12",
              "value": "2.3"
            }
          ],
          "messageSchemaConfigs": {
            "ADT_A01": {
              "name": "ADT_A01",
              "members": [
                {
                  "segment": {
                    "type": "MSH",
                    "minOccurs": 1
                  }
                },
                {
                  "group": {
                    "name": "Group 1",
                    "minOccurs": 1,
                    "members": [
                      {
                        "segment": {
                          "type": "ZCD"
                        }
                      }
                    ]
                  }
                }
              ]
            }
          }
        }
      ],
      "types": [
        {
          "version": [
            {
              "mshField": "12",
              "value": "2.3"
            }
          ],
          "type": [
            {
              "name": "ZCD",
              "fields": [
                {
                  "name": "1",
                  "type": "ST",
                  "minOccurs": 1,
                  "maxOccurs": 1
                },
                {
                  "name": "2",
                  "type": "A",
                  "minOccurs": 1
                }
              ]
            },
            {
              "name": "A",
              "fields": [
                {
                  "name": "1",
                  "type": "ST",
                  "minOccurs": 1,
                  "maxOccurs": 1
                },
                {
                  "name": "2",
                  "type": "B",
                  "minOccurs": 1,
                  "maxOccurs": 1
                }
              ]
            },
            {
              "name": "B",
              "fields": [
                {
                  "name": "1",
                  "type": "ST",
                  "minOccurs": 1,
                  "maxOccurs": 1
                },
                {
                  "name": "2",
                  "type": "ST",
                  "minOccurs": 1,
                  "maxOccurs": 1
                }
              ]
            }
          ]
        }
      ]
    },
    "version": "V3"
  }
}
'@  | Out-File -FilePath request.json -Encoding utf8

Kemudian jalankan perintah berikut untuk mengirim permintaan REST Anda:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/hl7V2Stores?hl7V2StoreId=HL7V2_STORE_ID" | Select-Object -Expand Content

Anda akan melihat respons JSON seperti berikut:

Menyerap dan mengurai pesan HL7v2 menggunakan skema kustom

Untuk menyerap versi pesan HL7v2 yang dienkode base64, selesaikan bagian ini.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: project ID Google Cloud Anda
  • LOCATION: lokasi set data induk
  • DATASET_ID: set data induk toko HL7v2
  • HL7V2_STORE_ID: ID toko HL7v2

Meminta isi JSON:

{
  "message": {
    "data": "TVNIfF5+XCZ8fHx8fDIwMTAwMTAxMDAwMDAwfHxBRFReQTAxXkEwMXwyMzcwMXwxfDIuM3x8DVpDRHxaQ0RfZmllbGRfMXxBX2ZpZWxkXzJeQl9jb21wb25lbnRfMSZCX2NvbXBvbmVudF8yX3JlcGV0aXRpb25fMX5BX2ZpZWxkXzJeQl9jb21wb25lbnRfMSZCX2NvbXBvbmVudF8yX3JlcGV0aXRpb25fMQ=="
  }
}

Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

curl

Simpan isi permintaan dalam file bernama request.json. Jalankan perintah berikut di terminal untuk membuat atau menimpa file ini di direktori saat ini:

cat > request.json << 'EOF'
{
  "message": {
    "data": "TVNIfF5+XCZ8fHx8fDIwMTAwMTAxMDAwMDAwfHxBRFReQTAxXkEwMXwyMzcwMXwxfDIuM3x8DVpDRHxaQ0RfZmllbGRfMXxBX2ZpZWxkXzJeQl9jb21wb25lbnRfMSZCX2NvbXBvbmVudF8yX3JlcGV0aXRpb25fMX5BX2ZpZWxkXzJeQl9jb21wb25lbnRfMSZCX2NvbXBvbmVudF8yX3JlcGV0aXRpb25fMQ=="
  }
}
EOF

Kemudian, jalankan perintah berikut untuk mengirim permintaan REST Anda:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/hl7V2Stores/HL7V2_STORE_ID/messages:ingest"

PowerShell

Simpan isi permintaan dalam file bernama request.json. Jalankan perintah berikut di terminal untuk membuat atau menimpa file ini di direktori saat ini:

@'
{
  "message": {
    "data": "TVNIfF5+XCZ8fHx8fDIwMTAwMTAxMDAwMDAwfHxBRFReQTAxXkEwMXwyMzcwMXwxfDIuM3x8DVpDRHxaQ0RfZmllbGRfMXxBX2ZpZWxkXzJeQl9jb21wb25lbnRfMSZCX2NvbXBvbmVudF8yX3JlcGV0aXRpb25fMX5BX2ZpZWxkXzJeQl9jb21wb25lbnRfMSZCX2NvbXBvbmVudF8yX3JlcGV0aXRpb25fMQ=="
  }
}
'@  | Out-File -FilePath request.json -Encoding utf8

Kemudian jalankan perintah berikut untuk mengirim permintaan REST Anda:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/hl7V2Stores/HL7V2_STORE_ID/messages:ingest" | Select-Object -Expand Content

Anda akan melihat respons JSON seperti berikut:

Menentukan kardinalitas kolom

Anda dapat menentukan kardinalitas kolom dalam pesan HL7v2 dengan menetapkan kolom berikut di penyimpanan HL7v2:

  • minOccurs: menentukan frekuensi minimum grup, segmen, kolom, komponen, atau subkomponen harus ada atau diulang dalam pesan HL7v2 yang masuk
  • maxOccurs: menentukan jumlah maksimum grup, segmen, kolom, komponen, atau subkomponen dapat ada atau diulang dalam pesan HL7v2 yang masuk

Abaikan elemen yang tidak ada

Tetapkan ignoreMinOccurs ke true jika Anda ingin HL7v2 API menerima semua pesan HL7v2 yang masuk, terlepas dari elemen yang hilang. Artinya, pesan tidak akan ditolak jika grup, segmen, kolom, komponen, atau subkomponen yang diperlukan tidak ada.

Jika Anda tidak dapat menyerap pesan HL7v2 karena pesan tersebut tidak memiliki kolom wajib diisi, sebaiknya tetapkan ignoreMinOccurs ke true.

Jenis kolom karakter pengganti

Karakter pengganti, *, adalah jenis khusus yang digunakan untuk kolom. Penggunaan * akan menunjukkan kepada Parser HL7v2 bahwa kolom harus diurai berdasarkan struktur dalam pesan HL7v2. Menggunakan * sebagai pengganti nilai untuk kolom berguna jika Anda tidak ingin menerapkan jenis data kolom yang ketat. Selama konten di kolom mengikuti standar HL7v2, Cloud Healthcare API dapat mengurai pesan HL7v2.

Misalnya, perhatikan definisi jenis berikut. Kolom 2 menggunakan karakter pengganti, bukan jenis data kolom. Definisi ini setara dengan definisi pertama dalam Definisi jenis, dan tidak mengharuskan Anda menentukan jenis A dan B:

"type": {
  "name": "ZCD"
  "fields": [
    {
      "name": "1",
      "type": "ST"
    },
    {
      "name": "2",
      "type": "*"
    }
  ]
}

Langkah selanjutnya

Pelajari lebih lanjut cara mengonfigurasi parser skema kustom dengan Contoh parser skema kustom.