【C#プログラミング】DICOMファイルかどうかを判別する

2020年5月17日日曜日

#C# #DICOM #プログラミング

t f B! P L
簡単にC#でDICOMファイルを扱う手順をお示しします。


DICOMファイルかどうかを判別するにはどうしたらいいでしょうか?

ファイルの拡張子を見る?→実際DICOMファイルには装置によっては拡張子がつかない
もしくは「.dcm」だったり「.DCM」だったりしますので、よろしくありません。

実はDICOMファイルには、ファイルのヘッダに「これはDICOMファイルですよ!」という
目印が付いています。

基本的なDICOMファイル構造|LEADTOOLS

ヘッダは128バイト固定長の「プリアンブル」から始まり、
その後に、4バイトのDICOM「プレフィックス」が続きます。

正直「プリアンブル」が何かは理解していません。

とにかく
DICOMファイルというものは129バイト目(?)から4バイトにわたって
「D」「I」「C」「M」
の4文字が並んでいるのです。

ではC#で実装してみましょう。

Windowsフォームを作ります。

button1をダブルクリックして、ボタンを押下した時の動作をコーディングします。


画像で申し訳ありません。

(最初に名前空間で using System.IO; を宣言しておきます)

ファイルダイアログを開き、選択されたファイルパスを取得します。

そのファイルを br.ReadBytes(128); で、128バイト読み飛ばします。
DICOMファイルであれば、ここがプリアンブルになります。

そのあと Encoding.UTF8.GetString(br.ReadBytes(4)); で4バイトの文字列を取得します。

プレフィックスが「DICM」かどうかをIF文で判断します。


それではやってみましょう。

 RDSRのサンプルファイル「ChestRDSR _sample.dcm」を選択


DICOMファイルと判別されました。

ただの.txtファイルを選択 

DICOMファイルではありません。



公開ツール

ページビューの合計

人気の投稿

ブログ アーカイブ

このブログを検索

QooQ