Πώς να μετατρέψετε ένα αρχείο DICOM σε JSON χρησιμοποιώντας το DicomJsonSerializer
Αυτό το εγχειρίδιο δείχνει πώς να μετατρέψετε τα αρχεία DICOM σε μορφή JSON χρησιμοποιώντας το C#. Η προέλευση J SON είναι απαραίτητη για την ενσωμάτωση των μεταδεδομένων DIKOM με σύγχρονες διαδικτυακές υπηρεσίες, REST APIs και συστήματα πληροφοριών υγείας.
Πλεονεκτήματα της μετατροπής DICOM σε JSON
• Διαδικτυακή ενσωμάτωση:- Το JSON είναι η τυποποιημένη μορφή για REST APIs και Web Services.
Ανάλυση δεδομένων:- Εύκολη επεξεργασία των μεταδεδομένων DICOM στα σωλήνα ανάλυσης δεδομένων.
• Διαλειτουργικότητα *:- Μοιραστείτε τα μεταδεδομένα με συστήματα που δεν υποστηρίζουν αρχικά μορφές DICOM.
Προϋποθέσεις: Προετοιμασία του περιβάλλοντος
- Εγκαταστήστε το Visual Studio ή οποιοδήποτε συμβατό .NET IDE.
- Δημιουργήστε ένα νέο πρόγραμμα εφαρμογής .NET 8 console.
- Εγκαταστήστε το Aspose.Medical από το NuGet Package Manager.
Βήμα προς βήμα Οδηγός για τη μετατροπή DICOM σε JSON
Βήμα 1: Εγκατάσταση Aspose.Medical
Προσθήκη της βιβλιοθήκης Aspose.Medical στο έργο σας χρησιμοποιώντας το NuGet.
Install-Package Aspose.MedicalΒήμα 2: Συμπληρώστε τις απαραίτητες ονομαστικές περιοχές
Προσθέστε αναφορές στις απαιτούμενες ονομαστικές περιοχές στον κώδικα σας.
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;Βήμα 3: Κατεβάστε το αρχείο DICOM
Κατεβάστε το αρχείο DICOM που θέλετε να μετατρέψετε.
DicomFile dcm = DicomFile.Open("patient_scan.dcm");Βήμα 4: Σειρά σε JSON
Χρησιμοποιήστε το DicomJsonSerializer.Serialize Μέθοδος μετατροπής του αρχείου DICOM σε JSON.
string json = DicomJsonSerializer.Serialize(dcm);Βήμα 5: Αποθηκεύστε ή χρησιμοποιήστε την έκδοση JSON
Αποθηκεύστε το JSON σε ένα αρχείο ή το χρησιμοποιήστε απευθείας στην εφαρμογή σας.
// Save to file
File.WriteAllText("patient_scan.json", json);
// Or use directly
Console.WriteLine(json);Το πλήρες παράδειγμα κώδικα για να μετατρέψετε το DICOM σε JSON
Εδώ είναι ένα πλήρες παράδειγμα που δείχνει πώς να μετατρέψετε ένα αρχείο DICOM σε JSON:
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;
// Load the DICOM file
DicomFile dcm = DicomFile.Open("patient_scan.dcm");
// Convert to JSON
string json = DicomJsonSerializer.Serialize(dcm);
// Save to file
File.WriteAllText("patient_scan.json", json);
Console.WriteLine("DICOM file converted to JSON successfully!");
Console.WriteLine($"Output saved to: patient_scan.json");Πλήρης εκτύπωση JSON
Για το ανθρώπινο-διαβαστό JSON με ενδιέξοδο, χρησιμοποιήστε το writeIndented Παράμετρος :
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;
DicomFile dcm = DicomFile.Open("patient_scan.dcm");
// Serialize with indentation for readability
string prettyJson = DicomJsonSerializer.Serialize(dcm, writeIndented: true);
File.WriteAllText("patient_scan_pretty.json", prettyJson);
Console.WriteLine("Pretty-printed JSON saved successfully!");Μετατροπή Dataset αντί για DicomFile
Μπορείτε επίσης να μετατρέψετε μόνο το τμήμα Dataset:
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;
DicomFile dcm = DicomFile.Open("patient_scan.dcm");
// Serialize only the dataset (without file meta information)
string datasetJson = DicomJsonSerializer.Serialize(dcm.Dataset);
File.WriteAllText("patient_dataset.json", datasetJson);Η δομή εξόδου JSON
Η έκδοση JSON ακολουθεί το πρότυπο DICOM PS3.18. Εδώ είναι ένα παράδειγμα του τι φαίνεται η έκβαση:
{
"00080005": {
"vr": "CS",
"Value": ["ISO_IR 100"]
},
"00080020": {
"vr": "DA",
"Value": ["20240115"]
},
"00080030": {
"vr": "TM",
"Value": ["143022"]
},
"00100010": {
"vr": "PN",
"Value": [
{
"Alphabetic": "DOE^JOHN"
}
]
},
"00100020": {
"vr": "LO",
"Value": ["12345"]
}
}Σειροποίηση με βάση τη ροή
Για μεγάλα αρχεία ή web εφαρμογές, χρησιμοποιήστε τη σειρά που βασίζεται στο ρεύμα:
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;
DicomFile dcm = DicomFile.Open("large_scan.dcm");
// Write directly to a file stream
using (FileStream fs = File.Create("large_scan.json"))
{
DicomJsonSerializer.Serialize(fs, dcm.Dataset);
}
Console.WriteLine("Large DICOM file serialized to JSON stream!");Παράδειγμα ενσωμάτωσης: Αποστολή JSON στο Web API
Εδώ είναι πώς να ενσωματώσετε τη μετατροπή DICOM σε JSON με έναν πελάτη HTTP:
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;
using System.Net.Http;
using System.Text;
DicomFile dcm = DicomFile.Open("patient_scan.dcm");
string json = DicomJsonSerializer.Serialize(dcm);
// Send to web API
using HttpClient client = new();
var content = new StringContent(json, Encoding.UTF8, "application/json");
HttpResponseMessage response = await client.PostAsync(
"https://api.example.com/dicom/metadata",
content
);
if (response.IsSuccessStatusCode)
{
Console.WriteLine("DICOM metadata successfully sent to API!");
}Χρήση Tips
Ετικέτες DICOM Metadata
Χρησιμοποιήστε τη μετατροπή JSON για να ελέγξετε τις τιμές ετικετών DICOM:
DicomFile dcm = DicomFile.Open("unknown_scan.dcm");
string json = DicomJsonSerializer.Serialize(dcm, writeIndented: true);
Console.WriteLine(json);Εισαγωγή στο Web Front-End
Το JSON είναι ιδανικό για την εμφάνιση των μεταδεδομένων DICOM σε προβολείς βάσει προγράμματος περιήγησης:
// In ASP.NET Core controller
[HttpGet("dicom/{id}/metadata")]
public IActionResult GetMetadata(string id)
{
DicomFile dcm = DicomFile.Open($"storage/{id}.dcm");
string json = DicomJsonSerializer.Serialize(dcm);
return Content(json, "application/json");
}Τι περιλαμβάνεται στην έκδοση JSON
Η έκδοση JSON περιλαμβάνει:
- Όλες οι ετικέτες DICOM με τις αξίες τους
- Αξιοσημείωση (VR) για κάθε ετικέτα
- Συσκευασμένα αντικείμενα όπως νεφρωμένα JSON
- Δυαδικές αναφορές δεδομένων (BulkData) για τα δεδομένα pixel
Πρόσθετες πληροφορίες
- Η μορφή JSON ακολουθεί τις προδιαγραφές DICOM PS3.18 Web Services.
- Οι μεγάλες δυαδικές αξίες (όπως τα δεδομένα pixel) συνήθως αναφέρονται αντί να ενσωματώνονται.
- Σκεφτείτε τη χρήση προσαρμοσμένων επιλογών σειριοποίησης για συγκεκριμένες απαιτήσεις ολοκλήρωσης.
Συμπεράσματα
Αυτό το εγχειρίδιο σας έχει δείξει πώς να μετατρέψετε τα αρχεία DICOM σε μορφή JSON στο C# χρησιμοποιώντας το Aspose.Medical.JSON output επιτρέπει αδιάλειπτη ενσωμάτωση με σύγχρονες υπηρεσίες υγείας, web viewers και συστήματα ανάλυσης δεδομένων.