Skip to main content

This documentation is for an older version of this product. See the latest version of this content.Opens in a new tab

別のアフィニティ・ドメインのドキュメントのクエリと取得 (XCA)

IHE は、共通の IHE インフラストラクチャを共有する医療システムのアフィニティ・ドメインという考えをサポートしています。アフィニティ・ドメインは、RHIO、IDN、または他の何らかの組織である場合があります。各アフィニティ・ドメインは 1 つのドキュメント・レジストリを持ち、複数のドキュメント・リポジトリを持つ場合があります。

インターシステムズ製品は、XCPD Cross-Gateway Patient Discovery トランザクションを介して、他のアフィニティ・ドメインで患者識別子を検索できます。続いて、この患者識別子を使用し、XCA Cross-Gateway Query トランザクションを介して、ドキュメント・レジストリに対してクエリを実行し、ドキュメントのリストを要求できます。その後、XCA Retrieve Document Set トランザクションを介して、指定されたリポジトリから保存済みのドキュメントを 1 つ以上取得できます。

外部から見ると、XCA は、患者探索以外の点では基本的に XDS と同じです。XCA は XDS と同じメッセージング・インフラストラクチャを使用しており、ドキュメント・クエリでローカル・リポジトリと他のアフィニティ・ドメインの両方を検索するようにインターシステムズ製品を設定できます。

この章では、以下のトピックについて説明します。

XCA クエリのメッセージ・トレース

以下の図に、アノテーション付きの XCA クエリのメッセージ・トレースを示します。ここには、患者探索 (XCPD) およびドキュメント・クエリが示されています。

図に示されているトレース操作は、トレース内の中間処理の各段階を可視化するユーティリティです。図中の番号は、以下の手順の各段階に一致します。この手順の最初の 3 段階と最後の 3 段階は別のセッションで実行され、基本的に XDS.b クエリ・トランザクションの段階と同じです。

XCA クエリの手順

インターシステムズ製品における XCA クエリ・トランザクションは、XDS クエリ要求メッセージで始まります。XDS Document Consumer で特定のリポジトリを指すのではなく、代わりに、ローカル・リポジトリと、他のアフィニティ・ドメイン内にあるリポジトリの両方を認識している XCA Initiating Gateway を指します。これを設定する最も簡単な方法は、Initiating Gateway サービスの URL が含まれるサービス・レジストリ・エントリを作成して、そのエントリ (例えば “XCA.IG”) を呼び出すことです。続いて、XCA Document Consumer の XDSbRegistryServiceName 設定を XCA.IG に設定します。

以下に、XCA クエリの完全な手順を示します。最初の 3 段階と最後の 3 段階は別個のセッションで実行され、基本的に XDS.b クエリ・トランザクションと同じです。これらは図に示されていません。

  1. MPI ID と割り当て機関が含まれる XDSb.QueryRequestOpens in a new tab メッセージを XDS.b Document Consumer に提供します。クエリ要求では、ドキュメント・タイプとステータス (“[承認済み]” など) も指定します。フィルタのリストを含めることもできます。

    MPI ID は PIX クエリまたは PDQ クエリ (前述) によって取得できます。

  2. Document Consumer は、TransformRetrieveToXDSb 設定を使用して、メッセージを IHE “XDSb_QueryRequest” メッセージに変換します。

  3. Document Consumer は、XDSbRegistryServiceName 設定で指定された XCA Initiating Gateway サービスにクエリを転送します。手順の残りの部分は、Document Consumer が応答を受信するまで、新しいセッションで実行されます。

  4. XCA Initiating Gateway サービスは、XCPDInitiatingGatewayProcess 設定で指定された XCPD Initiating Gateway プロセスにメッセージを転送します。

  5. XCA Initiating Gateway プロセスは、内部で指定された変換を使用して、メッセージを IHE “XCA_QueryRequest” メッセージに変換し、それを XCPD Initiating Gateway プロセスに転送して患者探索を開始します。

  6. XCPD Initiating Gateway プロセスは、要求から MPI ID を抽出し、Patient Search Request メッセージを作成します。

  7. XCPD Initiating Gateway プロセスは、PDQv3Consumer 設定で指定された PDQ Consumer に Patient Search Request を送信することにより、患者の基本情報を取得します。

  8. PDQ Consumer は、基本情報を返します。

  9. XCPD Initiating Gateway プロセスでは、PDQ から返された <LivingSubjectID><Root> 要素が提供 MPI ID の割り当て機関と同じであることを確認します。

  10. XCPD Initiating Gateway プロセスは、XCPDQueryServiceNames 設定を確認します。この設定には、他のアフィニティ・ドメイン内にある XCPD Responding Gateway エンドポイントを指すサービス・レジストリ・エントリのコンマ区切りリストが含まれる必要があります。

  11. XCPD Initiating Gateway プロセスは、既知の XCPD Responding Gateway ごとに 1 つの XCPD Patient Discovery Request を XCPD Initiating Gateway 操作に送信します。

  12. XCPD Initiating Gateway 操作は、探索要求を、他のアフィニティ・ドメイン内にある XCPD Responding Gateway に転送します。続いて、XCPD Responding Gateway からの XCPD Patient Discovery Response を XCPD Initiating Gateway プロセスに返します。各応答には、提供された基本情報に一致すると考えられる 0 人、1 人、または複数人の患者の MPI ID と基本情報が含まれます。これらは PDQ 応答とまったく同様です。

  13. XCPD Initiating Gateway プロセスは、応答を変換し、ホーム・コミュニティ OID を OID レジストリからのホーム・コミュニティ ID に置換します。

  14. XCPD Initiating Gateway プロセスは、一意の一致の MPI ID とホーム・コミュニティ (割り当て機関) を抽出し、ホーム・コミュニティ内の複数の患者に一致するものはすべて破棄します。

  15. XCPD Initiating Gateway プロセスは、IHE “XCA_QueryResponse” メッセージを XCA Initiating Gateway プロセスに返します。ここには、ホーム・コミュニティごとに最大でも 1 つのエントリで、MPI ID とホーム・コミュニティ ID のリストが含まれます。

  16. XCA Initiating Gateway プロセスは、これらのホーム・コミュニティ ID を使用して、ホーム・コミュニティ OID を取得します。各 OID を URL に変換するには、以下の設定が必要です。

    • 各ホーム・コミュニティ OID の、タイプ “HomeCommunity” の OID レジストリ・エントリ

    • そのコミュニティの XCA Responding Gateway アクターの URL を提供する、各ホーム・コミュニティのサービス・レジストリ・エントリ :

      • 各サービス・レジストリ・エントリには、[HomeCommunity] フィールドに OID レジストリ・コードが含まれる必要があります。これにより、OID とサービス・レジストリ・エントリを関連付けます。

      • 各サービス・レジストリ・エントリには、[デバイス関数] フィールドに XCA.Query が含まれる必要があります。これは、デバイスがこのコミュニティの “XCA クエリ・デバイス” であることを示します。

  17. XCPD Initiating Gateway プロセスによって返された一致それぞれに対して、XCA Initiating Gateway プロセスは、XCAInitiatingGatewayOperation 設定で指定された XCA Initiating Gateway 操作に XCA_QueryRequest メッセージを送信します。

    XDSbQueryServiceName フィールドに値 (ローカル XDS レジストリを指している必要があります) がある場合、XCA Initiating Gateway プロセスは、XCA Initiating Gateway 操作に XDSb_QueryRequest も送信します。これにより、ローカル XDS レジストリ内でのドキュメント検索がトリガされます。

  18. XCA Initiating Gateway 操作は、クエリ要求を XCA Responding Gateway (および可能な場合はローカル・レジストリ) に転送します。その後、XCA Responding Gateway (およびローカル・レジストリ) からのクエリ応答を XCA Initiating Gateway プロセスに返します。各応答は、患者に対して利用可能な各ドキュメントのドキュメント・メタデータと場所を示します。

  19. XCA Initiating Gateway プロセスは、さまざまな応答を結合します。

  20. XCA Initiating Gateway プロセスは、“XCA_QueryResponse” の種類の XML メッセージを XCA Initiating Gateway サービスに返します。

  21. XCA Initiating Gateway サービスは、結合した応答を “XDSb_QueryResponse” の種類の XML メッセージで元のセッションの XDS.b Document Consumer に返します。

  22. Document Consumer は、TransformToMetadata 設定で指定された変換を使用して、応答からドキュメント・メタデータを抽出します。その後、HS.Message.IHE.XDSb.QueryResponseOpens in a new tab メッセージを作成します。

  23. Document Consumer は、元の XCA および XDS.b の応答と、抽出されたメタデータの両方が含まれる XDS.b Query ResponseOpens in a new tab メッセージを返します。"XCA Retrieve の手順" で説明されているように、このメッセージを使用して、XCA Retrieve を開始できます。

XCA クエリのコンポーネントと設定

XCA クエリで使用されるコンポーネントと設定
コンポーネント 設定
ビジネス・ホスト XCA Document Consumer : HS.HC.IHE.XDSb.Consumer.OperationsOpens in a new tab
ビジネス・ホスト XCA Initiating Gateway サービス : HS.IHE.XCA.InitiatingGateway.ServicesOpens in a new tab
ビジネス・ホスト XCA Initiating Gateway プロセス : HS.IHE.XCA.InitiatingGateway.ProcessOpens in a new tab
ビジネス・ホスト XCA Initiating Gateway 操作 : HS.IHE.XCA.InitiatingGateway.OperationsOpens in a new tab
ビジネス・ホスト XCPD Initiating Gateway プロセス : HS.IHE.XCPD.InitiatingGateway.ProcessOpens in a new tab
ビジネス・ホスト XCPD Initiating Gateway 操作 : HS.IHE.XCPD.InitiatingGateway.OperationOpens in a new tab
ビジネス・ホスト PDQ Consumer : HS.IHE.PDQv3.Consumer.Operations Opens in a new tab
プロダクション設定 XDS.b Document Consumer 内の XDSbRegistryServiceName
  • XCA Initiating Gateway サービスの場所に設定します。

プロダクション設定 XCA Initiating Gateway サービス内の XCPDInitiatingGatewayProcess
プロダクション設定 XCPD Initiating Gateway プロセス内の PDQv3Consumer
プロダクション設定 PDQ Consumer 操作内の Service Name
プロダクション設定 XCPD Initiating Gateway プロセス内の XCPDQueryServiceNames
  • 他のシステム上にある XCPD Responding Gateway エンドポイントを指すサービス・レジストリ・エントリのコンマ区切りリスト。

プロダクション設定 XCA Initiating Gateway プロセス内の XCAInitiatingGatewayOperation
プロダクション設定 XCA Initiating Gateway プロセス内の XDSbQueryServiceName
  • ローカル XDS.b レジストリの URL が含まれるサービス・レジストリ・エントリ。ここに値を入力すると、XCA Initiating Gateway を XCA クエリと XDS.b クエリの両方で使用できます。

プロダクション設定 XDS.b Document Consumer 内の TransformToMetadata
プロダクション・メッセージ HS.Message.IHE.XDSb.QueryRequestOpens in a new tab
プロダクション・メッセージ HS.Message.IHE.XDSb.QueryResponseOpens in a new tab
プロダクション・メッセージ

HS.Message.XMLMessageOpens in a new tab

  • XDSb_QueryRequest

  • XDSb_QueryResponse

  • XCA_QueryRequest

  • XCA_QueryResponse

  • XCPD_PatientDiscoveryRequest

  • XCPD_PatientDiscoveryResponse

プロダクション・メッセージ HS.Message.PatientSearchRequestOpens in a new tab (PDQ クエリの場合)
プロダクション・メッセージ HS.Message.PatientSearchResponseOpens in a new tab (PDQ クエリの場合)
XSL 変換 XDS.b Document Consumer 内の QueryRequestToXDSbQuery.xsl
XSL 変換 PDQ 内の IHE/PDQ/Version1/PatientSearchToPRPAIN201305UV.xsl
XSL 変換 PDQ 内の IHE/PDQ/Version1/PRPAIN201306UVToPatientSearchResponse.xsl
XSL 変換 XDS.b Document Consumer 内の Message-To-Metadata.xsl
サービス・レジストリ・エントリ XCA.IG (または類似)
  • XCA Initiating Gateway サービスを指す

サービス・レジストリ・エントリ PDQv3.Supplier (PDQ クエリの場合)
サービス・レジストリ・エントリ

XCPD.RespondingGateway.1

XCPD.RespondingGateway.2

など :

  • ホーム・コミュニティ内のさまざまな XCPD Responding Gateway の URL

サービス・レジストリ・エントリ そのコミュニティの XCA Responding Gateway エンドポイントの URL を指す各ホーム・コミュニティの XCA.Query デバイス。[HomeCommunity] フィールドにコミュニティの OID レジストリ・コードが記述されていて、[デバイス関数] フィールドに XCA.Query が記述されている必要があります。
OID レジストリ・エントリ 各ホーム・コミュニティの HomeCommunity OID
外部 IHE アクター・エンドポイント PDQ Supplier
外部 IHE アクター・エンドポイント XCPD Responding Gateway
外部 IHE アクター・エンドポイント XCA Responding Gateway

XCA Retrieve のメッセージ・トレース

以下の図に、アノテーション付きの XCA ドキュメント取得のメッセージ・トレースを示します。

図に示されているトレース操作は、トレース内の中間処理の各段階を可視化するユーティリティです。図中の番号は、以下の手順の各段階に一致します。この手順の最初の 3 段階と最後の 3 段階は別のセッションで実行され、基本的に XDS.b Retrieve トランザクションの段階と同じです。

XCA Retrieve の手順

以下に、XCA Retrieve の手順を示します。最初の 3 段階と最後の 3 段階は別のセッションで実行され、基本的に XDS.b Retrieve トランザクションと同じです。これらは図に示されていません。

  1. XDS.b クエリ応答を取得し (前述)、クエリ応答でリストされた 1 つ以上のドキュメントのドキュメント固有 ID とリポジトリ固有 ID (OID) が含まれる HS.Message.IHE.XDSb.RetrieveRequestOpens in a new tab メッセージを作成します。

    XDS.b Retrieve 要求を XDS.b Document Consumer に送信します。

  2. Document Consumer は、内部で指定された変換を使用して、メッセージを IHE “XDSb_RetrieveRequest” メッセージに変換します。

  3. その後、Document Consumer は要求を XCA Initiating Gateway サービスに転送します。このサービスは XDSbRepositoryServiceName フィールドで指定します。XCA の場合、このフィールドには、プロダクションの XCA Initiating Gateway サービスの URL が含まれるサービス・レジストリ・エントリが格納されている必要があります。XDS.b のみを使用している場合、このフィールドは通常、空のままです。

    手順の残りの部分は、Document Consumer が応答を受信するまで、新しいセッションで実行されます。

  4. XCA Initiating Gateway サービスは、要求を XCA Initiating Gateway プロセスに転送します。

  5. 要求には、さまざまなホーム・コミュニティ (場合によってはローカル・コミュニティを含む) からのドキュメントが含まれることがあります。XCA Initiating Gateway プロセスは、それらを分離します。メッセージの <HomeCommunityId> は、OID として指定されます。OID を URL に変換するには、以下の設定が必要です。

    • 各ホーム・コミュニティ OID の、タイプ “HomeCommunity” の OID レジストリ・エントリ

    • そのコミュニティの XCA Responding Gateway アクターの URL を提供するローカル以外の各ホーム・コミュニティのサービス・レジストリ・エントリ :

      • 各サービス・レジストリ・エントリには、[ホーム・コミュニティ] フィールドに OID レジストリ・コードが含まれる必要があります。これにより、OID とサービス・レジストリ・エントリを関連付けます。

      • 各サービス・レジストリ・エントリには、[デバイス関数] フィールドに XCA.Retrieve が含まれる必要があります。これは、デバイスがホーム・コミュニティの “XCA Retrieve デバイス” であることを示します。

    • XDS リポジトリの URL を提供するローカル・ホーム・コミュニティのサービス・レジストリ・エントリ :

      • このサービス・レジストリ・エントリには、[リポジトリ] フィールドに OID レジストリ・コードが含まれる必要があります。これにより、OID とサービス・レジストリ・エントリを関連付けます。

      • このサービス・レジストリ・エントリには、[デバイス関数] フィールドに XDSb.Retrieve が含まれる必要があります。これは、デバイスがローカル・ホーム・コミュニティの “XDS.b Retrieve デバイス” であることを示します。

  6. XCA Initiating Gateway プロセスは、各コミュニティに対して XCA_RetrieveRequest を作成します。

  7. XCA Initiating Gateway プロセスは、要求を XCA Initiating Gateway 操作に送信します。

  8. XCA Initiating Gateway 操作は、要求を適切な XCA Responding Gateway エンドポイントに転送し、それらの応答を XCA Initiating Gateway プロセスに返します。

  9. XCA Initiating Gateway プロセスは、さまざまなホーム・コミュニティからの応答を結合します。

  10. XCA Initiating Gateway プロセスは、メッセージ本文内のドキュメントのリストと、MIME エンコードされた MTOM 添付ファイルのセットが各ドキュメントに対して 1 つ含まれる XCA_RetrieveResponse メッセージを作成します。

  11. XCA Initiating Gateway プロセスは、クエリ応答を XCA Initiating Gateway サービスに返します。

  12. XCA Initiating Gateway サービスは、結合した応答を “XDSb_RetrieveResponse” の種類の XML メッセージで元のセッションの XDS.b Document Consumer に返します。

  13. Document Consumer は、添付ファイルを分離して変換します。

  14. Document Consumer は、ドキュメントのリストと、MIME エンコードされた MTOM 添付ファイルを、<DocType> が “RetrieveDocumentSetResponse” で “XDSb_RetrieveResponse” の種類の XML メッセージで返します。

XDS Retrieve のコンポーネントと設定

XDS Retrieve で使用されるコンポーネントと設定
コンポーネント 設定
ビジネス・ホスト XCA Document Consumer : HS.HC.IHE.XDSb.Consumer.OperationsOpens in a new tab
ビジネス・ホスト XCA Initiating Gateway サービス : HS.IHE.XCA.InitiatingGateway.ServicesOpens in a new tab
ビジネス・ホスト XCA Initiating Gateway プロセス : HS.IHE.XCA.InitiatingGateway.ProcessOpens in a new tab
ビジネス・ホスト XCA Initiating Gateway 操作 : HS.IHE.XCA.InitiatingGateway.OperationsOpens in a new tab
プロダクション設定 XCA Document Consumer 内の XDSbRepositoryServiceName
  • ローカル XCA Initiating Gateway サービスを指す

プロダクション設定 XCA Initiating Gateway プロセス内の XCAInitiatingGatewayOperation
プロダクション・メッセージ HS.Message.IHE.XDSb.RetrieveRequestOpens in a new tab
プロダクション・メッセージ HS.Message.IHE.XDSb.QueryResponseOpens in a new tab
プロダクション・メッセージ

HS.Message.XMLMessageOpens in a new tab

  • XCA_RetrieveRequest

  • XCA_RetrieveResponse

  • XCA_QueryResponse

  • XDSb_RetrieveResponse

  • XDSb_RetrieveResponse (RetrieveDocumentSetResponse)

XSL 変換 XCA Document Consumer 内の RetrieveRequestToXDSbRetrieve.xsl
XSL 変換 XCA Document Consumer 内の Message-To-Metadata.xsl
サービス・レジストリ・エントリ XCA.IG (または類似)
  • ローカル XCA Initiating Gateway サービスを指す

サービス・レジストリ・エントリ そのコミュニティの XCA Responding Gateway エンドポイントの URL を指す各外部ホーム・コミュニティの XCA.Retrieve デバイス。[HomeCommunity] フィールドにコミュニティの OID レジストリ・コードが記述されていて、[デバイス関数] フィールドに XCA.Retrieve が記述されている必要があります。
サービス・レジストリ・エントリ

XDS リポジトリの URL を提供するローカル・ホーム・コミュニティのサービス・レジストリ・エントリ。このサービス・レジストリ・エントリには、[リポジトリ] フィールドに OID レジストリ・コードが含まれる必要があります。これにより、OID とサービス・レジストリ・エントリを関連付けます。このサービス・レジストリ・エントリには、[デバイス関数] フィールドに XDSb.Retrieve が含まれる必要があります。これは、デバイスがローカル・ホーム・コミュニティの “XDS.b Retrieve デバイス” であることを示します。

OID レジストリ・エントリ ローカル・ホーム・コミュニティと各外部ホーム・コミュニティの HomeCommunity OID
OID レジストリ・エントリ ローカル XDS リポジトリのリポジトリ OID
外部 IHE アクター・エンドポイント XCA Responding Gateway

XDS リポジトリ (ローカル・ホーム・コミュニティ内)

XCA クエリと取得の例

以下のメソッドは、記述されている各外部アフィニティ・ドメイン内でドキュメント・レジストリに対してクエリを実行するメッセージを送信し、見つかったドキュメントをすべて取得します。続行するには、BREAK コマンドの後にユーザが G を入力する必要があります。

/// XCA Query and retrieve///
ClassMethod XCAQuery()
{
  
  // Create an XDSb Query Request message
  s o=##class(HS.Message.IHE.XDSb.QueryRequest).%New()

  // Add the MPI ID, document status, type and creation date
  Do o.AddPatientId("100000001^^^&1.3.6.1.4.1.21367.2010.1.2.300&ISO")
  //This is the format required by IHE

  Do o.AddStatusValues("Approved")

  Do o.AddCreationFrom("20110510102615-0400")

  Do o.AddDocumentType(1) // 1 is stable, 2 is on-demand, 3 is both

  Do o.AdditionalInfo.SetAt(1,"XCA")

  // Send the message to the test service (or directly to 
  // HS.IHE.XDSb.Consumer.Operations or HS.HC.IHE.XDSb.Consumer.Operations)  
  w ##class(HS.Test.Service).SendSync(o,.pr)

  Break

  /// XCA Retrieve /// 

  // Assumes you are using the response from the previous query.
  
  // Create the XDSb Retrieve Request message
  Set obj=##class(HS.Message.IHE.XDSb.RetrieveRequest).%New() 

  // Use the results of the query to populate the message
  Set obj.Documents=pr.Documents 

  // Required only for HS.Test.Service to distinguish between XCA and XDS.b
  Do obj.AdditionalInfo.SetAt(1,"XCA")

  // Send the message to the test service (or directly to XCA Document Consumer)  
  Write ##class(HS.Test.Service).SendSync(obj,.rr)

  Quit
}
FeedbackOpens in a new tab