ASPOSE.MEDICAL DICOM به متن تبدیل برای .NET

Aspose.Medical DICOM to Text Converter برای .NET یک API قدرتمند است که تمرکز بر تبدیل داده های دیکوم به فرمت های قابل خواندن انسان و قابل هدر دادن ماشین. آن را سیریالیز مجموعه های داده DIKOM به فرم های JSON و XML، اجازه می دهد تا ادغام با خدمات وب، APIs REST، و سیستم های بهداشتی مدرن. ساخته شده برای تعاملات، آن ارائه سریالیزه استاندارد مطابق با خدمات وب دیکوم (PS3.18) مشخصات.

نصب و نصب

  • نصب بسته NuGet Aspose.Medical (تغییرمسیرهای هسته ای)
  • درخواست مجوز اندازه گیری شده در استارتاپ برای جلوگیری از محدودیت های ارزیابی: مشاهده مجوز متریکی .
  • بررسی نیازهای چارچوبی در راهنمای نصب .

پلتفرم های پشتیبانی شده

  • ویندوز، لینوکس، macOS
  • ** چارچوب ها: * .NET 8.0+
  • ** معماری: * x64، ARM64 (macOS)

شروع سریع

۱) به 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 to 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);

Deserialize 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 به مجموعه داده ها
  • 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

سیستم.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)

مورد استفاده مشترک

  • Web Viewers: سرویس داده های متابولیک DICOM به بازدید کنندگان تصویر پزشکی مبتنی بر مرورگر.
  • API های باقی مانده: ایجاد API های مراقبت های بهداشتی که داده های DICOM را در فرمت JSON تبادل می کنند.
  • Data Analytics: صادرات داده های متا برای تجزیه و تحلیل در لوله های پردازش داده.
  • ** ادغام**: PACS میراث را با پلتفرم های مراقبت های بهداشتی مدرن مبتنی بر ابر متصل کنید.
  • Debugging: ایجاد نمایشنامه های قابل خواندن از داده های DICOM برای حل مشکلات.
  • Archiving: ذخیره داده های DICOM در پایگاه های داده اسناد مانند MongoDB یا Elasticsearch.

بهترین شیوه‌ها

  • License first: برای جلوگیری از محدودیت های ارزیابی، قبل از هر تبدیل، مجوزهای اندازه گیری شده را آغاز کنید.
  • استفاده از جریان ها: برای فایل های بزرگ یا خدمات وب، از روش های مبتنی بر جریان برای بهره وری حافظه استفاده کنید.
  • ** عملیات Async**: استفاده از روش های ASYNC در برنامه های وب برای جلوگیری از مسدود کردن سیم ها.
  • تولید مسیرهای چرخشی: چرخه های تست سریالی سازی / دسرالیز برای اطمینان از یکپارچگی داده ها.
  • توافق استاندارد: از گزینه های پیش فرض برای DICOM PS3.18 سازگاری استفاده کنید.
  • ** UTF-8 رمزگذاری**: روش های جریان از رمزنگاری UTf-8 استفاده می کند، ایده آل برای API های وب و عملیات فایل.

خلاصه عملیات

عملیاتInputخروجروش
SerializeDatasetString / جریانSerialize
SerializeDicomFileString / جریانSerialize
Serializeداده ها [ ]String / جریانSerialize
DeserializeString / جریانDatasetDeserialize
DeserializeString / جریانDicomFileDeserializeFile
DeserializeString / جریانداده ها [ ]DeserializeList

FAQ

** آیا کتابخانه های شخص ثالث مورد نیاز است؟**این یک API منحصر به فرد است که فقط از پشتیبانی .NET ساخته شده از JSON / XML استفاده می کند.

**آیا خروجی JSON مطابق با خدمات وب DICOM است؟**بله، خروجی پیش فرض مطابق با مشخصات DICOM PS3.18 است.

**آیا می توانم فرمت کلید JSON را سفارشی کنم؟**بله استفاده کنید DicomJsonSerializerOptions برای کنترل برچسب ها در مقابل کلمات کلیدی و ویژگی های اضافی.

*تغییرمسیرها حفظ شده است؟*بله، سریالیزگر ساختار کامل DICOM را حفظ می کند، از جمله ردیف های نازک.

** چگونه می توانم فایل های بزرگ DICOM را مدیریت کنم؟**استفاده از روش های مبتنی بر جریان (Serialize(stream, ...) و DeserializeAsyncبرای پردازش موثر حافظه

**آیا تبدیل چرخ دنده بدون خسارت است؟**بله، سریالی سازی تمام داده های DICOM را برای درایالی دقیق به اشیاء Dataset یا DicomFile ذخیره می کند.

 فارسی