예제 #1
0
def conditionDetails(userid, cid):
    r = requests.get(getApiUrl() + 'conditions/' + cid, headers=getHeaders())
    result = r.json()
    text = 'My algorithm suggests that you have symptoms of ' + result[
        "common_name"]
    hint = result["extras"]["hint"]
    messageHandler.sendTextMessage(userid, text)
    messageHandler.sendTextMessage(userid, hint)
    return
예제 #2
0
def parseSuggest(userid, messageText):
    # find mentions
    temp, mentions = parseEndpoint(messageText)
    # if no mentions found than fallback
    if len(temp) == 0:
        messageText = "Sorry, I am not able to identify any symptoms/conditions from your message. Please try again!"
        messageHandler.sendTextMessage(userid, messageText)
        return
    # get user details from db
    gender, age, evidence = getRiskFactors(userid)
    evidence += temp
    payload = {'sex': gender, 'age': age, 'evidence': evidence}
    messageText = "You have reported\n"
    for i in mentions:
        messageText += " * " + i["common_name"] + " " + i["choice_id"] + "\n"
    messageHandler.sendTextMessage(userid, messageText)
    # get suggestions based on mentions
    suggestedSymptoms = suggestEndpoint(gender, age, evidence)
    if len(suggestedSymptoms) < 1:
        # yaha se jaega diagnosis
        diagnosisHandler(userid, payload)
        return
    # send mentions found and suggest more symtoms
    messageText = "Other users with your symptoms also reported following conditions"
    payload = {'sex': gender, 'age': age, 'evidence': evidence}
    mongoCURD.setSymptomPayload(userid, payload)
    buttonsArray = [{
        'type':
        'web_url',
        'url':
        commonVars.app_url + '/getSuggestions?userid=' + userid +
        '&suggestions=' + json.dumps(suggestedSymptoms),
        'title':
        'Options Here!',
        'webview_height_ratio':
        'compact',
        'webview_share_button':
        'hide'
    }]
    messageHandler.sendButtonMessage(userid, messageText, buttonsArray)
    return
예제 #3
0
def get_workout_recommendation(recipientId):
    #note for unfit people
    note = "Note: This guidelines are relevant to only healthy individuals or else you should seek medical advice before following these recommendations"
    messageHandler.sendTextMessage(recipientId, note)
    #check age,height,weight from db
    #cal macros needed
    age, gender = mongoCURD.getAgeGender(recipientId)
    if age >= 5 and age <= 17:
        messageText = "1. You should perform atleast 60 minutes of moderate or vigorous intensity aerobic physical activity daily\n\n2. Muscle strengthening activities can be perfromed 3 or more days per week\n\n3. Rest Interval: 30 seconds between sets/laps"
    elif age >= 18 and age <= 64:
        messageText = "1. You should perfrom atleast 75 to 150 minutes of moderate or vigorous intensity aerobic physical activity daily\n\n2. Muscle strengthening activities can be performed 3 or more days per week\n\n3. Rest Interval: 30-45 seconds between sets/laps"
    elif age >= 65:
        messageText = "1. You should perfrom atleast 45 to 60 minutes of moderate intensity aerobic physical activity daily\n\n2. Peform activities to enhance balance and mobility on 3 or more days per week\n\n3. Muscle strengthening activities can be performed 2 or more days per week\n\n4. Rest Interval: 45-60 seconds between sets/laps"
    else:
        messageText = "Atleast 30 min of physical activity is needed"
    messageHandler.sendTextMessage(recipientId, messageText)
    #activity options
    note2 = "You can perform activities such as\n\t1. Walking\n\t2. Running\n\t3. Cycling\n\t4. Swimming\n\t5. Dancing\n\t6. Yoga\n\t7. Weight-training\n\t8. Sports\n\t9. Outdoor Games"
    messageHandler.sendTextMessage(recipientId, note2)
    #note for beginners
    note3 = "Note: Beginners should start with small amounts of physical activity and gradually increase duration, frequency and intensity over time"
    messageHandler.sendTextMessage(recipientId, note3)
예제 #4
0
from argsLoader import loadCmdArgs
import mongoCURD, messageHandler, json

query = json.loads(str(loadCmdArgs(1)))
userid = query['userid']
del query['userid']
mongoCURD.storeWorkoutLog(userid, query)
messageText = "Got it 👍."
messageHandler.sendTextMessage(userid, messageText)
#messageHandler.sendTextMessage(userid,json.dumps(query))
예제 #5
0
def receivedPostback(message_event):
    print "Got back a postback, the payload was: " + str(
        message_event["postback"]["payload"])  #logging
    messageHandler.sendTextMessage(message_event["sender"]["id"],
                                   "Got your postback")
예제 #6
0
from userProfile import userProfileApi

#load eventObj from command Line
eventObject=json.loads(loadCmdArgs())

# userId from eventObj
recipientId=eventObject['sender']['id']

# fallback msg
messageText="I'm sorry but I didn't understand. Please Try Again!"

# 
if 'postback' in eventObject:
    if eventObject['postback']['payload'] == 'get_started':
        messageText="Hi! I'm Darwin your personal Health Assistant.\nI can help you achieve your goal of 'Good Health'.\nTo know more checkout the 'Menu'."
        messageHandler.sendTextMessage(recipientId,messageText)
        # get userProfile and make an entry of user in db
        mongoCURD.insertUserDataFromFb(userProfileApi(recipientId))
        buttonsArray=[
            {
                'type':'web_url',
                'url':commonVars.app_url+'/getDetails?userid='+recipientId,
                'title':'Click Here',
                'webview_height_ratio':'compact',
                'webview_share_button':'hide'
            }
        ]
        text='I need you to add/update your personal details'
        messageHandler.sendButtonMessage(recipientId,text,buttonsArray)
    elif eventObject['postback']['payload'] == "update_info":    
        buttonsArray=[