
Dalam posting terakhir kami, kami menunjukkan kepada Anda cara membuat dan menyimpan file DICOM dalam C# menggunakan Aspose.Medical for .NET. Langkah selanjutnya adalah membaca file DICOM yang telah disimpan secara programatis dalam C#. Dalam posting blog ini, Anda akan belajar cara memuat, membuka, dan membaca file DICOM menggunakan C#. Anda dapat menggunakan panduan ini sebagai titik awal untuk membuat aplikasi penampil file DCM Anda sendiri.
Artikel ini membahas topik-topik berikut:
Aspose.Medical—Pemirsa File DCM
Untuk memuat, membaca, dan melihat file DICOM, kami akan menggunakan Aspose.Medical for .NET.Ini menyediakan API yang ramah pengembang untuk membaca, menganalisis, dan mengekstrak data DICOM dengan mudah. Objek Dataset
di dalam kelas DicomFile
dari API membuatnya mudah untuk bekerja dengan metadata medis.
Sebelum kita mulai, pastikan hal berikut:
- Unduh SDK dari releases atau pasang paket melalui NuGet Package Manager menggunakan perintah berikut:
Install-Package Aspose.Medical
- Anda sudah memiliki file DICOM yang disimpan (misalnya, sample.dcm) dari tutorial sebelumnya.
Cara Membaca File DICOM: Panduan Langkah demi Langkah
Muat File DICOM
Anda dapat memuat file .dcm
ke dalam objek DicomFile
dan mengakses dataset-nya, seperti yang ditunjukkan di bawah ini:
// Load an existing DICOM file
DicomFile dicomFile = new DicomFile("sample.dcm");
Aspose.Medical.Dicom.Dataset dataset = dicomFile.Dataset;
Membaca Nilai dari Berkas DICOM
Setelah file dimuat, Anda dapat mengakses metadata kunci menggunakan tag DICOM:
string patientName = dataset.GetSingleValue<string>(Tag.PatientName);
Console.WriteLine($"Patient Name: {patientName}");
Anda dapat membaca ratusan tag DICOM dengan cara ini tergantung pada informasi apa yang Anda butuhkan.
Akses Data Piksel
Jika Anda ingin mengambil data gambar dari file DICOM, gunakan:
byte[] pixelData = dataset.GetValues<byte>(Tag.PixelData).ToArray(); // Use ToArray() for display
Console.WriteLine($"Pixel Data Length: {pixelData.Length} bytes");
Anda dapat menggunakan array byte ini untuk merender gambar atau memberikannya ke algoritma pemrosesan lebih lanjut.
Mengambil Nilai Default jika Sebuah Tag Hilang
Saat tag bersifat opsional, Anda mungkin ingin memberikan nilai cadangan. Gunakan GetSingleValueOrDefault untuk mengambil data atau mengembalikan nilai default jika tag tidak ada.
string institutionName = dataset.GetSingleValueOrDefault<string>(Tag.InstitutionName, "Unknown");
Console.WriteLine("Institution Name: " + institutionName);
Ini ideal untuk skenario di mana kehadiran tag tidak dapat diprediksi.
Mengambil Nilai Spesifik dari Tag Multi-Nilai
Jika suatu tag mengandung beberapa nilai, tetapi Anda hanya memerlukan satu, gunakan GetValue dengan ekspresi indeks atau rentang.
double imagePositionX = dataset.GetValue<double>(Tag.ImagePositionPatient, ^1);
Console.WriteLine("First Image Position X: " + imagePositionX);
Catatan: Metode ini akan melemparkan pengecualian jika tag hilang.
DCM File Viewer: Kode Lengkap
Ini adalah kode lengkap yang menunjukkan cara memuat file DICOM dan membaca informasi tag yang tersedia:
// Muat file DICOM yang disimpan
Aspose.Medical.Dicom.DicomFile dicomFile = DicomFile.Open("sample.dcm");
Aspose.Medical.Dicom.Dataset dataset = dicomFile.Dataset;
// Baca informasi terkait pasien
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);
// Baca informasi studi
string studyDateStr = dataset.GetSingleValue<string>(Tag.StudyDate);
DateTime studyDate = DateTime.ParseExact(studyDateStr, "yyyyMMdd", null);
string studyID = dataset.GetSingleValue<string>(Tag.StudyID);
// Baca metadata gambar
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
// Display information
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
Cobalah Sendiri
Anda dapat menggunakan file .dcm
apa pun, apakah dihasilkan menggunakan Aspose atau diterima dari perangkat pencitraan. Cukup muat file tersebut dan baca tag-nya, dan Anda sudah siap.
Dapatkan Lisensi Gratis
Anda dapat get a free temporary license untuk menjelajahi semua fungsionalitas Aspose.Medical for .NET tanpa batasan. Ini cepat, mudah, dan hanya memakan waktu satu menit.
DICOM File Viewer: Sumber Daya Gratis
Anda dapat meningkatkan pengalaman pengembangan Anda dengan sumber daya berharga ini:
Kesimpulan
Dalam artikel ini, kami telah melihat bagaimana cara membaca dan mengekstrak data dari file DICOM di C#. Sebagai seorang pengembang, Anda dapat menggunakan Aspose.Medical for .NET untuk bekerja dengan file DICOM (.dcm) dan membangun aplikasi penampil file DCM Anda sendiri.
Jika Anda memiliki pertanyaan atau mengalami masalah saat bekerja dengan file DICOM, jangan ragu untuk bertanya di Forum Aspose.Tim dukungan selalu siap membantu.