示例#1
0
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'}
示例#2
0
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'}
示例#3
0
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}
示例#4
0
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}
示例#5
0
文件: mch.py 项目: siteslave/iCare
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.'}
示例#6
0
文件: mch.py 项目: siteslave/iCare
def get_list_by_birth(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']
            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:

                start = request.params['start']
                stop = request.params['stop']

                limit = int(stop) - int(start)

                mch = MchModel(request)
                person = PersonModel(request)

                rs = mch.get_list_by_birth(request.session['hospcode'], start_date, end_date, int(start), int(limit))
                rows = []

                if rs:
                    for r in rs:
                        p = person.get_person_detail(r['pid'], r['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'],
                            '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.'}
示例#7
0
文件: anc.py 项目: siteslave/iCare
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"}
示例#8
0
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'}
示例#9
0
文件: index.py 项目: siteslave/iCare
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
示例#10
0
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': 'ไม่พบรายการ'}
示例#11
0
文件: mch.py 项目: siteslave/iCare
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'}
示例#12
0
文件: mch.py 项目: siteslave/iCare
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'}
示例#13
0
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': 'ไม่พบรายการ'}
示例#14
0
文件: mch.py 项目: siteslave/iCare
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.'}
示例#15
0
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': 'ไม่พบรายการ'}
示例#16
0
文件: mch.py 项目: siteslave/iCare
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.'}
示例#17
0
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': 'ไม่พบรายการ'}
示例#18
0
文件: mch.py 项目: siteslave/iCare
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'}
示例#19
0
文件: mch.py 项目: siteslave/iCare
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.'}
示例#20
0
文件: mch.py 项目: siteslave/iCare
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'}
示例#21
0
文件: wbc02.py 项目: siteslave/iCare
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 = Wbc02Model(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'}
示例#22
0
文件: anc.py 项目: siteslave/iCare
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'}
示例#23
0
文件: mch.py 项目: siteslave/iCare
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.'}