def report_mch_total(request): if 'logged' not in request.session: return {'ok': 0, 'msg': 'Please login.'} else: if request.is_xhr: # is ajax request csrf_token = request.params['csrf_token'] is_token = (csrf_token == unicode( request.session.get_csrf_token())) if is_token: mch = MchModel(request) if request.params['s'] != "" and request.params['e'] != "": #Get by date start_date = h.jsdate_to_string(request.params['s']) end_date = h.jsdate_to_string(request.params['e']) total = mch.get_labor_forecast_filter_total( request.session['hospcode'], start_date, end_date) return {'ok': 1, 'total': total} else: total = mch.get_labor_forecast_total( request.session['hospcode']) return {'ok': 1, 'total': total} else: return {'ok': 0, 'msg': 'Invalid token key'}
def reports_mch_do_process_view(request): if 'logged' not in request.session: return {'ok': 0, 'msg': 'Please login.'} else: mch = MchModel(request) try: mch.do_process_forecast(request.session['hospcode']) return {'ok': 1} except Exception as ex: return {'ok': 0, 'msg': ex.message}
def get_postnatal_all(request): if 'logged' not in request.session: return {'ok': 0, 'msg': 'Please login.'} else: if request.is_xhr: # is ajax request csrf_token = request.params['csrf_token'] is_token = (csrf_token == unicode( request.session.get_csrf_token())) if is_token: cid = request.params['cid'] gravida = request.params['gravida'] mch = MchModel(request) rs = mch.get_postnatal_all(cid, gravida) rows = [] if rs: for r in rs: obj = { 'pid': r['pid'], 'hospcode': r['hospcode'], 'ppplace_code': r['ppplace'], 'ppplace_name': h.get_hospital_name(request, r['ppplace']), 'gravida': r['gravida'], 'bdate': h.to_thai_date(r['bdate']), 'ppcare': h.to_thai_date(r['ppcare']), 'ppresult': r['ppresult'], 'seq': r['seq'], 'appoint': mch.count_appointment(r['pid'], r['hospcode'], r['seq']) } rows.append(obj) return {'ok': 1, 'rows': rows} else: return {'ok': 0, 'msg': u'ไม่พบข้อมูล'} else: return {'ok': 0, 'msg': 'Token not found.'} else: return {'ok': 0, 'msg': 'Not ajax request.'}
def search_visit(request): if 'logged' not in request.session: return {'ok': 0, 'msg': 'Please login.'} else: csrf_token = request.params['csrf_token'] is_token = (csrf_token == unicode(request.session.get_csrf_token())) if is_token: wbc = Wbc612Model(request) mch = MchModel(request) cid = request.params['cid'] rs = wbc.search_visit(cid) if rs: rows = [] for r in rs: obj = { 'code': r['vaccinetype'], 'name': h.get_vaccine_name(request, r['vaccinetype']), 'hospcode': r['vaccineplace'], 'hospname': h.get_hospital_name(request, r['vaccineplace']), 'date_serv': h.to_thai_date(r['date_serv']), 'appoint': mch.count_appointment(r['pid'], r['hospcode'], r['seq']), 'seq': r['seq'], 'hospcode': r['hospcode'], 'pid': r['pid'] } rows.append(obj) return {'ok': 1, 'rows': rows} else: return {'ok': 0, 'msg': u'ไม่พบรายการ'} else: return {'ok': 0, 'msg': 'Not ajax request'}
def do_login(request): from icare.helpers.icare_helper import ICHelper h = ICHelper() csrf_token = request.params['csrf_token'] username = request.params['username'] password = h.get_hash(request.params['password']) is_process = True if 'isProcess' in request.params else False auth = Auth() is_token = (csrf_token == unicode(request.session.get_csrf_token())) if is_token: #do login users = auth.do_login(username, password, request) if users: session = request.session session['logged'] = True session['hospcode'] = users['hospcode'] session['owner'] = users['owner'] session['fullname'] = users['fullname'] session['user_type'] = users['user_type'] session['id'] = str(users['_id']) if is_process: #process data anc = AncModel(request) mch = MchModel(request) babies = BabiesModel(request) anc.do_process_list(users['hospcode']) anc.do_process_12weeks(users['hospcode']) mch.do_process_forecast(users['hospcode']) babies.process_milk(users['hospcode']) if users['user_type'] == '1': return HTTPFound(location='/admins/users') else: return HTTPFound(location='/') else: return HTTPFound(location='/signin') else: raise HTTPUnauthorized
def report_mch_list(request): if 'logged' not in request.session: return {'ok': 0, 'msg': 'Please login.'} else: start = request.params['start'] stop = request.params['stop'] limit = int(stop) - int(start) mch = MchModel(request) person = PersonModel(request) if request.params['s'] != "" and request.params['e'] != "": #Get by date start_date = h.jsdate_to_string(request.params['s']) end_date = h.jsdate_to_string(request.params['e']) rs = mch.get_labor_forecast_filter_list( request.session['hospcode'], start_date, end_date, int(start), int(limit)) else: rs = mch.get_labor_forecast_list(request.session['hospcode'], int(start), int(limit)) if rs: rows = [] for r in rs: p = person.get_person_detail(r['pid'], r['hospcode']) obj = { 'fullname': p['name'] + ' ' + p['lname'], 'cid': p['cid'], 'birth': h.to_thai_date(p['birth']), 'age': h.count_age(p['birth']), 'sex': p['sex'], 'bdate': h.to_thai_date(r['bdate']), #'address': h.get_address(request, r['hid'], r['hospcode']), 'ppcares': r['ppcares'] if 'ppcares' in r else None } rows.append(obj) return {'ok': 1, 'rows': rows} else: return {'ok': 0, 'msg': 'ไม่พบรายการ'}
def get_list_total(request): if 'logged' not in request.session: return {'ok': 0, 'msg': 'Please login.'} else: csrf_token = request.params['csrf_token'] is_token = (csrf_token == unicode(request.session.get_csrf_token())) if is_token: mch = MchModel(request) try: total = mch.get_list_total(request.session['hospcode']) return {'ok': 1, 'total': total} except Exception as e: return {'ok': 0, 'msg': e.message} else: return {'ok': 0, 'msg': 'Not ajax request'}
def report_mch_target_per_month(request): if 'logged' not in request.session: return {'ok': 0, 'msg': 'Please login.'} else: mch = MchModel(request) person = PersonModel(request) current_date = datetime.now() current_month = datetime.strftime(current_date, '%m') current_year = datetime.strftime(current_date, '%Y') end_day_of_month = calendar.monthrange(int(current_year), int(current_month))[1] start_date = date(int(current_year), int(current_month), 1) end_date = date(int(current_year), int(current_month), int(end_day_of_month)) start_date = datetime.strftime(start_date, '%Y%m%d') end_date = datetime.strftime(end_date, '%Y%m%d') rs = mch.get_target_per_month(request.session['hospcode'], start_date, end_date) if rs: rows = [] for r in rs: p = person.get_person_detail(r['pid'], r['hospcode']) obj = { 'fullname': p['name'] + ' ' + p['lname'], 'cid': p['cid'], #'birth': h.to_thai_date(p['birth']), 'age': h.count_age(p['birth']), #'sex': p['sex'], #'bdate': h.to_thai_date(r['bdate']), #'address': h.get_address(request, r['hid'], r['hospcode']), #'ppcares': r['ppcares'] if 'ppcares' in r else None } rows.append(obj) return {'ok': 1, 'rows': rows} else: return {'ok': 0, 'msg': 'ไม่พบรายการ'}
def get_appointment(request): if 'logged' not in request.session: return {'ok': 0, 'msg': 'Please login.'} else: if request.is_xhr: # is ajax request csrf_token = request.params['csrf_token'] is_token = (csrf_token == unicode( request.session.get_csrf_token())) if is_token: pid = request.params['pid'] hospcode = request.params['hospcode'] seq = request.params['seq'] mch = MchModel(request) rs = mch.get_appointment(pid, hospcode, seq) rows = [] if rs: for r in rs: obj = { 'apdate': h.to_thai_date(r['apdate']), 'aptype': h.get_aptype(request, r['aptype']), 'apdiag_code': r['apdiag'], 'apdiag_name': h.get_diag_name(request, r['apdiag']), } rows.append(obj) return {'ok': 1, 'rows': rows} else: return {'ok': 0, 'msg': u'ไม่พบข้อมูล'} else: return {'ok': 0, 'msg': 'Token not found.'} else: return {'ok': 0, 'msg': 'Not ajax request.'}
def get_list_total_by_birth(request): if 'logged' not in request.session: return {'ok': 0, 'msg': 'Please login.'} else: csrf_token = request.params['csrf_token'] start_date = h.jsdate_to_string(request.params['start_date']) end_date = h.jsdate_to_string(request.params['end_date']) is_token = (csrf_token == unicode(request.session.get_csrf_token())) if is_token: mch = MchModel(request) try: total = mch.get_list_total_by_birth( request.session['hospcode'], start_date, end_date) return {'ok': 1, 'total': total} except Exception as e: return {'ok': 0, 'msg': e.message} else: return {'ok': 0, 'msg': 'Not ajax request'}
def get_visit(request): if 'logged' not in request.session: return {'ok': 0, 'msg': 'Please login.'} else: if request.is_xhr: cid = request.params['query'] start = request.params['start'] stop = request.params['stop'] limit = int(stop) - int(start) csrf_token = request.params['csrf_token'] is_token = (csrf_token == unicode( request.session.get_csrf_token())) if is_token: anc = AncModel(request) mch = MchModel(request) visit = anc.get_visit_list(cid, int(start), int(limit)) rows = [] for v in visit: labor = anc.get_labor_detail(v['pid'], v['gravida'], v['hospcode']) is_labor = 1 if labor else 0 obj = { 'pid': v['pid'], 'cid': v['cid'], 'seq': v['seq'], 'date_serv': h.to_thai_date(v['date_serv']), 'gravida': v['gravida'], 'ancno': v['ancno'], 'ga': v['ga'], 'ancresult': v['ancresult'], 'hospcode': v['hospcode'], 'ancplace': v['ancplace'], 'hospname': h.get_hospital_name(request, v['hospcode']), 'ancplace_name': h.get_hospital_name(request, v['ancplace']), 'is_survey': anc.get_survey_status(v['pid'], v['gravida'], v['hospcode']), 'is_labor': is_labor, 'appoint': mch.count_appointment(v['pid'], v['hospcode'], v['seq']) } rows.append(obj) return {'ok': 1, 'rows': rows} else: return {'ok': 0, 'msg': 'Not authorized.'} else: return {'ok': 0, 'msg': 'Not ajax request'}
def get_list(request): if 'logged' not in request.session: return {'ok': 0, 'msg': 'Please login.'} else: if request.is_xhr: # is ajax request csrf_token = request.params['csrf_token'] is_token = (csrf_token == unicode( request.session.get_csrf_token())) if is_token: start = request.params['start'] stop = request.params['stop'] limit = int(stop) - int(start) mch = MchModel(request) person = PersonModel(request) rs = mch.get_list(request.session['hospcode'], int(start), int(limit)) rows = [] if rs: for r in rs: p = person.get_person_detail( r['pid'], request.session['hospcode']) obj = { 'pid': r['pid'], 'hospcode': r['hospcode'], 'gravida': r['gravida'], 'fullname': p['name'] + ' ' + p['lname'], 'cid': p['cid'], 'birth': h.to_thai_date(p['birth']), 'age': h.count_age(p['birth'], r['bdate']), 'bdate': h.to_thai_date(r['bdate']), 'bplace': r['bplace'], 'bhospcode': r['bhosp'], 'bhospname': h.get_hospital_name(request, r['bhosp']), 'sborn': r['sborn'], 'lborn': r['lborn'], 'btype': r['btype'], 'typearea': r['typearea'] if 'typearea' in r else '0', 'count_postnatal': mch.get_count_postnatal(r['pid'], r['gravida'], r['hospcode']) } rows.append(obj) return {'ok': 1, 'rows': rows} else: return {'ok': 0, 'msg': u'ไม่พบข้อมูล'} else: return {'ok': 0, 'msg': 'Token not found.'} else: return {'ok': 0, 'msg': 'Not ajax request.'}