Kā pielāgot DICOM JSON iznākumu ar DicomJsonSerializerOptions
Šis apmācība parāda, kā pielāgot DICOM JSON serializācijas iznākumu, izmantojot DicomJsonSerializerOptions C#. Customization ļauj kontrolēt jSON atslēgvārdu formātus, ietver papildu metadatus un apstrādāt skaitliskās vērtības saskaņā ar jūsu integrācijas prasībām.
Kāpēc pielāgot JSON iznākumu?
Dažādas sistēmas var prasīt dažādus JSON formātus. pielāgošana ļauj:
- Izmantojiet cilvēka lasītās atslēgvārdus, nevis etiķetes skaitļus
- Iekļauj etiķetes nosaukumus dokumentācijai
- Pārbaudiet, kā skaitļu vērtības tiek pārstāvētas
- Atbilstība konkrētiem trešo pušu sistēmas prasībām
Priekšnoteikumi: Vides sagatavošana
- Iestatīt Visual Studio vai jebkuru saderīgu .NET IDE.
- Izveidojiet jaunu .NET 8 konsoles lietojumprogrammu projektu.
- Instalējiet Aspose.Medical no NuGet Package Manager.
Pieejamas serializācijas iespējas
| Option | Description | Impact |
|---|---|---|
UseKeywordsAsJsonKeys | Izmantojiet DICOM atslēgvārdus, nevis marķējot skaitļus kā JSON atlēcas | "PatientName" VS "00100010" |
WriteKeyword | Ievadiet atslēgvārdu lauku katrā tagi objekts | Adds "keyword": "PatientName" |
WriteName | Ievadiet nosaukuma lauku katrā tagi objekts | Adds "name": "Patient's Name" |
NumberHandling | Kontroles skaitliskā vērtības pārstāvība | Numuri kā sloksnes vai faktiskie JSON numuri |
Pakāpeniski ceļvedis, kā pielāgot JSON iznākumu
1. solis: instalēt Aspose.Medical
Pievienojiet Aspose.Medicīnas bibliotēku savam projektam, izmantojot NuGet.
Install-Package Aspose.Medical2. solis: Iekļaut nepieciešamos nosaukuma telpas
Pievienojiet atsauces uz pieprasītajiem nosaukuma telpām savā kodā.
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;
using System.Text.Json.Serialization;3. solis: izveidot opcijas instance
radīt a DicomJsonSerializerOptions Piemēram, lai konfigurētu iestatījumus.
DicomJsonSerializerOptions options = new DicomJsonSerializerOptions();4. solis: iestatīt opcijas
Iestatīt vēlamos iespējas jūsu JSON iznākumam.
options.UseKeywordsAsJsonKeys = true;
options.WriteKeyword = true;
options.WriteName = true;
options.NumberHandling = JsonNumberHandling.WriteAsString;5. solis: Serializējieties ar opcijām
Pārsūtīt iespējas uz Serializācijas metodi.
DicomFile dcm = DicomFile.Open("patient_scan.dcm");
string json = DicomJsonSerializer.Serialize(dcm, options, writeIndented: true);6. solis: ietaupīt pielāgotu rezultātu
Saglabājiet vai izmantojiet pielāgotu JSON.
File.WriteAllText("customized_output.json", json);
Console.WriteLine("Customized JSON output saved!");Pilns koda piemērs ar visām opcijām
Šeit ir pilns piemērs, kas parāda visas personalizācijas iespējas:
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);Salīdzināt iznākumu formātus
Standarta iznākums (standarta PS3.18 formāta)
{
"00100010": {
"vr": "PN",
"Value": [{ "Alphabetic": "DOE^JOHN" }]
},
"00100020": {
"vr": "LO",
"Value": ["12345"]
}
}Ar UseKeywordsAsJsonKeys = patiesība
{
"PatientName": {
"vr": "PN",
"Value": [{ "Alphabetic": "DOE^JOHN" }]
},
"PatientID": {
"vr": "LO",
"Value": ["12345"]
}
}Ar WriteKeyword un WriteName = patiesība
{
"00100010": {
"vr": "PN",
"keyword": "PatientName",
"name": "Patient's Name",
"Value": [{ "Alphabetic": "DOE^JOHN" }]
}
}Ar NumberHandling = WriteAsString
{
"00280010": {
"vr": "US",
"Value": ["512"]
}
}Ar NumberHandling = AllowReadingFromString Ļeņins WriteAsNumber
{
"00280010": {
"vr": "US",
"Value": [512]
}
}Izmantojiet piemērus
Cilvēku lasāmā dokumentācija
DicomJsonSerializerOptions docOptions = new DicomJsonSerializerOptions
{
UseKeywordsAsJsonKeys = true,
WriteKeyword = true,
WriteName = true
};
string documentationJson = DicomJsonSerializer.Serialize(dcm, docOptions, writeIndented: true);PS3.18 atbilstīgi tīmekļa pakalpojumi
// 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 integrācija
DicomJsonSerializerOptions jsOptions = new DicomJsonSerializerOptions
{
UseKeywordsAsJsonKeys = true, // Easier to work with in JS
NumberHandling = JsonNumberHandling.AllowReadingFromString // Native numbers
};
string jsCompatibleJson = DicomJsonSerializer.Serialize(dcm, jsOptions);Datu bāzes uzglabāšana
DicomJsonSerializerOptions dbOptions = new DicomJsonSerializerOptions
{
UseKeywordsAsJsonKeys = true, // Better for querying
WriteKeyword = false, // Reduce storage size
WriteName = false
};
string compactJson = DicomJsonSerializer.Serialize(dcm, dbOptions);Svarīgi apsvērumi
Sadarbības brīdinājums
Nestandarta opcijas var traucēt saderību ar dažiem DICOM paseriem:
// 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();Ieteikums atbilstībai
Ja DICOM PS3.18 atbilstība ir nepieciešama, izmantojiet iepriekšējos iestatījumus:
// PS3.18 compliant serialization
string compliantJson = DicomJsonSerializer.Serialize(dcm); // No custom optionsStream-based serializācija ar opcijām
Lieliem failiem izmantojiet streamu balstītu serializāciju:
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);
}Papildu informācija
- Atsevišķas iespējas ietekmē gan serializāciju, gan deserializācijas - nodrošina konsekventu opcijas, kad apkārtējos datus.
- The
WriteNameOpcija pievieno cilvēka lasāmus DICOM etiķetes nosaukumus, kas palielina JSON izmēru, bet uzlabo lasamību. - Dažas trešo pušu sistēmas var prasīt konkrētus JSON formātus - pārbaudiet to dokumentāciju, pirms izvēlaties iespējas.
Conclusion
Šī instrukcija ir parādījusi, kā pielāgot DICOM JSON serializācijas iznākumu C#, izmantojot Aspose.Medical. Konfigurējot DicomJsonSerializerOptions, jūs varat iestatīt jSON formātu, lai atbilstu konkrētām integrācijas prasībām, vienlaikus līdzsvarojot lasamības, izmēra un sadarbspējas vajadzības.