اس مضمون میں، جانیں کہ ہماری ٹیم نے طبی امیجنگ AI کے لیے رازداری کے تحفظ کی تربیت اور توثیق کا ڈیٹا تیار کرنے کے لیے کس طرح مصنوعی PHI جنریشن پائپ لائن بنائی۔
مسئلہ
ایک AI نظام بنانے کا تصور کریں جو طبی تصاویر سے مریض کی معلومات کو ہٹاتا ہے۔
اس ماڈل کے لیے ہزاروں مثالیں درکار ہیں کہ کہاں اور کیا محفوظ صحت کی معلومات (PHI) ظاہر ہوتی ہیں۔ آپ جتنی زیادہ مثالیں دیکھیں گے، اتنا ہی بہتر آپ حساس معلومات کو تلاش اور ہٹا سکیں گے۔
لیکن ایک مسئلہ ہے۔
ماڈل کو تربیت دینے کے لیے درکار ڈیٹا وہی ڈیٹا ہے جو آزادانہ طور پر شیئر نہیں کیا جا سکتا۔
صحت کی دیکھ بھال کرنے والی تنظیموں کو مریضوں کی ذاتی معلومات کی حفاظت کرنی چاہیے۔ HIPAA جیسے ضوابط کے مطابق تحقیق، AI ڈیولپمنٹ، یا بیرونی تعاون کے لیے طبی تصاویر کا اشتراک کرنے سے پہلے مریض کے شناخت کنندگان کو ہٹا دیا جانا چاہیے۔
یہ انجینئرنگ کا ایک دلچسپ چیلنج ہے۔ اگر آپ اس نظام کو تربیت دینے کے لیے درکار ڈیٹا آسانی سے دستیاب نہیں ہے تو آپ ڈی-آئیڈینٹیفکیشن سسٹم کیسے بناتے اور اس کی جانچ کرتے ہیں؟
ایک عملی حل ہے۔ مصنوعی پی ایچ آئی۔
اس آرٹیکل میں، ہم آپ کو دکھائیں گے کہ مصنوعی PHI کیوں اہم ہے، طبی امیجز کے اندر چھپے PHI کے مسائل کی وضاحت کریں، اور ہماری ٹیم نے مکمل طور پر کنٹرول شدہ مصنوعی مریض کی معلومات کا استعمال کرتے ہوئے فوٹو ریئلسٹک الٹراساؤنڈ ڈیٹاسیٹس تیار کرنے کے لیے بنائی گئی پائپ لائن پر چلیں۔
آپ اس ٹیوٹوریل میں کیا سیکھیں گے۔
اس ٹیوٹوریل کو مکمل کرنے کے بعد، آپ سمجھ جائیں گے:
-
طبی امیجنگ ڈیٹا میں چھپے ہوئے PHI مسائل
-
کیوں مصنوعی PHI صحت کی دیکھ بھال کے AI نظاموں کی تعمیر اور جانچ کے لیے مفید ہے۔
-
Python اور Faker کا استعمال کرتے ہوئے حقیقت پسندانہ مصنوعی مریض کی شناخت کیسے بنائی جائے۔
-
تصویری پکسلز اور DICOM میٹا ڈیٹا میں PHI کیسے لگائیں۔
-
AI ماڈلز کی تربیت اور تشخیص کے لیے زمینی سچائی کے لیبل کیسے بنائے جائیں۔
-
ڈاؤن اسٹریم ورک فلو میں استعمال کرنے سے پہلے مصنوعی طبی امیجنگ ڈیٹاسیٹس کی توثیق کیسے کی جائے۔
ہم کیا احاطہ کریں گے:
ماخذ تصویر: OpenPOCUS
مصنوعی PHI جنریشن OpenPOCUS کے POCUS (Point-of-care Pulmonary Ultrasound) فریموں کا استعمال کرتی ہے، POCUS کمیونٹی کی طرف سے تعاون کردہ حقیقی الٹراساؤنڈ تصاویر کا ایک کھلا لائسنس یافتہ مجموعہ۔
ان تصاویر میں کوئی حقیقی PHI شامل نہیں ہے۔ OpenPOCUS مریض کی رازداری کے خدشات سے گریز کرتے ہوئے طبی اعتبار سے قائل کرنے والی الٹراساؤنڈ تصاویر فراہم کرتا ہے۔ یہ مصنوعی PHI بنانے کے لیے ایک مثالی بنیاد بناتا ہے کیونکہ آپ مریض کی اصل معلومات کو ظاہر کرنے کے خطرے کے بغیر شناخت کنندگان کو بنانے اور ٹریک کرنے پر پوری توجہ مرکوز کر سکتے ہیں۔
آئس برگ کا مسئلہ: زیادہ تر PHI پوشیدہ ہے۔
جب لوگ طبی امیجز میں PHI کے بارے میں سوچتے ہیں، تو وہ عام طور پر مرئی ٹیکسٹ اوورلیز کے بارے میں سوچتے ہیں۔
ان میں شامل ہیں:
Patient name
Medical Record Number (MRN)
Date of birth
Study date
یہ شناخت کنندگان اکثر الٹراساؤنڈ، ایکس رے، سی ٹی، اور ایم آر آئی سسٹم کے ذریعے براہ راست تصویری پکسلز میں پکائے جاتے ہیں۔
لیکن مرئی متن صرف آئس برگ کا سرہ ہے۔ باقی زیادہ تر PHI DICOM ہیڈر کے اندر ہے، میٹا ڈیٹا فیلڈز کا ایک مجموعہ جو تصویر اور مطالعہ کی وضاحت کرتا ہے۔ ان فیلڈز میں درج ذیل شناخت کنندگان شامل ہیں: PatientName، PatientID، StudyDate، institution namesاور دیگر حساس معلومات۔
جلے ہوئے متن کے برعکس، تصویر کو دیکھتے وقت ہیڈر PHI نظر نہیں آتا، لیکن فائل کے ساتھ سفر کرتا ہے اور گمنامی کے دوران اسے ہٹانا بھی ضروری ہے۔
غیر شناختی نظام کو دونوں کو ہینڈل کرنا چاہئے۔
DICOM میٹا ڈیٹا کے اندر PHI کو چھوڑنا اور مرئی متن کو ہٹانا اب بھی رازداری کے خطرات لاحق ہے۔ اسی طرح، امیج پکسل میں مریض کا نام چھوڑنا اور میٹا ڈیٹا کو ہٹانا بھی اتنا ہی مسئلہ ہے۔
یہ پوشیدہ PHI مسائل پہلے سے ظاہر ہونے والے سافٹ ویئر کی شناخت کو ختم کرنے سے کہیں زیادہ مشکل بنا دیتے ہیں۔
مصنوعی PHI کیوں اہم ہے۔
پہلی نظر میں، ایسا لگتا ہے کہ ہسپتالوں کے پاس پہلے سے ہی حقیقی دنیا کا بہت سا ڈیٹا دستیاب ہے۔ تو کیوں نہ صرف اسے استعمال کریں؟
جواب تین چیلنجوں پر آتا ہے:
ٹاسک 1: ذاتی معلومات کے تحفظ کے ضوابط
طبی تصاویر میں اکثر مریض کی شناخت کرنے والے شامل ہوتے ہیں۔
محفوظ طبی ماحول سے باہر ان تصاویر کا اشتراک اہم قانونی اور تعمیل کے خطرات کا باعث بنتا ہے۔
جیسے جیسے زیادہ ادارے شرکت کرتے ہیں، حکمرانی زیادہ مشکل ہوتی جاتی ہے۔
چیلنج 2: پیمانے پر تشریح
جدید AI سسٹمز کو لیبل شدہ مثالوں کی ضرورت ہوتی ہے۔
کسی کو شناخت کرنے کی ضرورت ہے:
ان تشریحات کو دستی طور پر بنانا مہنگا اور وقت طلب ہے۔
چیلنج 3: تصدیق
فرض کریں کہ آپ ایک گمنام ٹول کا جائزہ لے رہے ہیں۔ میں کیسے جان سکتا ہوں کہ آیا تمام شناخت کنندگان کو کامیابی سے ہٹا دیا گیا ہے؟
حقیقی دنیا کے مریضوں کے ڈیٹا کے ساتھ، یہ جاننا اکثر مشکل ہوتا ہے کہ PHI کا ہر ٹکڑا کہاں ہے۔ حقائق کے بغیر، درستگی کی پیمائش کرنا مشکل ہو جاتا ہے۔
مصنوعی PHI تینوں مسائل کو حل کرتا ہے۔
ایک حقیقی مریض شناخت کنندہ کے ساتھ شروع کرنے کے بجائے، حقیقت پسندانہ جعلی شناخت بنائی جا سکتی ہے اور جان بوجھ کر طبی تصاویر میں ڈالی جا سکتی ہے۔
پائپ لائن خود PHI تیار کرتی ہے، لہذا آپ درج ذیل کو جانتے ہیں:
-
کوئی بھی شناخت کنندہ قدر
-
ہر پکسل کا مقام
-
تمام DICOM ٹیگز
-
تمام متوقع پیداوار
یہ ہمیں مکمل زمینی سچائی فراہم کرتا ہے۔
اب معروضی طور پر شناخت کے نظام کا جائزہ لینا ممکن ہے۔ اگر کسی مریض کا نام پروسیسنگ کے بعد باقی رہ جائے تو اسے ناکامی سمجھا جاتا ہے۔ ہم یہ بھی جانتے ہیں کہ آیا طبی مواد غلطی سے ہٹا دیا گیا ہے۔
مصنوعی PHI رازداری کو محفوظ رکھنے والے ڈیٹا سیٹ بناتا ہے جن کو استعمال کیا جا سکتا ہے:
مصنوعی PHI پائپ لائن کی تعمیر
اس مسئلے کو دریافت کرنے کے لیے، ہماری ٹیم نے پھیپھڑوں کے پوائنٹ آف کیئر الٹراساؤنڈ (POCUS) امیجز کے لیے مصنوعی PHI بنانے کے لیے ایک پائپ لائن بنائی۔
مقاصد یہ ہیں:
-
الٹراساؤنڈ تصویر کے ساتھ شروع کریں جس میں مریض کی کوئی معلومات نہ ہو۔
-
حقیقت پسندانہ مصنوعی مریض کی شناخت بنائیں۔
-
PHI کو تصویری پکسلز میں برن کریں۔
-
DICOM میٹا ڈیٹا میں مماثل PHI داخل کریں۔
-
خودکار طور پر درست جواب کے لیبل تیار کرتا ہے۔
-
نتیجے میں DICOM فائل کی توثیق کریں۔
آؤٹ پٹ میں مریض کی اصل معلومات شامل نہیں ہوتی، لیکن ڈی-آئیڈینٹیفیکیشن سسٹم کے نقطہ نظر سے حقیقت پسندانہ دکھائی دیتی ہے۔
پائپ لائن فن تعمیر
ورک فلو مندرجہ ذیل ہے (ہم ذیل میں ہر قدم کو تفصیل سے دیکھیں گے):

ہر قدم ایسے نمونے تیار کرتا ہے جو اگلے مرحلے میں استعمال ہوتے ہیں۔ غلطیوں کو خود بخود نظر انداز کرنے کے بجائے الگ تھلگ کیا جاتا ہے۔
بیکنگ سے پہلے سیفٹی چیک کریں۔
کسی تصویر پر مصنوعی PHI لکھنے سے پہلے، پائپ لائن اس بات کو یقینی بنانے کے لیے حفاظتی جانچ کرتی ہے کہ PHI داخل کرنے کے لیے منتخب کیا گیا علاقہ الٹراسونک پین سے باہر ہے۔
پھیپھڑوں کی POCUS تصویر کا اوپری بائیں کونا عام طور پر امیجنگ پین سے باہر ہوتا ہے اور طبی مواد کو تاریک سرحد کے ساتھ دھندلا کیے بغیر PHI کو جلانے کے لیے محفوظ ہے۔
اس بات کو یقینی بنانے کے لیے کہ یہ خطہ تمام امیجز کے لیے اچھی حالت میں ہے، پائپ لائن فی تصویر دو چیک کرتی ہے۔
-
چمک چیک کریں: اگر کسی تعمیر شدہ امیج ایریا کی اوسط شدت حد سے بڑھ جاتی ہے، تو امکان ہے کہ یہ علاقہ تاریک بارڈر کی بجائے الٹراساؤنڈ پنکھے سے اوورلیپ ہو جائے۔
-
حدود چیک کریں: پائپ لائن اس بات کو یقینی بناتی ہے کہ ترتیب شدہ بیک ایریا تصویر کے اندر پوری طرح فٹ بیٹھتا ہے۔ متوقع تصویری رقبے سے چھوٹی تصاویر الگ تھلگ ہیں۔
دونوں صورتوں میں، تصویر مینی فیسٹ میں درج وجہ کے ساتھ الگ تھلگ ہے۔ کوئی جزوی جلنا نہیں ہے، کوئی کلینکل اوور رائٹنگ نہیں ہے، اور ٹیسٹ کے ڈیٹا میں کوئی خودکار کرپٹ نہیں ہے۔
یہ مصنوعی شناخت کنندگان کو حادثاتی طور پر جسمانی ساخت کو دھندلا دینے سے روکتا ہے۔
def burn_region_is_safe(arr):
"""Check the burn region is dark enough to be outside the fan."""
h, w = arr.shape
y2 = min(BURN_REGION_Y + BURN_REGION_H, h)
x2 = min(BURN_REGION_X + BURN_REGION_W, w)
region = arr[BURN_REGION_Y:y2, BURN_REGION_X:x2]
if region.size == 0:
return False, float("nan")
mean = float(region.mean())
return mean <= BRIGHTNESS_SKIP_THRESHOLD, mean
یہ فنکشن تعمیر شدہ امیج ایریا کو نکالتا ہے اور اوسط چمک کا حساب لگاتا ہے۔ اگر کوئی علاقہ بہت زیادہ روشن ہے، تو اس کے الٹراسونک پنکھے کو باؤنڈری کے بجائے اوورلیپ کرنے کا امکان ہے۔
مرحلہ 1: مصنوعی مریض کی شناخت بنائیں
مصنوعی شناخت فیکر کے ذریعہ تیار کی جاتی ہے اور ہر معاملے کی بنیاد پر سیڈ کیا جاتا ہے، لہذا ایک ہی تصویر ہمیشہ ایک ہی جعلی مریض کو تیار کرتی ہے۔
تعیینیت مندرجہ ذیل وجوہات کی بنا پر اہم ہے:
-
ٹیسٹ کے نتائج کو دوبارہ پیش کرنے کے لیے، آپ کو ٹیسٹ کے ڈیٹا کو دوبارہ پیش کرنا چاہیے۔
-
جب ان پٹ رنز کے درمیان تبدیل نہیں ہوتا ہے تو ڈاؤن اسٹریم ٹولز کو ڈیبگ کرنا آسان ہوتا ہے۔
-
شناخت نہ کرنے والے دو ٹولز کا موازنہ کرنے کے لیے ضروری ہے کہ دونوں ایک ہی لگائے گئے PHI کی شناخت کریں۔
def case_seed(global_seed: int, source_id: str) -> int:
"""Per-image deterministic seed derived from global seed and source path."""
h = hashlib.sha256(f"{global_seed}|{source_id}".encode()).hexdigest()
return int(h[:8], 16)
def generate_phi(seed: int) -> dict:
fake = Faker()
Faker.seed(seed)
rng = random.Random(seed)
last = fake.last_name()
first = fake.first_name()
middle = fake.random_letter().upper()
mrn = f"{rng.randint(1000000, 9999999)}"
dob = fake.date_of_birth(minimum_age=18, maximum_age=95)
study_date = fake.date_time_this_decade()
institution = rng.choice(INSTITUTION_POOL)
return {
"case_uuid": f"SYNTH-{uuid.UUID(int=rng.getrandbits(128))}",
"patient_name_display": f"{last}, {first} {middle}.",
"patient_name_dicom": f"{last}^{first}^{middle}", # DICOM PN VR format
"patient_id": mrn,
"dob": dob,
"study_date": study_date,
"institution_name": institution,
}
کہ case_seed() فنکشن سورس امیج پاتھ سے ایک فیصلہ کن بیج تیار کرتا ہے۔ اس بیج کو فیکر ایک مصنوعی ID بنانے کے لیے استعمال کرتا ہے۔
بیج دہرایا جا سکتا ہے، اس لیے ایک ہی ان پٹ امیج کو ہمیشہ وہی مصنوعی مریض کی معلومات ملتی ہے۔ یہ دوبارہ پیدا کرنے کے قابل ڈیبگنگ اور بینچ مارکنگ کی اجازت دیتا ہے۔
مرحلہ 2: PHI کو تصویری پکسلز میں برن کریں۔
تصاویر میں ٹیکسٹ پیش کرنا نسبتاً مہنگا ہے۔ 30 سے زیادہ فریموں پر مشتمل ایک واحد علاقے کے لیے، اس آپریشن کو فی فریم دہرانا فضول ہے۔
اس کے بجائے، پائپ لائن PHI اوورلے کو ایک بار فی خطہ ایک شفاف کینوس پر پیش کرتی ہے۔ یہ اس بات کی عکاسی کرتا ہے کہ کتنے الٹراساؤنڈ سسٹم اصل میں کام کرتے ہیں۔ یہاں، مریض کی معلومات کو طے کیا جاتا ہے، جبکہ تصویر کا بنیادی مواد فریم سے فریم میں تبدیل ہوتا ہے۔
def make_phi_overlay(shape, phi):
"""Render PHI ONCE onto a canvas. Returns (overlay_array, overlays_meta)."""
h, w = shape
canvas = Image.new("L", (w, h), 0) # blank canvas
draw = ImageDraw.Draw(canvas)
overlays, x, y = [], BURN_REGION_X, BURN_REGION_Y
for entry in _phi_text_block(phi):
x0, y0, x1, y1 = draw.textbbox((x, y), entry["line"], font=FONT)
tw, th = x1 - x0, y1 - y0
if x + tw > w or y + th > h:
raise ValueError(
f"rendered PHI overflows image: '{entry['line']}' "
f"at ({x},{y}) size ({tw}x{th}), image {w}x{h}"
)
draw.text((x, y), entry["line"], font=FONT, fill=TEXT_COLOR)
overlays.append({
"phi_category": entry["phi_category"],
"rendered_text": entry["line"],
"phi_value": entry["value"],
"bbox": [x, y, tw, th],
"dicom_tag": entry["dicom_tag"],
})
y += th + LINE_GAP
return np.array(canvas), overlays
کہ make_phi_overlay() فنکشن ایک خالی کینوس بناتا ہے اور ہر PHI لائن کو اس کینوس پر پیش کرتا ہے۔ ایک ہی وقت میں، یہ میٹا ڈیٹا ریکارڈ کرتا ہے جیسے کہ رینڈرڈ ٹیکسٹ، باؤنڈنگ باکس کوآرڈینیٹس، اور متعلقہ DICOM ٹیگز۔
یہ فنکشن امیج اوورلے اور تشریحی میٹا ڈیٹا دونوں کو واپس کرتا ہے تاکہ یہ یقینی بنایا جا سکے کہ اصل ہمیشہ اس پکسل سے میل کھاتا ہے جو اصل میں کھینچا گیا تھا۔
ایک بار پیش کرنے اور اوورلیز کو دوبارہ استعمال کرنے کے کئی فوائد ہیں:
-
تیز تر پروسیسنگ
-
فریموں میں مسلسل PHI پلیسمنٹ
-
آسان زمینی سچائی نسل
-
حقیقی الٹراسونک آلات کے ساتھ رویہ زیادہ مطابقت رکھتا ہے۔
ایک اضافی فائدہ یہ ہے کہ پائپ لائن خود بخود تمام بیکڈ شناخت کنندگان کے مقام کو ریکارڈ کرتی ہے۔
DICOM معیار سنیمیٹک الٹراساؤنڈ لوپس کی نمائندگی کرنے کے دو طریقوں کی حمایت کرتا ہے: سنگل فریم DICOMs کا ایک سلسلہ جو UIDs کے سیٹ کا اشتراک کرتا ہے، یا ایک واحد ملٹی فریم DICOM جو پکسل ڈیٹا کے ساتھ تمام فریموں کو ایک ساتھ رکھتا ہے۔
پائپ لائن مندرجہ ذیل وجوہات کی بنا پر ملٹی فریم اپروچ استعمال کرتی ہے۔
-
یہ اس سے مطابقت رکھتا ہے کہ حقیقی الٹراساؤنڈ آلات کس طرح سین لوپس بناتے ہیں۔
-
ایک ہیڈر تمام فریموں کو سنبھالتا ہے، لہذا مریض کے میٹا ڈیٹا کی کوئی نقل نہیں ہے۔
-
اسٹوریج اور ٹرانسمیشن زیادہ موثر ہیں۔
ds.PatientName = phi["patient_name_dicom"]
ds.PatientID = deid_patient_id
ds.PatientBirthDate = phi["dob"].strftime("%Y%m%d")
ds.StudyInstanceUID = study_uid
ds.StudyDate = phi["study_date"].strftime("%Y%m%d")
ds.InstitutionName = phi["institution_name"]
یہ فیلڈز DICOM ہیڈر کو اسی جامع ID کے ساتھ آباد کرتے ہیں جو امیج اوورلے میں استعمال ہوتا ہے۔ یہ مرئی PHI اور پوشیدہ میٹا ڈیٹا کی مستقل مزاجی کو یقینی بناتا ہے، حقیقت پسندانہ ٹیسٹ ڈیٹا تخلیق کرتا ہے۔
کچھ تفصیلات جو DICOM معیار نافذ کرتا ہے لیکن تفصیلات میں واضح نہیں ہیں:
-
StudyIDمطلوبہ اور ایک مختصر تار ہونا چاہیے جو اسے اس سے ممتاز کرتی ہے:StudyInstanceUID. بھولنا آسان ہے۔ -
ImageTypeیہ موجود ہونا چاہیے۔["DERIVED", "SECONDARY"]یہ مصنوعی ڈیٹا کی دیانت دار اقدار ہیں کیونکہ وہ ڈیوائس سے حاصل نہیں کی گئیں۔ -
Manufacturerیہ عام آلات کے IOD ماڈیول کا حصہ ہے اور اگر ڈیٹا کی ترکیب کی جاتی ہے تو اس کی بھی ضرورت ہوتی ہے۔ واضح طور پر ترکیب شدہ قدر پر سیٹ کریں (SYNTHETIC-DEID-TUTORIAL) اپنے ذرائع کو واضح کریں۔

مرحلہ 4: شناختی نقشہ سازی: غیر شناخت شدہ مریض کی شناخت
بہاو کی تشخیص کی حمایت کرنے کے لیے، ہر سورس مریض کو ایک مستحکم شناخت کنندہ ملتا ہے: DEID-0001. فائلوں کی نقشہ سازی سورس مریضوں، مصنوعی مطالعات، اور تیار کردہ DICOM اشیاء کو جوڑتی ہے۔ یہ تشخیص کنندہ کو ڈی آئیڈینٹیفیکیشن ٹول کے آؤٹ پٹ کا اصل حقیقت سے موازنہ کرنے کی اجازت دیتا ہے۔
source_patient,deid_patient_id,study_instance_uid
patient_001,DEID-0001,1.2.826.0.1.3680043.8.498.1234...
patient_002,DEID-0002,1.2.826.0.1.3680043.8.498.5678...
مرحلہ 5: زمینی سچائی: سٹرکچرڈ CSV آؤٹ پٹ
مصنوعی PHI کے اہم فوائد میں سے ایک خودکار لیبل جنریشن ہے۔ پائپ لائن تمام شناخت کنندگان کو تیار کرتی ہے، اس لیے ہم متن کی قدروں، باؤنڈنگ باکس کوآرڈینیٹس، اور متعلقہ DICOM ٹیگز کو پہلے سے ہی جانتے ہیں۔
یہ تشریحات ایک منظم CSV فائل میں برآمد کی جاتی ہیں اور تربیت اور تشخیص کے لیے استعمال ہونے والا اصل مواد بن جاتی ہیں۔
def build_overlay_rows(*, case_uuid, sop_instance_uid, source_id, source_relpath, output_dicom_relpath, overlays,
image_shape):
h, w = image_shape
rows = []
for ov in overlays:
x, y, ow, oh = ov["bbox"]
rows.append({
"case_uuid": case_uuid,
"sop_instance_uid": sop_instance_uid,
"source_id": source_id,
"source_relpath": source_relpath,
"output_dicom_relpath": output_dicom_relpath,
"image_h": h,
"image_w": w,
"region": "top_left_banner",
"phi_category": ov["phi_category"],
"phi_value": ov["phi_value"],
"rendered_text": ov["rendered_text"],
"bbox_x": x, "bbox_y": y,
"bbox_w": ow, "bbox_h": oh,
"dicom_tag": ov["dicom_tag"],
"seed": SEED,
"pipeline_version": PIPELINE_VERSION,
"run_id": RUN_ID,
})
return rows
build_overlay_rows فنکشن ہر اوورلے کو سٹرکچرڈ میٹا ڈیٹا کی قطار میں تبدیل کرتا ہے۔ متن اور باؤنڈنگ باکس کوآرڈینیٹ کے ساتھ شناخت کنندگان اور تولیدی صلاحیت کی معلومات، جیسے پائپ لائن ورژن اور بے ترتیب بیج کو ریکارڈ کرتا ہے۔
یہ CSV فائلیں شناخت نہ کرنے کے نظام کی تربیت اور جانچ کی بنیاد کے طور پر کام کرتی ہیں۔
دوڑ کے اختتام پر، جمع شدہ قطاروں کو غیر شناخت شدہ مریض ID کے ذریعے گروپ کیا جاتا ہے اور مریض کے لیے مخصوص CSV فائل میں لکھا جاتا ہے۔ ہر مریض کے فولڈر کو اپنا فولڈر ملتا ہے۔ phi_overlays.csv مریض کے تمام شعبوں کا احاطہ کرتا ہے، run_manifest.csv زون کی سطح کی حیثیت (پروسیس شدہ، قرنطینہ شدہ، ناکام) اور راستوں کا خلاصہ کرتا ہے۔
مصنوعی DICOM فائلیں صرف اس صورت میں کارآمد ہیں جب وہ حقیقت میں DICOM معیار کے مطابق ہوں۔ بصورت دیگر، ڈاؤن اسٹریم ٹولز جو انہیں استعمال کرتے ہیں وہ ناکام ہو جائیں گے یا بدتر، خاموشی سے انہیں غلط طریقے سے سنبھال لیں گے۔
پائپ لائن تین درجے کی تصدیقی سلسلہ کا استعمال کرتی ہے جہاں ماحول میں دستیاب چیزوں کے لحاظ سے کارکردگی قدم بہ قدم گرتی ہے۔
-
dciodvfydicom3tools سے: ڈیوڈ کلونی کے ذریعہ سب سے سخت معیارات کے موافقت چیکر۔ پائپ کی تنصیب ممکن نہیں ہے۔ DICOM IOD کی مکمل تعریف دیکھیں۔ جب میں دستیاب ہو۔PATHیہ ترجیحی امتحان ہے۔ -
dicom-validatorCLI: پائپ کی تنصیب ممکن ہے۔ پہلی بار، یہ DICOM معیاری تعریفیں ڈاؤن لوڈ کرتا ہے اور پھر IOD کی تعمیل کی جانچ کرتا ہے۔ یہ استعمال کیا جاتا ہے جبdciodvfyدستیاب نہیں۔ -
pydicomدوبارہ پڑھیں: کم سے کم متبادل۔ آپ تمام فائلوں کو دوبارہ کھول سکتے ہیں اور ڈی کوڈ کر سکتے ہیں اور اس بات کو یقینی بنا سکتے ہیں کہ پکسل ڈیٹا کو صحیح طریقے سے راؤنڈ ٹرپ کیا گیا ہے۔ اگرچہ یہ معیارات کی تعمیل کی تصدیق نہیں کرتا، لیکن اس میں سنگین بدعنوانی پکڑی جاتی ہے۔
حیران کن بگ: MONAI بمقابلہ PIL
اصل میں، ہم نے MONAI کو استعمال کرنے کا منصوبہ بنایا، جو کہ میڈیکل امیجنگ ورک فلو میں بڑے پیمانے پر استعمال ہوتا ہے، امیج لوڈنگ کے لیے۔
ہمیں جانچ کے دوران ایک مسئلہ ملا۔ جب ڈاؤن اسٹریم کوڈ روایتی تصویری ترتیب کو فرض کرتا ہے، تو MONAI کے امیج لوڈنگ کے قوانین غیر مربع تصاویر کو گھمائے ہوئے ظاہر ہونے کا سبب بنتے ہیں۔
ایک ہی وقت میں، بہت سی الٹراساؤنڈ تصاویر میں EXIF اورینٹیشن میٹا ڈیٹا موجود تھا جس میں اصلاح کی ضرورت تھی۔
PIL پر جانے سے دونوں مسائل حل ہو گئے۔
from PIL import Image, ImageOps
img = Image.open(path)
img = ImageOps.exif_transpose(img)
حتمی خیالات
مصنوعی PHI حقیقی دنیا کی جانچ کی جگہ نہیں لیتا، لیکن یہ صحت کی دیکھ بھال کرنے والی AI ٹیموں کو ایسی چیز دیتا ہے جو ان کے پاس شاذ و نادر ہی ہوتا ہے: ایک محفوظ، قابل اشتراک، مکمل طور پر لیبل لگا ڈیٹاسیٹ معلوم جوابات کے ساتھ۔
حقیقت پسندانہ شناخت کنندگان بنا کر اور انہیں امیج پکسلز اور DICOM میٹا ڈیٹا میں شامل کر کے، ہم مریض کے اصل ڈیٹا کو سامنے لائے بغیر ڈی-آئیڈینٹیفکیشن سسٹمز کے لیے قابل تولید بینچ مارک بنا سکتے ہیں۔
چونکہ AI سسٹمز صحت کی دیکھ بھال کی حساس معلومات کو سنبھالنے کے لیے تیزی سے ذمہ دار ہوتے جاتے ہیں، مصنوعی PHI قابل اعتماد صحت کی دیکھ بھال کے AI ورک فلو کی تعمیر کے لیے سب سے اہم ٹولز میں سے ایک بن سکتا ہے۔
مکمل نفاذ MONAI الٹراساؤنڈ ورکنگ گروپ ریپوزٹری میں Jupyter نوٹ بک کے طور پر دستیاب ہے۔ آپ نوٹ بک کو تلاش کر سکتے ہیں اور خود پائپ لائن کے ساتھ تجربہ کر سکتے ہیں۔
یہ جانچنے کا سب سے محفوظ طریقہ کہ آیا کوئی سسٹم PHI کو ہٹا سکتا ہے اسے خود بنانا ہے۔