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 به DatasetDeserializeFileAsync- خنثی کردن جریان UTF-8 JSON به DicomFileDeserializeListAsync- خنثی کردن جریان 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);گروه های پشتیبانی
| نوع ورودی | فرمت خروجی |
|---|---|
DicomFile | JSON، XML |
Dataset | JSON، 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 | خروج | روش |
|---|---|---|---|
| Serialize | Dataset | String / جریان | Serialize |
| Serialize | DicomFile | String / جریان | Serialize |
| Serialize | داده ها [ ] | String / جریان | Serialize |
| Deserialize | String / جریان | Dataset | Deserialize |
| Deserialize | String / جریان | DicomFile | DeserializeFile |
| Deserialize | String / جریان | داده ها [ ] | DeserializeList |
FAQ
** آیا کتابخانه های شخص ثالث مورد نیاز است؟**این یک API منحصر به فرد است که فقط از پشتیبانی .NET ساخته شده از JSON / XML استفاده می کند.
**آیا خروجی JSON مطابق با خدمات وب DICOM است؟**بله، خروجی پیش فرض مطابق با مشخصات DICOM PS3.18 است.
**آیا می توانم فرمت کلید JSON را سفارشی کنم؟**بله استفاده کنید DicomJsonSerializerOptions برای کنترل برچسب ها در مقابل کلمات کلیدی و ویژگی های اضافی.
*تغییرمسیرها حفظ شده است؟*بله، سریالیزگر ساختار کامل DICOM را حفظ می کند، از جمله ردیف های نازک.
** چگونه می توانم فایل های بزرگ DICOM را مدیریت کنم؟**استفاده از روش های مبتنی بر جریان (Serialize(stream, ...) و DeserializeAsyncبرای پردازش موثر حافظه
**آیا تبدیل چرخ دنده بدون خسارت است؟**بله، سریالی سازی تمام داده های DICOM را برای درایالی دقیق به اشیاء Dataset یا DicomFile ذخیره می کند.