CSV, JSON या XML से कस्टम DICOM Anonymization प्रोफ़ाइल कैसे बनाएं

CSV, JSON या XML से कस्टम DICOM Anonymization प्रोफ़ाइल कैसे बनाएं

यह ट्यूटोरियल दिखाता है कि सीएसवी, जेएसओएन, या एक्सएमएल फ़ाइलों का उपयोग करके कस्टम डीआईसीओएम एनीमेशन प्रोफाइल कैसे बनाए रखें C# में. अनुकूलित प्रोफ़ाइलें आपको यह निर्धारित करने की अनुमति देती हैं कि आपके संस्था की विशिष्ट गोपनीयता नीतियों के अनुसार कौन से टैग को हटा दिया जाना चाहिए, प्रतिस्थापित किया जाएगा या रखा जाएगा।

कस्टम प्रोफ़ाइल क्यों बनाते हैं?

पहले से परिभाषित DICOM PS3.15 प्रोफाइल सभी संस्थागत आवश्यकताओं को पूरा नहीं कर सकते हैं. अनुकूलित प्रोफ़ाइल आपको सक्षम बनाते हैं:

  • आंतरिक ट्रैकिंग के लिए विशिष्ट संस्थागत पहचानकर्ताओं को बनाए रखें
  • संगठन-विशिष्ट गोपनीयता नियम लागू करें
  • अपने क्षेत्र में अद्वितीय विनियमन आवश्यकताओं को पूरा करें

Tag कार्रवाई स्पष्टीकरण

निम्नलिखित कार्यों को DICOM टैग पर लागू किया जा सकता है:

ActionCodeDescription
DeleteDडेटा से टैग को पूरी तरह से हटा दें
ZeroZमूल्य को खाली या शून्य मूल्य के साथ प्रतिस्थापित करें
RemoveXयदि मौजूद है तो हटाएं (समान रूप से हटाने के लिए)
KeepKमूल मूल्य को अपरिवर्तित रखें
CleanCपहचान जानकारी हटाकर मूल्य को साफ करें
UID के साथ बदलेंUएक नए यूआईडी के साथ प्रतिस्थापित करें

आवश्यकताएँ: पर्यावरण को तैयार करन

  • Visual Studio या किसी भी संगत .NET IDE सेट कर.
  • एक नया .NET 8 एप्लिकेशन प्रोजेक्ट बनाएं।
  • NuGet Package Manager से Aspose.Medical स्थापित करें।
  • अपने कस्टम प्रोफाइल परिभाषा फ़ाइल तैयार करें।

कदम-दर-चरण प्रोफ़ाइल बनाने के लिए मार्गदर्शिका

चरण 1: Aspose.Medical स्थापित करें

NuGet का उपयोग करके अपने परियोजना में Aspose.Medical लाइब्रेरी जोड़ें।

Install-Package Aspose.Medical

चरण 2: एक CSV प्रोफ़ाइल परिभाषा बनाएं

टैग पैटर्न और कार्रवाई के साथ एक CSV फ़ाइल बनाएं. प्रत्येक पंक्ति एक टेग और इसके कार्य को निर्दिष्ट करती है.

** प्रोफ़ाइल.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=“कॉपी कोड”

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

इस प्रोफ़ाइल:

  • Zeros रोगी का नाम और आईडी
  • जन्म की तारीख हटाएँ
  • रोगी सेक्स के बारे में
  • अध्ययन, श्रृंखला और SOP इंस्टेंस यूआईडी को प्रतिस्थापित करें
  • संस्थान की जानकारी को हटा दें
  • साफ अध्ययन विवरण

चरण 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 फ़ाइल बनाएं।

  • प्रोफ़ाइल 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: कस्टम प्रोफ़ाइल लागू करें

लोड किए गए प्रोफाइल के साथ एक Anonymizer बनाएं और इसे DICOM फ़ाइलों पर लागू करें।

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

CSV प्रोफ़ाइल के साथ पूर्ण कोड उदाहरण

यहाँ एक पूर्ण उदाहरण है जो CSV-आधारित कस्टम प्रोफ़ाइल का उपयोग करता है:

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) जहां GGGG समूह है और EEEE hexadecimal में तत्व है. वैध कार्रवाई हैं: D, Z, X, K, C, U.

कस्टम प्रोफाइल के लिए सर्वश्रेष्ठ प्रथाएं

  • Version Control: समय के साथ परिवर्तनों को ट्रैक करने के लिए संस्करण नियंत्रण में प्रोफाइल फ़ाइलें संग्रहीत करें।
  • Documentation: टिप्पणियाँ जोड़ें और समझाएं कि प्रत्येक टैग के लिए विशिष्ट कार्रवाई क्यों चुनी गई थी।
  • Testing: DICOM फ़ाइलों के उत्पादन के लिए आवेदन करने से पहले परीक्षण डेटा के साथ प्रोफाइल सत्यापित करें।
  • बैकअप: हमेशा मूल प्रोफ़ाइल फ़ाइलें की प्रतिबिंब बनाए रखें।
  • ** समीक्षा**: यह सुनिश्चित करने के लिए कि वे अभी भी विनियमन आवश्यकताओं को पूरा करते हैं, नियमित रूप से प्रोफाइल की जांच करें।

अतिरिक्त जानकार

  • विभिन्न उपयोग मामलों (आंतरिक साझाकरण, बाहरी अनुसंधान, आदि) के लिए कई प्रोफाइल बनाने पर विचार करें।
  • एक दस्तावेज़ जिसका प्रोफ़ाइल ऑडिट के उद्देश्य से फ़ाइलें को अननाम करने के लिए इस्तेमाल किया गया था।
  • JSON और XML प्रारूप जटिल प्रोफाइलों के लिए बेहतर संरचना प्रदान करते हैं।

Conclusion

इस ट्यूटोरियल ने दिखाया है कि कैसे कस्टम डीआईसीओएम एनीमेशन प्रोफाइल बनाने के लिए CSV, JSON, या XML फ़ाइलों का उपयोग करके C# में Aspose.Medical के साथ।

 हिंदी