Làm thế nào để chuyển đổi một tập tin DICOM sang JSON bằng cách sử dụng DicomJsonSerializer
Hướng dẫn này cho thấy làm thế nào để chuyển đổi các tập tin DICOM sang định dạng JSON bằng cách sử dụng C#. kết quả JSon là điều cần thiết để tích hợp các metadata DIKOM với các dịch vụ web hiện đại, REST APIs, và các hệ thống thông tin chăm sóc sức khỏe.
Lợi ích của việc chuyển đổi DICOM sang JSON
- Kết nối web *:- JSON là định dạng tiêu chuẩn cho REST APIs và dịch vụ web.
Phân tích dữ liệu:- Dễ dàng xử lý metadata DICOM trong các ống phân tích dữ liệu.
- Khả năng tương tác *:- Chia sẻ metadata với các hệ thống không hỗ trợ định dạng DICOM bản địa.
Chủ đề: Chuẩn bị môi trường
- Cài đặt Visual Studio hoặc bất kỳ IDE .NET tương thích nào.
- Tạo một dự án ứng dụng .NET 8 mới.
- Cài đặt Aspose.Medical từ NuGet Package Manager.
Hướng dẫn từng bước để chuyển đổi DICOM sang JSON
Bước 1: Cài đặt Aspose.Medical
Thêm thư viện Aspose.Medical vào dự án của bạn bằng NuGet.
Install-Package Aspose.MedicalBước 2: Thêm các không gian tên cần thiết
Thêm tham chiếu đến các không gian tên cần thiết trong mã của bạn.
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;Bước 3: Tải file DICOM
Tải xuống tệp DICOM bạn muốn chuyển đổi.
DicomFile dcm = DicomFile.Open("patient_scan.dcm");Bước 4: Tập trung vào JSON
Sử dụng The DicomJsonSerializer.Serialize Cách chuyển đổi tệp DICOM sang JSON
string json = DicomJsonSerializer.Serialize(dcm);Bước 5: Lưu hoặc sử dụng JSON Output
Lưu JSON vào một tệp hoặc sử dụng nó trực tiếp trong ứng dụng của bạn.
// Save to file
File.WriteAllText("patient_scan.json", json);
// Or use directly
Console.WriteLine(json);Mẫu mã đầy đủ để chuyển đổi DICOM sang JSON
Dưới đây là một ví dụ đầy đủ cho thấy cách chuyển đổi tệp DICOM sang JSON:
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;
// Load the DICOM file
DicomFile dcm = DicomFile.Open("patient_scan.dcm");
// Convert to JSON
string json = DicomJsonSerializer.Serialize(dcm);
// Save to file
File.WriteAllText("patient_scan.json", json);
Console.WriteLine("DICOM file converted to JSON successfully!");
Console.WriteLine($"Output saved to: patient_scan.json");Mã sản phẩm JSON Output
Đối với người đọc JSON với indentation, sử dụng writeIndented Các Parameters:
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;
DicomFile dcm = DicomFile.Open("patient_scan.dcm");
// Serialize with indentation for readability
string prettyJson = DicomJsonSerializer.Serialize(dcm, writeIndented: true);
File.WriteAllText("patient_scan_pretty.json", prettyJson);
Console.WriteLine("Pretty-printed JSON saved successfully!");Chuyển đổi Dataset thay vì DicomFile
Bạn cũng có thể chuyển đổi chỉ phần Dataset:
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;
DicomFile dcm = DicomFile.Open("patient_scan.dcm");
// Serialize only the dataset (without file meta information)
string datasetJson = DicomJsonSerializer.Serialize(dcm.Dataset);
File.WriteAllText("patient_dataset.json", datasetJson);Mô tả cấu trúc JSON
Kết quả JSON tuân theo tiêu chuẩn DICOM PS3.18. đây là một ví dụ về kết quả này trông như thế nào:
{
"00080005": {
"vr": "CS",
"Value": ["ISO_IR 100"]
},
"00080020": {
"vr": "DA",
"Value": ["20240115"]
},
"00080030": {
"vr": "TM",
"Value": ["143022"]
},
"00100010": {
"vr": "PN",
"Value": [
{
"Alphabetic": "DOE^JOHN"
}
]
},
"00100020": {
"vr": "LO",
"Value": ["12345"]
}
}Phân tích dựa trên Stream
Đối với các tệp lớn hoặc các ứng dụng web, sử dụng dòng dựa trên serialization:
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;
DicomFile dcm = DicomFile.Open("large_scan.dcm");
// Write directly to a file stream
using (FileStream fs = File.Create("large_scan.json"))
{
DicomJsonSerializer.Serialize(fs, dcm.Dataset);
}
Console.WriteLine("Large DICOM file serialized to JSON stream!");Ví dụ về tích hợp: Gửi JSON đến Web API
Dưới đây là cách để tích hợp chuyển đổi DICOM sang JSON với một khách hàng HTTP:
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;
using System.Net.Http;
using System.Text;
DicomFile dcm = DicomFile.Open("patient_scan.dcm");
string json = DicomJsonSerializer.Serialize(dcm);
// Send to web API
using HttpClient client = new();
var content = new StringContent(json, Encoding.UTF8, "application/json");
HttpResponseMessage response = await client.PostAsync(
"https://api.example.com/dicom/metadata",
content
);
if (response.IsSuccessStatusCode)
{
Console.WriteLine("DICOM metadata successfully sent to API!");
}Sử dụng Tips
Tải về DICOM Metadata
Sử dụng chuyển đổi JSON để kiểm tra các giá trị tag DICOM:
DicomFile dcm = DicomFile.Open("unknown_scan.dcm");
string json = DicomJsonSerializer.Serialize(dcm, writeIndented: true);
Console.WriteLine(json);Gửi đến Web Front-End
JSON là lý tưởng để hiển thị metadata DICOM trong trình duyệt dựa trên người xem:
// In ASP.NET Core controller
[HttpGet("dicom/{id}/metadata")]
public IActionResult GetMetadata(string id)
{
DicomFile dcm = DicomFile.Open($"storage/{id}.dcm");
string json = DicomJsonSerializer.Serialize(dcm);
return Content(json, "application/json");
}Những gì được bao gồm trong JSON Output
Kết quả JSON bao gồm:
- Tất cả DICOM tags với giá trị của họ
- Giới thiệu giá trị (VR) cho mỗi tag
- Các mục theo dõi như các đối tượng JSON
- Dữ liệu nhị phân tham chiếu (BulkData) cho dữ liệu pixel
Thông tin bổ sung
- Định dạng JSON theo định dạng DICOM PS3.18 Web Services.
- Các giá trị nhị phân lớn (như dữ liệu pixel) thường được đề cập thay vì được tích hợp.
- Hãy xem xét việc sử dụng các tùy chọn phân phối tùy chỉnh cho các yêu cầu tích hợp cụ thể.
Kết luận
Hướng dẫn này đã cho bạn thấy làm thế nào để chuyển đổi các tập tin DICOM sang định dạng JSON trong C# bằng cách sử dụng Aspose.Medical.JSON output cho phép sự tích hợp không ngừng với các APIs y tế hiện đại, web viewers, và các hệ thống phân tích dữ liệu.