Aspose.Medical DICOM do konwertera tekstu dla .NET
Aspose.Medical DICOM to Text Converter dla .NET jest potężnym API koncentrującym się na konwertowaniu danych DIKOM do ludzko czytelnych i maszynowo rozpuszczalnych formatów. Serijalizuje daty DICO do formatu JSON i XML, umożliwiając integrację z usługami internetowymi, APIs REST i nowoczesnymi systemami opieki zdrowotnej.
Instalacja i ustawienie
- Instalacja pakietu NuGet
Aspose.Medical(Przekierowano do konwersji mocy API). - Wniosek o licencję na start-up, aby uniknąć ograniczeń oceny: zobacz Licencjonowanie według zużycia .
- Przegląd wymogów ramowych w Instalacja przewodnik .
wspierane platformy
- System operacyjny: Windows, Linux, macOS
- Ramy: .NET 8.0+
- Archiwum: x64, ARM64 (macOS)
Szybki start
1) DICOM do JSON
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;
DicomFile dcm = DicomFile.Open("patient_scan.dcm");
string json = DicomJsonSerializer.Serialize(dcm);2) DICOM do JSON z 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 do 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) Większość plików DICOM do 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) Serializacja do przepływu (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) Zapisz jako plik 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 Deserializacja
Deserializuj JSON String do zestawu danych
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;
string jsonText = File.ReadAllText("dicom_data.json");
Dataset? dataset = DicomJsonSerializer.Deserialize(jsonText);Deserializuj strumień JSON do zestawu danych
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;
using FileStream stream = File.OpenRead("dicom_data.json");
Dataset? dataset = DicomJsonSerializer.Deserialize(stream);Deserializuj JSON do DicomFile
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;
string jsonText = File.ReadAllText("dicom_file.json");
DicomFile? dicomFile = DicomJsonSerializer.DeserializeFile(jsonText);Deserializuj JSON Array do wielu zestawów danych
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;
string jsonText = File.ReadAllText("dicom_array.json");
Dataset[]? datasets = DicomJsonSerializer.DeserializeList(jsonText);XML serializacja
DICOM do XML
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;
DicomFile dcm = DicomFile.Open("patient_scan.dcm");
string xml = DicomXmlSerializer.Serialize(dcm.Dataset);XML do 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
W przypadku operacji asynchronnych w aplikacjach i usługach internetowych:
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);** Dostępne metody Async:**
DeserializeAsync- Deserializuj strumień UTF-8 JSON do zestawu danychDeserializeFileAsync- Deserializuj strumień UTF-8 JSON do DicomFileDeserializeListAsync- Deserializuj strumień UTF-8 JSON do array DatasetSerializeAsync- Serializuj dataset, DicomFile lub Dataset array do strumienia UTF-8 JSON
Charakterystyka i funkcjonalność
Zgodność DICOM Web Services
Konwerter jest zgodny ze standardem DICOM PS3.18 (Web Services), zapewniając kompatybilność z:
- Pozostałe DICOM Web APIs
- Systemy PACS oparte na chmurze
- Nowoczesne platformy interoperacyjności w zakresie opieki zdrowotnej
- Kompatybilne systemy FHIR
Opcje serializacji
Dostosowanie zachowania serializacji do 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);| Opcja | Opis |
|---|---|
UseKeywordsAsJsonKeys | Użyj słów kluczowych DICOM zamiast etykiet jako kluczy JSON (nie standardowe) |
WriteKeyword | Wpisz słowo kluczowe DICOM jako odrębny atrybut JSON |
WriteName | Wpisz nazwę tagu DICOM jako odrębny atrybut JSON |
NumberHandling | Porozmawiaj z numerami jako AsNumber lub AsString |
BulkDataLoader | Ładnik dla blob danych odnoszących się do elementów BulkData |
BulkDataConverter | Konwerter do pisania danych jako referencji BulkData |
System.Text.Json Integracja
Użyj konwerterów z standardową serializacją .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);Wspierane typy
| Typ wejścia | Formaty wyjściowe |
|---|---|
DicomFile | JSON i XML |
Dataset | JSON i XML |
Dataset[] | JSON i XML |
przechowywanie danych
Serijalizacja dokładnie zachowuje:
- Wszystkie etykiety i wartości DICOM
- Reprezentacje wartości (VR)
- Następne sekwencje
- Tagi prywatne
- Referencje danych masowych
- Specjalne wartości przepływowe (NaN, Infinity)
Często używane przypadki
- ** Widzowie stron internetowych**: Serwuj metadane DICOM dla widzów obrazów medycznych opartych na przeglądarce.
- REST APIs: Zbuduj API opieki zdrowotnej, które wymieniają dane DICOM w formacie JSON.
- Data Analytics: Eksportowanie metadanych DICOM do analizy w rurach przetwarzania danych.
- Integracja: Połącz dziedzictwo PACS z nowoczesnymi platformami opartymi na chmurze.
- Debugging: Tworzenie ludzko czytelnych reprezentacji danych DICOM do rozwiązywania problemów.
- Archiving: Przechowuj metadane DICOM w bazach danych dokumentów, takich jak MongoDB lub Elasticsearch.
Najlepsze praktyki
- Licencja pierwsza: Zacznij licencję mierzoną przed każdą konwersją, aby uniknąć ograniczeń oceny.
- Używanie przepływów: W przypadku dużych plików lub usług internetowych używaj metod opartych na strumieniu w celu zwiększenia wydajności pamięci.
- Działania Async: Użyj metod asynk w aplikacjach internetowych, aby uniknąć blokowania przewód.
- Validate round-trips: testowe cykle serializacji/deserializacji w celu zapewnienia integralności danych.
- Zgodność standardową: Użyj opcji domyślnych dla zgodności z DICOM PS3.18; opcje niestandardowe mogą zakłócać stron trzecich.
- Kodowanie UTF-8: Metody strumieniowe wykorzystują kodowanie utf-8, idealne dla aplikacji internetowych i operacji plików.
Podsumowanie operacji
| Operacja | Input | Wyjście | Metoda |
|---|---|---|---|
| Serialize | Dataset | String / strumień | Serialize |
| Serialize | DicomFile | String / strumień | Serialize |
| Serialize | Zestaw danych [ ] | String / strumień | Serialize |
| Deserialize | String / strumień | Dataset | Deserialize |
| Deserialize | String / strumień | DicomFile | DeserializeFile |
| Deserialize | String / strumień | Zestaw danych [ ] | DeserializeList |
FAQ
** Czy wymaga to biblioteki osób trzecich?**Jest to niezależna API, która wykorzystuje tylko wbudowaną obsługę .NET JSON/XML.
** Czy produkcja JSON jest zgodna z DICOM Web Services?**Wydajność domyślna jest zgodna ze specyfikacjami DICOM PS3.18.
** Czy mogę dostosować format klucza JSON?**Tak – użyj DicomJsonSerializerOptions aby kontrolować tag vs. kluczowe słowa i dodatkowe atrybuty.
- Czy są przechowywane niestowane sekwencje? *Seryalizator utrzymuje pełną strukturę DICOM, w tym niestowane sekwencje.
**Jak obsługiwać duże pliki DICOM?**Wykorzystywanie metod opartych na strumieniu (Serialize(stream, ...) i DeserializeAsyncw celu efektywnego przetwarzania pamięci.
** Czy konwersja okrągła jest bez strat?**Serializacja przechowuje wszystkie dane DICOM dla dokładnej deserializacji z powrotem do obiektów Dataset lub DicomFile.