HL7
HL7 連接器可連線至 HL7 TCP 和 REST 端點。
事前準備
使用 HL7 連接器前,請先完成下列工作:
- 在 Google Cloud 專案中:
- 確認已設定網路連線。如要瞭解網路模式,請參閱「網路連線」。
- 將 roles/connectors.admin IAM 角色授予設定連線器的使用者。
- 將下列 IAM 角色授予要用於連接器的服務帳戶:
roles/secretmanager.viewer
roles/secretmanager.secretAccessor
role Healthcare HL7v2 Message Ingest
,只有在選取的目的地通訊協定為 REST (Google Cloud HealthCare API),且要將 HL7 訊息擷取至 HL7v2 商店時,才需要提供這項資訊。
服務帳戶是特殊的 Google 帳戶類型,主要用於代表需要驗證且必須取得授權才能存取 Google API 資料的非人類使用者。如果您沒有服務帳戶,請建立服務帳戶。詳情請參閱「建立服務帳戶」。
- 啟用下列服務:
secretmanager.googleapis.com
(Secret Manager API)connectors.googleapis.com
(Connectors API)
如要瞭解如何啟用服務,請參閱「啟用服務」。
如果專案先前未啟用這些服務或權限,系統會在設定連結器時提示您啟用。
- 建立 HL7 存放區。
- 如要使用 TCP(MLLP) 做為目的地通訊協定,請確認 MLLP 伺服器已啟動並執行,可接收訊息。新增目的地時,請提供伺服器詳細資料。
設定連接器
設定連接器時,您必須建立與醫療保健系統或 Google Cloud Healthcare API 的連線。連線專屬於資料來源。也就是說,如果您有多個資料來源,則必須為每個資料來源建立個別的連線。如要建立連結,請按照下列步驟操作:
- 在 Cloud 控制台中,前往「Integration Connectors」>「Connections」頁面,然後選取或建立 Google Cloud 專案。
- 按一下「+ 建立新連線」,開啟「建立連線」頁面。
-
在「位置」部分中,選擇連線位置。
- 區域:從下拉式清單中選取位置。
如需所有支援的地區清單,請參閱「位置」一文。
- 點選「下一步」。
- 區域:從下拉式清單中選取位置。
-
在「連線詳細資料」部分,完成下列步驟:
- 連接器:從可用連接器的下拉式清單中選取「HL7」。
- 連接器版本:從可用版本的下拉式清單中選取連接器版本。
-
在「連線名稱」欄位中,輸入連線執行個體的名稱。
連線名稱必須符合下列條件:
- 連線名稱可使用英文字母、數字或連字號。
- 字母必須為小寫。
- 連線名稱開頭須為英文字母,結尾則須為英文字母或數字。
- 連結名稱不得超過 49 個字元。
- 視需要輸入連線執行個體的「Description」(說明)。
- 服務帳戶:選取具備必要角色的服務帳戶。
- 如要將連線用於事件訂閱,請選取「啟用事件訂閱」。選取這個選項後,系統就會啟用事件訂閱功能和動作。
- 接收逾時:等待 MLLP 框架啟動時,系統會使用 SO_TIMEOUT 值 (以毫秒為單位)。預設值為 15000 毫秒。
- 目的地通訊協定:從下拉式選單中選取目的地通訊協定。
- 如果選取 TCP (MLLP) 做為「目的地通訊協定」,請在新增「目的地」時,輸入 MLLP 伺服器的主機名稱和通訊埠。
-
如果選取 REST (Google Cloud HealthCare API) 做為「目的地通訊協定」,請指定下列詳細資料:
- 專案 ID:HL7 存放區所在的 Google Cloud 專案 ID。
- 位置:資料集和 HL7v2 存放區的位置。
- 資料集 ID:包含 HL7v2 存放區的資料集 ID。
- HL7 商店 ID:用於儲存 HL7v2 訊息的 HL7v2 商店 ID。
- 視需要設定「連線節點設定」:
- 節點數量下限:輸入連線節點數量下限。
- 節點數量上限:輸入連線節點數量上限。
節點是用來處理交易的連線單位 (或備用資源)。連線處理的交易量越多,就需要越多節點;反之,處理的交易量越少,需要的節點就越少。如要瞭解節點對連接器定價的影響,請參閱「 連線節點定價」。如未輸入任何值,系統預設會將節點下限設為 2 (提高可用性),節點上限則設為 50。
- (選用) 按一下「+ 新增標籤」,以鍵/值組合的形式為連線新增標籤。
- 點選「下一步」。
- 如果選取 TCP(MLLP) 做為目的地通訊協定,請在「目的地」部分輸入要連線的遠端主機 (MLLP 伺服器) 詳細資料。
-
目的地類型:選取目的地類型。
- 如要指定目的地主機名稱或 IP 位址,請選取「主機地址」,然後在「主機 1」欄位中輸入地址。
- 如要建立私人連線,請選取「Endpoint attachment」(端點連結),然後從「Endpoint Attachment」(端點連結) 清單中選擇所需連結。
如要建立與後端系統的公開連線,並加強安全性,建議為連線設定靜態輸出 IP 位址,然後設定防火牆規則,只允許特定靜態 IP 位址。
- 點選「下一步」。
-
目的地類型:選取目的地類型。
- HL7 連線不需要任何驗證。按一下「下一步」。
- 如果已啟用事件訂閱功能,連線建立頁面會顯示「事件訂閱詳細資料」部分。如要瞭解如何設定事件訂閱詳細資料,請參閱「設定事件訂閱」。
- 檢查:檢查連線和驗證詳細資料。
- 點選「建立」。
設定事件訂閱
- 專案名稱:Pub/Sub 執行個體所在的 Google Cloud 專案。
- Pub/Sub 主題名稱:要與 HL7v2 存放區建立關聯的 Pub/Sub 主題名稱,通知訊息會傳送到這個主題。
- 輸入無法傳送郵件的設定。如果設定無效信件,連線會將未處理的事件寫入指定的 Pub/Sub 主題。輸入下列詳細資料:
- 無法傳送的訊息專案 ID: 您已設定無法傳送的訊息 Pub/Sub 主題的 Google Cloud 專案 ID。
- 無效信件主題: 要寫入未處理事件詳細資料的 Pub/Sub 主題。
實體、作業和動作
所有整合連接器都會為所連應用程式的物件提供抽象層。您只能透過這個抽象化程序存取應用程式的物件。抽象化會以實體、作業和動作的形式呈現。
- 實體: 實體可以視為已連結應用程式或服務中的物件,或是屬性集合。實體的定義因連接器而異。舉例來說,在資料庫連接器中,資料表是實體;在檔案伺服器連接器中,資料夾是實體;在訊息系統連接器中,佇列是實體。
不過,連接器可能不支援或沒有任何實體,在這種情況下,
Entities
清單會是空白。 - 作業: 作業是指您可以在實體上執行的活動。您可以對實體執行下列任一操作:
從可用清單中選取實體,系統會產生該實體可用的作業清單。如需作業的詳細說明,請參閱 Connectors 工作的實體作業。 不過,如果連接器不支援任何實體作業,系統就不會在
Operations
清單中列出這些不支援的作業。 - 動作: 動作是透過連接器介面提供給整合的第一類函式。動作可讓您變更一或多個實體,且因連接器而異。一般來說,動作會有一些輸入參數和輸出參數。不過,連接器可能不支援任何動作,此時
Actions
清單會是空白。
系統限制
HL7 連接器每秒可處理的交易數如下 (每個節點),超過此限制的交易會遭到節流:
- 如果主要使用 TCP(MLLP)
sendMessage
動作,最多可進行 39 筆交易。 - 如果您主要使用 REST(Google Cloud HealthCare API) 執行
sendMessage
動作,最多可進行 40 筆交易。
根據預設,Integration Connectors 會為連線分配 2 個節點 (以提高可用性)。
如要瞭解 Integration Connectors 適用的限制,請參閱「限制」一文。
動作
HL7 連線支援下列動作:
- sendMessage:將訊息傳送至 TCP(MLLP) 或 REST(Google Cloud HealthCare API)。
- transformHl7ToJson:將有效的 HL7 訊息傳送至 TCP(MLLP) 或 REST(Google Cloud HealthCare API),並以 JSON 格式傳回訊息。
- transformJsonToHl7:將有效的 JSON 訊息傳送至 TCP(MLLP) 或 REST(Google Cloud HealthCare API),並取得 HL7 格式的訊息。
- transformAndSendHl7BatchMessage:將 HL7 批次訊息轉換為 HL7 訊息清單。
sendMessage 動作
下表說明 sendMessage 動作的輸入和輸出參數。
sendMessage 動作的輸入參數
參數名稱 | 必填 | 資料類型 | 說明 |
---|---|---|---|
訊息 | 是 | 字串 | 要傳送至 TCP(MLLP) 伺服器或 REST(Google Cloud HealthCare API) 的訊息。 |
messageContentType | 是 | 字串 | 郵件內容類型,您可以指定為 Text 或 Bytes 。如要傳送二進位資料,請務必將類型設為 Bytes 。如要以二進位格式傳送訊息,請完成下列工作:
|
validateMessage | 否 | 布林值 | 標記是否執行郵件驗證。 |
hl7Version | 否 | 字串 | HL7 訊息版本 (即 2.3、2.4 等)。 |
hl7MessageType | 否 | 字串 | HL7 訊息類型 (即 ADT^A01、ADT^A02 等)。 |
使用 TCP(MLLP) 的 sendMessage 動作輸出參數
參數名稱 | 資料類型 | 說明 |
---|---|---|
messageId | 字串 | 傳送訊息的 ID。 |
狀態 | 字串 | 傳送郵件的狀態。 |
使用 REST(Google Cloud HealthCare API) 傳送訊息動作的輸出參數
參數名稱 | 資料類型 | 說明 |
---|---|---|
ack | 字串 | Google Cloud HealthCare API 傳送的確認訊息。 |
狀態 | 字串 | 傳送郵件的狀態。 |
transformhl7tojson 動作
下表說明 transformhl7tojson 動作的輸入和輸出參數。
transformhl7tojson 動作的輸入參數
參數名稱 | 必填 | 資料類型 | 說明 |
---|---|---|---|
hl7Message | 是 | 字串 | 要轉換為 JSON 的 HL7 訊息。 |
transformhl7tojson 動作的輸出參數
參數名稱 | 資料類型 | 說明 |
---|---|---|
hl7Json | 字串 | 從 HL7 訊息轉換而來的 JSON。 |
transformJsonToHl7 動作
下表說明 transformJsonToHl7 動作的輸入和輸出參數。
transformJsonToHl7 動作的輸入參數
參數名稱 | 必填 | 資料類型 | 說明 |
---|---|---|---|
hl7Json | 是 | 字串 | 要轉換為 HL7 訊息的 JSON。 |
transformJsonToHl7 動作的輸出參數
參數名稱 | 資料類型 | 說明 |
---|---|---|
hl7Message | 字串 | 從 JSON 轉換的 HL7 訊息。 |
transformAndSendHl7BatchMessage 動作
下表說明 transformAndSendHl7BatchMessage 動作的輸入和輸出參數。
「轉換 HL7 批次訊息並傳送至醫療保健系統」動作的輸入參數
參數名稱 | 必填 | 資料類型 | 說明 |
---|---|---|---|
hl7BatchMessage | 是 | 字串 | 要轉換及傳送的 HL7 批次訊息。 |
hl7BatchMessageDelimiter | 否 | 字串 | HL7 批次訊息區段分隔符號。預設值為 \r 。 |
hl7BatchMessageContentType | 是 | 字串 | HL7 批次訊息內容類型(文字/位元組)。 |
「轉換並將 HL7 批次訊息傳送至醫療保健系統」動作的輸出參數
參數名稱 | 資料類型 | 說明 |
---|---|---|
sendHl7BatchMessageResponse | 字串 | 將 HL7 批次訊息傳送至醫療保健系統後的回應。 |
使用 Terraform 建立連線
您可以使用 Terraform 資源建立新連線。
如要瞭解如何套用或移除 Terraform 設定,請參閱「基本 Terraform 指令」。
如要查看用於建立連線的 Terraform 範本範例,請參閱範本範例。
使用 Terraform 建立這項連線時,您必須在 Terraform 設定檔中設定下列變數:
參數名稱 | 資料類型 | 必填 | 說明 |
---|---|---|---|
專案 ID | STRING | 是 | 建立 HL7 資料儲存庫的專案 ID,僅透過 REST(Google Cloud Healthcare API) 建立連線時需要。 |
位置 | STRING | 是 | 資料集和 HL7v2 儲存庫的位置,僅在透過 REST(Google Cloud Healthcare API) 建立連線時為必填。 |
資料集 ID | STRING | 是 | 保存 HL7v2 儲存庫的資料集 ID,僅透過 REST(Google Cloud Healthcare API) 建立連線時需要。 |
HL7 儲存庫 ID | STRING | 是 | 您儲存 HL7v2 訊息的 HL7v2 儲存庫 ID,僅在透過 REST(Google Cloud Healthcare API) 建立連線時為必填欄位。 |
在整合中採用 HL7 連線
建立連線後,Apigee Integration 和 Application Integration 都會提供該連線。您可以在整合中透過「連接器」工作使用連線。
- 如要瞭解如何在 Apigee Integration 中建立及使用「連線器」工作,請參閱「連線器工作」。
- 如要瞭解如何在 Application Integration 中建立及使用「連線器」工作,請參閱「連線器工作」。