Aspose.Medical DICOM إلى محول النص لـ .NET
Aspose.Medical DICOM to Text Converter for .NET هو API قوي يركز على تحويل بيانات DICUM إلى تنسيقات قابلة للقراءة للإنسان والآلة.إنه يصلح مجموعات بياناتها DIKOM إلى JSON و XML، مما يتيح التكامل مع خدمات الويب، REST APIs، وأنظمة الرعاية الصحية الحديثة.مصنوعة من أجل التفاعل، فإنه يوفر تصنيف متوافق مع المعايير وفقًا لمعايير الخدمات الالكترونية (PS3.18)**
تثبيت وإعداد
- قم بتثبيت حزمة NuGet
Aspose.Medical(القوة النووية API التحويل). - تطبيق الترخيص المقياس في الشركات الناشئة لتجنب حدود التقييم: انظر ترخيص مقيد .
- مراجعة متطلبات الإطار في دليل التركيب .
منصات مدعومة
- نظام التشغيل: Windows، Linux، macOS
- الإطار: .NET 8.0+
- أرشيف الوسم : x64, ARM64 (macOS)
بدء سريع
أولاً : DICOM TO JSON
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;
DicomFile dcm = DicomFile.Open("patient_scan.dcm");
string json = DicomJsonSerializer.Serialize(dcm);2) DICOM إلى JSON مع Pretty Print
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 إلى 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) العديد من ملفات DICOM إلى 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 – تسريع الذاكرة (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
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 التفريغ
إزالة JSON String إلى Dataset
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;
string jsonText = File.ReadAllText("dicom_data.json");
Dataset? dataset = DicomJsonSerializer.Deserialize(jsonText);إزالة JSON Stream إلى Dataset
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;
using FileStream stream = File.OpenRead("dicom_data.json");
Dataset? dataset = DicomJsonSerializer.Deserialize(stream);تحويل JSON إلى DicomFile
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;
string jsonText = File.ReadAllText("dicom_file.json");
DicomFile? dicomFile = DicomJsonSerializer.DeserializeFile(jsonText);إزالة JSON Array إلى مجموعة بيانات متعددة
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;
string jsonText = File.ReadAllText("dicom_array.json");
Dataset[]? datasets = DicomJsonSerializer.DeserializeList(jsonText);XML التسلسل
DICOM إلى XML
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;
DicomFile dcm = DicomFile.Open("patient_scan.dcm");
string xml = DicomXmlSerializer.Serialize(dcm.Dataset);XML إلى DICOM Dataset
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;
string xmlText = File.ReadAllText("dicom_data.xml");
Dataset? dataset = DicomXmlSerializer.Deserialize(xmlText);النار Async
للعمليات غير المتزامنة في تطبيقات وخدمات الويب:
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 المتاحة:**
DeserializeAsync- تخفيف تدفق UTF-8 JSON إلى DatasetDeserializeFileAsync- تخفيف تدفق UTF-8 JSON إلى DicomFileDeserializeListAsync- تخفيف تدفق UTF-8 JSON إلى سلسلة DatasetSerializeAsync- تسلسل Dataset أو DicomFile أو Dataaset إلى نطاق UTF-8 JSON
الخصائص والوظائف
DICOM خدمات الويب الامتثال
يلتزم المحول بمعيار DICOM PS3.18 (خدمات الويب) ، مما يضمن التوافق مع:
- بقايا DICOM Web APIs
- نظام PACS القائم على السحابة
- منصات التفاعل في مجال الرعاية الصحية الحديثة
- نظام متوافق مع FHIR
خيارات التسلسل
تخصيص سلوك التسلسل مع 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);| Option | وصف |
|---|---|
UseKeywordsAsJsonKeys | استخدم كلمات مفتاحية DICOM بدلاً من العلامات كمفاتيح JSON (غير القياسية) |
WriteKeyword | كتابة علامة DICOM ككلمة مفتاحية منفصلة JSON |
WriteName | اكتب اسم علامة DICOM كميزة JSON منفصلة |
NumberHandling | تداول الأرقام مثل AsNumber أو AsString |
BulkDataLoader | تحميل بيانات blob المذكورة في عناصر BulkData |
BulkDataConverter | محول للكتابة البيانات كإشارات BulkData |
System.Text.Json التكامل
استخدم المحولات مع تسلسل .NET JSON القياسي:
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);النوع المدعوم
| نوع الدخول | تنسيقات الخروج |
|---|---|
DicomFile | JSON، XML |
Dataset | JSON، XML |
Dataset[] | JSON، XML |
الحفاظ على البيانات
الحفاظ على التسلسل بدقة:
- جميع علامات DICOM وقيمها
- تمثيل القيمة (VR )
- السلسلة المتأخرة
- العلامات الخاصة
- إشارات البيانات الكبيرة
- قيمة السفينة الخاصة (NaN، Infinity)
حالات الاستخدام المشترك
- مشاهدة الويب: خدمة بيانات DICOM للمشاهدين الصورة الطبية القائمة على المتصفح.
- REST APIs: إنشاء API للرعاية الصحية التي تبادل بيانات DICOM في تنسيق JSON.
- Data Analytics: تصدير DICOM البيانات الميتا للتحليل في أنابيب معالجة بيانات.
- التكامل: قم بتوصيل PACS التراثي مع منصات الرعاية الصحية الحديثة القائمة على السحابة.
- Debugging: إنشاء تمثيلات قابلة للقراءة للإنسان من بيانات DICOM لحل المشاكل.
- أرشيف: تخزين بيانات DICOM في قواعد البيانات المستندة مثل MongoDB أو Elasticsearch.
أفضل الممارسات
- الترخيص أولا: بدء الترخيص المقياس قبل أي تحويل لتجنب قيود التقييم.
- استخدام التدفقات: بالنسبة للملفات الكبيرة أو خدمات الويب، استخدم أساليب تدفق لفعالية الذاكرة.
- العمليات Async: استخدم أساليب ASYNC في تطبيقات الويب لتجنب حجب السلاسل.
- تأكيد المسارات المستديرة: اختبار دورات التسلسل/التسلسل لضمان سلامة البيانات.
- الامتثال القياسي: استخدم الخيارات الافتراضية لتلبية متطلبات DICOM PS3.18؛ قد تنكسر خيارات غير القياسية شركاء ثالثين.
- تصنيف UTF-8: تستخدم أساليب التدفق تصنيع UT F-8 ، مثالية لـ APIs الويب وعمليات الملفات.
ملخص العمليات
| العمليات | Input | الخروج | الطريقة |
|---|---|---|---|
| Serialize | Dataset | ستيفن / Stream | Serialize |
| Serialize | DicomFile | ستيفن / Stream | Serialize |
| Serialize | بيانات[عدل] | ستيفن / Stream | Serialize |
| Deserialize | ستيفن / Stream | Dataset | Deserialize |
| Deserialize | ستيفن / Stream | DicomFile | DeserializeFile |
| Deserialize | ستيفن / Stream | بيانات[عدل] | DeserializeList |
FAQ
** هل يتطلب ذلك مكتبات أطراف ثالثة؟**لا. إنها API مستقلة تستخدم فقط دعم .NET المدمج JSON/XML.
**هل يتماشى إصدار JSON مع خدمات DICOM Web Services؟**نعم النتيجة الافتراضية تتبع مواصفات DICOM PS3.18.
** هل يمكنني تخصيص تنسيق مفتاح JSON؟**نعم - الاستخدام DicomJsonSerializerOptions للتحكم في علامة التبويب مقابل الكلمات الرئيسية والمواصفات الإضافية.
** هل تم الحفاظ على السلسلة المتعصبة؟**نعم. يحتفظ المسلسل بالهيكل الكامل لـ DICOM بما في ذلك السلسلة المكسورة.
** كيف يمكنني التعامل مع ملفات DICOM الكبيرة؟**وتستخدم أساليب التداول (Serialize(stream, ...) و DeserializeAsyncلعملية معالجة الذاكرة الفعالة.
** هل تحويل الطريق المستدير غير ضار؟**نعم.تحتفظ التسلسل بجميع بيانات DICOM للحصول على تسلسل دقيق مرة أخرى إلى كائنات Dataset أو DicomFile.