all-in-one-seo-pack
domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init
action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /virtual/mcu03iphuk/public_html/radiology-technologist.info/wp-includes/functions.php on line 6114easy-fancybox
domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init
action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /virtual/mcu03iphuk/public_html/radiology-technologist.info/wp-includes/functions.php on line 6114urvanov-syntax-highlighter
domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init
action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /virtual/mcu03iphuk/public_html/radiology-technologist.info/wp-includes/functions.php on line 6114breadcrumb-navxt
domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init
action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /virtual/mcu03iphuk/public_html/radiology-technologist.info/wp-includes/functions.php on line 6114advanced-ads
domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init
action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /virtual/mcu03iphuk/public_html/radiology-technologist.info/wp-includes/functions.php on line 6114lancr
ドメインの翻訳の読み込みが早すぎました。これは通常、プラグインまたはテーマの一部のコードが早すぎるタイミングで実行されていることを示しています。翻訳は init
アクション以降で読み込む必要があります。 詳しくは WordPress のデバッグをご覧ください。 (このメッセージはバージョン 6.7.0 で追加されました) in /virtual/mcu03iphuk/public_html/radiology-technologist.info/wp-includes/functions.php on line 6114画像処理を行っていく際に、タグ情報を使うことは多々あります。
そこで、今回はpythonでDICOMタグを扱っていく方法をやってみたいと思います。
DICOMを読み込む方法や、表示方法は以下の記事に記載していますのでそちらを参照ください。
まずは、タグ情報を扱うにはDICOMタグの構成を知らなければなりません。タグの一つ一つの中には以下のようないろいろな情報がまとまって一つの情報となっています。(記載事項以外にもあるかも。。。)
Tag | タグの番号 |
Attribute Name | 項目名 |
Attribute Name J | 日本語の項目名 (上図に記載されていません) |
Attribute Type | データの必須事項、条件付き必須事項等 (上図に記載されていません) |
VR | データの型 |
Length | データの長さ (上図に記載されていません) |
Value | 値 |
なので、プログラミングで使っていく際にはDICOMデータのどの項目を扱っていくのか指定しなければならないということになります。
タグには必須事項となるタグがあり、それが予約タグとなります。
また、必須項目のタグはモダリティーにより異なってきます。
また、患者情報であったり、検査情報であったり、必須項目は偶数番のブロック(タグ番号の前側の番号)で指定されています。一方、プライベートタグに関しては奇数番で指定できます。
各モダリティーごとの必須項目タグはLIBERWORKS社のサイトに記載されていますので興味があるかたはご覧ください。
既存のタグ情報を変更するする場合は以下のコードでできます。
dcm[0x0008,0x0070].value = ‘変更する値’
なお、このままではタグ情報を変更しただけで保存できていませんので次に保存していきましょう。
タグ情報を変更したら今度は、画像に保存しなければなりません。
save_as(file_path, write_like_original=False)
で保存することができます。
write_like_original=False
の部分は、DICOMに準拠した形式ではなく個人で指定した形式で保存しますか?という事です。なので、Trueにしてしまうと形式に反してしまうかもしれませんのでここの部分はFalseのままがいいでしょう。
プライベートタグに関しては、企業がそれぞれ作成しています。
例えば、SiemensのMRI装置でDiffusionを撮像した場合、b値等がプライベートタグとして登録されていますが、10年前のcanon製のMRI 装置では記載されていません。
プライベートタグを画像に載せたい場合はまず、ブロックを作成しなくてはなりません。患者に関する情報を載せているグループや、検査情報を載せているグループといったものです。
block = dcm.private_block(0x0019, “diffusion parameter”, create=True)
block.add_new(0x0c, ‘SH’, b_val)
で画像に登録をしたら保存をします。
dcm.save_as(file_path, write_like_original=False)
これで、プライべートタグの登録が完了です。
DICOM規格に関してはJIRAのホームページに詳細な記載がありますので興味がある方は以下のリンクからご覧ください。
JIRA 勉強会資料 DICOMに慣れる -現場で DICOM 接続に慌てないための知識 (3) 画像系の通信 -