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ırakDeserializeFileAsync- UTF-8 JSON akışını DicomFile’ye devre dışı bırakınDeserializeListAsync- UTF-8 JSON akışını Dataset array’a devre dışı bırakınSerializeAsync- 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ği | Açıklama |
|---|---|
UseKeywordsAsJsonKeys | Etiket yerine DICOM anahtar kelimeleri kullanın (standart olmayan) |
WriteKeyword | DICOM etiket anahtar kelimeyi ayrı JSON özellikleri olarak yazın |
WriteName | DICOM etiket adını ayrı JSON özellikleri olarak yazın |
NumberHandling | sayılar gibi davranın AsNumber veya AsString |
BulkDataLoader | BulkData elemanlarında referanslanan blob verileri için yükleyici |
BulkDataConverter | BulkData 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ı |
|---|---|
DicomFile | JSON ve XML |
Dataset | JSON 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
| Operasyon | Input | çıkış | Yöntem |
|---|---|---|---|
| Serialize | Dataset | string / akış | Serialize |
| Serialize | DicomFile | string / akış | Serialize |
| Serialize | İletişim Bilgileri [ ] | string / akış | Serialize |
| Deserialize | string / akış | Dataset | Deserialize |
| Deserialize | string / akış | DicomFile | DeserializeFile |
| Deserialize | string / 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.