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ài đặt gói NuGet
Aspose.Medical(Nhật Bản API Power Conversion) - Ứng dụng giấy phép đo lường tại startup để tránh giới hạn đánh giá: xem Giấy phép theo mức sử dụng .
- Đánh giá các yêu cầu khung trong Hướng dẫn cài đặt .
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 DatasetDeserializeFileAsync- Deserialize UTF-8 JSON stream to DicomFileDeserializeListAsync- Deserialize UTF-8 JSON stream to Dataset arraySerializeAsync- 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ọn | Mô tả |
|---|---|
UseKeywordsAsJsonKeys | Sử dụng từ khóa DICOM thay vì thẻ như khóa JSON (không tiêu chuẩn) |
WriteKeyword | Viết thẻ DICOM từ khóa như thuộc tính JSON riêng biệt |
WriteName | Viết tên thẻ DICOM như một thuộc tính JSON riêng biệt |
NumberHandling | Sử dụng số như AsNumber hoặc AsString |
BulkDataLoader | Loader for blob data referenced in BulkData elements (liên kết sửa đổi) |
BulkDataConverter | Chuyể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 |
|---|---|
DicomFile | XNUMX, XML |
Dataset | XNUMX, 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 động | Input | Xuất | Phương pháp |
|---|---|---|---|
| Serialize | Dataset | String / dòng chảy | Serialize |
| Serialize | DicomFile | String / dòng chảy | Serialize |
| Serialize | Dữ liệu [ ] | String / dòng chảy | Serialize |
| Deserialize | String / dòng chảy | Dataset | Deserialize |
| Deserialize | String / dòng chảy | DicomFile | DeserializeFile |
| Deserialize | String / dòng chảy | Dữ 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, ...) và 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.