Dok preddefinirani profili privatnosti DICOM PS3.15 pokrivaju mnoge slučajeve korištenja, zdravstvene ustanove često imaju jedinstvene zahtjeve za privatnost. u ovom vodiču ćete naučiti kako designirati prilagođene profile anonimizacije DIKOM koji se usklađuju s određenim politikama vaše organizacije.

Tablica sadržaja

Zašto su prilagođeni profili potrebni

Predefinirani profili povjerljivosti pružaju čvrstu osnovu, ali oni ne mogu odgovarati svim institucionalnim zahtjevima. Možda će vam trebati prilagođene profile kada vaša organizacija zahtijeva zadržavanje određenih institucionalnih identifikacija za unutarnju praćenost dok još uvijek anonimizira podatke o pacijentima. Neke istraživačke suradnje možda trebaju određene demografije sačuvane dok uklanjaju izravne identifikatore.

Prilagođeni profili daju vam točnu kontrolu nad kojim se DICOM oznake mijenjaju i kako, omogućavajući usklađenost s vašim određenim politikama upravljanja podacima.

Razumijevanje Tag uzoraka i akcija

DICOM oznake su identificirane po skupinama i brojevima elemenata u formatu (GGGG,EEEE). Na primjer, ime pacijenta je (0010,0010) i pacijent ID je (010.0020). prilagođeni profili navode uzorke koji odgovaraju tim oznakama i akcijama koje se primjenjuju.

Dostupne akcije uključuju D (Delete) koji uklanja oznaku u potpunosti iz zbirke podataka, Z (Zero)** koji zamjenjuje vrijednost praznom ili nule dužine vrijednošću; X (Remove)* koji oduzima oznku ako je prisutna slična Slijedi; K (Keep) koji čuva izvornu vrijednosnost nepromijenjenu, C (Clean), koji očisti vrijednosti uklonjenjem identifikacijskih informacija kontekstualno, i **U (Replace with UID) ** koji se zamijenjuje novozgrađenim jedinstvenim identifikatorom.

Odabir pravog postupka ovisi o vašem slučaju korištenja. Koristite D ili X za oznake koje se nikada ne bi trebale pojaviti u anonimnom izdanju. Korištenje Z kada oznaka mora postojati, ali mora biti prazna. Učinite K za označavanje koje želite sačuvati točno.

Kreiranje prilagođenih profila

Prilagođeni profili mogu se definirati u tri formata. odaberite jedan koji najbolje odgovara vašem radnom toku.

CSV formata

CSV je najjednostavniji format, idealan za jednostavne profile:

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
(0008,103E);C
(0010,1010);K
(0010,1030);K

Ovaj profil nezaštićuje ime i ID pacijenta, uklanja datum rođenja, čuva spol i demografiju pacienta, zamjenjuje sve UID-ove, briše informacije o instituciji i čisti opise.

JSON formata

JSON pruža bolju strukturu za složene profile s metapodatima:

{
  "profileName": "Hospital Research Profile",
  "version": "1.0",
  "description": "Custom profile for research data sharing",
  "actions": [
    { "TagPattern": "(0010,0010)", "Action": "Z", "Comment": "Patient Name" },
    { "TagPattern": "(0010,0020)", "Action": "Z", "Comment": "Patient ID" },
    { "TagPattern": "(0010,0030)", "Action": "X", "Comment": "Birth Date" },
    { "TagPattern": "(0010,0040)", "Action": "K", "Comment": "Patient Sex" },
    { "TagPattern": "(0020,000D)", "Action": "U", "Comment": "Study Instance UID" },
    { "TagPattern": "(0020,000E)", "Action": "U", "Comment": "Series Instance UID" },
    { "TagPattern": "(0008,0018)", "Action": "U", "Comment": "SOP Instance UID" },
    { "TagPattern": "(0008,0080)", "Action": "D", "Comment": "Institution Name" },
    { "TagPattern": "(0008,0081)", "Action": "D", "Comment": "Institution Address" },
    { "TagPattern": "(0008,1030)", "Action": "C", "Comment": "Study Description" }
  ]
}

XML formata

XML je preferiran za okruženja s postojećim XML alatima:

<?xml version="1.0" encoding="utf-8"?>
<ConfidentialityProfile name="Hospital Research Profile" version="1.0">
  <Description>Custom profile for research data sharing</Description>
  <TagActions>
    <TagAction TagPattern="(0010,0010)" Action="Z">Patient Name</TagAction>
    <TagAction TagPattern="(0010,0020)" Action="Z">Patient ID</TagAction>
    <TagAction TagPattern="(0010,0030)" Action="X">Birth Date</TagAction>
    <TagAction TagPattern="(0010,0040)" Action="K">Patient Sex</TagAction>
    <TagAction TagPattern="(0020,000D)" Action="U">Study Instance UID</TagAction>
    <TagAction TagPattern="(0020,000E)" Action="U">Series Instance UID</TagAction>
    <TagAction TagPattern="(0008,0018)" Action="U">SOP Instance UID</TagAction>
    <TagAction TagPattern="(0008,0080)" Action="D">Institution Name</TagAction>
    <TagAction TagPattern="(0008,0081)" Action="D">Institution Address</TagAction>
    <TagAction TagPattern="(0008,1030)" Action="C">Study Description</TagAction>
  </TagActions>
</ConfidentialityProfile>

Preuzimanje prilagođenih profila u Kodu

Preuzimanje prilagođenih profila u aplikaciji .NET je jednostavno:

using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Anonymization;

// Load from CSV
ConfidentialityProfile csvProfile = ConfidentialityProfile.LoadFromCsvFile(
    "profiles/hospital_research.csv",
    ConfidentialityProfileOptions.All
);

// Load from JSON
ConfidentialityProfile jsonProfile = ConfidentialityProfile.LoadFromJsonFile(
    "profiles/hospital_research.json",
    ConfidentialityProfileOptions.All
);

// Load from XML
ConfidentialityProfile xmlProfile = ConfidentialityProfile.LoadFromXmlFile(
    "profiles/hospital_research.xml",
    ConfidentialityProfileOptions.All
);

// Create anonymizer with custom profile
Anonymizer anonymizer = new(csvProfile);

// Anonymize files
DicomFile dcm = DicomFile.Open("patient_study.dcm");
DicomFile anonymizedDcm = anonymizer.Anonymize(dcm);
anonymizedDcm.Save("anonymized_study.dcm");

Console.WriteLine("Anonymization completed with custom profile!");

Primjeri stvarnog svijeta scenarija

Sljedeći Članak: Interno osiguranje kvalitete

Održavanje informacija o instituciji i uređaju za unutarnje praćenje dok se anonimiziraju podaci o pacijentima:

TagPattern;Action
(0010,0010);Z
(0010,0020);Z
(0010,0030);X
(0008,0080);K
(0008,0081);K
(0008,1010);K
(0008,1090);K
(0018,1000);K

Scenarij 2: Zajedništvo u vanjskim istraživanjima

Maksimalna anonimnost sa zadržanom demografijom za studije stanovništva:

TagPattern;Action
(0010,0010);X
(0010,0020);X
(0010,0030);X
(0010,0040);K
(0010,1010);K
(0010,1020);K
(0010,1030);K
(0020,000D);U
(0020,000E);U
(0008,0018);U
(0008,0080);X
(0008,0081);X
(0008,1030);X
(0008,103E);X

Scenarij 3: Koordinacija multi-site studija

Zamijenite UID-ove dok održavate studijske odnose za povezivanje podataka:

TagPattern;Action
(0010,0010);Z
(0010,0020);Z
(0020,000D);U
(0020,000E);U
(0008,0018);U
(0008,0016);K
(0020,0010);K
(0020,0011);K
(0020,0013);K

Validacija i testiranje

Uvijek provjerite prilagođene profile prije lansiranja proizvodnje:

using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Anonymization;

string profilePath = "profiles/custom_profile.csv";
string testDataFolder = "test_samples";
string outputFolder = "validation_output";

// Load custom profile
ConfidentialityProfile profile = ConfidentialityProfile.LoadFromCsvFile(
    profilePath,
    ConfidentialityProfileOptions.All
);

Anonymizer anonymizer = new(profile);
Directory.CreateDirectory(outputFolder);

// Process test files
string[] testFiles = Directory.GetFiles(testDataFolder, "*.dcm");
int successCount = 0;
int failCount = 0;

foreach (string filePath in testFiles)
{
    try
    {
        DicomFile dcm = DicomFile.Open(filePath);
        DicomFile anonymized = anonymizer.Anonymize(dcm);
        
        string outputPath = Path.Combine(outputFolder, Path.GetFileName(filePath));
        anonymized.Save(outputPath);
        
        Console.WriteLine($"✓ {Path.GetFileName(filePath)}");
        successCount++;
    }
    catch (Exception ex)
    {
        Console.WriteLine($"✗ {Path.GetFileName(filePath)}: {ex.Message}");
        failCount++;
    }
}

Console.WriteLine($"\nValidation Summary:");
Console.WriteLine($"  Succeeded: {successCount}");
Console.WriteLine($"  Failed: {failCount}");
Console.WriteLine($"\nReview output files in: {outputFolder}");

Nakon provođenja validacije, otvorite anonimne datoteke u pregledniku DICOM-a i provjerite da su očekivane oznake ispravno izmijenjene, da se čuvaju zadržani oznaki, UID-ovi se pravilno zamjenjuju i da u čistim poljima ne ostaju nikakvi osjetljivi podaci.

Sljedeći Članak Konkluzija

Prilagođeni profili privatnosti omogućuju vam fleksibilnost u provedbi anonimnosti DICOM-a koja točno odgovara pravilima vaše institucije za privatnost. Bez obzira na to trebate li zadržati specifične identifikacijske podatke za unutarnju upotrebu, sačuvati demografiju za istraživanje ili primijeniti maksimalnu anonimaciju za vanjsko dijeljenje, prilagođene profile to omogućavaju.

Ključne preporuke uključuju dokumentaciju izbora profila u svrhu revizije, kontrolu verzije profilnih datoteka za praćenje promjena, temeljito ispitivanje profilova prije upotrebe proizvodnje i redovito pregledavanje profili kako se zahtjevi razvijaju.

Za više informacija o DICOM anonimnosti i Aspose.Medical API, posjetite dokumentacijaŠabloni za zajedničke profilne scenarije dostupni su u odjeljku primjera.

More in this category