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 إلى Dataset
  • DeserializeFileAsync - تخفيف تدفق UTF-8 JSON إلى DicomFile
  • DeserializeListAsync - تخفيف تدفق UTF-8 JSON إلى سلسلة Dataset
  • SerializeAsync - تسلسل 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);

النوع المدعوم

نوع الدخولتنسيقات الخروج
DicomFileJSON، XML
DatasetJSON، 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الخروجالطريقة
SerializeDatasetستيفن / StreamSerialize
SerializeDicomFileستيفن / StreamSerialize
Serializeبيانات[عدل]ستيفن / StreamSerialize
Deserializeستيفن / StreamDatasetDeserialize
Deserializeستيفن / StreamDicomFileDeserializeFile
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.

 عربي