123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437 |
- package controllers
-
- import (
- "XT_New/enums"
- "XT_New/service"
- "fmt"
- "github.com/astaxie/beego"
- "github.com/jinzhu/gorm"
- "strings"
- "time"
- )
-
- type DialysisPrameterApiController struct {
- BaseAuthAPIController
- }
-
- func DialysisPrameteRoutes() {
- beego.Router("/api/dialysis/getdialysisparameters", &DialysisPrameterApiController{}, "Get:GetDialysisParameters")
- beego.Router("/api/dialysis/getdialysisbatchparameters", &DialysisPrameterApiController{}, "Get:GetDialysisBatchParameters")
- beego.Router("/api/dialysis/getwarehouseoutlist", &DialysisPrameterApiController{}, "Get:GetWareHouseOutList")
- beego.Router("/api/dialysis/getallmaterial", &DialysisPrameterApiController{}, "Get:GetAllMaterial")
- beego.Router("/api/dialysis/getcollectlist", &DialysisPrameterApiController{}, "Get:GetCollectList")
- beego.Router("/api/dialysis/getbatchcollection", &DialysisPrameterApiController{}, "Get:GetBatchCollection")
- beego.Router("/api/dialysis/getgatherlist", &DialysisPrameterApiController{}, "Get:GetGatherList")
- beego.Router("/api/dialysis/getanticoagulantcount", &DialysisPrameterApiController{}, "Get:GetAnticoagulantCount")
- }
-
- func (this *DialysisPrameterApiController) GetDialysisParameters() {
- timeLayout := "2006-01-02"
- loc, _ := time.LoadLocation("Local")
- page, _ := this.GetInt64("page")
- limit, _ := this.GetInt64("limit")
- schedulType, _ := this.GetInt64("scheduleType")
- start_time := this.GetString("start_time")
- partitionType, _ := this.GetInt64("partitionType")
- keywords := this.GetString("keyword")
- adminUserInfo := this.GetAdminUserInfo()
- theTime, _ := time.ParseInLocation(timeLayout+" 15:04:05", start_time+" 00:00:00", loc)
-
- if len(keywords) > 0 {
- dialysisSchedule, err, total := service.GetDialysisParametersByKeyword(adminUserInfo.CurrentOrgId, keywords, schedulType, partitionType, page, limit, theTime.Unix())
- patient, err := service.GetDialysisTodaySchedulePatient(adminUserInfo.CurrentOrgId, theTime.Unix(), page, limit, keywords, schedulType, partitionType)
- var vlist []interface{}
- var elist []interface{}
- for _, item := range patient {
- prescription, _ := service.GetDialysisPrescriptionList(item.PatientId, adminUserInfo.CurrentOrgId, theTime.Unix())
- vlist = append(vlist, prescription)
- dialysis, _ := service.GetAssessmentBeforDialysisByStartime(item.PatientId, adminUserInfo.CurrentOrgId, theTime.Unix())
- elist = append(elist, dialysis)
- }
- if err == nil {
- this.ServeSuccessJSON(map[string]interface{}{
- "schedule": dialysisSchedule,
- "total": total,
- "prescription": vlist,
- "dialysbefor": elist,
- "patient": patient,
- })
- } else {
- this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- }
- } else {
- dialysisSchedule, err, total := service.GetDialysisParameter(adminUserInfo.CurrentOrgId, theTime.Unix(), schedulType, partitionType, page, limit)
-
- //查询今日排班的病人
- patient, err := service.GetDialysisTodaySchedulePatient(adminUserInfo.CurrentOrgId, theTime.Unix(), page, limit, keywords, schedulType, partitionType)
-
- var vlist []interface{}
- var elist []interface{}
- for _, item := range patient {
- //查询当前日期的病人是否存在数据
- //_, errcode := service.GetToDayDialysisPrescription(item.PatientId, adminUserInfo.CurrentOrgId, theTime.Unix())
- //if errcode == gorm.ErrRecordNotFound {
- // //查询每个病人透析处方的最后一次数据
- // prescription, _ := service.GetLastDialysisPrescription(item.PatientId, adminUserInfo.CurrentOrgId)
- // vlist = append(vlist, prescription)
- //} else if errcode == nil {
- // //获取当前日期
- // prescription, _ := service.GetDialysisPrescriptionList(item.PatientId, adminUserInfo.CurrentOrgId, theTime.Unix())
- // vlist = append(vlist, prescription)
- //}
-
- //_, errcodes := service.GetTodayAssessmentBeforDialysis(item.PatientId, adminUserInfo.CurrentOrgId, theTime.Unix())
- //if errcodes == gorm.ErrRecordNotFound {
- // //查询每个病人透前评估的最后一次数据
- // dialysis, _ := service.GetLastAssessmentBeforDialysis(item.PatientId, adminUserInfo.CurrentOrgId)
- // elist = append(elist, dialysis)
- //} else if errcodes == nil {
- // dialysis, _ := service.GetAssessmentBeforDialysisByStartime(item.PatientId, adminUserInfo.CurrentOrgId, theTime.Unix())
- // elist = append(elist, dialysis)
- //}
-
- prescription, _ := service.GetDialysisPrescriptionList(item.PatientId, adminUserInfo.CurrentOrgId, theTime.Unix())
- vlist = append(vlist, prescription)
- dialysis, _ := service.GetAssessmentBeforDialysisByStartime(item.PatientId, adminUserInfo.CurrentOrgId, theTime.Unix())
- elist = append(elist, dialysis)
- }
-
- if err == nil {
- this.ServeSuccessJSON(map[string]interface{}{
- "schedule": dialysisSchedule,
- "total": total,
- "prescription": vlist,
- "dialysbefor": elist,
- "patient": patient,
- })
- } else {
- this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
- }
- }
-
- }
-
- func (this *DialysisPrameterApiController) GetDialysisBatchParameters() {
- timeLayout := "2006-01-02"
- loc, _ := time.LoadLocation("Local")
- adminUser := this.GetAdminUserInfo()
- orgId := adminUser.CurrentOrgId
- schIDStr := this.GetString("ids")
- if len(schIDStr) == 0 {
- this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong)
- return
- }
- idStrs := strings.Split(schIDStr, ",")
- startime := this.GetString("startime")
- theTime, _ := time.ParseInLocation(timeLayout+" 15:04:05", startime+" 00:00:00", loc)
- parameters, err := service.GetDialysisBatchParameters(idStrs, orgId)
- var vlist []interface{}
- var elist []interface{}
- for _, item := range parameters {
- //查询当前日期的病人是否存在数据
- _, errcode := service.GetToDayDialysisPrescription(item.PatientId, orgId, theTime.Unix())
- if errcode == gorm.ErrRecordNotFound {
- //查询每个病人透析处方的最后一次数据
- prescription, _ := service.GetLastDialysisPrescription(item.PatientId, orgId)
- vlist = append(vlist, prescription)
- } else if errcode == nil {
- //获取当前日期
- prescription, _ := service.GetDialysisPrescriptionList(item.PatientId, orgId, theTime.Unix())
- vlist = append(vlist, prescription)
- }
-
- _, errcodes := service.GetTodayAssessmentBeforDialysis(item.PatientId, orgId, theTime.Unix())
- if errcodes == gorm.ErrRecordNotFound {
- //查询每个病人透前评估的最后一次数据
- dialysis, _ := service.GetLastAssessmentBeforDialysis(item.PatientId, orgId)
- elist = append(elist, dialysis)
- } else if errcodes == nil {
- dialysis, _ := service.GetAssessmentBeforDialysisByStartime(item.PatientId, orgId, theTime.Unix())
- elist = append(elist, dialysis)
- }
-
- }
- if err == nil {
- this.ServeSuccessJSON(map[string]interface{}{
- "schedule": parameters,
- "prescription": vlist,
- "dialysbefor": elist,
- })
- }
- }
-
- func (this *DialysisPrameterApiController) GetWareHouseOutList() {
-
- timeLayout := "2006-01-02"
- loc, _ := time.LoadLocation("Local")
- start_time := this.GetString("start_time")
- startime, _ := time.ParseInLocation(timeLayout+" 15:04:05", start_time+" 00:00:00", loc)
- end_time := this.GetString("end_time")
- endtime, _ := time.ParseInLocation(timeLayout+" 15:04:05", end_time+" 23:59:59", loc)
- fmt.Println(start_time, end_time)
- adminUserInfo := this.GetAdminUserInfo()
- orgId := adminUserInfo.CurrentOrgId
- wareoutlist, err := service.GetWareHouseOutList(startime.Unix(), endtime.Unix(), orgId)
- if err == nil {
- this.ServeSuccessJSON(map[string]interface{}{
- "wareoutlist": wareoutlist,
- })
- }
- }
-
- func (this *DialysisPrameterApiController) GetAllMaterial() {
-
- timeLayout := "2006-01-02"
- loc, _ := time.LoadLocation("Local")
- start_time := this.GetString("startime")
- startime, _ := time.ParseInLocation(timeLayout+" 15:04:05", start_time+" 00:00:00", loc)
- endtime, _ := time.ParseInLocation(timeLayout+" 15:04:05", start_time+" 23:59:59", loc)
- orgId := this.GetAdminUserInfo().CurrentOrgId
- material, err := service.GetAllMaterial(startime.Unix(), endtime.Unix(), orgId)
- if err == nil {
- this.ServeSuccessJSON(map[string]interface{}{
- "material": material,
- })
- }
- }
-
- func (this *DialysisPrameterApiController) GetCollectList() {
-
- timeLayout := "2006-01-02"
- loc, _ := time.LoadLocation("Local")
- limit, _ := this.GetInt64("limit")
- fmt.Println(limit)
- page, _ := this.GetInt64("page")
- fmt.Println("page", page)
- partitiontype, _ := this.GetInt64("partitionType")
- fmt.Println(partitiontype)
- scheduletype, _ := this.GetInt64("scheduleType")
- fmt.Println(scheduletype)
- start_time := this.GetString("start_time")
- fmt.Println(start_time)
- startime, _ := time.ParseInLocation(timeLayout+" 15:04:05", start_time+" 00:00:00", loc)
- fmt.Println("startime", startime.Unix())
- orgId := this.GetAdminUserInfo().CurrentOrgId
- endtime, _ := time.ParseInLocation(timeLayout+" 15:04:05", start_time+" 23:59:59", loc)
- keyword := this.GetString("keyword")
- //获取透析参数数据
- schedule, err, _ := service.GetCollectList(limit, page, partitiontype, scheduletype, startime.Unix(), orgId, keyword)
-
- //查询今日排班的病人
- patient, err := service.GetDialysisTodaySchedulePatient(orgId, startime.Unix(), page, limit, keyword, scheduletype, partitiontype)
- var vlist []interface{}
- var clist []interface{}
- for _, item := range patient {
- fmt.Println("---------", item.PatientId)
- //查询当前日期的病人是否存在数据
- //_, errcode := service.GetToDayDialysisPrescription(item.PatientId, orgId, startime.Unix())
- //if errcode == gorm.ErrRecordNotFound {
- // //查询每个病人透析处方的最后一次数据
- // prescription, _ := service.GetLastDialysisPrescription(item.PatientId, orgId)
- // vlist = append(vlist, prescription)
- //} else if errcode == nil {
- // //获取当前日期
- // prescription, _ := service.GetDialysisPrescriptionList(item.PatientId, orgId, startime.Unix())
- // vlist = append(vlist, prescription)
- //}
-
- //查询每个病人当前日期是否存在数据
- //_, errco := service.GetAotoMaticReduceByPatientId(item.PatientId, orgId, startime.Unix(), endtime.Unix())
- //fmt.Println("errco--------------------------", errco)
- //if errco == gorm.ErrRecordNotFound {
- // reduece, _ := service.GetMaticReduece(item.PatientId, orgId)
- // clist = append(clist, reduece)
- //} else if errco == nil {
- // reduece, _ := service.GetMaticeReduceByPatientId(item.PatientId, orgId, startime.Unix(), endtime.Unix())
- // clist = append(clist, reduece)
- //}
-
- prescription, _ := service.GetDialysisPrescriptionList(item.PatientId, orgId, startime.Unix())
- vlist = append(vlist, prescription)
-
- reduece, _ := service.GetMaticeReduceByPatientId(item.PatientId, orgId, startime.Unix(), endtime.Unix())
- clist = append(clist, reduece)
- }
- //获取透析耗材数据
- //consumables, err := service.GetDialysisConsumables(startime.Unix(), endtime.Unix(), orgId)
-
- //if err == nil {
- // this.ServeSuccessJSON(map[string]interface{}{
- // "schedule": schedule,
- // "total": total,
- // "consumables": consumables,
- // "prescription": vlist,
- // "reducelist": clist,
- // })
- //}
-
- _, errors := service.FindStockOutByIsSys(orgId, 1, startime.Unix())
-
- goodTypes, _ := service.FindAllGoodType(orgId) //two, err, i := service.PCGetDialysisGoodsTwo(orgId, startime.Unix(), scheduletype, partitiontype, page, limit, keyword)
-
- if errors == gorm.ErrRecordNotFound {
-
- dialysisGoods, _, total := service.PCGetDialysisGoodsTwo(orgId, startime.Unix(), scheduletype, partitiontype, page, limit, keyword)
- for _, item := range dialysisGoods { //获取当天排班的每个患者的最后日期的库存使用情况
- goodUser, _ := service.GetLastDialysisGoodsTwo(item.PatientId, orgId, startime.Unix())
- lastGoodUserDetial, _ := service.GetLastDialysisBeforePrepareTwo(item.PatientId, orgId, startime.Unix())
- item.LastAutomaticReduceDetail = goodUser
- item.LastDialysisBeforePrepare = lastGoodUserDetial
- }
- this.ServeSuccessJSON(map[string]interface{}{
- "dialysis_goods": dialysisGoods,
- "good_type": goodTypes,
- "total": total,
- "schedule": schedule,
- //"consumables": consumables,
- "prescription": vlist,
- "reducelist": clist,
- })
- return
-
- } else if err == nil {
- //获取当天排班的每个患者的库存使用情况
- dialysisGoods, err, total := service.PCGetDialysisGoodsTwo(orgId, startime.Unix(), scheduletype, partitiontype, page, limit, keyword)
- for _, item := range dialysisGoods { //获取当天排班的每个患者的最后日期的库存使用情况
- goodUser, _ := service.GetLastDialysisGoodsTwo(item.PatientId, orgId, startime.Unix())
- lastGoodUserDetial, _ := service.GetLastDialysisBeforePrepareTwo(item.PatientId, orgId, startime.Unix())
-
- fmt.Println(goodUser)
- fmt.Println(lastGoodUserDetial)
-
- item.LastAutomaticReduceDetail = goodUser
- item.LastDialysisBeforePrepare = lastGoodUserDetial
- }
- if err == nil {
- this.ServeSuccessJSON(map[string]interface{}{
- "dialysis_goods": dialysisGoods,
- "good_type": goodTypes,
- "total": total,
- "schedule": schedule,
- //"consumables": consumables,
- "prescription": vlist,
- "reducelist": clist,
- })
- return
-
- } else {
- this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError)
- return
- }
- } else if err != nil {
- this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError)
- return
-
- }
-
- }
-
- func (this *DialysisPrameterApiController) GetBatchCollection() {
- timeLayout := "2006-01-02"
- loc, _ := time.LoadLocation("Local")
- adminUser := this.GetAdminUserInfo()
- orgId := adminUser.CurrentOrgId
- fmt.Println(orgId)
- start_time := this.GetString("startime")
- startime, _ := time.ParseInLocation(timeLayout+" 15:04:05", start_time+" 00:00:00", loc)
- endtime, _ := time.ParseInLocation(timeLayout+" 15:04:05", start_time+" 23:59:59", loc)
- schIDStr := this.GetString("ids")
- //获取透析耗材数据
- consumables, err := service.GetDialysisConsumables(startime.Unix(), endtime.Unix(), orgId)
-
- if len(schIDStr) == 0 {
- this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong)
- return
- }
- idStrs := strings.Split(schIDStr, ",")
- fmt.Println(idStrs)
- var vlist []interface{}
- var clist []interface{}
- schedule, err := service.GetBatchCollection(orgId, idStrs)
- for _, item := range schedule {
- //查询当前日期的病人是否存在数据
- _, errcode := service.GetToDayDialysisPrescription(item.PatientId, orgId, startime.Unix())
- if errcode == gorm.ErrRecordNotFound {
- //查询每个病人透析处方的最后一次数据
- prescription, _ := service.GetLastDialysisPrescription(item.PatientId, orgId)
- vlist = append(vlist, prescription)
- } else if errcode == nil {
- //获取当前日期
- prescription, _ := service.GetDialysisPrescriptionList(item.PatientId, orgId, startime.Unix())
- vlist = append(vlist, prescription)
- }
-
- //查询每个病人当前日期是否存在数据
- _, errco := service.GetAotoMaticReduceByPatientId(item.PatientId, orgId, startime.Unix(), endtime.Unix())
- fmt.Println("errco", errco)
- if errco == gorm.ErrRecordNotFound {
- reduece, _ := service.GetMaticReduece(item.PatientId, orgId)
- clist = append(clist, reduece)
- } else if errco == nil {
- reduece, _ := service.GetMaticeReduceByPatientId(item.PatientId, orgId, startime.Unix(), endtime.Unix())
- clist = append(clist, reduece)
- }
-
- }
- if err == nil {
- this.ServeSuccessJSON(map[string]interface{}{
- "schedule": schedule,
- "consumables": consumables,
- "prescripiton": vlist,
- "reducelist": clist,
- })
- }
- }
-
- func (this *DialysisPrameterApiController) GetGatherList() {
-
- timeLayout := "2006-01-02"
- loc, _ := time.LoadLocation("Local")
- adminUser := this.GetAdminUserInfo()
- orgId := adminUser.CurrentOrgId
- fmt.Println(orgId)
- start_time := this.GetString("start_time")
- end_time := this.GetString("end_time")
- startime, _ := 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)
- fmt.Println("开始时间", startime)
- fmt.Println("结束时间", endtime)
-
- warehouselist, err := service.GetWareHouseOutList(startime.Unix(), endtime.Unix(), orgId)
-
- //获取透析耗材数据
- consumables, err := service.GetDialysisConsumables(startime.Unix(), endtime.Unix(), orgId)
-
- //统计抗凝剂数据
- count, err := service.GetAnticoagulantCount(startime.Unix(), endtime.Unix(), orgId)
-
- if err == nil {
- this.ServeSuccessJSON(map[string]interface{}{
- "warehouselist": warehouselist,
- "consumables": consumables,
- "count": count,
- })
- }
- }
-
- func (this *DialysisPrameterApiController) GetAnticoagulantCount() {
- timeLayout := "2006-01-02"
- loc, _ := time.LoadLocation("Local")
- adminUser := this.GetAdminUserInfo()
- orgId := adminUser.CurrentOrgId
- fmt.Println(orgId)
- start_time := this.GetString("start_time")
- end_time := this.GetString("end_time")
- startime, _ := 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)
- fmt.Println("开始时间2222", startime)
- fmt.Println("结束时间3333", endtime)
- //统计抗凝剂数据
- count, err := service.GetAnticoagulantCount(startime.Unix(), endtime.Unix(), orgId)
- if err == nil {
- this.ServeSuccessJSON(map[string]interface{}{
- "count": count,
- })
- }
- }
|