Kaip pritaikyti DICOM JSON išleidimą su DicomJsonSerializerOptions
Šis mokymas rodo, kaip pritaikyti DICOM JSON serializavimo išleidimą naudojant DicomJsonSerializerOptions C#. Pritaikymas leidžia jums kontroliuoti J SON raktinius formatus, įtraukti papildomus metaduomenis ir tvarkyti skaitmenines vertybes pagal jūsų integracijos reikalavimus.
Kodėl reikia pritaikyti JSON išėjimą?
Skirtingos sistemos gali reikalauti skirtingų JSON formatų. pritaikymas leidžia:
- Žmogaus skaitomų raktinių žodžių naudojimas vietoj ženklų skaičių
- Įtraukti etiketės pavadinimus dokumentams
- Patikrinkite, kaip numeriškos vertės yra atstovaujamos
- Atitinka konkrečius trečiųjų šalių sistemos reikalavimus
Žymos archyvas: paruošti aplinką
- Įdiegti „Visual Studio“ arba bet kokį suderinamą .NET IDE.
- Sukurkite naują .NET 8 konsolės programos projektą.
- Įdiegti Aspose.Medical iš NuGet paketų valdytojo.
Galimi serializavimo būdai
| Option | Description | Impact |
|---|---|---|
UseKeywordsAsJsonKeys | Naudokite DICOM raktinius žodžius vietoj pažymėjimo skaičių kaip JSON raktus | "PatientName" VS "00100010" |
WriteKeyword | Įtraukti raktinių žodžių lauką į kiekvieną žymės objektą | Adds "keyword": "PatientName" |
WriteName | Įtraukti pavadinimo lauką į kiekvieną žymės objektą | Adds "name": "Patient's Name" |
NumberHandling | Numerinės vertės kontrolė | Skaičiai kaip juostos arba faktiniai JSON skaičiai |
Žingsnis po žingsnio vadovas, kaip pritaikyti JSON išleidimą
1 žingsnis: įdiegti Aspose.Medical
Pridėti Aspose.Medicinos biblioteką į savo projektą naudojant NuGet.
Install-Package Aspose.Medical2 žingsnis: įtraukti reikiamus pavadinimų erdves
Įveskite nuorodas į reikalingą vardų erdvę savo kodo.
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;
using System.Text.Json.Serialization;3 žingsnis: Sukurkite parinkčių instancą
Sukurkite A DicomJsonSerializerOptions Pavyzdžiui, norėdami nustatyti nustatymus.
DicomJsonSerializerOptions options = new DicomJsonSerializerOptions();4 žingsnis: nustatyti parinktis
Nustatykite pageidaujamas jūsų JSON išleidimo parinktis.
options.UseKeywordsAsJsonKeys = true;
options.WriteKeyword = true;
options.WriteName = true;
options.NumberHandling = JsonNumberHandling.WriteAsString;5 žingsnis: Serializuoti su parinktimis
Perkelkite galimybes į Serializavimo metodą.
DicomFile dcm = DicomFile.Open("patient_scan.dcm");
string json = DicomJsonSerializer.Serialize(dcm, options, writeIndented: true);6 žingsnis: išsaugokite pritaikytą produkciją
Išsaugokite arba naudokite pritaikytą JSON.
File.WriteAllText("customized_output.json", json);
Console.WriteLine("Customized JSON output saved!");Išsamus kodo pavyzdys su visomis galimybėmis
Štai pilnas pavyzdys, kuriame pateikiamos visos pritaikymo galimybės:
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);Išleidimo formatų palyginimas
Išmanusis išleidimas (standartinis PS3.18 formatas)
{
"00100010": {
"vr": "PN",
"Value": [{ "Alphabetic": "DOE^JOHN" }]
},
"00100020": {
"vr": "LO",
"Value": ["12345"]
}
}NaudojantKeywordsAsJsonKeys = tiesa
{
"PatientName": {
"vr": "PN",
"Value": [{ "Alphabetic": "DOE^JOHN" }]
},
"PatientID": {
"vr": "LO",
"Value": ["12345"]
}
}Rašyti žodį ir rašyti vardą = tiesa
{
"00100010": {
"vr": "PN",
"keyword": "PatientName",
"name": "Patient's Name",
"Value": [{ "Alphabetic": "DOE^JOHN" }]
}
}Žymės: WriteAsString
{
"00280010": {
"vr": "US",
"Value": ["512"]
}
}Su numeriuSkaityti = leistiReadingFromStringAš rašauNumeris
{
"00280010": {
"vr": "US",
"Value": [512]
}
}Naudokite atvejų pavyzdžius
Žmogaus skaitymo dokumentacija
DicomJsonSerializerOptions docOptions = new DicomJsonSerializerOptions
{
UseKeywordsAsJsonKeys = true,
WriteKeyword = true,
WriteName = true
};
string documentationJson = DicomJsonSerializer.Serialize(dcm, docOptions, writeIndented: true);PS3.18 suderinamos žiniatinklio paslaugos
// 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“ integracija
DicomJsonSerializerOptions jsOptions = new DicomJsonSerializerOptions
{
UseKeywordsAsJsonKeys = true, // Easier to work with in JS
NumberHandling = JsonNumberHandling.AllowReadingFromString // Native numbers
};
string jsCompatibleJson = DicomJsonSerializer.Serialize(dcm, jsOptions);Duomenų bazės saugojimas
DicomJsonSerializerOptions dbOptions = new DicomJsonSerializerOptions
{
UseKeywordsAsJsonKeys = true, // Better for querying
WriteKeyword = false, // Reduce storage size
WriteName = false
};
string compactJson = DicomJsonSerializer.Serialize(dcm, dbOptions);Svarbūs apsvarstymai
Interoperatyvumo įspėjimas
Ne standartinės parinktys gali sutrikdyti suderinamumą su kai kuriais DICOM parserijais:
// 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();Rekomendacija dėl atitikties
Kai reikalingas DICOM PS3.18 atitikimas, naudokite numatytus nustatymus:
// PS3.18 compliant serialization
string compliantJson = DicomJsonSerializer.Serialize(dcm); // No custom optionsStream-based serializavimas su parinktimis
Dideliems failams naudokite srautą pagrįstą serializavimą:
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);
}Papildoma informacija
- Pritaikytos galimybės turi įtakos tiek serializavimui, tiek deserializacijai - užtikrinant nuoseklų pasirinkimą, kai apvalios informacijos.
- The
WriteNameGalimybė prideda žmogui skaityti DICOM ženklų pavadinimus, kurie padidina JSON dydį, bet pagerina skaitytinumą. - Kai kurioms trečiųjų šalių sistemoms gali prireikti konkrečių JSON formatų - prieš pasirinkdami parinktis, patikrinkite jų dokumentaciją.
Conclusion
Šis mokymas parodė, kaip pritaikyti DICOM JSON serijalizavimo išleidimą C# naudojant Aspose.Medical. Konfiguruojant DicomJsonSerializerOptions, galite pritarti “JSON” formatui, kad atitiktų konkrečius integracijos reikalavimus, tuo pačiu subalansavus skaityti, dydį ir sąveikumo poreikius.