5. XDS.b
5.3. トランザクション定義
5.3.1. ストアドクエリ(Registry Stored Query)[ITI-18]
ストアドクエリトランザクション[ITI-18]は、あらかじめ定義されたクエリ(問合せ文)を使用して、さ まざまな種類の問合せを発行することができる。各クエリには、一定のパラメータが定義されており、スト アドクエリ照会メッセージでは、使用するクエリ、及び、そのクエリで定義された各パラメータのパラメー タ値を指定する。クエリの指定は、IHE ITI で各クエリに割り当てられた UUID を使用する。本書では、スト アドクエリ照会メッセージで使用可能な 13 のクエリのうち、表 5-24 に抜粋したクエリのみ使用する。「ク エリ ID」列の UUID は、クエリをメッセージ中で識別するために使用する。
参照規格は、ebRIM (OASIS/ebXML Registry Information Model v3.0)、及び、ebRS (OASIS/ebXML RegistryServices Specifications v3.0)である。
表
5-23
ストアドクエリのメッセージインタラクションメッセージインタラクション 説明
ストアドクエリ(Registry Stored Query) レジストリに対する問合せメッセージ。Adhoc Query Request メッセージを使用する。
ストアドクエリ応答(Registry Sotred Query Aknowledgement)
問合せに対する応答メッセージ。Adhoc Query Response メッセージを使用する。
表 5-24 ストアドクエリの一覧(抜粋)
クエリ名 説明 クエリ ID
FindDocuments 指定された患者に関す る XDSDocumentEntry を検索する。
urn:uuid:14d4debf-8f97-4251-9a74-a90016b0af0d
GetDocuments entryUUID ま た は uniqueId で指定された XDSDocumentEntry を取 得する。
urn:uuid:5c4f972b-d56b-40ac-a5fc-c8ca9b40b9d4 ドキュメントコンシューマ
(Document Consumer)
ドキュメントレジストリ
(Document Registry)
ストアドクエリ(Registry Stored Query)(5.3.1.2.1)
<query:AdhocQueryRequest>
ストアドクエリ応答(Registry Stored Query Acknowledgement)(5.3.1.2.2)
<query:AdhocQueryResponse>
図 5-11 ストアドクエリのインタラクション
uniqueId で指定された XDSDocumentEntry とそ の 関 連 (Association) を取得する。
GetRelatedDocuments entryUUID ま た は uniqueId で指定された XDSDocumentEntry に Association で関連す る XDSDocumenEntry を 取得する。
urn:uuid:d90e5407-b356-4d91-a89f-873917b4b0e6
1)ストアドクエリのパラメータ
ストアドクエリは、表 5-25 に示す 3 つのパラメータを受ける。
表 5-25 ストアドクエリのパラメータ
パラメータ 説明 備考
returnType(返却タイプ) 問合せ結果の返却方法を指定する。 本項の2)返却タイプを参照 Query ID(クエリ ID) 問合せを識別するためのユニークな ID
(UUID)。
表 5-24のクエリ ID を指定する。
問合せパラメータ 問合せ毎に決められた検索条件。 詳細は、5.3.1.2.1 項の、A)~D) を参照。問合せパラメータの指定 方法については、本項の3)クエ リパラメータの指定方法を参照。
2)返却タイプの指定
返却タイプには、「ObjectRef」または「LeafClass」のいずれかの値を指定する。各設定値の意味は、表 5-26 を参照のこと。
表
5-26
返却タイプの設定値returnType の設定値 説明 備考
LeafClass 問合せにマッチした ebXML オブジ ェクトを XML 要素の一覧として返 却する。
完全な ebXML オブジェクトを返却する際に使用 する。ebRIM スロットや ebRIM 分類などの完全 な内容を伴った ExtrinsicOjbect 要素のリスト として返却される。返却される結果が少量の場 合に使用する。
ObjectRef 問合せにマッチしたオブジェクト への参照を UUID のリストとして返 却する。
返却される結果が膨大な場合に、最初に参照リ ストを返却し、 2 回目以降の問合せで、
LeafClass の オ ブ ジ ェ ク ト を 返 却 す る 。 XDSDocumentEntiry や XDSSubmissionSet など単 一のオブジェクトを返却する問合せで使用する 場合に有用である。
3)問合せパラメータの指定方法
各クエリで利用可能な問合せパラメータは、表 5-27 に示す項目で、5.3.1.2.1 項の A)~D)に仕様を示 す。
表 5-27 問合せパラメータ仕様
項目 説明
パラメータ名 問合せパラメータを識別するパラメータ名。「$」で開始される。
属性 対応するドキュメントエントリのメタデータ属性。
制約 パラメータの必須/任意を示す。必須パラメータは「R」、任意パラメータは「O」で示す。
複数指定区分 複数の値を指定可能なパラメータは「M」で示す。
3-1) 日付型パラメータの指定方法
問合せパラメータで指定する日付値は、開始日を含み、終了日を含まない。つまり、From <= 対象項目値 <
To と解釈される。開始日または終了日は省略してもよい。
3-2)コード型パラメータの指定方法
HL7 V2.5 の CE 型の表記法を使用し、CE 型の第 1 成分であるコード値と、第 3 成分であるコード体系を両 方とも必須で指定する。第 2 成分は使用しない。
<Value>(‘code1^^coding-scheme1’)</Value>
複数のパラメータを指定する場合には、次の例のように、カンマ(,)で区切ることで複数指定すること ができる。
<Value>(‘code1^^coding-scheme1’,’code2^^coding-scheme2’)</Value>
3-3)単一の値の指定方法
数値は、シングルクォートを付けずに記録する。文字列は、シングルクォートで囲む。シングルクォー ト中のシングルクォートは、シングルクォートでエスケープする。
文字列検索には、SQL の LIKE 演算子と同様のワイルドカードを使用可能である。パーセント('%’)は、
0 文字以上の任意の文字と一致し、アンダースコア('_’)は、任意の 1 文字と一致する。
3-4)複数の値の指定方法
複数の値を取り得るパラメータは、各パラメータを括弧内にカンマ(,)で連結する。括弧内の要素は、
3-3)で示した、単一の値となる。このとき、検索条件は OR 条件と解釈する。例えば、以下の例は、
「$XDSDocumentEntryEventCodeList の値が’a’または’b’」という検索条件として解釈する。
<rim:Slot name=”$XDSDocumentEntryEventCodeList”>
<rim:ValueList>
<rim:Value>(‘a’, ‘b’)</rim:Value>
</rim:ValueList>
</rim:Slot>
複数の値を記述する場合、スキーマによって決められた Value 要素の最大長を超えてしまう場合がある。
その場合、Slot 要素の中に複数の Value 要素を記述し、各々のパラメータは括弧で囲まれる。
<ValueList>
<Value>(‘urn:uuid:a96d7361-6617-488a-891c-ee3f37d1f218’,’urn:uuid:5655a68 0-1b6a-11dd-bd0b-0800200c9a66’)</Value>
<Value>(‘urn:uuid:ae135e81-2056-4829-a5b4-cf9531941f96’)</Value>
</ValueList>
</Slot>
これは、以下の条件と同等に扱われる。
<Slot name=”$uuid”>
<ValueList>
<Value>(‘urn:uuid:a96d7361-6617-488a-891c-ee3f37d1f218’,’urn:uuid:5655a68 0-1b6a-11dd-bd0b-0800200c9a66’,‘urn:uuid:ae135e81-2056-4829-a5b4-cf9531941f96
’)</Value>
</ValueList>
</Slot>
3-5)複数条件の指定方法
単 一 の Slot に 対 し て 、 複 数 の Value 要 素 は OR 条 件 と 解 釈 す る 。 次 の 例 は 、
「$XDSDocumentEntryEventCodeList の値が’a’または’b’」と解釈する。これは、3-4)で示した例と 同じ結果となる。
<rim:Slot name=”$XDSDocumentEntryEventCodeList”>
<rim:ValueList>
<rim:Value>(‘a’)</rim:Value>
<rim:Value>(‘b’)</rim:Value>
</rim:ValueList>
</rim:Slot>
同一の Slot を複数記述する場合は AND 条件と解釈する。次の例は、「$XDSDocumentEntryEventCodeList の 値が’a’かつ ’b’」と解釈する。
<rim:Slot name=”$XDSDocumentEntryEventCodeList”>
<rim:ValueList>
<rim:Value>(‘a’)</rim:Value>
</rim:ValueList>
</rim:Slot>
<rim:Slot name=”$XDSDocumentEntryEventCodeList”>
<rim:ValueList>
<rim:Value>(‘b’)</rim:Value>
</rim:ValueList>
</rim:Slot>
3-6)文書ステータスの指定方法