Aspose.Medical DICOM till Text Converter för .NET

Aspose.Medical DICOM till Text Converter för .NET är en kraftfull API som fokuserar på konvertering av DICUM-data till mänskligt läsbara och maskinvisbara format. Det serialiserar DIKOM-datasets till JSON och XML-format, möjliggör integration med webbtjänster, REST APIs och moderna hälso- och sjukvårdssystem. Byggd för interoperabilitet, det ger standardöverensstämmande serialisering enligt specifikationerna av *DicOM Web Services (PS3.18).

Installation och installation

  • Installera NuGet-paketet Aspose.Medical (Core API Power Conversion)
  • Applicera måttlig licens vid startups för att undvika utvärderingsgränser: se Mätlicensiering .
  • granskning av ramkrav i Installationsguide .

Stödda plattformar

  • OS: Windows, Linux och macOS
  • • Frameworks: .NET 8.0+
  • Arkitekturer: x64, ARM64 (macOS)

Snabb start

1) DICOM till JSON

using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;

DicomFile dcm = DicomFile.Open("patient_scan.dcm");
string json = DicomJsonSerializer.Serialize(dcm);

2) DICOM till JSON med 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 till 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) Multiple DICOM filer till 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) Serialisera till ström (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) Spara som JSON-fil

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 Deserialisering

Deserialisera JSON String till Dataset

using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;

string jsonText = File.ReadAllText("dicom_data.json");
Dataset? dataset = DicomJsonSerializer.Deserialize(jsonText);

Deserialisera JSON Stream till Dataset

using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;

using FileStream stream = File.OpenRead("dicom_data.json");
Dataset? dataset = DicomJsonSerializer.Deserialize(stream);

Deserialisera JSON till DicomFile

using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;

string jsonText = File.ReadAllText("dicom_file.json");
DicomFile? dicomFile = DicomJsonSerializer.DeserializeFile(jsonText);

Deserialisera JSON Array till flera datasets

using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;

string jsonText = File.ReadAllText("dicom_array.json");
Dataset[]? datasets = DicomJsonSerializer.DeserializeList(jsonText);

XML serialisering

DICOM till XML

using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;

DicomFile dcm = DicomFile.Open("patient_scan.dcm");
string xml = DicomXmlSerializer.Serialize(dcm.Dataset);

XML till DICOM Dataset

using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;

string xmlText = File.ReadAllText("dicom_data.xml");
Dataset? dataset = DicomXmlSerializer.Deserialize(xmlText);

Async API

För asynkrona operationer i webbapplikationer och tjänster:

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);

** Tillgängliga Async-metoder:**

  • DeserializeAsync - Deserialisera UTF-8 JSON-ström till Dataset
  • DeserializeFileAsync - Deserialisera UTF-8 JSON-ström till DicomFile
  • DeserializeListAsync - Deserialisera UTF-8 JSON-ström till Dataset array
  • SerializeAsync - Serialisera dataset, DicomFile eller Dataset array till UTF-8 JSON ström

Funktioner och funktionalitet

DICOM Web Services överensstämmelse

Konverteraren överensstämmer med DICOM PS3.18 (Web Services) standard, vilket säkerställer kompatibilitet med:

  • Resterande DICOM Web API
  • molnbaserade PACS-system
  • Moderna plattformar för interoperabilitet inom hälso- och sjukvård
  • FHIR-kompatibla system

Serialiseringsalternativ

Anpassa serialisering beteende med 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);
OptionBeskrivning
UseKeywordsAsJsonKeysAnvänd DICOM nyckelord i stället för taggar som JSON-nycklar (inte standard)
WriteKeywordSkriv DICOM tag nyckelord som en särskild JSON-attribut
WriteNameSkriv DICOM tagnamn som en särskild JSON-attribut
NumberHandlingHandla siffror som AsNumber eller AsString
BulkDataLoaderLaddare för blob-data som hänvisas till BulkData-element
BulkDataConverterKonverterare för att skriva data som BulkData referenser

System.Text.Json integration

Använd konverter med standard .NET JSON serialisering:

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);

Stödda typer

Inträde typUtgångsformat
DicomFileJSON och XML
DatasetJSON och XML
Dataset[]JSON och XML

Data bevarande

Serialiseringen bevarar noggrant:

  • Alla DICOM taggar och värden
  • Värde Representationer (VR)
  • Nätade sekvenser
  • Privat taggar
  • Bulk data referenser
  • Särskilda flötvärden (NaN, Infinity)

Vanliga användningsfall

  • Web Viewers: Serve DICOM metadata till webbläsarbaserade medicinska bilder tittare.
  • REST APIs: Bygg hälso- och sjukvårdsapier som utbyter DICOM-data i JSON-format.
  • Data Analytics: Exportera DICOM metadata för analys i databehandlingsrör.
  • Integration: Anslut PACS med moderna molnbaserade hälso- och sjukvårdsplattformar.
  • Debugging: Skapa mänskligt läsbara representationer av DICOM-data för problemlösning.
  • Archiving: Lagra DICOM metadata i dokumentdatabaser som MongoDB eller Elasticsearch.

Bästa praxis

  • Licens först: Initialisera måttlig licens före någon omvandling för att undvika utvärderingsbegränsningar.
  • Use streams: För stora filer eller webbtjänster, använd strömbaserade metoder för minneseffektivitet.
  • Async-operationer: Använd asynkmetoder i webbapplikationer för att undvika att blockera trådar.
  • Validera rundturer: Test serialisering/deserialisering cykler för att säkerställa data integritet.
  • Standard överensstämmelse: Använd standardalternativ för DICOM PS3.18 överenskommelse; icke-standardalternativen kan bryta tredje parts parsers.
  • UTF-8 kodning: Streammetoder använder UTF-8-kodning, idealisk för web-API och filoperationer.

Operationens sammanfattning

OperationInputUtgångMetod
SerializeDatasetString / strömSerialize
SerializeDicomFileString / strömSerialize
SerializeUppgifterna [ ]String / strömSerialize
DeserializeString / strömDatasetDeserialize
DeserializeString / strömDicomFileDeserializeFile
DeserializeString / strömUppgifterna [ ]DeserializeList

FAQ

** Behöver det tredjepartsbibliotek?**Det är en unik API som endast använder .NET-inbyggd JSON/XML-support.

** Är JSON-produktionen DICOM Web Services kompatibel?**Ja, standardutgången följer specifikationerna för DICOM PS3.18.

**Kan jag anpassa JSON-nyckelformat?**Ja, använd DicomJsonSerializerOptions kontroll tag vs. nyckelord och ytterligare attribut.

** Är nötade sekvenser bevarade?**Serialiseraren upprätthåller den fullständiga DICOM-strukturen inklusive nestade sekvenser.

**Hur hanterar jag stora DICOM-filer?**Använda strömbaserade metoder (Serialize(stream, ...) och DeserializeAsyncför minnes-effektiv behandling.

** Är rund-trip omvandling förlustlös?**Serialisering sparar alla DICOM-data för exakt deserialisering tillbaka till Dataset eller DicomFile-objekt.

 Svenska