package controllers import ( "XT_New/enums" "XT_New/models" "XT_New/service" "XT_New/utils" "bytes" "encoding/json" "fmt" "github.com/astaxie/beego" "github.com/jinzhu/gorm" "io/ioutil" "math/rand" "net/http" "reflect" "strconv" "strings" "time" ) type HisApiController struct { BaseAuthAPIController } func HisManagerApiRegistRouters() { beego.Router("/api/hispatient/list", &HisApiController{}, "get:GetHisPatientList") beego.Router("/api/hispatient/get", &HisApiController{}, "get:GetHisPatientInfo") beego.Router("/api/hisprescription/config", &HisApiController{}, "get:GetHisPrescriptionConfig") beego.Router("/api/hisprescription/delete", &HisApiController{}, "post:DeletePrescription") beego.Router("/api/advice/delete", &HisApiController{}, "post:DeleteDoctorAdvice") beego.Router("/api/project/delete", &HisApiController{}, "post:DeleteProject") beego.Router("/api/addition_charge/delete", &HisApiController{}, "post:DeleteAddition") beego.Router("/api/hisprescription/list", &HisApiController{}, "get:GetHisPrescriptionList") beego.Router("/api/hisprescription/info", &HisApiController{}, "get:GetHisPrescriptionInfo") beego.Router("/api/hisprescription/create", &HisApiController{}, "post:CreateHisPrescription") beego.Router("/api/doctorworkstation/casehistory/list", &HisApiController{}, "get:GetHisPatientCaseHistoryList") beego.Router("/api/doctorworkstation/casehistory/get", &HisApiController{}, "get:GetHisPatientCaseHistory") beego.Router("/api/doctorworkstation/casehistory/create", &HisApiController{}, "get:CreateHisPatientCaseHistory") beego.Router("/api/doctorworkstation/casehistorytemplate/create", &HisApiController{}, "get:CreateCaseHistoryTemplate") beego.Router("/api/doctorworkstation/casehistorytemplate/get", &HisApiController{}, "get:GetCaseHistoryTemplate") beego.Router("/api/hisorder/list", &HisApiController{}, "get:GetHisOrderList") beego.Router("/api/hisorder/get", &HisApiController{}, "get:GetHisOrder") beego.Router("/api/register/get", &HisApiController{}, "get:GetRegisterInfo") beego.Router("/api/upload/get", &HisApiController{}, "get:GetUploadInfo") beego.Router("/api/refund/post", &HisApiController{}, "post:Refund") beego.Router("/api/medicalinsurance/config", &HisApiController{}, "get:GetMedicalInsuranceConfig") beego.Router("/api/doctor/list", &HisApiController{}, "get:GetAdminUsers") //beego.Router("/api/medicalinsurance/config", &HisApiController{}, "get:GetMedicalInsuranceConfig") //新增附加费用 //beego.Router("/api/his/additionalcharge", &HisApiController{}, "Post:AdditionalCharge") //beego.Router("/api/additionalcharge/get", &HisApiController{}, "Get:GetAdditionalcharge") } func (c *HisApiController) GetHisPatientList() { types, _ := c.GetInt64("type", 0) record_date := c.GetString("record_date") timeLayout := "2006-01-02" loc, _ := time.LoadLocation("Local") theTime, err := time.ParseInLocation(timeLayout+" 15:04:05", record_date+" 00:00:00", loc) if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } recordDateTime := theTime.Unix() adminInfo := c.GetAdminUserInfo() patients, _ := service.GetHisPatientList(adminInfo.CurrentOrgId, "", recordDateTime) var total_one int64 var total_two int64 //获取当前用户的信息 adminUserInfo, _ := service.GetAdminUserInfoByID(adminInfo.CurrentOrgId, adminInfo.AdminUser.Id) doctors, _ := service.GetHisAdminUserDoctors(adminInfo.CurrentOrgId) //获取所有科室信息 department, _ := service.GetAllDepartMent(adminInfo.CurrentOrgId) for _, item := range patients { if item.HisPrescription == nil || len(item.HisPrescription) <= 0 { total_one = total_one + 1 } if item.HisPrescription != nil && len(item.HisPrescription) > 0 { total_two = total_two + 1 } } if types == 0 { c.ServeSuccessJSON(map[string]interface{}{ "list": patients, "total_one": total_one, "total_two": total_two, "info": adminUserInfo, "doctors": doctors, "department": department, }) } else if types == 1 { //未就诊 var patientsOne []*service.Schedule for _, item := range patients { if item.HisPrescription == nil || len(item.HisPrescription) <= 0 { patientsOne = append(patientsOne, item) } } c.ServeSuccessJSON(map[string]interface{}{ "list": patientsOne, "total_one": total_one, "total_two": total_two, "info": adminUserInfo, "doctors": doctors, "department": department, }) } else if types == 2 { //已就诊 var patientsTwo []*service.Schedule for _, item := range patients { if item.HisPrescription != nil && len(item.HisPrescription) > 0 { patientsTwo = append(patientsTwo, item) } } c.ServeSuccessJSON(map[string]interface{}{ "list": patientsTwo, "total_one": total_one, "total_two": total_two, "info": adminUserInfo, "doctors": doctors, "department": department, }) } } func (c *HisApiController) GetHisPatientInfo() { patient_id, _ := c.GetInt64("patient_id") record_date := c.GetString("record_date") number := c.GetString("number") timeLayout := "2006-01-02" loc, _ := time.LoadLocation("Local") theTime, err := time.ParseInLocation(timeLayout+" 15:04:05", record_date+" 00:00:00", loc) if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } recordDateTime := theTime.Unix() admin := c.GetAdminUserInfo() his_patient_info, _ := service.GetHisPatientInfo(admin.CurrentOrgId, patient_id, recordDateTime) xt_patient_info, _ := service.GetXTPatientInfo(admin.CurrentOrgId, patient_id) prescriptions, _ := service.GetHisPrescription(admin.CurrentOrgId, patient_id, recordDateTime) case_history, _ := service.GetHisPatientCaseHistoryInfo(admin.CurrentOrgId, patient_id, recordDateTime) patientPrescriptionInfo, _ := service.FindPatientPrescriptionInfo(admin.CurrentOrgId, patient_id, recordDateTime) lastPatientPrescriptionInfo, _ := service.FindLastPatientPrescriptionInfo(admin.CurrentOrgId, patient_id, recordDateTime) order, _ := service.GetHisOrder(admin.CurrentOrgId, number, patient_id) //addtions, _ := service.GetAllAdditionCharge(admin.CurrentOrgId, patient_id, recordDateTime) c.ServeSuccessJSON(map[string]interface{}{ "his_info": his_patient_info, "xt_info": xt_patient_info, "prescription": prescriptions, "case_history": case_history, "info": patientPrescriptionInfo, "last_info": lastPatientPrescriptionInfo, "order": order, }) return } func (c *HisApiController) GetHisPrescriptionConfig() { adminInfo := c.GetAdminUserInfo() //获取医嘱模版 advices, _ := service.FindAllHisAdviceTemplate(adminInfo.CurrentOrgId) //获取所有基础药 drugs, _ := service.GetAllDrugLibList(adminInfo.CurrentOrgId) drugways, _, _ := service.GetDrugWayDics(adminInfo.CurrentOrgId) efs, _, _ := service.GetExecutionFrequencyDics(adminInfo.CurrentOrgId) doctors, _ := service.GetHisAdminUserDoctors(adminInfo.CurrentOrgId) //获取所有科室信息 department, _ := service.GetAllDepartMent(adminInfo.CurrentOrgId) //获取诊断信息 sick, _ := service.FindAllSick(adminInfo.CurrentOrgId) diagnose, _ := service.FindAllDiagnose(adminInfo.CurrentOrgId) additions, _ := service.FindAllAddition(adminInfo.CurrentOrgId) c.ServeSuccessJSON(map[string]interface{}{ "drugs": drugs, "advices_template": advices, "drugways": drugways, "efs": efs, "doctors": doctors, "department": department, "sick": sick, "additions": additions, "diagnose": diagnose, }) } func (c *HisApiController) CreateHisPrescription() { record_date := c.GetString("record_date") patient_id, _ := c.GetInt64("patient_id") reg_type, _ := c.GetInt64("reg_type") diagnose, _ := c.GetInt64("diagnose") sick_type, _ := c.GetInt64("sick_type") sick_history := c.GetString("sick_history") doctor_id, _ := c.GetInt64("doctor", 0) department, _ := c.GetInt64("department", 0) his_patient_id, _ := c.GetInt64("his_patient_id") 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") theTime, err := time.ParseInLocation(timeLayout+" 15:04:05", record_date+" 00:00:00", loc) if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } adminInfo := c.GetAdminUserInfo() recordDateTime := theTime.Unix() role, _ := service.GetAdminUserInfoByID(adminInfo.CurrentOrgId, doctor_id) info, _ := service.FindPatientPrescriptionInfo(adminInfo.CurrentOrgId, patient_id, recordDateTime) var hpInfo models.HisPrescriptionInfo if info.ID == 0 { var randNum int randNum = rand.Intn(10000) + 1000 timestamp := time.Now().Unix() tempTime := time.Unix(timestamp, 0) timeFormat := tempTime.Format("20060102150405") p_number := timeFormat + strconv.FormatInt(int64(randNum), 10) + strconv.FormatInt(int64(adminInfo.CurrentOrgId), 10) + strconv.FormatInt(int64(patient_id), 10) hpInfo = models.HisPrescriptionInfo{ UserOrgId: adminInfo.CurrentOrgId, RecordDate: theTime.Unix(), PatientId: patient_id, Status: 1, Ctime: time.Now().Unix(), Mtime: time.Now().Unix(), Creator: adminInfo.AdminUser.Id, Modifier: adminInfo.AdminUser.Id, Diagnosis: diagnose, SickHistory: sick_history, Departments: department, RegisterType: reg_type, PrescriptionNumber: p_number, PrescriptionStatus: 1, Doctor: role.UserName, DoctorId: doctor_id, SickType: sick_type, } service.SavePatientPrescriptionInfo(hpInfo) } else { hpInfo = models.HisPrescriptionInfo{ ID: info.ID, UserOrgId: adminInfo.CurrentOrgId, RecordDate: info.RecordDate, PatientId: info.PatientId, Status: 1, Ctime: info.Ctime, Mtime: time.Now().Unix(), Creator: info.Creator, Modifier: adminInfo.AdminUser.Id, Diagnosis: diagnose, SickHistory: sick_history, Departments: department, RegisterType: reg_type, PrescriptionNumber: info.PrescriptionNumber, Doctor: role.UserName, PrescriptionStatus: info.PrescriptionStatus, DoctorId: doctor_id, SickType: sick_type, } service.SavePatientPrescriptionInfo(hpInfo) } if dataBody["prescriptions"] != nil && reflect.TypeOf(dataBody["prescriptions"]).String() == "[]interface {}" { prescriptions, _ := dataBody["prescriptions"].([]interface{}) if len(prescriptions) > 0 { for _, item := range prescriptions { items := item.(map[string]interface{}) if items["id"] == nil || reflect.TypeOf(items["id"]).String() != "float64" { utils.ErrorLog("id") c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } id := int64(items["id"].(float64)) if items["type"] == nil || reflect.TypeOf(items["type"]).String() != "float64" { utils.ErrorLog("type") c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } types := int64(items["type"].(float64)) ctime := time.Now().Unix() prescription := &models.HisPrescription{ ID: id, PatientId: patient_id, UserOrgId: adminInfo.CurrentOrgId, RecordDate: recordDateTime, Ctime: ctime, Mtime: ctime, Type: types, Modifier: adminInfo.AdminUser.Id, Creator: adminInfo.AdminUser.Id, Status: 1, Doctor: role.UserName, HisPatientId: his_patient_id, OrderStatus: 1, BatchNumber: "", PrescriptionNumber: hpInfo.PrescriptionNumber, } service.SaveHisPrescription(prescription) //更改患者挂号状态 _, err := service.UpdateHisPatientIsReturn(patient_id, recordDateTime, adminInfo.CurrentOrgId) fmt.Println("更改失败", err) if items["advices"] != nil && reflect.TypeOf(items["advices"]).String() == "[]interface {}" { advices := items["advices"].([]interface{}) //group := service.GetMaxAdviceGroupID(adminInfo.CurrentOrgId) groupNo := int64(0) ctime := time.Now().Unix() mtime := ctime if len(advices) > 0 { for _, advice := range advices { var s models.HisDoctorAdviceInfo s.PrescriptionId = prescription.ID s.AdviceType = 2 s.AdviceDoctor = adminInfo.AdminUser.Id s.StopState = 2 s.ExecutionState = 2 s.AdviceDate = recordDateTime s.Status = 1 s.UserOrgId = adminInfo.CurrentOrgId s.RecordDate = recordDateTime s.StartTime = recordDateTime s.Groupno = groupNo s.CreatedTime = ctime s.UpdatedTime = mtime s.PatientId = patient_id s.HisPatientId = his_patient_id errcode := c.setAdviceWithJSON(&s, advice.(map[string]interface{})) if errcode > 0 { c.ServeFailJSONWithSGJErrorCode(errcode) return } service.CreateHisDoctorAdvice(&s) var randNum int randNum = rand.Intn(10000) + 1000 timestamp := time.Now().Unix() tempTime := time.Unix(timestamp, 0) timeFormat := tempTime.Format("20060102150405") s.FeedetlSn = timeFormat + strconv.FormatInt(int64(randNum), 10) + "-" + "1" + "-" + strconv.FormatInt(s.ID, 10) service.CreateHisDoctorAdvice(&s) } } } if items["project"] != nil && reflect.TypeOf(items["project"]).String() == "[]interface {}" { projects := items["project"].([]interface{}) if len(projects) > 0 { for _, project := range projects { var p models.HisPrescriptionProject p.PrescriptionId = prescription.ID p.Ctime = time.Now().Unix() p.Mtime = time.Now().Unix() p.PatientId = patient_id p.RecordDate = recordDateTime p.UserOrgId = adminInfo.CurrentOrgId p.HisPatientId = his_patient_id p.Status = 1 errcode := c.setProjectWithJSON(&p, project.(map[string]interface{})) if errcode > 0 { c.ServeFailJSONWithSGJErrorCode(errcode) return } service.CreateHisProjectTwo(&p) var randNum int randNum = rand.Intn(10000) + 1000 timestamp := time.Now().Unix() tempTime := time.Unix(timestamp, 0) timeFormat := tempTime.Format("20060102150405") p.FeedetlSn = timeFormat + strconv.FormatInt(int64(randNum), 10) + "-" + "2" + "-" + strconv.FormatInt(p.ID, 10) service.SaveHisProjectTwo(&p) } } } if items["addition"] != nil && reflect.TypeOf(items["addition"]).String() == "[]interface {}" { addition := items["addition"].([]interface{}) //group := service.GetMaxAdviceGroupID(adminInfo.CurrentOrgId) ctime := time.Now().Unix() mtime := ctime if len(addition) > 0 { for _, item := range addition { var s models.HisAdditionalCharge s.PrescriptionId = prescription.ID s.Status = 1 s.UserOrgId = adminInfo.CurrentOrgId s.RecordDate = recordDateTime s.CreatedTime = ctime s.UpdatedTime = mtime s.PatientId = patient_id s.HisPatientId = his_patient_id errcode := c.setAddtionWithJSON(&s, item.(map[string]interface{})) if errcode > 0 { c.ServeFailJSONWithSGJErrorCode(errcode) return } service.CreateAdditionalCharge(&s) var randNum int randNum = rand.Intn(10000) + 1000 timestamp := time.Now().Unix() tempTime := time.Unix(timestamp, 0) timeFormat := tempTime.Format("20060102150405") s.FeedetlSn = timeFormat + strconv.FormatInt(int64(randNum), 10) + "-" + "3" + "-" + strconv.FormatInt(s.ID, 10) service.CreateAdditionalCharge(&s) } } } } } } if err == nil { c.ServeSuccessJSON(map[string]interface{}{ "msg": "保存成功", }) return } else { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError) return } } func (c *HisApiController) DeletePrescription() { prescription_id, _ := c.GetInt64("id") //TODO 需要判断是否已经结算 err := service.DelelteHisPrescription(prescription_id, c.GetAdminUserInfo().CurrentOrgId) if err == nil { c.ServeSuccessJSON(map[string]interface{}{ "msg": "删除成功", }) return } else { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError) return } } func (c *HisApiController) DeleteDoctorAdvice() { id, _ := c.GetInt64("id") //TODO 需要判断是否已经结算 err := service.DelelteDoctorAdvice(id, c.GetAdminUserInfo().CurrentOrgId) if err == nil { c.ServeSuccessJSON(map[string]interface{}{ "msg": "删除成功", }) return } else { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError) return } } func (c *HisApiController) DeleteProject() { id, _ := c.GetInt64("id") //TODO 需要判断是否已经结算 err := service.DelelteProject(id, c.GetAdminUserInfo().CurrentOrgId) if err == nil { c.ServeSuccessJSON(map[string]interface{}{ "msg": "删除成功", }) return } else { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError) return } } func (c *HisApiController) CreateHisAdditionalCharge() { his_patient_id, _ := c.GetInt64("his_patient_id") patient_id, _ := c.GetInt64("patient_id") record_date := c.GetString("record_date") timeLayout := "2006-01-02" loc, _ := time.LoadLocation("Local") theTime, err := time.ParseInLocation(timeLayout+" 15:04:05", record_date+" 00:00:00", loc) if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } adminInfo := c.GetAdminUserInfo() recordDateTime := theTime.Unix() 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 } var additions []*models.HisAdditionalCharge if dataBody["addition"] != nil && reflect.TypeOf(dataBody["addition"]).String() == "[]interface {}" { additions, _ := dataBody["addition"].([]interface{}) if len(additions) > 0 { for _, item := range additions { items := item.(map[string]interface{}) if items["item_id"] == nil || reflect.TypeOf(items["item_id"]).String() != "float64" { utils.ErrorLog("item_id") c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } item_id := int64(items["item_id"].(float64)) if items["item_name"] == nil || reflect.TypeOf(items["item_name"]).String() != "string" { utils.ErrorLog("item_name") c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } item_name := items["item_name"].(string) if items["price"] == nil || reflect.TypeOf(items["price"]).String() != "string" { utils.ErrorLog("price") c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } price, _ := strconv.ParseFloat(items["price"].(string), 64) ctime := time.Now().Unix() additional := &models.HisAdditionalCharge{ PatientId: patient_id, HisPatientId: his_patient_id, UserOrgId: adminInfo.CurrentOrgId, RecordDate: recordDateTime, CreatedTime: ctime, UpdatedTime: ctime, Modifier: adminInfo.AdminUser.Id, Creator: adminInfo.AdminUser.Id, Price: price, ItemName: item_name, ItemId: item_id, Status: 1, } additions = append(additions, additional) } } } for _, item := range additions { service.CreateAddtionalCharge(item) } c.ServeSuccessJSON(map[string]interface{}{ "msg": "创建成功", }) } func (c *HisApiController) CreateHisPatientCaseHistory() { blood_fat := c.GetString("blood_fat") bloodfatfloat, _ := strconv.ParseFloat(blood_fat, 64) fmt.Println("33333333", bloodfatfloat) blood_sugar := c.GetString("blood_sugar") bloodsugarfloat, _ := strconv.ParseFloat(blood_sugar, 64) fmt.Println(bloodsugarfloat) chief_conplaint := c.GetString("chief_conplaint") dbp := c.GetString("dbp") dbpfloat, _ := strconv.ParseFloat(dbp, 64) delivery_way, _ := c.GetInt64("delivery_way") diagnostic := c.GetString("diagnostic") fmt.Println("diagnostic", diagnostic) family_history := c.GetString("family_history") fmt.Println(family_history) height := c.GetString("height") history_of_present_illness := c.GetString("history_of_present_illness") is_infect, _ := c.GetInt64("is_infect") fmt.Println("is", is_infect) past_history := c.GetString("past_history") patient_id, _ := c.GetInt64("patient_id") his_patient_id, _ := c.GetInt64("his_patient_id") fmt.Println("patient_id", patient_id) personal_history := c.GetString("personal_history") pulse := c.GetString("pulse") pulsefloat, _ := strconv.ParseFloat(pulse, 64) sbp := c.GetString("sbp") sbpfloat, _ := strconv.ParseFloat(sbp, 64) heightfloat, _ := strconv.ParseFloat(height, 64) sicktype := c.GetString("sick_type") fmt.Println("sicketype", sicktype) sick_type, _ := strconv.ParseInt(sicktype, 10, 64) symptom := c.GetString("symptom") sick_date := c.GetString("sick_date") temperatures := c.GetString("temperature") fmt.Println("temperatures", temperatures) temperature, _ := strconv.ParseFloat(temperatures, 64) record_date := c.GetString("record_date") breathing := c.GetString("breathing") doctor_advice := c.GetString("doctor_advice") remark := c.GetString("remark") breathingfloat, _ := strconv.ParseFloat(breathing, 64) fmt.Println("breathingfloat", breathingfloat) timeLayout := "2006-01-02" loc, _ := time.LoadLocation("Local") theTime, err := time.ParseInLocation(timeLayout+" 15:04:05", record_date+" 00:00:00", loc) if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } recordDateTime := theTime.Unix() fmt.Println("recordDataTime", recordDateTime) sickTime, err := time.ParseInLocation(timeLayout+" 15:04:05", sick_date+" 00:00:00", loc) if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } sickTimes := sickTime.Unix() ctime := time.Now().Unix() caseHistory := models.HisPatientCaseHistory{ HisPatientId: his_patient_id, PatientId: patient_id, Temperature: temperature, BloodSugar: bloodsugarfloat, Pulse: pulsefloat, Sbp: sbpfloat, Dbp: dbpfloat, Height: heightfloat, BloodFat: bloodfatfloat, SickType: sick_type, Symptom: symptom, SickDate: sickTimes, IsInfect: is_infect, HistoryOfPresentIllness: history_of_present_illness, PastHistory: past_history, Doctor: c.GetAdminUserInfo().AdminUser.Id, ChiefConplaint: chief_conplaint, PersonalHistory: personal_history, FamilyHistory: family_history, Diagnostic: diagnostic, UserOrgId: c.GetAdminUserInfo().CurrentOrgId, Status: 1, Ctime: ctime, Mtime: ctime, RecordDate: recordDateTime, DeliveryWay: delivery_way, Breathing: breathingfloat, DoctorAdvice: doctor_advice, Remark: remark, } err = service.SaveHisPatientCaseHistory(&caseHistory) if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeUpdateConfig) return } c.ServeSuccessJSON(map[string]interface{}{ "caseHistory": caseHistory, }) return //查询该患者是否有病历 //_, errcode := service.GetHisPatientCaseHistoryById(his_patient_id) //if errcode == gorm.ErrRecordNotFound { // err = service.SaveHisPatientCaseHistory(caseHistory) // if err != nil { // c.ServeSuccessJSON(map[string]interface{}{ // "msg": "保存成功", // }) // } //} else if errcode == nil { // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeUpdateConfig) // return //} } func (c *HisApiController) GetHisPatientCaseHistoryList() { patient_id, _ := c.GetInt64("patient_id", 0) adminUser := c.GetAdminUserInfo() caseHistorys, _ := service.GetHisPatientCaseHistoryList(adminUser.CurrentOrgId, patient_id) c.ServeSuccessJSON(map[string]interface{}{ "list": caseHistorys, }) } func (c *HisApiController) GetHisPatientCaseHistory() { record_date, _ := c.GetInt64("record_date", 0) patient_id, _ := c.GetInt64("patient_id", 0) admin := c.GetAdminUserInfo() info, _ := service.GetHisPatientInfo(admin.CurrentOrgId, patient_id, record_date) case_history, _ := service.GetHisPatientCaseHistoryInfo(admin.CurrentOrgId, patient_id, record_date) c.ServeSuccessJSON(map[string]interface{}{ "info": info, "case_history": case_history, }) } func (c *HisApiController) CreateCaseHistoryTemplate() { template_name := c.GetString("template_name") fmt.Println("template_name22222222222222", template_name) template_remark := c.GetString("template_remark") doctor := c.GetAdminUserInfo().AdminUser.Id diagnostic := c.GetString("diagnostic") chief_conplaint := c.GetString("chief_conplain") history_of_present_illness := c.GetString("history_of_present_illness") past_history := c.GetString("past_history") personal_history := c.GetString("personal_history") family_history := c.GetString("family_history") user_name := c.GetString("user_name") doctor_advice := c.GetString("doctor_advice") remark := c.GetString("remark") //record_date := c.GetString("record_date") //fmt.Println("record_date--------",record_date) //timeLayout := "2006-01-02" //loc, _ := time.LoadLocation("Local") // //theTime, err := time.ParseInLocation(timeLayout+" 15:04:05", record_date+" 00:00:00", loc) //if err != nil { // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) // return //} //recordDateTime := theTime.Unix() ctime := time.Now().Unix() template := models.HisCaseHistoryTemplate{ HistoryOfPresentIllness: history_of_present_illness, PastHistory: past_history, ChiefConplaint: chief_conplaint, PersonalHistory: personal_history, FamilyHistory: family_history, Diagnostic: diagnostic, UserOrgId: c.GetAdminUserInfo().CurrentOrgId, Status: 1, Ctime: ctime, Mtime: ctime, RecordDate: time.Now().Unix(), TemplateName: template_name, TemplateRemark: template_remark, Creator: doctor, Modifier: doctor, UserName: user_name, DoctorAdvice: doctor_advice, Remark: remark, } err := service.SaveHisPatientCaseHistoryTemplate(template) if err == nil { c.ServeSuccessJSON(map[string]interface{}{ "msg": "保存成功", }) } else { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError) return } } func (c *HisApiController) GetCaseHistoryTemplate() { timeLayout := "2006-01-02" loc, _ := time.LoadLocation("Local") keyword := c.GetString("keyword") start_time := c.GetString("start_time") end_time := c.GetString("end_time") startTime, _ := time.ParseInLocation(timeLayout+" 15:04:05", start_time+" 00:00:00", loc) endTime, _ := time.ParseInLocation(timeLayout+" 15:04:05", end_time+" 23:59:59", loc) admin := c.GetAdminUserInfo() template, _ := service.GetHisPatientCaseHistoryTemplate(admin.CurrentOrgId, startTime.Unix(), endTime.Unix(), keyword) //history, _ := service.GetHisPatientCaseHistory(admin.CurrentOrgId) c.ServeSuccessJSON(map[string]interface{}{ "template": template, //"history": history, }) } func (c *HisApiController) setAdviceWithJSON(advice *models.HisDoctorAdviceInfo, json map[string]interface{}) int { if json["drug_name"] == nil || reflect.TypeOf(json["drug_name"]).String() != "string" { utils.ErrorLog("drug_name") return enums.ErrorCodeParamWrong } adviceName, _ := json["drug_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["id"] == nil { advice.DrugId = 0 } else { if json["id"] != nil || reflect.TypeOf(json["id"]).String() == "float64" { drug_id := int64(json["id"].(float64)) advice.DrugId = drug_id } } if json["advice_id"] != nil && reflect.TypeOf(json["advice_id"]).String() == "float64" { advice_id := int64(json["advice_id"].(float64)) advice.ID = advice_id } if json["min_unit"] != nil && reflect.TypeOf(json["min_unit"]).String() == "string" { drugSpecUnit, _ := json["min_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 } if json["retail_price"] != nil || reflect.TypeOf(json["retail_price"]).String() == "string" { price, _ := strconv.ParseFloat(json["retail_price"].(string), 64) advice.Price = price } if json["medical_insurance_number"] != nil || reflect.TypeOf(json["medical_insurance_number"]).String() == "string" { med_list_codg, _ := json["medical_insurance_number"].(string) advice.MedListCodg = med_list_codg } if json["day"] != nil || reflect.TypeOf(json["day"]).String() == "float64" { day := int64(json["day"].(float64)) advice.Day = day } return 0 } func (c *HisApiController) setProjectWithJSON(project *models.HisPrescriptionProject, json map[string]interface{}) int { if json["id"] != nil || reflect.TypeOf(json["id"]).String() == "float64" { id := int64(json["id"].(float64)) project.ID = id } if json["project_id"] != nil || reflect.TypeOf(json["project_id"]).String() == "float64" { project_id := int64(json["project_id"].(float64)) project.ProjectId = project_id fmt.Println(project_id) fmt.Println(project.ProjectId) } if json["price"] != nil || reflect.TypeOf(json["price"]).String() == "float64" { price := int64(json["price"].(float64)) formatInt_price := strconv.FormatInt(price, 10) float_price, _ := strconv.ParseFloat(formatInt_price, 64) project.Price = float_price } if json["total"] != nil && reflect.TypeOf(json["total"]).String() == "string" { total, _ := json["total"].(string) totals, _ := strconv.ParseInt(total, 10, 64) project.Count = totals } if json["medical_code"] != nil && reflect.TypeOf(json["medical_code"]).String() == "string" { medical_code, _ := json["medical_code"].(string) project.MedListCodg = medical_code } if json["single_dose"] != nil && reflect.TypeOf(json["single_dose"]).String() == "string" { single_dose, _ := json["single_dose"].(string) project.SingleDose = single_dose } if json["delivery_way"] != nil && reflect.TypeOf(json["delivery_way"]).String() == "string" { delivery_way, _ := json["delivery_way"].(string) project.DeliveryWay = delivery_way } if json["execution_frequency"] != nil && reflect.TypeOf(json["execution_frequency"]).String() == "string" { execution_frequency, _ := json["execution_frequency"].(string) project.ExecutionFrequency = execution_frequency } if json["remark"] != nil && reflect.TypeOf(json["remark"]).String() == "string" { remark, _ := json["remark"].(string) project.Remark = remark } if json["number_days"] != nil && reflect.TypeOf(json["number_days"]).String() == "string" { day, _ := json["number_days"].(string) project.Day = day } if json["unit"] != nil && reflect.TypeOf(json["unit"]).String() == "string" { unit, _ := json["unit"].(string) project.Unit = unit } return 0 } func (c *HisApiController) setAddtionWithJSON(additionalCharge *models.HisAdditionalCharge, json map[string]interface{}) int { if json["id"] != nil || reflect.TypeOf(json["id"]).String() == "float64" { id := int64(json["id"].(float64)) additionalCharge.ID = id } if json["item_id"] != nil || reflect.TypeOf(json["item_id"]).String() == "float64" { item_id := int64(json["item_id"].(float64)) additionalCharge.ItemId = item_id } if json["price"] != nil || reflect.TypeOf(json["price"]).String() == "float64" { price := int64(json["price"].(float64)) formatInt_price := strconv.FormatInt(price, 10) float_price, _ := strconv.ParseFloat(formatInt_price, 64) additionalCharge.Price = float_price } if json["count"] != nil && reflect.TypeOf(json["count"]).String() == "string" { count, _ := json["count"].(string) counts, _ := strconv.ParseInt(count, 10, 64) additionalCharge.Count = counts } if json["item_name"] != nil && reflect.TypeOf(json["item_name"]).String() == "string" { item_name, _ := json["item_name"].(string) additionalCharge.ItemName = item_name } return 0 } func (c *HisApiController) GetHisOrderList() { page, _ := c.GetInt64("page", -1) limit, _ := c.GetInt64("limit", -1) start_time := c.GetString("start_time") end_time := c.GetString("end_time") types, _ := c.GetInt64("type", 0) keywords := c.GetString("keywords") timeLayout := "2006-01-02" loc, _ := time.LoadLocation("Local") var startTime int64 if len(start_time) > 0 { theTime, err := time.ParseInLocation(timeLayout+" 15:04:05", start_time+" 00:00:00", loc) if err != nil { fmt.Println(err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } startTime = theTime.Unix() } var endTime int64 if len(end_time) > 0 { theTime, err := time.ParseInLocation(timeLayout+" 15:04:05", end_time+" 23:59:59", loc) if err != nil { utils.ErrorLog(err.Error()) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } endTime = theTime.Unix() } adminUser := c.GetAdminUserInfo() org_id := adminUser.CurrentOrgId order, err, total := service.GetHisOrderList(org_id, page, limit, startTime, endTime, types, keywords) if err == nil { c.ServeSuccessJSON(map[string]interface{}{ "order": order, "total": total, }) } else { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } func (c *HisApiController) GetHisOrder() { patient_id, _ := c.GetInt64("patient_id", 0) number := c.GetString("number") adminInfo := c.GetAdminUserInfo() order, err := service.GetHisOrder(adminInfo.CurrentOrgId, number, patient_id) prescriptions, _ := service.GetHisPrescriptionThree(adminInfo.CurrentOrgId, patient_id, order.SettleAccountsDate, order.Number) if err == nil { c.ServeSuccessJSON(map[string]interface{}{ "order": order, "prescription": prescriptions, }) } else { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } func (c *HisApiController) GetHisPrescriptionList() { record_date := c.GetString("record_date") keywords := c.GetString("keywords") page, _ := c.GetInt64("page") limit, _ := c.GetInt64("limit") timeLayout := "2006-01-02" loc, _ := time.LoadLocation("Local") theTime, err := time.ParseInLocation(timeLayout+" 15:04:05", record_date+" 00:00:00", loc) if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } recordDateTime := theTime.Unix() adminInfo := c.GetAdminUserInfo() prescriptionOrder, err, total := service.GetHisPatientPrescriptionList(adminInfo.CurrentOrgId, keywords, recordDateTime, page, limit) //adminInfo := c.GetAdminUserInfo() //prescriptionOrder, err := service.GetHisPrescriptionOrderList(adminInfo.CurrentOrgId) //fmt.Println(prescriptionOrder) if err == nil { c.ServeSuccessJSON(map[string]interface{}{ "order": prescriptionOrder, "total": total, }) } else { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } func (c *HisApiController) GetHisPrescriptionInfo() { id, _ := c.GetInt64("id") adminInfo := c.GetAdminUserInfo() prescriptionOrder, err := service.GetHisPrescriptionOrderInfo(id, adminInfo.CurrentOrgId) prescription, err := service.GetHisPrescriptionFour(adminInfo.CurrentOrgId, prescriptionOrder.PatientId, prescriptionOrder.RecordDate, prescriptionOrder.PrescriptionNumber) if err == nil { c.ServeSuccessJSON(map[string]interface{}{ "order": prescriptionOrder, "prescription": prescription, }) } else { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } func (c *HisApiController) GetMedicalInsuranceConfig() { adminUser := c.GetAdminUserInfo() config, _ := service.GetMedicalInsuranceConfig(adminUser.CurrentOrgId) c.ServeSuccessJSON(map[string]interface{}{ "config": config, }) } type ResultTwo struct { ErrMsg interface{} `json:"err_msg"` InfRefmsgid string `json:"inf_refmsgid"` Infcode int64 `json:"infcode"` Output struct { Baseinfo struct { Age float64 `json:"age"` Brdy string `json:"brdy"` Certno string `json:"certno"` Gend string `json:"gend"` Naty string `json:"naty"` PsnCertType string `json:"psn_cert_type"` PsnName string `json:"psn_name"` PsnNo string `json:"psn_no"` } `json:"baseinfo"` Idetinfo []interface{} `json:"idetinfo"` Iinfo []struct { Balc int64 `json:"balc"` CvlservFlag string `json:"cvlserv_flag"` EmpName string `json:"emp_name"` InsuplcAdmdvs string `json:"insuplc_admdvs"` Insutype string `json:"insutype"` PausInsuDansuplcAdmdvs string `json:"paus_insu_dansuplc_admdvs"` PausInsuDate interface{} `json:"paus_insu_date"` PsnInsuDate string `json:"psn_insu_date"` PsnInsuStas string `json:"psn_insu_stas"` PsnType string `json:"psn_type"` } `json:"insuinfo"` } `json:"output"` RefmsgTime string `json:"refmsg_time"` RespondTime string `json:"respond_time"` Signtype interface{} `json:"signtype"` WarnInfo interface{} `json:"warn_info"` } type ResultThree struct { Cainfo interface{} `json:"cainfo"` ErrMsg interface{} `json:"err_msg"` InfRefmsgid string `json:"inf_refmsgid"` Infcode int64 `json:"infcode"` Output struct { Data struct { IptOtpNo string `json:"ipt_otp_no"` MdtrtID string `json:"mdtrt_id"` PsnNo string `json:"psn_no"` } `json:"data"` } `json:"output"` RefmsgTime string `json:"refmsg_time"` RespondTime string `json:"respond_time"` Signtype interface{} `json:"signtype"` WarnMsg interface{} `json:"warn_msg"` } type ResultFour struct { Cainfo string `json:"cainfo"` ErrMsg string `json:"err_msg"` InfRefmsgid string `json:"inf_refmsgid"` Infcode int64 `json:"infcode"` Output struct { Result []struct { BasMednFlag string `json:"bas_medn_flag"` ChldMedcFlag string `json:"chld_medc_flag"` ChrgitmLv string `json:"chrgitm_lv"` Cnt float64 `json:"cnt"` DetItemFeeSumamt float64 `json:"det_item_fee_sumamt"` DrtReimFlag string `json:"drt_reim_flag"` FeedetlSn string `json:"feedetl_sn"` FulamtOwnpayAmt float64 `json:"fulamt_ownpay_amt"` HiNegoDrugFlag string `json:"hi_nego_drug_flag"` InscpScpAmt float64 `json:"inscp_scp_amt"` ListSpItemFlag string `json:"list_sp_item_flag"` LmtUsedFlag string `json:"lmt_used_flag"` MedChrgitmType string `json:"med_chrgitm_type"` Memo string `json:"memo"` OverlmtAmt float64 `json:"overlmt_amt"` PreselfpayAmt float64 `json:"preselfpay_amt"` Pric float64 `json:"pric"` PricUplmtAmt float64 `json:"pric_uplmt_amt"` SelfpayProp float64 `json:"selfpay_prop"` } `json:"result"` } `json:"output"` RefmsgTime string `json:"refmsg_time"` RespondTime string `json:"respond_time"` Signtype string `json:"signtype"` WarnMsg string `json:"warn_msg"` } type ResultFive struct { Insutype string `json:"insutype"` } type ResultSix struct { Cainfo interface{} `json:"cainfo"` ErrMsg interface{} `json:"err_msg"` InfRefmsgid string `json:"inf_refmsgid"` Infcode int64 `json:"infcode"` Output struct { } `json:"output"` RefmsgTime string `json:"refmsg_time"` RespondTime string `json:"respond_time"` Signtype interface{} `json:"signtype"` WarnMsg interface{} `json:"warn_msg"` } type ResultSeven struct { Cainfo string `json:"cainfo"` ErrMsg string `json:"err_msg"` InfRefmsgid string `json:"inf_refmsgid"` Infcode int64 `json:"infcode"` Output struct { Setldetail []interface{} `json:"setldetail"` Setlinfo struct { AcctMulaidPay float64 `json:"acct_mulaid_pay"` AcctPay float64 `json:"acct_pay"` ActPayDedc float64 `json:"act_pay_dedc"` Age float64 `json:"age"` Balc float64 `json:"balc"` Brdy string `json:"brdy"` Certno string `json:"certno"` ClrOptins string `json:"clr_optins"` ClrType string `json:"clr_type"` ClrWay string `json:"clr_way"` CvlservFlag string `json:"cvlserv_flag"` CvlservPay float64 `json:"cvlserv_pay"` FulamtOwnpayAmt float64 `json:"fulamt_ownpay_amt"` FundPaySumamt float64 `json:"fund_pay_sumamt"` Gend string `json:"gend"` HifesPay float64 `json:"hifes_pay"` HifmiPay float64 `json:"hifmi_pay"` HifobPay float64 `json:"hifob_pay"` HifpPay float64 `json:"hifp_pay"` HospPartAmt float64 `json:"hosp_part_amt"` InscpScpAmt float64 `json:"inscp_scp_amt"` Insutype string `json:"insutype"` MafPay float64 `json:"maf_pay"` MdtrtCertType string `json:"mdtrt_cert_type"` MdtrtID string `json:"mdtrt_id"` MedType string `json:"med_type"` MedfeeSumamt float64 `json:"medfee_sumamt"` MedinsSetlID string `json:"medins_setl_id"` Naty string `json:"naty"` OthPay float64 `json:"oth_pay"` OverlmtSelfpay float64 `json:"overlmt_selfpay"` PoolPropSelfpay float64 `json:"pool_prop_selfpay"` PreselfpayAmt float64 `json:"preselfpay_amt"` PsnCashPay float64 `json:"psn_cash_pay"` PsnCertType string `json:"psn_cert_type"` PsnName string `json:"psn_name"` PsnNo string `json:"psn_no"` PsnPartAmt float64 `json:"psn_part_amt"` PsnType string `json:"psn_type"` SetlID string `json:"setl_id"` SetlTime string `json:"setl_time"` } `json:"setlinfo"` } `json:"output"` RefmsgTime string `json:"refmsg_time"` RespondTime string `json:"respond_time"` Signtype interface{} `json:"signtype"` WarnMsg interface{} `json:"warn_msg"` } type Custom struct { DetItemFeeSumamt string Cut string FeedetlSn string Price string MedListCodg string Type int64 AdviceId int64 ProjectId int64 ItemId int64 } //获取个人信息----挂号-----上传就诊信息 func (c *HisApiController) GetRegisterInfo() { id, _ := c.GetInt64("id") record_time := c.GetString("record_time") timeLayout := "2006-01-02" loc, _ := time.LoadLocation("Local") theTime, err := time.ParseInLocation(timeLayout+" 15:04:05", record_time+" 00:00:00", loc) if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } recordDateTime := theTime.Unix() adminInfo := c.GetAdminUserInfo() patient, _ := service.GetPatientByID(adminInfo.CurrentOrgId, id) patientPrescription, _ := service.FindPatientPrescriptionInfo(adminInfo.CurrentOrgId, id, recordDateTime) miConfig, _ := service.FindMedicalInsuranceInfo(adminInfo.CurrentOrgId) if patient == nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodePatientNoExist) return } if len(patient.IdCardNo) == 0 { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeIDCartNo) return } //org, _ := service.GetOrgById(adminInfo.CurrentOrgId) config, _ := service.GetMedicalInsuranceConfig(adminInfo.CurrentOrgId) if config.IsOpen == 1 { api := "http://127.0.0.1:9531/" + "gdyb/one?cert_no=" + patient.IdCardNo + "&org_name=" + miConfig.OrgName + "&doctor=" + patientPrescription.Doctor + "&fixmedins_code=" + miConfig.Code resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } defer resp.Body.Close() body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } userJSON := respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) userJSONBytes, _ := json.Marshal(userJSON) var res ResultTwo if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } Iinfos, _ := json.Marshal(res.Output.Iinfo) Idetinfos, _ := json.Marshal(res.Output.Idetinfo) infoStr := string(Iinfos) idetinfoStr := string(Idetinfos) his := models.VMHisPatient{ PsnNo: res.Output.Baseinfo.PsnNo, PsnCertType: res.Output.Baseinfo.PsnCertType, Certno: res.Output.Baseinfo.Certno, PsnName: res.Output.Baseinfo.PsnName, Gend: res.Output.Baseinfo.Gend, Naty: res.Output.Baseinfo.Naty, Brdy: res.Output.Baseinfo.Brdy, Age: res.Output.Baseinfo.Age, Iinfo: infoStr, Idetinfo: idetinfoStr, PatientId: patient.ID, RecordDate: theTime.Unix(), } fmt.Println(his) if res.Output.Iinfo == nil || len(res.Output.Iinfo) == 0 { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeRegisterOneException) return } timestamp := time.Now().Unix() tempTime := time.Unix(timestamp, 0) timeFormat := tempTime.Format("20060102150405") chrgBchno := rand.Intn(100000) + 10000 ipt_otp_no := timeFormat + strconv.FormatInt(int64(chrgBchno), 10) + strconv.FormatInt(his.PatientId, 10) count, _ := service.FindHisRegisterRecord(theTime.Unix(), patient.ID, adminInfo.CurrentOrgId) department, _ := service.GetDepartMentDetail(patientPrescription.Departments) if count <= 0 { api := "http://127.0.0.1:9531/" + "gdyb/two?cert_no=" + patient.IdCardNo + "&insutype=" + res.Output.Iinfo[0].Insutype + "&psn_no=" + res.Output.Baseinfo.PsnNo + "&org_name=" + miConfig.OrgName + "&doctor=" + patientPrescription.Doctor + "&ipt_otp_no=" + ipt_otp_no + "&dept=" + department.Name + "&fixmedins_code=" + miConfig.Code resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } defer resp.Body.Close() body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) userJSONBytes, _ := json.Marshal(respJSON) var res ResultThree if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if res.Infcode == -1 { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeRegisterTwoException) return } fmt.Println("000!!!!!!") fmt.Println(res) fmt.Println(res.Output.Data.MdtrtID) fmt.Println(res.Output.Data.PsnNo) fmt.Println(res.Output.Data.IptOtpNo) his.Number = res.Output.Data.MdtrtID his.PsnNo = res.Output.Data.PsnNo his.IptOtpNo = res.Output.Data.IptOtpNo his.IdCardNo = patient.IdCardNo his.PhoneNumber = patient.Phone his.UserOrgId = adminInfo.CurrentOrgId his.Status = 1 his.Ctime = time.Now().Unix() his.Mtime = time.Now().Unix() err := service.CreateHisPatientTwo(&his) diagnosisConfig, _ := service.FindDiagnoseById(patientPrescription.Diagnosis) if err == nil { api := "http://127.0.0.1:9531/" + "gdyb/four?psn_no=" + his.PsnNo + "&mdtrt_id=" + his.Number + "&doctor=" + patientPrescription.Doctor + "&department=" + department.Name + "&diag=" + diagnosisConfig.ClassName + "&org_name=" + miConfig.OrgName + "&med_type=" + "11" + "&doctor_id=" + strconv.FormatInt(patientPrescription.DoctorId, 10) + "&fixmedins_code=" + miConfig.Code resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) userJSONBytes, _ := json.Marshal(respJSON) fmt.Println(respJSON) fmt.Println(userJSONBytes) var res ResultSix if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if res.Infcode == -1 { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeRegisterTwoException) return } c.ServeSuccessJSON(map[string]interface{}{ "his_info": his, }) } else { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } } else { his, err := service.GetHisPatientInfo(adminInfo.CurrentOrgId, patient.ID, recordDateTime) if err == gorm.ErrRecordNotFound || his.ID == 0 { patient := models.XtHisPatient{ Age: patient.Age, Birthday: patient.Birthday, AdminUserId: adminInfo.AdminUser.Id, IdCardNo: patient.IdCardNo, Name: patient.Name, Gender: patient.Gender, UserOrgId: adminInfo.CurrentOrgId, Status: 1, RecordDate: recordDateTime, IsReturn: 1, PatientId: patient.ID, Ctime: time.Now().Unix(), Mtime: time.Now().Unix(), } service.CreateHisPatient(&patient) } c.ServeSuccessJSON(map[string]interface{}{ "his_info": patient, }) } } //上传明细----结算 func (c *HisApiController) GetUploadInfo() { id, _ := c.GetInt64("id") record_time := c.GetString("record_time") timeLayout := "2006-01-02" loc, _ := time.LoadLocation("Local") theTime, err := time.ParseInLocation(timeLayout+" 15:04:05", record_time+" 00:00:00", loc) if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } recordDateTime := theTime.Unix() adminUser := c.GetAdminUserInfo() prescriptions, _ := service.GetHisPrescription(adminUser.CurrentOrgId, id, recordDateTime) his, _ := service.GetVMHisPatientInfo(adminUser.CurrentOrgId, id, recordDateTime) timestamp := time.Now().Unix() tempTime := time.Unix(timestamp, 0) timeFormat := tempTime.Format("20060102150405") chrgBchno := rand.Intn(100000) + 10000 chrg_bchno := timeFormat + strconv.FormatInt(int64(chrgBchno), 10) + strconv.FormatInt(his.PatientId, 10) miConfig, _ := service.FindMedicalInsuranceInfo(adminUser.CurrentOrgId) //org, _ := service.GetOrgById(adminUser.CurrentOrgId) patientPrescription, _ := service.FindPatientPrescriptionInfo(adminUser.CurrentOrgId, id, recordDateTime) client := &http.Client{} data := make(map[string]interface{}) data["psn_no"] = his.PsnNo data["mdtrt_id"] = his.Number data["pre"] = prescriptions data["chrg_bchno"] = chrg_bchno data["org_name"] = miConfig.OrgName data["doctor"] = patientPrescription.Doctor data["dept"] = patientPrescription.Departments data["fixmedins_code"] = miConfig.Code var ids []int64 //var idsTwo []int64 // for _, item := range prescriptions { ids = append(ids, item.ID) } config, _ := service.GetMedicalInsuranceConfig(adminUser.CurrentOrgId) if config.IsOpen == 1 { //对接了医保,走医保流程 bytesData, _ := json.Marshal(data) req, _ := http.NewRequest("POST", "http://127.0.0.1:9531/"+"gdyb/five", bytes.NewReader(bytesData)) resp, _ := client.Do(req) defer resp.Body.Close() body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) userJSONBytes, _ := json.Marshal(respJSON) var res ResultFour if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if res.Infcode == 0 { order := &models.HisOrder{ UserOrgId: adminUser.CurrentOrgId, HisPatientId: his.ID, PatientId: his.PatientId, SettleAccountsDate: recordDateTime, Ctime: time.Now().Unix(), Mtime: time.Now().Unix(), Status: 1, Number: chrg_bchno, Infcode: res.Infcode, WarnMsg: res.WarnMsg, Cainfo: res.Cainfo, ErrMsg: res.ErrMsg, RespondTime: res.RefmsgTime, InfRefmsgid: res.InfRefmsgid, OrderStatus: 1, } err = service.CreateOrder(order) if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeCreateOrderException) return } for _, item := range res.Output.Result { temp := strings.Split(item.FeedetlSn, "-") var advice_id int64 = 0 var project_id int64 = 0 var types int64 = 0 id, _ := strconv.ParseInt(temp[2], 10, 64) types, _ = strconv.ParseInt(temp[1], 10, 64) if temp[1] == "1" { advice_id = id project_id = 0 } else if temp[1] == "2" { advice_id = 0 project_id = id } info := &models.HisOrderInfo{ OrderNumber: order.Number, FeedetlSn: item.FeedetlSn, UploadDate: time.Now().Unix(), AdviceId: advice_id, DetItemFeeSumamt: item.DetItemFeeSumamt, Cnt: item.Cnt, Pric: float64(item.Pric), PatientId: his.PatientId, PricUplmtAmt: item.PricUplmtAmt, SelfpayProp: item.SelfpayProp, FulamtOwnpayAmt: item.FulamtOwnpayAmt, OverlmtAmt: item.OverlmtAmt, PreselfpayAmt: item.PreselfpayAmt, BasMednFlag: item.BasMednFlag, MedChrgitmType: item.MedChrgitmType, HiNegoDrugFlag: item.HiNegoDrugFlag, Status: 1, Memo: item.Memo, Mtime: time.Now().Unix(), InscpScpAmt: item.InscpScpAmt, DrtReimFlag: item.DrtReimFlag, Ctime: time.Now().Unix(), ListSpItemFlag: item.ListSpItemFlag, ChldMedcFlag: item.ChldMedcFlag, LmtUsedFlag: item.LmtUsedFlag, ChrgitmLv: item.ChrgitmLv, UserOrgId: adminUser.CurrentOrgId, HisPatientId: his.ID, OrderId: order.ID, ProjectId: project_id, Type: types, } service.CreateOrderInfo(info) } service.UpDatePrescriptionNumber(adminUser.CurrentOrgId, ids, chrg_bchno) service.UpDatePrescriptionInfoNumber(adminUser.CurrentOrgId, patientPrescription.PatientId, chrg_bchno, recordDateTime) var total float64 for _, item := range prescriptions { if item.Type == 1 { //药品 for _, subItem := range item.HisDoctorAdviceInfo { total = total + (subItem.Price * subItem.PrescribingNumber) } } if item.Type == 2 { //项目 for _, subItem := range item.HisPrescriptionProject { total = total + (subItem.Price * float64(subItem.Count)) } } } org, _ := service.GetOrgById(adminUser.CurrentOrgId) patientPrescription, _ := service.FindPatientPrescriptionInfo(adminUser.CurrentOrgId, id, recordDateTime) allTotal := fmt.Sprintf("%.2f", total) if res.Infcode == 0 { var rf []*ResultFive json.Unmarshal([]byte(his.Iinfo), &rf) psn_no := his.PsnNo mdtrt_id := his.Number chrg_bchno := chrg_bchno cert_no := his.Certno insutype := rf[0].Insutype api := "http://127.0.0.1:9531/" + "gdyb/eight?cert_no=" + cert_no + "&insutype=" + insutype + "&psn_no=" + psn_no + "&chrg_bchno=" + chrg_bchno + "&mdtrt_id=" + mdtrt_id + "&total=" + allTotal + "&org_name=" + org.OrgName + "&doctor=" + patientPrescription.Doctor + "&fixmedins_code=" + miConfig.Code resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } defer resp.Body.Close() body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } fmt.Println(respJSON) respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) userJSONBytes, _ := json.Marshal(respJSON) var res ResultSeven if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if res.Infcode == -1 { errlog := &models.HisOrderError{ UserOrgId: adminUser.CurrentOrgId, Ctime: time.Now().Unix(), Mtime: time.Now().Unix(), Number: chrg_bchno, ErrMsg: res.ErrMsg, Status: 1, PatientId: id, RecordTime: recordDateTime, Stage: 7, } service.CreateErrMsgLog(errlog) } else { order, _ := service.GetHisOrderTwo(adminUser.CurrentOrgId, chrg_bchno, id) order.OrderStatus = 2 order.MdtrtId = res.Output.Setlinfo.MdtrtID order.SetlId = res.Output.Setlinfo.SetlID order.PsnNo = res.Output.Setlinfo.PsnNo order.PsnName = res.Output.Setlinfo.PsnName order.PsnCertType = res.Output.Setlinfo.PsnCertType order.Certno = res.Output.Setlinfo.Certno order.Gend = res.Output.Setlinfo.Gend order.Naty = res.Output.Setlinfo.Naty order.Age = res.Output.Setlinfo.Age order.Insutype = res.Output.Setlinfo.Insutype order.PsnType = res.Output.Setlinfo.PsnType order.CvlservFlag = res.Output.Setlinfo.CvlservFlag order.SetlTime = res.Output.Setlinfo.SetlTime order.MdtrtCertType = res.Output.Setlinfo.MdtrtCertType order.MedType = res.Output.Setlinfo.MedType order.MedfeeSumamt = res.Output.Setlinfo.MedfeeSumamt order.FulamtOwnpayAmt = res.Output.Setlinfo.FulamtOwnpayAmt order.OverlmtSelfPay = res.Output.Setlinfo.OverlmtSelfpay order.PreselfpayAmt = res.Output.Setlinfo.PreselfpayAmt order.InscpScpAmt = res.Output.Setlinfo.InscpScpAmt order.ActPayDedc = res.Output.Setlinfo.ActPayDedc order.HifpPay = res.Output.Setlinfo.HifpPay order.CvlservPay = res.Output.Setlinfo.CvlservPay order.PoolPropSelfpay = res.Output.Setlinfo.PoolPropSelfpay order.HifesPay = res.Output.Setlinfo.HifesPay order.HifobPay = res.Output.Setlinfo.HifobPay order.MafPay = res.Output.Setlinfo.MafPay order.OthPay = res.Output.Setlinfo.OthPay order.FundPaySumamt = res.Output.Setlinfo.FundPaySumamt order.PsnPartAmt = res.Output.Setlinfo.PsnPartAmt order.AcctPay = res.Output.Setlinfo.AcctPay order.PsnCashPay = res.Output.Setlinfo.PsnCashPay order.HospPartAmt = res.Output.Setlinfo.HospPartAmt order.Balc = res.Output.Setlinfo.Balc order.AcctMulaidPay = res.Output.Setlinfo.AcctMulaidPay order.MedinsSetlId = res.Output.Setlinfo.MedinsSetlID order.ClrOptins = res.Output.Setlinfo.ClrOptins order.ClrWay = res.Output.Setlinfo.ClrWay setlDetail, _ := json.Marshal(res.Output.Setldetail) detailStr := string(setlDetail) order.SetlDetail = detailStr err := service.UpdataOrderStatusTwo(chrg_bchno, adminUser.CurrentOrgId) err = service.UpDateOrder(order) if err == nil { c.ServeSuccessJSON(map[string]interface{}{ "msg": "结算成功", }) } } } else { } } else { } } else { var total float64 for _, item := range prescriptions { if item.Type == 1 { //药品 for _, subItem := range item.HisDoctorAdviceInfo { total = total + (subItem.Price * subItem.PrescribingNumber) } } if item.Type == 2 { //项目 for _, subItem := range item.HisPrescriptionProject { total = total + (subItem.Price * float64(subItem.Count)) } } for _, subItem := range item.HisAdditionalCharge { total = total + (subItem.Price * float64(subItem.Count)) } } allTotal := fmt.Sprintf("%.2f", total) totals, _ := strconv.ParseFloat(allTotal, 64) order := &models.HisOrder{ UserOrgId: adminUser.CurrentOrgId, HisPatientId: his.ID, PatientId: id, SettleAccountsDate: recordDateTime, Ctime: time.Now().Unix(), Mtime: time.Now().Unix(), Status: 1, OrderStatus: 2, Number: chrg_bchno, MedfeeSumamt: totals, } err = service.CreateOrder(order) if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeCreateOrderException) return } var customs []*Custom for _, item := range prescriptions { if item.Type == 1 { //药品 for _, subItem := range item.HisDoctorAdviceInfo { cus := &Custom{ AdviceId: subItem.ID, ProjectId: 0, DetItemFeeSumamt: fmt.Sprintf("%.2f", subItem.Price*subItem.PrescribingNumber), Cut: fmt.Sprintf("%.2f", subItem.PrescribingNumber), FeedetlSn: subItem.FeedetlSn, Price: fmt.Sprintf("%.2f", subItem.Price), MedListCodg: subItem.MedListCodg, Type: 1, } customs = append(customs, cus) } } if item.Type == 2 { //项目 for _, subItem := range item.HisPrescriptionProject { cus := &Custom{ AdviceId: 0, ProjectId: subItem.ID, DetItemFeeSumamt: fmt.Sprintf("%.2f", subItem.Price*float64(subItem.Count)), Cut: fmt.Sprintf("%.2f", float64(subItem.Count)), FeedetlSn: subItem.FeedetlSn, Price: fmt.Sprintf("%.2f", float64(subItem.Price)), MedListCodg: subItem.MedListCodg, Type: 2, } customs = append(customs, cus) } } for _, item := range item.HisAdditionalCharge { cus := &Custom{ ItemId: item.ID, AdviceId: 0, ProjectId: 0, DetItemFeeSumamt: fmt.Sprintf("%.2f", item.Price), Cut: fmt.Sprintf("%.2f", float64(item.Count)), FeedetlSn: item.FeedetlSn, Price: fmt.Sprintf("%.2f", float64(item.Price)), MedListCodg: item.XtHisAddtionConfig.Code, Type: 3, } customs = append(customs, cus) } } for _, item := range customs { var advice_id int64 = 0 var project_id int64 = 0 var item_id int64 = 0 var types int64 = 0 if item.Type == 1 { advice_id = item.AdviceId project_id = 0 item_id = 0 } else if item.Type == 2 { advice_id = 0 item_id = 0 project_id = item.ProjectId } else if item.Type == 3 { advice_id = 0 item_id = item.ItemId project_id = 0 } detItemFeeSumamt, _ := strconv.ParseFloat(item.DetItemFeeSumamt, 32) cut, _ := strconv.ParseFloat(item.Cut, 32) pric, _ := strconv.ParseFloat(item.Price, 32) info := &models.HisOrderInfo{ OrderNumber: order.Number, UploadDate: time.Now().Unix(), AdviceId: advice_id, DetItemFeeSumamt: detItemFeeSumamt, Cnt: cut, Pric: pric, PatientId: id, Status: 1, Mtime: time.Now().Unix(), Ctime: time.Now().Unix(), UserOrgId: adminUser.CurrentOrgId, HisPatientId: his.ID, OrderId: order.ID, ProjectId: project_id, Type: types, ItemId: item_id, } service.CreateOrderInfo(info) } //err := service.UpDateAddtionNumber(adminUser.CurrentOrgId, ids, chrg_bchno) err = service.UpDatePrescriptionNumber(adminUser.CurrentOrgId, ids, chrg_bchno) err = service.UpDatePrescriptionInfoNumber(adminUser.CurrentOrgId, id, chrg_bchno, recordDateTime) err = service.UpdataOrderStatusTwo(chrg_bchno, adminUser.CurrentOrgId) if err == nil { c.ServeSuccessJSON(map[string]interface{}{ "msg": "结算成功", }) } } } //退款 func (c *HisApiController) Refund() { order_id, _ := c.GetInt64("order_id") number := c.GetString("number") adminUser := c.GetAdminUserInfo() config, _ := service.GetMedicalInsuranceConfig(adminUser.CurrentOrgId) if config.IsOpen == 1 { //对接了医保,走医保流程 } else { err := service.UpdataOrderStatus(order_id, number, adminUser.CurrentOrgId) if err == nil { c.ServeSuccessJSON(map[string]interface{}{ "msg": "退费成功", }) } else { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } } func (this *HisApiController) AdditionalCharge() { dataBody := make(map[string]interface{}, 0) err := json.Unmarshal(this.Ctx.Input.RequestBody, &dataBody) fmt.Println(err) his_patient_id := int64(dataBody["his_patient_id"].(float64)) patient_id := int64(dataBody["patient_id"].(float64)) medicineData, _ := dataBody["medicineData"].([]interface{}) adminUserInfo := this.GetAdminUserInfo() orgId := adminUserInfo.CurrentOrgId admin_user_id := adminUserInfo.AdminUser.Id timeStr := time.Now().Format("2006-01-02") timeLayout := "2006-01-02 15:04:05" timeStringToTime, _ := utils.ParseTimeStringToTime(timeLayout, timeStr+" 00:00:00") timenow := timeStringToTime.Unix() var additionalCharges []*models.HisAdditionalCharge for _, item := range medicineData { var randNum int randNum = rand.Intn(10000) + 1000 timestamp := time.Now().Unix() tempTime := time.Unix(timestamp, 0) timeFormat := tempTime.Format("20060102150405") p_number := timeFormat + strconv.FormatInt(int64(randNum), 10) + strconv.FormatInt(int64(adminUserInfo.CurrentOrgId), 10) + strconv.FormatInt(int64(patient_id), 10) items := item.(map[string]interface{}) money := items["price"].(string) item_id_str := items["item_id"].(string) name := items["name"].(string) id_str := items["id"].(string) moneys, _ := strconv.ParseInt(money, 10, 64) monStr := strconv.FormatInt(moneys, 10) monneyStr, _ := strconv.ParseFloat(monStr, 64) item_id, _ := strconv.ParseInt(item_id_str, 10, 64) id, _ := strconv.ParseInt(id_str, 10, 64) additionalCharge := &models.HisAdditionalCharge{ ID: id, HisPatientId: his_patient_id, UserOrgId: orgId, PatientId: patient_id, RecordDate: timenow, Price: monneyStr, Status: 1, ItemName: name, ItemId: item_id, AdminUserId: admin_user_id, CreatedTime: time.Now().Unix(), OrderStatus: 0, PrescriptionNumber: "", BatchNumber: "", FeedetlSn: p_number, } service.CreateAdditionalCharge(additionalCharge) additionalCharges = append(additionalCharges, additionalCharge) } this.ServeSuccessJSON(map[string]interface{}{ "msg": "添加成功", "additional_charges": additionalCharges, }) } func (this *HisApiController) DeleteAddition() { id, _ := this.GetInt64("id") //TODO 需要判断是否已经结算 err := service.DelelteAddition(id, this.GetAdminUserInfo().CurrentOrgId) if err == nil { this.ServeSuccessJSON(map[string]interface{}{ "msg": "删除成功", }) return } else { this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError) return } } func (this *HisApiController) GetAdminUsers() { adminUser := this.GetAdminUserInfo() doctors, _ := service.GetAllHisDoctor(adminUser.CurrentOrgId) this.ServeSuccessJSON(map[string]interface{}{ "doctors": doctors, }) }