كيفية تحويل ملف 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 الرعاية الصحية الحديثة ومشاهد الويب وأنظمة تحليل البيانات.