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

การติดตั้งและการตั้งค่า

แพลตฟอร์มที่สนับสนุน

  • **ระบบปฏิบัติการ: ** 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 ไปยัง Dataset
  • DeserializeFileAsync - Deserialize UTF-8 JSON Stream ไปยัง DicomFile
  • DeserializeListAsync - Deserialize UTF-8 JSON Stream ไปยัง Dataset array
  • SerializeAsync - 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
BulkDataLoaderLoader สําหรับข้อมูล 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);

ประเภทที่สนับสนุน

ประเภทการเข้ารูปแบบการออก
DicomFileJSON, XML
DatasetJSON, 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การส่งออกวิธีการ
SerializeDatasetโลหะ / StreamSerialize
SerializeDicomFileโลหะ / StreamSerialize
Serializeชุดข้อมูล [ ]โลหะ / StreamSerialize
Deserializeโลหะ / StreamDatasetDeserialize
Deserializeโลหะ / StreamDicomFileDeserializeFile
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 วัตถุ

 แบบไทย