Bagaimana untuk mengubah file DICOM ke JSON menggunakan DicomJsonSerializer
Tutorial ini menunjukkan bagaimana untuk menukarkan file DICOM ke format JSON menggunakan C#. output jSON adalah penting untuk mengintegrasikan metadata DIKOM dengan layanan web modern, REST APIs, dan sistem informasi kesehatan.
Manfaat Konversi DICOM ke JSON
• Integrasi Web:- JSON adalah format standar untuk REST API dan layanan web.
Analisis data:- Mudah memproses metadata DICOM dalam pipa analisis data.
• Interoperabilitas :- Berkongsi metadata dengan sistem yang tidak mendukung format DICOM asli.
Persyaratan: Persiapan Lingkungan
- Menginstal Visual Studio atau IDE .NET yang kompatibel.
- Mencipta aplikasi .NET 8 baru.
- Instal Aspose.Medical dari NuGet Package Manager.
Panduan Langkah-Langkah untuk Konversi DICOM ke JSON
Langkah 1: Instalasi Aspose.Medical
Tambahkan perpustakaan Aspose.Medical ke proyek Anda menggunakan NuGet.
Install-Package Aspose.MedicalLangkah 2: Menyertakan ruang nama yang diperlukan
Tambahkan referensi ke ruang nama yang diperlukan dalam kode Anda.
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;Langkah 3: Muat turun file DICOM
Download file DICOM yang ingin Anda konversi.
DicomFile dcm = DicomFile.Open("patient_scan.dcm");Langkah 4: Serialisasi ke JSON
Gunakan The DicomJsonSerializer.Serialize Metode untuk mengubah file DICOM menjadi JSON.
string json = DicomJsonSerializer.Serialize(dcm);Langkah 5: Simpan atau Gunakan output JSON
Simpan JSON ke file atau gunakan langsung dalam aplikasi Anda.
// Save to file
File.WriteAllText("patient_scan.json", json);
// Or use directly
Console.WriteLine(json);Contoh Kod lengkap untuk Konversi DICOM ke JSON
Berikut adalah contoh lengkap yang menunjukkan bagaimana untuk menukar file DICOM ke JSON:
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;
// Load the DICOM file
DicomFile dcm = DicomFile.Open("patient_scan.dcm");
// Convert to JSON
string json = DicomJsonSerializer.Serialize(dcm);
// Save to file
File.WriteAllText("patient_scan.json", json);
Console.WriteLine("DICOM file converted to JSON successfully!");
Console.WriteLine($"Output saved to: patient_scan.json");Produk JSON Pretty Printed
Untuk JSON yang dapat dibaca oleh manusia dengan indentasi, gunakan writeIndented Untuk Parameter :
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;
DicomFile dcm = DicomFile.Open("patient_scan.dcm");
// Serialize with indentation for readability
string prettyJson = DicomJsonSerializer.Serialize(dcm, writeIndented: true);
File.WriteAllText("patient_scan_pretty.json", prettyJson);
Console.WriteLine("Pretty-printed JSON saved successfully!");Konversi Dataset Daripada DicomFile
Anda juga dapat mengkonversi hanya bagian Dataset:
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;
DicomFile dcm = DicomFile.Open("patient_scan.dcm");
// Serialize only the dataset (without file meta information)
string datasetJson = DicomJsonSerializer.Serialize(dcm.Dataset);
File.WriteAllText("patient_dataset.json", datasetJson);Contoh struktur output JSON
Hasil JSON mengikuti standar DICOM PS3.18. berikut adalah contoh bagaimana hasilnya terlihat:
{
"00080005": {
"vr": "CS",
"Value": ["ISO_IR 100"]
},
"00080020": {
"vr": "DA",
"Value": ["20240115"]
},
"00080030": {
"vr": "TM",
"Value": ["143022"]
},
"00100010": {
"vr": "PN",
"Value": [
{
"Alphabetic": "DOE^JOHN"
}
]
},
"00100020": {
"vr": "LO",
"Value": ["12345"]
}
}Serialisasi Berbasis Stream
Untuk file besar atau aplikasi web, gunakan serialisasi berbasis stream:
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;
DicomFile dcm = DicomFile.Open("large_scan.dcm");
// Write directly to a file stream
using (FileStream fs = File.Create("large_scan.json"))
{
DicomJsonSerializer.Serialize(fs, dcm.Dataset);
}
Console.WriteLine("Large DICOM file serialized to JSON stream!");Contoh Integrasi: Mengirim JSON ke Web API
Berikut adalah cara mengintegrasikan konversi DICOM ke JSON dengan klien HTTP:
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;
using System.Net.Http;
using System.Text;
DicomFile dcm = DicomFile.Open("patient_scan.dcm");
string json = DicomJsonSerializer.Serialize(dcm);
// Send to web API
using HttpClient client = new();
var content = new StringContent(json, Encoding.UTF8, "application/json");
HttpResponseMessage response = await client.PostAsync(
"https://api.example.com/dicom/metadata",
content
);
if (response.IsSuccessStatusCode)
{
Console.WriteLine("DICOM metadata successfully sent to API!");
}Tips Penggunaan
Menggunakan Metadata DICOM
Gunakan konversi JSON untuk memeriksa nilai tag DICOM:
DicomFile dcm = DicomFile.Open("unknown_scan.dcm");
string json = DicomJsonSerializer.Serialize(dcm, writeIndented: true);
Console.WriteLine(json);Mengirim ke Web Front-End
JSON ideal untuk menampilkan metadata DICOM pada penonton berbasis browser:
// In ASP.NET Core controller
[HttpGet("dicom/{id}/metadata")]
public IActionResult GetMetadata(string id)
{
DicomFile dcm = DicomFile.Open($"storage/{id}.dcm");
string json = DicomJsonSerializer.Serialize(dcm);
return Content(json, "application/json");
}Apa yang Termasuk dalam JSON Output
Hasil JSON termasuk:
- Semua tag DICOM dengan nilai mereka
- Representasi nilai (VR) untuk setiap tag
- Item sekuensi seperti objek JSON
- Referensi data biner (BulkData) untuk data piksel
Informasi Tambahan
- Format JSON mengikuti spesifikasi DICOM PS3.18 Web Services.
- Nilai biner besar (seperti data piksel) biasanya dirujuk bukannya tertanam.
- Pertimbangkan menggunakan opsi serialisasi tersuai untuk keperluan integrasi spesifik.
Kesimpulan
Tutorial ini telah menunjukkan kepada Anda bagaimana untuk mengkonversi file DICOM ke format JSON dalam C# menggunakan Aspose.Medical. output jSON memungkinkan integrasi tanpa wayar dengan APIs kesehatan modern, web viewers, dan sistem analisis data.