Док претходно дефинисани профили приватности ДИЦОМ ПС3.15 покривају многе случајеве коришћења, здравствене институције често имају јединствени захтеви за приватност. У овом водичу ћете сазнати како да дизајнирате прилагођене профиле анонимизације ДИСОМА који се уклапају са специфичним политикама ваше организације. Ми ћемо покрити ознаке обрасци, акције и пружити шаблоне у ЦСВ, ЈСОН и КСМЛ форматима.

Табела садржаја

Зашто је потребан прилагођен профил {#зашто-прилагођени профили-неопходно}

Предефинисани профили приватности пружају чврсту основу, али они можда не одговарају свим институционалним захтевима. Можда ће вам требати прилагођене профиле када ваша организација захтева задржавање одређених институцијалних идентификатора за унутрашњу праћеност док и даље анонимизирају податке о пацијентима. Неке истраживачке сарадње могу захтевати одређену демографију која се чува док се уклањају директне идентитете.

Прилагођени профили вам дају прецизну контролу над којим се ДИЦОМ ознакама модификују и како, омогућавајући поштовање ваших специфичних политика управљања подацима.

Разумевање Таг обрасци и акције

DICOM ознаке се идентификују по бројевима групе и елемената у формату (GGGG,EEEE). На пример, име пацијента је (0010,0010) и идентификатор пацијената је (010.0020). Прилагођени профили одређују обрасци који одговарају овим ознакама и акцијама које треба применити.

Доступне акције укључују D (Delete) који уклања ознаку у потпуности из сета података, Z (Zero)** који замењује вредност празном или нуле дужине вредношћу; X (Remove)* који укида етикету ако је присутан сличан Delete, K (Keep) који чува оригиналну вриједност непромењена; C (Clean), који чисти вредноста уклаштањем идентификационе информације контекстуално, и **U (Замена УИД-ом), који замени ново генерисаним јединственим Идентификатором.

Изаберите праву акцију зависи од вашег коришћења. Користите Д или Кс за ознаке које се никада не би требало појавити у анонимном излазу. Користите З када ознака мора да постоји, али треба да буде празна. користите К за тегове које желите да сачувате тачно. користите Ц за текстуалне поље које могу садржи уграђене идентификаторе.

Креирање прилагођених профила

Прилагођени профили се могу дефинисати у три формата. изаберите један који најбоље одговара вашем радном току.

ЦСВ формат

ЦСВ је најједноставнији формат, идеалан за једноставне профиле:

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

Овај профил нурује име и идентификацију пацијента, уклања датум рођења, чува сексуалне и демографске информације пацијената, замењује све УИД-а, избрише институционалну информацију и чисти описе.

JSON формат

JSON пружа бољу структуру за сложене профиле са метаданима:

{
  "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 формат

XML је префериран за окружења са постојећим XML алатима:

<?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>

Преузимање прилагођених профила у Коду

Преузимање прилагођених профила у вашој .NET апликацији је једноставно:

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!");

Примери реалног света сценарија

Сценарио 1: Унутрашње осигурање квалитета

Чувајте информације о институцији и уређају за унутрашње праћење док анонимизујете податке о пацијентима:

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: Спољна истраживачка сарадња

Максимална анонимност са задржаним демографијама за проучавање популације:

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: Координација мулти-сајт студије

Замените УИД-а док сачувате студијске односе за повезивање података:

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

Валидација и тестирање

Увек валидирајте прилагођене профиле пре увођења производње:

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}");

Након завршетка валидације, отворите анонимне датотеке у ДИЦОМ прегледачу и проверите да су очекивани ознаке исправно модификовани, задржани ознаци се чувају, УИД се правилно замењују, а никакви осетљиви подаци не остају у чистим пољима.

Закључак {# закључак}

Прилагођени профили приватности дају вам флексибилност за имплементацију анонимности ДИЦОМ-а која тачно одговара политици ваше институције за приватност. Без обзира да ли је потребно задржати специфичне идентификаторе за унутрашњу употребу, сачувати демографију за истраживање, или применити максималну анонимизацију за спољну дељење, прилагођене профиле то омогућавају.

Кључне препоруке укључују документирање избора вашег профила за сврхе ревизије, контролу верзије профилних датотека за праћење промена, темељно тестирати профиле пре употребе производње, и периодично прегледати профіле док се захтеви развијају.

За више информација о ДИЦОМ анонимности и АСПОЗЕ.Медицински АПИ, посетите ДокументацијаШаблони за уобичајене профилне сценарије доступни су у одељку примера.

More in this category