- メインページ
- モジュール
- ネームスペース
- データ構造
- ファイル

- ネームスペース一覧
- ネームスペースメンバ

データ構造 | 列挙型 | 関数
ネームスペース mist::dicom
DICOM画像入出力

DICOMファイルを操作する関数・クラスを含む名前空間 [詳細]

## データ構造
class | dicom_element
| DICOMのタグとその要素を管理するクラス [詳細]
class | dicom_tag_container
| DICOMタグのデータを管理するコンテナ [詳細]
class | dicom_image_info
| DICOMの画像情報を管理する [詳細]
class | dicom_info
| DICOMの全情報を管理する [詳細]
class | dicom_tag
| DICOMタグ（DICOMデータの内容を表すもの） [詳細]
class | dicom_uid
| DICOMのUIDを扱うクラス [詳細]
class | dicom_tag_table
| MISTで扱うことができるDICOMタグの一覧を登録するクラス [詳細]
class | dicom_uid_table
| DICOMが扱う UID の一覧を管理するクラス [詳細]

## 列挙型
enum | compress_type { RAW, JPEG, JPEGLS, JPEG2000, RLE }
| DICOMデータの圧縮タイプ [詳細]
enum | photometric_interpretation_type { , MONOCHROME1, MONOCHROME2, RGB, PALETTE_COLOR, YBR_FULL_422, YBR_FULL }
| DICOMデータの画素の表現タイプ [詳細]
enum | dicom_vr { UNKNOWN, AE, AS, AT, CS, DA, DS, DT, FL, FD, IS, LO, LT, OB, OF, OW, PN, SH, SL, SQ, SS, ST, TM, UI, UL, UN, US, UT }
| DICOMのVRタグの種類 [詳細]

## 関数
unsigned char * | check_dicom_file (unsigned char *p, unsigned char *e)
| 指定したメモリ領域がDICOM画像を現しているかどうかをチェックする
bool | is_sequence_separate_tag (const unsigned char *p, const unsigned char *e)
| シーケンスタグかどうかを判定する
bool | is_sequence_element_end (const unsigned char *p, const unsigned char *e)
| シーケンス要素終了タグかどうか
bool | is_sequence_tag_end (const unsigned char *p, const unsigned char *e)
| シーケンス終了タグかどうか
unsigned char * | read_dicom_tag (unsigned char *p, unsigned char *e, dicom_tag &tag, difference_type &numBytes, bool from_little_endian=true)
| DICOMのタグを読み込み，テーブルに登録されているものと照合する
bool | process_dicom_tag (const dicom_tag &tag, unsigned char *byte, difference_type num_bytes, bool from_little_endian=true)
| DICOMのタグに対し，各VRごとの処理を行う
unsigned char * | process_dicom_tag (dicom_tag_container &dicm, unsigned char *pointer, unsigned char *end_pointer, bool from_little_endian=true, bool is_in_sequence_tag=false)
| DICOMのタグを処理する
bool | read_dicom_tags (dicom_tag_container &dicm, unsigned char *buff, size_type numBytes, bool is_little_endian=true)
| DICOMファイルを読み込んで，全てのDICOMタグを処理しテーブルに登録する
bool | read_dicom_tags (dicom_tag_container &dicm, const std::string &filename)
| DICOMファイルを読み込んで，全てのDICOMタグを処理しテーブルに登録する
bool | write_dicom_tag_explicit_vr (unsigned short group, unsigned short element, dicom_vr vr, const unsigned char *data, size_t num_bytes, FILE *fp, bool to_little_endian=true)
| DICOMのタグ集合を Explicit VR 形式でファイルに書き出す
bool | write_dicom_tag_implicit_vr (unsigned short group, unsigned short element, dicom_vr vr, const unsigned char *data, size_t num_bytes, FILE *fp, bool to_little_endian=true)
| DICOMのタグ集合を Implicit VR 形式でファイルに書き出す
bool | write_dicom_tag_explicit_vr (const dicom_element &e, FILE *fp, bool to_little_endian=true)
| DICOMのタグ集合を Explicit VR 形式でファイルに書き出す
bool | write_dicom_tag_implicit_vr (const dicom_element &e, FILE *fp, bool to_little_endian=true)
| DICOMのタグ集合を Implicit VR 形式でファイルに書き出す
size_t | get_write_dicom_tag_size (const dicom_element &e, bool implicitVR)
| DICOMのタグを出力する際に各タグが必要とするバイト数を計算する
void | compute_group_length (dicom_tag_container &dicm, bool implicitVR)
| DICOMの Group Length を計算し，タグに設定する
bool | write_dicom_tags (const dicom_tag_container &dicom, const std::string &filename)
| DICOMのタグ集合をファイルに書き出す
dicom_uid_table & | get_dicom_uid_table ()
| DICOMのUIDに変換する
dicom_uid | get_uid (const std::string &uid)
| DICOMのUIDに変換する
bool | is_dicom_class_uid (const std::string &uid)
| DICOMのUIDテーブルに存在するかどうかを調べる
dicom_uid | get_uid (const unsigned char *str, difference_type numBytes)
| DICOMのUIDに変換する
compress_type | get_compress_type (const std::string &uid)
| UIDを元に圧縮タイプを取得する
double | find_tag (const dicom_tag_container &dicm, unsigned short group, unsigned short element, double default_value)
| dicmコンテナ内に (group, element)のデータが存在するか調査してその値を返す（見つからない時は default_value を返す）
float | find_tag (const dicom_tag_container &dicm, unsigned short group, unsigned short element, float default_value)
| dicmコンテナ内に (group, element)のデータが存在するか調査してその値を返す（見つからない時は default_value を返す）
signed int | find_tag (const dicom_tag_container &dicm, unsigned short group, unsigned short element, signed int default_value)
| dicmコンテナ内に (group, element)のデータが存在するか調査してその値を返す（見つからない時は default_value を返す）
unsigned int | find_tag (const dicom_tag_container &dicm, unsigned short group, unsigned short element, unsigned int default_value)
| dicmコンテナ内に (group, element)のデータが存在するか調査してその値を返す（見つからない時は default_value を返す）
signed short | find_tag (const dicom_tag_container &dicm, unsigned short group, unsigned short element, signed short default_value)
| dicmコンテナ内に (group, element)のデータが存在するか調査してその値を返す（見つからない時は default_value を返す）
unsigned short | find_tag (const dicom_tag_container &dicm, unsigned short group, unsigned short element, unsigned short default_value)
| dicmコンテナ内に (group, element)のデータが存在するか調査してその値を返す（見つからない時は default_value を返す）
std::string | find_tag (const dicom_tag_container &dicm, unsigned short group, unsigned short element, const std::string &default_value)
| dicmコンテナ内に (group, element)のデータが存在するか調査してその値を返す（見つからない時は default_value を返す）
std::string | find_tag (const dicom_tag_container &dicm, unsigned short group, unsigned short element, const char *default_value)
| dicmコンテナ内に (group, element)のデータが存在するか調査してその値を返す（見つからない時は default_value を返す）
bool | get_dicom_info (const dicom_tag_container &dicm, dicom_info &info)
| DICOMコンテナからDICOMの情報を取得する
bool | is_element_begin (const unsigned char *p, const unsigned char *e)
| 要素タグの開始位置かどうか
bool | is_element_end (const unsigned char *p, const unsigned char *e)
| 要素タグの終了位置かどうか
unsigned char * | decode_RLE (unsigned char *psrc, unsigned char *psrc_end, unsigned char *pdst, unsigned char *pdst_end, bool from_little_endian=true)
| RLE圧縮ファイルのデコーダ
unsigned char * | decode_JPEG (unsigned char *psrc, unsigned char *psrc_end, unsigned char *pdst, unsigned char *pdst_end)
| JPEG圧縮ファイルのデコーダ
bool | decode (dicom_element &element, const dicom_info &info)
| 圧縮ファイルのデコーダ
unsigned int | construct_dicom_tag (unsigned short group, unsigned short element)
| (group, element) のDICOMタグ識別子を作成する
unsigned short | get_dicom_group (unsigned int group_element)
| (group, element) のDICOMタグ識別子を作成する
unsigned short | get_dicom_element (unsigned int group_element)
| (group, element) のDICOMタグ識別子を作成する
dicom_vr | get_dicom_vr (const std::string &vr)
| 文字列からVRタグを作成する
std::string | get_dicom_vr (const dicom_vr &vr)
| VRタグを文字列に直す

## 説明

DICOMファイルを操作する関数・クラスを含む名前空間

## 列挙型

enum mist::dicom::compress_type

DICOMデータの圧縮タイプ

列挙型の値:

  RAW | 無圧縮
  JPEG | JPEG圧縮
  JPEGLS | ロスレスJPEG圧縮
  JPEG2000 | JPEG2000圧縮
  RLE | ランレングス（RLE）圧縮

enum mist::dicom::dicom_vr

DICOMのVRタグの種類

列挙型の値:

  UNKNOWN | 不明なＶＲ
  AE | 応用エンティティ　１６バイト以下
  AS | 年齢　　　　　　　４バイト固定
  AT | 属性タグ　　　　　４バイト固定
  CS | コード列　　　　　１６バイト以下
  DA | 日付　　　　　　　８バイト固定
  DS | 10進数（文字列）　１６バイト以下
  DT | 日時　　　　　　　２６バイト以下
  FL | ４バイト実数　　　４バイト固定
  FD | ８バイト実数　　　８バイト固定
  IS | 整数（文字列）　　１６バイト以下
  LO | 長列　　　　　　　６４バイト以下
  LT | テキスト　　　　　１０２４バイト以下
  OB | バイト列　　　　　無制限
  OF | 浮動小数点文字列　232-4 maximum
  OW | ワード列　　　　　無制限
  PN | 患者名　　　　　　６４バイト以下
  SH | 短列　　　　　　　１６バイト以下
  SL | 符号つき長　　　　４バイト固定
  SQ | 項目シーケンス　　無制限
  SS | 符号つき短　　　　２バイト固定
  ST | 短テキスト　　　　１０２４バイト以下
  TM | 時間　　　　　　　１６バイト以下
  UI | ＵＩＤ　　　　　　６４バイト以下
  UL | 符号なし長　　　　４バイト固定
  UN | 未知　　　　　　　不明
  US | 符号なし短　　　　２バイト固定
  UT | 無制限テキスト

enum mist::dicom::photometric_interpretation_type

DICOMデータの画素の表現タイプ

列挙型の値:

  MONOCHROME1 | 背景白のグレースケール
  MONOCHROME2 | 背景黒のグレースケール
  RGB | RGBの並び
  PALETTE_COLOR | カラーテーブル
  YBR_FULL_422 | ？
  YBR_FULL | ？

## 関数

unsigned char* mist::dicom::check_dicom_file | ( | unsigned char * | p,
|  | unsigned char * | e
| ) |  |
| inline

指定したメモリ領域がDICOM画像を現しているかどうかをチェックする

注意
  メモリ領域は 132 バイト以上なくてはならない

引数

  [in] | p | … 先頭メモリ位置
  [in] | e | … 末尾メモリ位置

戻り値
  DICOMのプリアンブルの次を指すポインタ

参照元 read_dicom_tags().

void mist::dicom::compute_group_length | ( | dicom_tag_container & | dicm,
|  | bool | implicitVR
| ) |  |
| inline

DICOMの Group Length を計算し，タグに設定する

引数

  [in,out] | dicm | … DICOMタグ毎にデータを登録するテーブル
  [in] | implicitVR | … Implicit VR 形式かどうか

参照先 mist::dicom::dicom_element::data, mist::dicom::dicom_tag::enable, mist::byte_array< T >::get_bytes(), mist::dicom::dicom_tag::get_element(), mist::dicom::dicom_tag::get_group(), get_write_dicom_tag_size(), と mist::dicom::dicom_element::num_bytes.

参照元 write_dicom_tags().

bool mist::dicom::decode | ( | dicom_element & | element,
|  | const dicom_info & | info
| ) |  |
| inline

圧縮ファイルのデコーダ

詳細な説明や関数の使用例を書く

引数

  [in] | element | … デコードするDICOMデータ
  [in] | info | … DICOMの圧縮に関する情報

戻り値

  true | … デコードに成功
  false | … 未対応の圧縮タイプ

参照先 mist::dicom::dicom_image_info::bits_allocated, mist::dicom::dicom_image_info::cols, mist::dicom::dicom_image_info::compression_type, mist::dicom::dicom_element::copy(), mist::dicom::dicom_element::data, decode_RLE(), is_element_begin(), JPEG, JPEG2000, JPEGLS, mist::dicom::dicom_info::little_endian_encoding, mist::dicom::dicom_element::num_bytes, mist::dicom::dicom_image_info::number_of_frames, RAW, RLE, mist::dicom::dicom_image_info::rows, mist::dicom::dicom_image_info::samples_per_pixel, と mist::to_current_endian().

参照元 mist::read_dicom(), mist::video::decoder::seek(), mist::video::decoder::seek_frame(), と mist::video::decoder::skip().

unsigned char* mist::dicom::decode_JPEG | ( | unsigned char * | psrc,
|  | unsigned char * | psrc_end,
|  | unsigned char * | pdst,
|  | unsigned char * | pdst_end
| ) |  |
| inline

JPEG圧縮ファイルのデコーダ

引数

  [in] | psrc | … 入力データの先頭ポインタ
  [in] | psrc_end | … 入力データの末尾ポインタ
  [in] | pdst | … 出力データの先頭ポインタ
  [in] | pdst_end | … 出力データの末尾ポインタ

戻り値
  出力データ中のデコード終了位置

unsigned char* mist::dicom::decode_RLE | ( | unsigned char * | psrc,
|  | unsigned char * | psrc_end,
|  | unsigned char * | pdst,
|  | unsigned char * | pdst_end,
|  | bool | from_little_endian = `true`
| ) |  |
| inline

RLE圧縮ファイルのデコーダ

引数

  [in] | psrc | … 入力データの先頭ポインタ
  [in] | psrc_end | … 入力データの末尾ポインタ
  [in] | pdst | … 出力データの先頭ポインタ
  [in] | pdst_end | … 出力データの末尾ポインタ
  [in] | from_little_endian | … 入力データがリトルエンディアンかどうか

戻り値
  出力データ中のデコード終了位置

参照先 mist::to_current_endian().

参照元 decode().

size_t mist::dicom::get_write_dicom_tag_size | ( | const dicom_element & | e,
|  | bool | implicitVR
| ) |  |
| inline

DICOMのタグを出力する際に各タグが必要とするバイト数を計算する

引数

  [in] | e | … DICOMタグ
  [in] | implicitVR | … Implicit VR 形式かどうか

戻り値
  タグのバイト数

参照先 AT, FD, FL, mist::dicom::dicom_element::num_bytes, OB, OF, OW, SL, SQ, SS, UL, UN, UNKNOWN, US, UT, と mist::dicom::dicom_tag::vr.

参照元 compute_group_length().

bool mist::dicom::is_element_begin | ( | const unsigned char * | p,
|  | const unsigned char * | e
| ) |  |
| inline

要素タグの開始位置かどうか

引数

  [in] | p | … 先頭ポインタ
  [in] | e | … 末尾ポインタ

戻り値

  true | … 要素タグの場合
  false | … それ以外

参照元 decode().

bool mist::dicom::is_element_end | ( | const unsigned char * | p,
|  | const unsigned char * | e
| ) |  |
| inline

要素タグの終了位置かどうか

引数

  [in] | p | … 先頭ポインタ
  [in] | e | … 末尾ポインタ

戻り値

  true | … 要素終了タグの場合
  false | … それ以外

bool mist::dicom::is_sequence_element_end | ( | const unsigned char * | p,
|  | const unsigned char * | e
| ) |  |
| inline

シーケンス要素終了タグかどうか

引数

  [in] | p | … 先頭ポインタ
  [in] | e | … 末尾ポインタ

戻り値

  true | … シーケンス要素終了タグの場合
  false | … それ以外

参照元 process_dicom_tag().

bool mist::dicom::is_sequence_separate_tag | ( | const unsigned char * | p,
|  | const unsigned char * | e
| ) |  |
| inline

シーケンスタグかどうかを判定する

引数

  [in] | p | … 先頭ポインタ
  [in] | e | … 末尾ポインタ

戻り値

  true | … シーケンスタグの場合
  false | … それ以外

参照元 process_dicom_tag(), read_dicom_tag(), write_dicom_tag_explicit_vr(), と write_dicom_tag_implicit_vr().

bool mist::dicom::is_sequence_tag_end | ( | const unsigned char * | p,
|  | const unsigned char * | e
| ) |  |
| inline

シーケンス終了タグかどうか

引数

  [in] | p | … 先頭ポインタ
  [in] | e | … 末尾ポインタ

戻り値

  true | … シーケンス終了タグの場合
  false | … それ以外

参照元 process_dicom_tag(), write_dicom_tag_explicit_vr(), と write_dicom_tag_implicit_vr().

bool mist::dicom::process_dicom_tag | ( | const dicom_tag & | tag,
|  | unsigned char * | byte,
|  | difference_type | num_bytes,
|  | bool | from_little_endian = `true`
| ) |  |
| inline

DICOMのタグに対し，各VRごとの処理を行う

引数

  [in] | tag | … 処理するDICOMタグ
  [in,out] | byte | … 処理されるバイト列
  [in] | num_bytes | … バイト列の長さ
  [in] | from_little_endian | … 入力データがリトルエンディアンかどうか

戻り値
  登録されていないタグの場合は false をかえし，正しく処理された場合のみ true を返す

参照先 mist::_is_little_endian_(), AE, AS, AT, CS, DA, DS, DT, FD, FL, IS, LO, LT, OB, OF, OW, PN, SH, SL, SQ, SS, ST, TM, mist::to_current_endian(), UI, UL, UN, US, UT, mist::dicom::dicom_tag::vm, と mist::dicom::dicom_tag::vr.

参照元 process_dicom_tag(), と read_dicom_tags().

unsigned char* mist::dicom::process_dicom_tag | ( | dicom_tag_container & | dicm,
|  | unsigned char * | pointer,
|  | unsigned char * | end_pointer,
|  | bool | from_little_endian = `true`,
|  | bool | is_in_sequence_tag = `false`
| ) |  |
| inline

DICOMのタグを処理する

シーケンスを表すDICOMタグが見つかった場合は，再帰的に本関数が適用される

引数

  [out] | dicm | … DICOMデータの出力先
  [in] | pointer | … 先頭ポインタ
  [in] | end_pointer | … 末尾先頭ポインタ
  [in] | from_little_endian | … 入力データがリトルエンディアンかどうか
  [in] | is_in_sequence_tag | … VRがSQ内のタグであるかどうか（SQタグは一つにまとめる）

戻り値
  次のタグを指すポインタ

参照先 mist::dicom::dicom_tag_container::append(), is_sequence_element_end(), is_sequence_separate_tag(), is_sequence_tag_end(), OB, OW, process_dicom_tag(), read_dicom_tag(), SQ, mist::to_current_endian(), UNKNOWN, と mist::dicom::dicom_tag::vr.

unsigned char* mist::dicom::read_dicom_tag | ( | unsigned char * | p,
|  | unsigned char * | e,
|  | dicom_tag & | tag,
|  | difference_type & | numBytes,
|  | bool | from_little_endian = `true`
| ) |  |
| inline

DICOMのタグを読み込み，テーブルに登録されているものと照合する

テーブルに登録されていない場合は，読み飛ばす． もし，適切なDICOMファイルでない場合は-2を返し，データの終端もしくはファイルの読み込みに失敗した場合は-1を返す． そして，読み飛ばした場合は0を返し，テーブルに登録されている場合は次に存在するデータのバイト数を返す． データを処理する先頭のポインタ 'p' と，データの最後＋1をさすポインタ 'e' を与える

引数

  [in] | p | … 先頭メモリ位置
  [in] | e | … 末尾メモリ位置
  [out] | tag | … 取得されたDICOMのタグ
  [out] | numBytes | … DICOMタグが使用しているメモリのバイト数
  [in] | from_little_endian | … 入力データがリトルエンディアンかどうか

戻り値
  タグが示すデータ内容を指す先頭ポインタ

参照先 AE, AS, AT, construct_dicom_tag(), CS, DA, DS, DT, FD, FL, get_dicom_vr(), mist::dicom::dicom_tag_table::get_tag(), IS, is_sequence_separate_tag(), LO, LT, OB, OF, OW, PN, SH, SL, SQ, SS, ST, mist::dicom::dicom_tag::tag, TM, mist::to_current_endian(), UI, UL, UN, UNKNOWN, US, UT, と mist::dicom::dicom_tag::vr.

参照元 process_dicom_tag().

bool mist::dicom::read_dicom_tags | ( | dicom_tag_container & | dicm,
|  | unsigned char * | buff,
|  | size_type | numBytes,
|  | bool | is_little_endian = `true`
| ) |  |
| inline

DICOMファイルを読み込んで，全てのDICOMタグを処理しテーブルに登録する

引数

  [out] | dicm | … DICOMタグ毎にデータを登録するテーブル
  [in] | buff | … DICOMのデータが入ったバッファの先頭ポインタ
  [in] | numBytes | … バッファ内のデータのバイト数
  [in] | is_little_endian | … データの中身をリトルエンディアンとして処理するかどうか

戻り値

  true | … DICOMファイルの処理に成功
  false | … DICOMファイルではないか，処理できないタグ・データが存在する場合

参照先 check_dicom_file(), mist::dicom::dicom_tag_container::contain(), find_tag(), と process_dicom_tag().

参照元 mist::read_dicom(), と read_dicom_tags().

bool mist::dicom::read_dicom_tags | ( | dicom_tag_container & | dicm,
|  | const std::string & | filename
| ) |  |
| inline

DICOMファイルを読み込んで，全てのDICOMタグを処理しテーブルに登録する

引数

  [out] | dicm | … DICOMタグ毎にデータを登録するテーブル
  [in] | filename | … 入力DICOM]ファイル名

戻り値

  true | … DICOMファイルの処理に成功
  false | … DICOMファイルではないか，処理できないタグ・データが存在する場合

参照先 read_dicom_tags().

bool mist::dicom::write_dicom_tag_explicit_vr | ( | unsigned short | group,
|  | unsigned short | element,
|  | dicom_vr | vr,
|  | const unsigned char * | data,
|  | size_t | num_bytes,
|  | FILE * | fp,
|  | bool | to_little_endian = `true`
| ) |  |
| inline

DICOMのタグ集合を Explicit VR 形式でファイルに書き出す

引数

  [in] | group | … グループID
  [in] | element | … エレメントID
  [in] | vr | … VRタグ
  [in] | data | … データ
  [in] | num_bytes | … データのバイト数
  [out] | fp | … 出力ファイルストリーム
  [in] | to_little_endian | … 出力データの形式をリトルエンディアンにするかどうか

戻り値

  true | … DICOMファイルの処理に成功
  false | … DICOMファイルではないか，処理できないタグ・データが存在する場合

参照先 mist::_is_little_endian_(), AT, FD, FL, mist::from_current_endian(), get_dicom_vr(), is_sequence_separate_tag(), is_sequence_tag_end(), OB, OF, OW, SL, SQ, SS, UL, UN, UNKNOWN, US, と UT.

参照元 write_dicom_tag_explicit_vr(), と write_dicom_tags().

bool mist::dicom::write_dicom_tag_explicit_vr | ( | const dicom_element & | e,
|  | FILE * | fp,
|  | bool | to_little_endian = `true`
| ) |  |
| inline

DICOMのタグ集合を Explicit VR 形式でファイルに書き出す

引数

  [in] | e | … ファイルに出力するDICOMタグ
  [out] | fp | … 出力ファイルストリーム
  [in] | to_little_endian | … 出力データの形式をリトルエンディアンにするかどうか

戻り値

  true | … DICOMファイルの処理に成功
  false | … DICOMファイルではないか，処理できないタグ・データが存在する場合

参照先 mist::dicom::dicom_element::data, mist::dicom::dicom_tag::get_element(), mist::dicom::dicom_tag::get_group(), mist::dicom::dicom_element::num_bytes, mist::dicom::dicom_tag::vr, と write_dicom_tag_explicit_vr().

bool mist::dicom::write_dicom_tag_implicit_vr | ( | unsigned short | group,
|  | unsigned short | element,
|  | dicom_vr | vr,
|  | const unsigned char * | data,
|  | size_t | num_bytes,
|  | FILE * | fp,
|  | bool | to_little_endian = `true`
| ) |  |
| inline

DICOMのタグ集合を Implicit VR 形式でファイルに書き出す

引数

  [in] | group | … グループID
  [in] | element | … エレメントID
  [in] | vr | … VRタグ
  [in] | data | … データ
  [in] | num_bytes | … データのバイト数
  [out] | fp | … 出力ファイルストリーム
  [in] | to_little_endian | … 出力データの形式をリトルエンディアンにするかどうか

戻り値

  true | … DICOMファイルの処理に成功
  false | … DICOMファイルではないか，処理できないタグ・データが存在する場合

参照先 mist::from_current_endian(), is_sequence_separate_tag(), is_sequence_tag_end(), OB, SQ, UN, と UT.

参照元 write_dicom_tag_implicit_vr(), と write_dicom_tags().

bool mist::dicom::write_dicom_tag_implicit_vr | ( | const dicom_element & | e,
|  | FILE * | fp,
|  | bool | to_little_endian = `true`
| ) |  |
| inline

DICOMのタグ集合を Implicit VR 形式でファイルに書き出す

引数

  [in] | e | … ファイルに出力するDICOMタグ
  [out] | fp | … 出力ファイルストリーム
  [in] | to_little_endian | … 出力データの形式をリトルエンディアンにするかどうか

戻り値

  true | … DICOMファイルの処理に成功
  false | … DICOMファイルではないか，処理できないタグ・データが存在する場合

参照先 mist::dicom::dicom_element::data, mist::dicom::dicom_tag::get_element(), mist::dicom::dicom_tag::get_group(), mist::dicom::dicom_element::num_bytes, mist::dicom::dicom_tag::vr, と write_dicom_tag_implicit_vr().

bool mist::dicom::write_dicom_tags | ( | const dicom_tag_container & | dicom,
|  | const std::string & | filename
| ) |  |
| inline

DICOMのタグ集合をファイルに書き出す

引数

  [out] | dicom | … DICOMタグ毎にデータを登録するテーブル
  [in] | filename | … 出力DICOMファイル名

戻り値

  true | … DICOMファイルの処理に成功
  false | … DICOMファイルではないか，処理できないタグ・データが存在する場合

参照先 mist::dicom::dicom_tag_container::append(), compute_group_length(), mist::dicom::dicom_tag_container::contain(), find_tag(), mist::byte_array< T >::get_bytes(), get_compress_type(), mist::byte_array< T >::length(), RAW, mist::dicom::dicom_tag_container::update(), write_dicom_tag_explicit_vr(), と write_dicom_tag_implicit_vr().