zoukankan      html  css  js  c++  java
  • 一些更改的后端接口和代码

    tags: ACT iBreathCare


    urls.py

        url(r'^i111/',view.getPatientNotInGroup),
        url(r'^i112/',view.getOEHAll),
        url(r'^i5000/',view.getOutPatientDate),
        url(r'^i5001/',view.getEmgPatientDate),
        url(r'^i5002/',view.getInPatientDate),
        url(r'^i9996/',view.sendMessage),
        url(r'^i9998/',view.addVitualExpGroup),
        url(r'^i9999/',view.returnfilter),
        url(r'^i4999/',view.selectPatientFromGroup),
    

    view.py

    returnfilter

    @login_required
    @csrf_exempt
    @PermissionCheck(3)
    def returnfilter(request, data, D_id):
        resultAll = []
        result = []
        if data['group']!='':
            result = select.filterIdByGroup(data['group'].split('/'))
            resultAll.append(helper1(result))
        if data['sex']=='0':
            result1 = helper1(select.filterIdByGender('1'))
            result2 = helper1(select.filterIdByGender('2'))
            result1.extend(result2)
            resultAll.append(result1)
        else:
            result = select.filterIdByGender(data['sex'])
            resultAll.append(helper1(result))
        result = select.filterIdByAge((data['age'].split('/')[0]), (data['age'].split('/')[1]))
        resultAll.append(helper1(result))
        result = select.filterIdByHospitalTimes((data['hstime'].split('/')[0]), (data['hstime'].split('/')[1]), (data['date'].split('/')[0]), (data['date'].split('/')[1]))
        resultAll.append(helper1(result))
        result = select.filterIdByMedicalVisit((data['medicvisit'].split('/')[0]), (data['medicvisit'].split('/')[1]), (data['date'].split('/')[0]), (data['date'].split('/')[1]))
        resultAll.append(helper2(result))
        #result = select.filterIdByCAT((data['CAT'].split('/')[0]), (data['CAT'].split('/')[1]), (data['date'].split('/')[0]), (data['date'].split('/')[1]))
        #resultAll.append(helper1(result))
        #result = select.filterIdBySickerTimes(int(data['sicktime'].split('/')[0]),int(data['sicktime'].split('/')[1]))
        #resultAll.append(helper2(result))
        #result = select.filterIdByLungFunc((data['LungF'].split('/')[0]), (data['LungF'].split('/')[1]), (data['date'].split('/')[0]), (data['date'].split('/')[1]))
    
        tmpmessage = resultAll[0] if len(resultAll)!=0 else []
        for res in resultAll:
            tmpmessage = [val for val in res if val in tmpmessage]
    
        patientlist = select.getPatientsBasicInfo()
        patientmap = {}
        for patient in patientlist:
            patientmap[patient['P_id']]=patient
    
        message = []
        for temp in tmpmessage:
            if temp in patientmap:
                message.append(patientmap[temp])
        js = json.dumps(message)
        return HttpResponse(js)
    
    

    sendMessage

    @login_required
    @csrf_exempt
    @PermissionCheck(3)
    def sendMessage(request,data,D_id):
        print 'send'
        print data
        message = {"result":"-1"}
        if(insert.sendMessage(data,D_id)):
            message = {"result":"0"}
        print message
        js = json.dumps(message)
        push.reply(data['P_id'],data['message'])
        return HttpResponse(js)
    
    

    addVitualExpGroup

    @login_required
    @csrf_exempt
    @PermissionCheck(2)
    def addVitualExpGroup(request,data,D_id):
        message = []
        if insert.addExpGroup(D_id,data['name'],data['description'], data['date']) == True:
            groups = select.getExpGroups(D_id)
            newg_id = int(groups[len(groups)-1]['G_id'])
            print newg_id
            pids = tools.forCheckbox2(data, 'add')
            print pids
            if insert.addPatientToExpGroup(newg_id,pids):
                message.append({'g_id':newg_id})
        print message
    
        js = json.dumps(message)
        return HttpResponse(js)
    
    

    selectPatientFromGroup

    @login_required
    @csrf_exempt
    @PermissionCheck(3)
    def selectPatientFromGroup(request, data, D_id):
        resultAll = []
        result = []
        if data['group']!='':
            result = select.filterIdByGroup(data['group'].split('/'))
            resultAll = (helper1(result))
    
        message = []
        patientlist = select.getPatientsBasicInfo()
        if resultAll == []:
            message = patientlist
        else:
            patientmap = {}
            for patient in patientlist:
                patientmap[patient['P_id']]=patient
            for temp in resultAll:
                if temp in patientmap:
                    message.append(patientmap[temp])
    
        js = json.dumps(message)
        return HttpResponse(js)
    
    

    getOutPatientDate

    @login_required
    @csrf_exempt
    @PermissionCheck(3)
    def getOutPatientDate(request, data, D_id):
    
        message = select.getOutPatientDate(data)
    
        js = json.dumps(message)
        return HttpResponse(js)
    
    

    getEmgPatientDate

    @login_required
    @csrf_exempt
    @PermissionCheck(3)
    def getEmgPatientDate(request, data, D_id):
    
        message = select.getEmgPatientDate(data)
    
        js = json.dumps(message)
        return HttpResponse(js)
    
    

    getInPatientDate

    @login_required
    @csrf_exempt
    @PermissionCheck(3)
    def getInPatientDate(request, data, D_id):
    
        message = select.getInPatientDate(data)
    
        js = json.dumps(message)
        return HttpResponse(js)
    
    

    getPatientNotInGroup

    @login_required
    @csrf_exempt
    @PermissionCheck(3)
    def getPatientNotInGroup(request,data,D_id):
        message = {}
        list =[]
        pglist =[]
        temp = select.getAllExpGroupPatientsID()
        for item in temp:
            pglist.append(item[0])
        patientlist = select.getPatientsBasicInfo()
        print patientlist
        for patient in patientlist:
            print patient['P_id'],"patient"
            if patient['P_id'] not in pglist:
                list.append(patient)
    
        js = json.dumps(list)
        return HttpResponse(js)
    
    

    getOEHAll

    @login_required
    @csrf_exempt
    @PermissionCheck(3)
    def getOEHAll(request,data,D_id):
        message = select.getOEHAll(data['P_id'], data['para'])
        # print type(list(message))
        js = json.dumps(list(message))
        # print js
        return HttpResponse(js)
    
    

    select.py

    filterIdByHospitalTimes

    def filterIdByHospitalTimes(lower, upper, start=None, end=None):
        from django.utils.timezone import now
        if start==None or end==None or start=='' or end=='':
            end = now().date()
            start = datetime.date(end.year - 1, end.month, end.day)
        lower = int(lower) if lower!='' else 0
        upper = int(upper) if upper!='' else 0
        try:
            #此处应该从inhospitalinfo表中取出未合并相同项的P_id 再计算次数 不需要从medicalvisit中取数 但是略麻烦
            result = MedicalVisit.objects.filter(h_time__gte=lower, h_time__lte=upper).values_list('P_id').distinct()
            result2 = InHospitalInfo.objects.filter(date__gte=start,date__lte=end).values_list('P_id').distinct()
            if lower    != 0 and result2!=None and result!=None:
                result = [val for val in result2 if val in result]
            return result
        except Exception, e:
            tools.exceptionRecord('select.py', 'filterIdByHospitalTimes', e)
    
    

    filterIdByGroup

    def filterIdByGroup(group):
        resultAll = []
        try:
            for gid in group:
                result = PatientGroup.objects.filter(G_id=int(gid)).values_list('P_id')
                if result!=None:
                    for res in result:
                        resultAll.append(res)
            return list(set(resultAll))
        except Exception, e:
            tools.exceptionRecord('select.py', 'filterIdByGroup', e)
    
    

    filterIdByCAT 此处还需要继续修改

    def filterIdByCAT(lower, upper, start=None, end=None):
        from django.utils.timezone import now
        if start==None or end==None or start=='' or end=='':
            end = now().date()
            start = datetime.date(end.year - 1, end.month, end.day)
        lower = int(lower) if lower!='' else 0
        upper = int(upper) if upper!='' else 0
        try:
            result = CATandMRC.objects.filter(date__gte=start, date__lte=end,
                                              catSum__gte=lower, catSum__lte=upper).values_list('P_id').distinct()
            return result
        except Exception, e:
            tools.exceptionRecord('select.py', 'filterIdByCAT', e)
    
    
    

    filterIdByLungFunc 此处需要继续修改

    def filterIdByLungFunc(lower, upper, start=None, end=None):
        from django.utils.timezone import now
        if start==None or end==None or start=='' or end=='':
            end = now().date()
            start = datetime.date(end.year - 1, end.month, end.day)
        lower = int(lower) if lower!='' else 0
        upper = int(upper) if upper!='' else 0
        try:
            result = LungFunc.objects.filter(date__gte=start, date__lte=end,
                                             GOLD__gte=lower, GOLD__lte=upper).values_list('P_id').distinct()
            return result
        except Exception, e:
            tools.exceptionRecord('select.py', 'filterIdByLungFunc', e)
    
    

    filterIdBySickerTimes 此处有错

    def filterIdBySickerTimes(lower, upper, start=None, end=None):
        from django.utils.timezone import now
        lower = str(lower) if lower!='' else '0'
        upper = str(upper) if upper!='' else '0'
        if start==None or end==None or start=='' or end=='':
            end = now().date()
            start = datetime.date(end.year - 1, end.month, end.day)
        try:
            print 'sicktime'
            print str(start)
            result = []
            for i in Clinic.objects.raw('select distinct P_id from Website_clinic X where '
                                        '(select count(*) from Website_clinic Website_inhospitalinfo where date >= "' + str(start) + '" and P_id = X.P_id and Website_inhospitalinfo.acuteExac = "1") >= ' + lower + ' and '
                                        '(select count(*) from Website_clinic where date >= "' + str(start) + '" and P_id = X.P_id and acuteExac = "1") <= ' + upper + ';'):
                #Website_catandmrc Website_emergcallinfo Website_inhospitalinfo Website_outpatientserviceinfo
                result.append(i.P_id)
            print result
            return result
        except Exception, e:
            tools.exceptionRecord('select.py', 'filterIdBySickerTimes', e)
    
    

    getMsg2Weeks

    def getMsg2Weeks(P_id, type, num, times):
        num = int(num)
        part = num*int(times)
        if part<0:  part = 0;#new add
        if part>26: part = 26;
        end = now().date()-timedelta(weeks=part)
        #num = 20
    
        # end = datetime.datetime.strptime('2017-05-16', "%Y-%m-%d").date()
        start = end - timedelta(weeks=num)
        temp = {}
        message =[]
        record = []
        message.append(temp)
        for i in xrange(num*7 + 1):
            temp[str(i+1)] = str(start + timedelta(days=i))[5:10].replace("-","")
            record.append(str(start + timedelta(days=i))[0:4])
        print temp, len(temp)
        try:
            if type == 1:
                values = CATandMRC.objects.filter(date__gte=start, P_id=P_id).values('date', 'catSum', 'mrc')
            elif type == 2:
                values = PmExposure.objects.filter(date__gte=start, P_id=P_id).values('date','exposure')
            # else:
            #     return message
            for v in values:
                v['date']= str(v['date'])[5:10].replace("-","")
            message.append(list(values))
        except Exception, e:
            tools.exceptionRecord('select.py','getMsg2Weeks',e)
        message.append(record)
        return message
    
    

    getMessage

    def getMessage(data):
         try:
            start = datetime.date.today().replace(day=1)
            print 'start'
            print datetime.date.today()
            print start
            text = MessageText.objects.filter(Q(date_upload__gte=start)).values("id","P_id","date","date_upload","content","sign")
            print text
            for t in text:
                t['type'] = "0"
            audio = MessageAudio.objects.filter(Q(date_upload__gte=start)).values("id","P_id","date","date_upload","content","sign")
            for a in audio:
                a['type'] = "1"
            q = list(chain(text,audio))
            # print q
            q = sorted(q, key=lambda q:q['date_upload'])
            q = sorted(q, key=lambda q:q['P_id'])
            #q = sorted(q, key=lambda q:q['sign'], reverse=True)
            a = {}
            for v in q:
                if v['P_id'] not in a:
                    a[v['P_id']] = {"P_id":v['P_id'],"content":[{"date":str(v['date']),"date_upload":str(v['date_upload']),"content":v['content'],"sign":v['sign'],"type":v['type']}]}
                else:
                    a[v['P_id']]['content'].append({"date":str(v['date']),"date_upload":str(v['date_upload']),"content":v['content'],"sign":v['sign'],"type":v['type']})
            result = list(a.values())
            print result
            return result
         except Exception, e:
            tools.exceptionRecord('select.py', 'getMessage', e)
            return {"result":"-1"}
    
    

    getOutPatientDate

    def getOutPatientDate(data):
        try:
             temp = OutPatientServiceInfo.objects.all().values('date')
             result = []
             for i in temp:
                 i['date'] = str(i['date'])
                 result.append(i)
             return result
        except Exception, e:
             tools.exceptionRecord('select.py', 'getOutPatientDate', e)
    
    

    getEmgPatientDate

    def getEmgPatientDate(data):
        try:
             temp = EmergCallInfo.objects.all().values('date')
             result = []
             for i in temp:
                 i['date'] = str(i['date'])
                 result.append(i)
             return result
        except Exception, e:
             tools.exceptionRecord('select.py', 'getEmgPatientDate', e)
    
    

    getInPatientDate

    def getInPatientDate(data):
        try:
            temp = InHospitalInfo.objects.all().values('date')
            result = []
            for i in temp:
                i['date'] = str(i['date'])
                result.append(i)
            return result
        except Exception, e:
             tools.exceptionRecord('select.py', 'getInPatientDate', e)
    
    

    罗小萌同学的select部分未加入

    insert.py

    sendMessage

    def sendMessage(data,D_id):
        try:
            d = datetime.datetime.strptime('1970-01-01', "%Y-%m-%d").date()
            newobj = MessageText(P_id = data['P_id'],D_id=D_id,content = data['message'],date = d,sign=data['sign'])
            newobj.save()
            return True
        except Exception, e:
            tools.exceptionRecord('insert.py','sendMessage',e)
            return False
    
    

    models.py

    class MessageText(models.Model):
        P_id = models.CharField(max_length=12, null=False)
        D_id = models.CharField(max_length=12, default='')
        content = models.CharField(max_length=200)
        date = models.DateField(null=False)
        date_upload = models.DateTimeField(auto_now_add=True)
        sign = models.CharField(max_length=1, default="1")
    
    class MessageAudio(models.Model):
        P_id = models.CharField(max_length=12, null=False)
        D_id = models.CharField(max_length=12, default='')
        content = models.FileField(upload_to="AUDIO")
        date = models.DateField(null=False)
        date_upload = models.DateTimeField(auto_now_add=True)
        sign = models.CharField(max_length=1, default="1")
    
    
  • 相关阅读:
    202. Happy Number
    198. House Robber
    191. Number of 1 Bits
    190. Reverse Bits
    189. Rotate Array
    172. Factorial Trailing Zeroes
    171. Excel Sheet Column Number
    [leetcode]Single Number II
    [leetcode]Single Number
    [leetcode]Clone Graph
  • 原文地址:https://www.cnblogs.com/cookielbsc/p/7737819.html
Copyright © 2011-2022 走看看