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 クエリの手順
-
MPI ID と割り当て機関が含まれる XDS.b Query RequestOpens in a new tab メッセージを InterSystems Document Consumer に提供します。MPI ID は PIX クエリまたは PDQ クエリ (前述) によって取得できます。クエリ要求では、ドキュメント・タイプとステータス (“[承認済み]” など) も指定します。フィルタのリストを含めることもできます。
-
InterSystems Document Consumer は、内部で指定された変換を使用して、メッセージを IHE “XDSb_QueryRequest” メッセージに変換します。
-
その後、InterSystems Document Consumer は、XDSbRegistryServiceName 設定で指定された別のシステム上にある XDS ドキュメント・レジストリ・エンドポイントにクエリを転送します。
-
他のシステム上にある XDS ドキュメント・レジストリは、利用可能なドキュメントのリストを、それらのメタデータおよび場所と共に返します。
-
InterSystems Document Consumer は、TransformToMetadata 設定で指定された変換を使用して、応答からドキュメント・メタデータを抽出します。その後、XDS.b Query ResponseOpens in a new tab メッセージを作成します。
-
InterSystems Document Consumer は、元の XDS ドキュメント・レジストリ応答と、抽出されたメタデータの両方が含まれる XDS.b Query ResponseOpens in a new tab メッセージを返します。
XDS クエリのコンポーネントと設定
XDS クエリで使用されるコンポーネントと設定
XDS Retrieve のメッセージ・トレース
以下の図に、アノテーション付きの XDS Retrieve のメッセージ・トレースを示します。
図に示されているテスト・サービスは、単純なメッセージ・ルータです。トレース操作は、トレース内の中間処理の各段階を可視化するユーティリティです。図中の番号は、以下の手順の各段階に一致します。
XDS Retrieve Document Set の手順
-
クエリ応答を取得し (前述)、クエリでリストされた 1 つ以上のドキュメントのドキュメント固有 ID とリポジトリ固有 ID (OID) が含まれる HS.Message.IHE.XDSb.RetrieveRequestOpens in a new tab メッセージを作成します。各取得要求を送信できるリポジトリは 1 つだけであるため、クエリ応答が複数のリポジトリを参照している場合は、リポジトリごとに 1 つずつ、別個の取得要求に分割する必要があります。
XDS.b Retrieve 要求を InterSystems Document Consumer に送信します。
-
InterSystems Document Consumer は、内部で指定された変換を使用して、メッセージを IHE “XDSb_RetrieveRequest” メッセージに変換します。
-
その後、InterSystems Document Consumer は、メッセージの <RepositoryUniqueID> の値で指定された別のシステム上にある XDS ドキュメント・レジストリ・エンドポイントに要求を転送します。この値が OID です。OID を URL に変換するには、以下の設定が必要です。
Note:
InterSystems Document Consumer の XDSbRepositoryServiceName 設定に値がある場合、メッセージは、メッセージで指定されたリポジトリではなく、この設定で指定されたリポジトリに送信されます。これはテスト目的では便利ですが、プロダクション・アプリケーションではこの設定を空白にする必要があります。
-
他のシステム上にある XDS ドキュメント・リポジトリは、要求されたドキュメントを MIME エンコードされた MTOM 添付ファイルとして提供することによって応答します。
-
InterSystems Document Consumer は、添付ファイルを分離して変換します。
-
InterSystems Document Consumer は、“RetrieveDocumentSetResponse” の種類の XML メッセージで MTOM 添付ファイルを返します。
XDS Retrieve のコンポーネントと設定
XDS Retrieve で使用されるコンポーネントと設定
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
}