def post(self, patient_medical_id): """ 提交病历标签 :param patient_medical_id: :return: """ data = request.jsondata symptom = data.get("symptom") # 症状 follow_symptom = data.get("follow_symptom") # 伴随症状 disease_time = data.get("disease_time") # 发病时间 stage = data.get("stage") # 分期 pathology = data.get("pathology") # 病理分型 check_item = data.get("check_item") # 检查项目 medical_history = data.get("medical_history") # 相关病史 operation = data.get("operation") # 手术 treatment = data.get("treatment") # 治疗 complication = data.get("complication") # 合并症 patient_medical = Query(PatientMedical).get(patient_medical_id) try: label = Query(PatientMedicalLabel).equal_to("patient_medical", patient_medical).first() except LeanCloudError, e: if e.code == 101: label = PatientMedicalLabel() label.set("patient_medical", patient_medical) else: raise e
def delete(self, doctor_id, patient_medical_id): """ 取消接收 :param patient_medical_id: :return: """ patient_medical = Query(PatientMedical).get(patient_medical_id) doctor_medical = Query(DoctorMedicalRelation).equal_to("doctor_id", doctor_id).equal_to("patient_medical", patient_medical).first() doctor_medical.set("is_cancel", True) doctor_medical.save() return patient_medical
def get(self, patient_medical_id): """ 通过创建好的病历id,获取创建时候的过程,同时带着病历模板信息 :param patient_medical_id: 病历id :return: """ app.logger.debug(u"获取病历过程,患者病历id:%s" % patient_medical_id) patient_medical = Query(PatientMedical).get(patient_medical_id) processes_list = json.loads(patient_medical.get("processes_json")) processes = [] for _process in processes_list: try: process = Query(MedicalProcess).get(_process['process_id']) except LeanCloudError, e: if e.code == 101: continue process.set("fill", True if _process['head'] else False) process.set("base_url", "http://m.ihaoyisheng.com/medical/processes/%s?patient_medical_id=%s" % (process.id, patient_medical_id)) processes.append(process)
def post(self, patient_id): """ 提交患者个人信息 :param patient_id: :return: """ data = request.jsondata name = data.get("name") sex = data.get("sex") birth = datetime.datetime.strptime(data.get("birth"), "%Y-%m-%d") height = data.get("height") weight = data.get("weight") try: patient_info = Query(PatientInfo).equal_to("patient_id", patient_id).first() except LeanCloudError, e: if e.code == 101: patient_info = PatientInfo() patient_info.set("patient_id", patient_id) patient_info.save() else: raise e
def post(self): data = request.jsondata username = data.get('username') password = data.get('password') try: User().login(username, password) except LeanCloudError: abort(403, message=u"认证失败") else: user = Query(User).equal_to("username", username).first() try: token = Query(AuthToken).equal_to("user", user).greater_than("expires_time", datetime.datetime.now()).first() except LeanCloudError, e: if e.code == 101: # 服务端对应的 Class 还没创建 expires_date = datetime.datetime.now() + datetime.timedelta(hours=8) token = AuthToken() token.set("user", user) token.set("expires_time", expires_date) token.set("access_token", str(uuid.uuid1())) token.save() return { "access_token": token.access_token, "expires_time": token.expires_time.isoformat() } else: raise e else:
def post(self, patient_medical_id): """ 我要患者-接收患者 :return: """ doctor_id = request.jsondata.get("doctor_id") patient_medical = Query(PatientMedical).get(patient_medical_id) try: doctor_medical = Query(DoctorMedicalRelation).equal_to("doctor_id", doctor_id).equal_to("patient_medical", patient_medical).first() except LeanCloudError, e: if e.code == 101: doctor_medical = DoctorMedicalRelation() doctor_medical.set("doctor_id", doctor_id) doctor_medical.set("patient_medical", patient_medical) doctor_medical.set("is_cancel", False) doctor_medical.save()
def post(self, patient_medical_id): """ 创建病历过程 :param patient_id: 病历id :return: """ data = request.jsondata result_json = data.get("result_json") creater_id = data.get("creater_id") process_id = data.get("process_id") if not (creater_id.startswith("doctor-") or creater_id.startswith("patient-")): abort(400, message=u"创建者id不正确") patient_medical = Query(PatientMedical).get(patient_medical_id) process = Query(MedicalProcess).get(process_id) patient_process = PatientMedicalProcess() patient_process.set("process", process) patient_process.set("result_json", result_json) patient_process.set("patient_id", patient_medical.patient_id) patient_process.set("creater_id", creater_id) patient_process.save() # update medical record head processes_list = json.loads(patient_medical.get("processes_json")) for _process in processes_list: if _process['process_id'] == process_id: _process['head'] = patient_process.id break else: abort(400, message=u'更新过程head失败') patient_medical.set("processes_json", json.dumps(processes_list)) if processes_list[0].get("head") and processes_list[1].get("head"): patient_medical.set("finish", True) patient_medical.save() else: patient_medical.set("finish", False) patient_medical.save() patient_medical.save() return patient_process
abort(401, message=u"创建失败,未完成病历不能超过3个。") except LeanCloudError, e: if e.code == 101: pass else: raise e try: patient_medical = Query(PatientMedical).equal_to("medical", medical).equal_to("patient_id", patient_id).first() if patient_medical: if creater_id.startswith("doctor-"): if not (patient_medical.get("creater_id") == creater_id or creater_id == "doctor-100000"): abort(401, message=u"该患者病历已被其他医生创建") elif creater_id.startswith("patient-"): if patient_medical.get("patient_id") != patient_id: abort(401, message=u"患者只能给自己创建病历") patient_medical.set("first_create", False) return patient_medical except LeanCloudError, e: if e.code == 101: pass else: raise e patient_medical = PatientMedical() patient_medical.set("creater_id", creater_id) # 如果是医生创建,接收者就是医生id,如果是值班医生或者患者创建,那么没有接收者 if creater_id.startswith("doctor-"): patient_medical.set("receive_doctor_id", int(creater_id[7:])) else: patient_medical.set("receive_doctor_id", -1) patient_medical.set("patient_id", patient_id) patient_medical.set("medical", medical)