Aspose.Medical DICOM 에 텍스트 변환기 .NET
Aspose.Medical DICOM to Text Converter for .NET는 인간 읽기 및 기계 낭비 가능한 형식으로 디코마 데이터를 변환하는 데 중점을 둔 강력한 API입니다**.이 API는 JSON 및 XML 형태로 디콜 데이터 세트를 시리얼화하여 웹 서비스, REST API 및 현대 의료 시스템과의 통합을 가능하게합니다.
설치 및 설정
- NuGet 패키지를 설치합니다.
Aspose.Medical(코어 API 전원 변환) - 평가 제한을 피하기 위해 스타트업에서 측정 된 라이센스를 적용하십시오 : 참조 계량된 라이선스 .
- 프레임 워크 요구 사항에 대한 검토 설치 가이드 .
지원되는 플랫폼
- 윈도우, 리눅스, macOS
- 프레임 워크 : .NET 8.0+
- ** 아키텍처:** x64, ARM64 (macOS)
빠른 시작
1) JSON에 대한 의견
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;
DicomFile dcm = DicomFile.Open("patient_scan.dcm");
string json = DicomJsonSerializer.Serialize(dcm);2) 프레티 프린트와 함께 DICOM to JSON
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 데이터 세트 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) JSON Array에 대한 다중 DICOM 파일
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) 메모리 효율성 (Memory Efficient)
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 사막화
JSON 스트링을 데이터 세트로 탐색
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;
string jsonText = File.ReadAllText("dicom_data.json");
Dataset? dataset = DicomJsonSerializer.Deserialize(jsonText);JSON 스트림을 데이터 세트로 탐색
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;
using FileStream stream = File.OpenRead("dicom_data.json");
Dataset? dataset = DicomJsonSerializer.Deserialize(stream);JSON에서 DicomFile로 이동
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;
string jsonText = File.ReadAllText("dicom_file.json");
DicomFile? dicomFile = DicomJsonSerializer.DeserializeFile(jsonText);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 데이터 세트로
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- UTF-8 JSON 스트림을 데이터 세트로 분리DeserializeFileAsync- UTF-8 JSON 스트림을 DicomFile로 분리DeserializeListAsync- UTF-8 JSON 스트림을 데이터 세트 범위로 분리SerializeAsync- 데이터 세트, DicomFile, 또는 Dataset를 UTF-8 JSON 스트림으로 분류
특징 및 기능성
DICOM 웹 서비스 준수
이 컨버터는 DICOM PS3.18 (웹 서비스) 표준을 준수하여 다음과 호환성을 보장합니다.
- 남은 DICOM 웹 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);| 옵션 | 설명 |
|---|---|
UseKeywordsAsJsonKeys | JSON 키로 태그 대신 DICOM 키워드를 사용하십시오 (표준이 아닌) |
WriteKeyword | 다른 JSON 속성으로 DICOM 태그 키워드를 작성하십시오. |
WriteName | 다른 JSON 속성으로 DICOM 태그 이름을 작성하십시오. |
NumberHandling | 숫자로 행동하라 AsNumber 또는 AsString |
BulkDataLoader | BulkData 요소에서 참조된 blob 데이터를 위한 충전기 |
BulkDataConverter | BulkData 참조로 데이터를 쓰기 위한 변환기 |
시스템.텍스트.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);지원되는 유형
| 입력 유형 | 출력 형식 |
|---|---|
DicomFile | JSON 및 XML |
Dataset | JSON 및 XML |
Dataset[] | JSON 및 XML |
데이터 보존
시리얼화는 정확하게 보존 :
- 모든 DICOM 태그 및 값
- 가치 표현 (VR)
- 부드러운 추적
- 개인 태그
- 대량 데이터 참조
- 특수 흐름 값 (NaN, Infinity)
일반 사용 사례
- Web Viewers: 브라우저 기반 의료 이미지 시청자에게 DICOM 메타 데이터를 제공합니다.
- REST APIs : JSON 형식으로 DICOM 데이터를 교환하는 건강 관리 API를 구축합니다.
- Data Analytics : 데이터 처리 파이프라인에서 분석을 위한 DICOM 메타 데이터를 수출합니다.
- ** 통합**: 유산 PACS를 현대적인 클라우드 기반 의료 플랫폼과 연결합니다.
- Debugging : 문제 해결을 위해 DICOM 데이터의 인간 읽을 수 있는 표현을 만듭니다.
- Archiving: DICOM 메타 데이터를 MongoDB 또는 Elasticsearch와 같은 문서 데이터베이스에 저장합니다.
모범 사례
- License first: 평가 제한을 피하기 위해 변환 전에 측정 된 라이센스를 시작합니다.
- Use streams: 대형 파일 또는 웹 서비스의 경우, 메모리 효율성을 위한 스트림 기반 방법을 사용하십시오.
- Async 작업: 웹 애플리케이션에서 끈을 차단하는 것을 피하기 위해 asynk 방법을 사용합니다.
- 진정한 라운드 트리프: 데이터의 무결성을 보장하기 위해 테스트 시리화/데시리화를 주기합니다.
- Standard compliance: DICOM PS3.18 준수에 대한 기본 옵션을 사용하십시오; 비 표준 선택은 제 3 자 파시어를 깨뜨릴 수 있습니다.
- UTF-8 암호화: 스트림 방법은 웹 APIs 및 파일 작업을위한 이상적인 UTF-8.
작업 요약
| 수술 | Input | 출력 | 방법 |
|---|---|---|---|
| Serialize | Dataset | 스트리트 / Stream | Serialize |
| Serialize | DicomFile | 스트리트 / Stream | Serialize |
| Serialize | 데이터베이스[편집] | 스트리트 / Stream | Serialize |
| Deserialize | 스트리트 / Stream | Dataset | Deserialize |
| Deserialize | 스트리트 / Stream | DicomFile | DeserializeFile |
| Deserialize | 스트리트 / Stream | 데이터베이스[편집] | DeserializeList |
FAQ
**그것은 제 3 자 도서관이 필요합니까?**그것은 단지 .NET 내장 JSON/XML 지원을 사용하는 독립 API입니다.
**JSON 출력은 DICOM 웹 서비스와 일치합니까?**예. 기본 출력은 DICOM PS3.18 사양을 따릅니다.
**JSON 키 형식을 사용자 정의할 수 있나요?**예, 사용하기 DicomJsonSerializerOptions 태그 vs. 키워드 키와 추가 속성을 제어합니다.
** 둥근 순서가 보존되었습니까?**예. 시리얼리저는 둥근 추적을 포함하여 DICOM의 완전한 구조를 유지합니다.
** 큰 DICOM 파일을 어떻게 처리합니까?*흐름을 바탕으로 사용하는 방법 (Serialize(stream, ...) 그리고 DeserializeAsync 메모리 효율적인 처리
** 라운드 트립 변환은 손실이 없습니까?**Serialization은 DICOM의 모든 데이터를 정확한 deserialization을 위해 Dataset 또는 DicomFile 개체로 다시 보관합니다.