Како креирати прилагођени профил за анонимизацију ДИКОМ-а из ЦСВ, ЈСОН или КСМЛ
Овај туториал показује како да креирате прилагођене профиле ДИКОМ анонимности користећи ЦСВ, ЈСОН или КСМЛ датотеке у Ц#. Прилагођени профили вам омогућавају да тачно дефинишете које ознаке треба уклонити, заменити или задржати у складу са специфичним политикама приватности ваше институције.
Зашто креирати персонализоване профиле?
Предефинисани ДИЦОМ ПС3.15 профили можда не одговарају свим институционалним захтевима.
- Одржавање специфичних институционалних идентификатора за унутрашњу праћеност
- Применити организационо-специфичне правила приватности
- Успостављање јединствених регулаторних захтева у вашој надлежности
Tag akcije objašnjeno
Следеће акције се могу применити на ознаке ДИКОМ-а:
| Action | Code | Опис |
|---|---|---|
| Delete | D | Уклоните ознаку у потпуности из сета података |
| Zero | Z | Замените вредност празном или нуленом вредношћу |
| Remove | X | Уклоните ако постоји (слично као уклонити) |
| Keep | K | Сачувајте оригиналну вредност непромењеном |
| Clean | C | Чишћење вредности уклањањем идентификационе информације |
| Замена за УИД | U | Замена новог генерисаног УИД-а |
Принципи: Припрема за животну средину
- Инсталирајте Visual Studio или било који компатибилан .NET IDE.
- Креирање новог .NET 8 апликационог пројекта конзоле.
- Инсталирајте Aspose.Medical из менаџера пакета NuGet.
- Припремите свој прилагођени профил дефиниција датотеке.
Корак по корак водич за креирање прилагођених профила
Корак 1: Инсталирајте Aspose.Medical
Додајте Аппосе.Медицинска библиотека у свој пројекат користећи НуГет.
Install-Package Aspose.MedicalКорак 2: Успостављање дефиниције ЦСВ профила
Креирајте ЦСВ датотеку са означним обрасцима и акцијама. свака линија одређује ознаку и његову акцију.
- Профил. цсв :*
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=“Копирање кода”
<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>
Овај профил:
- Име и идентификација пацијента ЗЕРОС-а
- Уклоните датум рођења
- Пацијентски секс
- Замена студије, серије и СОП инстанце УИД-а
- Избрисање институционалне информације
- Чисти опис студије
Корак 3: Креирање дефиниције JSON профила (алтернативна)
Креирајте JSON датотеку са истим дефиницијама ознака.
- Профил .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" }
]Корак 4: Креирање дефиниције КСМЛ профила (алтернатива)
Креирајте КСМЛ датотеку са истим дефиницијама ознака.
- Профил .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>Корак 5: Преузмите прилагођени профил
Преузмите прилагођени профил користећи одговарајућу методу за ваш формат датотеке.
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
);Корак 6: Применити прилагођени профил
Креирајте Анонимизатор са преузетим профилом и примените га на ДИКОМ датотеке.
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");Потпуни пример кода са ЦСВ профилом
Ево комплетног примера користећи прилагођени профил заснован на ЦСВ-у:
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!");Примери практичног сценарија
Сценарио 1: задржати ИД институције за унутрашње праћење
TagPattern;Action
(0010,0010);Z
(0010,0020);Z
(0008,0080);K
(0008,0081);KСценарио 2: Замена свих УИД-а док се одржавају односи
TagPattern;Action
(0020,000D);U
(0020,000E);U
(0008,0018);U
(0008,0016);KСценарио 3: Максимална приватност за спољну дељење
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);XВалидација: Тестирање вашег персонализованог профила
Увек валидирајте прилагођене профиле пре употребе производње:
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
Инвалид датотеке Пут
Ако се профил не може наћи:
string profilePath = "profile.csv";
if (!File.Exists(profilePath))
{
Console.WriteLine($"Profile file not found: {profilePath}");
return;
}Инвалид Таг образац или акција
Обезбедите ознаке обрасца следећи формат (GGGG,EEEE) gde je GGGG grupa i EEEE je element u hexadecimal. Validna akcija su: D, Z, X, K, C, U.
Најбоља пракса за прилагођене профиле
- Версион Контрол: Складиштете датотеке профила у контролу верзије како бисте пратили промене током времена.
- Документација: Додајте коментаре који објашњавају зашто су одређене акције изабране за сваку ознаку.
- Тестирање: Валидирајте профиле са тестовим подацима пре него што се пријавите за производњу ДИКОМ датотека.
- Backup: Uvek sačuvajte kopiju originalnih profila.
- ** Преглед**: периодично прегледати профиле како би се осигурало да они и даље испуњавају регулаторне захтеве.
Додатне информације
- Размотрите стварање више профила за различите случајеве коришћења (унутрашње дељење, спољне истраживања, итд.).
- Документ чији је профил коришћен приликом анонимизације датотека у сврху ревизије.
- JSON и XML формати пружају бољу структуру за сложене профиле са нежним дефиницијама.
Закључак
Овај туториал је показао како да креирате прилагођене ДИЦОМ анонимне профиле користећи ЦСВ, ЈСОН, или КСМЛ датотеке у Ц# са Асписе.Медицински.