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 pemrosesan downstream.
Misalkan Anda memiliki pipeline Dataflow yang mengubah pesan HL7v2 saat pesan baru diserap ke penyimpanan HL7v2. Pipeline membaca dari
langganan Pub/Sub dan menunggu notifikasi pesan
HL7v2 baru. Saat Anda mengimpor pesan HL7v2 ke penyimpanan HL7v2 menggunakan metode
hl7V2Stores.import
, metode tersebut tidak akan mengirim notifikasi Pub/Sub.
Untuk memicu pipeline, impor pesan HL7v2, lalu gunakan
metode hl7v2Stores.export
untuk mengekspornya ke Pub/Sub.
Sebelum memulai
Mengaktifkan 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 toko 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
Secara default, semua pesan HL7v2 di penyimpanan HL7v2 diekspor. Untuk mengekspor sebagian pesan HL7v2, Anda dapat menggunakan filter untuk hanya mengekspor pesan yang cocok dengan kriteria filter. Untuk mengetahui informasi selengkapnya, lihat Menentukan filter.
curl
Untuk mengekspor pesan HL7v2 ke Pub/Sub, buat permintaan POST
dan
tentukan informasi berikut:
- Nama set data induk
- Nama toko HL7v2
- Topik Pub/Sub tujuan
Contoh berikut menunjukkan permintaan POST
yang 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" } }
Tentukan filter
Untuk mengekspor sebagian pesan HL7v2, Anda dapat menggunakan filter untuk hanya mengekspor pesan yang cocok dengan kriteria filter.
Parameter filter yang valid mencakup hal berikut:
message_type
: dari kolom MSH.9.1. Contoh,NOT message_type = "ADT"
.send_date
: tanggalYYYY-MM-DD
saat 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 sebagai perbandingan. Contoh:create_time < "2017-01-02T00:00:00-05:00"
.send_facility
: pusat layanan tempat pesan berasal, dari segmen MSH.4. Contoh,send_facility = "ABC"
.startTime
: waktu mulai rentang waktu, yang ditetapkan sebagai parametersend_time
, saat pesan HL7v2 dikirim. Untuk mengetahui informasi selengkapnya, lihatstartTime
.endTime
: waktu berakhir rentang waktu, yang ditetapkan sebagai parametersend_time
, selama pesan HL7v2 dikirim. Untuk mengetahui informasi selengkapnya, lihatendTime
.
Anda dapat menentukan filter menggunakan istilah ini. Untuk mempelajari cara menentukan sintaksis filter dan membuat kueri, lihat String kueri.
Contoh berikut menunjukkan cara menentukan filter yang hanya cocok dengan pesan
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 tersebut 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_ID
adalah ID project Google Cloud AndaPUBSUB_SUBSCRIPTION
adalah langganan yang disertakan ke topik Pub/Sub tempat Anda mengekspor pesan HL7v2
Output-nya adalah sebagai berikut:
[ { "ackId": "ACK_ID", "message": { "attributes": { "msgType": "TYPE" }, "data": "DATA", "messageId": "8076570784126536", "publishTime": "YYYY-MM-DDTHH:MM:SS+ZZ:ZZ" } } ]