
私たちの last post では、Aspose.Medical for .NET を使用して、C# で DICOM ファイルを作成し保存する方法を示しました。次のステップは、C# でプログラム的に保存された DICOM ファイルを読み取ることです。このブログ投稿では、C# を使用して DICOM ファイルをロード、オープン、読み取る方法を学びます。このガイドを出発点として、自分自身の DCM ファイルビューアアプリケーションを作成することができます。
この記事では、以下のトピックについて扱います:
Aspose.Medical—DCM ファイル ビューア
DICOMファイルの読み込み、表示、および読み取りには、Aspose.Medical for .NETを使用します。これにより、開発者に優しいAPIを提供し、DICOMデータを簡単に読み取り、分析し、抽出できます。APIのDicomFile
クラス内にあるDataset
オブジェクトは、医療メタデータを扱いやすくします。
始める前に、次のことを確認してください:
Install-Package Aspose.Medical
- 以前のチュートリアルから保存されたDICOMファイル(例:sample.dcm)を既に持っています。
DICOMファイルを読む方法:ステップバイステップガイド
DICOMファイルを読み込む
.dcm
ファイルをDicomFile
オブジェクトにロードし、そのデータセットにアクセスできます。以下に示します:
// Load an existing DICOM file
DicomFile dicomFile = new DicomFile("sample.dcm");
Aspose.Medical.Dicom.Dataset dataset = dicomFile.Dataset;
DICOMファイルから値を読み取る
ファイルがロードされると、DICOMタグを使用して主要なメタデータにアクセスできます:
string patientName = dataset.GetSingleValue<string>(Tag.PatientName);
Console.WriteLine($"Patient Name: {patientName}");
この方法で、必要な情報に応じて数百のDICOMタグを読むことができます。
ピクセルデータにアクセスする
DICOMファイルから画像データを取得するには、次のようにします:
byte[] pixelData = dataset.GetValues<byte>(Tag.PixelData).ToArray(); // Use ToArray() for display
Console.WriteLine($"Pixel Data Length: {pixelData.Length} bytes");
このバイト配列を使用して画像をレンダリングするか、さらなる処理アルゴリズムに供給することができます。
タグが欠落している場合のデフォルト値の取得
タグがオプションの場合、フォールバック値を提供することを検討してください。 GetSingleValueOrDefault を使用してデータを取得するか、タグが存在しない場合はデフォルトを返します。
string institutionName = dataset.GetSingleValueOrDefault<string>(Tag.InstitutionName, "Unknown");
Console.WriteLine("Institution Name: " + institutionName);
これは、タグの存在が予測できないシナリオに最適です。
マルチバリュータグから特定の値を取得する
タグが複数の値を含んでいる場合でも、必要なのが1つだけの場合は、インデックスまたは範囲式を使って GetValue を使用してください。
double imagePositionX = dataset.GetValue<double>(Tag.ImagePositionPatient, ^1);
Console.WriteLine("First Image Position X: " + imagePositionX);
注意: このメソッドは、タグが欠落している場合に例外をスローします。
DCMファイルビューア:完全なコード
ここに、DICOMファイルをロードし、利用可能なタグの情報を読み取る方法を示す完全な動作コードがあります:
// 保存されたDICOMファイルをロードします
Aspose.Medical.Dicom.DicomFile dicomFile = DicomFile.Open("sample.dcm");
Aspose.Medical.Dicom.Dataset dataset = dicomFile.Dataset;
// 患者に関連する情報を読む
string patientID = dataset.GetSingleValue<string>(Tag.PatientID);
string patientName = dataset.GetSingleValue<string>(Tag.PatientName);
string birthDateStr = dataset.GetSingleValue<string>(Tag.PatientBirthDate);
DateTime birthDate = DateTime.ParseExact(birthDateStr, "yyyyMMdd", null);
// 研究情報を読む
string studyDateStr = dataset.GetSingleValue<string>(Tag.StudyDate);
DateTime studyDate = DateTime.ParseExact(studyDateStr, "yyyyMMdd", null);
string studyID = dataset.GetSingleValue<string>(Tag.StudyID);
// 画像メタデータを読み取る
int rows = dataset.GetSingleValue<int>(Tag.Rows);
int columns = dataset.GetSingleValue<int>(Tag.Columns);
int bitsAllocated = dataset.GetSingleValue<int>(Tag.BitsAllocated);
string modality = dataset.GetSingleValue<string>(Tag.Modality);
byte[] pixelData = dataset.GetValues<byte>(Tag.PixelData).ToArray(); // Use ToArray() for display
// 情報を表示してください
Console.WriteLine($"Patient ID: {patientID}");
Console.WriteLine($"Patient Name: {patientName}");
Console.WriteLine($"Birth Date: {birthDate:yyyy-MM-dd}");
Console.WriteLine($"Study Date: {studyDate:yyyy-MM-dd}");
Console.WriteLine($"Study ID: {studyID}");
Console.WriteLine($"Image Rows: {rows}");
Console.WriteLine($"Image Columns: {columns}");
Console.WriteLine($"Bits Allocated: {bitsAllocated}");
Console.WriteLine($"Modality: {modality}");
Console.WriteLine($"Pixel Data Length: {pixelData.Length} bytes");
Output
Patient ID: JD123456
Patient Name: John Doe
Birth Date: 1985-07-20
Study Date: 2025-07-07
Study ID: Study001
Image Rows: 256
Image Columns: 256
Bits Allocated: 8
Modality: OT
Pixel Data Length: 65536 bytes
自分で試してみてください
任意の .dcm
ファイルを使用できます。Aspose を使用して生成されたものであろうと、画像装置から受信されたものであろうと、問題ありません。ファイルを読み込んでタグを読み取るだけで、準備完了です。
無料ライセンスを取得する
あなたは get a free temporary license を取得して、Aspose.Medical for .NET の完全な機能を制限なく探索することができます。すぐに、簡単に、わずか1分で完了します。
DICOMファイルビューア: 無料リソース
これらの貴重なリソースを使用して、開発体験を向上させることができます:
結論
この記事では、C#でDICOMファイルからデータを読み取り、抽出する方法を見てきました。開発者として、Aspose.Medical for .NETを使用してDICOM(.dcm)ファイルを操作し、独自のDCMファイルビューワーアプリケーションを構築できます。
DICOMファイルを扱っている際に質問や問題がある場合は、Aspose Forumsに遠慮なくお問い合わせください。サポートチームは常にお手伝いする準備ができています。