HL7

HL7 コネクタは、HL7 TCP エンドポイントと REST エンドポイントへの接続を提供します。

始める前に

HL7 コネクタを使用する前に、次の作業を行います。

  • Google Cloud プロジェクトで次の操作を行います。
    • ネットワーク接続が設定されていることを確認します。ネットワーク パターンの詳細については、Network Connectivity をご覧ください。
    • コネクタを構成するユーザーに 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] > [接続] ページに移動し、Google Cloud プロジェクトを選択または作成します。

    [接続] ページに移動

  2. [+ 新規作成] をクリックして [接続の作成] ページを開きます。
  3. [ロケーション] セクションで、接続のロケーションを選択します。
    1. リージョン: プルダウン リストからロケーションを選択します

      サポートされているすべてのリージョンのリストについては、ロケーションをご覧ください。

    2. [次へ] をクリックします。
  4. [接続の詳細] セクションで、次の操作を行います。
    1. コネクタ: 使用可能なコネクタのプルダウン リストから [HL7] を選択します。
    2. コネクタのバージョン: 使用可能なバージョンのプルダウン リストからコネクタのバージョンを選択します。
    3. [接続名] フィールドに、接続インスタンスの名前を入力します。

      接続名は次の条件を満たす必要があります。

      • 接続名には英字、数字、ハイフンを使用できます。
      • 文字は小文字のみを使用できます。
      • 接続名の先頭には英字を設定し、末尾には英字または数字を設定する必要があります。
      • 接続名は 49 文字以内で指定してください。
    4. 必要に応じて、接続インスタンスの [説明] を入力します。
    5. サービス アカウント: 必要なロールを持つサービス アカウントを選択します。
    6. イベント サブスクリプションの接続を使用するには、[イベント サブスクリプションを有効にする] を選択します。このオプションを選択すると、アクションを使用するイベント サブスクリプションが有効になります。
    7. 受信タイムアウト:SO_TIMEOUT 値(ミリ秒単位)は、MLLP フレームの開始を待機するときに使用されます。デフォルト値は 15,000 ミリ秒です。
    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. 必要に応じて、接続ノードの設定を構成します。

      • ノードの最小数: 接続ノードの最小数を入力します。
      • ノードの最大数: 接続ノードの最大数を入力します。

      ノードは、トランザクションを処理する接続の単位(またはレプリカ)です。1 つの接続でより多くのトランザクションを処理するには、より多くのノードが必要になります。逆に、より少ないトランザクションを処理するには、より少ないノードが必要になります。ノードがコネクタの料金に与える影響については、接続ノードの料金をご覧ください。値を入力しない場合は、デフォルトで最小ノード数は 2 に設定され(可用性を高めるため)、最大ノード数は 50 に設定されます。

    10. 必要に応じて、[+ ラベルを追加] をクリックして Key-Value ペアの形式でラベルを接続に追加します。
    11. [次へ] をクリックします。
  5. 宛先プロトコルとして TCP(MLLP)を選択した場合は、[宛先] セクションに、接続するリモートホスト(MLLP サーバー)の詳細を入力します。
    1. 宛先の種類: 宛先の種類を選択します。
      • リストから [ホストアドレス] を選択し、宛先のホスト名または IP アドレスを指定します。
      • バックエンド システムへのプライベート接続を確立する場合は、リストからエンドポイント アタッチメントを選択し、次にエンドポイント アタッチメントリストから必要なエンドポイント アタッチメントを選択します。

      セキュリティをさらに強化してバックエンドシステムへのパブリック接続を確立する場合は、接続用の静的アウトバウンド IP アドレスの構成を検討してから、特定の静的 IP アドレスのみを許可リストに登録するようファイアウォール ルールを構成します。

    2. [次へ] をクリックします。
  6. HL7 接続に認証は必要ありません。[次へ] をクリックします。
  7. イベント サブスクリプションを有効にしている場合は、接続作成ページに [イベント サブスクリプションの詳細] セクションが表示されます。イベント サブスクリプションの詳細の構成方法については、イベント サブスクリプションを構成するをご覧ください。
  8. Review: 接続と認証の詳細を確認します。
  9. [作成] をクリックします。

イベント サブスクリプションを構成する

  • [イベント サブスクリプションの詳細] セクションで、イベント関連の詳細を構成します。
    • プロジェクト名: Pub/Sub インスタンスが存在する Google Cloud プロジェクト。
    • Pub/Sub トピック名: 通知メッセージが送信される HL7v2 ストアに関連付ける Pub/Sub トピック名。
    • デッドレター構成を入力します。デッドレターを構成すると、指定された Pub/Sub トピックに未処理のイベントが書き込まれます。次の詳細情報を入力します。
      1. デッドレター プロジェクト ID: デッドレター Pub/Sub トピックを構成した Google Cloud プロジェクト ID。
      2. デッドレター トピック: 未処理イベントの詳細を書き込む Pub/Sub トピック。
  • エンティティ、オペレーション、アクション

    すべての Integration Connectors が、接続されたアプリケーションのオブジェクトを抽象化するレイヤを提供します。アプリケーションのオブジェクトには、この抽象化を通じてのみアクセスできます。抽象化は、エンティティ、オペレーション、アクションとして公開されます。

    • エンティティ: エンティティは、接続されているアプリケーションやサービスのオブジェクト、またはプロパティのコレクションと考えることができます。エンティティの定義は、コネクタによって異なります。たとえば、データベース コネクタでは、テーブルがエンティティであり、ファイル サーバー コネクタでは、フォルダがエンティティです。また、メッセージング システム コネクタでは、キューがエンティティです。

      ただし、コネクタでいずれのエンティティもサポートされていない、またはエンティティが存在しない可能性があります。その場合、Entities リストは空になります。

    • オペレーション: エンティティに対して行うことができるアクティビティです。エンティティに対して次のいずれかのオペレーションを行うことができます。

      使用可能なリストからエンティティを選択すると、そのエンティティで使用可能なオペレーションのリストが生成されます。オペレーションの詳細については、コネクタタスクのエンティティ オペレーションをご覧ください。ただし、コネクタがいずれかのエンティティ オペレーションをサポートしていない場合、サポートされていないオペレーションは Operations リストに含まれません。

    • アクション: コネクタ インターフェースを介して統合で使用できる主要な関数の一つです。アクションを使用すると、1 つまたは複数のエンティティに対して変更を加えることができます。また、使用できるアクションはコネクタごとに異なります。通常、アクションには入力パラメータと出力パラメータがあります。ただし、コネクタがどのアクションもサポートしていない可能性があります。その場合は、Actions リストが空になります。

    システムの上限

    HL7 コネクタは、ノードごとに 1 秒あたりの次のトランザクション数を処理し、この上限を超えるトランザクションをスロットリングします。

    • 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 アクションの入力パラメータ

    パラメータ名 必須 データ型 説明
    message 文字列 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 アクションの出力パラメータ

    パラメータ名 Data type 説明
    messageId 文字列 送信されたメッセージの ID。
    ステータス 文字列 送信されたメッセージのステータス。

    REST(Google Cloud Healthcare API)を使用した sendMessage アクションの出力パラメータ

    パラメータ名 Data type 説明
    ack 文字列 Google Cloud Healthcare API からの確認メッセージ。
    ステータス 文字列 送信されたメッセージのステータス。

    transformhl7tojson アクション

    次の表に、transformhl7tojson アクションの入出力パラメータを示します。

    transformhl7tojson アクションの入力パラメータ

    パラメータ名 必須 データ型 説明
    hl7Message 文字列 JSON に変換する HL7 メッセージ。

    transformhl7tojson アクションの出力パラメータ

    パラメータ名 Data type 説明
    hl7Json 文字列 HL7 メッセージから変換された JSON。

    transformJsonToHl7 アクション

    次の表に、transformJsonToHl7 アクションの入出力パラメータを示します。

    transformJsonToHl7 アクションの入力パラメータ

    パラメータ名 必須 データ型 説明
    hl7Json 文字列 HL7 メッセージに変換する JSON。

    transformJsonToHl7 アクションの出力パラメータ

    パラメータ名 Data type 説明
    hl7Message 文字列 JSON から変換された HL7 メッセージ。

    transformAndSendHl7BatchMessage アクション

    次の表に、transformAndSendHl7BatchMessage アクションの入出力パラメータを示します。

    Transform and send HL7 Batch Message to Healthcare System アクションの入力パラメータ

    パラメータ名 必須 データ型 説明
    hl7BatchMessage 文字列 変換して送信する HL7 バッチ メッセージ。
    hl7BatchMessageDelimiter × 文字列 HL7 バッチ メッセージ セグメントのデリミタ。デフォルト値は \r です。
    hl7BatchMessageContentType 文字列 HL7 バッチ メッセージのコンテンツ タイプ(テキスト/バイト)。

    Transform and send HL7 Batch Message to Healthcare System アクションの出力パラメータ

    パラメータ名 Data type 説明
    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 で Connectors タスクを作成して使用する方法については、Connectors タスクをご覧ください。
    • Application Integration で Connectors タスクを作成して使用する方法については、Connectors タスクをご覧ください。

    Google Cloud コミュニティの助けを借りる

    Google Cloud コミュニティの Cloud フォーラムで質問を投稿したり、このコネクタについてディスカッションしたりできます。

    次のステップ