DicomJsonSerializer kullanarak bir DICOM dosyasını JSON'a nasıl dönüştürürsünüz
Bu öğretici, DICOM dosyalarını C# kullanarak JSON biçiminde nasıl dönüştürüleceğini gösterir.JSON çıkışı, modern web hizmetleri, REST APIs ve sağlık bilgilendirme sistemleri ile DIKOM metadata entegre etmek için gereklidir.
DICOM’u JSON’a Dönüştürmenin Faydaları
• İnternet bağlantısı *:- JSON, REST APIs ve web hizmetleri için standart biçimdir.
Veri Analizi:- DICOM metadata veri analiz borularında kolayca işlenir.
• İşbirliği * :- Metadata, yerli DICOM biçimlerini desteklemeyen sistemlerle paylaşılır.
Etiket Arşivi: çevreyi hazırlamak
- Visual Studio veya herhangi bir uyumlu .NET IDE ayarlayın.
- Yeni bir .NET 8 konsol uygulama projesi oluşturun.
- Aspose.Medical’ı NuGet Paket Yöneticisi’nden kurun.
DICOM’u JSON’a dönüştürmek için adım adım rehber
Adım 1: Aspose.Medical yükleme
Projenize Aspose.Medical kütüphanesini NuGet kullanarak ekleyin.
Install-Package Aspose.Medical2. Adım: İhtiyacınız olan alanları içerir
Kodunuzda gerekli isim alanlarına referanslar ekleyin.
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;Adım 3: DICOM dosyasını yükleme
Dönüştürmek istediğiniz DICOM dosyasını yükleyin.
DicomFile dcm = DicomFile.Open("patient_scan.dcm");Adım 4: JSON’a Serialize
Kullanmak için DicomJsonSerializer.Serialize DICOM dosyasını JSON’a dönüştürme yöntemi.
string json = DicomJsonSerializer.Serialize(dcm);Adım 5: JSON çıkışını kaydetmek veya kullanmak
JSON’u bir dosyaya kaydedin veya doğrudan uygulamanızda kullanın.
// Save to file
File.WriteAllText("patient_scan.json", json);
// Or use directly
Console.WriteLine(json);DICOM’u JSON’a dönüştürmek için tam kod örneği
İşte bir DICOM dosyasını JSON’a nasıl dönüştüreceğinizi gösteren tam bir örnek:
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");Pretty-Print JSON çıkışları
İnsan okunabilir JSON indentasyon ile, kullanın writeIndented Parametreler için :
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!");DicomFile yerine Dataset Dönüştürme
Ayrıca, yalnızca Dataset kısmını dönüştürebilirsiniz:
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);Örnek JSON çıkış yapısı
JSON çıkışı DICOM PS3.18 standartlarına uymaktadır. burada çıkışın nasıl göründüğünün bir örneği:
{
"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"]
}
}Stream tabanlı serializasyon
Büyük dosyalar veya web uygulamaları için, akış tabanlı serializasyon kullanın:
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!");Entegre Örneği: JSON’u Web API’ye Gönder
İşte bir HTTP istemcisi ile DICOM’u JSON dönüştürmeyi nasıl entegre edersiniz:
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!");
}Kullanım Tipleri
DICOM Metadata Çözümleri
DICOM etiket değerlerini kontrol etmek için JSON dönüştürme kullanın:
DicomFile dcm = DicomFile.Open("unknown_scan.dcm");
string json = DicomJsonSerializer.Serialize(dcm, writeIndented: true);
Console.WriteLine(json);Web Front-End’e Gönder
JSON, tarayıcı tabanlı izleyicilerde DICOM metadata görüntülemek için idealdir:
// 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");
}JSON çıkışında ne içerir
JSON çıkışı şunları içerir:
- Tüm DICOM etiketleri değerleri ile
- Her etiket için değer temsilcileri (VR)
- JSON nesneleri gibi sıralama öğeleri
- Piksel verileri için ikili veri referansları (BulkData)
Ek Bilgiler
- JSON formatı DICOM PS3.18 Web Hizmetleri özelliklerini takip eder.
- Büyük ikili değerler (piksel verileri gibi) genellikle yerleşik değil referans edilir.
- Özel entegrasyon gereksinimleri için özelleştirilmiş serializasyon seçenekleri kullanmayı düşünün.
Sonuç
Bu öğretici size Aspose.Medical kullanarak C#‘da JSON biçiminde DICOM dosyalarını nasıl dönüştürdüğünü göstermiştir.JSON çıkışı, modern sağlık APIs, web izleyicileri ve veri analiz sistemleri ile çarpıcı bir entegrasyon sağlar.