123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538 |
- package controllers
-
- import (
- "XT_New/enums"
- "XT_New/service"
- "github.com/astaxie/beego"
- "github.com/shopspring/decimal"
- "time"
- )
-
- type HisSummaryApiController struct {
- BaseAuthAPIController
- }
-
- func HisSummaryApiRegistRouters() {
-
- beego.Router("/api/gethissummarydetaillist", &HisSummaryApiController{}, "Get:GetHisSummaryDetailList")
- beego.Router("/api/his/getgatherdetailist", &HisSummaryApiController{}, "Get:GetGatherDetaiList")
- beego.Router("/api/his/getdetailpatients", &HisSummaryApiController{}, "Get:GetDetailPatients")
- }
-
- func (this *HisSummaryApiController) GetHisSummaryDetailList() {
-
- start_time := this.GetString("start_time")
- end_time := this.GetString("end_time")
- keyword := this.GetString("keyword")
- item_type, _ := this.GetInt64("type")
- patient_id, _ := this.GetInt64("patient_id")
- adminUser := this.GetAdminUserInfo()
-
- timeLayout := "2006-01-02"
- loc, _ := time.LoadLocation("Local")
- startTime, err := time.ParseInLocation(timeLayout+" 15:04:05", start_time+" 00:00:00", loc)
- if err != nil {
-
- }
- startRecordDateTime := startTime.Unix()
-
- endTime, err := time.ParseInLocation(timeLayout+" 15:04:05", end_time+" 23:59:59", loc)
- if err != nil {
-
- }
- endRecordDateTime := endTime.Unix()
-
- list, err := service.GetHisSummaryDetailList(keyword, item_type, patient_id, adminUser.CurrentOrgId, startRecordDateTime, endRecordDateTime)
- patient, _ := service.GetPatientByID(adminUser.CurrentOrgId, patient_id)
-
- his_patient, _ := service.GetHisSummaryPatientInfo(adminUser.CurrentOrgId, patient_id, startRecordDateTime, endRecordDateTime)
-
-
- hisDepatment, _ := service.GetHisDepatment(adminUser.CurrentOrgId)
- if err == nil {
- this.ServeSuccessJSON(map[string]interface{}{
- "list": list,
- "patient": patient,
- "his_patient": his_patient,
- "hisDepatment": hisDepatment,
- })
- return
- } else {
- this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError)
- return
-
- }
- }
-
- func (this *HisSummaryApiController) GetGatherDetaiList() {
-
- start_time := this.GetString("start_time")
- end_time := this.GetString("end_time")
- keyword := this.GetString("keyword")
- item_type, _ := this.GetInt64("type")
- patient_id, _ := this.GetInt64("patient_id")
- adminUser := this.GetAdminUserInfo()
-
- timeLayout := "2006-01-02"
- loc, _ := time.LoadLocation("Local")
- startTime, err := time.ParseInLocation(timeLayout+" 15:04:05", start_time+" 00:00:00", loc)
- if err != nil {
-
- }
- startRecordDateTime := startTime.Unix()
-
- endTime, err := time.ParseInLocation(timeLayout+" 15:04:05", end_time+" 23:59:59", loc)
- if err != nil {
-
- }
- endRecordDateTime := endTime.Unix()
-
-
- orderInfo, _ := service.GetGatherHisOrder(keyword, item_type, patient_id, adminUser.CurrentOrgId, startRecordDateTime, endRecordDateTime)
-
- org_id := this.GetAdminUserInfo().CurrentOrgId
- appid := this.GetAdminUserInfo().CurrentAppId
- var order_info []*service.HisOrderInfo
-
- var MdtrtId string
-
- patient, _ := service.GetPatientByID(org_id, patient_id)
- for _, item := range orderInfo {
- orderinfo, _ := service.GetHisOrderDetailByNumber(item.Number, org_id)
-
- MdtrtId = item.MdtrtId
- for _, it := range orderinfo {
-
- order_info = append(order_info, it)
- }
- }
- his, _ := service.GetHisPatientInfoFive(org_id, patient_id, startRecordDateTime, endRecordDateTime)
-
- record, _ := service.GetInHospitalRecordByNumber(MdtrtId)
-
-
- adminInfo, _ := service.GetAllDoctorSix(org_id, appid)
-
- var bedCostTotal float64 = 0
-
- var operationCostTotal float64 = 0
-
- var otherCostTotal float64 = 0
-
- var materialCostTotal float64 = 0
-
- var westernMedicineCostTotal float64 = 0
-
- var chineseTraditionalMedicineCostTotal float64 = 0
-
- var checkCostTotal float64 = 0
-
- var laboratoryCostTotal float64 = 0
-
- var treatCostTotal float64 = 0
-
- var zhenChaCostTotal float64 = 0
-
- decimal.DivisionPrecision = 2
- var BalanceAccountsType int64
- if his.ID > 0 {
- BalanceAccountsType = his.BalanceAccountsType
- } else {
- BalanceAccountsType = record.BalanceAccountsType
- }
-
- his_patient, _ := service.GetHisSummaryPatientInfo(adminUser.CurrentOrgId, patient_id, startRecordDateTime, endRecordDateTime)
-
-
- hisDepatment, _ := service.GetHisDepatment(adminUser.CurrentOrgId)
-
-
- prescription, _ := service.GetHisPrescriptionTenty(adminUser.CurrentOrgId, patient_id, startRecordDateTime, endRecordDateTime, keyword, item_type)
-
- var medicalInsuranceLevel = "医保等级"
- medicalInsuranceLevelParent, _ := service.GetDrugDataConfig(0, medicalInsuranceLevel)
- medicalInsuranceLevelList, _ := service.GetParentDataConfig(medicalInsuranceLevelParent.ID, adminUser.CurrentOrgId)
- if BalanceAccountsType != 2 && BalanceAccountsType > 0 {
- for _, item := range order_info {
- if org_id == 10215 {
- if item.MedChrgitmType == "01" {
- bedCostTotal, _ = decimal.NewFromFloat(bedCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
- }
- if item.MedChrgitmType == "02" {
- zhenChaCostTotal, _ = decimal.NewFromFloat(zhenChaCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
-
- }
- if item.MedChrgitmType == "03" {
- checkCostTotal, _ = decimal.NewFromFloat(checkCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
-
- }
-
- if item.MedChrgitmType == "04" {
- laboratoryCostTotal, _ = decimal.NewFromFloat(laboratoryCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
- }
-
- if item.MedChrgitmType == "05" || item.MedChrgitmType == "1402" || item.MedChrgitmType == "1403" {
- treatCostTotal, _ = decimal.NewFromFloat(treatCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
-
- }
-
- if item.MedChrgitmType == "06" {
- operationCostTotal, _ = decimal.NewFromFloat(operationCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
- }
-
- if item.MedChrgitmType == "08" {
- materialCostTotal, _ = decimal.NewFromFloat(materialCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
- }
-
- if item.MedChrgitmType == "09" {
- westernMedicineCostTotal, _ = decimal.NewFromFloat(westernMedicineCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
- }
-
- if item.MedChrgitmType == "11" {
- chineseTraditionalMedicineCostTotal, _ = decimal.NewFromFloat(chineseTraditionalMedicineCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
- }
-
- if item.MedChrgitmType == "14" || item.MedChrgitmType == "0" || item.MedChrgitmType == "12" {
- otherCostTotal, _ = decimal.NewFromFloat(otherCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
- }
-
- } else if org_id == 10188 || org_id == 10217 {
- if item.MedChrgitmType == "01" {
- bedCostTotal, _ = decimal.NewFromFloat(bedCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
-
- }
- if item.MedChrgitmType == "02" {
- zhenChaCostTotal, _ = decimal.NewFromFloat(zhenChaCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
- }
- if item.MedChrgitmType == "03" {
- laboratoryCostTotal, _ = decimal.NewFromFloat(laboratoryCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
- }
-
- if item.MedChrgitmType == "04" {
- laboratoryCostTotal, _ = decimal.NewFromFloat(laboratoryCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
- }
-
- if item.MedChrgitmType == "05" || item.MedChrgitmType == "1402" || item.MedChrgitmType == "1403" {
- treatCostTotal, _ = decimal.NewFromFloat(treatCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
- }
-
- if item.MedChrgitmType == "06" {
- operationCostTotal, _ = decimal.NewFromFloat(operationCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
- }
-
- if item.MedChrgitmType == "08" {
- materialCostTotal, _ = decimal.NewFromFloat(materialCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
- }
-
- if item.MedChrgitmType == "09" {
- westernMedicineCostTotal, _ = decimal.NewFromFloat(westernMedicineCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
- }
-
- if item.MedChrgitmType == "11" {
- chineseTraditionalMedicineCostTotal, _ = decimal.NewFromFloat(chineseTraditionalMedicineCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
- }
-
- if item.MedChrgitmType == "14" || item.MedChrgitmType == "0" || item.MedChrgitmType == "12" {
- otherCostTotal, _ = decimal.NewFromFloat(otherCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
- }
-
- } else {
-
- if item.MedChrgitmType == "01" {
- bedCostTotal, _ = decimal.NewFromFloat(bedCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
-
- }
-
- if item.MedChrgitmType == "03" {
- checkCostTotal, _ = decimal.NewFromFloat(checkCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
- }
-
- if item.MedChrgitmType == "04" {
- laboratoryCostTotal, _ = decimal.NewFromFloat(laboratoryCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
-
- }
-
- if item.MedChrgitmType == "05" || item.MedChrgitmType == "1402" || item.MedChrgitmType == "1403" {
- treatCostTotal, _ = decimal.NewFromFloat(treatCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
- }
-
- if item.MedChrgitmType == "06" {
- operationCostTotal, _ = decimal.NewFromFloat(operationCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
- }
-
- if item.MedChrgitmType == "08" {
- materialCostTotal, _ = decimal.NewFromFloat(materialCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
- }
-
- if item.MedChrgitmType == "09" {
- westernMedicineCostTotal, _ = decimal.NewFromFloat(westernMedicineCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
- }
-
- if item.MedChrgitmType == "11" {
- chineseTraditionalMedicineCostTotal, _ = decimal.NewFromFloat(chineseTraditionalMedicineCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
- }
-
- if item.MedChrgitmType == "14" || item.MedChrgitmType == "0" || item.MedChrgitmType == "12" || item.MedChrgitmType == "02" {
- otherCostTotal, _ = decimal.NewFromFloat(otherCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
-
- }
-
- }
- }
- this.ServeSuccessJSON(map[string]interface{}{
- "order": orderInfo,
- "order_info": order_info,
- "patient": patient,
- "admin_info": adminInfo,
- "his_hospital": record,
- "bedCostTotal": bedCostTotal,
- "operationCostTotal": operationCostTotal,
- "otherCostTotal": otherCostTotal,
- "materialCostTotal": materialCostTotal,
- "westernMedicineCostTotal": westernMedicineCostTotal,
- "chineseTraditionalMedicineCostTotal": chineseTraditionalMedicineCostTotal,
- "checkCostTotal": checkCostTotal,
- "zhenChaCostTotal": zhenChaCostTotal,
- "laboratoryCostTotal": laboratoryCostTotal,
- "treatCostTotal": treatCostTotal,
- "his_patient": his_patient,
- "hisDepatment": hisDepatment,
- })
- } else {
- for _, item := range order_info {
-
- item.FulamtOwnpayAmt = item.DetItemFeeSumamt
- if item.HisDoctorAdviceInfo.ID > 0 && item.HisPrescriptionProject.ID == 0 {
- item.MedChrgitmType = "09"
- }
- if item.HisPrescriptionProject.ID > 0 && item.HisDoctorAdviceInfo.ID == 0 {
- if item.HisPrescriptionProject.Type == 2 {
- if this.GetAdminUserInfo().CurrentOrgId == 10215 {
- switch item.HisPrescriptionProject.VMHisProject.CostClassify {
- case 0:
- item.MedChrgitmType = "0"
- break
- case 1:
- item.MedChrgitmType = "14"
- break
- case 2:
- item.MedChrgitmType = "05"
-
- break
- case 3:
- item.MedChrgitmType = "03"
-
- break
- case 4:
- item.MedChrgitmType = "03"
-
- break
- case 5:
- item.MedChrgitmType = "08"
-
- break
- case 6:
- item.MedChrgitmType = "14"
-
- break
- case 7:
- item.MedChrgitmType = "14"
-
- break
- case 8:
- item.MedChrgitmType = "03"
- break
- case 9:
- item.MedChrgitmType = "14"
- break
- case 10:
- item.MedChrgitmType = "14"
- break
- case 11:
- item.MedChrgitmType = "06"
- break
- case 12:
- item.MedChrgitmType = "12"
- break
- case 13:
- item.MedChrgitmType = "01"
- break
- case 14:
- item.MedChrgitmType = "04"
- break
- case 15:
- item.MedChrgitmType = "14"
- break
-
- }
-
- } else {
- switch item.HisPrescriptionProject.VMHisProject.CostClassify {
-
- case 1:
- item.MedChrgitmType = "14"
- break
- case 2:
- item.MedChrgitmType = "05"
-
- break
- case 3:
- item.MedChrgitmType = "04"
-
- break
- case 4:
- item.MedChrgitmType = "14"
-
- break
- case 5:
- item.MedChrgitmType = "08"
-
- break
- case 6:
- item.MedChrgitmType = "14"
-
- break
- case 7:
- item.MedChrgitmType = "14"
-
- break
- case 8:
- item.MedChrgitmType = "03"
- break
- case 9:
- item.MedChrgitmType = "14"
- break
- }
- }
- } else if item.HisPrescriptionProject.Type == 3 {
- item.MedChrgitmType = "08"
- }
- }
- }
-
- for _, item := range order_info {
- if org_id == 10215 {
- if item.MedChrgitmType == "01" {
- bedCostTotal, _ = decimal.NewFromFloat(bedCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
- }
- if item.MedChrgitmType == "02" {
- zhenChaCostTotal, _ = decimal.NewFromFloat(zhenChaCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
- }
-
- if item.MedChrgitmType == "03" {
- checkCostTotal, _ = decimal.NewFromFloat(checkCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
- }
-
- if item.MedChrgitmType == "04" {
- laboratoryCostTotal, _ = decimal.NewFromFloat(laboratoryCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
- }
-
- if item.MedChrgitmType == "05" || item.MedChrgitmType == "1402" || item.MedChrgitmType == "1403" {
- treatCostTotal, _ = decimal.NewFromFloat(treatCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
- }
-
- if item.MedChrgitmType == "06" {
- operationCostTotal, _ = decimal.NewFromFloat(operationCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
- }
-
- if item.MedChrgitmType == "08" {
- materialCostTotal, _ = decimal.NewFromFloat(materialCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
- }
-
- if item.MedChrgitmType == "09" {
- westernMedicineCostTotal, _ = decimal.NewFromFloat(westernMedicineCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
- }
-
- if item.MedChrgitmType == "11" {
- chineseTraditionalMedicineCostTotal, _ = decimal.NewFromFloat(chineseTraditionalMedicineCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
- }
-
- if item.MedChrgitmType == "14" || item.MedChrgitmType == "0" || item.MedChrgitmType == "12" {
- otherCostTotal, _ = decimal.NewFromFloat(otherCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
- }
-
- } else {
-
- if item.MedChrgitmType == "01" {
- bedCostTotal, _ = decimal.NewFromFloat(bedCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
- }
-
- if item.MedChrgitmType == "03" {
- checkCostTotal, _ = decimal.NewFromFloat(checkCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
- }
-
- if item.MedChrgitmType == "04" {
- laboratoryCostTotal, _ = decimal.NewFromFloat(laboratoryCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
- }
-
- if item.MedChrgitmType == "05" || item.MedChrgitmType == "1402" || item.MedChrgitmType == "1403" {
- treatCostTotal, _ = decimal.NewFromFloat(treatCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
- }
-
- if item.MedChrgitmType == "06" {
- operationCostTotal, _ = decimal.NewFromFloat(operationCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
- }
-
- if item.MedChrgitmType == "08" {
- materialCostTotal, _ = decimal.NewFromFloat(materialCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
- }
-
- if item.MedChrgitmType == "09" {
- westernMedicineCostTotal, _ = decimal.NewFromFloat(westernMedicineCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
- }
-
- if item.MedChrgitmType == "11" {
- chineseTraditionalMedicineCostTotal, _ = decimal.NewFromFloat(chineseTraditionalMedicineCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
- }
-
- if item.MedChrgitmType == "14" || item.MedChrgitmType == "0" || item.MedChrgitmType == "12" || item.MedChrgitmType == "02" {
- otherCostTotal, _ = decimal.NewFromFloat(otherCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
- }
-
- }
-
- }
-
- this.ServeSuccessJSON(map[string]interface{}{
- "order": orderInfo,
- "order_info": order_info,
- "patient": patient,
- "admin_info": adminInfo,
- "his_hospital": record,
- "bedCostTotal": bedCostTotal,
- "operationCostTotal": operationCostTotal,
- "otherCostTotal": otherCostTotal,
- "materialCostTotal": materialCostTotal,
- "westernMedicineCostTotal": westernMedicineCostTotal,
- "chineseTraditionalMedicineCostTotal": chineseTraditionalMedicineCostTotal,
- "checkCostTotal": checkCostTotal,
- "zhenChaCostTotal": zhenChaCostTotal,
- "laboratoryCostTotal": laboratoryCostTotal,
- "treatCostTotal": treatCostTotal,
- "his_patient": his_patient,
- "hisDepatment": hisDepatment,
- "prescription": prescription,
- "balanceAccountsType": BalanceAccountsType,
- "medicalInsuranceLevelList": medicalInsuranceLevelList,
- })
-
- }
- }
-
- func (this *HisSummaryApiController) GetDetailPatients() {
-
- keyword := this.GetString("keyword")
- orgId := this.GetAdminUserInfo().CurrentOrgId
- patients, err := service.GetDetailPatients(keyword, orgId)
- if err == nil {
- this.ServeSuccessJSON(map[string]interface{}{
- "patient": patients,
- })
- return
- } else {
- this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError)
- return
-
- }
- }
|