def get_state(time): return { 'time': get_mins(time), 'patients': get_patients(get_schedule(time), time), 'sites': config_coll.find_one({'name': 'site'})['data'], 'optimizer': { "active": False, "advanceTime": 60, "objective": { "waitNorm": "l1", "overTimeWeight": 10 }, "confidenceLevel": 0.7, "patientConfidenceLevel": 0.7, "numSamples": 100 } }
def get_schedule(time): # time is str of format '2012-05-05 12:30:15' # and we will get schedule of that day until that time sites = config_coll.find_one({"name": "site"})["data"] day = datetime.combine(time.date(), datetime.min.time()) next_day = day + timedelta(1) orders = list(raw_order_coll.find({"appointment_dt": {"$gt": day, "$lt": next_day}})) for x in orders: del x["_id"] mask_dt(orders, time) orders = [x for x in orders if valid_order(x)] orders = filter_orders(orders, sites) orders = condense_orders(orders) fix_completion_time(orders) orders.sort(key=lambda x: x["appointment_dt"]) # time_to_str(orders) return orders