博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一些更改的后端接口和代码
阅读量:4360 次
发布时间:2019-06-07

本文共 13873 字,大约阅读时间需要 46 分钟。

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")

转载于:https://www.cnblogs.com/cookielbsc/p/7737819.html

你可能感兴趣的文章
SAP(最短增广路算法) 最大流模板
查看>>
安装 OpenSSL 工具
查看>>
用长微博工具发布长微博
查看>>
大庆金桥帆软报表案例
查看>>
Proxy模式
查看>>
读书多些会怎样
查看>>
浏览器好用的技术
查看>>
HDU 2188------巴什博弈
查看>>
tp5任务队列使用supervisor常驻进程
查看>>
Xmind?
查看>>
spring+quartz 实现定时任务三
查看>>
day2-三级菜单
查看>>
linux下升级4.5.1版本gcc
查看>>
Beanutils
查看>>
FastJson
查看>>
excel4j
查看>>
Thread
查看>>
char * 与char []探究理解
查看>>
QT窗体显示在屏幕中间位置
查看>>
emmet使用技巧
查看>>