Hogyan kell alkalmazkodni a DICOM JSON kimenetel a DicomJsonSerializerOptions
Ez a kézikönyv megmutatja, hogyan kell személyre szabni a DICOM JSON serializáció kimenetelét a DicomJsonSerializerOptions használatával a C#. Az alkalmazkodás lehetővé teszi, hogy ellenőrizze a jSON kulcsformátumokat, tartalmazza a további metadatait, és kezeli a numerikus értékeket az integrációs követelményeknek megfelelően.
Miért alkalmazkodik a JSON kimenetelhez?
Különböző rendszerek különböző JSON formátumokat igényelhetnek.A személyre szabás lehetővé teszi:
- Az emberi olvasható kulcsszavak használata a tagszámok helyett
- Tartalmazza a címkék nevét a dokumentációhoz
- Ellenőrizze, hogy mennyiségi értékeket képviselnek
- A harmadik fél rendszerére vonatkozó specifikus követelmények teljesítése
Előfeltételek: a környezet előkészítése
- A Visual Studio vagy bármely kompatibilis .NET IDE beállítása.
- Hozzon létre egy új .NET 8 konzol alkalmazási projektet.
- Telepítse az Aspose.Medical-t a NuGet csomagkezelőből.
Rendelkezésre álló serializációs lehetőségek
| Option | leírása | Impact |
|---|---|---|
UseKeywordsAsJsonKeys | Használja a DICOM kulcsszavakat a tagszámok helyett, mint JSON kulcsokat | "PatientName" Az vs "00100010" |
WriteKeyword | Tartalmazza a kulcsszavak mezőjét minden tag objektumban | Adds "keyword": "PatientName" |
WriteName | Tartalmazza a név mezőt minden tag objektumban | Adds "name": "Patient's Name" |
NumberHandling | Számjegyű értékek ellenőrzése | Számok, mint szalagok vagy valós JSON számok |
Lépésről lépésre útmutató a JSON kimenetelének személyre szabására
1. lépés: Install Aspose.Medical
Add hozzá az Aspose.Medical könyvtárat a projekthez a NuGet használatával.
Install-Package Aspose.Medical2. lépés: Tartalmazza a szükséges névterületeket
Hozzáadjon hivatkozásokat a szükséges névterületekhez a kódjában.
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;
using System.Text.Json.Serialization;3. lépés: Hozzon létre lehetőségeket
Hozzon létre a DicomJsonSerializerOptions Például a beállítások konfigurálása.
DicomJsonSerializerOptions options = new DicomJsonSerializerOptions();4. lépés: Az opciók beállítása
Állítsa be a kívánt lehetőségeket a JSON kimeneteléhez.
options.UseKeywordsAsJsonKeys = true;
options.WriteKeyword = true;
options.WriteName = true;
options.NumberHandling = JsonNumberHandling.WriteAsString;5. lépés: Serializáld az opciókkal
Válassza az opciókat a Serialize módszerre.
DicomFile dcm = DicomFile.Open("patient_scan.dcm");
string json = DicomJsonSerializer.Serialize(dcm, options, writeIndented: true);6. lépés: Mentse meg a személyre szabott kimenetet
Mentse vagy használja a személyre szabott JSON.
File.WriteAllText("customized_output.json", json);
Console.WriteLine("Customized JSON output saved!");Tökéletes kód példája az összes lehetőséggel
Íme egy teljes példa, amely bemutatja az összes személyre szabási lehetőséget:
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);A kimeneti formátumok összehasonlítása
Alapértelmezett kimenetel (standard PS3.18 formátum)
{
"00100010": {
"vr": "PN",
"Value": [{ "Alphabetic": "DOE^JOHN" }]
},
"00100020": {
"vr": "LO",
"Value": ["12345"]
}
}HasználatKeywordsAsJsonKeys = igaz
{
"PatientName": {
"vr": "PN",
"Value": [{ "Alphabetic": "DOE^JOHN" }]
},
"PatientID": {
"vr": "LO",
"Value": ["12345"]
}
}A WriteKeyword és a WriteName = igaz
{
"00100010": {
"vr": "PN",
"keyword": "PatientName",
"name": "Patient's Name",
"Value": [{ "Alphabetic": "DOE^JOHN" }]
}
}Számlázás = WriteAsString
{
"00280010": {
"vr": "US",
"Value": ["512"]
}
}A számmalHandling = AllowReadingFromStringḳ WriteAsNumber
{
"00280010": {
"vr": "US",
"Value": [512]
}
}Használja a példákat
Emberi és olvasható dokumentáció
DicomJsonSerializerOptions docOptions = new DicomJsonSerializerOptions
{
UseKeywordsAsJsonKeys = true,
WriteKeyword = true,
WriteName = true
};
string documentationJson = DicomJsonSerializer.Serialize(dcm, docOptions, writeIndented: true);A PS3.18 kompatibilis webes szolgáltatásokhoz
// 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áció
DicomJsonSerializerOptions jsOptions = new DicomJsonSerializerOptions
{
UseKeywordsAsJsonKeys = true, // Easier to work with in JS
NumberHandling = JsonNumberHandling.AllowReadingFromString // Native numbers
};
string jsCompatibleJson = DicomJsonSerializer.Serialize(dcm, jsOptions);Adatbázis tárolása
DicomJsonSerializerOptions dbOptions = new DicomJsonSerializerOptions
{
UseKeywordsAsJsonKeys = true, // Better for querying
WriteKeyword = false, // Reduce storage size
WriteName = false
};
string compactJson = DicomJsonSerializer.Serialize(dcm, dbOptions);Fontos megfontolások
Interoperabilitási figyelmeztetés
A nem szabványos opciók megszakíthatják a kompatibilitást néhány DICOM parsérrel:
// 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();Megfelelőségi ajánlás
Ha a DICOM PS3.18 megfelelőségre van szükség, használja az alapértelmezett beállításokat:
// PS3.18 compliant serialization
string compliantJson = DicomJsonSerializer.Serialize(dcm); // No custom optionsStream-alapú serializáció opciókkal
A nagy fájlokhoz használja a stream-alapú szerializációt:
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);
}További információk
- A személyre szabott opciók mind a serializálást, mind az deserializációt érintik - biztosítják a konzisztenciát az adatok körforgása során.
- A
WriteNameAz opció hozzáadja az emberi olvasható DICOM címkével kapcsolatos neveket, amelyek növelik a JSON méretét, de javítják az olvashatóságot. - Néhány harmadik fél rendszerek megkövetelhetik a specifikus JSON formátumokat - olvassa el a dokumentációt, mielőtt kiválasztja a lehetőségeket.
következtetések
Ez a kézikönyv megmutatta, hogyan kell személyre szabni a DICOM JSON serializáció kimenetelét a C# használatával Aspose.Medical.A DicomJsonSerializerOptions konfigurálásával a jSON formátumot az egyes integrációs követelményeknek való megfeleléshez igazíthatja, miközben kiegyensúlyozza az olvashatóság, a méret és az interoperabilitás igényeit.