Míg előre meghatározott DICOM PS3.15 titoktartási profilok fedezik sok használati eseteket, egészségügyi intézmények gyakran egyedülálló adatvédelmi követelményeket. Ebben az útmutatóban megtanulják, hogyan kell tervezni a személyre szabott dicom anonimizációs profilokat, amelyek összhangban vannak a szervezet sajátos politikájával.
Tartalmak táblája
- Miért van szükség egyéni profilokra
- Megértése Tag minták és intézkedések
- Egyéni profilok létrehozása
- Hozzáférhető profilok feltöltése kódban
- Valódi forgatókönyvek
- Validálás és tesztelés
- következtetések
Miért van szükség személyre szabott profilokra?
Az előre meghatározott titoktartási profilok szilárd alapot biztosítanak, de nem teljesítenek az összes intézményi követelményt. Szükséged lehet a személyre szabott profilokra, amikor a szervezetnek belső nyomonkövethetőség érdekében bizonyos intézményes azonosítókat kell tartania, miközben továbbra is névteleníti a páciens adatait. Néhány kutatási együttműködésnek meg kell őriznie egyes demográfiákat a közvetlen azonosítók eltávolításakor. A belső minőségbiztosítási munkafolyamatok olyan eszközinformációt igényelhetnek, amelyeket a szabványos profillák törölnének.
A személyre szabott profilok pontos ellenőrzést biztosítanak arról, hogy melyik DICOM címkék módosulnak, és hogyan, lehetővé téve az Ön konkrét adatkezelési politikájának betartását.
Megértése Tag minták és akciók
A DICOM címkéket a csoport és az elem számai azonosítják a formátumban (GGGG,EEEE). Például a beteg neve (0010,0010) és a páciens azonosítója ( 0010.0020).
A rendelkezésre álló intézkedések közé tartozik a D (Delete), amely teljesen eltávolítja a címkét az adatkészletből, **Z (Zero)**, ami helyettesíti az értéket egy üres vagy nulla hosszúságú értékkel, X (Remove), aki törli a jelölést, ha jelen van, hasonlóan a Delete-hez, *K (Keep), amely megőrzi az eredeti értéket változatlanul,**C (Clean).
A megfelelő lépés kiválasztása az Ön használati esetétől függ. Használja a D vagy X címkéket, amelyek soha nem jelennek meg névtelen kimenetelben. Helyezze a Z-t, amikor a címke létezik, de üresnek kell lennie. Ha a K címkeket pontosan szeretné megőrizni. A C-et a beépített azonosítókat tartalmazó szöveges mezőkhez használja.
Hozzon létre személyre szabott profilokat
A személyre szabott profilokat három formátumban lehet meghatározni. Válassza ki azt, amely a legjobban illeszkedik a munkafolyamathoz.
CSV formátum
A CSV a legegyszerűbb formátum, ideális az egyszerű profilokhoz:
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
Ez a profil zerozza a beteg nevét és azonosítóját, eltávolítja a születési dátumot, megtartja a páciens szexjét és demográfiáját, helyettesíti az összes UID-t, törli az intézmény információit, és tisztítja az leírásokat.
JSON formátum
A JSON jobb szerkezetet biztosít a komplex metaadat-profilok számára:
{
"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 formátum
Az XML a meglévő XML eszközökkel rendelkező környezetek számára előnyben részesül:
<?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>
Hozzáférhető profilok letöltése kódban
A .NET alkalmazásban használt profilok letöltése egyszerű:
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!");
Valódi forgatókönyv példái
1. forgatókönyv: belső minőségbiztosítás
Tartsa az intézmény és a készülék információit a belső nyomon követéshez, miközben névteleníti a páciens adatait:
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
2. forgatókönyv: Külső kutatási együttműködés
Maximális névtelenítés fenntartott demográfiával a népességvizsgálatokhoz:
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
3. forgatókönyv: Többoldalú tanulmányi koordináció
Változtassa ki az UID-eket, miközben megőrzi a tanulmányi kapcsolatokat az adatkapcsolathoz:
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
Validáció és tesztelés
Mindig érvényesítse a felhasznált profilokat a gyártás elindítása előtt:
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}");
Az érvényesítés futtatása után nyissa meg az anonimizált fájlokat a DICOM nézőn, és ellenőrizze, hogy a várt címkék megfelelően módosulnak, a megőrzött címkéket megtartják, az UID-eket helyesen helyettesítik és az érzékeny adatok nem maradnak tisztított mezőkben.
A következtetés
A személyre szabott adatvédelmi profilok rugalmasan alkalmazzák a DICOM névtelenítését, amely pontosan összhangban van az intézmény adatkezelési politikájával. függetlenül attól, hogy sajátos azonosítókat kell megőriznie belső felhasználásra, a demográfiát kutatás céljából meg kell őrizni, vagy a külső megosztáshoz maximális anonimizációt kell alkalmazni.
A kulcsfontosságú ajánlások közé tartozik a profilválasztás dokumentálása könyvvizsgálati célokra, a változások nyomon követésére szolgáló verziós profilfájlok ellenőrzése, profilok alaposan tesztelése a gyártás használatát megelőzően, és a követelmények fejlődésével rendszeresen felül kell vizsgálni a profilt.
További információkért a DICOM névtelenítéséről és az Aspose.Medical API-ról, látogasson el a DokumentációTemplomok a közös profil forgatókönyvek elérhetőek a példa szakaszban.
More in this category
- A DICOM Anonymizációs Microservice felépítése az ASP.NET Core rendszerben
- DICOM adatkészletek készítése AI és gépi tanuláshoz Aspose.Medical
- Miért fontos a DICOM névtelenítés a HIPAA és a GDPR számára a .NET munkafolyamatokban
- A DICOM metadatainak tárolása SQL és NoSQL adatbázisokban C# használatával
- DICOM Anonymizálás a Cloud PACS és a Teleradiology számára a C#-ban