Aspose.Medical DICOM to Text Converter สําหรับ .NET
Aspose.Medical DICOM to Text Converter for .NET เป็น API ที่แข็งแกร่งที่มุ่งเน้นไปที่ การแปลงข้อมูล DIKOM ไปยังรูปแบบที่สามารถอ่านได้จากมนุษย์และเครื่องใช้ได้ มันจัดเรียงข้อมูลของ DICO เพื่อ JSON และรูปแบบ XML ซึ่งช่วยให้การรวมกันกับบริการเว็บ APIs REST และระบบการดูแลสุขภาพที่ทันสมัย สร้างขึ้นเพื่อความสามารถในการทํางานร่วมกัน มันให้คํานวณตามมาตรฐานที่ปฏิบัติตามข้อกําหนดของ DIKO Web Services (PS3.18)*
การติดตั้งและการตั้งค่า
- ติดตั้งแพคเกจ NuGet
Aspose.Medical(หลัก API Power แปลง) - ใช้ใบอนุญาตที่วัดใน startup เพื่อหลีกเลี่ยงข้อ จํากัด การประเมิน: ด การให้ใบอนุญาตที่มีการวัด .
- การตรวจสอบข้อกําหนดของกรอบใน คู่มือการติดตั้ง .
แพลตฟอร์มที่สนับสนุน
- **ระบบปฏิบัติการ: ** Windows, Linux, macOS
- Frameworks: .NET 8.0+
- สถาปัตยกรรม: x64, ARM64 (macOS)
เริ่มต้นอย่างรวดเร็ว
1) DICOM ไปยัง 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) Serialize to Stream (หน่วยความจําที่มีประสิทธิภาพ)
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
Deserialize JSON String ไปยัง Dataset
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;
string jsonText = File.ReadAllText("dicom_data.json");
Dataset? dataset = DicomJsonSerializer.Deserialize(jsonText);Deserialize 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);Deserialize 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- Deserialize UTF-8 JSON Stream ไปยัง DatasetDeserializeFileAsync- Deserialize UTF-8 JSON Stream ไปยัง DicomFileDeserializeListAsync- Deserialize UTF-8 JSON Stream ไปยัง Dataset arraySerializeAsync- Serialize Dataset, DicomFile, หรือDataset array ไปยัง UTF-8 JSON Stream
คุณสมบัติและฟังก์ชั่น
การปฏิบัติตามบริการเว็บไซต์ของ 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 | Loader สําหรับข้อมูล blob ที่อ้างใน BulkData Elements |
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);ประเภทที่สนับสนุน
| ประเภทการเข้า | รูปแบบการออก |
|---|---|
DicomFile | JSON, XML |
Dataset | JSON, XML |
Dataset[] | JSON, XML |
การรักษาข้อมูล
การจัดเรียงอย่างแม่นยํารักษา:
- แท็ก DICOM ทั้งหมดและค่า
- การแสดงผลมูลค่า (VR)
- สอดคล้อง
- แท็กส่วนตัว
- คําอธิบายข้อมูลจํานวนมาก
- หมายเลขพิเศษ (NaN, Infinity)
กรณีที่ใช้ทั่วไป
- ผู้ชมเว็บ: ให้ข้อมูลโลหะ DICOM สําหรับผู้ดูภาพทางการแพทย์ตามเบราว์เซอร์
- ** API REST**: สร้าง API สุขภาพที่แลกเปลี่ยนข้อมูล DICOM ในรูปแบบ JSON
- Data Analytics: การส่งออก DICOM metadata สําหรับการวิเคราะห์ในท่อการประมวลผลข้อมูล
- การบูรณาการ: เชื่อมต่อ PACS ของคุณกับแพลตฟอร์มการดูแลสุขภาพแบบคลาวด์ที่ทันสมัย
- Debugging: สร้างตัวอักษรที่สามารถอ่านได้โดยมนุษย์ของข้อมูล DICOM สําหรับการแก้ปัญหา
- Archiving: บันทึกข้อมูล DICOM ในฐานข้อมูลเอกสารเช่น MongoDB หรือ Elasticsearch
แนวทางที่ดีที่สุด
- ใบอนุญาตครั้งแรก: เริ่มต้นการลงทะเบียนก่อนการแปลงใด ๆ เพื่อหลีกเลี่ยงการ จํากัด การประเมิน
- ใช้สตรีม: สําหรับไฟล์ขนาดใหญ่หรือบริการเว็บใช้วิธีการบนพื้นฐานการไหลเพื่อประสิทธิภาพหน่วยความจํา
- การดําเนินงาน async: ใช้วิธีการ asynec ในแอพเว็บเพื่อหลีกเลี่ยงการบล็อกสาย
- การยืนยันเส้นทางรอบ: การทดสอบวงจรการซีรีalization/deserializations เพื่อให้แน่ใจว่าข้อมูลที่สมบูรณ์
- การปฏิบัติตามมาตรฐาน: ใช้ตัวเลือกแบบกําหนดเองสําหรับการปฏิบัติต่อ DICOM PS3.18 ตัวเลือกที่ไม่ใช่สแตนเลสอาจทําลายคู่ค้าของบุคคลที่สาม
- การเข้ารหัส UTF-8: วิธีการสตรีมใช้การรหัส utf-8 เหมาะสําหรับแอปพลิเคชันเว็บและการดําเนินงานไฟล์
รายละเอียดการดําเนินงาน
| การดําเนินงาน | Input | การส่งออก | วิธีการ |
|---|---|---|---|
| Serialize | Dataset | โลหะ / Stream | Serialize |
| Serialize | DicomFile | โลหะ / Stream | Serialize |
| Serialize | ชุดข้อมูล [ ] | โลหะ / Stream | Serialize |
| Deserialize | โลหะ / Stream | Dataset | Deserialize |
| Deserialize | โลหะ / Stream | DicomFile | DeserializeFile |
| Deserialize | โลหะ / Stream | ชุดข้อมูล [ ] | DeserializeList |
FAQ
** ต้องการห้องสมุดของบุคคลที่สามหรือไม่**ไม่ มันเป็น API แบบแยกต่างหากที่ใช้การสนับสนุน JSON/XML ใน .NET เท่านั้น
**การส่งออกของ JSON คือการปฏิบัติตามบริการเว็บ DICOM?**ใช่ ผลลัพธ์แบบกําหนดเองตามข้อกําหนดของ DICOM PS3.18
** ฉันสามารถปรับแต่งรูปแบบคีย์ JSON ได้หรือไม่**ใช่ ใช DicomJsonSerializerOptions เพื่อควบคุมแท็ก vs. Keywords และคุณสมบัติเพิ่มเติม
** อะไรคือการรักษาตามลําดับที่กําหนดไว้?**ใช่ ซีรี่ส์ยังคงโครงสร้าง DICOM ที่สมบูรณ์รวมถึงการติดตามที่กําหนดเอง
** ฉันจะจัดการกับไฟล์ DICOM ขนาดใหญ่อย่างไร**ใช้วิธีการบนพื้นฐานของ stream (Serialize(stream, ...) และ DeserializeAsync) สําหรับการประมวลผลหน่วยความจําที่มีประสิทธิภาพ
การแปลงวงกลมไม่มีการสูญเสียหรือไม่ใช่ การรีไซเคิลเก็บข้อมูลทั้งหมดของ DICOM สําหรับการขุดเจาะที่แม่นยํากลับไปยัง Dataset หรือ DicomFile วัตถุ