Aspose.Medical DICOM à Converteur de texte pour .NET

Aspose.Medical DICOM à Texte Converter pour .NET est une API puissante axée sur conversion des données DICO à des formats lisibles par l’homme et par machine. Il sérialisera les données d’ADCO au format JSON et XML, ce qui permet de s’intégrer avec les services Web, les APIs REST et les systèmes de soins de santé modernes.

Installation et configuration

  • Installez le paquet NuGet Aspose.Medical (Core API pour la conversion de puissance).
  • Appliquer une licence mesurée à la start-up pour éviter les limites d’évaluation: voir Licenza a consumo .
  • Examiner les exigences du cadre dans le Guide d’installation .

Des plateformes soutenues

  • OS : Windows, Linux et macOS
  • • Frameworks : .NET 8.0+
  • *Architecture : x64, ARM64 (macOS)

Début rapide

DICOM à JSON

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

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

2) DICOM à JSON avec 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 à 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) Plusieurs fichiers DICOM pour 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) sérialiser le flux (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) Enregistrer en tant que fichier 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);

La désertification JSON

Désérialiser JSON String à Dataset

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

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

Désérialiser JSON Stream à Dataset

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

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

Désérialiser JSON à DicomFile

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

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

Désérialiser JSON Array à plusieurs données

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

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

XML sérialisation

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 Dataset

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

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

Les API Async

Pour les opérations asynchrones dans les applications et services Web :

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

** Les méthodes Async disponibles :**

  • DeserializeAsync - Désérialiser le flux UTF-8 JSON à Dataset
  • DeserializeFileAsync - Désérialiser le flux UTF-8 JSON à DicomFile
  • DeserializeListAsync - Désérialiser le flux UTF-8 JSON à l’array Dataset
  • SerializeAsync - sérialiser Dataset, DicomFile, ou Dataaset array à UTF-8 JSON stream

Caractéristiques et fonctionnalités

Compliance des services Web de DICOM

Le convertisseur adhère à la norme DICOM PS3.18 (Services Web), ce qui garantit la compatibilité avec:

  • RESTFUL DICOM Web APIs
  • Systèmes PACS basés sur le Cloud
  • Les plateformes modernes d’interopérabilité des soins de santé
  • Systèmes compatibles FHIR

Options de sérialisation

personnaliser le comportement de sérialisation avec 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);
OptionDescription
UseKeywordsAsJsonKeysUtilisez les mots-clés DICOM au lieu des tags comme clés JSON (non standard)
WriteKeywordÉcrivez les mots-clés DICOM comme attribut JSON distinct
WriteNameÉcrivez le nom d’étiquette DICOM comme attribut JSON distinct
NumberHandlingTraiter les chiffres comme AsNumber ou AsString
BulkDataLoaderCarrier pour les données blob référencées dans les éléments BulkData
BulkDataConverterConverteur pour écrire les données en tant que références BulkData

Système.Text.Json intégration

Utilisez des convertis avec la sérialisation standard .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);

Les types soutenus

Type d’entréeFormats de sortie
DicomFileJSON et XML
DatasetJSON et XML
Dataset[]JSON et XML

Conservation des données

La sérialisation conserve avec précision :

  • Toutes les tags et valeurs de DICOM
  • Présentation de la valeur (VR)
  • Les séquences nues
  • Les tags privés
  • Les références de données en masse
  • Les valeurs flottantes spécifiques (NaN, Infinity)

Cas d’utilisation courantes

  • Viseurs Web: Servez les métadonnées DICOM aux lecteurs d’image médicale basés sur le navigateur.
  • REST APIs: Construisez des API de santé qui échangent les données DICOM dans le format JSON.
  • Data Analytics: Exporter les métadonnées DICOM pour l’analyse dans les pipelines de traitement des données.
  • Integration: Connectez les PACS d’héritage à des plateformes de soins de santé basées sur le cloud modernes.
  • Debugging: Créer des représentations humaines de données DICOM pour résoudre les problèmes.
  • Archivage: stockez les métadonnées DICOM dans des bases de données de documents telles que MongoDB ou Elasticsearch.

Migliori pratiche

  • Licence première: Initialisez la licence mesurée avant toute conversion pour éviter les limites d’évaluation.
  • Utilisez les flux: Pour les fichiers ou les services web de grande taille, utilisez des méthodes basées sur le courant pour améliorer l’efficacité de la mémoire.
  • Opérations Async: Utilisez des méthodes asynca dans les applications Web pour éviter le blocage des filets.
  • Validate round-trips: cycles de sérialisation/desérialisation de test pour assurer l’intégrité des données.
  • Compliance standard: Utilisez des options par défaut pour la conformité DICOM PS3.18; les options non standard peuvent rompre les partenaires tiers.
  • Utf-8 encodage: les méthodes de streaming utilisent le encode UTF-8, idéal pour les API Web et les opérations de fichiers.

Résumé de l’opération

OpérationInputLa sortieMetodo
SerializeDatasetString / StreamSerialize
SerializeDicomFileString / StreamSerialize
SerializeLes données [ ]String / StreamSerialize
DeserializeString / StreamDatasetDeserialize
DeserializeString / StreamDicomFileDeserializeFile
DeserializeString / StreamLes données [ ]DeserializeList

FAQ

**Il faut des bibliothèques tiers ?**Non. Il s’agit d’une API indépendante qui n’utilise que le support .NET intégré JSON/XML.

** Est-ce que la sortie JSON est conforme aux Services Web DICOM ?**La sortie par défaut suit les spécifications de DICOM PS3.18.

** Puis-je personnaliser le format clé JSON ?**Oui, utilisez DicomJsonSerializerOptions Pour contrôler les mots-clés et les attributs supplémentaires.

  • Est-ce que les séquences nés sont préservées ? *Oui. Le sérialisateur maintient la structure complète de DICOM, y compris les séquences nés.

**Comment puis-je gérer les grands fichiers DICOM ?**Utiliser des méthodes de flux (Serialize(stream, ...) et DeserializeAsyncPour un traitement mémoire efficace.

** Est-ce que la conversion rond-trip est sans perte ?**Oui. la sérialisation conserve tous les données DICOM pour une désérialisation précise en retour à Dataset ou à DicomFile.

 Français