Aspose.Medical DICOM .NET için metin dönüştürücü

Aspose.Medical DICOM to Text Converter for .NET ** insan okunabilir ve makine boşaltılabilir biçimlere dönüştürmek için odaklanan güçlü bir API’dir**.DIKOM veri setlerini JSON ve XML formatlarına serialize eder, web hizmetleri, REST APIs ve modern sağlık sistemleri ile entegre olmasını sağlar.

Yükleme ve Setup

  • NuGet paketini kurun Aspose.Medical (Core API güçlendirme dönüştürme)
  • Değerlendirme sınırlarını önlemek için başlangıçta ölçülen lisans uygulaması: bakınız Ölçümlü Lisanslama .
  • Çerçeve gereksinimlerini incelemek için Yükleme Rehberi .

Desteklenen platformlar

  • Windows, Linux ve MacOS
  • • Çerçeve: .NET 8.0+
  • Arşitektörler: x64, ARM64 (macOS)

hızlı başlangıç

1) DICOM JSON için

using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;

DicomFile dcm = DicomFile.Open("patient_scan.dcm");
string json = DicomJsonSerializer.Serialize(dcm);

2) Pretty Print ile DICOM to JSON

using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;

DicomFile dcm = DicomFile.Open("patient_scan.dcm");
string formattedJson = DicomJsonSerializer.Serialize(dcm, writeIndented: true);
Console.WriteLine(formattedJson);

3) DICOM Dataset için JSON

using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;

DicomFile dcm = DicomFile.Open("patient_scan.dcm");
Dataset dataset = dcm.Dataset;
string json = DicomJsonSerializer.Serialize(dataset, writeIndented: true);

4) Çoklu DICOM dosyaları JSON Array

using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;

DicomFile dcm1 = DicomFile.Open("scan1.dcm");
DicomFile dcm2 = DicomFile.Open("scan2.dcm");
Dataset[] datasets = [dcm1.Dataset, dcm2.Dataset];
string json = DicomJsonSerializer.Serialize(datasets, writeIndented: true);

5) Seriyalize to Stream (Memory Efficient)

using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;

DicomFile dcm = DicomFile.Open("patient_scan.dcm");
using MemoryStream stream = new();
DicomJsonSerializer.Serialize(stream, dcm.Dataset);

6) JSON dosyası olarak kaydedin

using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;

DicomFile dcm = DicomFile.Open("patient_scan.dcm");
using FileStream output = File.Create("output.json");
DicomJsonSerializer.Serialize(output, dcm.Dataset, writeIndented: true);

JSON Deserializasyon

JSON String’i Dataset’e devre dışı bırakın

using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;

string jsonText = File.ReadAllText("dicom_data.json");
Dataset? dataset = DicomJsonSerializer.Deserialize(jsonText);

JSON Stream’ı Dataset’e devre dışı bırakın

using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;

using FileStream stream = File.OpenRead("dicom_data.json");
Dataset? dataset = DicomJsonSerializer.Deserialize(stream);

Deserialize JSON to DicomFile İndir

using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;

string jsonText = File.ReadAllText("dicom_file.json");
DicomFile? dicomFile = DicomJsonSerializer.DeserializeFile(jsonText);

Deserialize JSON Array to Multiple Dataset

using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;

string jsonText = File.ReadAllText("dicom_array.json");
Dataset[]? datasets = DicomJsonSerializer.DeserializeList(jsonText);

XML Serializasyon

DICOM ile XML

using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;

DicomFile dcm = DicomFile.Open("patient_scan.dcm");
string xml = DicomXmlSerializer.Serialize(dcm.Dataset);

DICOM Dataset için XML

using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;

string xmlText = File.ReadAllText("dicom_data.xml");
Dataset? dataset = DicomXmlSerializer.Deserialize(xmlText);

Async Ateş

Web uygulamalarında ve hizmetlerinde asinkron işlemler için:

using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;

// Async deserialization from stream
using FileStream stream = File.OpenRead("dicom_data.json");
Dataset? dataset = await DicomJsonSerializer.DeserializeAsync(stream);

// Async serialization to stream
using FileStream output = File.Create("output.json");
await DicomJsonSerializer.SerializeAsync(output, dataset);

** Async yöntemleri mevcuttur:**

  • DeserializeAsync - UTF-8 JSON akışını Dataset’e devre dışı bırak
  • DeserializeFileAsync - UTF-8 JSON akışını DicomFile’ye devre dışı bırakın
  • DeserializeListAsync - UTF-8 JSON akışını Dataset array’a devre dışı bırakın
  • SerializeAsync - Dataset, DicomFile veya DataSet array’ı UTF-8 JSON akışına serialize edin

Özellikler ve Fonksiyonel

DICOM Web Hizmetleri Uyumluluğu

Konverter DICOM PS3.18 (Web Hizmetleri) standartlarına uymaktadır ve şunlarla uyumludur:

  • Diğer DICOM Web APIs
  • Bulut tabanlı PACS sistemleri
  • Modern Sağlık İşbirliği Platformları
  • FHIR uyumlu sistemler

Serializasyon seçenekleri

serializasyon davranışını özelleştirmek için DicomJsonSerializerOptions:

DicomJsonSerializerOptions options = new()
{
    UseKeywordsAsJsonKeys = false,  // Use tags instead of keywords
    WriteKeyword = true,            // Include keyword as separate attribute
    WriteName = true,               // Include tag name as separate attribute
    NumberHandling = JsonNumberHandling.AsNumber  // Number format
};

string json = DicomJsonSerializer.Serialize(dataset, options);
seçeneğiAçıklama
UseKeywordsAsJsonKeysEtiket yerine DICOM anahtar kelimeleri kullanın (standart olmayan)
WriteKeywordDICOM etiket anahtar kelimeyi ayrı JSON özellikleri olarak yazın
WriteNameDICOM etiket adını ayrı JSON özellikleri olarak yazın
NumberHandlingsayılar gibi davranın AsNumber veya AsString
BulkDataLoaderBulkData elemanlarında referanslanan blob verileri için yükleyici
BulkDataConverterBulkData referansları olarak verileri yazmak için dönüştürücü

Sistem.Text.Json Entegre

Standart .NET JSON serializasyonu ile dönüştürücüler kullanın:

using System.Text.Json;
using Aspose.Medical.Dicom.Serialization;

JsonSerializerOptions options = new();
options.Converters.Add(new DicomFileJsonConverter());
options.Converters.Add(new DatasetJsonConverter());

// Now use with JsonSerializer
string json = JsonSerializer.Serialize(dicomFile, options);

Desteklenen türler

Giriş Tipiçıkış formatı
DicomFileJSON ve XML
DatasetJSON ve XML
Dataset[]JSON ve XML

veri muhafaza

Seriyalizasyon şunları doğru bir şekilde korur:

  • Tüm DICOM etiketleri ve değerleri
  • Değer Görüntüleri (VR )
  • Sonuçlar NESTED
  • Özel tags
  • Bulk veri referansları
  • Özel Float Değerleri (NaN, Infinity)

Ortak Kullanım Olayları

  • Web Görüntüleri: Tarayıcı tabanlı tıbbi görüntü izleyicilerine DICOM metadata sunun.
  • REST APIs: DICOM verilerini JSON biçiminde değiştirebilecek sağlık hizmetlerini oluşturun.
  • Data Analytics: veri işleme borularında analiz için DICOM metadata ihraç etmek.
  • Entegre: Modern bulut tabanlı sağlık platformları ile miras PACS’i bağlayın.
  • Debugging: Sorun çözmek için DICOM verilerinin insan okunabilir görüntüleri oluşturun.
  • Arşivleme: DICOM metadata MongoDB veya Elasticsearch gibi belge veritabanlarında kaydedilir.

En İyi Uygulamalar

  • License first: Değerlendirme kısıtlamalarından kaçınmak için herhangi bir dönüşümden önce ölçülen lisanslanmayı başlatın.
  • Use streams: Büyük dosyalar veya web hizmetleri için, hafıza verimliliği için akış tabanlı yöntemler kullanın.
  • Async işlemleri: Web uygulamalarında asynk yöntemlerini kullanarak çubukları engellemeyi önler.
  • Görüntüleme yolları: Veri bütünlüğünü sağlamak için serializasyon/deserialization test döngüleri.
  • Standart Uyumluluk: DICOM PS3.18 uyumluluğu için varsayılan seçenekleri kullanın; standart olmayan seçimler üçüncü taraf ortakları bozabilir.
  • UTF-8 kodlama: Akış yöntemleri, web APIs ve dosya işlemleri için idealdir.

Operasyon Özetleri

OperasyonInputçıkışYöntem
SerializeDatasetstring / akışSerialize
SerializeDicomFilestring / akışSerialize
Serializeİletişim Bilgileri [ ]string / akışSerialize
Deserializestring / akışDatasetDeserialize
Deserializestring / akışDicomFileDeserializeFile
Deserializestring / akışİletişim Bilgileri [ ]DeserializeList

FAQ Hakkında

** Üçüncü taraf kütüphaneleri gerektirir mi?**Bu yalnızca .NET’in yerleşik JSON/XML desteğini kullanan ayrı bir API’dir.

**JSON çıkışı DICOM Web Hizmetleri’ne uygun mu?**Evet. varsayılan çıkış DICOM PS3.18 özelliklerini takip eder.

**JSON anahtar biçimini özelleştirebilir miyim?**Evet Kullanım DicomJsonSerializerOptions Etiket kontrolü vs. anahtar kelimeler ve ek özellikler.

  • Sürücülükler korunmuş mu? *Evet. serializer, dikişli seanslar da dahil olmak üzere tam DICOM yapısını korur.

**Büyük DICOM dosyalarını nasıl ele alabilirim?**Çevrimiçi yöntemler kullanın (Serialize(stream, ...) ve DeserializeAsync• Hafıza verimli işlem için.

**Düzenle dönüşüm kaybı yok mu?**Evet. serializasyon tüm DICOM verilerini doğru deserializasyonu için Dataset veya DicomFile nesnelerine geri tutar.

 Türkçe