Miten räätälöidä DICOM JSON Output kanssa DicomJsonSerializerOptions
Tämä opetusohjelma näyttää, miten räätälöidä DICOM JSON serialisointitulokset käyttämällä DicomJsonSerializerOptions C#. Customization avulla voit hallita jSON avainmuotoja, sisällyttää ylimääräisiä metatietoja, ja käsitellä numerisia arvoja mukaan integraatiovaatimuksesi.
Miksi räätälöidä JSON-tuotantoa?
Erilaiset järjestelmät voivat vaatia erilaisia JSON-muotoja. räätälöinti mahdollistaa:
- Käytä ihmisen luettavissa olevia avainsanoja nimikkeiden sijasta
- Sisältää merkinnän nimet dokumentaatioon
- Tarkista, miten numeriset arvot esitetään
- kolmannen osapuolen järjestelmän erityistarpeiden täyttämistä
Edellytykset: Ympäristön valmistelu
- Aseta Visual Studio tai yhteensopiva .NET IDE.
- Luo uusi .NET 8 -konsolin sovellusprojekti.
- Asenna Aspose.Medical NuGet Package Managerista.
Käytettävissä sarjakuvausvaihtoehtoja
| Option | kuvaus | Impact |
|---|---|---|
UseKeywordsAsJsonKeys | Käytä DICOM- avainsanoja merkinnöissä olevien numeroiden sijasta JSON-näppäiminä | "PatientName" vs "00100010" |
WriteKeyword | Sisällytä avainsanan kenttä jokaiseen tag-objektiin | Adds "keyword": "PatientName" |
WriteName | Sisällytä nimi kenttä jokaiseen kohteeseen | Adds "name": "Patient's Name" |
NumberHandling | Määräarvojen valvonta | Luvut tai todelliset JSON-numerot |
Vaiheittainen opas JSON-tuotteiden räätälöimiseen
Vaihe 1: Asenna Aspose.Medical
Lisää Aspose.Medical -kirjasto projektillesi NuGetin avulla.
Install-Package Aspose.MedicalVaihe 2: Sisällytä tarvittavat nimet
Lisää viittauksia vaadittuihin nimipaikkoihin koodissasi.
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;
using System.Text.Json.Serialization;Vaihe 3: Luo vaihtoehtoja
Luo a DicomJsonSerializerOptions Esimerkki on asetusten määrittäminen.
DicomJsonSerializerOptions options = new DicomJsonSerializerOptions();Vaihe 4: Määritä vaihtoehdot
Aseta haluamasi vaihtoehdot JSON-lähteelle.
options.UseKeywordsAsJsonKeys = true;
options.WriteKeyword = true;
options.WriteName = true;
options.NumberHandling = JsonNumberHandling.WriteAsString;Vaihe 5: Serioi vaihtoehtoja
Siirrä vaihtoehdot Serialize -menetelmään.
DicomFile dcm = DicomFile.Open("patient_scan.dcm");
string json = DicomJsonSerializer.Serialize(dcm, options, writeIndented: true);Vaihe 6: Tallenna räätälöity tulos
Tallenna tai käytä räätälöityä JSONia.
File.WriteAllText("customized_output.json", json);
Console.WriteLine("Customized JSON output saved!");Täydellinen koodi esimerkki kaikilla vaihtoehdoilla
Tässä on täydellinen esimerkki, joka näyttää kaikki räätälöinti vaihtoehdot:
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;
using System.Text.Json.Serialization;
// Load DICOM file
DicomFile dcm = DicomFile.Open("patient_scan.dcm");
// Configure serialization options
DicomJsonSerializerOptions options = new DicomJsonSerializerOptions
{
UseKeywordsAsJsonKeys = true,
WriteKeyword = true,
WriteName = true,
NumberHandling = JsonNumberHandling.WriteAsString
};
// Serialize with custom options
string json = DicomJsonSerializer.Serialize(dcm, options, writeIndented: true);
// Save output
File.WriteAllText("fully_customized.json", json);
Console.WriteLine("DICOM serialized with all custom options!");
Console.WriteLine(json);Vertaile lähtömuotoja
Oletusarvoinen lähtö (standardi PS3.18 -muoto)
{
"00100010": {
"vr": "PN",
"Value": [{ "Alphabetic": "DOE^JOHN" }]
},
"00100020": {
"vr": "LO",
"Value": ["12345"]
}
}UseKeywordsAsJsonKeys = totta
{
"PatientName": {
"vr": "PN",
"Value": [{ "Alphabetic": "DOE^JOHN" }]
},
"PatientID": {
"vr": "LO",
"Value": ["12345"]
}
}Kirjoita ja kirjoita = totta
{
"00100010": {
"vr": "PN",
"keyword": "PatientName",
"name": "Patient's Name",
"Value": [{ "Alphabetic": "DOE^JOHN" }]
}
}Käytössä NumberHandling = WriteAsString
{
"00280010": {
"vr": "US",
"Value": ["512"]
}
}Numeron kanssaHandling = AllowReadingFromString♰ WriteAsNumber
{
"00280010": {
"vr": "US",
"Value": [512]
}
}Käytä esimerkkejä tapauksista
Henkilökohtaisesti luettavissa oleva dokumentti
DicomJsonSerializerOptions docOptions = new DicomJsonSerializerOptions
{
UseKeywordsAsJsonKeys = true,
WriteKeyword = true,
WriteName = true
};
string documentationJson = DicomJsonSerializer.Serialize(dcm, docOptions, writeIndented: true);PS3.18 Täydelliset verkkopalvelut
// Use default options for DICOM PS3.18 compliance
DicomJsonSerializerOptions webOptions = new DicomJsonSerializerOptions
{
UseKeywordsAsJsonKeys = false, // Use tag numbers
WriteKeyword = false,
WriteName = false,
NumberHandling = JsonNumberHandling.WriteAsString
};
string ps318Json = DicomJsonSerializer.Serialize(dcm, webOptions);JavaScript Frontend -yhteensopivuus
DicomJsonSerializerOptions jsOptions = new DicomJsonSerializerOptions
{
UseKeywordsAsJsonKeys = true, // Easier to work with in JS
NumberHandling = JsonNumberHandling.AllowReadingFromString // Native numbers
};
string jsCompatibleJson = DicomJsonSerializer.Serialize(dcm, jsOptions);Tietokannan tallennus
DicomJsonSerializerOptions dbOptions = new DicomJsonSerializerOptions
{
UseKeywordsAsJsonKeys = true, // Better for querying
WriteKeyword = false, // Reduce storage size
WriteName = false
};
string compactJson = DicomJsonSerializer.Serialize(dcm, dbOptions);Tärkeitä huomioita
Yhteentoimivuuden varoitus
Ei-standardin vaihtoehdot voivat häiritä yhteensopivuutta joidenkin DICOM-sovellusten kanssa:
// WARNING: This format may not be compatible with all DICOM JSON parsers
DicomJsonSerializerOptions nonStandardOptions = new DicomJsonSerializerOptions
{
UseKeywordsAsJsonKeys = true // Not PS3.18 compliant
};
// For maximum compatibility, use defaults:
DicomJsonSerializerOptions standardOptions = new DicomJsonSerializerOptions();Suositus vaatimustenmukaisuudesta
Kun DICOM PS3.18:n vaatimustenmukaisuus vaaditaan, käytä oletusarvoisia asetuksia:
// PS3.18 compliant serialization
string compliantJson = DicomJsonSerializer.Serialize(dcm); // No custom optionsStream-pohjainen sarjakuva vaihtoehdoilla
Suuriin tiedostoihin käytä virranpohjaista sarjakuvausta:
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;
DicomFile dcm = DicomFile.Open("large_scan.dcm");
DicomJsonSerializerOptions options = new DicomJsonSerializerOptions
{
UseKeywordsAsJsonKeys = true,
WriteKeyword = true
};
using (FileStream fs = File.Create("large_customized.json"))
{
DicomJsonSerializer.Serialize(fs, dcm.Dataset, options, writeIndented: true);
}Lisätietoja
- Yksityiskohtaiset vaihtoehdot vaikuttavat sekä serialisointiin että deserialisoinnille - varmistavat johdonmukaiset valinnat pyörivien tietojen aikana.
- Se on
WriteNamevaihtoehto lisää ihmisen luettavissa olevia DICOM-merkinnät, jotka lisäävät JSON-kokoa mutta parantavat lukutaitoa. - Jotkut kolmannen osapuolen järjestelmät saattavat vaatia erityisiä JSON-muotoja - tutustu niiden asiakirjoihin ennen valinnan vaihtoehtoja.
johtopäätöksiä
Tämä opetusohjelma on osoittanut, miten räätälöidä DICOM JSON sarjakuva tuotto C#: ssä käyttämällä Aspose.Medical. Konfiguroimalla DicomJsonSerializerOptions, voit säätää jSON-muotoja täyttääkseen tiettyjä integrointivaatimuksia tasapainottaen lukuvuutta, koon ja yhteentoimivuuden tarpeita.