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 dalam 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 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-nya 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 Google Cloud project ID 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
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" } }
Mengekspor sebagian 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-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 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_ID
adalah ID Google Cloud project AndaPUBSUB_SUBSCRIPTION
adalah 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" } } ]