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 的連線。連線專屬於資料來源。也就是說,如果您有多個資料來源,則必須為每個資料來源建立個別的連線。如要建立連結,請按照下列步驟操作:

  1. Cloud 控制台中,前往「Integration Connectors」>「Connections」頁面,然後選取或建立 Google Cloud 專案。

    前往「連線」頁面

  2. 按一下「+ 建立新連線」,開啟「建立連線」頁面。
  3. 在「位置」部分中,選擇連線位置。
    1. 區域:從下拉式清單中選取位置。

      如需所有支援的地區清單,請參閱「位置」一文。

    2. 點選「下一步」
  4. 在「連線詳細資料」部分,完成下列步驟:
    1. 連接器:從可用連接器的下拉式清單中選取「HL7」
    2. 連接器版本:從可用版本的下拉式清單中選取連接器版本。
    3. 在「連線名稱」欄位中,輸入連線執行個體的名稱。

      連線名稱必須符合下列條件:

      • 連線名稱可使用英文字母、數字或連字號。
      • 字母必須為小寫。
      • 連線名稱開頭須為英文字母,結尾則須為英文字母或數字。
      • 連結名稱不得超過 49 個字元。
    4. 視需要輸入連線執行個體的「Description」(說明)
    5. 服務帳戶:選取具備必要角色的服務帳戶。
    6. 如要將連線用於事件訂閱,請選取「啟用事件訂閱」。選取這個選項後,系統就會啟用事件訂閱功能和動作。
    7. 接收逾時:等待 MLLP 框架啟動時,系統會使用 SO_TIMEOUT 值 (以毫秒為單位)。預設值為 15000 毫秒。
    8. 目的地通訊協定:從下拉式選單中選取目的地通訊協定。
      1. 如果選取 TCP (MLLP) 做為「目的地通訊協定」,請在新增「目的地」時,輸入 MLLP 伺服器的主機名稱和通訊埠。
      2. 如果選取 REST (Google Cloud HealthCare API) 做為「目的地通訊協定」,請指定下列詳細資料:
        1. 專案 ID:HL7 存放區所在的 Google Cloud 專案 ID。
        2. 位置:資料集和 HL7v2 存放區的位置。
        3. 資料集 ID:包含 HL7v2 存放區的資料集 ID。
        4. HL7 商店 ID:用於儲存 HL7v2 訊息的 HL7v2 商店 ID。
    9. 視需要設定「連線節點設定」

      • 節點數量下限:輸入連線節點數量下限。
      • 節點數量上限:輸入連線節點數量上限。

      節點是用來處理交易的連線單位 (或備用資源)。連線處理的交易量越多,就需要越多節點;反之,處理的交易量越少,需要的節點就越少。如要瞭解節點對連接器定價的影響,請參閱「 連線節點定價」。如未輸入任何值,系統預設會將節點下限設為 2 (提高可用性),節點上限則設為 50。

    10. (選用) 按一下「+ 新增標籤」,以鍵/值組合的形式為連線新增標籤。
    11. 點選「下一步」
  5. 如果選取 TCP(MLLP) 做為目的地通訊協定,請在「目的地」部分輸入要連線的遠端主機 (MLLP 伺服器) 詳細資料。
    1. 目的地類型:選取目的地類型
      • 如要指定目的地主機名稱或 IP 位址,請選取「主機地址」,然後在「主機 1」欄位中輸入地址。
      • 如要建立私人連線,請選取「Endpoint attachment」(端點連結),然後從「Endpoint Attachment」(端點連結) 清單中選擇所需連結。

      如要建立與後端系統的公開連線,並加強安全性,建議為連線設定靜態輸出 IP 位址,然後設定防火牆規則,只允許特定靜態 IP 位址。

    2. 點選「下一步」
  6. HL7 連線不需要任何驗證。按一下「下一步」
  7. 如果已啟用事件訂閱功能,連線建立頁面會顯示「事件訂閱詳細資料」部分。如要瞭解如何設定事件訂閱詳細資料,請參閱「設定事件訂閱」。
  8. 檢查:檢查連線和驗證詳細資料。
  9. 點選「建立」

設定事件訂閱

  • 在「Event Subscription Details」(事件訂閱詳細資料) 區段中,設定事件相關詳細資料。
    • 專案名稱:Pub/Sub 執行個體所在的 Google Cloud 專案。
    • Pub/Sub 主題名稱:要與 HL7v2 存放區建立關聯的 Pub/Sub 主題名稱,通知訊息會傳送到這個主題。
    • 輸入無法傳送郵件的設定。如果設定無效信件,連線會將未處理的事件寫入指定的 Pub/Sub 主題。輸入下列詳細資料:
      1. 無法傳送的訊息專案 ID: 您已設定無法傳送的訊息 Pub/Sub 主題的 Google Cloud 專案 ID。
      2. 無效信件主題: 要寫入未處理事件詳細資料的 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 字串 郵件內容類型,您可以指定為 TextBytes。如要傳送二進位資料,請務必將類型設為 Bytes

    如要以二進位格式傳送訊息,請完成下列工作:

    • 將二進位訊息編碼為 Base64 字串,然後將 message 參數設為編碼值。
    • messageContentType 參數的值設為 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 中建立及使用「連線器」工作,請參閱「連線器工作」。

    向 Google Cloud 社群尋求協助

    如要發布問題及討論這個連接器,請前往 Cloud 論壇的 Google Cloud 社群。

    後續步驟