Aspose.Medical DICOM sang Text Converter cho .NET

Aspose.Medical DICOM to Text Converter for .NET là một API mạnh mẽ tập trung vào việc chuyển đổi dữ liệu DICO sang định dạng dễ đọc của con người và có thể xóa máy**. Nó phân loại các tập tin data DIKO thành định hình JSON và XML, cho phép tích hợp với các dịch vụ web, APIs REST, và các hệ thống chăm sóc sức khỏe hiện đại. Được xây dựng cho khả năng tương tác, nó cung cấp phân phối theo tiêu chuẩn phù hợp theo các thông số kỹ thuật của Dịch vụ Web (PS3.18).

Cài đặt & Setup

Các nền tảng được hỗ trợ

  • Hệ điều hành: Windows, Linux, macOS
  • • Tính năng: .NET 8.0+
    • Kiến trúc:* x64, ARM64 (macOS)

Khởi động nhanh

1) DICOM cho JSON

using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;

DicomFile dcm = DicomFile.Open("patient_scan.dcm");
string json = DicomJsonSerializer.Serialize(dcm);

2) DICOM đến JSON với 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) Nhiều tập tin 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 (tăng cường bộ nhớ)

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) Lưu như JSON file

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

Tải về JSON Deserialization

Deserialize JSON String đến 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 đến nhiều tập tin dữ liệu

using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;

string jsonText = File.ReadAllText("dicom_array.json");
Dataset[]? datasets = DicomJsonSerializer.DeserializeList(jsonText);

Xml Phân tích

DICOM đến XML

using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;

DicomFile dcm = DicomFile.Open("patient_scan.dcm");
string xml = DicomXmlSerializer.Serialize(dcm.Dataset);

XML đến DICOM Dataset

using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;

string xmlText = File.ReadAllText("dicom_data.xml");
Dataset? dataset = DicomXmlSerializer.Deserialize(xmlText);

Ánh sáng Async

Đối với các hoạt động không đồng bộ trong các ứng dụng và dịch vụ web:

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);
  • Các phương pháp Async có sẵn:**
  • DeserializeAsync - Deserialize UTF-8 JSON stream to Dataset
  • DeserializeFileAsync - Deserialize UTF-8 JSON stream to DicomFile
  • DeserializeListAsync - Deserialize UTF-8 JSON stream to Dataset array
  • SerializeAsync - Serialize Dataset, DicomFile, hoặc Dataaset array đến UTF-8 JSON stream

Tính năng và chức năng

DICOM Web Services tuân thủ

Máy chuyển đổi tuân thủ tiêu chuẩn DICOM PS3.18 (Web Services), đảm bảo tương thích với:

  • Phần còn lại của DICOM Web APIs
  • Hệ thống PACS dựa trên đám mây
  • Các nền tảng tương tác y tế hiện đại
  • Hệ thống FHIR tương thích

Lựa chọn Serialization

Tùy chỉnh hành vi serialization với 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);
Lựa chọnMô tả
UseKeywordsAsJsonKeysSử dụng từ khóa DICOM thay vì thẻ như khóa JSON (không tiêu chuẩn)
WriteKeywordViết thẻ DICOM từ khóa như thuộc tính JSON riêng biệt
WriteNameViết tên thẻ DICOM như một thuộc tính JSON riêng biệt
NumberHandlingSử dụng số như AsNumber hoặc AsString
BulkDataLoaderLoader for blob data referenced in BulkData elements (liên kết sửa đổi)
BulkDataConverterChuyển đổi để viết dữ liệu như tham chiếu BulkData

Hệ thống.Text.Json Integration

Sử dụng chuyển đổi với .NET JSON tiêu chuẩn:

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

Các loại hỗ trợ

Input loạiđịnh dạng output
DicomFileXNUMX, XML
DatasetXNUMX, XML
Dataset[]XNUMX, XML

Bảo tồn dữ liệu

Phân tích được bảo tồn chính xác:

  • Tất cả DICOM tags và giá trị
  • Giới thiệu giá trị (VR)
  • Các sequence
  • Tags cá nhân
  • Số lượng dữ liệu tham chiếu
  • Các giá trị float đặc biệt (NaN, Infinity)

Các trường hợp sử dụng chung

  • ** Web viewers**: Dịch DICOM metadata cho người xem hình ảnh y tế dựa trên trình duyệt.
  • REST APIs: Xây dựng các API chăm sóc sức khỏe trao đổi dữ liệu DICOM trong định dạng JSON.
  • Data Analytics: Export DICOM metadata for analysis in data processing pipelines.
  • Integration: Kết nối PACS thừa kế với các nền tảng chăm sóc sức khỏe dựa trên đám mây hiện đại.
  • Debugging: Tạo các đại diện dễ đọc của dữ liệu DICOM để giải quyết vấn đề.
  • Archiving: Lưu DICOM metadata trong các cơ sở dữ liệu tài liệu như MongoDB hoặc Elasticsearch.

Thực hành tốt nhất

  • ** Giấy phép đầu tiên**: Khởi động giấy phép đo trước bất kỳ chuyển đổi nào để tránh hạn chế đánh giá.
  • Use streams: Đối với các tập tin lớn hoặc dịch vụ web, sử dụng phương pháp dựa trên dòng cho hiệu quả bộ nhớ.
  • Các hoạt động Async: Sử dụng các phương pháp asynec trong các ứng dụng web để tránh chặn dây.
  • Các hành trình vòng tròn được xác nhận: Các chu kỳ phân tích thử nghiệm/thử nghiệm để đảm bảo tính toàn vẹn dữ liệu.
  • Thỏa thuận tiêu chuẩn: Sử dụng các tùy chọn mặc định cho sự tuân thủ của DICOM PS3.18; các lựa chọn không chuẩn có thể phá vỡ đối tác bên thứ ba.
  • UTF-8 mã hóa: Phương pháp Stream sử dụng mã hoá UTF-8, lý tưởng cho APIs web và hoạt động tệp.

Chi tiết hoạt động

hoạt độngInputXuấtPhương pháp
SerializeDatasetString / dòng chảySerialize
SerializeDicomFileString / dòng chảySerialize
SerializeDữ liệu [ ]String / dòng chảySerialize
DeserializeString / dòng chảyDatasetDeserialize
DeserializeString / dòng chảyDicomFileDeserializeFile
DeserializeString / dòng chảyDữ liệu [ ]DeserializeList

FAQ

** Có cần các thư viện của bên thứ ba không?**Nó là một API độc lập chỉ sử dụng hỗ trợ JSON/XML .NET tích hợp.

**Các sản phẩm của JSON có phù hợp với Dịch vụ Web DICOM không?**Có. kết quả mặc định tuân theo các thông số kỹ thuật DICOM PS3.18.

** Tôi có thể tùy chỉnh định dạng khóa JSON không?**Có. sử dụng DicomJsonSerializerOptions để kiểm soát thẻ vs. từ khóa và các thuộc tính bổ sung.

*Các mảnh vỡ có được bảo tồn không?*Vâng. serializer duy trì cấu trúc DICOM đầy đủ bao gồm các chuỗi mọc.

** Làm thế nào tôi xử lý các tập tin DICOM lớn?**Sử dụng các phương pháp dựa trên stream (Serialize(stream, ...)DeserializeAsync• Để xử lý bộ nhớ hiệu quả.

  • Chuyển đổi vòng tròn có thất bại không?*Có. Serialization giữ tất cả dữ liệu DICOM cho việc xóa chính xác trở lại Dataset hoặc DicomFile đối tượng.
 Tiếng Việt