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);
옵션설명
UseKeywordsAsJsonKeysJSON 키로 태그 대신 DICOM 키워드를 사용하십시오 (표준이 아닌)
WriteKeyword다른 JSON 속성으로 DICOM 태그 키워드를 작성하십시오.
WriteName다른 JSON 속성으로 DICOM 태그 이름을 작성하십시오.
NumberHandling숫자로 행동하라 AsNumber 또는 AsString
BulkDataLoaderBulkData 요소에서 참조된 blob 데이터를 위한 충전기
BulkDataConverterBulkData 참조로 데이터를 쓰기 위한 변환기

시스템.텍스트.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);

지원되는 유형

입력 유형출력 형식
DicomFileJSON 및 XML
DatasetJSON 및 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출력방법
SerializeDataset스트리트 / StreamSerialize
SerializeDicomFile스트리트 / StreamSerialize
Serialize데이터베이스[편집]스트리트 / StreamSerialize
Deserialize스트리트 / StreamDatasetDeserialize
Deserialize스트리트 / StreamDicomFileDeserializeFile
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 개체로 다시 보관합니다.

 한국어