「Healthcare: Web service to DICOM」パターンの照会メッセージは、DICOM タグを使用してその検索基準を指定します。 DICOM 標準は、タグ名、その意味、および暗黙的値を定義します。 各照会ルートおよびレベルで、1 つのタグが固有 (U) として定義されます。 固有タグの単一値は、単一エンティティーをそのレベルで一意的に識別します。 つまり、同じレベルの 2 つのエンティティーが同じ固有タグ値を持つことはありません。 C-FIND SCP では、DICOM によって定義されるすべての固有タグの存在およびマッチングがサポートされています。 C-FIND SCP によって管理されるすべてのエンティティーは、固有の非ゼロの長さの固有タグ値を持つ必要があります。
各 DICOM 照会ルートおよびレベルには、あらゆる DICOM ベンダーがサポートしていなければならない少数セットの必須 (R) タグがあります。 必須タグは、C-FIND 要求に含まれている値に基づくマッチングを C-FIND の SCP がサポートしている必要があることを暗黙に示します。 複数のエンティティーに、必須タグに関して同じ値が含まれている場合があります。 つまり、必須タグの個別値が必ずしもキーのレベルで単一エンティティーを識別するとは限りません。 C-FIND SCP では、特定のルートおよびレベルによって定義されるすべての必須タグの存在およびマッチングがサポートされています。 ゼロ長のタグを含むエンティティーを C-FIND SCP が管理する場合、値は不明と見なされ、ゼロ長のタグに対するマッチングはすべて正常一致と見なされます。
DICOM ベンダーがサポートしている可能性があるオプション (O) タグのセットは、より多く存在しています。 ベンダーは、検索基準でサポートされているタグを自由に追加できます。 C-FIND 要求に含まれているオプション・タグは、C-FIND SCP による存在のサポートやマッチングのサポートに応じて、3 つの異なるタイプの動作をすることがあります。 まず、C-FIND SCP がオプション・タグの存在をサポートしていない場合、タグは C-FIND 応答で返されません。 2 つ目に、SCP がオプション・タグの存在はサポートしているものの、タグのマッチングはサポートしていない場合、そのタグはゼロ長の必須タグと同じように処理されます。 つまり、タグのマッチングが指定されている値は無視されるものの、応答メッセージで SCP によって値が返される可能性があります。 最後に、SCP がタグの存在とマッチングをサポートしている場合、そのタグは必須タグと同じように処理されます。
DICOM には C-FIND 検索基準を記述するための多数のオプションがあります。 具体的には、ワイルドカードや日時範囲、リスト内の一致する複数の値などです。 詳しくは、DICOM 標準の PS3.4 を参照してください。 DICOMFindMove ノードは現在、シーケンスでのマッチングをサポートしていません。 DICOMFindMove ノードに対する XML 照会メッセージでは、追加の戻りタグを求める場合があります。 そのタグは、SCP に対する C-FIND 要求の検索基準では使用されません。 戻りタグが SCP によってサポートされている場合、応答メッセージには、各検索タグのマッチングの値と各戻りタグの値が含まれます。
以下の例は、00100010 (PatientName)、00080050 (AccessionNumber) という 2 つの検索タグと、00080054 (RetrieveAETitle) で構成される追加の戻りタグを含む XML 照会メッセージを示しています。
<DICOM:FindMove xmlns:DICOM="http://com.ibm.healthcare/DICOM">
<QueryRoot>STUDY</QueryRoot>
<QueryLevel>STUDY</QueryLevel>
<Match>
<Attribute Tag="00100010">FEROVIX</Attribute>
<Attribute Tag="00080050">1210490</Attribute>
</Match>
<Return>
<Attribute Tag="00080054"/>
</Return>
</DICOM:FindMove>
照会メッセージは、タグ名 (例えば、PatientID) またはタグ (00100020) を使ってその検索基準を指定できます。
一般的にタグ名は、タグを使用するよりも分かりやすく、間違いにくいと考えられています。
以下に示すように、応答メッセージは常に DICOM タグを使用します。
以下の例は、SOAP 応答エンベロープが削除された DICOM C-FIND 結果メッセージを示しています。
<DICOM:Results xmlns:DICOM="http://com.ibm.healthcare/DICOM">
<DICOM>
<Attribute Tag="00080005" VR="CS">ISO_IR 100</Attribute>
<Attribute Tag="00080016" VR="UI">1.2.840.10008.5.1.4.1.1.2</Attribute>
<Attribute Tag="00080018" VR="UI">1.3.12.2.1107.5.1.4.54023.30000004093016410718700003864</Attribute>
<Attribute Tag="00080052" VR="CS">IMAGE</Attribute>
<Attribute Tag="00080054" VR="AE">PACS</Attribute>
<Attribute Tag="00080056" VR="CS">ONLINE</Attribute>
<Attribute Tag="0020000D" VR="UI">1.3.12.2.1107.5.1.4.54023.30000004093013443132800000021</Attribute>
<Attribute Tag="0020000E" VR="UI">1.3.12.2.1107.5.1.4.54023.30000004093016410718700003676</Attribute>
<Attribute Tag="00200013" VR="IS">188</Attribute>
<Attribute Tag="00880130" VR="SH"/>
<Attribute Tag="00880140" VR="UI"/>
</DICOM>
</DICOM:Results>
結果メッセージ内の各 DICOM タグの意味を以下の表に示します。
| タグ | 名前 | 値 |
|---|---|---|
| 00080005 | SpecificCharacterSet | ISO_IR 100 |
| 00080016 | SOPClassUID | 1.2.840.10008.5.1.4.1.1.2 |
| 00080018 | SOPInstanceUID | 1.3.12.2.1107.5.1.4.54023.30000004093016410718700003864 |
| 00080052 | QueryRetrieveLevel | IMAGE |
| 00080054 | RetrieveAETitle | PACS |
| 00080056 | InstanceAvailability | ONLINE |
| 0020000D | StudyInstanceUID | 1.3.12.2.1107.5.1.4.54023.30000004093013443132800000021 |
| 0020000E | SeriesInstanceUID | 1.3.12.2.1107.5.1.4.54023.30000004093016410718700003676 |
| 00200013 | InstanceNumber | 188 |
| 00880130 | StorageMediaFileSetID | |
| 00880140 | StorageMediaFileSetUID |
XML 要求メッセージ内で QueryRoot エレメントと QueryLevel エレメントが正しく構成されていることを確認してください。
患者ルートと照会レベルの組み合わせごとに、このトピックの例を参照として使用してください。
C-MOVE 要求メッセージは、C-FIND 要求メッセージとまったく同じようにセットアップされます。
唯一の違いは、XML 照会メッセージに MoveDestination エレメントが含まれるという点です。
この MoveDestination は、C-STORE コマンドの使用による DICOM インスタンスの移動先となるアプリケーション・エンティティー・タイトルです。
C-FIND コマンドおよび C-MOVE コマンドを処理する PACS は、MoveDestination の接続の詳細で事前に構成しておく必要があります。
以下の例は、MoveDestination を指定した DICOM C-FIND および C-MOVE 要求メッセージを示しています。
<DICOM:FindMove xmlns:DICOM="http://com.ibm.healthcare/DICOM">
<QueryRoot>PATIENT</QueryRoot>
<QueryLevel>STUDY</QueryLevel>
<MoveDestination>REMOTEAE</MoveDestination>
<OperationPriority>NORMAL</OperationPriority>
<Match>
<Attribute Tag="PatientID">fWT0KTL</Attribute>
<Attribute Tag="AccessionNumber">1210490</Attribute>
</Match>
<Return>
</Return>
</DICOM:FindMove>
OperationPriority は、XML 要求メッセージ内のオプション・フィールドです。
フィールドが有意なものと見なされるかどうかは、ベンダーに依存します。
フィールドは、値として HIGH、NORMAL または LOW を取ることができます。
パターンからの SOAP 応答メッセージは、C-MOVE コマンドが完了してから戻されます。
そのため、大きな研究、系統、またはイメージが移動される場合は、いくらか時間がかかる場合があります。
応答メッセージには、全体の成功、あるいは C-MOVE コマンドの成功を説明する、MoveResults という名前の XML エレメントも含まれます。
応答メッセージの詳細状況フィールドを以下に示します (Completed、Failed、および Warnings)。
<DICOM:Results xmlns:DICOM="http://com.ibm.healthcare/DICOM">
<DICOM>
<Attribute Tag="00080005" VR="CS">ISO_IR 100</Attribute>
<Attribute Tag="00080016" VR="UI">1.2.840.10008.5.1.4.1.1.2</Attribute>
<Attribute Tag="00080018" VR="UI">1.3.12.2.1107.5.1.4.54023.30000004093016410718700003864</Attribute>
<Attribute Tag="00080052" VR="CS">IMAGE</Attribute>
<Attribute Tag="00080054" VR="AE">PACS</Attribute>
<Attribute Tag="00080056" VR="CS">ONLINE</Attribute>
<Attribute Tag="0020000D" VR="UI">1.3.12.2.1107.5.1.4.54023.30000004093013443132800000021</Attribute>
<Attribute Tag="0020000E" VR="UI">1.3.12.2.1107.5.1.4.54023.30000004093016410718700003676</Attribute>
<Attribute Tag="00200013" VR="IS">188</Attribute>
<Attribute Tag="00880130" VR="SH"/>
<Attribute Tag="00880140" VR="UI"/>
<MoveResults>
<Completed>1</Completed>
<Failed>0</Failed>
<Warnings>0</Warnings>
</MoveResults>
</DICOM>
</DICOM:Results>
患者ルートでは、患者、研究、系統、およびイメージの 4 つのレベルの照会が可能です。
患者レベルの照会は、PACS を照会して患者を探すために使用されます。 これには、照会で使用できる少数の暗黙的属性があります。 例えば、患者名や患者の性別、誕生日などです。
以下の表は、患者レベルの照会で使用可能な検索タグを示しています。
| 名前 | タグ | タイプ |
|---|---|---|
| PatientName | 00100010 | R |
| PatientID | 00100020 | U |
| IssuerOfPatientID | 00100021 | O |
| PatientBirthDate | 00100030 | O |
| PatientBirthTime | 00100032 | O |
| PatientSex | 00100040 | O |
| OtherPatientIDs | 00101000 | O |
| OtherPatientNames | 00101001 | O |
| EthnicGroup | 00102160 | O |
| PatientComments | 00104000 | O |
| NumberOfPatientRelatedStudies | 00201200 | O |
| NumberOfPatientRelatedSeries | 00201202 | O |
| NumberOfPatientRelatedInstances | 00201204 | O |
以下の例は、PatientID (00100020) が検索基準として使用されている患者レベルの照会を示しています。
<DICOM:FindMove xmlns:DICOM="http://com.ibm.healthcare/DICOM">
<QueryRoot>PATIENT</QueryRoot>
<QueryLevel>PATIENT</QueryLevel>
<OperationPriority>NORMAL</OperationPriority>
<Match>
<Attribute Tag="00100020">fWT0KTL</Attribute>
</Match>
<Return>
</Return>
</DICOM:FindMove>
以下の例は、PatientBirthDate が検索基準として使用されている患者レベルの照会を示しています。
<DICOM:FindMove xmlns:DICOM="http://com.ibm.healthcare/DICOM">
<QueryRoot>PATIENT</QueryRoot>
<QueryLevel>PATIENT</QueryLevel>
<OperationPriority>NORMAL</OperationPriority>
<Match>
<Attribute Tag="PatientBirthDate">19670227</Attribute>
</Match>
<Return>
</Return>
</DICOM:FindMove>
研究レベルの照会は、PACS を照会して特定の患者の研究を探すために使用されます。 研究レベルの照会には、患者 ID と、検索を絞り込むためのゼロ個以上のオプション・タグ (研究の日付など) を含める必要があります。
以下の表は、研究レベルの照会で使用可能な検索タグを示しています。
| 名前 | タグ | タイプ |
|---|---|---|
| StudyDate | 00080020 | R |
| StudyTime | 00080030 | R |
| AccessionNumber | 00080050 | R |
| StudyID | 00200010 | R |
| StudyInstanceUID | 0020000D | U |
| ModalitiesInStudy | 00080061 | O |
| SOPClassesInStudy | 00080062 | O |
| ReferringPhysicianName | 00080090 | O |
| StudyDescription | 00081030 | O |
| NameOfPhysicianReadingStudy | 00081060 | O |
| ReferringPhysicianName | 00080090 | O |
| AdmittingDiagnosesDescription | 00081080 | O |
| PatientAge | 00101010 | O |
| PatientSize | 00101020 | O |
| PatientWeight | 00101030 | O |
| Occupation | 00102180 | O |
| AdditionalPatientHistory | 001021B0 | O |
| OtherStudyNumbers | 00201070 | O |
| NumberOfStudyRelatedSeries | 00201206 | O |
| NumberOfStudyRelatedInstances | 00201208 | O |
以下の例は、PatientID (00100020) と AccessionNumber (00080050) が検索基準として使用されている研究レベルの照会を示しています。
<DICOM:FindMove xmlns:DICOM="http://com.ibm.healthcare/DICOM">
<QueryRoot>PATIENT</QueryRoot>
<QueryLevel>STUDY</QueryLevel>
<OperationPriority>NORMAL</OperationPriority>
<Match>
<Attribute Tag="00100020">fWT0KTL</Attribute>
<Attribute Tag="00080050">1210490</Attribute>
</Match>
<Return>
</Return>
</DICOM:FindMove>
以下の例は、PatientID が検索基準として使用されている研究レベルの照会を示しています。
<DICOM:FindMove xmlns:DICOM="http://com.ibm.healthcare/DICOM">
<QueryRoot>PATIENT</QueryRoot>
<QueryLevel>STUDY</QueryLevel>
<OperationPriority>NORMAL</OperationPriority>
<Match>
<Attribute Tag="PatientID">fWT0KTL</Attribute>
</Match>
<Return>
</Return>
</DICOM:FindMove>
系統レベルの照会は、PACS を照会して特定の研究内の系統を探すために使用されます。 系統レベルの照会には、研究 UID と、検索を絞り込むためのゼロ個以上のオプション属性 (モダリティーなど) を含める必要があります。
以下の表は、系統レベルの照会で使用可能な検索タグを示しています。
| 名前 | タグ | タイプ |
|---|---|---|
| Modality | 00080060 | R |
| SeriesNumber | 00200011 | R |
| SeriesInstanceUID | 0020000E | U |
| NumberOfSeriesRelatedInstances | 0020,1209 | O |
以下の例は、StudyInstanceUID (0020000D) が検索基準として使用されている系統レベルの照会を示しています。
<DICOM:FindMove xmlns:DICOM="http://com.ibm.healthcare/DICOM">
<QueryRoot>PATIENT</QueryRoot>
<QueryLevel>SERIES</QueryLevel>
<OperationPriority>NORMAL</OperationPriority>
<Match>
<Attribute Tag="0020000D">1.2.840.113745.101000.1008000.37796.6311.5221360</Attribute>
</Match>
<Return>
</Return>
</DICOM:FindMove>
以下の例は、StudyInstanceUID と Modality が検索基準として使用されている系統レベルの照会を示しています。
<DICOM:FindMove xmlns:DICOM="http://com.ibm.healthcare/DICOM">
<QueryRoot>PATIENT</QueryRoot>
<QueryLevel>SERIES</QueryLevel>
<OperationPriority>NORMAL</OperationPriority>
<Match>
<Attribute Tag="StudyInstanceUID">1.2.840.113745.101000.1008000.37796.6311.5221360</Attribute>
<Attribute Tag="Modality">CT</Attribute>
</Match>
<Return>
</Return>
</DICOM:FindMove>
イメージ・レベルの照会は、系統内の特定のイメージを照会するために使用されます。 これはほとんど使用されません。 イメージ・レベルの照会には、系統 UID を含める必要があります。
以下の表は、イメージ・レベルの照会で使用可能な検索タグを示しています。
| 名前 | タグ | タイプ |
|---|---|---|
| InstanceNumber | 00200013 | R |
| SOPInstanceUID | 00080018 | U |
| SOPClassUID | 00080016 | O |
| RelatedGeneralSOPClassUID | 0008001A | O |
| ContainerIdentifier | 00400512 | O |
以下の例は、SeriesInstanceUID (0020000E) が検索基準として使用されているイメージ・レベルの照会を示しています。
<DICOM:FindMove xmlns:DICOM="http://com.ibm.healthcare/DICOM">
<QueryRoot>PATIENT</QueryRoot>
<QueryLevel>IMAGE</QueryLevel>
<OperationPriority>NORMAL</OperationPriority>
<Match>
<Attribute Tag="0020000E">1.3.12.2.1107.5.1.4.50146.4.0.2320790629191549</Attribute>
</Match>
<Return>
</Return>
</DICOM:FindMove>
以下の例は、SeriesInstanceUID が検索基準として使用されているイメージ・レベルの照会を示しています。
<DICOM:FindMove xmlns:DICOM="http://com.ibm.healthcare/DICOM">
<QueryRoot>PATIENT</QueryRoot>
<QueryLevel>IMAGE</QueryLevel>
<OperationPriority>NORMAL</OperationPriority>
<Match>
<Attribute Tag="SeriesInstanceUID">1.3.12.2.1107.5.1.4.50146.4.0.2320790629191549</Attribute>
</Match>
<Return>
</Return>
</DICOM:FindMove>
研究ルートは患者ルートと似ています。そのため、しばしば混乱が生じることがあります。 研究ルートには患者レベルの照会がありません。 サポートされている最初のレベルは、研究レベルの照会です。 研究レベルの照会には、使用可能な暗黙的属性のセットがより多くあります。 サポートされている検索基準として、研究日や研究時刻、また患者の属性 (患者名や患者 ID、患者の性別など) もあります。 そのため、この研究レベルの照会は、患者ルートからの研究レベルと患者レベルの照会のマージと見なすことができます。
いくつかの基本検索基準 (患者名や研究日) を指定すれば、1 回の操作で患者のすべての研究を照会できるため、研究レベルの照会は非常に便利です。 患者ルートはこれを 2 つの別個の照会に分けます。
系列レベルとイメージ・レベルの照会は、研究ルートと患者ルートで同一です。
以下の表は、研究レベルの照会で使用可能な検索タグを示しています。
| 名前 | タグ | タイプ |
|---|---|---|
| StudyDate | 00080020 | R |
| StudyTime | 00080030 | R |
| AccessionNumber | 00080050 | R |
| PatientName | 00100010 | R |
| PatientID | 00100020 | R |
| StudyID | 00200010 | R |
| StudyInstanceUID | 0020000D | U |
| ModalitiesInStudy | 00080061 | O |
| SOPClassesInStudy | 00080062 | O |
| ReferringPhysicianName | 00080090 | O |
| StudyDescription | 00081030 | O |
| NameOfPhysicianReadingStudy | 00081060 | O |
| AdmittingDiagnosesDescription | 00081080 | O |
| IssuerOfPatientID | 00100021 | O |
| PatientBirthDate | 00100030 | O |
| PatientBirthTime | 00100032 | O |
| PatientSex | 00100040 | O |
| OtherPatientIDs | 00101000 | O |
| OtherPatientNames | 00101001 | O |
| PatientAge | 00101010 | O |
| PatientSize | 00101020 | O |
| PatientWeight | 0010,1030 | O |
| EthnicGroup | 00102160 | O |
| Occupation | 00102180 | O |
| AdditionalPatientHistory | 001021B0 | O |
| PatientComments | 00104000 | O |
| OtherStudyNumbers | 00201070 | O |
| NumberOfPatientRelatedStudies | 00201200 | O |
| NumberOfPatientRelatedSeries | 00201202 | O |
| NumberOfPatientRelatedInstances | 00201204 | O |
| NumberOfStudyRelatedSeries | 00201206 | O |
| NumberOfStudyRelatedInstances | 00201208 | O |
以下の例は、PatientID (00100020) と AccessionNumber (00080050) が検索基準として使用されている研究レベルの照会を示しています。
<DICOM:FindMove xmlns:DICOM="http://com.ibm.healthcare/DICOM">
<QueryRoot>STUDY</QueryRoot>
<QueryLevel>STUDY</QueryLevel>
<Match>
<Attribute Tag="00100010">FEROVIX</Attribute>
<Attribute Tag="00080050">1210490</Attribute>
</Match>
<Return>
</Return>
</DICOM:FindMove>
以下の例は、PatientID と AccessionNumber が検索基準として使用されている研究レベルの照会を示しています。
<DICOM:FindMove xmlns:DICOM="http://com.ibm.healthcare/DICOM">
<QueryRoot>STUDY</QueryRoot>
<QueryLevel>STUDY</QueryLevel>
<OperationPriority>NORMAL</OperationPriority>
<Match>
<Attribute Tag="PatientName">FEROVIX</Attribute>
<Attribute Tag="AccessionNumber">1210490</Attribute>
</Match>
<Return>
</Return>
</DICOM:FindMove>
系統レベルの照会は、PACS を照会して特定の研究内の系統を探すために使用されます。
系統レベルの照会には、研究 UID と、検索を絞り込むためのゼロ個以上のオプション属性 (モダリティーなど) を含める必要があります。
このレベルは、XML 照会メッセージの QueryRoot が PATIENT の代わりに STUDY に設定されること以外は、患者ルートの系統レベルとまったく同じです。
以下の表は、系統レベルの照会で使用可能な検索タグを示しています。
| 名前 | タグ | タイプ |
|---|---|---|
| Modality | 00080060 | R |
| SeriesNumber | 00200011 | R |
| SeriesInstanceUID | 0020000E | U |
| NumberOfSeriesRelatedInstances | 0020,1209 | O |
以下の例は、StudyInstanceUID (0020000D) が検索基準として使用されている系統レベルの照会を示しています。
<DICOM:FindMove xmlns:DICOM="http://com.ibm.healthcare/DICOM">
<QueryRoot>STUDY</QueryRoot>
<QueryLevel>SERIES</QueryLevel>
<OperationPriority>NORMAL</OperationPriority>
<Match>
<Attribute Tag="0020000D">1.2.840.113745.101000.1008000.37796.6311.5221360</Attribute>
</Match>
<Return>
</Return>
</DICOM:FindMove>
以下の例は、StudyInstanceUID と Modality が検索基準として使用されている系統レベルの照会を示しています。
<DICOM:FindMove xmlns:DICOM="http://com.ibm.healthcare/DICOM">
<QueryRoot>STUDY</QueryRoot>
<QueryLevel>SERIES</QueryLevel>
<OperationPriority>NORMAL</OperationPriority>
<Match>
<Attribute Tag="StudyInstanceUID">1.2.840.113745.101000.1008000.37796.6311.5221360</Attribute>
<Attribute Tag="Modality">CT</Attribute>
</Match>
<Return>
</Return>
</DICOM:FindMove>
イメージ・レベルの照会は、系統内の特定のイメージを照会するために使用されます。
これはほとんど使用されません。
イメージ・レベルの照会には、系統 UID を含める必要があります。
このレベルは、XML 照会メッセージの QueryRoot が PATIENT の代わりに STUDY に設定されること以外は、患者ルートのイメージ・レベルとまったく同じです。
以下の表は、イメージ・レベルの照会で使用可能な検索タグを示しています。
| 名前 | タグ | タイプ |
|---|---|---|
| InstanceNumber | 00200013 | R |
| SOPInstanceUID | 00080018 | U |
| SOPClassUID | 00080016 | O |
| RelatedGeneralSOPClassUID | 0008001A | O |
| ContainerIdentifier | 00400512 | O |
以下の例は、SeriesInstanceUID (0020000E) が検索基準として使用されているイメージ・レベルの照会を示しています。
<DICOM:FindMove xmlns:DICOM="http://com.ibm.healthcare/DICOM">
<QueryRoot>STUDY</QueryRoot>
<QueryLevel>IMAGE</QueryLevel>
<OperationPriority>NORMAL</OperationPriority>
<Match>
<Attribute Tag="0020000E">1.3.12.2.1107.5.1.4.50146.4.0.2320790629191549</Attribute>
</Match>
<Return>
</Return>
</DICOM:FindMove>
以下の例は、SeriesInstanceUID が検索基準として使用されているイメージ・レベルの照会を示しています。
<DICOM:FindMove xmlns:DICOM="http://com.ibm.healthcare/DICOM">
<QueryRoot>STUDY</QueryRoot>
<QueryLevel>IMAGE</QueryLevel>
<OperationPriority>NORMAL</OperationPriority>
<Match>
<Attribute Tag="SeriesInstanceUID">1.3.12.2.1107.5.1.4.50146.4.0.2320790629191549</Attribute>
</Match>
<Return>
</Return>
</DICOM:FindMove>