مریضوں کی ڈیٹابیس بنائیں

گزشتہ دس پندرہ سالوں میں میری والدہ کے متعدد سرجیکل آپریشنز ہوئے ہیں۔ پچھلے سال جب ان کے پتے کا آپریشن ہوا تو گھر کے دیگر افراد کی طرح میں نے بھی اپنی باری کے تحت ہسپتال میں ان کے ساتھ وقت گزارا۔ جس ہسپتال میں وہ زیر علاج تھیں ان کا انتظام مناسب اور قابل قبول تھا لیکن ہسپتال کا نظم کمپیوٹرائزڈ نہیں تھا اور مریضوں کے تمام ریکارڈز روایتی طریقے سے رجسٹروں پر درج کیے جا رہے تھے۔ یہ دیکھ کر میں سوچ رہا تھا کہ اگر مریض کے علاج کی تمام سرگرمیاں کمپیوٹرائزڈ ہو جائیں تو اس کا بہت فائدہ ہو سکتا ہے۔ اگر ڈاکٹر کو مریض کی ہسٹری رپورٹ مل جائے کہ مریض کو اس سے پہلے کونسے طبی مسائل پیش آئے، ان مسائل کی تشخیص کے لیے کونسے چیک اپس اور ٹیسٹس کیے گئے، علاج کے دوران کونسی پیچیدگیاں پیش آئیں، اور بالآخر مریض کا وہ طبی مسئلہ کیسے حل کیا گیا۔ ڈاکٹر کے لیے مریض کی یہ میڈیکل ہسٹری رپورٹ بہت مفید ثابت ہو سکتی ہے۔

چنانچہ اسی وقت میں نے ارادہ کیا کہ مجھے ایک ایسے سسٹم پر کام کرنے کی کوشش ضرور کرنی چاہیے جو خاص طور پر پاکستانی ہسپتالوں اور کلینکس کو فائدہ پہنچا سکے۔ میں نے اس کوشش کے پہلے مرحلے میں ایک ڈیٹابیس تیار کی ہے جو مریضوں کے ایسے سافٹ ویئر سسٹم کی بنیاد ثابت ہو سکتی ہے۔ یہ ڈیٹابیس بہت سادہ ہے، اس کا Flow اسی ترتیب پر ہے جس ترتیب پر مریض کو اپنے علاج کے دوران مختلف مراحل سے گزرنا ہوتا ہے۔ لیکن یہ ڈیٹابیس میرے ذاتی مشاہدات کا نتیجہ ہے، چونکہ میں نے صرف ایک ہسپتال کا انتظام دیکھا ہے، اس لیے میں نے اپنے اندازے کے مطابق یہ ڈیٹابیس تیار کی ہے۔ اسے مؤثر بنانے کے لیے یقیناً‌ مجھے کسی ایسے ڈاکٹر کی مدد حاصل کرنا ہوگی جو ہسپتال کے انتظامات بھی سمجھتے ہوں۔ جب اس ڈیٹابیس کو بنیاد بنا کر سافٹ ویئر ایپلی کیشن تیار کی جائے گی تو اس ڈیٹابیس میں حسب ضرورت تبدیلیاں کی جائیں گی، جیسا کہ عموماً‌ سافٹ ویئر ڈیویلپمنٹ میں ہوتا ہے۔

یہ ڈیٹابیس اس طرح سے تیار کی گئی ہے کہ اسے ایک سے زیادہ ہسپتال اور کلینکس استعمال کر سکتے ہیں۔ مثلاً‌ اگر کسی ادارے کے ایک سے زیادہ ہسپتال ملک یا دنیا کے مختلف حصوں میں موجود ہیں تو ان سب کے ریکارڈز ایک ہی ڈیٹابیس میں محفوظ کیے جا سکتے ہیں۔ یوں کسی بھی مریض کا مکمل ریکارڈ ان تمام ہسپتالوں کے سسٹم میں دستیاب ہوگا۔ لیکن اس کے لیے ضروری ہے کہ اس ڈیٹابیس کو بنیاد بناتے ہوئے ایک ویب ایپلی کیشن بنائی جائے کیونکہ ویب ایپلی کیشن کو بذریعہ انٹرنیٹ کئی افراد بیک وقت استعمال کر سکتے ہیں۔ ڈیٹابیس میں فی الحال Finance کے متعلق ٹیبلز شامل نہیں کیے گئے جن کی مدد سے ہسپتال اپنی آمدن اور اخراجات کا حساب رکھ سکے۔ بہرحال ابھی یہ ابتدائی نوعیت کا کام ہے، مجھے موقع ملا تو ان شاء اللہ اس پر مزید کام کروں گا۔


یہ ڈیٹابیس کیسے استعمال کی جائے گی؟

پہلے درج ذیل ڈایا گرام دیکھیں جس میں ڈیٹابیس ٹیبلز کے صرف نام دکھائے گئے ہیں۔ اس سے آپ کو ڈیٹابیس کے ٹیبلز کے درمیان Relationshipsسمجھنے میں مدد ملے گی۔

ڈایا گرام ۔ مریضوں کی ڈیٹابیس کے ٹیبلز

اس ڈیٹابیس کی بنیاد پر جو سافٹ ویئر ایپلی کیشن بنائی جائے گی وہ درج ذیل طریقے سے کام کرے گی:

  1. جب مریض پہلی دفعہ ہسپتال یا کلینک جائے گا تو اس کی رجسٹریشن ہوگی۔ اس رجسٹریشن کی معلومات ڈیٹابیس کے patients ٹیبل میں محفوظ ہوں گی۔
  2. پھر اس مریض کا ایک کیس بنایا جائے گا جس کی معلومات cases ٹیبل میں محفوظ ہوں گی۔
  3. اب اس کیس کے تحت مختلف اوقات میں:
    • مریض کے مختلف چیک اپس ہوں گے جن کی معلومات checkups ٹیبل میں تاریخ وار محفوظ ہوں گی۔
    • مریض کے مختلف ٹیسٹس ہوں گے جن کی معلومات tests ٹیبل میں تاریخ وار محفوظ ہوں گی۔
    • چیک اپس اور ٹیسٹس کے نتیجے میں مریض کے مختلف مسائل کا پتہ چلایا جائے گا جن کی معلومات problems ٹیبل میں تاریخ وار محفوظ ہوں گی۔
    • مریض کے ان طبی مسائل کے جو علاج کیے جائیں گے ان کی معلومات treatments ٹیبل میں محفوظ ہوں گی۔
    • اور اگر مریض کو علاج کی غرض سے ہسپتال میں داخل کیا گیا ہے تو اس کی معلومات wards ٹیبل میں محفوظ ہوں گی۔
    • اور جب مریض کا علاج مکمل ہو جائے گا تو یہ کیس کلوز ہو جائے گا۔
  4. کچھ مہینوں یا سالوں کے بعد اگلی دفعہ جب مریض کو کوئی مسئلہ درپیش ہوگا تو اس ہسپتال یا کلینک میں مریض کی پہلے سے رجسٹریشن موجود ہوگی۔ اسی رجسٹریشن کے تحت ایک نئے کیس کا آغاز کیا جائے گا۔ اب پھر اسی ترتیب سے مریض کا مکمل علاج ہوگا۔ میرے خیال میں اگر اس موقع پر ڈاکٹرز کو پچھلے کیس کے تحت ہونے والی تمام سرگرمیوں کی رپورٹ مل جائے تو یقیناً‌ انہیں مریض کی حالت سمجھنے میں مدد ملے گی۔ یہی اس ڈیٹابیس کی بنیاد پر بننے والے سافٹ ویئر کا اصل مقصد ہے۔ اس کے علاوہ سافٹ ویئر کے تحت مریض کا ڈیٹا مختلف قسم کی رپورٹس کے تحت دستیاب ہوگا جسے مختلف مقاصد کے لیے استعمال کیا جا سکے گا۔ نیز ہسپتال کا نظم کمپیوٹرائزڈ ہونے کی وجہ سے ہسپتال کے انتظامی معاملات تیز رفتاری اور آسانی کے ساتھ پایہ تکمیل تک پہنچیں گے۔
  5. ڈیٹابیس میں patients کے ذیلی ٹیبل کے طور پر ایک allergies ٹیبل بھی موجود ہے۔ مختلف کیسز میں مریض کی جو الرجیز دریافت ہوں گی وہ اس ٹیبل میں محفوظ کی جائیں گی۔ کوئی بھی ڈاکٹر جب اس مریض کا پہلی دفعہ چیک اپ کرے گا تو مریض کی الرجیز رپورٹ اس کے لیے مددگار ثابت ہو سکتی ہے۔


تفصیلی ڈایا گرام

درج ذیل ڈایا گرام میں ڈیٹابیس کے ہر ٹیبل کی فیلڈز دیکھی جا سکتی ہیں۔ اس سے آپ یہ جان سکتے ہیں کہ کون سے ٹیبل میں کس قسم کا ڈیٹا محفوظ ہوگا۔ ڈایا گرام میں درج ذیل چیزیں وضاحت طلب ہیں:

  • key سے شروع ہونے والی فیلڈز مختلف ٹیبلز کے درمیان Relationships کے لیے استعمال ہو رہی ہیں۔ Parent ٹیبل میں یہ Primary key ہوگی جبکہ Child ٹیبل میں یہ Foreign key ہوگی۔ ایسی کچھ فیلڈز جن کے لیے Foreign keys ڈیفائن نہیں کی گئیں ان کا مقصد بھی یہی ہے کہ Parent ٹیبل کے ساتھ ان ریکارڈز کا تعلق قائم رکھا جا سکے۔
    ڈیٹابیس کی پرفارمنس بہتر رکھنے کے لیے یہ بھی کیا جا سکتا ہے کہ ٹیبلز کے درمیان یہ Relationships نہ بنائے جائیں تاکہ ڈیٹابیس کو Referential integrity قائم رکھنے کے لیے اضافی کام نہ کرنا پڑے۔ایسی صورت میں پھر ساری ذمہ داری ایپلی کیشن پر آجاتی ہےکہ وہ احتیاط کے ساتھ ان ٹیبلز میں ڈیٹا محفوظ کر کے یہ Relationships خود قائم کرے۔
  • پرائمری کیز اور فارن کیز والی فیلڈز کی ڈیٹا ٹائپ INT رکھی گئی ہے۔ Fee فیلڈز کی ڈیٹا ٹائپ FLOAT رکھی گئی ہے۔ محدود آپشنز والی فیلڈز مثلاً‌ Gender کی ڈیٹا ٹائپ TINYINT رکھی گئی ہے۔ زیادہ تر تاریخ والی فیلڈز کی ڈیٹا ٹائپ TIMESTAMP رکھی گئی ہے، مثلاً‌ مریض کا چیک اپ کس دن اور کس وقت کیا گیا، اس ڈیٹا ٹائپ کی مدد سے تاریخ اور وقت دونوں محفوظ کیے جاتے ہیں۔ جن فیلڈز میں وقت محفوظ کرنے کی ضرورت نہیں ہے، مثلاً‌ تاریخ پیدائش کی فیلڈ، ان کی ڈیٹا ٹائپ DATE رکھی گئی ہے۔ اس کے علاوہ تقریباً‌ تمام فیلڈز کی ڈیٹا ٹائپ VARCHAR ہے اور ان کی ڈیٹا محفوظ کرنے کی گنجائش حسب ضرورت رکھی گئی ہے۔ یہ ڈیٹابیس میں نے MySQL میں بنائی ہے لیکن اس کا ماڈل سامنے رکھتے ہوئے اسے کسی بھی ڈیٹابیس سسٹم میں بنایا جا سکتا ہے۔
  • فی الحال پرائمری کیز اور فارن کیز والے کالمز کے لیے سنگل کالم انڈیکسز ڈیفائن کی گئی ہیں۔ لیکن ایپلی کیشن کی تیاری کے وقت ڈیٹابیس کی Search صلاحیت کو تیز رفتار بنانے کے لیے دیگر مطلوبہ فیلڈز کے لیے بھی سنگل کالم یا ملٹی کالم انڈیکسز ڈیفائن کی جا سکتی ہیں۔
  • ہسپتال کے ریکارڈز کے لیے مرکزی ٹیبل hospitals ہے، جبکہ اس کا ذیلی ٹیبل staff ہسپتال کے ملازمین کے لیے ہے جس میں ڈاکٹرز، نرسز اور دیگر اسٹاف کے ریکارڈز محفوظ ہوں گے۔ hospitals ٹیبل کے اس کے علاوہ جو ذیلی ٹیبلز ہیں وہ سیٹنگز کے لیے ہیں۔ مثلاً‌ checkup_types ٹیبل میں ان تمام چیک اپس کے نام محفوظ ہوں گے جن کی سہولت اس ہسپتال میں میسر ہے۔ جب اسٹاف ممبر کسی مریض کے چیک اپ کا اندراج کرے گا تو اس چیک اپ کا نام خود لکھنے کی بجائے checkup_types ٹیبل میں پہلے سے موجود ویلیوز میں سے ایک ویلیو منتخب کر لے گا۔ یوں ایپلی کیشن کی رپورٹس میں نظر آنے والے ناموں میں Consistency رہے گی۔
    لیکن اس میں ایک مسئلہ یہ ہے کہ ہر ہسپتال جب اپنی طرف سے سیٹنگز کے ٹیبلز کے لیے ویلیوز مہیا کرے گا تو ڈیٹابیس میں بہت سی غیر ضروری (Redundant) ویلیوز محفوظ ہو جائیں گی، یعنی ایک ہی ویلیو مختلف ہسپتالوں کی سیٹنگز کے تحت کئی دفعہ ڈیٹابیس میں موجود ہوگی۔ اس کا حل یہ ہے کہ تمام ضروری ویلیوز سافٹ ویئر کی طرف سے فراہم کر دی جائیں اور کسی نئی ویلیو کی ضرورت ہو تو اس کے لیے سافٹ ویئر کے ایڈمن ڈیپارٹمنٹ سے رابطہ کیا جائے، یا پھر ہسپتال کی طرف سے نئی ویلیو شامل کرنے کی سہولت دے دی جائے۔

ڈایا گرام ۔ مریضوں کی ڈیٹابیس کے ٹیبلز اور ان کی فیلڈز