.NET API cho Hình ảnh Y tế DICOM
Đọc, ghi, ẩn danh, chuyển mã và hiển thị các tệp DICOM trong .NET C#, và trao đổi các nghiên cứu qua DIMSE, mà không cần phần mềm bên ngoài hay phụ thuộc native.
Download Free TrialAspose.Medical cho .NET là một thư viện lớp .NET thuần để làm việc với các tệp DICOM (Digital Imaging and Communications in Medicine). Nó cho phép các nhà phát triển đọc, ghi, sửa đổi, ẩn danh, chuyển mã và hiển thị dữ liệu hình ảnh y tế, tuần tự hoá chúng sang DICOM JSON và DICOM XML, và trao đổi các nghiên cứu với các hệ thống khác qua DIMSE, mà không cần phần mềm bên ngoài hay phụ thuộc native.
Thư viện được viết hoàn toàn bằng C# quản lý và chạy trên .NET 10 trên Windows, Linux và macOS. Không có binary native và không có gói NuGet bên thứ ba, vì vậy thư viện được triển khai dưới dạng một assembly duy nhất vào bất kỳ ứng dụng .NET nào, từ công cụ desktop đến container trong hệ thống chăm sóc sức khỏe đám mây.
Tính năng chính:
- Đọc và ghi các tệp DICOM từ tệp, luồng hoặc pipe, đồng bộ hoặc bất đồng bộ, với hỗ trợ đầy đủ cho tất cả các phần tử dữ liệu chuẩn và biểu diễn giá trị.
- Kiểm soát bộ nhớ trên các tệp lớn: tải mọi phần tử, hoãn các phần tử lớn cho đến khi chúng được sử dụng, hoặc bỏ qua chúng và chỉ đọc siêu dữ liệu.
- Đọc và chỉnh sửa bất kỳ phần tử dữ liệu nào, bao gồm chuỗi và thẻ riêng, với xử lý bộ ký tự cho văn bản không phải ASCII.
- Ẩn danh các tệp DICOM theo các hồ sơ bảo mật của DICOM PS 3.15, với các tùy chọn giữ lại UID, ngày, định danh thiết bị và tổ chức và đặc điểm bệnh nhân.
- Chuyển mã giữa các cú pháp truyền tải: JPEG, JPEG-LS, JPEG 2000, HTJ2K, JPEG XL và RLE, với mọi codec được triển khai trong .NET.
- Hiển thị các khung thành pixel BGRA với LUT modality, LUT VOI (cửa sổ và mức) và lớp phủ do bộ render áp dụng.
- Tuần tự hoá bộ dữ liệu sang Mô hình DICOM JSON (PS3.18) và DICOM XML (PS3.19) và ngược lại, bao gồm streaming bất đồng bộ và tải dữ liệu hàng loạt có thể cắm thêm.
- Giao tiếp qua DIMSE với một máy khách và một máy chủ: C-ECHO, C-STORE, C-FIND, C-MOVE, C-GET, các N-service, và TLS.
Aspose.Medical cho .NET là thư viện tự chứa. Nó không cần trình xem DICOM, không cần phần mềm hình ảnh y tế và không cần codec native được cài đặt. Nó phù hợp với hệ thống CNTT y tế, tích hợp PACS, nền tảng y tế từ xa và bất kỳ ứng dụng nào cần xử lý dữ liệu DICOM một cách đáng tin cậy.
Các tính năng API DICOM .NET nâng cao
Đọc và ghi các tệp DICOM từ tệp, luồng hoặc pipe
Truy cập và thao tác tất cả các thẻ, chuỗi và phần tử riêng của DICOM
Ẩn danh dữ liệu bệnh nhân theo hồ sơ bảo mật DICOM PS 3.15
Chuyển mã giữa các cú pháp truyền tải, bao gồm HTJ2K và JPEG XL
Render khung thành pixel cho trình xem, thumbnail và xuất hình ảnh
Tuần tự hoá dữ liệu DICOM sang JSON và XML, với streaming bất đồng bộ
Trao đổi nghiên cứu qua DIMSE: C-ECHO, C-STORE, C-FIND, C-MOVE, C-GET
Giữ bộ nhớ ổn định trên các tệp lớn bằng cách hoãn hoặc bỏ qua các phần tử lớn
Render hình ảnh đa khung với modality LUT, VOI LUT và lớp phủ
Thư viện .NET Thuần - Không phụ thuộc
Aspose.Medical cho .NET được viết hoàn toàn bằng C# quản lý và phân phối dưới dạng một assembly duy nhất không có binary native và không có gói NuGet bên thứ ba. Các thư viện hình ảnh y tế khác phụ thuộc vào codec native hoặc công cụ bên ngoài; thư viện này không. Tất cả các codec nén ảnh (JPEG, JPEG-LS, JPEG 2000, HTJ2K, JPEG XL, RLE) được triển khai trong .NET, vì vậy thư viện hoạt động giống nhau trên Windows, Linux và macOS. Điều này khiến nó phù hợp với container, môi trường đám mây và bất kỳ triển khai nào mà việc cài đặt thư viện native không khả thi. Gói này nhắm tới .NET 10.
Ẩn danh các tệp DICOM để Tuân thủ Quyền riêng tư
Quyền riêng tư của bệnh nhân là yêu cầu nghiêm ngặt trong các ứng dụng chăm sóc sức khỏe. Aspose.Medical cho .NET ẩn danh dữ liệu DICOM theo các hồ sơ bảo mật của DICOM PS 3.15. Bạn có thể loại bỏ hoặc thay thế thông tin nhận dạng bệnh nhân trong khi vẫn giữ giá trị lâm sàng của dữ liệu hình ảnh, và bạn có thể chọn những gì một hồ sơ giữ lại: các thuộc tính riêng an toàn, UID, định danh thiết bị và tổ chức, đặc điểm bệnh nhân, và thông tin thời gian dọc. Trang ẩn danh DICOM hiển thị chi tiết các tùy chọn hồ sơ.
Ẩn danh tệp DICOM - C#
// Load the DICOM file
DicomFile dicomFile = DicomFile.Open("patient_scan.dcm");
// Basic Application Level Confidentiality Profile of DICOM PS 3.15
ConfidentialityProfile profile = ConfidentialityProfile.CreateDefault(ConfidentialityProfileOptions.BasicProfile);
Anonymizer anonymizer = new(profile);
// Anonymize into a new file and save it
DicomFile anonymized = anonymizer.Anonymize(dicomFile);
anonymized.Save("anonymized_scan.dcm");Render khung DICOM trong .NET C#
Aspose.Medical cho .NET render một khung DICOM thành hình ảnh pixel BGRA 32-bit. Bộ render áp dụng cách giải thích quang học, LUT modality và LUT VOI (cửa sổ và mức) từ bộ dữ liệu và vẽ các lớp phủ, vì vậy kết quả khớp với những gì trình xem hiển thị. Các pixel sau đó thuộc về bạn: sao chép chúng vào bộ đệm và truyền cho bất kỳ thư viện hình ảnh nào để lưu PNG, JPEG hoặc TIFF. Bộ mã hoá hình ảnh duy nhất được tích hợp trong thư viện là PNM. Các trang chuyển đổi hiển thị quy trình đầy đủ cho PNG, JPEG và TIFF.
Render một khung DICOM - C#
// Load the DICOM file
DicomFile dicomFile = DicomFile.Open("chest_xray.dcm");
// Render the first frame; LUTs and overlays are applied by the renderer
using PixelImage<Bgra32> image = dicomFile.RenderImage(0);
// Copy the pixels out and hand them to an imaging library
Bgra32[] pixels = new Bgra32[image.Width * image.Height];
image.CopyPixelsTo(pixels);Chuyển mã Giữa Các Cú pháp Truyền tải
Các hệ thống hình ảnh và lưu trữ yêu cầu các cú pháp truyền tải DICOM cụ thể. Aspose.Medical cho .NET chuyển mã giữa các định dạng không nén, JPEG Baseline, JPEG Lossless, JPEG-LS, JPEG 2000, HTJ2K (High-Throughput JPEG 2000), JPEG XL và RLE. HTJ2K và JPEG XL là hai tùy chọn mới nhất trong tiêu chuẩn DICOM, và ở đây chúng được triển khai trong .NET giống như mọi codec khác. Việc chuyển mã quan trọng đối với tích hợp PACS, kích thước lưu trữ và khả năng tương thích giữa các hệ thống. Xem trang chuyển đổi cú pháp truyền tải và trang JPEG 2000.
Chuyển mã DICOM sang HTJ2K - C#
// Load existing DICOM file
DicomFile dicomFile = DicomFile.Open("input.dcm");
// Transcode to High-Throughput JPEG 2000, lossless
DicomFile transcoded = dicomFile.Transcode(TransferSyntax.HTJ2KLossless);
// Save the transcoded file
transcoded.Save("output.dcm");Tuần tự hoá DICOM sang JSON và XML
Các hệ thống chăm sóc sức khỏe trao đổi dữ liệu qua dịch vụ web, vì vậy Aspose.Medical cho .NET tuần tự hoá các bộ dữ liệu DICOM sang Mô hình DICOM JSON (PS3.18) và DICOM XML (PS3.19), và phân tích lại cả hai thành bộ dữ liệu. Các bộ tuần tự hoá hoạt động trên chuỗi, luồng và pipe, đồng bộ và bất đồng bộ, và một dãy bộ dữ liệu có thể được đọc từng cái một mà không phải giữ toàn bộ tài liệu trong bộ nhớ. Các tham chiếu dữ liệu hàng loạt được giải quyết thông qua bộ tải có thể cắm thêm, vì vậy dữ liệu pixel lớn có thể nằm ngoài tài liệu. Xem các trang DICOM sang JSON và DICOM sang XML.
Tuần tự hoá DICOM sang JSON và XML - C#
// Load the DICOM file
DicomFile dicomFile = DicomFile.Open("patient_scan.dcm");
Dataset dataset = dicomFile.Dataset;
// Serialize the dataset to JSON (DICOM JSON Model) and to DICOM XML
string json = DicomJsonSerializer.Serialize(dataset, writeIndented: true);
string xml = DicomXmlSerializer.Serialize(dataset);
// Parse both back into datasets
Dataset? fromJson = DicomJsonSerializer.Deserialize(json);
Dataset fromXml = DicomXmlSerializer.Deserialize(xml);Mạng DICOM qua DIMSE
Aspose.Medical cho .NET giao tiếp trực tiếp với các hệ thống DICOM khác. Thư viện cung cấp một máy khách DIMSE và một máy chủ DIMSE cho C-ECHO, C-STORE, C-FIND, C-MOVE và C-GET, cùng với các N-service, thương lượng liên kết với các ngữ cảnh trình bày và vai trò, cửa sổ hoạt động bất đồng bộ, thương lượng danh tính người dùng và TLS. Các yêu cầu được xếp hàng trong một liên kết và được trả lời bởi các trình xử lý bạn đăng ký, vì vậy một nút lưu và chuyển tiếp, một proxy truy vấn hoặc một SCP kiểm thử chỉ cần một vài lớp. Hướng dẫn mạng DICOM bao gồm toàn bộ API.
Gửi một nghiên cứu tới PACS bằng C-STORE - C#
DicomFile dicomFile = DicomFile.Open("study.dcm");
DicomNetworkClient client = DicomNetworkClient
.CreateBuilder(new DicomNetworkClientOptions
{
Called = "PACS_AE",
Calling = "CLIENT_AE",
Connection = new DicomNetworkConnectionOptions
{
TargetHost = new IPEndPoint(IPAddress.Parse("192.0.2.10"), 104)
},
AssociationNegotiation = new AssociationNegotiationOptions()
.WithPresentationContext(new PresentationContext
{
AbstractSyntax = Uid.CTImageStorage,
Role = null,
TransferSyntaxes = ImmutableArray.Create(TransferSyntax.ExplicitVrLittleEndian)
})
})
.Build();
client.QueueRequest(new CStoreRequest(dicomFile.Dataset, TransferSyntax.ExplicitVrLittleEndian));
await client.SendAsync(CancellationToken.None);
await client.StopAsync();Các tệp DICOM lớn mà không tốn bộ nhớ lớn
Các ảnh toàn slide, chuỗi dài và nghiên cứu đa khung không thể vừa trong bộ nhớ. Aspose.Medical cho .NET cho phép bạn quyết định mức độ tải của tệp: đọc toàn bộ, hoãn các phần tử vượt quá ngưỡng kích thước cho đến khi được truy cập, hoặc bỏ qua chúng và chỉ làm việc với siêu dữ liệu. Đọc từ luồng hoặc pipe và ghi lại theo cùng cách giữ cho dữ liệu di chuyển thay vì tích tụ. Hướng dẫn quản lý bộ nhớ giải thích các đánh đổi.
Đọc siêu dữ liệu mà không có dữ liệu pixel - C#
// Elements larger than the threshold are not loaded into memory
DicomFile metadataOnly = DicomFile.Open(
"whole_slide.dcm",
ReadDicomFileOptions.Default,
TagDataReadingStrategies.SkipLargeTags());
string? patientName = metadataOnly.Dataset.GetSingleValueOrDefault(Tag.PatientName, string.Empty);Support and Learning Resources
- Tài nguyên Học tập
- Tài liệu
- Hướng dẫn Nhà phát triển
- Tham chiếu API
- Hỗ trợ Sản phẩm
- Hỗ trợ Miễn phí
- Hỗ trợ Trả phí
- Blog
- Ghi chú Phát hành
- Tại sao chọn Aspose.Medical cho .NET?
- Danh sách Khách hàng
- Câu chuyện Thành công