Miten luoda räätälöity DICOM Anonymization Profile CSV, JSON tai XML
Tämä opetusohjelma näyttää, miten luoda räätälöityjä DICOM anonyymi profiileja käyttäen CSV, JSON tai XML-tiedostoja C#. Käsitellyt profiilit antavat sinulle mahdollisuuden määritellä tarkasti, mitkä merkinnät on poistettava, korvattava tai säilytettävä laitoksen tietosuojakäytännön mukaisesti.
Miksi luodaan räätälöityjä profiileja?
Predefined DICOM PS3.15 -profiilit eivät välttämättä täytä kaikkia institutionaalisia vaatimuksia.
- Sisäisen jäljitettävyyden erityisten institutionaalisten tunnisteiden säilyttäminen
- Sovelletaan organisaation yksityisyyden sääntöjä
- Täytä ainutlaatuiset sääntelyvaatimukset lainkäyttöalueellasi
Tag Toiminta selitetään
Seuraavat toimenpiteet voidaan soveltaa DICOM-merkintöihin:
| Action | Code | kuvaus |
|---|---|---|
| Delete | D | Poista etiketti kokonaan tietokoneesta |
| Zero | Z | Vaihda arvo tyhjään tai nollan arvoon |
| Remove | X | Poista, jos se on läsnä (kuten Poistaa) |
| Keep | K | Pidä alkuperäinen arvo muuttumattomana |
| Clean | C | Puhdista arvo poistamalla tunnistetiedot |
| Vaihdetaan UID:llä | U | Vaihda uusi tuottama UID |
Edellytykset: Ympäristön valmistelu
- Aseta Visual Studio tai yhteensopiva .NET IDE.
- Luo uusi .NET 8 -konsolin sovellusprojekti.
- Asenna Aspose.Medical NuGet Package Managerista.
- Valmista mukautettu profiilin määritelmä tiedosto.
Vaiheittainen opas räätälöityjen profiilien luomiseen
Vaihe 1: Asenna Aspose.Medical
Lisää Aspose.Medical -kirjasto projektillesi NuGetin avulla.
Install-Package Aspose.MedicalVaihe 2: Luo CSV-profiilin määritelmä
Luo CSV-tiedosto, jossa on merkintöjä ja toimintoja. Jokainen rivi määrittää merkinnän ja sen toiminnan.
- Profiili ja CSV: *
TagPattern;Action
(0010,0010);Z
(0010,0020);Z
(0010,0030);X
(0010,0040);K
(0020,000D);U
(0020,000E);U
(0008,0018);U
(0008,0080);D
(0008,0081);D
(0008,1030);C<button class=“hextra-code-copy-btn hx-group/copybtn hx-transition-all active:hx-opacity-50 hx-bg-primary-700/5 hx-border hx-border-black/5 hx-text-gray-600 hover:hx-text-gray-900 hx-rounded-md hx-p-1.5 dark:hx-bg-primary-300/10 dark:hx-border-white/10 dark:hx-text-gray-400 dark:hover:hx-text-gray-50” title=“Kopioi koodi”
<div class="copy-icon group-[.copied]/copybtn:hx-hidden hx-pointer-events-none hx-h-4 hx-w-4"></div>
<div class="success-icon hx-hidden group-[.copied]/copybtn:hx-block hx-pointer-events-none hx-h-4 hx-w-4"></div>
Tämä profiili on:
- Zeros potilaan nimi ja ID
- Poista syntymäpäivä
- Potilaan sukupuoli
- Vaihda tutkimus, sarja ja SOP Instance UIDs
- Poistaa laitoksen tiedot
- Puhdistaa tutkimuksen kuvaus
Vaihe 3: Luo JSON-profiilin määritelmä (vaihtoehtoinen)
Luo JSON-tiedosto, jossa on samat tunnisteiden määritelmät.
- Profiili ja json: *
[
{ "TagPattern": "(0010,0010)", "Action": "Z" },
{ "TagPattern": "(0010,0020)", "Action": "Z" },
{ "TagPattern": "(0010,0030)", "Action": "X" },
{ "TagPattern": "(0010,0040)", "Action": "K" },
{ "TagPattern": "(0020,000D)", "Action": "U" },
{ "TagPattern": "(0020,000E)", "Action": "U" },
{ "TagPattern": "(0008,0018)", "Action": "U" },
{ "TagPattern": "(0008,0080)", "Action": "D" },
{ "TagPattern": "(0008,0081)", "Action": "D" },
{ "TagPattern": "(0008,1030)", "Action": "C" }
]Vaihe 4: Luo XML-profiilin määritelmä (vaihtoehtoinen)
Luo XML-tiedosto, jossa on samat merkintöjen määritelmät.
• Profiili xml: *
<?xml version="1.0" encoding="utf-8"?>
<ConfidentialityProfile>
<TagAction TagPattern="(0010,0010)" Action="Z" />
<TagAction TagPattern="(0010,0020)" Action="Z" />
<TagAction TagPattern="(0010,0030)" Action="X" />
<TagAction TagPattern="(0010,0040)" Action="K" />
<TagAction TagPattern="(0020,000D)" Action="U" />
<TagAction TagPattern="(0020,000E)" Action="U" />
<TagAction TagPattern="(0008,0018)" Action="U" />
<TagAction TagPattern="(0008,0080)" Action="D" />
<TagAction TagPattern="(0008,0081)" Action="D" />
<TagAction TagPattern="(0008,1030)" Action="C" />
</ConfidentialityProfile>Vaihe 5: Lataa mukautettu profiili
Lataa räätälöity profiili käyttäen asianmukaista menetelmää tiedostomuotoasi.
using Aspose.Medical.Dicom.Anonymization;
// Load from CSV
ConfidentialityProfile profileFromCsv = ConfidentialityProfile.LoadFromCsvFile(
"profile.csv",
ConfidentialityProfileOptions.All
);
// Or load from JSON
ConfidentialityProfile profileFromJson = ConfidentialityProfile.LoadFromJsonFile(
"profile.json",
ConfidentialityProfileOptions.All
);
// Or load from XML
ConfidentialityProfile profileFromXml = ConfidentialityProfile.LoadFromXmlFile(
"profile.xml",
ConfidentialityProfileOptions.All
);Vaihe 6: Käytä räätälöityä profiilia
Luo Anonymizer ladattavalla profiililla ja soveltaa sitä DICOM-tiedostoihin.
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Anonymization;
// Load custom profile
ConfidentialityProfile profile = ConfidentialityProfile.LoadFromCsvFile(
"profile.csv",
ConfidentialityProfileOptions.All
);
// Create anonymizer with custom profile
Anonymizer anonymizer = new(profile);
// Load and anonymize DICOM file
DicomFile dcm = DicomFile.Open("patient_study.dcm");
DicomFile anonymizedDcm = anonymizer.Anonymize(dcm);
anonymizedDcm.Save("anonymized_study.dcm");Täydellinen koodin esimerkki CSV-profiililla
Tässä on täydellinen esimerkki CSV-pohjaisen räätälöidyn profiilin avulla:
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Anonymization;
// Load custom confidentiality profile from CSV
ConfidentialityProfile profile = ConfidentialityProfile.LoadFromCsvFile(
"hospital_privacy_profile.csv",
ConfidentialityProfileOptions.All
);
// Create anonymizer with the custom profile
Anonymizer anonymizer = new(profile);
// Load DICOM file
DicomFile dcm = DicomFile.Open("patient_scan.dcm");
// Anonymize using custom profile
DicomFile anonymizedDcm = anonymizer.Anonymize(dcm);
// Save result
anonymizedDcm.Save("anonymized_scan.dcm");
Console.WriteLine("Anonymization completed with custom profile!");Käytännön skenaario esimerkkejä
Käsikirjoitus 1: Sisäisen seurannan säilyttäminen
TagPattern;Action
(0010,0010);Z
(0010,0020);Z
(0008,0080);K
(0008,0081);KSkenaario 2: Vaihda kaikki UID:t säilyttäessään suhteita
TagPattern;Action
(0020,000D);U
(0020,000E);U
(0008,0018);U
(0008,0016);KSkenaario 3: Maksimi yksityisyys ulkoiseen jakamiseen
TagPattern;Action
(0010,0010);X
(0010,0020);X
(0010,0030);X
(0010,0040);X
(0008,0080);X
(0008,0081);X
(0008,1030);X
(0008,103E);XValidointi: Testaa henkilökohtainen profiili
Aina validoi räätälöityjä profiileja ennen tuotantoa:
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Anonymization;
// Load custom profile
ConfidentialityProfile profile = ConfidentialityProfile.LoadFromCsvFile(
"test_profile.csv",
ConfidentialityProfileOptions.All
);
Anonymizer anonymizer = new(profile);
// Test with sample files
string[] testFiles = Directory.GetFiles("test_samples", "*.dcm");
foreach (string filePath in testFiles)
{
try
{
DicomFile dcm = DicomFile.Open(filePath);
DicomFile anonymized = anonymizer.Anonymize(dcm);
string outputPath = Path.Combine("test_output", Path.GetFileName(filePath));
anonymized.Save(outputPath);
Console.WriteLine($"✓ Processed: {Path.GetFileName(filePath)}");
}
catch (Exception ex)
{
Console.WriteLine($"✗ Failed: {Path.GetFileName(filePath)} - {ex.Message}");
}
}
Console.WriteLine("\nValidation complete. Review output files in DICOM viewer.");Troubleshooting
Vaaralliset tiedostot
Jos profiilitiedostoa ei löydy:
string profilePath = "profile.csv";
if (!File.Exists(profilePath))
{
Console.WriteLine($"Profile file not found: {profilePath}");
return;
}Invalid Tag -muoto tai toiminta
Varmista, että mallit noudattavat muotoa (GGGG,EEEE) jossa GGGG on ryhmä ja EEEE on elementti hexadecimal. Voimassa olevat toimet ovat: D, Z, X, K, C, U.
Parhaat käytännöt räätälöityille profiileille
- Version Control: Tallenna profiilitiedostoja versiohallinnassa seuraamaan muutoksia ajan myötä.
- Dokumentaatio: Lisää kommentteja, jotka selittävät, miksi tiettyjä toimenpiteitä valittiin jokaiselle merkille.
- Testing: Validoi profiilit testaustietojen kanssa ennen DICOM-tiedostojen tuottamista.
- Backup: Säilytä aina alkuperäisten profiilitiedostojen varmuuskopioita.
- Katselu: Profiileja tarkastellaan säännöllisesti varmistaakseen, että ne täyttävät edelleen sääntelyvaatimukset.
Lisätietoja
- Harkitse useiden profiilien luomista eri käyttötapauksissa (sisäinen jakaminen, ulkoinen tutkimus jne.).
- Asiakirja, jonka profiilia käytettiin tiedostojen anonymisoinnissa tarkastustarkoituksiin.
- JSON- ja XML-muodot tarjoavat paremman rakenteen monimutkaisiin profiileihin, joissa on määritelmiä.
johtopäätöksiä
Tämä opetusohjelma on osoittanut, miten luoda räätälöityjä DICOM anonyymi profiileja käyttämällä CSV, JSON tai XML tiedostoja C# kanssa Aspose.Medical.