DICOMファイルのコンテンツを理解することは、医療イメージの開発、トラブル解決、品質の確保に不可欠です このチュートリアルは、患者情報、研究の詳細、技術的なイメージパラメーターを抽出および表示するC#で総合的なディコムメタデータビューバーを構築する方法を示しています。
DICOMメタデータとは? DICOM ファイルには 2 つの主要なコンポーネントが含まれています: ピクセルデータ (実際の画像) と メタデータ(画像に関する情報)。
患者人口学:名前、ID、出生日、性別 研究情報:日付、時間、説明、参照医師 シリーズの詳細:モダリティ、身体部品、イメージプロトコル 画像パラメーター:サイズ、ピクセルスペース、ウィンドウ/レベル設定 機器情報:メーカー、モデル、ソフトウェア版 メタデータビューヤーは、開発者がデブギング、認証、データ分析のためにこれらの属性を検証するのに役立ちます。
基本メタデータ抽出 一般的なDICOM属性を抽出することから始めます:
using Aspose.Medical.Dicom; public class DicomMetadataViewer { public DicomMetadata ExtractMetadata(string filePath) { DicomFile dicomFile = DicomFile.Open(filePath); var dataset = dicomFile.Dataset; return new DicomMetadata { // Patient Information PatientName = dataset.GetString(DicomTag.PatientName), PatientID = dataset.GetString(DicomTag.PatientID), PatientBirthDate = dataset.GetString(DicomTag.PatientBirthDate), PatientSex = dataset.GetString(DicomTag.PatientSex), PatientAge = dataset.GetString(DicomTag.PatientAge), // Study Information StudyInstanceUID = dataset.GetString(DicomTag.StudyInstanceUID), StudyDate = dataset.GetString(DicomTag.StudyDate), StudyTime = dataset.GetString(DicomTag.StudyTime), StudyDescription = dataset.GetString(DicomTag.StudyDescription), AccessionNumber = dataset.GetString(DicomTag.AccessionNumber), ReferringPhysician = dataset.GetString(DicomTag.ReferringPhysicianName), // Series Information SeriesInstanceUID = dataset.GetString(DicomTag.SeriesInstanceUID), Modality = dataset.GetString(DicomTag.Modality), SeriesDescription = dataset.GetString(DicomTag.SeriesDescription), SeriesNumber = dataset.GetString(DicomTag.SeriesNumber), BodyPartExamined = dataset.GetString(DicomTag.BodyPartExamined), // Image Information SOPInstanceUID = dataset.GetString(DicomTag.SOPInstanceUID), SOPClassUID = dataset.GetString(DicomTag.SOPClassUID), InstanceNumber = dataset.GetString(DicomTag.InstanceNumber), ImageType = dataset.GetString(DicomTag.ImageType), // Technical Parameters Rows = dataset.GetString(DicomTag.Rows), Columns = dataset.GetString(DicomTag.Columns), BitsAllocated = dataset.GetString(DicomTag.BitsAllocated), BitsStored = dataset.GetString(DicomTag.BitsStored), PixelSpacing = dataset.GetString(DicomTag.PixelSpacing), SliceThickness = dataset.GetString(DicomTag.SliceThickness), // Equipment Information Manufacturer = dataset.GetString(DicomTag.Manufacturer), ManufacturerModelName = dataset.GetString(DicomTag.ManufacturerModelName), StationName = dataset.GetString(DicomTag.StationName), InstitutionName = dataset.GetString(DicomTag.InstitutionName), SoftwareVersions = dataset.GetString(DicomTag.SoftwareVersions) }; } } public class DicomMetadata { // Patient public string PatientName { get; set; } public string PatientID { get; set; } public string PatientBirthDate { get; set; } public string PatientSex { get; set; } public string PatientAge { get; set; } // Study public string StudyInstanceUID { get; set; } public string StudyDate { get; set; } public string StudyTime { get; set; } public string StudyDescription { get; set; } public string AccessionNumber { get; set; } public string ReferringPhysician { get; set; } // Series public string SeriesInstanceUID { get; set; } public string Modality { get; set; } public string SeriesDescription { get; set; } public string SeriesNumber { get; set; } public string BodyPartExamined { get; set; } // Image public string SOPInstanceUID { get; set; } public string SOPClassUID { get; set; } public string InstanceNumber { get; set; } public string ImageType { get; set; } // Technical public string Rows { get; set; } public string Columns { get; set; } public string BitsAllocated { get; set; } public string BitsStored { get; set; } public string PixelSpacing { get; set; } public string SliceThickness { get; set; } // Equipment public string Manufacturer { get; set; } public string ManufacturerModelName { get; set; } public string StationName { get; set; } public string InstitutionName { get; set; } public string SoftwareVersions { get; set; } } すべてのDICOMタグを閲覧 すべてのタグを完全な検査のためにDICOMファイルにリストする:
...