「DICOM/SOP Class」の版間の差分
ナビゲーションに移動
検索に移動
(2人の利用者による、間の3版が非表示) | |||
1行目: | 1行目: | ||
[[DICOM]]における'''SOP Class''' | [[DICOM]]における'''SOP Class'''とは、「保存」や「検索」などのサービス([[DICOM/DIMSE|DIMSE]])と、それらで使われる値([[DICOM/IOD|IOD]])を規定したもののことである。 | ||
なにを言ってるか分からないと思うが、DICOMプロトコルの内部で使われる「コマンド」と「データ」の定義のことである。 | |||
== プログラミング言語を用いた例 == | == プログラミング言語を用いた例 == | ||
SOPは「Service Object Pair」の略称であり、サービス(メソッド)とオブジェクト(プロパティ)のペアを指す。 | |||
ここを読んでいる人の多くは何らかのプログラム言語をかじった事がある人だと思うのでプログラミング言語に例えるが、SOP Classは、C#やJavaなどのオブジェクト指向言語のクラス(のソースコード)に相当するものである。[[DICOM/DIMSE|DIMSE]]がメソッドで、[[DICOM/IOD|IOD]]がメンバ変数(どっちかというと構造体)みたいなものと覚えておけばok。 | ここを読んでいる人の多くは何らかのプログラム言語をかじった事がある人だと思うのでプログラミング言語に例えるが、SOP Classは、C#やJavaなどのオブジェクト指向言語のクラス(のソースコード)に相当するものである。[[DICOM/DIMSE|DIMSE]]がメソッドで、[[DICOM/IOD|IOD]]がメンバ変数(どっちかというと構造体)みたいなものと覚えておけばok。 | ||
9行目: | 12行目: | ||
// プログラム言語に例えると、 | // プログラム言語に例えると、 | ||
// HogeHogeSOPがSOPクラス | // HogeHogeSOPがSOPクラス | ||
class HogeHogeSOP { | class HogeHogeSOP | ||
{ | |||
// IOD(メンバ変数) | // IOD(メンバ変数) | ||
public int HogeIOD1; | public int HogeIOD1; | ||
15行目: | 19行目: | ||
// サービス(メソッド) | // サービス(メソッド) | ||
public void HogeDIMSE(){ | public void HogeDIMSE() | ||
{ | |||
} | } | ||
} | } | ||
21行目: | 26行目: | ||
SOP | SOP Classに基づいて実際に生成したデータを「[[DICOM/SOP Instance|SOP Instance]]」という。 | ||
<source lang="csharp"> | <source lang="csharp"> | ||
// プログラム言語に例えると、 | // プログラム言語に例えると、 | ||
class Program { | class Program | ||
public static void Main() { | { | ||
// | public static void Main() | ||
{ | |||
// newして出来た「hage」がSOPインスタンス | |||
var hage = new HogeHogeSOP(); | |||
} | } | ||
} | } | ||
37行目: | 44行目: | ||
== 主なSOP Class == | == 主なSOP Class == | ||
DICOMにおけるSOP Classの定義はいっぱいある。 | |||
そのうち主要な物を列挙しておく。 | |||
それぞれのSOPクラスには名前およびUIDが割り当てられている。 | それぞれのSOPクラスには名前およびUIDが割り当てられている。 | ||
プログラムの内部的にはUIDが使われるが、デバッグなどは名前を使うと捗る。 | |||
{| class="wikitable sortable" | {| class="wikitable sortable" | ||
45行目: | 54行目: | ||
! SOP Class Name | ! SOP Class Name | ||
! SOP Class UID | ! SOP Class UID | ||
! | ! このSOPクラスを使っている<br/>主な[[サービスクラス]] | ||
|- | |- | ||
| Verification SOP Class | | Verification SOP Class | ||
193行目: | 202行目: | ||
| Encapsulated PDF Storage | | Encapsulated PDF Storage | ||
| 1.2.840.10008.5.1.4.1.1.104.1 | | 1.2.840.10008.5.1.4.1.1.104.1 | ||
| | |||
|- | |||
| Storage Commitment Push Model | |||
| 1.2.840.10008.1.20.1 | |||
| | |||
|- | |||
| Patient Root Query/Retrieve Information Model - FIND | |||
| 1.2.840.10008.5.1.4.1.2.1.1 | |||
| | |||
|- | |||
| Patient Root Query/Retrieve Information Model - MOVE | |||
| 1.2.840.10008.5.1.4.1.2.1.2 | |||
| | |||
|- | |||
| Patient Root Query/Retrieve Information Model - GET | |||
| 1.2.840.10008.5.1.4.1.2.1.3 | |||
| | |||
|- | |||
| Study Root Query/Retrieve Information Model - FIND | |||
| 1.2.840.10008.5.1.4.1.2.2.1 | |||
| | |||
|- | |||
| Study Root Query/Retrieve Information Model - MOVE | |||
| 1.2.840.10008.5.1.4.1.2.2.2 | |||
| | |||
|- | |||
| Study Root Query/Retrieve Information Model - GET | |||
| 1.2.840.10008.5.1.4.1.2.2.3 | |||
| | |||
|- | |||
| Patient/Study Only Query/Retrieve Information Model - FIND | |||
| 1.2.840.10008.5.1.4.1.2.3.1 | |||
| | |||
|- | |||
| Patient/Study Only Query/Retrieve Information Model - MOVE | |||
| 1.2.840.10008.5.1.4.1.2.3.2 | |||
| | |||
|- | |||
| Patient/Study Only Query/Retrieve Information Model - GET | |||
| 1.2.840.10008.5.1.4.1.2.3.3 | |||
| | |||
|- | |||
| Hanging Protocol Storage | |||
| 1.2.840.10008.5.1.4.38.1 | |||
| | |||
|- | |||
| Hanging Protocol Information Model - FIND | |||
| 1.2.840.10008.5.1.4.38.2 | |||
| | |||
|- | |||
| Hanging Protocol Information Model - MOVE | |||
| 1.2.840.10008.5.1.4.38.3 | |||
| | |||
|- | |||
| Modality Worklist Information Model - FIND | |||
| 1.2.840.10008.5.1.4.31 | |||
| | |||
|- | |||
| General Purpose Information Model - FIND | |||
| 1.2.840.10008.5.1.4.32.1 | |||
| | |||
|- | |||
| Enhanced US Volume Storage | |||
| 1.2.840.10008.5.1.4.1.1.6.2 | |||
|- | |||
| Arterial Pulse Waveform Storage | |||
| 1.2.840.10008.5.1.4.1.1.9.5.1 | |||
|- | |||
| Respiratory Waveform Storage | |||
| 1.2.840.10008.5.1.4.1.1.9.6.1 | |||
|- | |||
| General Audio Waveform Storage | |||
| 1.2.840.10008.5.1.4.1.1.9.4.2 | |||
| | | | ||
|} | |} |
2017年8月14日 (月) 10:15時点における最新版
DICOMにおけるSOP Classとは、「保存」や「検索」などのサービス(DIMSE)と、それらで使われる値(IOD)を規定したもののことである。 なにを言ってるか分からないと思うが、DICOMプロトコルの内部で使われる「コマンド」と「データ」の定義のことである。
プログラミング言語を用いた例[編集 | ソースを編集]
SOPは「Service Object Pair」の略称であり、サービス(メソッド)とオブジェクト(プロパティ)のペアを指す。
ここを読んでいる人の多くは何らかのプログラム言語をかじった事がある人だと思うのでプログラミング言語に例えるが、SOP Classは、C#やJavaなどのオブジェクト指向言語のクラス(のソースコード)に相当するものである。DIMSEがメソッドで、IODがメンバ変数(どっちかというと構造体)みたいなものと覚えておけばok。
なお、プログラミング言語なんて知らないよという人は「http://monobook.org」でも見ておこう。
// プログラム言語に例えると、
// HogeHogeSOPがSOPクラス
class HogeHogeSOP
{
// IOD(メンバ変数)
public int HogeIOD1;
public int HageIOD2;
// サービス(メソッド)
public void HogeDIMSE()
{
}
}
SOP Classに基づいて実際に生成したデータを「SOP Instance」という。
// プログラム言語に例えると、
class Program
{
public static void Main()
{
// newして出来た「hage」がSOPインスタンス
var hage = new HogeHogeSOP();
}
}
SOP Classを1つ以上使って実際に使えるサービス(機能化)したものをService Classという。こちらも同様にプログラミング言語に例えると、いくつかのクラスを組み合わせて使えるプログラム化したもののことである。
主なSOP Class[編集 | ソースを編集]
DICOMにおけるSOP Classの定義はいっぱいある。 そのうち主要な物を列挙しておく。
それぞれのSOPクラスには名前およびUIDが割り当てられている。 プログラムの内部的にはUIDが使われるが、デバッグなどは名前を使うと捗る。
SOP Class Name | SOP Class UID | このSOPクラスを使っている 主なサービスクラス |
---|---|---|
Verification SOP Class | 1.2.840.10008.1.1 | Verification Service Class |
Computed Radiography Image Storage | 1.2.840.10008.5.1.4.1.1.1 | |
CT Image Storage | 1.2.840.10008.5.1.4.1.1.2 | |
Enhanced CT Image Storage | 1.2.840.10008.5.1.4.1.1.2.1 | |
MR Image Storage | 1.2.840.10008.5.1.4.1.1.4 | |
Enhanced MR Image Storage | 1.2.840.10008.5.1.4.1.1.4.1 | |
Nuclear Medicine Image Storage | 1.2.840.10008.5.1.4.1.1.20 | |
Retired Nuclear Medicine Image Storage | 1.2.840.10008.5.1.4.1.1.5 | |
Ultrasound Image Storage | 1.2.840.10008.5.1.4.1.1.6.1 | |
Ultrasound MultiFrame Image Storage | 1.2.840.10008.5.1.4.1.1.3.1 | |
Retired Ultrasound MultiFrame Image Storage | 1.2.840.10008.5.1.4.1.1.3 | |
Secondary Capture Image Storage | 1.2.840.10008.5.1.4.1.1.7 | |
Multi-frame Grayscale Byte Secondary Capture Image Storage | 1.2.840.10008.5.1.4.1.1.7.2 | |
Multi-frame Grayscale Word Secondary Capture Image Storage | 1.2.840.10008.5.1.4.1.1.7.3 | |
Multi-frame True Color Secondary Capture Image Storage | 1.2.840.10008.5.1.4.1.1.7.4 | |
X-Ray Angiographic Image Storage | 1.2.840.10008.5.1.4.1.1.12.1 | |
Enhanced XA Image Storage | 1.2.840.10008.5.1.4.1.1.12.1.1 | |
X-Ray Radiofluoroscopic Image Storage | 1.2.840.10008.5.1.4.1.1.12.2 | |
Retired X-Ray Angiographic Bi-Plane Image Storage | 1.2.840.10008.5.1.4.1.1.12.3 | |
RT Image Storage | 1.2.840.10008.5.1.4.1.1.481.1 | |
Digital X-Ray Image Storage - For Presentation | 1.2.840.10008.5.1.4.1.1.1.1 | |
Digital X-Ray Image Storage - For Processing | 1.2.840.10008.5.1.4.1.1.1.1.1 | |
Digital Mammography Image Storage - For Presentation | 1.2.840.10008.5.1.4.1.1.1.2 | |
Digital Mammography Image Storage - For Processing | 1.2.840.10008.5.1.4.1.1.1.2.1 | |
Digital Intra Oral X-Ray Image Storage - For Presentation | 1.2.840.10008.5.1.4.1.1.1.3 | |
Digital Intra Oral X-Ray Image Storage - For Processing | 1.2.840.10008.5.1.4.1.1.1.3.1 | |
Segmentation Storage | 1.2.840.10008.5.1.4.1.1.66.4 | |
VL Endoscopic Image Storage | 1.2.840.10008.5.1.4.1.1.77.1.1 | |
VL Photographic Image Storage | 1.2.840.10008.5.1.4.1.1.77.1.4 | |
VL Microscopic Image Storage | 1.2.840.10008.5.1.4.1.1.77.1.2 | |
VL Slide Coordinates Microscopic Image Storage | 1.2.840.10008.5.1.4.1.1.77.1.3 | |
Ophthalmic Photography 8-Bit Image Storage | 1.2.840.10008.5.1.4.1.1.77.1.5.1 | |
Ophthalmic Photography 16-Bit Image Storage | 1.2.840.10008.5.1.4.1.1.77.1.5.2 | |
Positron Emission Tomography Image Storage | 1.2.840.10008.5.1.4.1.1.128 | |
Hard Copy Grayscale Image Storage | 1.2.840.10008.5.1.1.30 | |
Hard Copy Color Image Storage | 1.2.840.10008.5.1.1.29 | |
Encapsulated PDF Storage | 1.2.840.10008.5.1.4.1.1.104.1 | |
Storage Commitment Push Model | 1.2.840.10008.1.20.1 | |
Patient Root Query/Retrieve Information Model - FIND | 1.2.840.10008.5.1.4.1.2.1.1 | |
Patient Root Query/Retrieve Information Model - MOVE | 1.2.840.10008.5.1.4.1.2.1.2 | |
Patient Root Query/Retrieve Information Model - GET | 1.2.840.10008.5.1.4.1.2.1.3 | |
Study Root Query/Retrieve Information Model - FIND | 1.2.840.10008.5.1.4.1.2.2.1 | |
Study Root Query/Retrieve Information Model - MOVE | 1.2.840.10008.5.1.4.1.2.2.2 | |
Study Root Query/Retrieve Information Model - GET | 1.2.840.10008.5.1.4.1.2.2.3 | |
Patient/Study Only Query/Retrieve Information Model - FIND | 1.2.840.10008.5.1.4.1.2.3.1 | |
Patient/Study Only Query/Retrieve Information Model - MOVE | 1.2.840.10008.5.1.4.1.2.3.2 | |
Patient/Study Only Query/Retrieve Information Model - GET | 1.2.840.10008.5.1.4.1.2.3.3 | |
Hanging Protocol Storage | 1.2.840.10008.5.1.4.38.1 | |
Hanging Protocol Information Model - FIND | 1.2.840.10008.5.1.4.38.2 | |
Hanging Protocol Information Model - MOVE | 1.2.840.10008.5.1.4.38.3 | |
Modality Worklist Information Model - FIND | 1.2.840.10008.5.1.4.31 | |
General Purpose Information Model - FIND | 1.2.840.10008.5.1.4.32.1 | |
Enhanced US Volume Storage | 1.2.840.10008.5.1.4.1.1.6.2 | |
Arterial Pulse Waveform Storage | 1.2.840.10008.5.1.4.1.1.9.5.1 | |
Respiratory Waveform Storage | 1.2.840.10008.5.1.4.1.1.9.6.1 | |
General Audio Waveform Storage | 1.2.840.10008.5.1.4.1.1.9.4.2 |