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

XDS レジストリのクエリとリポジトリからのドキュメントの取得

インターシステムズ製品は、IHE “XDS.b Registry Stored Query” トランザクションを介して、XDS ドキュメント・レジストリに対してクエリを実行して患者のドキュメントのリストを要求できます。その後、IHE “XDS.b Retrieve Document Set” トランザクションを介して、XDS リポジトリから保存済みのドキュメントを 1 つ以上取得できます。

IHE は、共通の IHE インフラストラクチャを共有する医療システムのアフィニティ・ドメインという考えをサポートしています。アフィニティ・ドメインは、RHIO、IDN、または他の何らかの組織である場合があります。各アフィニティ・ドメインは 1 つのドキュメント・レジストリを持ち、複数のドキュメント・リポジトリを持つ場合があります。アフィニティ・ドメイン内のドキュメントのみをクエリおよび取得するには、XDS.b プロファイルを使用します。アフィニティ・ドメイン外部のドキュメントもクエリおよび取得するには、代わりに XCA プロファイルを使用します。

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

以下の図に、アノテーション付きの XDS クエリのメッセージ・トレースを示します。

図に示されているテスト・サービスは、単純なメッセージ・ルータです。トレース操作は、トレース内の中間処理の各段階を可視化するユーティリティです。図中の番号は、以下の手順の各段階に一致します。

XDS クエリの手順

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

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

  3. その後、InterSystems Document Consumer は、XDSbRegistryServiceName 設定で指定された別のシステム上にある XDS ドキュメント・レジストリ・エンドポイントにクエリを転送します。

  4. 他のシステム上にある XDS ドキュメント・レジストリは、利用可能なドキュメントのリストを、それらのメタデータおよび場所と共に返します。

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

  6. InterSystems Document Consumer は、元の XDS ドキュメント・レジストリ応答と、抽出されたメタデータの両方が含まれる XDS.b Query ResponseOpens in a new tab メッセージを返します。

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

XDS クエリで使用されるコンポーネントと設定
コンポーネント 設定
ビジネス・ホスト Document Consumer : HS.HC.IHE.XDSb.Consumer.OperationsOpens in a new tab
プロダクション設定 Document Consumer 内の XDSbRegistryServiceName
プロダクション設定 Document Consumer 内の TransformToMetadata
プロダクション・メッセージ HS.Message.IHE.XDSb.QueryRequestOpens in a new tab
プロダクション・メッセージ HS.Message.IHE.XDSb.QueryResponseOpens in a new tab
XSL 変換 QueryRequestToXDSbQuery.xsl
XSL 変換 MessageToMetadata.xsl
サービス・レジストリ・エントリ XDSb.Registry
外部 IHE アクター・エンドポイント XDS ドキュメント・レジストリ

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

以下の図に、アノテーション付きの XDS Retrieve のメッセージ・トレースを示します。

図に示されているテスト・サービスは、単純なメッセージ・ルータです。トレース操作は、トレース内の中間処理の各段階を可視化するユーティリティです。図中の番号は、以下の手順の各段階に一致します。

XDS Retrieve Document Set の手順

  1. クエリ応答を取得し (前述)、クエリでリストされた 1 つ以上のドキュメントのドキュメント固有 ID とリポジトリ固有 ID (OID) が含まれる HS.Message.IHE.XDSb.RetrieveRequestOpens in a new tab メッセージを作成します。各取得要求を送信できるリポジトリは 1 つだけであるため、クエリ応答が複数のリポジトリを参照している場合は、リポジトリごとに 1 つずつ、別個の取得要求に分割する必要があります。

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

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

  3. その後、InterSystems Document Consumer は、メッセージの <RepositoryUniqueID> の値で指定された別のシステム上にある XDS ドキュメント・レジストリ・エンドポイントに要求を転送します。この値が OID です。OID を URL に変換するには、以下の設定が必要です。

    • OID の、タイプ “Repository” の OID レジストリ・エントリ

    • リポジトリの URL を提供するサービス・レジストリ・エントリ

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

    Note:

    InterSystems Document Consumer の XDSbRepositoryServiceName 設定に値がある場合、メッセージは、メッセージで指定されたリポジトリではなく、この設定で指定されたリポジトリに送信されます。これはテスト目的では便利ですが、プロダクション・アプリケーションではこの設定を空白にする必要があります。

  4. 他のシステム上にある XDS ドキュメント・リポジトリは、要求されたドキュメントを MIME エンコードされた MTOM 添付ファイルとして提供することによって応答します。

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

  6. InterSystems Document Consumer は、“RetrieveDocumentSetResponse” の種類の XML メッセージで MTOM 添付ファイルを返します。

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

XDS Retrieve で使用されるコンポーネントと設定
コンポーネント 設定
ビジネス・ホスト Document Consumer : HS.HC.IHE.XDSb.Consumer.OperationsOpens in a new tab
プロダクション設定

Document Consumer 内の XDSbRepositoryServiceName

  • テスト専用

プロダクション・メッセージ HS.Message.IHE.XDSb.RetrieveRequestOpens in a new tab
プロダクション・メッセージ HS.Message.XMLMessageOpens in a new tab
  • RetrieveDocumentSetResponse

XSL 変換 RetrieveRequestToXDSbRetrieve.xsl
サービス・レジストリ・エントリ XDSb.Repository (またはメッセージで指定されたリポジトリ)
外部 IHE アクター・エンドポイント XDS ドキュメント・リポジトリ

XDS クエリと取得の例

以下に XDS クエリと取得のサンプルを示します。

 ClassMethod XDSbQueryRetrieve()
  {
      // Create the XDSb Query Request message
      Set MyQuery=##class(HS.Message.IHE.XDSb.QueryRequest).%New()
  
      // Add the MPI ID, document status and type
      Do MyQuery.AddPatientId("100000002^^^&1.3.6.1.4.1.21367.2010.1.2.300&ISO")
      Do MyQuery.AddStatusValues("Approved")
      Do MyQuery.AddDocumentType(3)
  
      // Optionally insert other query parameters
      // Do MyQuery.Parameters.Insert(##class(HS.Message.IHE.XDSb.QueryItem).CodedValue(
      // "$XDSDocumentEntryFormatCode",code,scheme))
  
      // Send the message to the test service (or directly to HS.IHE.XDSb.Consumer.Operations or 
      // HS.HC.IHE.XDSb.Consumer.Operations)  
      Write ##class(HS.Test.Service).SendSync(MyQuery,.pr)
  
      Break
  
  
      /// XDSbRetrieve /// 
  
      // Assumes you are using the response from the previous query.
      // Currently this is limited to retrieval from a single repository,
      // so if the query response contains multiple repositories, they should 
      // be split out into separate retrieve requests.
  
      // 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 
  
      // Send the message to the test service (or directly to HS.IHE.XDSb.Consumer.Operations or   
      // HS.HC.IHE.XDSb.Consumer.Operations)  
      Write ##class(HS.Test.Service).SendSync(obj,.rr)
  
    Quit
  }
FeedbackOpens in a new tab