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 à DatasetDeserializeFileAsync- Désérialiser le flux UTF-8 JSON à DicomFileDeserializeListAsync- Désérialiser le flux UTF-8 JSON à l’array DatasetSerializeAsync- 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);| Option | Description |
|---|---|
UseKeywordsAsJsonKeys | Utilisez 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 |
NumberHandling | Traiter les chiffres comme AsNumber ou AsString |
BulkDataLoader | Carrier pour les données blob référencées dans les éléments BulkData |
BulkDataConverter | Converteur 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ée | Formats de sortie |
|---|---|
DicomFile | JSON et XML |
Dataset | JSON 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ération | Input | La sortie | Metodo |
|---|---|---|---|
| Serialize | Dataset | String / Stream | Serialize |
| Serialize | DicomFile | String / Stream | Serialize |
| Serialize | Les données [ ] | String / Stream | Serialize |
| Deserialize | String / Stream | Dataset | Deserialize |
| Deserialize | String / Stream | DicomFile | DeserializeFile |
| Deserialize | String / Stream | Les 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.