package mobile_api_controllers import ( "XT_New/enums" "XT_New/models" "XT_New/service" "XT_New/utils" "encoding/json" "fmt" "strings" // "fmt" "reflect" "strconv" "time" ) type PatientApiController struct { MobileBaseAPIAuthController } func (c *PatientApiController) GetPatientInfoWithDiseases() { id, _ := c.GetInt64("patient", 0) if id <= 0 { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } adminUserInfo := c.GetMobileAdminUserInfo() patient, _ := service.FindPatientByIdWithDiseases(adminUserInfo.Org.Id, id) if patient.ID == 0 { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodePatientNoExist) return } Registrars, err := service.GetAdminUser(adminUserInfo.Org.Id, adminUserInfo.App.Id, patient.RegistrarsId) if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if Registrars != nil { patient.Registrars = Registrars.Name } c.ServeSuccessJSON(map[string]interface{}{ "patient": patient, }) return } func (c *PatientApiController) CreateDialysisSolution() { id, _ := c.GetInt64("patient", 0) if id <= 0 { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } adminUserInfo := c.GetMobileAdminUserInfo() patient, _ := service.FindPatientById(adminUserInfo.Org.Id, id) if patient.ID == 0 { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodePatientNoExist) return } //根据路由来做权限 //appRole, _ := service.FindAdminRoleTypeById(adminUserInfo.Org.Id, adminUserInfo.AdminUser.Id, adminUserInfo.App.Id) //template, _ := service.GetOrgInfoTemplate(adminUserInfo.Org.Id) //if template.TemplateId == 2 || template.TemplateId == 6 { // if appRole.UserType == 3 { // headNursePermission, getPermissionErr := service.GetAdminUserSpecialPermission(adminUserInfo.Org.Id, adminUserInfo.App.Id, adminUserInfo.AdminUser.Id, models.SpecialPermissionTypeHeadNurse) // if getPermissionErr != nil { // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } else if headNursePermission == nil { // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDialysisPermissionDeniedModify) // return // } // } //} var solution models.DialysisSolution code := defaultSolutionFormData(&solution, c.Ctx.Input.RequestBody, "create") if code > 0 { c.ServeFailJSONWithSGJErrorCode(code) return } solution.RegistrarsId = adminUserInfo.AdminUser.Id solution.Doctor = adminUserInfo.AdminUser.Id solution.Status = 1 solution.PatientId = id solution.CreatedTime = time.Now().Unix() solution.UserOrgId = adminUserInfo.Org.Id solution.UpdatedTime = time.Now().Unix() solution.SubName = "" solution.ParentId = 0 err := service.CreatePatientDialysisSolution(&solution) if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDialysisSolutionCreate) return } c.ServeSuccessJSON(map[string]interface{}{ "msg": "ok", "solution": solution, }) return } func (c *PatientApiController) EditDialysisSolution() { id, _ := c.GetInt64("id", 0) if id <= 0 { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } adminUserInfo := c.GetMobileAdminUserInfo() solution, _ := service.FindPatientDialysisSolution(adminUserInfo.Org.Id, id) if solution.ID == 0 { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDialysisSolutionNotExist) return } //if solution.Doctor != adminUserInfo.AdminUser.Id { // headNursePermission, getPermissionErr := service.GetAdminUserSpecialPermission(adminUserInfo.Org.Id, adminUserInfo.App.Id, adminUserInfo.AdminUser.Id, models.SpecialPermissionTypeHeadNurse) // if getPermissionErr != nil { // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } else if headNursePermission == nil { // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDialysisPermissionDeniedModify) // return // } //} code := defaultSolutionFormData(&solution, c.Ctx.Input.RequestBody, "update") if code > 0 { c.ServeFailJSONWithSGJErrorCode(code) return } // solution.RegistrarsId = adminUserInfo.AdminUser.Id solution.Doctor = adminUserInfo.AdminUser.Id solution.Status = 1 // solution.PatientId = id // solution.CreatedTime = time.Now().Unix() // solution.UserOrgId = adminUserInfo.Org.Id solution.UpdatedTime = time.Now().Unix() // solution.SubName = "" // solution.ParentId = 0 err := service.UpdatePatientDialysisSolution(&solution) if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDialysisSolutionUpdate) return } c.ServeSuccessJSON(map[string]interface{}{ "msg": "ok", "solution": solution, }) return } func (c *PatientApiController) CreateDoctorAdvice() { patient, _ := c.GetInt64("id", 0) if patient <= 0 { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } adminUserInfo := c.GetMobileAdminUserInfo() patientInfo, _ := service.FindPatientById(adminUserInfo.Org.Id, patient) if patientInfo.ID == 0 { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodePatientNoExist) return } //appRole, _ := service.FindAdminRoleTypeById(adminUserInfo.Org.Id, adminUserInfo.AdminUser.Id, adminUserInfo.App.Id) //if appRole.UserType == 3{ // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeAdvicePermissionDeniedModify) // return //} //appRole, _ := service.FindAdminRoleTypeById(adminUserInfo.Org.Id, adminUserInfo.AdminUser.Id, adminUserInfo.App.Id) // //if appRole.UserType == 3 { // headNursePermission, getPermissionErr := service.GetAdminUserSpecialPermission(adminUserInfo.Org.Id, adminUserInfo.App.Id, adminUserInfo.AdminUser.Id, models.SpecialPermissionTypeHeadNurse) // if getPermissionErr != nil { // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } else if headNursePermission == nil { // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDialysisPermissionDeniedModify) // return // } //} var advice models.DoctorAdvice code := adviceFormData(&advice, c.Ctx.Input.RequestBody, "create") if code > 0 { c.ServeFailJSONWithSGJErrorCode(code) return } if advice.ParentId > 0 { old, _ := service.FindDoctorAdvice(adminUserInfo.Org.Id, advice.ParentId) if old.ID == 0 || old.PatientId != patient { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParentAdviceNotExist) return } if old.StopState == 1 || old.ExecutionState == 1 { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeAdviceStoped) return } if old.ParentId > 0 { advice.ParentId = old.ParentId } advice.StartTime = old.StartTime advice.AdviceDoctor = old.AdviceDoctor advice.DeliveryWay = old.DeliveryWay advice.ExecutionFrequency = old.ExecutionFrequency advice.GroupNo = old.GroupNo } advice.Status = 1 advice.CreatedTime = time.Now().Unix() advice.UpdatedTime = time.Now().Unix() advice.StopState = 2 advice.ExecutionState = 2 advice.UserOrgId = adminUserInfo.Org.Id advice.PatientId = patient advice.AdviceDoctor = adminUserInfo.AdminUser.Id err := service.CreateDoctorAdvice(&advice) if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeCreateDoctorAdviceFail) return } c.ServeSuccessJSON(map[string]interface{}{ "msg": "ok", "advice": advice, }) return } func (c *PatientApiController) EditDoctorAdvice() { id, _ := c.GetInt64("id", 0) if id <= 0 { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } adminUserInfo := c.GetMobileAdminUserInfo() //appRole, _ := service.FindAdminRoleTypeById(adminUserInfo.Org.Id, adminUserInfo.AdminUser.Id, adminUserInfo.App.Id) //appRole, _ := service.FindAdminRoleTypeById(adminUserInfo.Org.Id, adminUserInfo.AdminUser.Id, adminUserInfo.App.Id) // //if appRole.UserType == 3 { // headNursePermission, getPermissionErr := service.GetAdminUserSpecialPermission(adminUserInfo.Org.Id, adminUserInfo.App.Id, adminUserInfo.AdminUser.Id, models.SpecialPermissionTypeHeadNurse) // if getPermissionErr != nil { // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } else if headNursePermission == nil { // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDialysisPermissionDeniedModify) // return // } //} advice, _ := service.FindDoctorAdvice(adminUserInfo.Org.Id, id) if advice.ID == 0 { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDoctorAdviceNotExist) return } code := adviceFormData(&advice, c.Ctx.Input.RequestBody, "update") if code > 0 { c.ServeFailJSONWithSGJErrorCode(code) return } advice.Status = 1 advice.UpdatedTime = time.Now().Unix() advice.UserOrgId = adminUserInfo.Org.Id advice.Modifier = adminUserInfo.AdminUser.Id //处理修改医嘱开始时间逻辑(不包括子医嘱) //1.一组医嘱内只有一条医嘱(不包括子医嘱)的情况下,只需要直接修改医嘱开始时间,不需要重新分配组号 //2.一组医嘱内有多条医嘱(不包括子医嘱)的情况下,需要为修改的那条医嘱重新分配组号,并修改医嘱开始时间 var err error var isChangeGroup bool if advice.ParentId == 0 { adviceSlice, _ := service.FindAdviceByGoroupNo(adminUserInfo.Org.Id, advice.GroupNo) sourceAdvice, _ := service.FindOldDoctorAdvice(adminUserInfo.Org.Id, advice.ID) if len(adviceSlice) == 1 { //判断前端上传上来的开始时间和数据库中想要修改的那条医嘱的开始时间是否相同,如果不同,需要修改子医嘱的开始时间,如果相同直接修改,不需要修改子医嘱的开始时间 if advice.StartTime == sourceAdvice.StartTime { err = service.UpdateDoctorAdvice(&advice) isChangeGroup = false } else { err = service.UpdateDoctorAdviceAndSubAdvice(&advice) isChangeGroup = false } } else if len(adviceSlice) > 1 { //判断前端上传上来的开始时间和数据库中想要修改的那条医嘱的开始时间是否相同,如果不同,需要重新分配组,如果相同直接修改,不需要分配组 if advice.StartTime == sourceAdvice.StartTime { err = service.UpdateDoctorAdvice(&advice) isChangeGroup = false } else { gruopNo := service.GetMaxAdviceGroupID(adminUserInfo.Org.Id) gruopNo = gruopNo + 1 advice.GroupNo = gruopNo err = service.UpdateDoctorAdviceAndSubAdvice(&advice) isChangeGroup = true } } } else { isChangeGroup = false err = service.UpdateDoctorAdvice(&advice) } if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeUpdateDoctorAdviceFail) return } if !isChangeGroup { c.ServeSuccessJSON(map[string]interface{}{ "msg": "ok", "advice": advice, "isChange": isChangeGroup, //方便前端处理数据 }) } else { newGroupAdvice, err := service.FindAllDoctorAdviceByGoroupNo(adminUserInfo.Org.Id, advice.GroupNo) if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } c.ServeSuccessJSON(map[string]interface{}{ "msg": "ok", "advice": newGroupAdvice, "isChange": isChangeGroup, //方便前端处理数据 }) } return } func (c *PatientApiController) StopDoctorAdvice() { id, _ := c.GetInt64("id", 0) if id <= 0 { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } adminUserInfo := c.GetMobileAdminUserInfo() advice, _ := service.FindDoctorAdvice(adminUserInfo.Org.Id, id) if advice.ID == 0 { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDoctorAdviceNotExist) return } //if advice.AdviceDoctor != adminUserInfo.AdminUser.Id { // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDialysisPermissionDeniedModify) // return //} //appRole, _ := service.FindAdminRoleTypeById(adminUserInfo.Org.Id, adminUserInfo.AdminUser.Id, adminUserInfo.App.Id) // //if appRole.UserType == 3 { // headNursePermission, getPermissionErr := service.GetAdminUserSpecialPermission(adminUserInfo.Org.Id, adminUserInfo.App.Id, adminUserInfo.AdminUser.Id, models.SpecialPermissionTypeHeadNurse) // if getPermissionErr != nil { // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } else if headNursePermission == nil { // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDialysisPermissionDeniedModify) // return // } //} if advice.StopState == 1 { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeAdviceStoped) return } dataBody := make(map[string]interface{}, 0) err := json.Unmarshal(c.Ctx.Input.RequestBody, &dataBody) if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } timeLayout := "2006-01-02" loc, _ := time.LoadLocation("Local") if dataBody["stop_time"] == nil || reflect.TypeOf(dataBody["stop_time"]).String() != "string" { utils.ErrorLog("stop_time") c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } stopTime, _ := dataBody["stop_time"].(string) if len(stopTime) == 0 { utils.ErrorLog("len(stop_time) == 0") c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } theTime, err := time.ParseInLocation(timeLayout+" 15:04:05", stopTime, loc) if err != nil { utils.ErrorLog(err.Error()) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } advice.StopTime = theTime.Unix() if dataBody["stop_reason"] == nil || reflect.TypeOf(dataBody["stop_reason"]).String() != "string" { utils.ErrorLog("stop_reason") c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } stopReason, _ := dataBody["stop_reason"].(string) if len(stopReason) == 0 { utils.ErrorLog("len(stop_reason) == 0") c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } advice.StopReason = stopReason advice.Status = 1 advice.UpdatedTime = time.Now().Unix() advice.StopDoctor = adminUserInfo.AdminUser.Id advice.StopState = 1 advice.StopTime = time.Now().Unix() advice.Modifier = adminUserInfo.AdminUser.Id err = service.StopDoctorAdvice(&advice) if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeStopAdviceFail) return } c.ServeSuccessJSON(map[string]interface{}{ "msg": "ok", "advice": advice, }) return } func (c *PatientApiController) DeleteDoctorAdvice() { id, _ := c.GetInt64("id", 0) if id <= 0 { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } adminUserInfo := c.GetMobileAdminUserInfo() advice, _ := service.FindDoctorAdvice(adminUserInfo.Org.Id, id) if advice.ID == 0 { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDoctorAdviceNotExist) return } //if !adminUserInfo.AdminUser.IsSuperAdmin && advice.AdviceDoctor != adminUserInfo.AdminUser.Id { // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDialysisPermissionDeniedModify) // return //} //appRole, _ := service.FindAdminRoleTypeById(adminUserInfo.Org.Id, adminUserInfo.AdminUser.Id, adminUserInfo.App.Id) // //if appRole.UserType == 3 { // headNursePermission, getPermissionErr := service.GetAdminUserSpecialPermission(adminUserInfo.Org.Id, adminUserInfo.App.Id, adminUserInfo.AdminUser.Id, models.SpecialPermissionTypeHeadNurse) // if getPermissionErr != nil { // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } else if headNursePermission == nil { // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDialysisPermissionDeniedModify) // return // } //} advice.UpdatedTime = time.Now().Unix() advice.Status = 0 advice.Modifier = adminUserInfo.AdminUser.Id err := service.DeleteDoctorAdvice(&advice) if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDeleteAdviceFail) return } c.ServeSuccessJSON(map[string]interface{}{ "msg": "ok", }) return } func (c *PatientApiController) ExecDoctorAdvice() { execution_time := c.GetString("execution_time") groupno, _ := c.GetInt64("groupno", -1) var ids []string if groupno == 0 { advice_ids := c.GetString("advice_id") ids = strings.Split(advice_ids, ",") } if groupno < 0 { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } if len(execution_time) <= 0 { utils.ErrorLog("execution_time") c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } timeLayout2 := "2006-01-02 15:04:05" loc, _ := time.LoadLocation("Local") theTime, errs := time.ParseInLocation(timeLayout2, execution_time, loc) if errs != nil { utils.ErrorLog(errs.Error()) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } adminUserInfo := c.GetMobileAdminUserInfo() //appRole, _ := service.FindAdminRoleTypeById(adminUserInfo.Org.Id, adminUserInfo.AdminUser.Id, adminUserInfo.App.Id) // //if appRole.UserType == 2 || appRole.UserType == 1 { // headNursePermission, getPermissionErr := service.GetAdminUserSpecialPermission(adminUserInfo.Org.Id, adminUserInfo.App.Id, adminUserInfo.AdminUser.Id, models.SpecialPermissionTypeHeadNurse) // if getPermissionErr != nil { // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } else if headNursePermission == nil { // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDialysisPermissionDeniedModify) // return // } //} var advice models.DoctorAdvice if groupno > 0 { advices, _ := service.FindAllDoctorAdviceByGoroupNo(adminUserInfo.Org.Id, groupno) for _, item := range advices { if item.ExecutionState == 2 { advice = item } } } else { advices, _ := service.FindDoctorAdviceByIds(adminUserInfo.Org.Id, ids) for _, item := range advices { if item.ExecutionState == 2 { advice = item } } } if advice.ExecutionState == 1 { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeAdviceExced) return } if advice.Checker >= 0 && advice.Checker == adminUserInfo.AdminUser.Id { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeExceAndCheckNotOneUser) return } fmt.Println(theTime) fmt.Println(theTime.Unix()) fmt.Println(advice.StartTime) if advice.StartTime > theTime.Unix() { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeAdviceExceBeforeStart) return } execution_staff := adminUserInfo.AdminUser.Id advices := models.DoctorAdvice{ ExecutionStaff: execution_staff, ExecutionTime: theTime.Unix(), UpdatedTime: time.Now().Unix(), } var err error if groupno > 0 { err = service.ExceDoctorAdviceByGroupNo(&advices, groupno, adminUserInfo.Org.Id) } else { err = service.BatchExceOldDoctorAdvice(&advices, ids) } if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeUpdateDoctorAdviceFail) return } advice.ExecutionStaff = execution_staff advice.ExecutionTime = theTime.Unix() advice.ExecutionState = 1 c.ServeSuccessJSON(map[string]interface{}{ "msg": "ok", "advice": advice, "ids": ids, }) return } func (c *PatientApiController) ModifyExecDoctorAdvice() { execution_time := c.GetString("execution_time") groupno, _ := c.GetInt64("groupno", -1) var ids []string if groupno == 0 { advice_ids := c.GetString("advice_id") ids = strings.Split(advice_ids, ",") } if groupno < 0 { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } if len(execution_time) <= 0 { utils.ErrorLog("execution_time") c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } timeLayout2 := "2006-01-02 15:04:05" loc, _ := time.LoadLocation("Local") theTime, errs := time.ParseInLocation(timeLayout2, execution_time, loc) if errs != nil { utils.ErrorLog(errs.Error()) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } adminUserInfo := c.GetMobileAdminUserInfo() var advice models.DoctorAdvice if groupno > 0 { advices, _ := service.FindAllDoctorAdviceByGoroupNo(adminUserInfo.Org.Id, groupno) for _, item := range advices { if item.ExecutionState == 1 { advice = item } } } else { advices, _ := service.FindDoctorAdviceByIds(adminUserInfo.Org.Id, ids) for _, item := range advices { if item.ExecutionState == 1 { advice = item } } } //if advice.ExecutionStaff != adminUserInfo.AdminUser.Id { // headNursePermission, getPermissionErr := service.GetAdminUserSpecialPermission(adminUserInfo.Org.Id, adminUserInfo.App.Id, adminUserInfo.AdminUser.Id, models.SpecialPermissionTypeHeadNurse) // if getPermissionErr != nil { // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } else if headNursePermission == nil { // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDialysisPermissionDeniedModify) // return // } //} if advice.StartTime > theTime.Unix() { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeAdviceExceBeforeStart) return } advices := models.DoctorAdvice{ ExecutionTime: theTime.Unix(), UpdatedTime: time.Now().Unix(), } var err error if groupno > 0 { err = service.ModifyExceDoctorAdviceByGroupNo(&advices, groupno, adminUserInfo.Org.Id) } else { err = service.BatchModifyExceOldDoctorAdvice(&advices, ids) } if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeUpdateDoctorAdviceFail) return } advice.ExecutionTime = theTime.Unix() c.ServeSuccessJSON(map[string]interface{}{ "msg": "ok", "advice": advice, "ids": ids, }) return } func (c *PatientApiController) CheckDoctorAdvice() { groupno, _ := c.GetInt64("groupno", -1) var ids []string if groupno == 0 { advice_ids := c.GetString("advice_id") ids = strings.Split(advice_ids, ",") if len(ids) <= 0 { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } } if groupno < 0 { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } adminUserInfo := c.GetMobileAdminUserInfo() // //appRole, _ := service.FindAdminRoleTypeById(adminUserInfo.Org.Id, adminUserInfo.AdminUser.Id, adminUserInfo.App.Id) //if appRole.UserType != 3 { // headNursePermission, getPermissionErr := service.GetAdminUserSpecialPermission(adminUserInfo.Org.Id, adminUserInfo.App.Id, adminUserInfo.AdminUser.Id, models.SpecialPermissionTypeHeadNurse) // if getPermissionErr != nil { // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } else if headNursePermission == nil { // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDialysisPermissionDeniedModify) // return // } //} var advice models.DoctorAdvice if groupno > 0 { advices, _ := service.FindAllDoctorAdviceByGoroupNo(adminUserInfo.Org.Id, groupno) for _, item := range advices { if item.CheckState == 0 { advice = item } } if advice.CheckState == 1 { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeAdviceChecked) return } if advice.ExecutionStaff >= 0 && advice.ExecutionStaff == adminUserInfo.AdminUser.Id { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeExceAndCheckNotOneUser) return } } else { advices, _ := service.FindDoctorAdviceByIds(adminUserInfo.Org.Id, ids) for _, item := range advices { if item.CheckState == 0 { advice = item } } if advice.CheckState == 1 { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeAdviceChecked) return } if advice.ExecutionStaff >= 0 && advice.ExecutionStaff == adminUserInfo.AdminUser.Id { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeExceAndCheckNotOneUser) return } } checker := adminUserInfo.AdminUser.Id theTime := time.Now() advices := models.DoctorAdvice{ CheckTime: theTime.Unix(), Checker: checker, UpdatedTime: time.Now().Unix(), } fmt.Println() var err error if groupno > 0 { err = service.CheckDoctorAdviceByGroupNo(&advices, groupno, adminUserInfo.Org.Id) } else { err = service.BatchCheckOldDoctorAdvice(&advices, ids) } if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeUpdateDoctorAdviceFail) return } advice.Checker = checker advice.CheckTime = theTime.Unix() advice.CheckState = 1 c.ServeSuccessJSON(map[string]interface{}{ "msg": "ok", "advice": advice, }) return } func (c *PatientApiController) EditAssessmentBeforeDislysis() { id, _ := c.GetInt64("patient", 0) assessmentDate := c.GetString("assessment_date", "") if id <= 0 || len(assessmentDate) != 10 { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } timeLayout := "2006-01-02" loc, _ := time.LoadLocation("Local") theTime, err := time.ParseInLocation(timeLayout+" 15:04:05", assessmentDate+" 00:00:00", loc) if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } theAssessmentDateTime := theTime.Unix() adminUserInfo := c.GetMobileAdminUserInfo() patient, _ := service.FindPatientById(adminUserInfo.Org.Id, id) if patient.ID == 0 { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodePatientNoExist) return } theEvaluation, getPEErr := service.MobileGetPredialysisEvaluation(adminUserInfo.Org.Id, id, theAssessmentDateTime) if getPEErr != nil { c.ErrorLog("获取透前评估失败:%v", getPEErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } //templateInfo,_ := service.GetOrgInfoTemplate(adminUserInfo.Org.Id) //appRole, _ := service.FindAdminRoleTypeById(adminUserInfo.Org.Id, adminUserInfo.AdminUser.Id, adminUserInfo.App.Id) var evaluation models.PredialysisEvaluation if theEvaluation != nil { //if appRole.UserType == 2 || appRole.UserType == 1 { evaluation = *theEvaluation //} else { // if theEvaluation.Creater != adminUserInfo.AdminUser.Id && theEvaluation.Creater != 0 { // headNursePermission, getPermissionErr := service.GetAdminUserSpecialPermission(adminUserInfo.Org.Id, adminUserInfo.App.Id, adminUserInfo.AdminUser.Id, models.SpecialPermissionTypeHeadNurse) // if getPermissionErr != nil { // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } else if headNursePermission == nil { // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDialysisPermissionDeniedModify) // return // } // } else { // evaluation = *theEvaluation // } //} } code := predialysisEvaluationFormData(&evaluation, c.Ctx.Input.RequestBody) if code > 0 { c.ServeFailJSONWithSGJErrorCode(code) return } if theEvaluation == nil { evaluation.CreatedTime = time.Now().Unix() evaluation.Status = 1 evaluation.AssessmentDate = theAssessmentDateTime evaluation.PatientId = id evaluation.UserOrgId = adminUserInfo.Org.Id //if appRole.UserType == 2 || appRole.UserType == 1 { // evaluation.AssessmentDoctor = adminUserInfo.AdminUser.Id // evaluation.AssessmentTime = time.Now().Unix() //} else { evaluation.Creater = adminUserInfo.AdminUser.Id //} } else { evaluation.UpdatedTime = time.Now().Unix() evaluation.Evaluator = adminUserInfo.AdminUser.Id //if appRole.UserType == 2 || appRole.UserType == 1 { // evaluation.AssessmentDoctor = adminUserInfo.AdminUser.Id // evaluation.AssessmentTime = time.Now().Unix() //} else { evaluation.Modifier = adminUserInfo.AdminUser.Id if evaluation.Creater == 0 { evaluation.Creater = adminUserInfo.AdminUser.Id } //} } //新增逻辑 var dewater_amount float64 dewater_amount = 0 if evaluation.DryWeight > 0 { dewater_amount = evaluation.WeightBefore - evaluation.DryWeight - evaluation.AdditionalWeight if dewater_amount <= 0 { dewater_amount = 0 } } else { dewater_amount = 0 } // 计算透析处方的相关超滤量 schedual, _ := service.MobileGetSchedualDetail(adminUserInfo.Org.Id, patient.ID, theAssessmentDateTime) var lastDialysisPrescribe *models.DialysisPrescription var dialysisSolution *models.DialysisSolution var dialysisPrescribe *models.DialysisPrescription var system_dialysisPrescribe *models.SystemPrescription var mode_id int64 dialysisPrescribe, _ = service.MobileGetDialysisPrescribe(adminUserInfo.Org.Id, id, theAssessmentDateTime) lastDialysisPrescribe, _ = service.MobileGetLastDialysisPrescribeByModeId(adminUserInfo.Org.Id, id, schedual.ModeId) if schedual != nil { // 获取透析模版 dialysisSolution, _ = service.MobileGetDialysisSolutionByModeId(adminUserInfo.Org.Id, id, schedual.ModeId) system_dialysisPrescribe, _ = service.MobileGetSystemDialysisPrescribeByModeId(adminUserInfo.Org.Id, schedual.ModeId) mode_id = schedual.ModeId } else { // 获取透析模版 dialysisSolution, _ = service.MobileGetDialysisSolution(adminUserInfo.Org.Id, id) if dialysisPrescribe == nil && dialysisSolution != nil { mode_id = dialysisSolution.ModeId } if dialysisPrescribe == nil && dialysisSolution == nil { mode_id = 0 } } // 插入透析处方 if dialysisPrescribe == nil && dialysisSolution != nil { var newprescribe models.DialysisPrescription newprescribe.UserOrgId = dialysisSolution.UserOrgId newprescribe.PatientId = dialysisSolution.PatientId newprescribe.Anticoagulant = dialysisSolution.Anticoagulant newprescribe.AnticoagulantShouji = dialysisSolution.AnticoagulantShouji newprescribe.AnticoagulantWeichi = dialysisSolution.AnticoagulantWeichi newprescribe.AnticoagulantZongliang = dialysisSolution.AnticoagulantZongliang newprescribe.AnticoagulantGaimingcheng = dialysisSolution.AnticoagulantGaimingcheng newprescribe.AnticoagulantGaijiliang = dialysisSolution.AnticoagulantGaijiliang newprescribe.ModeId = dialysisSolution.ModeId newprescribe.DialysisDuration = dialysisSolution.DialysisDuration newprescribe.ReplacementWay = dialysisSolution.ReplacementWay newprescribe.HemodialysisMachine = dialysisSolution.HemodialysisMachine newprescribe.BloodFilter = dialysisSolution.BloodFilter newprescribe.PerfusionApparatus = dialysisSolution.PerfusionApparatus newprescribe.BloodFlowVolume = dialysisSolution.BloodFlowVolume newprescribe.DisplaceLiqui = dialysisSolution.DisplaceLiqui newprescribe.Glucose = dialysisSolution.Glucose newprescribe.DialysateFlow = dialysisSolution.DialysateFlow newprescribe.Kalium = dialysisSolution.Kalium newprescribe.Sodium = dialysisSolution.Sodium newprescribe.Calcium = dialysisSolution.Calcium newprescribe.Bicarbonate = dialysisSolution.Bicarbonate newprescribe.DialysateTemperature = dialysisSolution.DialysateTemperature newprescribe.Conductivity = dialysisSolution.Conductivity newprescribe.BodyFluid = dialysisSolution.BodyFluid newprescribe.SpecialMedicine = dialysisSolution.SpecialMedicine newprescribe.SpecialMedicineOther = dialysisSolution.SpecialMedicineOther newprescribe.DisplaceLiquiPart = dialysisSolution.DisplaceLiquiPart newprescribe.DisplaceLiquiValue = dialysisSolution.DisplaceLiquiValue newprescribe.BloodAccess = dialysisSolution.BloodAccess newprescribe.Ultrafiltration = dialysisSolution.Ultrafiltration newprescribe.DialysisDurationHour = dialysisSolution.DialysisDurationHour newprescribe.DialysisDurationMinute = dialysisSolution.DialysisDurationMinute newprescribe.TargetUltrafiltration = dialysisSolution.TargetUltrafiltration newprescribe.DialysateFormulation = dialysisSolution.DialysateFormulation newprescribe.Dialyzer = dialysisSolution.Dialyzer newprescribe.ReplacementTotal = dialysisSolution.ReplacementTotal newprescribe.DialyzerPerfusionApparatus = dialysisSolution.DialyzerPerfusionApparatus newprescribe.BodyFluidOther = dialysisSolution.BodyFluidOther newprescribe.TargetKtv = dialysisSolution.TargetKtv newprescribe.CreatedTime = time.Now().Unix() newprescribe.UpdatedTime = time.Now().Unix() newprescribe.RecordDate = theAssessmentDateTime newprescribe.DewaterAmount = dewater_amount newprescribe.TargetUltrafiltration = dewater_amount newprescribe.Status = 1 err := service.AddSigleRecord(&newprescribe) if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCommitFail) } } if dialysisPrescribe == nil && dialysisSolution == nil { if lastDialysisPrescribe != nil { var newprescribe models.DialysisPrescription newprescribe.UserOrgId = lastDialysisPrescribe.UserOrgId newprescribe.PatientId = lastDialysisPrescribe.PatientId newprescribe.Anticoagulant = lastDialysisPrescribe.Anticoagulant newprescribe.AnticoagulantShouji = lastDialysisPrescribe.AnticoagulantShouji newprescribe.AnticoagulantWeichi = lastDialysisPrescribe.AnticoagulantWeichi newprescribe.AnticoagulantZongliang = lastDialysisPrescribe.AnticoagulantZongliang newprescribe.AnticoagulantGaimingcheng = lastDialysisPrescribe.AnticoagulantGaimingcheng newprescribe.AnticoagulantGaijiliang = lastDialysisPrescribe.AnticoagulantGaijiliang newprescribe.ModeId = lastDialysisPrescribe.ModeId newprescribe.DialysisDuration = lastDialysisPrescribe.DialysisDuration newprescribe.ReplacementWay = lastDialysisPrescribe.ReplacementWay newprescribe.HemodialysisMachine = lastDialysisPrescribe.HemodialysisMachine newprescribe.BloodFilter = lastDialysisPrescribe.BloodFilter newprescribe.PerfusionApparatus = lastDialysisPrescribe.PerfusionApparatus newprescribe.BloodFlowVolume = lastDialysisPrescribe.BloodFlowVolume newprescribe.DisplaceLiqui = lastDialysisPrescribe.DisplaceLiqui newprescribe.Glucose = lastDialysisPrescribe.Glucose newprescribe.DialysateFlow = lastDialysisPrescribe.DialysateFlow newprescribe.Kalium = lastDialysisPrescribe.Kalium newprescribe.Sodium = lastDialysisPrescribe.Sodium newprescribe.Calcium = lastDialysisPrescribe.Calcium newprescribe.Bicarbonate = lastDialysisPrescribe.Bicarbonate newprescribe.DialysateTemperature = lastDialysisPrescribe.DialysateTemperature newprescribe.Conductivity = lastDialysisPrescribe.Conductivity newprescribe.BodyFluid = lastDialysisPrescribe.BodyFluid newprescribe.SpecialMedicine = lastDialysisPrescribe.SpecialMedicine newprescribe.SpecialMedicineOther = lastDialysisPrescribe.SpecialMedicineOther newprescribe.DisplaceLiquiPart = lastDialysisPrescribe.DisplaceLiquiPart newprescribe.DisplaceLiquiValue = lastDialysisPrescribe.DisplaceLiquiValue newprescribe.BloodAccess = lastDialysisPrescribe.BloodAccess newprescribe.Ultrafiltration = lastDialysisPrescribe.Ultrafiltration newprescribe.DialysisDurationHour = lastDialysisPrescribe.DialysisDurationHour newprescribe.DialysisDurationMinute = lastDialysisPrescribe.DialysisDurationMinute newprescribe.DialysateFormulation = lastDialysisPrescribe.DialysateFormulation newprescribe.Dialyzer = lastDialysisPrescribe.Dialyzer newprescribe.ReplacementTotal = lastDialysisPrescribe.ReplacementTotal newprescribe.DialyzerPerfusionApparatus = lastDialysisPrescribe.DialyzerPerfusionApparatus newprescribe.BodyFluidOther = lastDialysisPrescribe.BodyFluidOther newprescribe.TargetKtv = lastDialysisPrescribe.TargetKtv newprescribe.CreatedTime = time.Now().Unix() newprescribe.UpdatedTime = time.Now().Unix() newprescribe.RecordDate = theAssessmentDateTime newprescribe.DewaterAmount = dewater_amount newprescribe.TargetUltrafiltration = dewater_amount newprescribe.Status = 1 err := service.AddSigleRecord(&newprescribe) if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCommitFail) } } else if system_dialysisPrescribe != nil { var newprescribe models.DialysisPrescription newprescribe.UserOrgId = system_dialysisPrescribe.UserOrgId newprescribe.PatientId = id newprescribe.Anticoagulant = system_dialysisPrescribe.Anticoagulant newprescribe.AnticoagulantShouji = system_dialysisPrescribe.AnticoagulantShouji newprescribe.AnticoagulantWeichi = system_dialysisPrescribe.AnticoagulantWeichi newprescribe.AnticoagulantZongliang = system_dialysisPrescribe.AnticoagulantZongliang newprescribe.AnticoagulantGaimingcheng = system_dialysisPrescribe.AnticoagulantGaimingcheng newprescribe.AnticoagulantGaijiliang = system_dialysisPrescribe.AnticoagulantGaijiliang newprescribe.ModeId = system_dialysisPrescribe.ModeId newprescribe.DialysisDuration = system_dialysisPrescribe.DialysisDuration newprescribe.ReplacementWay = system_dialysisPrescribe.ReplacementWay newprescribe.HemodialysisMachine = system_dialysisPrescribe.HemodialysisMachine newprescribe.BloodFilter = system_dialysisPrescribe.BloodFilter newprescribe.PerfusionApparatus = system_dialysisPrescribe.PerfusionApparatus newprescribe.BloodFlowVolume = system_dialysisPrescribe.BloodFlowVolume newprescribe.DisplaceLiqui = system_dialysisPrescribe.DisplaceLiqui newprescribe.Glucose = system_dialysisPrescribe.Glucose newprescribe.DialysateFlow = system_dialysisPrescribe.DialysateFlow newprescribe.Kalium = system_dialysisPrescribe.Kalium newprescribe.Sodium = system_dialysisPrescribe.Sodium newprescribe.Calcium = system_dialysisPrescribe.Calcium newprescribe.Bicarbonate = system_dialysisPrescribe.Bicarbonate newprescribe.DialysateTemperature = system_dialysisPrescribe.DialysateTemperature newprescribe.Conductivity = system_dialysisPrescribe.Conductivity newprescribe.BodyFluid = system_dialysisPrescribe.BodyFluid newprescribe.SpecialMedicine = system_dialysisPrescribe.SpecialMedicine newprescribe.SpecialMedicineOther = system_dialysisPrescribe.SpecialMedicineOther newprescribe.DisplaceLiquiPart = system_dialysisPrescribe.DisplaceLiquiPart newprescribe.DisplaceLiquiValue = system_dialysisPrescribe.DisplaceLiquiValue newprescribe.BloodAccess = system_dialysisPrescribe.BloodAccess newprescribe.Ultrafiltration = system_dialysisPrescribe.Ultrafiltration newprescribe.DialysisDurationHour = system_dialysisPrescribe.DialysisDurationHour newprescribe.DialysisDurationMinute = system_dialysisPrescribe.DialysisDurationMinute newprescribe.DialysateFormulation = system_dialysisPrescribe.DialysateFormulation newprescribe.Dialyzer = system_dialysisPrescribe.Dialyzer newprescribe.ReplacementTotal = system_dialysisPrescribe.ReplacementTotal newprescribe.DialyzerPerfusionApparatus = system_dialysisPrescribe.DialyzerPerfusionApparatus newprescribe.BodyFluidOther = system_dialysisPrescribe.BodyFluidOther newprescribe.TargetKtv = system_dialysisPrescribe.TargetKtv newprescribe.CreatedTime = time.Now().Unix() newprescribe.UpdatedTime = time.Now().Unix() newprescribe.RecordDate = theAssessmentDateTime newprescribe.DewaterAmount = dewater_amount newprescribe.TargetUltrafiltration = dewater_amount newprescribe.Status = 1 err := service.AddSigleRecord(&newprescribe) if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCommitFail) } } else { var newprescribe models.DialysisPrescription newprescribe.UserOrgId = adminUserInfo.Org.Id newprescribe.PatientId = id newprescribe.ModeId = mode_id newprescribe.CreatedTime = time.Now().Unix() newprescribe.UpdatedTime = time.Now().Unix() newprescribe.RecordDate = theAssessmentDateTime newprescribe.DewaterAmount = dewater_amount newprescribe.TargetUltrafiltration = dewater_amount newprescribe.Status = 1 err := service.AddSigleRecord(&newprescribe) if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCommitFail) } } } // 手动修改透前评估的时候,如果透析处方已经存在,则不修改对应的透析处方 // if dialysisPrescribe != nil { // dialysisPrescribe.UpdatedTime = time.Now().Unix() // dialysisPrescribe.RecordDate = theAssessmentDateTime // dialysisPrescribe.DewaterAmount = dewater_amount // dialysisPrescribe.TargetUltrafiltration = dewater_amount // dialysisPrescribe.Status = 1 // updateErr := service.UpDateDialysisPrescription(dialysisPrescribe) // if updateErr != nil { // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCommitFail) // } // } err = service.UpadatePredialysisEvaluation(&evaluation) if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDBUpdate) return } c.ServeSuccessJSON(map[string]interface{}{ "msg": "ok", "evaluation": evaluation, }) return } func defaultSolutionFormData(solution *models.DialysisSolution, data []byte, method string) (code int) { dataBody := make(map[string]interface{}, 0) err := json.Unmarshal(data, &dataBody) utils.InfoLog(string(data)) if err != nil { utils.ErrorLog(err.Error()) code = enums.ErrorCodeParamWrong return } // if method == "create" { if dataBody["mode"] == nil || reflect.TypeOf(dataBody["mode"]).String() != "float64" { utils.ErrorLog("mode") code = enums.ErrorCodeParamWrong return } mode := int64(dataBody["mode"].(float64)) if mode <= 0 { utils.ErrorLog("mode <= 0") code = enums.ErrorCodeParamWrong return } solution.ModeId = mode if dataBody["mode_name"] == nil || reflect.TypeOf(dataBody["mode_name"]).String() != "string" { utils.ErrorLog("mode_name") code = enums.ErrorCodeParamWrong return } modeName, _ := dataBody["mode_name"].(string) if len(modeName) == 0 { utils.ErrorLog("len(mode_name) == 0") code = enums.ErrorCodeParamWrong return } solution.ModeName = modeName solution.Name = modeName // } if dataBody["dialysis_duration"] != nil && reflect.TypeOf(dataBody["dialysis_duration"]).String() == "string" { dialysisDuration, _ := strconv.ParseFloat(dataBody["dialysis_duration"].(string), 64) solution.DialysisDuration = dialysisDuration } if dataBody["dialysis_duration"] != nil { if reflect.TypeOf(dataBody["dialysis_duration"]).String() == "string" { dialysisDuration, _ := strconv.ParseFloat(dataBody["dialysis_duration"].(string), 64) solution.DialysisDuration = dialysisDuration } else if reflect.TypeOf(dataBody["dialysis_duration"]).String() == "float64" { dialysisDuration := dataBody["dialysis_duration"].(float64) solution.DialysisDuration = dialysisDuration } } if dataBody["dialyzer"] != nil && reflect.TypeOf(dataBody["dialyzer"]).String() == "float64" { dialyzer := int64(dataBody["dialyzer"].(float64)) solution.Dialyzer = dialyzer } if dataBody["perfusion_apparatus"] != nil && reflect.TypeOf(dataBody["perfusion_apparatus"]).String() == "float64" { perfusionApparatus := int64(dataBody["perfusion_apparatus"].(float64)) solution.PerfusionApparatus = perfusionApparatus } if dataBody["blood_flow_volume"] != nil { if reflect.TypeOf(dataBody["blood_flow_volume"]).String() == "string" { bloodFlowVolume, _ := strconv.ParseFloat(dataBody["blood_flow_volume"].(string), 64) solution.BloodFlowVolume = bloodFlowVolume } else if reflect.TypeOf(dataBody["blood_flow_volume"]).String() == "float64" { bloodFlowVolume := dataBody["blood_flow_volume"].(float64) solution.BloodFlowVolume = bloodFlowVolume } } if dataBody["hemodialysis_machine"] != nil && reflect.TypeOf(dataBody["hemodialysis_machine"]).String() == "float64" { hemodialysisMachine := int64(dataBody["hemodialysis_machine"].(float64)) solution.HemodialysisMachine = hemodialysisMachine } if dataBody["dewater"] != nil { if reflect.TypeOf(dataBody["dewater"]).String() == "string" { dewater, _ := strconv.ParseFloat(dataBody["dewater"].(string), 64) solution.Dewater = dewater } else if reflect.TypeOf(dataBody["dewater"]).String() == "float64" { dewater := dataBody["dewater"].(float64) solution.Dewater = dewater } } if dataBody["replacement_total"] != nil { if reflect.TypeOf(dataBody["replacement_total"]).String() == "string" { replacementTotal, _ := strconv.ParseFloat(dataBody["replacement_total"].(string), 64) solution.ReplacementTotal = replacementTotal } else if reflect.TypeOf(dataBody["replacement_total"]).String() == "float64" { replacementTotal := dataBody["replacement_total"].(float64) solution.ReplacementTotal = replacementTotal } } if dataBody["displace_liqui"] != nil { if reflect.TypeOf(dataBody["displace_liqui"]).String() == "string" { displaceLiqui, _ := strconv.ParseFloat(dataBody["displace_liqui"].(string), 64) solution.DisplaceLiqui = displaceLiqui } else if reflect.TypeOf(dataBody["displace_liqui"]).String() == "float64" { displaceLiqui := dataBody["displace_liqui"].(float64) solution.DisplaceLiqui = displaceLiqui } } if dataBody["replacement_way"] != nil && reflect.TypeOf(dataBody["replacement_way"]).String() == "float64" { replacementWay := int64(dataBody["replacement_way"].(float64)) solution.ReplacementWay = replacementWay } if dataBody["anticoagulant"] != nil && reflect.TypeOf(dataBody["anticoagulant"]).String() == "float64" { anticoagulant := int64(dataBody["anticoagulant"].(float64)) solution.Anticoagulant = anticoagulant } if dataBody["anticoagulant_shouji"] != nil { if reflect.TypeOf(dataBody["anticoagulant_shouji"]).String() == "string" { anticoagulantShouji, _ := strconv.ParseFloat(dataBody["anticoagulant_shouji"].(string), 64) solution.AnticoagulantShouji = anticoagulantShouji } else if reflect.TypeOf(dataBody["anticoagulant_shouji"]).String() == "float64" { anticoagulantShouji := dataBody["anticoagulant_shouji"].(float64) solution.AnticoagulantShouji = anticoagulantShouji } } if dataBody["anticoagulant_weichi"] != nil { if reflect.TypeOf(dataBody["anticoagulant_weichi"]).String() == "string" { anticoagulantWeichi, _ := strconv.ParseFloat(dataBody["anticoagulant_weichi"].(string), 64) solution.AnticoagulantWeichi = anticoagulantWeichi } else if reflect.TypeOf(dataBody["anticoagulant_weichi"]).String() == "float64" { anticoagulantWeichi := dataBody["anticoagulant_weichi"].(float64) solution.AnticoagulantWeichi = anticoagulantWeichi } } if dataBody["anticoagulant_zongliang"] != nil { if reflect.TypeOf(dataBody["anticoagulant_zongliang"]).String() == "string" { anticoagulantZongliang, _ := strconv.ParseFloat(dataBody["anticoagulant_zongliang"].(string), 64) solution.AnticoagulantZongliang = anticoagulantZongliang } else if reflect.TypeOf(dataBody["anticoagulant_zongliang"]).String() == "float64" { anticoagulantZongliang := dataBody["anticoagulant_zongliang"].(float64) solution.AnticoagulantZongliang = anticoagulantZongliang } } if dataBody["anticoagulant_gaimingcheng"] != nil && reflect.TypeOf(dataBody["anticoagulant_gaimingcheng"]).String() == "string" { anticoagulantGaimingcheng, _ := dataBody["anticoagulant_gaimingcheng"].(string) solution.AnticoagulantGaimingcheng = anticoagulantGaimingcheng } if dataBody["anticoagulant_gaijiliang"] != nil && reflect.TypeOf(dataBody["anticoagulant_gaijiliang"]).String() == "string" { anticoagulantGaijiliang, _ := dataBody["anticoagulant_gaijiliang"].(string) solution.AnticoagulantGaijiliang = anticoagulantGaijiliang } if dataBody["kalium"] != nil { if reflect.TypeOf(dataBody["kalium"]).String() == "string" { kalium, _ := strconv.ParseFloat(dataBody["kalium"].(string), 64) solution.Kalium = kalium } else if reflect.TypeOf(dataBody["kalium"]).String() == "float64" { kalium := dataBody["kalium"].(float64) solution.Kalium = kalium } } if dataBody["sodium"] != nil { if reflect.TypeOf(dataBody["sodium"]).String() == "string" { sodium, _ := strconv.ParseFloat(dataBody["sodium"].(string), 64) solution.Sodium = sodium } else if reflect.TypeOf(dataBody["sodium"]).String() == "float64" { sodium := dataBody["sodium"].(float64) solution.Sodium = sodium } } if dataBody["calcium"] != nil && reflect.TypeOf(dataBody["calcium"]).String() == "string" { if reflect.TypeOf(dataBody["calcium"]).String() == "string" { calcium, _ := strconv.ParseFloat(dataBody["calcium"].(string), 64) solution.Calcium = calcium } else if reflect.TypeOf(dataBody["calcium"]).String() == "float64" { calcium := dataBody["calcium"].(float64) solution.Calcium = calcium } } if dataBody["bicarbonate"] != nil { if reflect.TypeOf(dataBody["bicarbonate"]).String() == "string" { bicarbonate, _ := strconv.ParseFloat(dataBody["bicarbonate"].(string), 64) solution.Bicarbonate = bicarbonate } else if reflect.TypeOf(dataBody["bicarbonate"]).String() == "float64" { bicarbonate := dataBody["bicarbonate"].(float64) solution.Bicarbonate = bicarbonate } } if dataBody["glucose"] != nil { if reflect.TypeOf(dataBody["glucose"]).String() == "string" { glucose, _ := strconv.ParseFloat(dataBody["glucose"].(string), 64) solution.Glucose = glucose } else if reflect.TypeOf(dataBody["glucose"]).String() == "float64" { glucose := dataBody["glucose"].(float64) solution.Glucose = glucose } } // if dataBody["dry_weight"] != nil { // if reflect.TypeOf(dataBody["dry_weight"]).String() == "string" { // dryWeight, _ := strconv.ParseFloat(dataBody["dry_weight"].(string), 64) // solution.DryWeight = dryWeight // } else if reflect.TypeOf(dataBody["dry_weight"]).String() == "float64" { // dryWeight := dataBody["dry_weight"].(float64) // solution.DryWeight = dryWeight // } // } if dataBody["dialysate_flow"] != nil { if reflect.TypeOf(dataBody["dialysate_flow"]).String() == "string" { dialysateFlow, _ := strconv.ParseFloat(dataBody["dialysate_flow"].(string), 64) solution.DialysateFlow = dialysateFlow } else if reflect.TypeOf(dataBody["dialysate_flow"]).String() == "float64" { dialysateFlow := dataBody["dialysate_flow"].(float64) solution.DialysateFlow = dialysateFlow } } if dataBody["dialysate_temperature"] != nil { if reflect.TypeOf(dataBody["dialysate_temperature"]).String() == "string" { dialysateTemperature, _ := strconv.ParseFloat(dataBody["dialysate_temperature"].(string), 64) solution.DialysateTemperature = dialysateTemperature } else if reflect.TypeOf(dataBody["dialysate_temperature"]).String() == "float64" { dialysateTemperature := dataBody["dialysate_temperature"].(float64) solution.DialysateTemperature = dialysateTemperature } } if dataBody["conductivity"] != nil { if reflect.TypeOf(dataBody["conductivity"]).String() == "string" { conductivity, _ := strconv.ParseFloat(dataBody["conductivity"].(string), 64) solution.Conductivity = conductivity } else if reflect.TypeOf(dataBody["conductivity"]).String() == "float64" { conductivity := dataBody["conductivity"].(float64) solution.Conductivity = conductivity } } if dataBody["remark"] != nil && reflect.TypeOf(dataBody["remark"]).String() == "string" { remark := dataBody["remark"].(string) solution.Remark = remark } if dataBody["dialysis_duration_hour"] != nil { if reflect.TypeOf(dataBody["dialysis_duration_hour"]).String() == "string" { dialysisDurationHour, _ := strconv.ParseInt(dataBody["dialysis_duration_hour"].(string), 10, 64) solution.DialysisDurationHour = dialysisDurationHour } else if reflect.TypeOf(dataBody["dialysis_duration_hour"]).String() == "float64" { dialysisDurationHour := dataBody["dialysis_duration_hour"].(float64) solution.DialysisDurationHour = int64(dialysisDurationHour) } } if dataBody["dialysis_duration_minute"] != nil { if reflect.TypeOf(dataBody["dialysis_duration_minute"]).String() == "string" { dialysisDurationMinute, _ := strconv.ParseInt(dataBody["dialysis_duration_minute"].(string), 10, 64) solution.DialysisDurationMinute = dialysisDurationMinute } else if reflect.TypeOf(dataBody["dialysis_duration_minute"]).String() == "float64" { dialysisDurationMinute := dataBody["dialysis_duration_minute"].(float64) solution.DialysisDurationMinute = int64(dialysisDurationMinute) } } if dataBody["target_ultrafiltration"] != nil { if reflect.TypeOf(dataBody["target_ultrafiltration"]).String() == "string" { targetUltrafiltration, _ := strconv.ParseFloat(dataBody["target_ultrafiltration"].(string), 64) solution.TargetUltrafiltration = targetUltrafiltration } else if reflect.TypeOf(dataBody["target_ultrafiltration"]).String() == "float64" { targetUltrafiltration := dataBody["target_ultrafiltration"].(float64) solution.TargetUltrafiltration = targetUltrafiltration } } if dataBody["dialysate_formulation"] != nil { if reflect.TypeOf(dataBody["dialysate_formulation"]).String() == "string" { dialysateFormulation, _ := strconv.ParseInt(dataBody["dialysate_formulation"].(string), 10, 64) solution.DialysateFormulation = dialysateFormulation } else if reflect.TypeOf(dataBody["dialysate_formulation"]).String() == "float64" { dialysateFormulation := dataBody["dialysate_formulation"].(float64) solution.DialysateFormulation = int64(dialysateFormulation) } } return } func predialysisEvaluationFormData(evaluation *models.PredialysisEvaluation, data []byte) (code int) { dataBody := make(map[string]interface{}, 0) err := json.Unmarshal(data, &dataBody) utils.InfoLog(string(data)) if err != nil { utils.ErrorLog(err.Error()) code = enums.ErrorCodeParamWrong return } if dataBody["weight_before"] != nil && reflect.TypeOf(dataBody["weight_before"]).String() == "string" { weightVefore, _ := strconv.ParseFloat(dataBody["weight_before"].(string), 64) evaluation.WeightBefore = weightVefore } // fmt.Println(dataBody["dry_weight"]) // fmt.Println(reflect.TypeOf(dataBody["dry_weight"]).String()) if dataBody["dry_weight"] != nil && reflect.TypeOf(dataBody["dry_weight"]).String() == "string" { additionalWeight, _ := strconv.ParseFloat(dataBody["dry_weight"].(string), 64) fmt.Println(additionalWeight) evaluation.DryWeight = additionalWeight } if dataBody["additional_weight"] != nil && reflect.TypeOf(dataBody["additional_weight"]).String() == "string" { additionalWeight, _ := strconv.ParseFloat(dataBody["additional_weight"].(string), 64) fmt.Println(additionalWeight) evaluation.AdditionalWeight = additionalWeight } if dataBody["temperature"] != nil && reflect.TypeOf(dataBody["temperature"]).String() == "string" { Temperature, _ := strconv.ParseFloat(dataBody["temperature"].(string), 64) evaluation.Temperature = Temperature } if dataBody["systolic_blood_pressure"] != nil && reflect.TypeOf(dataBody["systolic_blood_pressure"]).String() == "string" { systolicBloodPressure, _ := strconv.ParseFloat(dataBody["systolic_blood_pressure"].(string), 64) evaluation.SystolicBloodPressure = systolicBloodPressure } if dataBody["diastolic_blood_pressure"] != nil && reflect.TypeOf(dataBody["diastolic_blood_pressure"]).String() == "string" { diastolicBloodPressure, _ := strconv.ParseFloat(dataBody["diastolic_blood_pressure"].(string), 64) evaluation.DiastolicBloodPressure = diastolicBloodPressure } if dataBody["pulse_frequency"] != nil && reflect.TypeOf(dataBody["pulse_frequency"]).String() == "string" { pulseFrequency, _ := strconv.ParseFloat(dataBody["pulse_frequency"].(string), 64) evaluation.PulseFrequency = pulseFrequency } if dataBody["breathing_rate"] != nil && reflect.TypeOf(dataBody["breathing_rate"]).String() == "string" { breathingRate, _ := strconv.ParseFloat(dataBody["breathing_rate"].(string), 64) evaluation.BreathingRate = breathingRate } if dataBody["last_post_dialysis"] != nil && reflect.TypeOf(dataBody["last_post_dialysis"]).String() == "string" { lastPostDialysis, _ := dataBody["last_post_dialysis"].(string) evaluation.LastPostDialysis = lastPostDialysis } if dataBody["dialysis_interphase"] != nil && reflect.TypeOf(dataBody["dialysis_interphase"]).String() == "string" { dialysisInterphase, _ := dataBody["dialysis_interphase"].(string) evaluation.DialysisInterphase = dialysisInterphase } if dataBody["symptom_before_dialysis"] != nil && reflect.TypeOf(dataBody["symptom_before_dialysis"]).String() == "string" { symptomBeforeDialysis, _ := dataBody["symptom_before_dialysis"].(string) evaluation.SymptomBeforeDialysis = symptomBeforeDialysis } if dataBody["catheter"] != nil && reflect.TypeOf(dataBody["catheter"]).String() == "string" { catheter, _ := dataBody["catheter"].(string) evaluation.Catheter = catheter } if dataBody["catheter_bend"] != nil && reflect.TypeOf(dataBody["catheter_bend"]).String() == "float64" { catheter_bend := int(dataBody["catheter_bend"].(float64)) evaluation.CatheterBend = catheter_bend } if dataBody["complication"] != nil && reflect.TypeOf(dataBody["complication"]).String() == "string" { Complication, _ := dataBody["complication"].(string) evaluation.Complication = Complication } if dataBody["remark"] != nil && reflect.TypeOf(dataBody["remark"]).String() == "string" { remark := dataBody["remark"].(string) evaluation.Remark = remark } if dataBody["machine_type"] != nil && reflect.TypeOf(dataBody["machine_type"]).String() == "string" { machine_type := dataBody["machine_type"].(string) evaluation.MachineType = machine_type } if dataBody["blood_access_part_id"] != nil && reflect.TypeOf(dataBody["blood_access_part_id"]).String() == "float64" { blood_access_part_id := int64(dataBody["blood_access_part_id"].(float64)) evaluation.BloodAccessPartId = blood_access_part_id } if dataBody["blood_access_part_opera_id"] != nil && reflect.TypeOf(dataBody["blood_access_part_opera_id"]).String() == "float64" { blood_access_part_opera_id := int64(dataBody["blood_access_part_opera_id"].(float64)) evaluation.BloodAccessPartOperaId = blood_access_part_opera_id } if dataBody["internal_fistula"] != nil && reflect.TypeOf(dataBody["internal_fistula"]).String() == "string" { internal_fistula, _ := dataBody["internal_fistula"].(string) evaluation.InternalFistula = internal_fistula } if dataBody["internal_fistula_skin"] != nil && reflect.TypeOf(dataBody["internal_fistula_skin"]).String() == "string" { internal_fistula_skin := dataBody["internal_fistula_skin"].(string) evaluation.InternalFistulaSkin = internal_fistula_skin } if dataBody["is_hemorrhage"] != nil && reflect.TypeOf(dataBody["is_hemorrhage"]).String() == "float64" { is_hemorrhage := int64(dataBody["is_hemorrhage"].(float64)) if is_hemorrhage != 1 && is_hemorrhage != 2 { is_hemorrhage = 0 } evaluation.IsHemorrhage = is_hemorrhage if is_hemorrhage == 1 { if dataBody["hemorrhage"] != nil && reflect.TypeOf(dataBody["hemorrhage"]).String() == "string" { hemorrhage, _ := dataBody["hemorrhage"].(string) evaluation.Hemorrhage = hemorrhage } if dataBody["hemorrhage_other"] != nil && reflect.TypeOf(dataBody["hemorrhage_other"]).String() == "string" { hemorrhage_other, _ := dataBody["hemorrhage_other"].(string) evaluation.HemorrhageOther = hemorrhage_other } } } else { evaluation.IsHemorrhage = 0 } if dataBody["blood_access_internal_fistula"] != nil && reflect.TypeOf(dataBody["blood_access_internal_fistula"]).String() == "string" { blood_access_internal_fistula, _ := dataBody["blood_access_internal_fistula"].(string) evaluation.BloodAccessInternalFistula = blood_access_internal_fistula } if dataBody["internal_fistula_other"] != nil && reflect.TypeOf(dataBody["internal_fistula_other"]).String() == "string" { internal_fistula_other, _ := dataBody["internal_fistula_other"].(string) evaluation.InternalFistulaOther = internal_fistula_other } if dataBody["blood_access_noise"] != nil && reflect.TypeOf(dataBody["blood_access_noise"]).String() == "float64" { blood_access_noise := int64(dataBody["blood_access_noise"].(float64)) evaluation.BloodAccessNoise = blood_access_noise } if dataBody["puncture_way"] != nil && reflect.TypeOf(dataBody["puncture_way"]).String() == "float64" { puncture_way := int64(dataBody["puncture_way"].(float64)) evaluation.PunctureWay = puncture_way } if dataBody["venous_catheterization"] != nil && reflect.TypeOf(dataBody["venous_catheterization"]).String() == "float64" { venous_catheterization := int64(dataBody["venous_catheterization"].(float64)) evaluation.VenousCatheterization = venous_catheterization } if dataBody["venous_catheterization_part"] != nil && reflect.TypeOf(dataBody["venous_catheterization_part"]).String() == "float64" { venous_catheterization_part := int64(dataBody["venous_catheterization_part"].(float64)) evaluation.VenousCatheterizationPart = venous_catheterization_part } if dataBody["venous_catheterization_part_other"] != nil && reflect.TypeOf(dataBody["venous_catheterization_part_other"]).String() == "string" { venous_catheterization_part_other, _ := dataBody["venous_catheterization_part_other"].(string) evaluation.VenousCatheterizationPartOther = venous_catheterization_part_other } if dataBody["ductus_arantii"] != nil && reflect.TypeOf(dataBody["ductus_arantii"]).String() == "string" { ductus_arantii, _ := dataBody["ductus_arantii"].(string) evaluation.DuctusArantii = ductus_arantii } if dataBody["emergency_treatment"] != nil && reflect.TypeOf(dataBody["emergency_treatment"]).String() == "float64" { emergency_treatment := int64(dataBody["emergency_treatment"].(float64)) evaluation.EmergencyTreatment = emergency_treatment } if dataBody["emergency_treatment_other"] != nil && reflect.TypeOf(dataBody["emergency_treatment_other"]).String() == "string" { emergency_treatment_other, _ := dataBody["emergency_treatment_other"].(string) evaluation.EmergencyTreatmentOther = emergency_treatment_other } if dataBody["dialysis_count"] != nil && reflect.TypeOf(dataBody["dialysis_count"]).String() == "string" { dialysis_count, _ := dataBody["dialysis_count"].(string) count, _ := strconv.ParseInt(dialysis_count, 10, 64) evaluation.DialysisCount = count } if dataBody["is_infect"] != nil && reflect.TypeOf(dataBody["is_infect"]).String() == "string" { is_infect, _ := dataBody["is_infect"].(string) infect, _ := strconv.ParseInt(is_infect, 10, 64) evaluation.IsInfect = infect } if dataBody["exposed"] != nil && reflect.TypeOf(dataBody["exposed"]).String() == "string" { exposed, _ := strconv.ParseFloat(dataBody["exposed"].(string), 64) evaluation.Exposed = exposed } if dataBody["skin"] != nil && reflect.TypeOf(dataBody["skin"]).String() == "string" { skin, _ := dataBody["skin"].(string) skins, _ := strconv.ParseInt(skin, 10, 64) evaluation.Skin = skins } if dataBody["skin_other"] != nil && reflect.TypeOf(dataBody["skin_other"]).String() == "string" { skin_other, _ := dataBody["skin_other"].(string) evaluation.SkinOther = skin_other } if dataBody["infect_other"] != nil && reflect.TypeOf(dataBody["infect_other"]).String() == "string" { infect_other, _ := dataBody["infect_other"].(string) evaluation.InfectOther = infect_other } if dataBody["ductus_arantii_other"] != nil && reflect.TypeOf(dataBody["ductus_arantii_other"]).String() == "string" { ductus_arantii_other, _ := dataBody["ductus_arantii_other"].(string) evaluation.DuctusArantiiOther = ductus_arantii_other } if dataBody["puncture_needle"] != nil && reflect.TypeOf(dataBody["puncture_needle"]).String() == "string" { punctureNeedle, _ := dataBody["puncture_needle"].(string) evaluation.PunctureNeedle = punctureNeedle } return } func adviceFormData(advice *models.DoctorAdvice, data []byte, action string) (code int) { dataBody := make(map[string]interface{}, 0) err := json.Unmarshal(data, &dataBody) if err != nil { utils.ErrorLog(err.Error()) code = enums.ErrorCodeParamWrong return } timeLayout := "2006-01-02" loc, _ := time.LoadLocation("Local") isChild := false if action == "create" { if dataBody["advice_type"] == nil || reflect.TypeOf(dataBody["advice_type"]).String() != "float64" { utils.ErrorLog("advice_type") code = enums.ErrorCodeParamWrong return } adviceType := int64(dataBody["advice_type"].(float64)) if adviceType != 1 && adviceType != 2 { utils.ErrorLog("advice_type != 1&&2") code = enums.ErrorCodeParamWrong return } advice.AdviceType = adviceType if dataBody["advice_date"] == nil || reflect.TypeOf(dataBody["advice_date"]).String() != "string" { utils.ErrorLog("advice_date") code = enums.ErrorCodeParamWrong return } adviceDate, _ := dataBody["advice_date"].(string) if len(adviceDate) == 0 { utils.ErrorLog("len(adviceDate) == 0") code = enums.ErrorCodeParamWrong return } theTime, err := time.ParseInLocation(timeLayout, adviceDate, loc) if err != nil { utils.ErrorLog(err.Error()) code = enums.ErrorCodeParamWrong return } advice.AdviceDate = theTime.Unix() advice.RecordDate = theTime.Unix() if dataBody["parent_id"] != nil && reflect.TypeOf(dataBody["parent_id"]).String() == "float64" { parentId := int64(dataBody["parent_id"].(float64)) advice.ParentId = parentId if parentId > 0 { isChild = true } } } else { isChild = advice.ParentId > 0 } if !isChild { if dataBody["start_time"] == nil || reflect.TypeOf(dataBody["start_time"]).String() != "string" { utils.ErrorLog("start_time") code = enums.ErrorCodeParamWrong return } startTime, _ := dataBody["start_time"].(string) fmt.Println(startTime) if len(startTime) == 0 { utils.ErrorLog("len(start_time) == 0") code = enums.ErrorCodeParamWrong return } theTime, err := time.ParseInLocation(timeLayout+" 15:04:05", startTime, loc) if err != nil { utils.ErrorLog(err.Error()) code = enums.ErrorCodeParamWrong return } advice.StartTime = theTime.Unix() if dataBody["delivery_way"] != nil && reflect.TypeOf(dataBody["delivery_way"]).String() == "string" { deliveryWay, _ := dataBody["delivery_way"].(string) advice.DeliveryWay = deliveryWay } if dataBody["execution_frequency"] != nil && reflect.TypeOf(dataBody["execution_frequency"]).String() == "string" { executionFrequency, _ := dataBody["execution_frequency"].(string) advice.ExecutionFrequency = executionFrequency } } if dataBody["delivery_way"] != nil && reflect.TypeOf(dataBody["delivery_way"]).String() == "string" { deliveryWay, _ := dataBody["delivery_way"].(string) advice.DeliveryWay = deliveryWay } if dataBody["execution_frequency"] != nil && reflect.TypeOf(dataBody["execution_frequency"]).String() == "string" { executionFrequency, _ := dataBody["execution_frequency"].(string) advice.ExecutionFrequency = executionFrequency } if dataBody["advice_name"] == nil || reflect.TypeOf(dataBody["advice_name"]).String() != "string" { utils.ErrorLog("advice_name") code = enums.ErrorCodeParamWrong return } adviceName, _ := dataBody["advice_name"].(string) if len(adviceName) == 0 { utils.ErrorLog("len(advice_name) == 0") code = enums.ErrorCodeParamWrong return } advice.AdviceName = adviceName if dataBody["advice_desc"] != nil && reflect.TypeOf(dataBody["advice_desc"]).String() == "string" { adviceDsc, _ := dataBody["advice_desc"].(string) advice.AdviceDesc = adviceDsc } if dataBody["single_dose"] != nil && reflect.TypeOf(dataBody["single_dose"]).String() == "string" { singleDose, _ := strconv.ParseFloat(dataBody["single_dose"].(string), 64) advice.SingleDose = singleDose } if dataBody["single_dose_unit"] != nil && reflect.TypeOf(dataBody["single_dose_unit"]).String() == "string" { singleDoseUnit, _ := dataBody["single_dose_unit"].(string) advice.SingleDoseUnit = singleDoseUnit } if dataBody["drug_spec"] != nil && reflect.TypeOf(dataBody["drug_spec"]).String() == "string" { drugSpec, _ := strconv.ParseFloat(dataBody["drug_spec"].(string), 64) advice.DrugSpec = drugSpec } if dataBody["drug_spec_unit"] != nil && reflect.TypeOf(dataBody["drug_spec_unit"]).String() == "string" { drugSpecUnit, _ := dataBody["drug_spec_unit"].(string) advice.DrugSpecUnit = drugSpecUnit } if dataBody["prescribing_number"] != nil && reflect.TypeOf(dataBody["prescribing_number"]).String() == "string" { prescribingNumber, _ := strconv.ParseFloat(dataBody["prescribing_number"].(string), 64) advice.PrescribingNumber = prescribingNumber } if dataBody["prescribing_number_unit"] != nil && reflect.TypeOf(dataBody["prescribing_number_unit"]).String() == "string" { prescribingNumberUnit, _ := dataBody["prescribing_number_unit"].(string) advice.PrescribingNumberUnit = prescribingNumberUnit } if dataBody["remark"] != nil && reflect.TypeOf(dataBody["remark"]).String() == "string" { remark, _ := dataBody["remark"].(string) advice.Remark = remark } return } func (c *PatientApiController) GetPatientEducation() { patientID, _ := c.GetInt64("patient_id", 0) page, _ := c.GetInt64("page", 0) limit, _ := c.GetInt64("limit", 0) startTime := c.GetString("start_time", "") endTime := c.GetString("end_time", "") if page <= 0 { page = 1 } if limit <= 0 { limit = 10 } if patientID <= 0 { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } timeLayout := "2006-01-02" loc, _ := time.LoadLocation("Local") var theStartTIme int64 if len(startTime) > 0 { theTime, err := time.ParseInLocation(timeLayout+" 15:04:05", startTime+" 00:00:00", loc) if err != nil { theStartTIme = 0 } theStartTIme = theTime.Unix() } var theEndtTIme int64 if len(endTime) > 0 { theTime, err := time.ParseInLocation(timeLayout+" 15:04:05", endTime+" 23:59:59", loc) if err != nil { theEndtTIme = 0 } theEndtTIme = theTime.Unix() } adminUserInfo := c.GetMobileAdminUserInfo() edus, total, _ := service.GetPatientTreatmentSummaryList(adminUserInfo.Org.Id, patientID, page, limit, theStartTIme, theEndtTIme) c.ServeSuccessJSON(map[string]interface{}{ "total": total, "edus": edus, }) return } func (c *PatientApiController) GetPatientSchedulesList() { patientID, _ := c.GetInt64("patient_id", 0) page, _ := c.GetInt64("page", 0) limit, _ := c.GetInt64("limit", 0) if patientID <= 0 { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } adminUserInfo := c.GetMobileAdminUserInfo() todayTime := time.Now().Format("2006-01-02") timeLayout := "2006-01-02 15:04:05" loc, _ := time.LoadLocation("Local") var theStartTime int64 theTime, _ := time.ParseInLocation(timeLayout, todayTime+" 00:00:00", loc) theStartTime = theTime.Unix() schedules, _ := service.GetPatientScheduleList(adminUserInfo.Org.Id, patientID, page, limit, theStartTime) if len(schedules) > 0 { for index, item := range schedules { _, week := time.Unix(item.ScheduleDate, 0).ISOWeek() schedules[index].Week = int64(week) } } c.ServeSuccessJSON(map[string]interface{}{ "schedules": schedules, }) return } func (c *PatientApiController) GetRecords() { patientID, _ := c.GetInt64("patient_id", 0) page, _ := c.GetInt64("page", 0) limit, _ := c.GetInt64("limit", 0) startTime := c.GetString("start_time", "") endTime := c.GetString("end_time", "") mode_id, _ := c.GetInt64("mode_id", 0) if page <= 0 { page = 1 } if limit <= 0 { limit = 10 } if patientID <= 0 { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } timeLayout := "2006-01-02" loc, _ := time.LoadLocation("Local") var theStartTIme int64 if len(startTime) > 0 { theTime, err := time.ParseInLocation(timeLayout+" 15:04:05", startTime+" 00:00:00", loc) if err != nil { theStartTIme = 0 } theStartTIme = theTime.Unix() } var theEndtTIme int64 if len(endTime) > 0 { theTime, err := time.ParseInLocation(timeLayout+" 15:04:05", endTime+" 23:59:59", loc) if err != nil { theEndtTIme = 0 } theEndtTIme = theTime.Unix() } adminUserInfo := c.GetMobileAdminUserInfo() records, total, _ := service.GetPatientDialysisRecord(adminUserInfo.Org.Id, patientID, page, limit, theStartTIme, theEndtTIme, mode_id) c.ServeSuccessJSON(map[string]interface{}{ "total": total, "records": records, }) return } func (c *PatientApiController) GetPatientMonitor() { partition, _ := c.GetInt64("partition") monitorDate := c.GetString("date") timeLayout := "2006-01-02" loc, _ := time.LoadLocation("Local") var theStartTime int64 if len(monitorDate) > 0 { theTime, err := time.ParseInLocation(timeLayout+" 15:04:05", monitorDate+" 00:00:00", loc) if err != nil { theStartTime = 0 } theStartTime = theTime.Unix() } adminInfo := c.GetMobileAdminUserInfo() orgID := adminInfo.Org.Id monitor, err := service.GetMonitorRecord(orgID, theStartTime, partition) if err == nil { c.ServeSuccessJSON(map[string]interface{}{ "monitor": monitor, }) } else { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError) } } // /m/api/monitor/patient [get] 搜索病人的测量记录 // @param keyword:string 病人姓名或透析号 // @param page:int func (this *PatientApiController) SearchMonitorPatient() { keyword := this.GetString("keyword") page, _ := this.GetInt("page") if page <= 0 { page = 1 } if len(keyword) == 0 { this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } adminUserInfo := this.GetMobileAdminUserInfo() monitors, getMonitorErr := service.MobileGetMonitorsWithPatient(adminUserInfo.Org.Id, keyword, page) if getMonitorErr != nil { this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } else { this.ServeSuccessJSON(map[string]interface{}{ "monitor": monitors, }) } } func (c *PatientApiController) GetPatientDialysisSolutionList() { id, _ := c.GetInt64("id", 0) page, _ := c.GetInt64("page", 0) limit, _ := c.GetInt64("limit", 0) if id <= 0 { c.ServeSuccessJSON(map[string]interface{}{ "solutions": nil, }) return } if page <= 0 { page = 1 } if limit <= 0 { limit = 10 } adminInfo := c.GetMobileAdminUserInfo() solutions, total, _ := service.GetPatientDialysisSolutionList(adminInfo.Org.Id, id, page, limit) c.ServeSuccessJSON(map[string]interface{}{ "solutions": solutions, "total": total, }) return } //GetDoctorAdvices 医嘱列表 func (c *PatientApiController) GetDoctorAdvices() { id, _ := c.GetInt64("id", 0) adviceType, _ := c.GetInt64("advice_type", 0) stopType, _ := c.GetInt64("stop_state", 0) startTime := c.GetString("start_time", "") endTime := c.GetString("end_time", "") keywords := c.GetString("keywords", "") need, _ := c.GetInt64("need_doctor", 0) adminUserInfo := c.GetMobileAdminUserInfo() timeLayout := "2006-01-02" loc, _ := time.LoadLocation("Local") var theStartTIme int64 if len(startTime) > 0 { theTime, err := time.ParseInLocation(timeLayout+" 15:04:05", startTime+" 00:00:00", loc) if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } theStartTIme = theTime.Unix() } var theEndtTIme int64 if len(endTime) > 0 { theTime, err := time.ParseInLocation(timeLayout+" 15:04:05", endTime+" 23:59:59", loc) if err != nil { utils.ErrorLog(err.Error()) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } theEndtTIme = theTime.Unix() } advices, total, _ := service.GetDoctorAdviceList(adminUserInfo.Org.Id, id, adviceType, stopType, theStartTIme, theEndtTIme, keywords) if need == 1 { users, _ := service.GetAllAdminUsers(adminUserInfo.Org.Id, adminUserInfo.App.Id) c.ServeSuccessJSON(map[string]interface{}{ "advices": advices, "total": total, "users": users, }) } else { c.ServeSuccessJSON(map[string]interface{}{ "advices": advices, "total": total, "users": []string{}, }) } return } func (c *PatientApiController) GetPrintDialysisOrder() { xtno := c.GetString("xtno") xtdate := c.GetString("xtdate") timeLayout := "2006-01-02" loc, _ := time.LoadLocation("Local") theTime, err := time.ParseInLocation(timeLayout+" 15:04:05", xtdate+" 00:00:00", loc) if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } xttime := theTime.Unix() operatorIDs := make([]int64, 0) adminUserInfo := c.GetMobileAdminUserInfo() adminUser, _ := service.GetAllAdminUsers(adminUserInfo.Org.Id, adminUserInfo.App.Id) patientInfo, _ := service.FindPatientWithDeviceByNo(adminUserInfo.Org.Id, xtno, xttime) //透析单 dialysisOrder, _ := service.MobileGetSchedualDialysisRecord(adminUserInfo.Org.Id, patientInfo.ID, xttime) if dialysisOrder != nil { if dialysisOrder.FinishNurse > 0 { operatorIDs = append(operatorIDs, dialysisOrder.FinishNurse) } if dialysisOrder.StartNurse > 0 { operatorIDs = append(operatorIDs, dialysisOrder.StartNurse) } } //透前评估 PredialysisEvaluation, _ := service.FindPredialysisEvaluationById(adminUserInfo.Org.Id, patientInfo.ID, xttime) //透后评估 AssessmentAfterDislysis, _ := service.FindAssessmentAfterDislysisById(adminUserInfo.Org.Id, patientInfo.ID, xttime) if AssessmentAfterDislysis.Modifier > 0 { operatorIDs = append(operatorIDs, AssessmentAfterDislysis.Modifier) } //透析处方 dialysisPrescription, _ := service.FindPatientPrescribeWidyDevideById(adminUserInfo.Org.Id, patientInfo.ID, xttime) if dialysisPrescription.PrescriptionDoctor > 0 { operatorIDs = append(operatorIDs, dialysisPrescription.PrescriptionDoctor) } //临时医嘱 DoctorAdvice, _ := service.FindDoctorAdviceOrderById(adminUserInfo.Org.Id, patientInfo.ID, xttime) if len(DoctorAdvice) > 0 { for _, item := range DoctorAdvice { if item.AdviceDoctor > 0 { operatorIDs = append(operatorIDs, item.AdviceDoctor) } if item.ExecutionStaff > 0 { operatorIDs = append(operatorIDs, item.ExecutionStaff) } if item.Checker > 0 { operatorIDs = append(operatorIDs, item.Checker) } } } //透析监测 Record, _ := service.FindAllMonitorRecord(adminUserInfo.Org.Id, patientInfo.ID, xttime) //透析小结 TreatmentSummary, _ := service.FindTreatmentSummaryById(adminUserInfo.Org.Id, patientInfo.ID, xttime) //接诊评估 receiverTreatmentAccess, _ := service.FindReceiverTreatmentAccessRecordById(adminUserInfo.Org.Id, patientInfo.ID, xttime) //相关操作对应的操作人 operators, _ := service.GetAdminUserES(adminUserInfo.Org.Id, adminUserInfo.App.Id, operatorIDs) templateInfo, _ := service.GetOrgInfoTemplate(adminUserInfo.Org.Id) check, _ := service.FindDoubleCheckById(adminUserInfo.Org.Id, patientInfo.ID, xttime) c.ServeSuccessJSON(map[string]interface{}{ "users": adminUser, "patientInfo": patientInfo, "PredialysisEvaluation": PredialysisEvaluation, "AssessmentAfterDislysis": AssessmentAfterDislysis, "dialysisPrescription": dialysisPrescription, "advices": DoctorAdvice, "monitors": Record, "summary": TreatmentSummary, "receiverTreatmentAccess": receiverTreatmentAccess, "dialysisOrder": dialysisOrder, "operators": operators, "org_template_info": templateInfo, "check": check, }) } func (c *PatientApiController) CreateGroupAdvice() { patient, _ := c.GetInt64("id", 0) if patient <= 0 { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } adminUserInfo := c.GetMobileAdminUserInfo() patientInfo, _ := service.FindPatientById(adminUserInfo.Org.Id, patient) if patientInfo.ID == 0 { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodePatientNoExist) return } //appRole, _ := service.FindAdminRoleTypeById(adminUserInfo.Org.Id, adminUserInfo.AdminUser.Id, adminUserInfo.App.Id) //if appRole.UserType == 3{ // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeAdvicePermissionDeniedModify) // return //} //appRole, _ := service.FindAdminRoleTypeById(adminUserInfo.Org.Id, adminUserInfo.AdminUser.Id, adminUserInfo.App.Id) //if appRole.UserType == 3 { // headNursePermission, getPermissionErr := service.GetAdminUserSpecialPermission(adminUserInfo.Org.Id, adminUserInfo.App.Id, adminUserInfo.AdminUser.Id, models.SpecialPermissionTypeHeadNurse) // if getPermissionErr != nil { // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } else if headNursePermission == nil { // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDialysisPermissionDeniedModify) // return // } //} //TODO根据路由做权限 group_no, _ := c.GetInt64("group_no") if group_no <= 0 { group_no = 0 } dataBody := make(map[string]interface{}, 0) err := json.Unmarshal(c.Ctx.Input.RequestBody, &dataBody) if err != nil { utils.ErrorLog(err.Error()) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } timeLayout := "2006-01-02" loc, _ := time.LoadLocation("Local") if dataBody["advice_type"] == nil || reflect.TypeOf(dataBody["advice_type"]).String() != "float64" { utils.ErrorLog("advice_type") c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } adviceType := int64(dataBody["advice_type"].(float64)) if adviceType != 1 && adviceType != 2 { utils.ErrorLog("advice_type != 1&&2") c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } if dataBody["advice_date"] == nil || reflect.TypeOf(dataBody["advice_date"]).String() != "string" { utils.ErrorLog("advice_date") c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } adviceDate, _ := dataBody["advice_date"].(string) if len(adviceDate) == 0 { utils.ErrorLog("len(adviceDate) == 0") c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } theTime, err := time.ParseInLocation(timeLayout, adviceDate, loc) if err != nil { utils.ErrorLog(err.Error()) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } AdviceDate := theTime.Unix() RecordDate := theTime.Unix() if dataBody["start_time"] == nil || reflect.TypeOf(dataBody["start_time"]).String() != "string" { utils.ErrorLog("start_time") c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } startTime, _ := dataBody["start_time"].(string) if len(startTime) == 0 { utils.ErrorLog("len(start_time) == 0") c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } theTime, err = time.ParseInLocation(timeLayout+" 15:04:05", startTime, loc) if err != nil { utils.ErrorLog(err.Error()) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } StartTime := theTime.Unix() Remark := "" if dataBody["remark"] != nil && reflect.TypeOf(dataBody["remark"]).String() == "string" { remark, _ := dataBody["remark"].(string) Remark = remark } var advices []*models.GroupAdvice // utils.TraceLog("%+v", dataBody["adviceNames"]) if dataBody["adviceNames"] == nil || reflect.TypeOf(dataBody["adviceNames"]).String() != "[]interface {}" { utils.ErrorLog("adviceNames") c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } adviceNames := dataBody["adviceNames"].([]interface{}) for _, adviceNameMap := range adviceNames { adviceNameM := adviceNameMap.(map[string]interface{}) var advice models.GroupAdvice advice.Remark = Remark advice.AdviceType = adviceType advice.StartTime = StartTime advice.AdviceDate = AdviceDate advice.RecordDate = RecordDate advice.Status = 1 advice.CreatedTime = time.Now().Unix() advice.UpdatedTime = time.Now().Unix() advice.StopState = 2 advice.ExecutionState = 2 advice.UserOrgId = adminUserInfo.Org.Id advice.PatientId = patientInfo.ID advice.AdviceDoctor = adminUserInfo.AdminUser.Id errcode := c.setAdviceWithJSON(&advice, adviceNameM) if errcode > 0 { c.ServeFailJSONWithSGJErrorCode(errcode) return } if adviceNameM["subdrugs"] != nil && reflect.TypeOf(adviceNameM["subdrugs"]).String() == "[]interface {}" { subdrugs := adviceNameM["subdrugs"].([]interface{}) if len(subdrugs) > 0 { for _, subdrug := range subdrugs { var s models.GroupAdvice s.Remark = Remark s.AdviceType = adviceType s.StartTime = StartTime s.AdviceDate = AdviceDate s.RecordDate = RecordDate s.Status = 1 s.CreatedTime = time.Now().Unix() s.UpdatedTime = time.Now().Unix() s.StopState = 2 s.ExecutionState = 2 s.UserOrgId = adminUserInfo.Org.Id s.PatientId = patientInfo.ID s.AdviceDoctor = adminUserInfo.AdminUser.Id errcode := c.setAdviceWithJSON(&s, subdrug.(map[string]interface{})) if errcode > 0 { c.ServeFailJSONWithSGJErrorCode(errcode) return } advice.Children = append(advice.Children, &s) } } } advices = append(advices, &advice) } newAdvices, createErr := service.CreateMGroupAdvice(adminUserInfo.Org.Id, advices, group_no) if createErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeCreateDoctorAdviceFail) return } c.ServeSuccessJSON(map[string]interface{}{ "msg": "ok", "advices": newAdvices, }) return } func (c *PatientApiController) setAdviceWithJSON(advice *models.GroupAdvice, json map[string]interface{}) int { if json["advice_name"] == nil || reflect.TypeOf(json["advice_name"]).String() != "string" { utils.ErrorLog("advice_name") return enums.ErrorCodeParamWrong } adviceName, _ := json["advice_name"].(string) if len(adviceName) == 0 { utils.ErrorLog("len(advice_name) == 0") return enums.ErrorCodeParamWrong } advice.AdviceName = adviceName adviceDesc, _ := json["advice_desc"].(string) advice.AdviceDesc = adviceDesc if json["drug_spec"] != nil && reflect.TypeOf(json["drug_spec"]).String() == "string" { drugSpec, _ := strconv.ParseFloat(json["drug_spec"].(string), 64) advice.DrugSpec = drugSpec } if json["remark"] != nil && reflect.TypeOf(json["remark"]).String() == "string" { remark, _ := json["remark"].(string) advice.Remark = remark } if json["drug_spec_unit"] != nil && reflect.TypeOf(json["drug_spec_unit"]).String() == "string" { drugSpecUnit, _ := json["drug_spec_unit"].(string) advice.DrugSpecUnit = drugSpecUnit } if json["single_dose"] != nil && reflect.TypeOf(json["single_dose"]).String() == "string" { singleDose, _ := strconv.ParseFloat(json["single_dose"].(string), 64) advice.SingleDose = singleDose } if json["single_dose_unit"] != nil && reflect.TypeOf(json["single_dose_unit"]).String() == "string" { singleDoseUnit, _ := json["single_dose_unit"].(string) advice.SingleDoseUnit = singleDoseUnit } if json["prescribing_number"] != nil && reflect.TypeOf(json["prescribing_number"]).String() == "string" { prescribingNumber, _ := strconv.ParseFloat(json["prescribing_number"].(string), 64) advice.PrescribingNumber = prescribingNumber } if json["prescribing_number_unit"] != nil && reflect.TypeOf(json["prescribing_number_unit"]).String() == "string" { prescribingNumberUnit, _ := json["prescribing_number_unit"].(string) advice.PrescribingNumberUnit = prescribingNumberUnit } if json["delivery_way"] != nil && reflect.TypeOf(json["delivery_way"]).String() == "string" { deliveryWay, _ := json["delivery_way"].(string) advice.DeliveryWay = deliveryWay } if json["execution_frequency"] != nil && reflect.TypeOf(json["execution_frequency"]).String() == "string" { executionFrequency, _ := json["execution_frequency"].(string) advice.ExecutionFrequency = executionFrequency } return 0 } func (c *PatientApiController) DelDoctorAdvice() { groupno, _ := c.GetInt64("groupno", -1) is_sub, _ := c.GetInt64("is_sub", -1) //是否子药 if is_sub == 1 { //是 advice_id, _ := c.GetInt64("advice_id") adminUserInfo := c.GetMobileAdminUserInfo() advice, _ := service.FindOldDoctorAdvice(adminUserInfo.Org.Id, advice_id) if advice.ID == 0 { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDoctorAdviceNotExist) return } //TODO 根据路由来做权限 //if !adminUserInfo.AdminUser.IsSuperAdmin && advice.AdviceDoctor != adminUserInfo.AdminUser.Id { // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDialysisPermissionDeniedModify) // return //} advice.Status = 0 advice.UpdatedTime = time.Now().Unix() advice.Modifier = adminUserInfo.AdminUser.Id err := service.DeleteDoctorAdvice(&advice) if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDeleteAdviceFail) return } c.ServeSuccessJSON(map[string]interface{}{ "msg": "ok", }) return } else { // var ids []string if groupno == 0 { advice_id := c.GetString("advice_id") ids = strings.Split(advice_id, ",") if len(ids) <= 0 { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } } if groupno < 0 { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } adminUserInfo := c.GetMobileAdminUserInfo() var advice models.DoctorAdvice if groupno > 0 { advice, _ = service.FindDoctorAdviceByGoroupNo(adminUserInfo.Org.Id, groupno) if advice.ID == 0 { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDoctorAdviceNotExist) return } } else { advices, _ := service.FindDoctorAdviceByIds(adminUserInfo.Org.Id, ids) for _, item := range advices { if item.ID == 0 { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDoctorAdviceNotExist) return } } } advice.UpdatedTime = time.Now().Unix() advice.Status = 0 advice.GroupNo = groupno var err error if groupno > 0 { err = service.DeleteDoctorAdviceByGroupNo(&advice) } else { err = service.BatchDeleteDoctorAdvice(ids) } if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDeleteAdviceFail) return } c.ServeSuccessJSON(map[string]interface{}{ "msg": "ok", }) return } } // /m/api/advice/group/modify_starttime [post] // @param group_no:int // @param start_time:string yyyy-MM-dd hh:mm:ss func (this *PatientApiController) ModifyAdviceGroupStartTime() { group_no, _ := this.GetInt64("group_no") start_time_str := this.GetString("start_time") if group_no <= 0 || len(start_time_str) == 0 { this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } startTime, parseTimeErr := utils.ParseTimeStringToTime("2006-01-02 15:04:05", start_time_str) if parseTimeErr != nil { this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamFormatWrong) return } adminUserInfo := this.GetMobileAdminUserInfo() updateStartTimeErr := service.UpdateAdviceGroupStartTime(adminUserInfo.Org.Id, group_no, startTime.Unix(), adminUserInfo.AdminUser.Id) if updateStartTimeErr != nil { utils.ErrorLog("修改医嘱分组的开始时间失败:%v", updateStartTimeErr) this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } this.ServeSuccessJSON(map[string]interface{}{ "start_time": startTime.Unix(), }) } func (this *PatientApiController) DelSubDoctorAdvice() { advice_id, _ := this.GetInt64("advice_id") adminUserInfo := this.GetMobileAdminUserInfo() advice, _ := service.FindOldDoctorAdvice(adminUserInfo.Org.Id, advice_id) if advice.ID == 0 { this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDoctorAdviceNotExist) return } //if !adminUserInfo.AdminUser.IsSuperAdmin && advice.AdviceDoctor != adminUserInfo.AdminUser.Id { // this.ServeFailJSONWithSGJErrorCode(enums. bh) // return //} advice.Status = 0 advice.UpdatedTime = time.Now().Unix() advice.Modifier = adminUserInfo.AdminUser.Id err := service.DeleteDoctorAdvice(&advice) if err != nil { this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDeleteAdviceFail) return } this.ServeSuccessJSON(map[string]interface{}{ "msg": "ok", }) return } func (this *PatientApiController) GetAdviceUnReadMessage() { //adminUserInfo := this.GetMobileAdminUserInfo() //service.FindUnReadDoctorAdviceMessage() } func (this *PatientApiController) GetPatientsByKeyWord() { keyWord := this.GetString("keyword") adminUserInfo := this.GetMobileAdminUserInfo() today := utils.ZeroHourTimeOfDay(time.Now()) patient, err := service.GetSchedualPatientByKeyWord(adminUserInfo.Org.Id, keyWord, today.Unix()) if err != nil { utils.ErrorLog(err.Error()) this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } this.ServeSuccessJSON(map[string]interface{}{ "patient": patient, }) }