كيفية تحويل ملف DICOM إلى JSON باستخدام DicomJsonSerializer

كيفية تحويل ملف DICOM إلى JSON باستخدام DicomJsonSerializer

يظهر هذا الدليل كيفية تحويل ملفات DICOM إلى تنسيق JSON باستخدام C#.JSON النتيجة ضرورية لدمج البيانات الميتا ديموم مع خدمات الويب الحديثة، REST APIs، وأنظمة المعلومات في مجال الرعاية الصحية.

فوائد تحويل DICOM إلى JSON

    • التكامل عبر الإنترنت *:- JSON هو النموذج القياسي لـ REST API وخدمات الويب.
  • تحليل البيانات:- بسهولة معالجة بيانات DICOM في أنابيب تحليل البيانات.

  • • التفاعلية * :- مشاركة البيانات الميتا مع الأنظمة التي لا تدعم تنسيقات DICOM الأصلية.

المعايير: إعداد البيئة

  • إعداد Visual Studio أو أي .NET IDE متوافق.
  • إنشاء مشروع تطبيقات .NET 8 الجديد.
  • قم بتثبيت Aspose.Medical من NuGet Package Manager.

دليل خطوة بخطوة لتحويل DICOM إلى JSON

الخطوة 1: تثبيت Aspose.Medical

إضافة مكتبة Aspose.Medical إلى مشروعك باستخدام NuGet.

Install-Package Aspose.Medical

الخطوة 2: إدراج المساحات المطلوبة

إضافة الإشارات إلى المساحات الاسمية المطلوبة في رمزك.

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

الخطوة 3: تحميل ملف DICOM

قم بتحميل ملف DICOM الذي تريد تحويله.

DicomFile dcm = DicomFile.Open("patient_scan.dcm");

الخطوة 4: تسلسل إلى JSON

استخدمها DicomJsonSerializer.Serialize طريقة تحويل ملف DICOM إلى JSON.

string json = DicomJsonSerializer.Serialize(dcm);

الخطوة 5: حفظ أو استخدام إخراج JSON

حفظ JSON إلى ملف أو استخدامه مباشرة في تطبيقك.

// Save to file
File.WriteAllText("patient_scan.json", json);

// Or use directly
Console.WriteLine(json);

نموذج الكود الكامل لتحويل DICOM إلى JSON

فيما يلي مثال كامل يظهر كيفية تحويل ملف DICOM إلى JSON:

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");

إخراج JSON المطبوع

للحصول على JSON القابل للقراءة للإنسان مع الإدخال ، استخدم writeIndented المعايير :

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!");

تحويل Dataset بدلاً من DicomFile

يمكنك أيضًا تحويل حصة Dataset فقط:

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);

نموذج JSON الخروج الهيكل

يتماشى إصدار JSON مع المعيار DICOM PS3.18، وهنا مثال على ما يبدو عليه الإصدار:

{
  "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"]
  }
}

التسلسل القائم على التدفق

بالنسبة للملفات الكبيرة أو تطبيقات الويب ، استخدم التسلسل القائم على البث:

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!");

نموذج التكامل: إرسال JSON إلى Web API

إليك كيفية دمج تحويل DICOM إلى JSON مع عميل HTTP:

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!");
}

نصائح الاستخدام

تداول العملات الأجنبية DICOM Metadata

استخدم التحويل JSON للتحقق من قيم علامة DICOM:

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

إرسال رسالة خاصة إلى Front-End

JSON مثالية لعرض بيانات DICOM في المشاهدين القائمين على المتصفح:

// 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 Output

وتشمل نتائج JSON ما يلي:

  • جميع علامات DICOM مع قيمها
  • قيمة التمثيل (VR) لكل علامة
  • العناصر المتتالية مثل الكائنات JSON المنسوجة
  • إشارات البيانات الثنائية (BulkData) لبيانات البكسل

معلومات إضافية

  • تنسيق JSON يتبع مواصفات DICOM PS3.18 خدمات الويب.
  • القيم الثنائية الكبيرة (مثل بيانات البكسل) عادة ما تكون مرجعية بدلا من مدمجة.
  • فكر في استخدام خيارات التسلسل المخصصة لمتطلبات التكامل المحددة.

استنتاجات

وقد أظهر لك هذا الدليل كيفية تحويل ملفات DICOM إلى تنسيق JSON في C# باستخدام Aspose.Medical.JSON output يسمح بالتكامل اللامبالاة مع APIs الرعاية الصحية الحديثة ومشاهد الويب وأنظمة تحليل البيانات.

 عربي