Chatbot: Covid fighter | চ্যাটবটঃ কোভিড ফাইটার

করোনাভাইরাসের প্রকোপ কমাতে সামাজিক দূরত্ব মেনে চলার গুরুত্ব অপরিসীম।সামাজিক দূরত্ব মানার প্রচেষ্টাতেই চিকিৎসাক্ষেত্র এখন অনেকটাই নির্ভর হয়ে পড়েছে টেলিমেডিসিন এবং ই-হেলথ প্রযুক্তিনির্ভর।

একটু জ্বর বা কাশি-সর্দি হলেই মনের মধ্যে আতংক “আমার আবার করোনা হয়নি তো?” বাড়ির কাছের ডাক্তারও এখন আর চেম্বারে বসছেন না। আগ বাড়িয়ে কোনো ডাক্তার না দেখিয়েই কি চলে যাব করোনা পরীক্ষা করাতে? তা-ও তো সহজ নয়।

ডাক্তারের রেকমেন্ডেশন ছাড়া অনেক জায়গায় নমুনা দেওয়াই সম্ভব না। আবার কোনো কোনো জায়গায় নমুনা বুথের সামনে এত্তো ভিড় যে ওখানে দাঁড়ালে করোনা না থাকলেও হয়ে যেতে পারে।

এই অবস্থায় ডাক্তারি পরামর্শের জন্য টেলিমেডিসিনই ভরসা। এই কারণে টেলিমেডিসিন সংশ্লিষ্ট কর্মীরাও অক্লান্ত পরিশ্রম করছেন দিনরাত।

কিছু কিছু ক্ষেত্রে মানুষের বদলে কম্পিউটার প্রোগ্রামের ব্যবহার টেলিহেলথের সাথে সংশ্লিষ্ট প্রতিষ্ঠানগুলোর কাজ সহজ করে দিতে পারে। যেমনঃ ধরা যাক, চ্যাটবট।

বর্তমানে ই-কমার্স ওয়েবসাইটগুলোতে আমরা চ্যাটবটের ব্যবহার দেখি। ওয়েবসাইটের চ্যাট অপশনে ক্লিক করলে প্রথমে এই বটগুলোই ক্রেতাদের বিভিন্ন প্রশ্নের উত্তর দেয়। যেমন ক্রেতা কিভাবে অর্ডার করবেন, কিভাবে টাকা দেবেন, কোনো নির্দিষ্ট পণ্য স্টকে আছে কি না ইত্যাদি।

এমন কোনো প্রশ্ন যার উত্তর বটের জানা নেই, সেগুলোর উত্তর দেবার জন্য বটগুলো একজন হিউম্যান এজেন্টকে নক করে ফলে ক্রেতা তখন একজন মানুষের সাথেই চ্যাটিং করার সুযোগ পান। এতে ওয়েবসাইটের কর্মীদের অনেক সময়ই বেঁচে যায়।

ই-হেলথ ওয়েবসাইটের ক্ষেত্রেও এমন বট ব্যবহার করা সুবিধাজনক। চ্যাটবট ব্যবহার করলে সাধারন কিছু প্রশ্নের উত্তর বটের মাধ্যমেই রোগীকে প্রদান করা সম্ভব হবে।

শুধু তা-ই নয়, চ্যাটবটের কাছ থেকে কাঙ্ক্ষিত উত্তর না পেলে একজন রোগী যাতে ডাক্তারের সাথে চ্যাটিং বা ভিডিও কনফারেন্সের মাধ্যমে পরামর্শ পেতে পারেন সেই ব্যবস্থাও একটি চ্যাট বটকে দিয়েই করিয়ে নেওয়া সম্ভব।

আমরা এই টিউটোরিয়ালে এমনই একটি চ্যাটবট তৈরী করব। চ্যাটবটটি রোগীর সাথে আলাপচারিতার মাধ্যমে কিছু প্রশ্নের উত্তর জানতে চাইবে। প্রশ্নগুলো করোনাভাইরাসের লক্ষণ জানার জন্য। যেমন রোগীর জ্বর আছে কি না, থাকলে কত ডিগ্রী, কতদিন ধরে, কাশি-সর্দি আছে কিনা,রোগীর বয়স, লিঙ্গ, ভ্রমনের ইতিহাস ইত্যাদি। এই সকল প্রশ্নের উত্তরের উপর ভিত্তি করে বটটি রোগীকে পরামর্শ দেবে।

আগেই বলে রাখা ভালো, এইরকম চ্যাটবটের উদ্দেশ্য রোগ নির্ণয় করা নয়। বরং রোগীর রিস্ক ফ্যাক্টরগুলো বিশ্লেষন করে তাকে সঠিক পরামর্শ দেওয়া।

যেহেতু এটি শুধুই একটি প্রোগ্রাম স্ক্রিপ্ট, সেহেতু, এটি শুধু প্রশ্ন-উত্তরের মাধ্যমে পাওয়া তথ্য অনুযায়ী পরামর্শ দিতে সক্ষম। কোনো একটি পরিপূর্ণ সিস্টেমের সাথে ইন্টিগ্রেট করা সম্ভব হলে এই বটটিকেই আরেকটু মডিফাই করে রোগীর চাহিদা অনুযায়ী ডাক্তারের সাথে চ্যাট কিংবা ভিডিও কনফারেন্সে যুক্ত করার মতো কাজে লাগানো যাবে।

প্রোগ্রামঃ

চ্যাট বটটির প্রোগ্রাম লেখা হয়েছে Python 3 ল্যাঙ্গুয়েজে। প্রোগ্রামটি রান করতে হলে আপনার কম্পিউটারে অবশ্যই Python 3 IDLE install করা থাকতে হবে।

এটা রাসবেরি পাইতে রান করা খুব সহজ। কারন, রাসবেরি পাইতে Python 3 ইন্সটল করাই থাকে।

যদি রাসবেরি পাই না থাকে আবার পিসি কিংবা ল্যাপটপেও না থাকে তাহলে যেকোনো ভালো অনলাইন কম্পাইলারেও প্রোগ্রামটি রান করতে পারেন।

print ("Hello,I am covid fighter. What is your name?")
name= input()
print ("How old are you?")
age= int(input())
print("Are you a male or female?")
gender=input()
gender=gender.lower()

print ("OK "+ name + ", now answer the following questions in Yes or No.")
print ("Do you have fever?")
feveryn=input()
feveryn=feveryn.lower()

if (feveryn=='yes'):
    print ("How many degree fahrenheit?")
    feverdegree=int(input())
    if(feverdegree>102):
        print("That is quite a high temperature.")



    print ("For how many days? Please write the number only.")
    feverdays=int(input())
    print ("Have you taken any medicine? If so, please mention the name.")
    medicine=input()
elif (feveryn=='no'):

    feverdegree=int(0)
    feverdays=int(0)



else:
    while(1):
        print("Please answer in yes or no.")
        feveryn=input()
        feveryn=feveryn.lower()
        if(feveryn=='yes'or feveryn=='no'):
            break

    if (feveryn=='yes'):
        print ("How many degrees?")
        feverdegree=int(input())
        if(feverdegree>102):
            print("That is quite a high temperature.")
        print ("For how many days? Please write the number only.")
        feverdays=int(input())
        print ("Have you taken any medicine? If so, please mention the name.")
        medicine=input()


    elif (feveryn=='no'):
        feverdegree=int(0)
        feverdays=int(0)






print ("Do you have cough and/or sore throat?")
coughyn=input()
coughyn=coughyn.lower()
while(coughyn!='yes'and coughyn!='no'):
    print("Please answer in yes or no.")
    coughyn=input()
    coughyn=coughyn.lower()
    if(coughyn=='yes'or coughyn=='no'):
        break





print ("Do you have runny nose?")
runnyyn=input()
runnyyn=runnyyn.lower()
while(runnyyn!='yes'and runnyyn!='no'):
    print("Please answer in yes or no.")
    runnyyn=input()
    runnyyn=runnyyn.lower()
    if(runnyyn=='yes'or runnyyn=='no'):
        break

print ("Do you have breathing difficulties?")
breathingyn=input()
breathingyn=breathingyn.lower()
while(breathingyn!='yes'and breathingyn!='no'):
    print("Please answer in yes or no.")
    breathingyn=input()
    breathingyn=breathingyn.lower()
    if(breathingyn=='yes'or breathingyn=='no'):
        break
print ("Can you smell everything well?")
smellyn=input()
smellyn=smellyn.lower()
while(smellyn!='yes'and smellyn!='no'):
    print("Please answer in yes or no.")
    smellyn=input()
    smellyn=smellyn.lower()
    if(smellyn=='yes'or smellyn=='no'):
        break


print ("Can you taste foods without any abnormality?")
tasteyn=input()
tasteyn=tasteyn.lower()
while(tasteyn!='yes'and tasteyn!='no'):
    print("Please answer in yes or no.")
    tasteyn=input()
    tasteyn=tasteyn.lower()
    if(tasteyn=='yes'or tasteyn=='no'):
        break


print("Have you travelled recently to/from any other country or city?")
travelyn=input()
travelyn=travelyn.lower()
while(travelyn!='yes'and travelyn!='no'):
    print("Please answer in yes or no.")
    travelyn=input()
    travelyn=travelyn.lower()
    if(travelyn=='yes'or travelyn=='no'):
        break

print ("Did any of your family members come back home after travelling anywhere?")

travelyn2=input()
travelyn2=travelyn2.lower()

while(travelyn2!='yes'and travelyn2!='no'):
    print("Please answer in yes or no.")
    travelyn2=input()
    travelyn2=travelyn2.lower()
    if(travelyn2=='yes'or travelyn2=='no'):
        break
if(gender=='male'):
    print("I am sorry to ask such a personal question but it is important.")
    print("Can you feel any pain or swelling in your scrotum?")
    swelling=input()
    swelling=swelling.lower()
    while(swelling!='yes'and swelling!='no'):
        print("Please answer in yes or no")
        swelling=input()
        swelling=swelling.lower()
        if(swelling=='yes'or swelling=='no'):
            break
if(gender!='male'):

     swelling='no'


if(swelling=='yes'):
    print ("Many Covid patients have complained about scrotal swelling and pain. I think you must pay attention to this issue")
if(feveryn=='no' and coughyn=='yes' and runnyyn=='no' and breathingyn=='no' and smellyn=='yes' and tasteyn=='yes'):
    print ("May be it is a normal cough. Try home remedies like honey,lemon & hot water drink,licorice etc.")
    print("If anything serious occurs like continuous coughing for hours or breathing difficulty, contact a doctor soon.")
if(breathingyn=='yes'):
    print ("Try to manage an oxymeter and measure your oxygen saturation. Below 95% is an emergency and needs medical attention.")
if(feveryn=='yes'and feverdegree<102 and feverdays<4 and swelling=='no'):
    print("If the temperature goes higher and persists after 3 days, please consult a doctor for COVID-19 test recommendation.")
if(feveryn=='yes'and feverdegree<102 and feverdays>=4 and swelling=='no'):
    print("please consult a doctor for COVID-19 test recommendation.")


if(feveryn=='yes'and feverdegree>102 and feverdays<5):
    print("Considering your very high temperature, I suggest you to contact a doctor immidiately. Testing for both Coronavirus and dengue may be needed.")
    print("Unless prescribed by a doctor, do not take antibiotic. Use paracetamol supositary if your fever is 103 or above.")
if(feveryn=='no' and coughyn=='no' and runnyyn=='yes' and breathingyn=='no' and smellyn=='yes' and tasteyn=='yes' ):


    print("It can happen due to seasonal cold or alergy. But no one is beyond suspition now. Isolate yourself as much as possible and wear mask when you really need to interact with others.")
if(feveryn=='no' and coughyn=='yes' and runnyyn=='yes' and breathingyn=='no' and tasteyn=='yes' ):


    print("It can happen due to seasonal cold or alergy. But no one is beyond suspition now. Isolate yourself as much as possible and wear mask when you really need to interact with others.")

if( feveryn=='yes'and feverdegree>=102 and feverdays>=5):
    print ("Well, I can see your fever is for quite a long time.You would better go for a COVID-19 test.")
if(feveryn=='yes' and coughyn=='yes' and runnyyn=='yes' and breathingyn=='yes' and feverdays<=3 and smellyn=='yes' and tasteyn=='yes' and feverdegree<=102):
    print ("Hmm, all these symptoms are quite similar to coronavirus.But this can be normal flue also. If the fever persists after 3 days, please go for a covid-19 test.")
if(feveryn=='yes' and coughyn=='yes' and runnyyn=='yes' and breathingyn=='yes' and feverdays>=4 and smellyn=='yes' and tasteyn=='yes' ):
    print ("Hmm, all these symptoms are quite similar to coronavirus.please go for a covid-19 test.")
if(feveryn=='yes' and coughyn=='no' and runnyyn=='no' and breathingyn=='no' and feverdegree<=102 and feverdays<=3 and smellyn=='yes' and tasteyn=='yes' and swelling=='no' ):
    print ("Since there is no other symptoms than fever, if the fever persists after 3 days, please go for a covid-19 test.")

if(feveryn=='yes' and coughyn=='no' and runnyyn=='no' and breathingyn=='no' and feverdegree<=102 and feverdays<=3 and smellyn=='yes' and tasteyn=='yes' and swelling=='yes' ):
    print ("Please consult a doctor and tell all the symptoms.")
if(feveryn=='yes' and coughyn=='yes' and runnyyn=='yes' and breathingyn=='no' and feverdegree<=102 and feverdays<=3 and smellyn=='yes' and tasteyn=='yes'and swelling=='no'):
    print ("Since there is no other symptoms than fever and cold I think It is not an emergency, if the fever persists after 3 days, please go for a covid-19 test.")
if(feveryn=='yes' and coughyn=='yes' and runnyyn=='yes' and breathingyn=='no' and feverdegree<=102 and feverdays<=3 and smellyn=='yes' and tasteyn=='yes'and swelling=='yes'):
    print ("Please consult a doctor.")

if(feveryn=='yes' and coughyn=='yes' and runnyyn=='no' and breathingyn=='no' and feverdegree<=102 and feverdays<=3 and smellyn=='yes' and tasteyn=='yes'and swelling=='yes'):
    print ("Please consult a doctor and tell these symptoms.")

if(travelyn=='yes' or  travelyn2 =='yes'):
    print("I believe the travel history that you have provided has enough reasons to be afraid of. Even if you have no symptoms, you are at risk.")

if(smellyn=='no' and tasteyn =='no'):
    print("Difficulty in smelling and tasting are prominents symptoms. I think you should go for a COVID -19 test.")


if(smellyn =='no'and tasteyn =='yes' ):
    print ("Loss of smelling sense is a  very prominent symptom. If you cannot smell anything even when you do not have runny nose, I think you should go for a COVID -19 test.")
if(tasteyn=='no'and smellyn =='yes'):
    print ("Loss of taste is a  very prominent symptom. I think you should go for a COVID -19 test.")
if(feveryn=='no' and coughyn=='no' and runnyyn=='no' and breathingyn=='no' and smellyn=='yes' and tasteyn=='yes' and swelling=='no'):
    print ("You seem quite OK to me. Please stay indoor as much as possible. Use mask when you go out.")

if(12<age<45 and gender=='female'):
    print("Since you are of chilbearing age, before starting medication it is important to tell the doctor if you're pregnant.")
if(age>=50):
    print("Considering your age you should always be very careful.")
print("If you have any comorbidity like asthma,kidney problems or heart diseases,please keep in touch with your regular doctors.")
print ("Press any key to end conversation.")
end=input()

প্রোগ্রাম রান করার পর এগুলোসহ এমন আরও কিছু প্রশ্নের উত্তর দেবার পর জেনে নিন আপনার কি করণীয়।

]]>
A. R
A. R

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.