Halaman ini menjelaskan cara mengekspor pesan HL7v2 ke Pub/Sub menggunakan metode
projects.locations.datasets.hl7V2Stores.export.
Anda dapat mengekspor pesan HL7v2 ke Pub/Sub untuk diproses lebih lanjut.
Misalkan Anda memiliki pipeline Dataflow yang mentransformasi pesan HL7v2 saat pesan baru dimasukkan ke dalam penyimpanan HL7v2. Pipeline membaca dari langganan Pub/Sub dan menunggu notifikasi pesan HL7v2 baru. Saat Anda mengimpor pesan HL7v2 ke dalam penyimpanan HL7v2 menggunakan metode
hl7V2Stores.import, metode tersebut tidak mengirimkan notifikasi Pub/Sub.
Untuk memicu pipeline, impor pesan HL7v2, lalu gunakan metode
hl7v2Stores.export untuk mengekspornya ke Pub/Sub.
Sebelum memulai
Aktifkan Pub/Sub API
Di konsol Google Cloud , aktifkan Pub/Sub API:
Mengonfigurasi izin Pub/Sub
Untuk mengekspor pesan dari penyimpanan HL7v2 ke Pub/Sub, Anda harus menambahkan
peran pubsub.publisher ke akun layanan Cloud Healthcare Service Agent
project Anda.
Lihat Izin Pub/Sub penyimpanan DICOM, FHIR, dan HL7v2
untuk mengetahui langkah-langkah menambahkan peran yang diperlukan.
Membuat topik Pub/Sub
Untuk membuat topik, lihat Membuat topik.
Setiap penyimpanan data dapat memiliki topik Pub/Sub sendiri, atau beberapa penyimpanan data dapat berbagi topik yang sama.
Gunakan format berikut saat menentukan topik Pub/Sub:
projects/PROJECT_ID/topics/TOPIC_NAME
PROJECT_ID adalah project ID Google Cloud Anda dan
TOPIC_NAME adalah nama topik Pub/Sub.
Mengekspor pesan HL7v2 ke Pub/Sub
curl
Untuk mengekspor pesan HL7v2 ke Pub/Sub, buat permintaan POST dan
tentukan informasi berikut:
- Nama set data induk
- Nama penyimpanan HL7v2
- Topik Pub/Sub tujuan
Contoh berikut menunjukkan permintaan POST menggunakan curl.
curl -X POST \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ --data "{ 'pubsubDestination': { 'pubsubTopic': 'projects/PROJECT_ID/topics/PUBSUB_TOPIC' } }" "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/hl7V2Stores/HL7V2_STORE_ID:export"
Jika permintaan berhasil, server akan menampilkan respons dalam format JSON:
{
"name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"
}
Respons berisi nama operasi. Untuk melacak status operasi,
Anda dapat menggunakan
Metode get operasi:
curl -X GET \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"
Jika permintaan berhasil, server akan menampilkan respons dengan status operasi dalam format JSON:
{
"name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID",
"metadata": {
"@type": "type.googleapis.com/google.cloud.healthcare.v1.OperationMetadata",
"apiMethodName": "google.cloud.healthcare.v1.hl7v2.Hl7V2Service.ExportMessages",
"createTime": "CREATE_TIME",
"endTime": "END_TIME",
"counter": {
"success": "RESOURCE_COUNT"
}
},
"done": true,
"response": {
"@type": "type.googleapis.com/google.cloud.healthcare.v1.hl7v2.ExportMessagesResponse"
}
}
Mengekspor subset pesan HL7v2 menggunakan filter
Anda dapat menggunakan kolom berikut dalam kriteria filter:
Anda dapat menentukan parameter filter berikut sebagai kriteria filter di kolom filter. Untuk mempelajari sintaksis filter dan membuat kueri, lihat String kueri.
message_type: dari kolom MSH.9.1. Contoh,NOT message_type = "ADT".send_date: tanggalYYYY-MM-DDsaat pesan dikirim dari segmen MSH.7, yang ditentukan dalam zona waktu set data. Misalnya,send_date < "2017-01-02".send_time: stempel waktu saat pesan dikirim. Parameter ini berasal dari segmen MSH.7 pesan. Parameter ini menggunakan format waktu RFC 3339 untuk perbandingan. Misalnya,send_time < "2017-01-02T00:00:00-05:00".create_time: stempel waktu saat pesan dibuat di Cloud Healthcare API, menggunakan format waktu RFC 3339 untuk perbandingan. Contoh:create_time < "2017-01-02T00:00:00-05:00".send_facility: pusat perawatan tempat pesan berasal, dari segmen MSH.4. Contoh,send_facility = "ABC".
Contoh berikut menunjukkan cara menentukan filter untuk hanya mengekspor pesan HL7v2
berjenis ADT.
curl
curl -X POST \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ --data "{ 'pubsubDestination': { 'pubsubTopic': 'projects/PROJECT_ID/topics/PUBSUB_TOPIC' }, 'filter': 'message_type = \"ADT\"' }" "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/hl7V2Stores/HL7V2_STORE_ID:export"
Melihat pesan HL7v2 yang diekspor di Pub/Sub
Untuk melihat pesan HL7v2 yang diekspor di Pub/Sub, jalankan perintah gcloud pubsub subscriptions pull. Perintah ini menggunakan flag --format=json untuk menampilkan output sebagai JSON, bukan YAML default.
gcloud pubsub subscriptions pull --auto-ack projects/PROJECT_ID/subscriptions/PUBSUB_SUBSCRIPTION \ --format=json
PROJECT_IDadalah ID project Google Cloud AndaPUBSUB_SUBSCRIPTIONadalah langganan yang dilampirkan ke topik Pub/Sub tempat Anda mengekspor pesan HL7v2
Outputnya adalah sebagai berikut:
[
{
"ackId": "ACK_ID",
"message": {
"attributes": {
"msgType": "TYPE"
},
"data": "DATA",
"messageId": "8076570784126536",
"publishTime": "YYYY-MM-DDTHH:MM:SS+ZZ:ZZ"
}
}
]