DicomJsonSerializer kullanarak bir DICOM dosyasını JSON'a nasıl dönüştürürsünüz

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.Medical

2. 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.

 Türkçe