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 mengonversi pesan HL7v2 ke format lain, seperti FHIR atau OMOP, Anda harus dapat mengurai dan menyerap pesan HL7v2 ke dalam penyimpanan HL7v2 terlebih dahulu. Gunakan panduan ini untuk memastikan bahwa 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 mungkin tidak berurutan. Saat mencoba mengasimilasikan 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 skema berdasarkan jenis dan segmen kustom, menentukan cara pesan HL7v2 yang ditolak ditangani, dan lainnya.

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 update 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 wajib (MSH) pesan. Ada puluhan jenis pesan, termasuk yang berikut:

  • ADT: digunakan untuk mengirimkan bagian dari 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 terminator pesan HL7v2 berdasarkan 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 subkomponen: &

  • Pemisah pengulangan: ~

  • Karakter escape: \

Definisi jenis dan grup

Memahami parser skema melibatkan penggunaan definisi jenis dan definisi grup.

Definisi jenis

Istilah "jenis" mencakup hal berikut:

  • Jenis segmen HL7v2, seperti MSH (Header Segmen Pesan), DG1 (Diagnosis), dan PID (Identifikasi Pasien)

    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 dan kolom, komponen, dan sub-komponen segmen. Informasi dalam objek Type menunjukkan cara mengurai atau menafsirkan segmen dan menjawab pertanyaan seperti berikut:

  • Kolom apa yang ada dalam segmen?
  • Apa jenis data kolom?

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, 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 berikut untuk jenis data kustom A menunjukkan bahwa jenis data ini 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 yang 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 tampilan segmen ZCD dalam pesan HL7v2 asli. Contoh ini menunjukkan pesan HL7v2 dengan kolom A yang diulang sekali, yang diizinkan untuk dilakukan karena maxOccurs tidak ditetapkan di 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 definisi jenis berikut diberi label: segmen, header segmen, kolom, komponen, subkomponen, dan pengulangan.

Definisi grup

Grup ditentukan di 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 (Header Segmen Pesan), 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, Anda dapat memperkirakan tampilan pesan HL7v2 asli jika ZCD muncul dua kali dalam pesan HL7v2, yang diizinkan karena maxOccurs di Group 1 ditetapkan ke 2. Sisa segmen ZCD 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.

Dalam 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 di Definisi jenis di penyimpanan HL7v2.

Perhatikan bahwa konfigurasi 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. Hal ini memungkinkan Anda menyerap pesan HL7v2 dengan versi yang berbeda ke dalam 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 di 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 di level pesan HL7v2 mana pun.

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

Contoh berikut menunjukkan cara menentukan konfigurasi untuk grup yang ditampilkan di 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"
              }
            ]
          }
        }
      ]
    }
  }
}

Menyelesaikan konfigurasi penyimpanan HL7v2

Saat menggabungkan konfigurasi type dan konfigurasi group, 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 untuk 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 penyimpanan HL7v2
  • HL7V2_STORE_ID: ID penyimpanan 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 pesan HL7v2 versi berenkode 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 penyimpanan HL7v2
  • HL7V2_STORE_ID: ID penyimpanan 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 yang harus ada atau diulang dalam pesan HL7v2 yang masuk
  • maxOccurs: menentukan jumlah maksimum frekuensi grup, segmen, kolom, komponen, atau subkomponen yang dapat ada atau diulang dalam pesan HL7v2 yang masuk

Mengabaikan 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 tidak memiliki grup, segmen, kolom, komponen, atau subkomponen yang diperlukan.

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

Jenis kolom karakter pengganti

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

Misalnya, pertimbangkan definisi jenis berikut. Kolom 2 menggunakan karakter karakter pengganti, bukan jenis data kolom. Definisi ini setara dengan definisi pertama di Definisi jenis, dan tidak memerlukan Anda untuk 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.