package coordinate import ( "bytes" "encoding/json" "encoding/xml" "fmt" "gdyb/controllers" "gdyb/enums" "gdyb/models" "gdyb/service" "gdyb/utils" "github.com/astaxie/beego" "io/ioutil" "math" "math/rand" "net/http" "sort" "strconv" "strings" "time" ) type CoordinateController struct { controllers.BaseAuthAPIController } type ResultReg struct { ResultCode string `json:"resultCode"` ResultDesc string `json:"resultDesc"` InfoSeq string `json:"infoSeq"` } type ResultSettle struct { ResultCode string `json:"resultCode"` ResultDesc string `json:"resultDesc"` } type ResultCancelSettle struct { ResultCode string `json:"resultCode"` ResultDesc string `json:"resultDesc"` } type Settle struct { PatientId string `json:"resultCode"` DocId string `json:"docId"` InfoSeq string `json:"infoSeq"` } type Refund struct { PatientId string `json:"resultCode"` DocId string `json:"docId"` InfoSeq string `json:"infoSeq"` } type RefundDetail struct { Msg string `json:"msg"` Result []struct { ResultMsg string `json:"resultMsg"` Code string `json:"code"` Records int `json:"records"` TotalPage int `json:"totalPage"` List []struct { Zae01 int64 `json:"ZAE01"` } `json:"list"` RecordsTotal int `json:"recordsTotal"` Pagenumber int `json:"pagenumber"` Result string `json:"result"` Total int `json:"total"` RecordsFtered int `json:"recordsFtered"` Page int `json:"page"` } `json:"result"` Code string `json:"code"` } type RefundDetailtwo struct { Msg string `json:"msg"` Code string `json:"code"` } type ResultQuery struct { Msg string `json:"msg"` Result []struct { Type string `json:"type"` Name string `json:"name"` Vaa01 int `json:"vaa01"` Vaa07 int `json:"vaa07"` Visittime string `json:"visittime"` } `json:"result"` Code string `json:"code"` } type Data struct { List []ListItem `json:"resultObj"` Result bool `json:"result"` Code int `json:"code"` ResultMsg string `json:"resultMsg"` Msg string `json:"msg"` Error bool `json:"error"` Success bool `json:"success"` } type Data10 struct { List []ListItem10 `json:"resultObj"` Result bool `json:"result"` Code int `json:"code"` ResultMsg string `json:"resultMsg"` Msg string `json:"msg"` Error bool `json:"error"` Success bool `json:"success"` } type ListItem10 struct { Vaf01 int64 `json:"vaf01"` } type ListItem struct { Acf01 int64 `json:"acf01"` Bcq04 string `json:"bcq04"` Abw01 string `json:"abw01"` Aau01 string `json:"aau01"` Vaa08 string `json:"vaa08"` Vae11 string `json:"vae11"` Vaa05 string `json:"vaa05"` Vaa10 int `json:"vaa10"` Vaa01 int `json:"vaa01"` Vaa07 int `json:"vaa07"` Vaa12 string `json:"vaa12"` Abbrp string `json:"abbrp"` Bck01A int `json:"bck01a"` Bck01B int `json:"bck01b"` Vaa15 string `json:"vaa15"` Vaa35 string `json:"vaa35"` } type ResultUpload struct { Code string `json:"code"` Msg string `json:"msg"` Result []struct { List []interface{} `json:"list"` Page int64 `json:"page"` Pagenumber int64 `json:"pagenumber"` Records int64 `json:"records"` RecordsFiltered int64 `json:"recordsFiltered"` RecordsTotal int64 `json:"recordsTotal"` Result string `json:"result"` ResultMsg string `json:"resultMsg"` Total int64 `json:"total"` TotalPage int64 `json:"totalPage"` Userdata string `json:"userdata"` } `json:"result"` } type ResultUpload2 struct { Code int64 `json:"code"` Msg string `json:"msg"` resultObj interface{} `json:"resultObj"` } func CoordinateRcegistRouters() { //beego.Router("/coordinate/check", &CoordinateController{}, "get:SavePatientMessageInfo") ////坐标挂号 //beego.Router("/coordinate/register", &CoordinateController{}, "get:Register") ////坐标记账 ////beego.Router("/coordinate/opKeepAccounts", &CoordinateController{}, "get:OpKeepAccounts") ////坐标撤销记账 ////beego.Router("/coordinate/opCancelKeepAccounts", &CoordinateController{}, "get:OpCancelKeepAccounts") ////坐标结算回调 //beego.Router("/coordinate/settle", &CoordinateController{}, "post:Settle") ////坐标退费回调 //beego.Router("/coordinate/refund", &CoordinateController{}, "post:Refund") ////坐标患者查询~上传医嘱~结算功能 ////beego.Router("/coordinate/settleAccount", &CoordinateController{}, "get:SettleAccount") //beego.Router("/coordinate/other", &CoordinateController{}, "get:NMGother") ////内蒙古 beego.Router("/nmg/coordinate/settleAccount", &CoordinateController{}, "get:NMGSettleAccount") beego.Router("/nmg/coordinate/settleAccount/cancel", &CoordinateController{}, "get:NMGCancelSettleAccount") beego.Router("/nmg/coordinate/querystockdrug", &CoordinateController{}, "get:QuerydrugStock") beego.Router("/nmg/coordinate/querystockgood", &CoordinateController{}, "get:QuerygoodStock") //beego.Router("/nmg/coordinate/deladvice", &CoordinateController{}, "get:NMGdeladvice") //beego.Router("/nmg/coordinate/createadvice", &CoordinateController{}, "get:NMGcreateadvice") //beego.Router("/nmg/coordinate/querydiagnose", &CoordinateController{}, "get:NMGquerydiagnose") //beego.Router("/nmg/coordinate/querycheck", &CoordinateController{}, "get:NMGquerycheck") //beego.Router("/nmg/coordinate/settleAccountone", &CoordinateController{}, "get:NMGSettleAccount") } //func (c *CoordinateController) QueryStock(){ // api3 := "http://192.168.100.199:9532/" + "nmg/coordinate/querystock" // resp3, requestErr3 := http.Get(api3) // if requestErr3 != nil { // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // body3, ioErr3 := ioutil.ReadAll(resp3.Body) // if ioErr3 != nil { // utils.ErrorLog("接口返回数据读取失败: %v", ioErr3) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // var respJSON3 map[string]interface{} // if err := json.Unmarshal([]byte(string(body3)), &respJSON3); err != nil { // utils.ErrorLog("接口返回数据解析JSON失败: %v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // // //respJSON4 := respJSON3["data"].(map[string]interface{})["drug"].(map[string]interface{}) // //userJSONBytes3, _ := json.Marshal(respJSON4) // // // //var drug Medicine // //err2 := json.Unmarshal(userJSONBytes3, &drug) // //if err2 != nil { // // fmt.Println("解析JSON出错:", err2) // // return // //} // // // // // //respJSON5 := respJSON3["data"].(map[string]interface{})["project"].(map[string]interface{}) // //userJSONBytes4, _ := json.Marshal(respJSON5) // // // //var project ProjectStruct // //err := json.Unmarshal(userJSONBytes4, &project) // //if err != nil { // // fmt.Println("解析JSON出错:", err) // // return // //} // // // //c.ServeSuccessJSON(map[string]interface{}{ // // "drug": drug.Data, // // "project": project.Data, // //}) // //} func (c *CoordinateController) QuerydrugStock() { result, _ := service.GetDrugs() //result2, _ := service.GetProject() saveLog(result, "", "查询", "查询", "") //saveLog(result2, "", "查询", "查询", "") var drug Medicine err2 := json.Unmarshal([]byte(result), &drug) if err2 != nil { fmt.Println("解析JSON出错:", err2) return } c.ServeSuccessJSON(map[string]interface{}{ "drug": drug.Data, }) } func (c *CoordinateController) QuerygoodStock() { //result, _ := service.GetDrugs() result2, _ := service.GetProject() //saveLog(result, "", "查询", "查询", "") saveLog(result2, "", "查询", "查询", "") var project ProjectStruct err := json.Unmarshal([]byte(result2), &project) if err != nil { fmt.Println("解析JSON出错:", err) return } c.ServeSuccessJSON(map[string]interface{}{ "project": project.Data, }) } //查询检查 func (c *CoordinateController) NMGquerycheck() { } type ResultObj struct { Cbm01 int `json:"cbm01"` Vaf01List []int `json:"vaf01List"` } type Response struct { ResultObj []ResultObj `json:"resultObj"` Result bool `json:"result"` Code int `json:"code"` ResultMsg string `json:"resultMsg"` Msg string `json:"msg"` Error bool `json:"error"` Success bool `json:"success"` } type Responsexml struct { XMLName xml.Name `xml:"root"` ErrorCode int `xml:"errorcode"` ErrorMsg string `xml:"errormsg"` Data string `xml:"data"` } func NMGzhuyuan(c *CoordinateController, name string) (res Data) { api3 := "http://127.0.0.1:9532/" + "nmg/coordinate/patient?name=" + name resp3, requestErr3 := http.Get(api3) if requestErr3 != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } body3, ioErr3 := ioutil.ReadAll(resp3.Body) if ioErr3 != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr3) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON3 map[string]interface{} if err := json.Unmarshal([]byte(string(body3)), &respJSON3); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON3 = respJSON3["data"].(map[string]interface{})["res"].(map[string]interface{}) userJSONBytes3, _ := json.Marshal(respJSON3) if err := json.Unmarshal(userJSONBytes3, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } return res } func NMGmenzhen(c *CoordinateController, name string) (res Data) { api3 := "http://127.0.0.1:9532/" + "nmg/coordinate/patienttwo?name=" + name resp3, requestErr3 := http.Get(api3) if requestErr3 != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } body3, ioErr3 := ioutil.ReadAll(resp3.Body) if ioErr3 != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr3) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON3 map[string]interface{} if err := json.Unmarshal([]byte(string(body3)), &respJSON3); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON3 = respJSON3["data"].(map[string]interface{})["res"].(map[string]interface{}) userJSONBytes3, _ := json.Marshal(respJSON3) if err := json.Unmarshal(userJSONBytes3, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } return res } func RemoveRepeatedPurviewElementdoctoradvice(arr []models.HisDoctorAdviceInfo) (newArr []models.HisDoctorAdviceInfo) { newArr = make([]models.HisDoctorAdviceInfo, 0) for i := 0; i < len(arr); i++ { repeat := false for j := i + 1; j < len(arr); j++ { if arr[i].Groupno == arr[j].Groupno && arr[i].PrescriptionId == arr[j].PrescriptionId { repeat = true break } } if !repeat { newArr = append(newArr, arr[i]) } } return } func RemoveRepeatedPurviewElementproject(arr []models.HisPrescriptionProject) (newArr []models.HisPrescriptionProject) { newArr = make([]models.HisPrescriptionProject, 0) for i := 0; i < len(arr); i++ { repeat := false for j := i + 1; j < len(arr); j++ { if arr[i].HisProject.ZuobiaoId == arr[j].HisProject.ZuobiaoId && arr[i].HisProject.Bby01 == arr[j].HisProject.Bby01 { repeat = true break } } if !repeat { newArr = append(newArr, arr[i]) } } return } func RemoveRepeatedPurviewElementgood(arr []models.HisPrescriptionProject) (newArr []models.HisPrescriptionProject) { newArr = make([]models.HisPrescriptionProject, 0) for i := 0; i < len(arr); i++ { repeat := false for j := i + 1; j < len(arr); j++ { if arr[i].GoodInfo.ZuobiaoId == arr[j].GoodInfo.ZuobiaoId && arr[i].GoodInfo.Bby01 == arr[j].GoodInfo.Bby01 { repeat = true break } } if !repeat { newArr = append(newArr, arr[i]) } } return } func RemoveRepeatedPurviewElementdrug(arr []models.HisDoctorAdviceInfo) (newArr []models.HisDoctorAdviceInfo) { newArr = make([]models.HisDoctorAdviceInfo, 0) for i := 0; i < len(arr); i++ { repeat := false for j := i + 1; j < len(arr); j++ { if arr[i].BaseDrugLib.ZuobiaoId == arr[j].BaseDrugLib.ZuobiaoId && arr[i].BaseDrugLib.Bby01 == arr[j].BaseDrugLib.Bby01 && arr[i].DeliveryWay ==arr[j].DeliveryWay { repeat = true break } } if !repeat { newArr = append(newArr, arr[i]) } } return } func RemoveRepeatedPurviewElementdrugtwo(arr []models.HisDoctorAdviceInfo) (newArr []models.HisDoctorAdviceInfo) { newArr = make([]models.HisDoctorAdviceInfo, 0) for i := 0; i < len(arr); i++ { repeat := false for j := i + 1; j < len(arr); j++ { if arr[i].Newfn == arr[j].Newfn{ repeat = true break } } if !repeat { newArr = append(newArr, arr[i]) } } return } //func (c *CoordinateController) NMGSettleAccounttwo() { // patient_id, _ := c.GetInt64("patient_id") // record_date := c.GetString("record_date") // admin_user_id, _ := c.GetInt64("admin_user_id") // diagnosis_id := c.GetString("diagnosis") // sick_type, _ := c.GetInt64("sick_type") // reg_type, _ := c.GetInt64("p_type") // org_id, _ := c.GetInt64("org_id") // org_id = 10206 // org, _ := service.GetOrgById(org_id) // patient, _ := service.GetPatientByID(org.Id, patient_id) // settle_accounts_type, _ := c.GetInt64("settle_accounts_type") // // res := NMGzhuyuan(c, patient.Name) // res8 := NMGmenzhen(c, patient.Name) // // //优先查询今天门诊的患者,如果今天没有门诊的患者查询出住院的患者 // if res8.Code == 200 { // var res9 Data // res9.List = append(res9.List, res8.List...) // var li ListItem // for _, item := range res9.List { // cure_date := strings.Split(item.Vae11, " ") // if cure_date[0] == record_date && patient.Name == item.Vaa05 { // li = item // } // } // if li.Acf01 == 0 && li.Vaa07 == 0 && li.Vaa01 == 0 { //今天没有门诊患者,则查询出最后一个日期的住院患者 // var res10 Data // //res9.List = append(res9.List, res.List...) // res10.List = append(res10.List, res.List...) // layout := "2006-01-02 15:04:05" // var maxDate time.Time // for _, item := range res10.List { // currentDate, err := time.Parse(layout, item.Vae11) // if err != nil { // fmt.Println("Error parsing date:", err) // continue // } // if currentDate.After(maxDate) { // maxDate = currentDate // } // if !maxDate.IsZero() { // fmt.Println("The maximum date is:", maxDate.Format(layout)) // } else { // fmt.Println("No valid dates found") // } // } // fmt.Println(maxDate.Format("2006-01-02 15:04:05")) // for _, item := range res10.List { // if item.Vae11 == maxDate.Format("2006-01-02 15:04:05") && patient.Name == item.Vaa05 { // li = item // } // } // } // // 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 // } // org_id := org.Id // recordDateTime := theTime.Unix() // patientPrescription, _ := service.FindPatientPrescriptionInfoTwo(org_id, patient.ID, recordDateTime, 2) // if patientPrescription.ID == 0 { // patientPrescription, _ = service.FindLastPatientPrescriptionInfo(org_id, patient.ID, recordDateTime) // } // departmwnt, _ := service.GetDepartMentDetail(patientPrescription.Departments) // //admin_user_info, _ := service.GetAdminUserInfoByID(org_id, admin_user_id) // doctor_info, _ := service.GetAdminUserInfoByID(org_id, patientPrescription.DoctorId) // // var recordStartTime int64 // var recordEndTime int64 // // var prescriptions []models.HisPrescription // if settle_accounts_type == 1 { //日结 // prescriptions, _ = service.GetUnSettleHisPrescriptionFive(org_id, patient_id, recordDateTime, 2) // } else { //月结 // start_time_str := c.GetString("start_time") // end_time_str := c.GetString("end_time") // theStartTime, err := time.ParseInLocation(timeLayout+" 15:04:05", start_time_str+" 00:00:00", loc) // if err != nil { // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) // return // } // recordStartTime = theStartTime.Unix() // theEndTime, err := time.ParseInLocation(timeLayout+" 15:04:05", end_time_str+" 00:00:00", loc) // if err != nil { // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) // return // } // recordEndTime = theEndTime.Unix() // // prescriptions, _ = service.GetUnSettleMonthHisPrescription(org_id, patient_id, recordStartTime, recordEndTime) // } // // var ids []int64 // // for _, item := range prescriptions { // ids = append(ids, item.ID) // } // var total float64 // // var customs []*models.NewCustomTwo // for _, item := range prescriptions { // if item.Type == 1 { //药品 // for _, subItem := range item.HisDoctorAdviceInfo { // tempTime := time.Unix(item.PreTime, 0) // //timeFormat := tempTime.Format("20060102150405") // timeFormatOne := tempTime.Format("2006-01-02 15:04:05") // cus := &models.NewCustomTwo{ // AdviceId: subItem.ID, // ProjectId: 0, // DetItemFeeSumamt: fmt.Sprintf("%.4f", subItem.Price*subItem.PrescribingNumber), // Cut: fmt.Sprintf("%.4f", subItem.PrescribingNumber), // FeedetlSn: subItem.FeedetlSn, // Price: fmt.Sprintf("%.2f", subItem.Price), // MedListCodg: subItem.BaseDrugLib.MedicalInsuranceNumber, // Type: 1, // ItemId: subItem.BaseDrugLib.ZuobiaoId, // StartTime: timeFormatOne, // Content: subItem.AdviceName, // Bby01: subItem.BaseDrugLib.Bby01, // } // customs = append(customs, cus) // } // } // if item.Type == 2 { //项目 // for _, subItem := range item.HisPrescriptionProject { // if subItem.Type == 2 { // tempTime := time.Unix(item.PreTime, 0) // //timeFormat := tempTime.Format("20060102150405") // timeFormatOne := tempTime.Format("2006-01-02 15:04:05") // cnt, _ := strconv.ParseFloat(subItem.Count, 64) // cus := &models.NewCustomTwo{ // AdviceId: 0, // ProjectId: subItem.ID, // DetItemFeeSumamt: fmt.Sprintf("%.4f", subItem.Price*cnt), // Cut: fmt.Sprintf("%.4f", cnt), // FeedetlSn: subItem.FeedetlSn, // Price: fmt.Sprintf("%.4f", float64(subItem.Price)), // MedListCodg: subItem.HisProject.MedicalCode, // Type: 2, // ItemId: subItem.HisProject.ZuobiaoId, // StartTime: timeFormatOne, // Content: subItem.HisProject.ProjectName, // Bby01: subItem.HisProject.Bby01, // } // customs = append(customs, cus) // // } else { // tempTime := time.Unix(item.PreTime, 0) // //timeFormat := tempTime.Format("20060102150405") // timeFormatOne := tempTime.Format("2006-01-02 15:04:05") // cnt, _ := strconv.ParseFloat(subItem.Count, 64) // cus := &models.NewCustomTwo{ // AdviceId: 0, // ProjectId: subItem.ID, // DetItemFeeSumamt: fmt.Sprintf("%.4f", subItem.Price*cnt), // Cut: fmt.Sprintf("%.4f", cnt), // FeedetlSn: subItem.FeedetlSn, // Price: fmt.Sprintf("%.4f", float64(subItem.Price)), // MedListCodg: subItem.GoodInfo.MedicalInsuranceNumber, // Type: 3, // ItemId: subItem.GoodInfo.ZuobiaoId, // StartTime: timeFormatOne, // Content: subItem.GoodInfo.GoodName, // Bby01: subItem.GoodInfo.Bby01, // } // customs = append(customs, cus) // } // // } // } // } // // for _, item := range prescriptions { // if item.Type == 1 { //药品 // for _, subItem := range item.HisDoctorAdviceInfo { // price, _ := strconv.ParseFloat(fmt.Sprintf("%.2f", subItem.Price), 64) // total_one := price * subItem.PrescribingNumber // // total = total + total_one // // // } // } // if item.Type == 2 { //项目 // // for _, subItem := range item.HisPrescriptionProject { // cnt, _ := strconv.ParseFloat(subItem.Count, 64) // price, _ := strconv.ParseFloat(fmt.Sprintf("%.2f", subItem.Price), 64) // total_one := price * cnt // total = total + total_one // } // } // } // // //allTotal := fmt.Sprintf("%2f", total) // // var info models.UploadInfo // info.Acf01 = int64(li.Acf01) // info.Bce01 = "132" // info.Bck01 = "48" // info.Vaa07 = int64(li.Vaa07) // info.Vaa01 = int64(li.Vaa01) // info.Vaa05 = li.Vaa05 // info.Bce01a = doctor_info.DoctorNumber // // for _, item := range customs { // var cha models.ChargeListtwo // cnt, _ := strconv.ParseFloat(item.Cut, 64) // // Bby01, _ := strconv.ParseInt(item.Bby01, 10, 64) // // cha.Bby01 = Bby01 // cha.Vaj25 = cnt // info.ChargeListtwo = append(info.ChargeListtwo, &cha) // } // // var root models.Root // var tradeInfo models.TradeInfo // var cBM1 models.CBM1 // var vAF1 models.VAF1 // var vAO1 models.VAO1 // var vBQ1 models.VBQ1 // // if li.Acf01 == 1 { // tradeInfo.PatSource = 1 // tradeInfo.Type = 0 // } else { // tradeInfo.PatSource = 2 // tradeInfo.Type = 1 // // } // tradeInfo.Detpid = departmwnt.Number // tradeInfo.Empid = doctor_info.DoctorNumber // tradeInfo.Empno = doctor_info.DoctorCode // tradeInfo.Empname = doctor_info.UserName // root.TradeInfo = tradeInfo // // // // // // //var del_ids []string // // // // // ////信息 // for _, item := range prescriptions { // departmwnt_two, _ := service.GetDepartMentDetail(item.VMHisPrescriptionInfo.Departments) // var ie_cbm1 models.IEone // ie_cbm1.CBMID = strconv.FormatInt(item.ID, 10) // ie_cbm1.VAA01 = strconv.FormatInt(int64(li.Vaa01), 10) // ie_cbm1.VAA07 = strconv.FormatInt(int64(li.Vaa07), 10) // ie_cbm1.ACF01 = strconv.FormatInt(int64(li.Acf01), 10) // //ie_cbm1.CBM06 = strconv.FormatInt(int64(res.List[0].Acf01), 10) // // if li.Acf01 == 1 { // ie_cbm1.CBM06 = item.MedType // ie_cbm1.BCK01A = "0" // } else { // ie_cbm1.CBM06 = "0" // ie_cbm1.BCK01A = strconv.FormatInt(int64(li.Bck01A), 10) //病区id // } // ie_cbm1.CBM07 = item.MedType // ie_cbm1.BCK01B = strconv.FormatInt(int64(li.Bck01B), 10) // ie_cbm1.BCK01C = departmwnt_two.Number // ie_cbm1.CBM19 = "0" // cBM1.Ie = append(cBM1.Ie, ie_cbm1) // } // root.CBM1 = cBM1 // ////医嘱 // for _, item := range prescriptions { // departmwnt_two, _ := service.GetDepartMentDetail(item.VMHisPrescriptionInfo.Departments) // // if item.Type == 1 { // //组号去重 // //temphisDoctorAdviceInfo := RemoveRepeatedPurviewElementdoctoradvice(item.HisDoctorAdviceInfo) // // // 使用 map 来存储 groupno 的数量 // //groupCount := make(map[int64]int64) // // // 使用 map 来存储 groupno 的数量和最后一条数据的索引 // groupInfo := make(map[int64]struct { // Count int64 // LastElement int // }) // // // 遍历切片,计算 groupno 的数量和最后一条数据的索引 // for i, obj := range item.HisDoctorAdviceInfo { // info, ok := groupInfo[obj.Groupno] // if !ok { // info = struct { // Count int64 // LastElement int // }{} // } // info.Count++ // info.LastElement = i // groupInfo[obj.Groupno] = info // } // // // 根据 groupno 的数量设置字段值 // for i, obj := range item.HisDoctorAdviceInfo { // info := groupInfo[obj.Groupno] // if info.Count < 2 { // item.HisDoctorAdviceInfo[i].NewGroupno = strconv.FormatInt(int64(1), 10) // } else { // // 对于数量大于等于 2 的,将最后一条数据设置 1,其他设置为随机数 // if i == info.LastElement { // item.HisDoctorAdviceInfo[i].NewGroupno = strconv.FormatInt(int64(1), 10) // } else { // item.HisDoctorAdviceInfo[i].NewGroupno = strconv.FormatInt(obj.ID, 10) // } // } // } // // for _, subitem := range item.HisDoctorAdviceInfo { // var ie_cbm1 models.IEtwo // ie_cbm1.CBMID = strconv.FormatInt(int64(item.ID), 10) // ie_cbm1.VAF04 = strconv.FormatInt(int64(li.Acf01), 10) // ie_cbm1.VAA01 = strconv.FormatInt(int64(li.Vaa01), 10) // ie_cbm1.VAF06 = strconv.FormatInt(int64(li.Vaa07), 10) // ie_cbm1.BCK01A = strconv.FormatInt(int64(li.Bck01A), 10) // ie_cbm1.ROWNR = subitem.NewGroupno // ie_cbm1.VAF10 = "1" // ie_cbm1.VAF11 = "2" // ie_cbm1.BDA01 = "1" //诊疗类型 // ie_cbm1.BBX01 = subitem.BaseDrugLib.ZuobiaoId // ie_cbm1.VAF14 = "" //检验样本类型 // ie_cbm1.VAF15 = "" // ie_cbm1.BBY01 = subitem.BaseDrugLib.Bby01 //药品规格id或材料规格id // // if li.Acf01 == 1 { // ie_cbm1.VAF17 = strconv.FormatInt(int64(subitem.Day), 10) // // } else { // ie_cbm1.VAF17 = "0" // // } // // ie_cbm1.VAF18 = fmt.Sprintf("%.2f", subitem.SingleDose) //药品规格id或材料规格id // ie_cbm1.VAF19 = fmt.Sprintf("%.2f", subitem.SingleDose) + " " + subitem.SingleDoseUnit //药品规格id或材料规格id // ie_cbm1.VAF20 = fmt.Sprintf("%.2f", subitem.SingleDose) // ie_cbm1.VAF21 = fmt.Sprintf("%.2f", subitem.PrescribingNumber) // // ie_cbm1.VAF22 = subitem.AdviceName + " " + subitem.BaseDrugLib.DrugSpec // ie_cbm1.Crypt = "0" // ie_cbm1.VAF23 = "" // ie_cbm1.BCK01B = subitem.BaseDrugLib.Bck01b // ie_cbm1.VAF26 = subitem.ExecutionFrequency // ie_cbm1.VAF27 = "1" // ie_cbm1.VAF28 = "1" // ie_cbm1.VAF29 = "1" // // ie_cbm1.VAF30 = "" // ie_cbm1.VAF31 = "0" // // ie_cbm1.VAF32 = "0" //todo // ie_cbm1.VAF33 = "0" // ie_cbm1.VAF34 = "0" // ie_cbm1.VAF35 = "0" // // tempTime1 := time.Unix(subitem.StartTime, 0) // timeFormatOne := tempTime1.Format("2006-01-02 15:04:05") // ie_cbm1.VAF36 = timeFormatOne // ie_cbm1.VAF37 = "1899-12-30" // doctor_info, _ := service.GetAdminUserInfoByID(org_id, item.Creator) // ie_cbm1.BCK01C = departmwnt_two.Number // // ie_cbm1.BCE02A = doctor_info.DoctorCode // ie_cbm1.BCE03A = doctor_info.UserName // ie_cbm1.BCE03B = "" // // ie_cbm1.VAF53 = "-1" // ie_cbm1.VAF55 = subitem.Remark // ie_cbm1.BCK01D = departmwnt_two.Number // ie_cbm1.VAF58 = "0" // ie_cbm1.VAF59 = strconv.FormatInt(int64(subitem.Groupno), 10) // ie_cbm1.VAF60 = "" // ie_cbm1.VAF61 = "1" // ie_cbm1.VAF62 = "0" // ie_cbm1.LSign = "0" // ie_cbm1.BDA01A = ie_cbm1.BDA01 // ie_cbm1.LRoute = "0" // ie_cbm1.BCE01A = doctor_info.DoctorNumber // ie_cbm1.BCE01B = "0" // // ie_cbm1.VAF01B = "0" // ie_cbm1.VCO01 = "0" // ie_cbm1.BCE01H = "0" // ie_cbm1.BCE03H = "" // ie_cbm1.BIW02 = "" // ie_cbm1.RCurrent = "0" // ie_cbm1.FCheck = "0" // ie_cbm1.UnameA = "" // ie_cbm1.VEH02 = "" // vAF1.Ie = append(vAF1.Ie, ie_cbm1) // } // // //hisDoctorAdviceInfo := RemoveRepeatedPurviewElementdoctoradvice(item.HisDoctorAdviceInfo) // // //每种药品下的给药途径 // for _, subitem := range item.HisDoctorAdviceInfo { // //saveLog("", result, "1111", "way", "") // // result2 := fmt.Sprintf("%+v", subitem) // fmt.Println(result2) // // // way, _ := service.GetDrugwayDicByName(subitem.DeliveryWay, c.GetAdminUserInfo().CurrentOrgId) // result := fmt.Sprintf("%+v", way) // saveLog("", result, "1111", "way", "") // var ie_cbm1 models.IEtwo // ie_cbm1.CBMID = strconv.FormatInt(int64(item.ID), 10) // ie_cbm1.VAF04 = strconv.FormatInt(int64(li.Acf01), 10) // ie_cbm1.VAA01 = strconv.FormatInt(int64(li.Vaa01), 10) // ie_cbm1.VAF06 = strconv.FormatInt(int64(li.Vaa07), 10) // ie_cbm1.BCK01A = strconv.FormatInt(int64(li.Bck01A), 10) // ie_cbm1.ROWNR = "0" // ie_cbm1.VAF10 = "1" // ie_cbm1.VAF11 = "2" // ie_cbm1.BDA01 = "T" //诊疗类型 // ie_cbm1.BBX01 = way.Code // ie_cbm1.VAF14 = "" //检验样本类型 // ie_cbm1.VAF15 = "" //检验样本类型 // ie_cbm1.BBY01 = way.Bby01 //药品规格id或材料规格id // if li.Acf01 == 1 { // ie_cbm1.VAF17 = strconv.FormatInt(int64(subitem.Day), 10) //药品规格id或材料规格id // } else { // ie_cbm1.VAF17 = "0" //药品规格id或材料规格id // } // // ie_cbm1.VAF18 = fmt.Sprintf("%.2f", subitem.SingleDose) //药品规格id或材料规格id // ie_cbm1.VAF19 = fmt.Sprintf("%.2f", subitem.SingleDose) + " " + subitem.SingleDoseUnit //药品规格id或材料规格id // ie_cbm1.VAF20 = fmt.Sprintf("%.2f", subitem.SingleDose) // //ie_cbm1.VAF21 = fmt.Sprintf("%.2f",subitem.PrescribingNumber) // // //ie_cbm1.VAF18 = "" //药品规格id或材料规格id // //ie_cbm1.VAF19 = "" // //ie_cbm1.VAF20 = "" // if subitem.DrugWayCount == "" { // ie_cbm1.VAF21 = "1" // // } else { // ie_cbm1.VAF21 = subitem.DrugWayCount // // } // // ie_cbm1.VAF22 = way.Name // ie_cbm1.Crypt = "0" // ie_cbm1.VAF23 = "" // ie_cbm1.BCK01B = subitem.BaseDrugLib.Bck01b // ie_cbm1.VAF26 = subitem.ExecutionFrequency // ie_cbm1.VAF27 = "1" // ie_cbm1.VAF28 = "1" // ie_cbm1.VAF29 = "1" // ie_cbm1.BCK01C = departmwnt_two.Number // // ie_cbm1.VAF30 = "" // ie_cbm1.VAF31 = "0" // // ie_cbm1.VAF32 = "1" //todo // ie_cbm1.VAF33 = "0" // ie_cbm1.VAF34 = "0" // ie_cbm1.VAF35 = "0" // // tempTime1 := time.Unix(subitem.StartTime, 0) // timeFormatOne := tempTime1.Format("2006-01-02 15:04:05") // ie_cbm1.VAF36 = timeFormatOne // ie_cbm1.VAF37 = "1899-12-30" // doctor_info, _ := service.GetAdminUserInfoByID(org_id, item.Creator) // // ie_cbm1.BCE02A = doctor_info.DoctorCode // ie_cbm1.BCE03A = doctor_info.UserName // ie_cbm1.BCE03B = "" // // ie_cbm1.VAF53 = "-1" // ie_cbm1.VAF55 = subitem.Remark // ie_cbm1.BCK01D = departmwnt_two.Number // ie_cbm1.VAF58 = "0" // ie_cbm1.VAF59 = strconv.FormatInt(int64(subitem.Groupno), 10) // // ie_cbm1.VAF60 = "" // ie_cbm1.VAF61 = "1" // ie_cbm1.VAF62 = "0" // ie_cbm1.LSign = "0" // ie_cbm1.BDA01A = ie_cbm1.BDA01 // ie_cbm1.LRoute = "0" // ie_cbm1.BCE01A = doctor_info.DoctorNumber // ie_cbm1.BCE01B = "0" // // ie_cbm1.VAF01B = "0" // ie_cbm1.VCO01 = "0" // ie_cbm1.BCE01H = "0" // ie_cbm1.BCE03H = "" // ie_cbm1.BIW02 = "" // ie_cbm1.RCurrent = "0" // ie_cbm1.FCheck = "0" // ie_cbm1.UnameA = "" // ie_cbm1.VEH02 = "" // ie_cbm1.VAF07 = "0" // vAF1.Ie = append(vAF1.Ie, ie_cbm1) // } // // } else if item.Type == 2 { // for index, subitem := range item.HisPrescriptionProject { // if subitem.Type == 2 { // if subitem.HisProject.CostClassify != 3 { // var ie_cbm1 models.IEtwo // ie_cbm1.CBMID = strconv.FormatInt(int64(item.ID), 10) // ie_cbm1.VAF04 = strconv.FormatInt(int64(li.Acf01), 10) // ie_cbm1.VAA01 = strconv.FormatInt(int64(li.Vaa01), 10) // ie_cbm1.VAF06 = strconv.FormatInt(int64(li.Vaa07), 10) // ie_cbm1.BCK01A = strconv.FormatInt(int64(li.Bck01A), 10) // ie_cbm1.ROWNR = strconv.FormatInt(int64(index+1), 10) // ie_cbm1.VAF10 = "1" // ie_cbm1.VAF11 = "2" // ie_cbm1.BDA01 = "T" //诊疗类型 // ie_cbm1.BBX01 = subitem.HisProject.ZuobiaoId // ie_cbm1.VAF14 = "" //检验样本类型 // ie_cbm1.VAF15 = "" //检验样本类型 // ie_cbm1.BBY01 = subitem.HisProject.Bby01 //药品规格id或材料规格id // if li.Acf01 == 1 { // ie_cbm1.VAF17 = subitem.Day //药品规格id或材料规格id // if len(subitem.Day) == 0 { // ie_cbm1.VAF17 = "1" // } // // } else { // ie_cbm1.VAF17 = "0" //药品规格id或材料规格idn // } // if subitem.SingleDose == "" { // // subitem.SingleDose = "1" // } // // ie_cbm1.VAF18 = subitem.SingleDose //药品规格id或材料规格id // ie_cbm1.VAF19 = subitem.SingleDose + " " + subitem.Unit //药品规格id或材料规格id // ie_cbm1.VAF20 = subitem.SingleDose // ie_cbm1.VAF21 = subitem.Count // // ie_cbm1.VAF22 = subitem.HisProject.ProjectName // ie_cbm1.Crypt = "0" // ie_cbm1.VAF23 = "" // ie_cbm1.BCK01B = subitem.HisProject.Bck01b // ie_cbm1.VAF26 = subitem.ExecutionFrequency // ie_cbm1.VAF27 = "1" // ie_cbm1.VAF28 = "1" // ie_cbm1.VAF29 = "" // ie_cbm1.BCK01C = departmwnt_two.Number // // ie_cbm1.VAF30 = "" // ie_cbm1.VAF31 = "0" // // ie_cbm1.VAF32 = "0" //todo // ie_cbm1.VAF33 = "0" // ie_cbm1.VAF34 = "0" // ie_cbm1.VAF35 = "0" // // tempTime1 := time.Unix(subitem.StartTime, 0) // timeFormatOne := tempTime1.Format("2006-01-02 15:04:05") // ie_cbm1.VAF36 = timeFormatOne // ie_cbm1.VAF37 = "1899-12-30" // doctor_info, _ := service.GetAdminUserInfoByID(org_id, item.Creator) // // ie_cbm1.BCE02A = doctor_info.DoctorCode // ie_cbm1.BCE03A = doctor_info.UserName // ie_cbm1.BCE03B = "" // // ie_cbm1.VAF53 = "-1" // ie_cbm1.VAF55 = subitem.Remark // ie_cbm1.BCK01D = departmwnt_two.Number // ie_cbm1.VAF58 = "0" // ie_cbm1.VAF59 = strconv.FormatInt(int64(index+1), 10) // // ie_cbm1.VAF60 = "" // ie_cbm1.VAF61 = "1" // ie_cbm1.VAF62 = "0" // ie_cbm1.LSign = "0" // ie_cbm1.BDA01A = "" //诊疗类型 // ie_cbm1.LRoute = "0" // ie_cbm1.BCE01A = doctor_info.DoctorNumber // // //ie_cbm1.BCE01A = doctor_info.UserName // ie_cbm1.BCE01B = "0" // // ie_cbm1.VAF01B = "0" // ie_cbm1.VCO01 = "0" // ie_cbm1.BCE01H = "0" // ie_cbm1.BCE03H = "" // ie_cbm1.BIW02 = "" // ie_cbm1.RCurrent = "0" // ie_cbm1.FCheck = "0" // ie_cbm1.UnameA = "" // ie_cbm1.VAF07 = "0" // // ie_cbm1.VEH02 = "" // vAF1.Ie = append(vAF1.Ie, ie_cbm1) // } // if subitem.HisProject.CostClassify == 3 { // var ie_cbm1 models.IEtwo // ie_cbm1.CBMID = strconv.FormatInt(int64(item.ID), 10) // ie_cbm1.VAF04 = strconv.FormatInt(int64(li.Acf01), 10) // ie_cbm1.VAA01 = strconv.FormatInt(int64(li.Vaa01), 10) // ie_cbm1.VAF06 = strconv.FormatInt(int64(li.Vaa07), 10) // ie_cbm1.BCK01A = strconv.FormatInt(int64(li.Bck01A), 10) // ie_cbm1.ROWNR = strconv.FormatInt(int64(index+1), 10) // ie_cbm1.VAF10 = "1" // ie_cbm1.VAF11 = "2" // ie_cbm1.BDA01 = "L" //诊疗类型 // ie_cbm1.BBX01 = subitem.HisProject.ZuobiaoId // ie_cbm1.VAF14 = "" //检验样本类型 // ie_cbm1.VAF15 = "" //检验样本类型 // ie_cbm1.BBY01 = subitem.HisProject.Bby01 //药品规格id或材料规格id // if li.Acf01 == 1 { // ie_cbm1.VAF17 = subitem.Day //药品规格id或材料规格id // } else { // ie_cbm1.VAF17 = "0" //药品规格id或材料规格idn // } // if subitem.SingleDose == "" { // // subitem.SingleDose = "1" // } // // ie_cbm1.VAF18 = subitem.SingleDose //药品规格id或材料规格id // ie_cbm1.VAF19 = subitem.SingleDose + " " + subitem.Unit //药品规格id或材料规格id // ie_cbm1.VAF20 = subitem.SingleDose // ie_cbm1.VAF21 = subitem.Count // // ie_cbm1.VAF22 = subitem.HisProject.ProjectName // ie_cbm1.Crypt = "0" // ie_cbm1.VAF23 = "" // ie_cbm1.BCK01B = subitem.HisProject.Bck01b // ie_cbm1.VAF26 = subitem.ExecutionFrequency // ie_cbm1.VAF27 = "1" // ie_cbm1.VAF28 = "1" // ie_cbm1.VAF29 = "" // ie_cbm1.BCK01C = departmwnt_two.Number // ie_cbm1.VAF30 = "" // ie_cbm1.VAF31 = "0" // ie_cbm1.VAF32 = "0" //todo // ie_cbm1.VAF33 = "0" // ie_cbm1.VAF34 = "0" // ie_cbm1.VAF35 = "0" // tempTime1 := time.Unix(subitem.StartTime, 0) // timeFormatOne := tempTime1.Format("2006-01-02 15:04:05") // ie_cbm1.VAF36 = timeFormatOne // ie_cbm1.VAF37 = "1899-12-30" // doctor_info, _ := service.GetAdminUserInfoByID(org_id, item.Creator) // // ie_cbm1.BCE02A = doctor_info.DoctorCode // ie_cbm1.BCE03A = doctor_info.UserName // ie_cbm1.BCE03B = "" // // ie_cbm1.VAF53 = "-1" // ie_cbm1.VAF55 = subitem.Remark // ie_cbm1.BCK01D = departmwnt_two.Number // ie_cbm1.VAF58 = "0" // ie_cbm1.VAF59 = strconv.FormatInt(int64(index+1), 10) // // ie_cbm1.VAF60 = "" // ie_cbm1.VAF61 = "1" // ie_cbm1.VAF62 = "0" // ie_cbm1.LSign = "0" // ie_cbm1.BDA01A = "" //诊疗类型 // ie_cbm1.LRoute = "0" // ie_cbm1.BCE01A = doctor_info.DoctorNumber // ie_cbm1.VAF07 = "0" // // //ie_cbm1.BCE01A = doctor_info.UserName // ie_cbm1.BCE01B = "0" // // ie_cbm1.VAF01B = "0" // ie_cbm1.VCO01 = "0" // ie_cbm1.BCE01H = "0" // ie_cbm1.BCE03H = "" // ie_cbm1.BIW02 = "" // ie_cbm1.RCurrent = "0" // ie_cbm1.FCheck = "0" // ie_cbm1.UnameA = "" // ie_cbm1.VEH02 = "" // vAF1.Ie = append(vAF1.Ie, ie_cbm1) // } // // } else if subitem.Type == 3 { // var ie_cbm1 models.IEtwo // ie_cbm1.CBMID = strconv.FormatInt(int64(item.ID), 10) // ie_cbm1.VAF04 = strconv.FormatInt(int64(li.Acf01), 10) // ie_cbm1.VAA01 = strconv.FormatInt(int64(li.Vaa01), 10) // ie_cbm1.VAF06 = strconv.FormatInt(int64(li.Vaa07), 10) // ie_cbm1.BCK01A = strconv.FormatInt(int64(li.Bck01A), 10) // ie_cbm1.ROWNR = strconv.FormatInt(int64(index+1), 10) // // ie_cbm1.VAF10 = "1" // ie_cbm1.VAF11 = "2" // ie_cbm1.BDA01 = "4" //诊疗类型 // ie_cbm1.BBX01 = subitem.GoodInfo.ZuobiaoId // ie_cbm1.VAF14 = "" //检验样本类型 // ie_cbm1.VAF15 = "" //检验样本类型 // ie_cbm1.BBY01 = subitem.GoodInfo.Bby01 //药品规格id或材料规格id // // if li.Acf01 == 1 { // ie_cbm1.VAF17 = subitem.Day //药品规格id或材料规格id // // } else { // ie_cbm1.VAF17 = "0" //药品规格id或材料规格id // // } // if subitem.SingleDose == "" { // subitem.SingleDose = "1" // } // // ie_cbm1.VAF18 = subitem.SingleDose //药品规格id或材料规格id // ie_cbm1.VAF19 = subitem.SingleDose + " " + subitem.Unit //药品规格id或材料规格id // ie_cbm1.VAF20 = subitem.SingleDose // ie_cbm1.VAF21 = subitem.Count // ie_cbm1.BCK01C = departmwnt_two.Number // // ie_cbm1.VAF22 = subitem.GoodInfo.GoodName + " " + subitem.GoodInfo.SpecificationName // ie_cbm1.Crypt = "0" // ie_cbm1.VAF23 = "" // ie_cbm1.BCK01B = subitem.GoodInfo.Bck01b // ie_cbm1.VAF26 = subitem.ExecutionFrequency // ie_cbm1.VAF27 = "" // ie_cbm1.VAF28 = "1" // ie_cbm1.VAF29 = "" // ie_cbm1.VAF07 = "0" // // ie_cbm1.VAF30 = "" // ie_cbm1.VAF31 = "0" // // ie_cbm1.VAF32 = "0" //todo // ie_cbm1.VAF33 = "0" // ie_cbm1.VAF34 = "0" // ie_cbm1.VAF35 = "0" // // tempTime1 := time.Unix(subitem.StartTime, 0) // timeFormatOne := tempTime1.Format("2006-01-02 15:04:05") // ie_cbm1.VAF36 = timeFormatOne // ie_cbm1.VAF37 = "1899-12-30" // doctor_info, _ := service.GetAdminUserInfoByID(org_id, item.Creator) // // ie_cbm1.BCE02A = doctor_info.DoctorCode // ie_cbm1.BCE03A = doctor_info.UserName // ie_cbm1.BCE03B = "" // ie_cbm1.BCK01C = departmwnt_two.Number // // ie_cbm1.VAF53 = "-1" // ie_cbm1.VAF55 = subitem.Remark // ie_cbm1.BCK01D = departmwnt_two.Number // ie_cbm1.VAF58 = "0" // ie_cbm1.VAF59 = strconv.FormatInt(int64(index+1), 10) // ie_cbm1.VAF60 = "" // ie_cbm1.VAF61 = "1" // ie_cbm1.VAF62 = "0" // ie_cbm1.LSign = "0" // ie_cbm1.BDA01A = "" //诊疗类型 // ie_cbm1.LRoute = "0" // ie_cbm1.BCE01A = doctor_info.DoctorNumber // ie_cbm1.BCE01B = "0" // ie_cbm1.VAF01B = "0" // ie_cbm1.VCO01 = "0" // ie_cbm1.BCE01H = "0" // ie_cbm1.BCE03H = "" // ie_cbm1.BIW02 = "" // ie_cbm1.RCurrent = "0" // ie_cbm1.FCheck = "0" // ie_cbm1.UnameA = "" // ie_cbm1.VEH02 = "" // vAF1.Ie = append(vAF1.Ie, ie_cbm1) // } // } // } // // } // root.VAF1 = vAF1 // for _, item := range prescriptions { // sick, _ := service.FindSickById(sick_type) // // dias := strings.Split(item.VMHisPrescriptionInfo.Diagnosis, ",") // //service.get // // //诊断 // for index, subitem := range dias { // diagnosisConfig, _ := service.FindDiagnoseByIdtwo(subitem) // if index == 0 { // var ie_cbm1 models.IEthree // ie_cbm1.CBMID = strconv.FormatInt(int64(item.ID), 10) // ie_cbm1.VAA01 = strconv.FormatInt(int64(li.Vaa01), 10) // ie_cbm1.VAA07 = strconv.FormatInt(int64(li.Vaa07), 10) // ie_cbm1.ACF01 = strconv.FormatInt(int64(li.Acf01), 10) // ie_cbm1.VAO06 = strconv.FormatInt(int64(index+1), 10) // ie_cbm1.VAO07 = "1" // ie_cbm1.VAO10 = "0" // ie_cbm1.VAO11 = "1" // ie_cbm1.BAK01A = sick.ContentCode // ie_cbm1.CAM01 = diagnosisConfig.ContentCode // ie_cbm1.VAO15 = diagnosisConfig.ClassName // ie_cbm1.VAO18 = "0" // ie_cbm1.VAO22 = "1" // ie_cbm1.IAA01 = "" // ie_cbm1.IAD03 = "" // ie_cbm1.BAK01B = "" // ie_cbm1.VAO26 = "" // ie_cbm1.IAD04 = "" // ie_cbm1.IAD01 = "" // ie_cbm1.VAO25 = "1" // ie_cbm1.VAO35 = "" // vAO1.Ie = append(vAO1.Ie, ie_cbm1) // // } else { // var ie_cbm1 models.IEthree // ie_cbm1.CBMID = strconv.FormatInt(int64(item.ID), 10) // ie_cbm1.VAA01 = strconv.FormatInt(int64(li.Vaa01), 10) // ie_cbm1.VAA07 = strconv.FormatInt(int64(li.Vaa07), 10) // ie_cbm1.ACF01 = strconv.FormatInt(int64(li.Acf01), 10) // ie_cbm1.VAO06 = strconv.FormatInt(int64(index+1), 10) // ie_cbm1.VAO07 = "1" // ie_cbm1.VAO10 = "0" // ie_cbm1.VAO11 = "1" // ie_cbm1.BAK01A = sick.ContentCode // ie_cbm1.CAM01 = diagnosisConfig.ContentCode // ie_cbm1.VAO15 = diagnosisConfig.ClassName // ie_cbm1.VAO18 = "0" // ie_cbm1.VAO22 = "1" // ie_cbm1.IAA01 = "" // ie_cbm1.IAD03 = "" // ie_cbm1.BAK01B = "" // ie_cbm1.VAO26 = "" // ie_cbm1.IAD04 = "" // ie_cbm1.IAD01 = "" // ie_cbm1.VAO25 = "2" // ie_cbm1.VAO35 = "" // vAO1.Ie = append(vAO1.Ie, ie_cbm1) // } // } // } // //// // //////检验检查医嘱 // //for _, item := range prescriptions{ // // fmt.Println("6666666666666") // // if item.Type == 2{ // // for _, subitem := range item.HisPrescriptionProject { // // if subitem.Type == 2{ // // if subitem.HisProject.CostClassify == 3 { // // var ie_cbm1 models.IEfour // // ie_cbm1.VBQ01 = strconv.FormatInt(int64(item.ID), 10) // // ie_cbm1.VAA01 = strconv.FormatInt(int64(li.Vaa01), 10) // // ie_cbm1.VAA07 = strconv.FormatInt(int64(li.Vaa07), 10) // // ie_cbm1.ACF01 = strconv.FormatInt(int64(li.Acf01), 10) // // ie_cbm1.VAP01 = "0" // // ie_cbm1.VBQ07 = "0" // // ie_cbm1.BCK01A = departmwnt.Number // // ie_cbm1.BCK01B= "0" // // ie_cbm1.BCE03A= "" // // ie_cbm1.BCE01A= "0" // // ie_cbm1.VBQ27= subitem.HisProject.ProjectName // // ie_cbm1.VBQ28= patientPrescription.Diagnosis // // ie_cbm1.VBQ29= "" // // ie_cbm1.VBQ30= "" // // vBQ1.Ie = append(vBQ1.Ie, ie_cbm1) // // } // // // // } // // // // } // // } // //} // // root.VAO1 = vAO1 // root.VBQ1 = vBQ1 // // //zuobiao, _ := service.Getzuobiao(c.GetAdminUserInfo().CurrentOrgId, patient_id, recordDateTime) // // //is_success := true // //failed_mag := "" // //查询出对应的坐标系统医嘱id,先进行删除操作,在创建医嘱。如果没有医嘱id,则直接创建医嘱 // //if zuobiao.ID > 0 { // // cbm01s := strings.Split(zuobiao.Cbm01, ",") // // fmt.Println(cbm01s) // // // // for _, iditem := range cbm01s { // // fmt.Println(iditem) // // var root2 models.Root2 // // var tradeInfo2 models.TradeInfo // // if li.Acf01 == 1 { // // tradeInfo2.PatSource = 1 // // tradeInfo2.Type = 0 // // } else { // // tradeInfo2.PatSource = 2 // // tradeInfo2.Type = 1 // // // // } // // tradeInfo2.Detpid = departmwnt.Number // // tradeInfo2.Empid = doctor_info.DoctorNumber // // tradeInfo2.Empno = doctor_info.DoctorCode // // tradeInfo2.Empname = doctor_info.UserName // // var vaf01 models.VAF10 // // var ie1111 models.IEfive // // ie1111.VAF01 = iditem // // vaf01.Ie = append(vaf01.Ie, ie1111) // // root2.TradeInfo = tradeInfo2 // // root2.VAF1 = vaf01 // // xmlStr2, err := xml.MarshalIndent(root2, "", " ") // // if err != nil { // // fmt.Println("转换为XML时发生错误:", err) // // return // // } // // data := make(map[string]interface{}) // // data["xmlStr"] = string(xmlStr2) // // bytesData, _ := json.Marshal(data) // // client := &http.Client{} // // // // var req *http.Request // // // // // // req, _ = http.NewRequest("POST", "http://192.168.100.199:9532/"+"nmg/coordinate/del", 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 // // } // // // // respJSON2 := respJSON["data"].(map[string]interface{})["msg"].(string) // // fmt.Println( respJSON) // // fmt.Println( respJSON["data"].(map[string]interface{})) // // fmt.Println(respJSON2) // // // // if respJSON2 != "成功"{ // // //is_success = false // // failed_mag = respJSON2 // // } // // } // //} // // xmlStr2, err := xml.MarshalIndent(root, "", " ") // if err != nil { // fmt.Println("转换为XML时发生错误:", err) // return // } // data := make(map[string]interface{}) // data["xmlStr"] = string(xmlStr2) // bytesData, _ := json.Marshal(data) // var req *http.Request // client := &http.Client{} // saveLog("", string(xmlStr2), "1111", "上传明细xml", "") // // req, _ = http.NewRequest("POST", "http://192.168.100.199:9532/"+"nmg/coordinate/upload", 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 // } // // respJSON3 := respJSON["data"].(map[string]interface{})["msg"].(string) // respJSON4 := respJSON["data"].(map[string]interface{})["res"].(string) // // if respJSON3 == "成功" { // // if li.Acf01 != 1 { // //记账 // result2, request2 := service.NMGSettleForCoordinate(info) // saveLog(result2, request2, "记账", "记账", org.OrgName) // // //data := make(map[string]interface{}) // //data["info"] = &info // // // //fmt.Println(data) // // // //bytesData, _ := json.Marshal(data) // //var req *http.Request // // // //client := &http.Client{} // // // //req, _ = http.NewRequest("POST", "http://192.168.100.199:9532/"+"nmg/coordinate/settle", 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{})["res"].(map[string]interface{}) // //userJSONBytes, _ := json.Marshal(respJSON) // // // //var res2 ResultUpload2 // //if err := json.Unmarshal(userJSONBytes, &res2); err != nil { // // utils.ErrorLog("解析失败:%v", err) // // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // // return // //} // //if res2.Code == 500{ // // c.ServeSuccessJSON(map[string]interface{}{ // // "failed_code": -10, // // "msg": res2.Msg, // // }) // // 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(patient.ID, 10) // his := models.VMHisPatient{ // Name: patient.Name, // Gender: patient.Gender, // Birthday: patient.Birthday, // MedicalTreatmentType: 0, // IdType: 1, // IdCardNo: patient.IdCardNo, // BalanceAccountsType: 1, // MedicalInsuranceNumber: "", // RegisterType: 0, // RegisterCost: 0, // TreatmentCost: 0, // Status: 0, // Ctime: time.Now().Unix(), // Mtime: time.Now().Unix(), // PsnNo: strconv.FormatInt(int64(li.Vaa01), 10), // PsnCertType: "", // Certno: patient.IdCardNo, // PsnName: patient.Name, // Gend: "", // Naty: "", // Brdy: "", // Age: 0, // Iinfo: "", // Idetinfo: "", // PatientId: patient.ID, // RecordDate: theTime.Unix(), // // UserOrgId: org_id, // AdminUserId: admin_user_id, // IsReturn: 1, // Doctor: patientPrescription.DoctorId, // Departments: patientPrescription.Departments, // IptOtpNo: ipt_otp_no, // Number: strconv.FormatInt(int64(li.Vaa07), 10), // PhoneNumber: patient.Phone, // } // service.UpdateHisPatientStatusten(&his) // service.UpdateHisPrescriptionHisID(his.ID, patient.ID, recordDateTime, org_id) // tm := time.Unix(time.Now().Unix(), 0) // // order := &models.HisOrder{ // PsnNo: strconv.FormatInt(int64(li.Vaa01), 10), // UserOrgId: org_id, // PatientId: patient_id, // SettleAccountsDate: recordDateTime, // Ctime: time.Now().Unix(), // Mtime: time.Now().Unix(), // Status: 1, // OrderStatus: 1, // MdtrtId: strconv.FormatInt(int64(li.Vaa07), 10), // Number: strconv.FormatInt(int64(li.Vaa07), 10), // SetlId: respJSON4, // MedfeeSumamt: total, // MedType: strconv.Itoa(int(reg_type)), // SettleType: settle_accounts_type, // Diagnosis: diagnosis_id, // PType: int64(li.Acf01), // SetlTime: tm.Format("2006-01-02 15:04:05"), // SettleStartTime: recordStartTime, // SettleEndTime: recordEndTime, // } // err = service.CreateOrder(order) // if err != nil { // //c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeCreateOrderException) // return // } // // 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 // } // 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: patient_id, // Status: 1, // Mtime: time.Now().Unix(), // Ctime: time.Now().Unix(), // UserOrgId: org_id, // HisPatientId: his.ID, // OrderId: order.ID, // ProjectId: project_id, // Type: types, // //ItemId: item_id, // } // service.CreateOrderInfo(info) // } // his.Diagnosis = diagnosis_id // his.SickType = sick_type // his.RegisterType = reg_type // his.MedicalTreatmentType = reg_type // service.UpdataHisPateintTwo(&his) // err = service.UpDatePrescriptionNumber(org_id, ids, strconv.FormatInt(int64(li.Vaa07), 10)) // err = service.UpDateHisPrescriptionInfoNumbertwo(org_id, patient_id, strconv.FormatInt(int64(li.Vaa07), 10), recordDateTime, his.ID) // err = service.UpdataOrderStatusThreef(strconv.FormatInt(int64(li.Vaa07), 10), org_id) // // var zuobiao_advice models.HisZuobiaoAdvice // zuobiao_advice.Status = 1 // zuobiao_advice.RecordDate = recordDateTime // zuobiao_advice.PatientId = patient_id // zuobiao_advice.Cbm01 = respJSON4 // zuobiao_advice.Ctime = time.Now().Unix() // zuobiao_advice.Mtime = time.Now().Unix() // zuobiao_advice.Oid = order.ID // zuobiao_advice.StartTime = recordStartTime // zuobiao_advice.EndTime = recordEndTime // zuobiao_advice.Vaa01 = strconv.FormatInt(int64(li.Vaa01), 10) // zuobiao_advice.Vaa07 = strconv.FormatInt(int64(li.Vaa07), 10) // zuobiao_advice.UserOrgId = c.GetAdminUserInfo().CurrentOrgId // service.Createzuobiao(&zuobiao_advice) // // c.ServeSuccessJSON(map[string]interface{}{ // "msg": "成功", // }) // // } else { // c.ServeSuccessJSON(map[string]interface{}{ // "failed_code": -10, // "msg": respJSON3, // }) // // } // // } else { // // c.ServeSuccessJSON(map[string]interface{}{ // "failed_code": -10, // "msg": res.Msg, // }) // } //} //func (c *CoordinateController) NMGSettleAccountthree() { // patient_id, _ := c.GetInt64("patient_id") // record_date := c.GetString("record_date") // //admin_user_id, _ := c.GetInt64("admin_user_id") // diagnosis_id := c.GetString("diagnosis") // sick_type, _ := c.GetInt64("sick_type") // reg_type, _ := c.GetInt64("p_type") // org_id, _ := c.GetInt64("org_id") // org_id = 10206 // org, _ := service.GetOrgById(org_id) // patient, _ := service.GetPatientByID(org.Id, patient_id) // settle_accounts_type, _ := c.GetInt64("settle_accounts_type") // // res := NMGzhuyuan(c, patient.Name) // res8 := NMGmenzhen(c, patient.Name) // // //优先查询今天门诊的患者,如果今天没有门诊的患者查询出住院的患者 // if res8.Code == 200 { // var res9 Data // res9.List = append(res9.List, res8.List...) // var li ListItem // // 获取当前时间 // //var maxTimestamp int64 // // // 定义一个变量来保存离当前时间最近的数据 // //var closestData MyData // //var closestTimeDiff time.Duration // // // 遍历切片,找到离当前时间最近的数据 // //for _, data := range res9.List { // // // 将时间字符串解析为 time.Time 类型 // // timeObj, err := time.Parse("2006-01-02 15:04:05", data.Vae11) // // if err != nil { // // fmt.Println("时间解析错误:", err) // // continue // // } // // // 获取时间戳 // // timestamp := timeObj.Unix() // // // 比较时间戳 // // if timestamp > maxTimestamp { // // maxTimestamp = timestamp // // } // //} // // // //fmt.Println(maxTimestamp) // // sort.Slice(res9.List, func(i, j int) bool { // // 将时间字符串解析为 time.Time 类型 // timeObj1, err1 := time.Parse("2006-01-02 15:04:05", res9.List[i].Vae11) // timeObj2, err2 := time.Parse("2006-01-02 15:04:05", res9.List[j].Vae11) // // // 错误处理 // if err1 != nil || err2 != nil { // fmt.Println("时间解析错误:", err1, err2) // return false // } // // // 比较时间 // return timeObj1.Before(timeObj2) // }) // // cure_date := strings.Split(res9.List[len(res9.List)-1].Vae11, " ") // if cure_date[0] == record_date && patient.Name == res9.List[len(res9.List)-1].Vaa05 { // li = res9.List[len(res9.List)-1] // } // fmt.Println("按照时间排序后的数据:", li) // if li.Acf01 == 0 && li.Vaa07 == 0 && li.Vaa01 == 0 { //今天没有门诊患者,则查询出最后一个日期的住院患者 // var res10 Data // //res9.List = append(res9.List, res.List...) // res10.List = append(res10.List, res.List...) // layout := "2006-01-02 15:04:05" // var maxDate time.Time // for _, item := range res10.List { // currentDate, err := time.Parse(layout, item.Vae11) // if err != nil { // fmt.Println("Error parsing date:", err) // continue // } // if currentDate.After(maxDate) { // maxDate = currentDate // } // if !maxDate.IsZero() { // fmt.Println("The maximum date is:", maxDate.Format(layout)) // } else { // fmt.Println("No valid dates found") // } // } // fmt.Println(maxDate.Format("2006-01-02 15:04:05")) // for _, item := range res10.List { // if item.Vae11 == maxDate.Format("2006-01-02 15:04:05") && patient.Name == item.Vaa05 { // li = item // } // } // } // fmt.Println(li) // // 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 // } // org_id := org.Id // recordDateTime := theTime.Unix() // patientPrescription, _ := service.FindPatientPrescriptionInfoTwo(org_id, patient.ID, recordDateTime, 2) // if patientPrescription.ID == 0 { // patientPrescription, _ = service.FindLastPatientPrescriptionInfo(org_id, patient.ID, recordDateTime) // } // departmwnt, _ := service.GetDepartMentDetail(patientPrescription.Departments) // //admin_user_info, _ := service.GetAdminUserInfoByID(org_id, admin_user_id) // doctor_info, _ := service.GetAdminUserInfoByID(org_id, patientPrescription.DoctorId) // // var recordStartTime int64 // var recordEndTime int64 // // var prescriptions []models.HisPrescription // if settle_accounts_type == 1 { //日结 // prescriptions, _ = service.GetUnSettleHisPrescriptionFive(org_id, patient_id, recordDateTime, 2) // } else { //月结 // start_time_str := c.GetString("start_time") // end_time_str := c.GetString("end_time") // theStartTime, err := time.ParseInLocation(timeLayout+" 15:04:05", start_time_str+" 00:00:00", loc) // if err != nil { // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) // return // } // recordStartTime = theStartTime.Unix() // theEndTime, err := time.ParseInLocation(timeLayout+" 15:04:05", end_time_str+" 00:00:00", loc) // if err != nil { // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) // return // } // recordEndTime = theEndTime.Unix() // // prescriptions, _ = service.GetUnSettleMonthHisPrescription(org_id, patient_id, recordStartTime, recordEndTime) // } // // var total float64 // // var customs []*models.NewCustomTwo // for _, item := range prescriptions { // if item.Type == 1 { //药品 // for _, subItem := range item.HisDoctorAdviceInfo { // tempTime := time.Unix(item.PreTime, 0) // //timeFormat := tempTime.Format("20060102150405") // timeFormatOne := tempTime.Format("2006-01-02 15:04:05") // cus := &models.NewCustomTwo{ // AdviceId: subItem.ID, // ProjectId: 0, // DetItemFeeSumamt: fmt.Sprintf("%.4f", subItem.Price*subItem.PrescribingNumber), // Cut: fmt.Sprintf("%.4f", subItem.PrescribingNumber), // FeedetlSn: subItem.FeedetlSn, // Price: fmt.Sprintf("%.2f", subItem.Price), // MedListCodg: subItem.BaseDrugLib.MedicalInsuranceNumber, // Type: 1, // ItemId: subItem.BaseDrugLib.ZuobiaoId, // StartTime: timeFormatOne, // Content: subItem.AdviceName, // Bby01: subItem.BaseDrugLib.Bby01, // } // customs = append(customs, cus) // } // } // if item.Type == 2 { //项目 // for _, subItem := range item.HisPrescriptionProject { // if subItem.Type == 2 { // tempTime := time.Unix(item.PreTime, 0) // //timeFormat := tempTime.Format("20060102150405") // timeFormatOne := tempTime.Format("2006-01-02 15:04:05") // cnt, _ := strconv.ParseFloat(subItem.Count, 64) // cus := &models.NewCustomTwo{ // AdviceId: 0, // ProjectId: subItem.ID, // DetItemFeeSumamt: fmt.Sprintf("%.4f", subItem.Price*cnt), // Cut: fmt.Sprintf("%.4f", cnt), // FeedetlSn: subItem.FeedetlSn, // Price: fmt.Sprintf("%.4f", float64(subItem.Price)), // MedListCodg: subItem.HisProject.MedicalCode, // Type: 2, // ItemId: subItem.HisProject.ZuobiaoId, // StartTime: timeFormatOne, // Content: subItem.HisProject.ProjectName, // Bby01: subItem.HisProject.Bby01, // } // customs = append(customs, cus) // // } else { // tempTime := time.Unix(item.PreTime, 0) // //timeFormat := tempTime.Format("20060102150405") // timeFormatOne := tempTime.Format("2006-01-02 15:04:05") // cnt, _ := strconv.ParseFloat(subItem.Count, 64) // cus := &models.NewCustomTwo{ // AdviceId: 0, // ProjectId: subItem.ID, // DetItemFeeSumamt: fmt.Sprintf("%.4f", subItem.Price*cnt), // Cut: fmt.Sprintf("%.4f", cnt), // FeedetlSn: subItem.FeedetlSn, // Price: fmt.Sprintf("%.4f", float64(subItem.Price)), // MedListCodg: subItem.GoodInfo.MedicalInsuranceNumber, // Type: 3, // ItemId: subItem.GoodInfo.ZuobiaoId, // StartTime: timeFormatOne, // Content: subItem.GoodInfo.GoodName, // Bby01: subItem.GoodInfo.Bby01, // } // customs = append(customs, cus) // } // // } // } // } // // for _, item := range prescriptions { // if item.Type == 1 { //药品 // for _, subItem := range item.HisDoctorAdviceInfo { // price, _ := strconv.ParseFloat(fmt.Sprintf("%.2f", subItem.Price), 64) // total_one := price * subItem.PrescribingNumber // fmt.Println("subItem") // fmt.Println(subItem.Price) // fmt.Println("price") // fmt.Println(price) // fmt.Println("total_one") // fmt.Println(total_one) // total = total + total_one // fmt.Println(total) // // } // } // if item.Type == 2 { //项目 // // for _, subItem := range item.HisPrescriptionProject { // cnt, _ := strconv.ParseFloat(subItem.Count, 64) // price, _ := strconv.ParseFloat(fmt.Sprintf("%.2f", subItem.Price), 64) // total_one := price * cnt // total = total + total_one // } // } // } // // //allTotal := fmt.Sprintf("%2f", total) // // var info models.UploadInfo // info.Acf01 = int64(li.Acf01) // info.Bce01 = "132" // info.Bck01 = "48" // info.Vaa07 = int64(li.Vaa07) // info.Vaa01 = int64(li.Vaa01) // info.Vaa05 = li.Vaa05 // info.Bce01a = doctor_info.DoctorNumber // // for _, item := range customs { // var cha models.ChargeListtwo // cnt, _ := strconv.ParseFloat(item.Cut, 64) // // Bby01, _ := strconv.ParseInt(item.Bby01, 10, 64) // // cha.Bby01 = Bby01 // cha.Vaj25 = cnt // info.ChargeListtwo = append(info.ChargeListtwo, &cha) // } // // // // // // //var del_ids []string // // // // // ////信息 // var is_upload_success bool = true // var curpage int // var pagesize int = 8 // var start int = 1 // var stop int // var zuobiao_ids string // var err_msg string // var idss []int64 // // //pagecount := 10 // pagecount := int(math.Ceil(float64(len(prescriptions)) / float64(pagesize))) // // for curpage = 1; curpage <= pagecount; curpage++ { // var root models.Root // var tradeInfo models.TradeInfo // var cBM1 models.CBM1 // var vAF1 models.VAF1 // var vAO1 models.VAO1 // var vBQ1 models.VBQ1 // // if li.Acf01 == 1 { // tradeInfo.PatSource = 1 // tradeInfo.Type = 0 // } else { // tradeInfo.PatSource = 2 // tradeInfo.Type = 1 // // } // tradeInfo.Detpid = departmwnt.Number // tradeInfo.Empid = doctor_info.DoctorNumber // tradeInfo.Empno = doctor_info.DoctorCode // tradeInfo.Empname = doctor_info.UserName // root.TradeInfo = tradeInfo // // if curpage == 1 { // start = 1 // } else { // start = (curpage-1)*pagesize + 1 // } // stop = curpage * pagesize // if stop > len(prescriptions) { // stop = len(prescriptions) // } // // var ids []int64 // // for _, item := range prescriptions[start-1 : stop] { // ids = append(ids, item.ID) // } // // for _, item := range prescriptions[start-1 : stop] { // departmwnt_two, _ := service.GetDepartMentDetail(item.VMHisPrescriptionInfo.Departments) // var ie_cbm1 models.IEone // ie_cbm1.CBMID = strconv.FormatInt(item.ID, 10) // ie_cbm1.VAA01 = strconv.FormatInt(int64(li.Vaa01), 10) // ie_cbm1.VAA07 = strconv.FormatInt(int64(li.Vaa07), 10) // ie_cbm1.ACF01 = strconv.FormatInt(int64(li.Acf01), 10) // //ie_cbm1.CBM06 = strconv.FormatInt(int64(res.List[0].Acf01), 10) // // if li.Acf01 == 1 { // ie_cbm1.CBM06 = item.MedType // ie_cbm1.BCK01A = "0" // } else { // ie_cbm1.CBM06 = "0" // ie_cbm1.BCK01A = strconv.FormatInt(int64(li.Bck01A), 10) //病区id // } // ie_cbm1.CBM07 = item.MedType // ie_cbm1.BCK01B = strconv.FormatInt(int64(li.Bck01B), 10) // ie_cbm1.BCK01C = departmwnt_two.Number // ie_cbm1.CBM19 = "0" // cBM1.Ie = append(cBM1.Ie, ie_cbm1) // } // root.CBM1 = cBM1 // ////医嘱 // for _, item := range prescriptions[start-1 : stop] { // departmwnt_two, _ := service.GetDepartMentDetail(item.VMHisPrescriptionInfo.Departments) // // if item.Type == 1 { // //组号去重 // //temphisDoctorAdviceInfo := RemoveRepeatedPurviewElementdoctoradvice(item.HisDoctorAdviceInfo) // // // 使用 map 来存储 groupno 的数量 // //groupCount := make(map[int64]int64) // // // 使用 map 来存储 groupno 的数量和最后一条数据的索引 // groupInfo := make(map[int64]struct { // Count int64 // LastElement int // }) // // // 遍历切片,计算 groupno 的数量和最后一条数据的索引 // for i, obj := range item.HisDoctorAdviceInfo { // info, ok := groupInfo[obj.Groupno] // if !ok { // info = struct { // Count int64 // LastElement int // }{} // } // info.Count++ // info.LastElement = i // groupInfo[obj.Groupno] = info // } // // // 根据 groupno 的数量设置字段值 // for i, obj := range item.HisDoctorAdviceInfo { // info := groupInfo[obj.Groupno] // if info.Count < 2 { // item.HisDoctorAdviceInfo[i].NewGroupno = strconv.FormatInt(int64(1), 10) // } else { // // 对于数量大于等于 2 的,将最后一条数据设置 1,其他设置为随机数 // if i == info.LastElement { // item.HisDoctorAdviceInfo[i].NewGroupno = strconv.FormatInt(int64(1), 10) // } else { // item.HisDoctorAdviceInfo[i].NewGroupno = strconv.FormatInt(obj.ID, 10) // } // } // } // // for _, subitem := range item.HisDoctorAdviceInfo { // var ie_cbm1 models.IEtwo // ie_cbm1.CBMID = strconv.FormatInt(int64(item.ID), 10) // ie_cbm1.VAF04 = strconv.FormatInt(int64(li.Acf01), 10) // ie_cbm1.VAA01 = strconv.FormatInt(int64(li.Vaa01), 10) // ie_cbm1.VAF06 = strconv.FormatInt(int64(li.Vaa07), 10) // ie_cbm1.BCK01A = strconv.FormatInt(int64(li.Bck01A), 10) // ie_cbm1.ROWNR = subitem.NewGroupno // ie_cbm1.VAF10 = "1" // ie_cbm1.VAF11 = "2" // ie_cbm1.BDA01 = "1" //诊疗类型 // ie_cbm1.BBX01 = subitem.BaseDrugLib.ZuobiaoId // ie_cbm1.VAF14 = "" //检验样本类型 // ie_cbm1.VAF15 = "" // ie_cbm1.BBY01 = subitem.BaseDrugLib.Bby01 //药品规格id或材料规格id // // if li.Acf01 == 1 { // ie_cbm1.VAF17 = strconv.FormatInt(int64(subitem.Day), 10) // // } else { // ie_cbm1.VAF17 = "0" // // } // // ie_cbm1.VAF18 = fmt.Sprintf("%.2f", subitem.SingleDose) //药品规格id或材料规格id // ie_cbm1.VAF19 = fmt.Sprintf("%.2f", subitem.SingleDose) + " " + subitem.SingleDoseUnit //药品规格id或材料规格id // ie_cbm1.VAF20 = fmt.Sprintf("%.2f", subitem.SingleDose) // ie_cbm1.VAF21 = fmt.Sprintf("%.2f", subitem.PrescribingNumber) // // ie_cbm1.VAF22 = subitem.AdviceName + " " + subitem.BaseDrugLib.DrugSpec // ie_cbm1.Crypt = "0" // ie_cbm1.VAF23 = "" // ie_cbm1.BCK01B = subitem.BaseDrugLib.Bck01b // ie_cbm1.VAF26 = subitem.ExecutionFrequency // ie_cbm1.VAF27 = "1" // ie_cbm1.VAF28 = "1" // ie_cbm1.VAF29 = "1" // // ie_cbm1.VAF30 = "" // ie_cbm1.VAF31 = "0" // // ie_cbm1.VAF32 = "0" //todo // ie_cbm1.VAF33 = "0" // ie_cbm1.VAF34 = "0" // ie_cbm1.VAF35 = "0" // // tempTime1 := time.Unix(subitem.StartTime, 0) // timeFormatOne := tempTime1.Format("2006-01-02 15:04:05") // ie_cbm1.VAF36 = timeFormatOne // ie_cbm1.VAF37 = "1899-12-30" // doctor_info, _ := service.GetAdminUserInfoByID(org_id, item.Creator) // ie_cbm1.BCK01C = departmwnt_two.Number // // ie_cbm1.BCE02A = doctor_info.DoctorCode // ie_cbm1.BCE03A = doctor_info.UserName // ie_cbm1.BCE03B = "" // // ie_cbm1.VAF53 = "-1" // ie_cbm1.VAF55 = subitem.Remark // ie_cbm1.BCK01D = departmwnt_two.Number // ie_cbm1.VAF58 = "0" // ie_cbm1.VAF59 = strconv.FormatInt(int64(subitem.Groupno), 10) // ie_cbm1.VAF60 = "" // ie_cbm1.VAF61 = "1" // ie_cbm1.VAF62 = "0" // ie_cbm1.LSign = "0" // ie_cbm1.BDA01A = ie_cbm1.BDA01 // ie_cbm1.LRoute = "0" // ie_cbm1.BCE01A = doctor_info.DoctorNumber // ie_cbm1.BCE01B = "0" // // ie_cbm1.VAF01B = "0" // ie_cbm1.VCO01 = "0" // ie_cbm1.BCE01H = "0" // ie_cbm1.BCE03H = "" // ie_cbm1.BIW02 = "" // ie_cbm1.RCurrent = "0" // ie_cbm1.FCheck = "0" // ie_cbm1.UnameA = "" // ie_cbm1.VEH02 = "" // vAF1.Ie = append(vAF1.Ie, ie_cbm1) // } // // hisDoctorAdviceInfo := RemoveRepeatedPurviewElementdoctoradvice(item.HisDoctorAdviceInfo) // // //每种药品下的给药途径 // for _, subitem := range hisDoctorAdviceInfo { // way, _ := service.GetDrugwayDicByName(subitem.DeliveryWay, c.GetAdminUserInfo().CurrentOrgId) // var ie_cbm1 models.IEtwo // ie_cbm1.CBMID = strconv.FormatInt(int64(item.ID), 10) // ie_cbm1.VAF04 = strconv.FormatInt(int64(li.Acf01), 10) // ie_cbm1.VAA01 = strconv.FormatInt(int64(li.Vaa01), 10) // ie_cbm1.VAF06 = strconv.FormatInt(int64(li.Vaa07), 10) // ie_cbm1.BCK01A = strconv.FormatInt(int64(li.Bck01A), 10) // ie_cbm1.ROWNR = "0" // ie_cbm1.VAF10 = "1" // ie_cbm1.VAF11 = "2" // ie_cbm1.BDA01 = "T" //诊疗类型 // ie_cbm1.BBX01 = way.Code // ie_cbm1.VAF14 = "" //检验样本类型 // ie_cbm1.VAF15 = "" //检验样本类型 // ie_cbm1.BBY01 = way.Bby01 //药品规格id或材料规格id // if li.Acf01 == 1 { // ie_cbm1.VAF17 = strconv.FormatInt(int64(subitem.Day), 10) //药品规格id或材料规格id // } else { // ie_cbm1.VAF17 = "0" //药品规格id或材料规格id // } // // ie_cbm1.VAF18 = fmt.Sprintf("%.2f", subitem.SingleDose) //药品规格id或材料规格id // ie_cbm1.VAF19 = fmt.Sprintf("%.2f", subitem.SingleDose) + " " + subitem.SingleDoseUnit //药品规格id或材料规格id // ie_cbm1.VAF20 = fmt.Sprintf("%.2f", subitem.SingleDose) // //ie_cbm1.VAF21 = fmt.Sprintf("%.2f",subitem.PrescribingNumber) // // //ie_cbm1.VAF18 = "" //药品规格id或材料规格id // //ie_cbm1.VAF19 = "" // //ie_cbm1.VAF20 = "" // if subitem.DrugWayCount == "" { // ie_cbm1.VAF21 = "1" // // } else { // ie_cbm1.VAF21 = subitem.DrugWayCount // // } // // ie_cbm1.VAF22 = way.Name // ie_cbm1.Crypt = "0" // ie_cbm1.VAF23 = "" // ie_cbm1.BCK01B = subitem.BaseDrugLib.Bck01b // ie_cbm1.VAF26 = subitem.ExecutionFrequency // ie_cbm1.VAF27 = "1" // ie_cbm1.VAF28 = "1" // ie_cbm1.VAF29 = "1" // ie_cbm1.BCK01C = departmwnt_two.Number // // ie_cbm1.VAF30 = "" // ie_cbm1.VAF31 = "0" // // ie_cbm1.VAF32 = "1" //todo // ie_cbm1.VAF33 = "0" // ie_cbm1.VAF34 = "0" // ie_cbm1.VAF35 = "0" // // tempTime1 := time.Unix(subitem.StartTime, 0) // timeFormatOne := tempTime1.Format("2006-01-02 15:04:05") // ie_cbm1.VAF36 = timeFormatOne // ie_cbm1.VAF37 = "1899-12-30" // doctor_info, _ := service.GetAdminUserInfoByID(org_id, item.Creator) // // ie_cbm1.BCE02A = doctor_info.DoctorCode // ie_cbm1.BCE03A = doctor_info.UserName // ie_cbm1.BCE03B = "" // // ie_cbm1.VAF53 = "-1" // ie_cbm1.VAF55 = subitem.Remark // ie_cbm1.BCK01D = departmwnt_two.Number // ie_cbm1.VAF58 = "0" // ie_cbm1.VAF59 = strconv.FormatInt(int64(subitem.Groupno), 10) // // ie_cbm1.VAF60 = "" // ie_cbm1.VAF61 = "1" // ie_cbm1.VAF62 = "0" // ie_cbm1.LSign = "0" // ie_cbm1.BDA01A = ie_cbm1.BDA01 // ie_cbm1.LRoute = "0" // ie_cbm1.BCE01A = doctor_info.DoctorNumber // ie_cbm1.BCE01B = "0" // // ie_cbm1.VAF01B = "0" // ie_cbm1.VCO01 = "0" // ie_cbm1.BCE01H = "0" // ie_cbm1.BCE03H = "" // ie_cbm1.BIW02 = "" // ie_cbm1.RCurrent = "0" // ie_cbm1.FCheck = "0" // ie_cbm1.UnameA = "" // ie_cbm1.VEH02 = "" // ie_cbm1.VAF07 = "0" // vAF1.Ie = append(vAF1.Ie, ie_cbm1) // } // // } else if item.Type == 2 { // for index, subitem := range item.HisPrescriptionProject { // if subitem.Type == 2 { // if subitem.HisProject.CostClassify != 3 { // var ie_cbm1 models.IEtwo // ie_cbm1.CBMID = strconv.FormatInt(int64(item.ID), 10) // ie_cbm1.VAF04 = strconv.FormatInt(int64(li.Acf01), 10) // ie_cbm1.VAA01 = strconv.FormatInt(int64(li.Vaa01), 10) // ie_cbm1.VAF06 = strconv.FormatInt(int64(li.Vaa07), 10) // ie_cbm1.BCK01A = strconv.FormatInt(int64(li.Bck01A), 10) // ie_cbm1.ROWNR = strconv.FormatInt(int64(index+1), 10) // ie_cbm1.VAF10 = "1" // ie_cbm1.VAF11 = "2" // ie_cbm1.BDA01 = "T" //诊疗类型 // ie_cbm1.BBX01 = subitem.HisProject.ZuobiaoId // ie_cbm1.VAF14 = "" //检验样本类型 // ie_cbm1.VAF15 = "" //检验样本类型 // ie_cbm1.BBY01 = subitem.HisProject.Bby01 //药品规格id或材料规格id // if li.Acf01 == 1 { // ie_cbm1.VAF17 = subitem.Day //药品规格id或材料规格id // if len(subitem.Day) == 0 { // ie_cbm1.VAF17 = "1" // } // // } else { // ie_cbm1.VAF17 = "0" //药品规格id或材料规格idn // } // if subitem.SingleDose == "" { // // subitem.SingleDose = "1" // } // // ie_cbm1.VAF18 = subitem.SingleDose //药品规格id或材料规格id // ie_cbm1.VAF19 = subitem.SingleDose + " " + subitem.Unit //药品规格id或材料规格id // ie_cbm1.VAF20 = subitem.SingleDose // ie_cbm1.VAF21 = subitem.Count // // ie_cbm1.VAF22 = subitem.HisProject.ProjectName // ie_cbm1.Crypt = "0" // ie_cbm1.VAF23 = "" // ie_cbm1.BCK01B = subitem.HisProject.Bck01b // ie_cbm1.VAF26 = subitem.ExecutionFrequency // ie_cbm1.VAF27 = "1" // ie_cbm1.VAF28 = "1" // ie_cbm1.VAF29 = "" // ie_cbm1.BCK01C = departmwnt_two.Number // // ie_cbm1.VAF30 = "" // ie_cbm1.VAF31 = "0" // // ie_cbm1.VAF32 = "0" //todo // ie_cbm1.VAF33 = "0" // ie_cbm1.VAF34 = "0" // ie_cbm1.VAF35 = "0" // // tempTime1 := time.Unix(subitem.StartTime, 0) // timeFormatOne := tempTime1.Format("2006-01-02 15:04:05") // ie_cbm1.VAF36 = timeFormatOne // ie_cbm1.VAF37 = "1899-12-30" // doctor_info, _ := service.GetAdminUserInfoByID(org_id, item.Creator) // // ie_cbm1.BCE02A = doctor_info.DoctorCode // ie_cbm1.BCE03A = doctor_info.UserName // ie_cbm1.BCE03B = "" // // ie_cbm1.VAF53 = "-1" // ie_cbm1.VAF55 = subitem.Remark // ie_cbm1.BCK01D = departmwnt_two.Number // ie_cbm1.VAF58 = "0" // ie_cbm1.VAF59 = strconv.FormatInt(int64(index+1), 10) // // ie_cbm1.VAF60 = "" // ie_cbm1.VAF61 = "1" // ie_cbm1.VAF62 = "0" // ie_cbm1.LSign = "0" // ie_cbm1.BDA01A = "" //诊疗类型 // ie_cbm1.LRoute = "0" // ie_cbm1.BCE01A = doctor_info.DoctorNumber // // //ie_cbm1.BCE01A = doctor_info.UserName // ie_cbm1.BCE01B = "0" // // ie_cbm1.VAF01B = "0" // ie_cbm1.VCO01 = "0" // ie_cbm1.BCE01H = "0" // ie_cbm1.BCE03H = "" // ie_cbm1.BIW02 = "" // ie_cbm1.RCurrent = "0" // ie_cbm1.FCheck = "0" // ie_cbm1.UnameA = "" // ie_cbm1.VAF07 = "0" // // ie_cbm1.VEH02 = "" // vAF1.Ie = append(vAF1.Ie, ie_cbm1) // } // if subitem.HisProject.CostClassify == 3 { // var ie_cbm1 models.IEtwo // ie_cbm1.CBMID = strconv.FormatInt(int64(item.ID), 10) // ie_cbm1.VAF04 = strconv.FormatInt(int64(li.Acf01), 10) // ie_cbm1.VAA01 = strconv.FormatInt(int64(li.Vaa01), 10) // ie_cbm1.VAF06 = strconv.FormatInt(int64(li.Vaa07), 10) // ie_cbm1.BCK01A = strconv.FormatInt(int64(li.Bck01A), 10) // ie_cbm1.ROWNR = strconv.FormatInt(int64(index+1), 10) // ie_cbm1.VAF10 = "1" // ie_cbm1.VAF11 = "2" // ie_cbm1.BDA01 = "L" //诊疗类型 // ie_cbm1.BBX01 = subitem.HisProject.ZuobiaoId // ie_cbm1.VAF14 = "" //检验样本类型 // ie_cbm1.VAF15 = "" //检验样本类型 // ie_cbm1.BBY01 = subitem.HisProject.Bby01 //药品规格id或材料规格id // if li.Acf01 == 1 { // ie_cbm1.VAF17 = subitem.Day //药品规格id或材料规格id // } else { // ie_cbm1.VAF17 = "0" //药品规格id或材料规格idn // } // if subitem.SingleDose == "" { // // subitem.SingleDose = "1" // } // // ie_cbm1.VAF18 = subitem.SingleDose //药品规格id或材料规格id // ie_cbm1.VAF19 = subitem.SingleDose + " " + subitem.Unit //药品规格id或材料规格id // ie_cbm1.VAF20 = subitem.SingleDose // ie_cbm1.VAF21 = subitem.Count // // ie_cbm1.VAF22 = subitem.HisProject.ProjectName // ie_cbm1.Crypt = "0" // ie_cbm1.VAF23 = "" // ie_cbm1.BCK01B = subitem.HisProject.Bck01b // ie_cbm1.VAF26 = subitem.ExecutionFrequency // ie_cbm1.VAF27 = "1" // ie_cbm1.VAF28 = "1" // ie_cbm1.VAF29 = "" // ie_cbm1.BCK01C = departmwnt_two.Number // ie_cbm1.VAF30 = "" // ie_cbm1.VAF31 = "0" // ie_cbm1.VAF32 = "0" //todo // ie_cbm1.VAF33 = "0" // ie_cbm1.VAF34 = "0" // ie_cbm1.VAF35 = "0" // tempTime1 := time.Unix(subitem.StartTime, 0) // timeFormatOne := tempTime1.Format("2006-01-02 15:04:05") // ie_cbm1.VAF36 = timeFormatOne // ie_cbm1.VAF37 = "1899-12-30" // doctor_info, _ := service.GetAdminUserInfoByID(org_id, item.Creator) // // ie_cbm1.BCE02A = doctor_info.DoctorCode // ie_cbm1.BCE03A = doctor_info.UserName // ie_cbm1.BCE03B = "" // // ie_cbm1.VAF53 = "-1" // ie_cbm1.VAF55 = subitem.Remark // ie_cbm1.BCK01D = departmwnt_two.Number // ie_cbm1.VAF58 = "0" // ie_cbm1.VAF59 = strconv.FormatInt(int64(index+1), 10) // // ie_cbm1.VAF60 = "" // ie_cbm1.VAF61 = "1" // ie_cbm1.VAF62 = "0" // ie_cbm1.LSign = "0" // ie_cbm1.BDA01A = "" //诊疗类型 // ie_cbm1.LRoute = "0" // ie_cbm1.BCE01A = doctor_info.DoctorNumber // ie_cbm1.VAF07 = "0" // // //ie_cbm1.BCE01A = doctor_info.UserName // ie_cbm1.BCE01B = "0" // // ie_cbm1.VAF01B = "0" // ie_cbm1.VCO01 = "0" // ie_cbm1.BCE01H = "0" // ie_cbm1.BCE03H = "" // ie_cbm1.BIW02 = "" // ie_cbm1.RCurrent = "0" // ie_cbm1.FCheck = "0" // ie_cbm1.UnameA = "" // ie_cbm1.VEH02 = "" // vAF1.Ie = append(vAF1.Ie, ie_cbm1) // } // // } else if subitem.Type == 3 { // var ie_cbm1 models.IEtwo // ie_cbm1.CBMID = strconv.FormatInt(int64(item.ID), 10) // ie_cbm1.VAF04 = strconv.FormatInt(int64(li.Acf01), 10) // ie_cbm1.VAA01 = strconv.FormatInt(int64(li.Vaa01), 10) // ie_cbm1.VAF06 = strconv.FormatInt(int64(li.Vaa07), 10) // ie_cbm1.BCK01A = strconv.FormatInt(int64(li.Bck01A), 10) // ie_cbm1.ROWNR = strconv.FormatInt(int64(index+1), 10) // // ie_cbm1.VAF10 = "1" // ie_cbm1.VAF11 = "2" // ie_cbm1.BDA01 = "4" //诊疗类型 // ie_cbm1.BBX01 = subitem.GoodInfo.ZuobiaoId // ie_cbm1.VAF14 = "" //检验样本类型 // ie_cbm1.VAF15 = "" //检验样本类型 // ie_cbm1.BBY01 = subitem.GoodInfo.Bby01 //药品规格id或材料规格id // if li.Acf01 == 1 { // ie_cbm1.VAF17 = subitem.Day //药品规格id或材料规格id // if len(subitem.Day) == 0 { // ie_cbm1.VAF17 = "1" // } // // } else { // ie_cbm1.VAF17 = "0" //药品规格id或材料规格idn // } // if subitem.SingleDose == "" { // // subitem.SingleDose = "1" // } // // ie_cbm1.VAF18 = subitem.SingleDose //药品规格id或材料规格id // ie_cbm1.VAF19 = subitem.SingleDose + " " + subitem.Unit //药品规格id或材料规格id // ie_cbm1.VAF20 = subitem.SingleDose // ie_cbm1.VAF21 = subitem.Count // ie_cbm1.BCK01C = departmwnt_two.Number // // ie_cbm1.VAF22 = subitem.GoodInfo.GoodName + " " + subitem.GoodInfo.SpecificationName // ie_cbm1.Crypt = "0" // ie_cbm1.VAF23 = "" // ie_cbm1.BCK01B = subitem.GoodInfo.Bck01b // ie_cbm1.VAF26 = subitem.ExecutionFrequency // ie_cbm1.VAF27 = "1" // ie_cbm1.VAF28 = "1" // ie_cbm1.VAF29 = "" // ie_cbm1.VAF07 = "0" // // ie_cbm1.VAF30 = "" // ie_cbm1.VAF31 = "0" // // ie_cbm1.VAF32 = "0" //todo // ie_cbm1.VAF33 = "0" // ie_cbm1.VAF34 = "0" // ie_cbm1.VAF35 = "0" // // tempTime1 := time.Unix(subitem.StartTime, 0) // timeFormatOne := tempTime1.Format("2006-01-02 15:04:05") // ie_cbm1.VAF36 = timeFormatOne // ie_cbm1.VAF37 = "1899-12-30" // doctor_info, _ := service.GetAdminUserInfoByID(org_id, item.Creator) // // ie_cbm1.BCE02A = doctor_info.DoctorCode // ie_cbm1.BCE03A = doctor_info.UserName // ie_cbm1.BCE03B = "" // ie_cbm1.BCK01C = departmwnt_two.Number // // ie_cbm1.VAF53 = "-1" // ie_cbm1.VAF55 = subitem.Remark // ie_cbm1.BCK01D = departmwnt_two.Number // ie_cbm1.VAF58 = "0" // ie_cbm1.VAF59 = strconv.FormatInt(int64(index+1), 10) // ie_cbm1.VAF60 = "" // ie_cbm1.VAF61 = "1" // ie_cbm1.VAF62 = "0" // ie_cbm1.LSign = "0" // ie_cbm1.BDA01A = "" //诊疗类型 // ie_cbm1.LRoute = "0" // ie_cbm1.BCE01A = doctor_info.DoctorNumber // ie_cbm1.BCE01B = "0" // ie_cbm1.VAF01B = "0" // ie_cbm1.VCO01 = "0" // ie_cbm1.BCE01H = "0" // ie_cbm1.BCE03H = "" // ie_cbm1.BIW02 = "" // ie_cbm1.RCurrent = "0" // ie_cbm1.FCheck = "0" // ie_cbm1.UnameA = "" // ie_cbm1.VEH02 = "" // vAF1.Ie = append(vAF1.Ie, ie_cbm1) // } // } // } // // } // root.VAF1 = vAF1 // for _, item := range prescriptions[start-1 : stop] { // sick, _ := service.FindSickById(sick_type) // // dias := strings.Split(item.VMHisPrescriptionInfo.Diagnosis, ",") // //service.get // // //诊断 // for index, subitem := range dias { // diagnosisConfig, _ := service.FindDiagnoseByIdtwo(subitem) // if index == 0 { // var ie_cbm1 models.IEthree // ie_cbm1.CBMID = strconv.FormatInt(int64(item.ID), 10) // ie_cbm1.VAA01 = strconv.FormatInt(int64(li.Vaa01), 10) // ie_cbm1.VAA07 = strconv.FormatInt(int64(li.Vaa07), 10) // ie_cbm1.ACF01 = strconv.FormatInt(int64(li.Acf01), 10) // ie_cbm1.VAO06 = strconv.FormatInt(int64(index+1), 10) // ie_cbm1.VAO07 = "1" // ie_cbm1.VAO10 = "0" // ie_cbm1.VAO11 = "1" // ie_cbm1.BAK01A = sick.ContentCode // ie_cbm1.CAM01 = diagnosisConfig.ContentCode // ie_cbm1.VAO15 = diagnosisConfig.ClassName // ie_cbm1.VAO18 = "0" // ie_cbm1.VAO22 = "1" // ie_cbm1.IAA01 = "" // ie_cbm1.IAD03 = "" // ie_cbm1.BAK01B = "" // ie_cbm1.VAO26 = "" // ie_cbm1.IAD04 = "" // ie_cbm1.IAD01 = "" // ie_cbm1.VAO25 = "1" // ie_cbm1.VAO35 = "" // vAO1.Ie = append(vAO1.Ie, ie_cbm1) // // } else { // var ie_cbm1 models.IEthree // ie_cbm1.CBMID = strconv.FormatInt(int64(item.ID), 10) // ie_cbm1.VAA01 = strconv.FormatInt(int64(li.Vaa01), 10) // ie_cbm1.VAA07 = strconv.FormatInt(int64(li.Vaa07), 10) // ie_cbm1.ACF01 = strconv.FormatInt(int64(li.Acf01), 10) // ie_cbm1.VAO06 = strconv.FormatInt(int64(index+1), 10) // ie_cbm1.VAO07 = "1" // ie_cbm1.VAO10 = "0" // ie_cbm1.VAO11 = "1" // ie_cbm1.BAK01A = sick.ContentCode // ie_cbm1.CAM01 = diagnosisConfig.ContentCode // ie_cbm1.VAO15 = diagnosisConfig.ClassName // ie_cbm1.VAO18 = "0" // ie_cbm1.VAO22 = "1" // ie_cbm1.IAA01 = "" // ie_cbm1.IAD03 = "" // ie_cbm1.BAK01B = "" // ie_cbm1.VAO26 = "" // ie_cbm1.IAD04 = "" // ie_cbm1.IAD01 = "" // ie_cbm1.VAO25 = "2" // ie_cbm1.VAO35 = "" // vAO1.Ie = append(vAO1.Ie, ie_cbm1) // } // } // } // //// // //////检验检查医嘱 // //for _, item := range prescriptions{ // // fmt.Println("6666666666666") // // if item.Type == 2{ // // for _, subitem := range item.HisPrescriptionProject { // // if subitem.Type == 2{ // // if subitem.HisProject.CostClassify == 3 { // // var ie_cbm1 models.IEfour // // ie_cbm1.VBQ01 = strconv.FormatInt(int64(item.ID), 10) // // ie_cbm1.VAA01 = strconv.FormatInt(int64(li.Vaa01), 10) // // ie_cbm1.VAA07 = strconv.FormatInt(int64(li.Vaa07), 10) // // ie_cbm1.ACF01 = strconv.FormatInt(int64(li.Acf01), 10) // // ie_cbm1.VAP01 = "0" // // ie_cbm1.VBQ07 = "0" // // ie_cbm1.BCK01A = departmwnt.Number // // ie_cbm1.BCK01B= "0" // // ie_cbm1.BCE03A= "" // // ie_cbm1.BCE01A= "0" // // ie_cbm1.VBQ27= subitem.HisProject.ProjectName // // ie_cbm1.VBQ28= patientPrescription.Diagnosis // // ie_cbm1.VBQ29= "" // // ie_cbm1.VBQ30= "" // // vBQ1.Ie = append(vBQ1.Ie, ie_cbm1) // // } // // // // } // // // // } // // } // //} // // root.VAO1 = vAO1 // root.VBQ1 = vBQ1 // // xmlStr2, err := xml.MarshalIndent(root, "", " ") // if err != nil { // fmt.Println("转换为XML时发生错误:", err) // return // } // data := make(map[string]interface{}) // data["xmlStr"] = string(xmlStr2) // bytesData, _ := json.Marshal(data) // var req *http.Request // client := &http.Client{} // fmt.Println(string(xmlStr2)) // saveLog("", string(xmlStr2), "1111", "上传明细xml", "") // // req, _ = http.NewRequest("POST", "http://127.0.0.1:9532/"+"nmg/coordinate/upload", bytes.NewBufferString(string(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 // } // // respJSON3 := respJSON["data"].(map[string]interface{})["msg"].(string) // respJSON4 := respJSON["data"].(map[string]interface{})["res"].(string) // // if respJSON3 == "成功" { // // //if li.Acf01 != 1{ // // //记账 // // result2, request2 := service.NMGSettleForCoordinate(info) // // saveLog(result2, request2, "记账", "记账", org.OrgName) // // // // // // //data := make(map[string]interface{}) // // //data["info"] = &info // // // // // //fmt.Println(data) // // // // // //bytesData, _ := json.Marshal(data) // // //var req *http.Request // // // // // //client := &http.Client{} // // // // // //req, _ = http.NewRequest("POST", "http://192.168.100.199:9532/"+"nmg/coordinate/settle", 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{})["res"].(map[string]interface{}) // // //userJSONBytes, _ := json.Marshal(respJSON) // // // // // //var res2 ResultUpload2 // // //if err := json.Unmarshal(userJSONBytes, &res2); err != nil { // // // utils.ErrorLog("解析失败:%v", err) // // // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // // // return // // //} // // //if res2.Code == 500{ // // // c.ServeSuccessJSON(map[string]interface{}{ // // // "failed_code": -10, // // // "msg": res2.Msg, // // // }) // // // return // // //} // //} // if len(zuobiao_ids) == 0 { // zuobiao_ids = respJSON4 // } else { // zuobiao_ids = zuobiao_ids + "," + respJSON4 // } // // idss = append(idss, ids...) // // continue // // } else { // err_msg = respJSON3 // is_upload_success = false // if len(zuobiao_ids) > 0 { // tm := time.Unix(time.Now().Unix(), 0) // order := &models.HisOrder{ // PsnNo: strconv.FormatInt(int64(li.Vaa01), 10), // UserOrgId: org_id, // PatientId: patient_id, // SettleAccountsDate: recordDateTime, // Ctime: time.Now().Unix(), // Mtime: time.Now().Unix(), // Status: 1, // OrderStatus: 1, // MdtrtId: strconv.FormatInt(int64(li.Vaa07), 10), // Number: zuobiao_ids, // SetlId: zuobiao_ids, // MedfeeSumamt: total, // MedType: strconv.Itoa(int(reg_type)), // SettleType: settle_accounts_type, // Diagnosis: diagnosis_id, // PType: int64(li.Acf01), // SetlTime: tm.Format("2006-01-02 15:04:05"), // SettleStartTime: prescriptions[start-1 : stop][0].RecordDate, // SettleEndTime: prescriptions[start-1 : stop][len(prescriptions[start-1:stop])-1].RecordDate, // } // err = service.CreateOrder(order) // if err != nil { // //c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeCreateOrderException) // return // } // fmt.Println(idss) // err = service.UpDatePrescriptionNumber(org_id, idss, zuobiao_ids) // //err = service.UpDateHisPrescriptionInfoNumbertwo(org_id, patient_id, strconv.FormatInt(int64(li.Vaa07), 10), recordDateTime, his.ID) // err = service.UpdataOrderStatusThreef(zuobiao_ids, org_id) // // var zuobiao_advice models.HisZuobiaoAdvice // zuobiao_advice.Status = 1 // zuobiao_advice.RecordDate = recordDateTime // zuobiao_advice.PatientId = patient_id // zuobiao_advice.Cbm01 = zuobiao_ids // zuobiao_advice.Ctime = time.Now().Unix() // zuobiao_advice.Mtime = time.Now().Unix() // zuobiao_advice.Oid = order.ID // zuobiao_advice.StartTime = recordStartTime // zuobiao_advice.EndTime = recordEndTime // zuobiao_advice.Vaa01 = strconv.FormatInt(int64(li.Vaa01), 10) // zuobiao_advice.Vaa07 = strconv.FormatInt(int64(li.Vaa07), 10) // zuobiao_advice.UserOrgId = c.GetAdminUserInfo().CurrentOrgId // service.Createzuobiao(&zuobiao_advice) // } // } // if is_upload_success == false { // if len(zuobiao_ids) > 0 { // c.ServeSuccessJSON(map[string]interface{}{ // "failed_code": -10, // "msg": "部分处方数据上传成功,可在已上传或者在坐标系统查看。其余上传失败原因: " + err_msg, // }) // return // // } else { // c.ServeSuccessJSON(map[string]interface{}{ // "failed_code": -10, // "msg": err_msg, // }) // return // // } // // } // } // // if is_upload_success { // if len(zuobiao_ids) > 0 { // tm := time.Unix(time.Now().Unix(), 0) // order := &models.HisOrder{ // PsnNo: strconv.FormatInt(int64(li.Vaa01), 10), // UserOrgId: org_id, // PatientId: patient_id, // SettleAccountsDate: recordDateTime, // Ctime: time.Now().Unix(), // Mtime: time.Now().Unix(), // Status: 1, // OrderStatus: 1, // MdtrtId: strconv.FormatInt(int64(li.Vaa07), 10), // Number: zuobiao_ids, // SetlId: zuobiao_ids, // MedfeeSumamt: total, // MedType: strconv.Itoa(int(reg_type)), // SettleType: settle_accounts_type, // Diagnosis: diagnosis_id, // PType: int64(li.Acf01), // SetlTime: tm.Format("2006-01-02 15:04:05"), // SettleStartTime: prescriptions[start-1 : stop][0].RecordDate, // SettleEndTime: prescriptions[start-1 : stop][len(prescriptions[start-1:stop])-1].RecordDate, // } // err = service.CreateOrder(order) // if err != nil { // //c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeCreateOrderException) // return // } // err = service.UpDatePrescriptionNumber(org_id, idss, zuobiao_ids) // //err = service.UpDateHisPrescriptionInfoNumbertwo(org_id, patient_id, strconv.FormatInt(int64(li.Vaa07), 10), recordDateTime, his.ID) // err = service.UpdataOrderStatusThreef(zuobiao_ids, org_id) // // var zuobiao_advice models.HisZuobiaoAdvice // zuobiao_advice.Status = 1 // zuobiao_advice.RecordDate = recordDateTime // zuobiao_advice.PatientId = patient_id // zuobiao_advice.Cbm01 = zuobiao_ids // zuobiao_advice.Ctime = time.Now().Unix() // zuobiao_advice.Mtime = time.Now().Unix() // zuobiao_advice.Oid = order.ID // zuobiao_advice.StartTime = recordStartTime // zuobiao_advice.EndTime = recordEndTime // zuobiao_advice.Vaa01 = strconv.FormatInt(int64(li.Vaa01), 10) // zuobiao_advice.Vaa07 = strconv.FormatInt(int64(li.Vaa07), 10) // zuobiao_advice.UserOrgId = c.GetAdminUserInfo().CurrentOrgId // service.Createzuobiao(&zuobiao_advice) // } // // c.ServeSuccessJSON(map[string]interface{}{ // "msg": "上传成功", // }) // // } else { // c.ServeSuccessJSON(map[string]interface{}{ // "failed_code": -10, // "msg": err_msg, // }) // // } // // //zuobiao, _ := service.Getzuobiao(c.GetAdminUserInfo().CurrentOrgId, patient_id, recordDateTime) // // //is_success := true // //failed_mag := "" // //查询出对应的坐标系统医嘱id,先进行删除操作,在创建医嘱。如果没有医嘱id,则直接创建医嘱 // //if zuobiao.ID > 0 { // // cbm01s := strings.Split(zuobiao.Cbm01, ",") // // fmt.Println(cbm01s) // // // // for _, iditem := range cbm01s { // // fmt.Println(iditem) // // var root2 models.Root2 // // var tradeInfo2 models.TradeInfo // // if li.Acf01 == 1 { // // tradeInfo2.PatSource = 1 // // tradeInfo2.Type = 0 // // } else { // // tradeInfo2.PatSource = 2 // // tradeInfo2.Type = 1 // // // // } // // tradeInfo2.Detpid = departmwnt.Number // // tradeInfo2.Empid = doctor_info.DoctorNumber // // tradeInfo2.Empno = doctor_info.DoctorCode // // tradeInfo2.Empname = doctor_info.UserName // // var vaf01 models.VAF10 // // var ie1111 models.IEfive // // ie1111.VAF01 = iditem // // vaf01.Ie = append(vaf01.Ie, ie1111) // // root2.TradeInfo = tradeInfo2 // // root2.VAF1 = vaf01 // // xmlStr2, err := xml.MarshalIndent(root2, "", " ") // // if err != nil { // // fmt.Println("转换为XML时发生错误:", err) // // return // // } // // data := make(map[string]interface{}) // // data["xmlStr"] = string(xmlStr2) // // bytesData, _ := json.Marshal(data) // // client := &http.Client{} // // // // var req *http.Request // // // // // // req, _ = http.NewRequest("POST", "http://192.168.100.199:9532/"+"nmg/coordinate/del", 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 // // } // // // // respJSON2 := respJSON["data"].(map[string]interface{})["msg"].(string) // // fmt.Println( respJSON) // // fmt.Println( respJSON["data"].(map[string]interface{})) // // fmt.Println(respJSON2) // // // // if respJSON2 != "成功"{ // // //is_success = false // // failed_mag = respJSON2 // // } // // } // //} // // } else { // // c.ServeSuccessJSON(map[string]interface{}{ // "failed_code": -10, // "msg": res.Msg, // }) // } //} func classifyPrescriptions(prescriptions []models.HisPrescription) (drugPrescriptions, consumablePrescriptions []models.HisPrescription) { for _, prescription := range prescriptions { switch prescription.Type { case 1: drugPrescriptions = append(drugPrescriptions, prescription) case 2: consumablePrescriptions = append(consumablePrescriptions, prescription) } } return drugPrescriptions, consumablePrescriptions } func summarizePrescriptions(prescriptions []models.HisPrescription) []models.HisDoctorAdviceInfo { ungroupedDrugs := make([]models.HisDoctorAdviceInfo, 0) groupedPrescriptions := make([]models.HisPrescription, 0) for _, prescription := range prescriptions { groupedDrugsInPrescription, ungroupedDrugsInPrescription := splitDrugsByGroup(prescription.HisDoctorAdviceInfo) // 将没有同组药的药品汇总到一张处方 ungroupedDrugs = append(ungroupedDrugs, ungroupedDrugsInPrescription...) //将有同组药的每组药品拆分成一张处方 for _, group := range groupedDrugsInPrescription { fmt.Println("333333") fmt.Println(group) groupedPrescriptions = append(groupedPrescriptions, models.HisPrescription{ HisDoctorAdviceInfo: group, }) } } return ungroupedDrugs } func summarizePrescriptionsTwo(prescriptions []models.HisPrescription) []models.HisPrescription { //ungroupedDrugs := make([]models.HisDoctorAdviceInfo, 0) groupedPrescriptions := make([]models.HisPrescription, 0) for _, prescription := range prescriptions { groupedDrugsInPrescription, _ := splitDrugsByGroup(prescription.HisDoctorAdviceInfo) //fmt.Println("111111") //fmt.Println(len(ungroupedDrugsInPrescription)) //fmt.Println(len(groupedDrugsInPrescription)) // 将没有同组药的药品汇总到一张处方 //ungroupedDrugs = append(ungroupedDrugs, ungroupedDrugsInPrescription...) //将有同组药的每组药品拆分成一张处方 for _, group := range groupedDrugsInPrescription { groupedPrescriptions = append(groupedPrescriptions, models.HisPrescription{ HisDoctorAdviceInfo: group, }) } } return groupedPrescriptions } func splitDrugsByGroup(drugs []models.HisDoctorAdviceInfo) (groupedDrugs [][]models.HisDoctorAdviceInfo, ungroupedDrugs []models.HisDoctorAdviceInfo) { groups := make(map[int64][]models.HisDoctorAdviceInfo) // 将药品按照组号分组 for _, drug := range drugs { groups[drug.Groupno] = append(groups[drug.Groupno], drug) } // 遍历分组,将同组药和没有同组药的分开 for _, group := range groups { if len(group) > 1 { // 同组药 groupedDrugs = append(groupedDrugs, group) } else { // 没有同组药 ungroupedDrugs = append(ungroupedDrugs, group...) } } return groupedDrugs, ungroupedDrugs } //上传费用 func (c *CoordinateController) NMGSettleAccount() { patient_id, _ := c.GetInt64("patient_id") record_date := c.GetString("record_date") //admin_user_id, _ := c.GetInt64("admin_user_id") diagnosis_id := c.GetString("diagnosis") sick_type, _ := c.GetInt64("sick_type") reg_type, _ := c.GetInt64("p_type") org_id, _ := c.GetInt64("org_id") p_id, _ := c.GetInt64("p_id") charge_type, _ := c.GetInt64("charge_type") org_id = 10206 org, _ := service.GetOrgById(org_id) patient, _ := service.GetPatientByID(org.Id, patient_id) settle_accounts_type, _ := c.GetInt64("settle_accounts_type") var res8 Data var li ListItem if charge_type == 1{ res8 = NMGmenzhen(c, patient.Name) var res9 Data var res11 Data res9.List = append(res9.List, res8.List...) // 获取当前时间 //var maxTimestamp int64 // 定义一个变量来保存离当前时间最近的数据 //var closestData MyData //var closestTimeDiff time.Duration // 遍历切片,找到离当前时间最近的数据 //for _, data := range res9.List { // // 将时间字符串解析为 time.Time 类型 // timeObj, err := time.Parse("2006-01-02 15:04:05", data.Vae11) // if err != nil { // fmt.Println("时间解析错误:", err) // continue // } // // 获取时间戳 // timestamp := timeObj.Unix() // // 比较时间戳 // if timestamp > maxTimestamp { // maxTimestamp = timestamp // } //} // //fmt.Println(maxTimestamp) for _,item := range res9.List{ if item.Bck01B == 38{ res11.List = append(res11.List,item) } } sort.Slice(res11.List, func(i, j int) bool { // 将时间字符串解析为 time.Time 类型 timeObj1, err1 := time.Parse("2006-01-02 15:04:05", res11.List[i].Vae11) timeObj2, err2 := time.Parse("2006-01-02 15:04:05", res11.List[j].Vae11) // 错误处理 if err1 != nil || err2 != nil { fmt.Println("时间解析错误:", err1, err2) return false } // 比较时间 return timeObj1.Before(timeObj2) }) fmt.Println("按照时间排序qian的数据:", res11.List) cure_date := strings.Split(res11.List[len(res11.List)-1].Vae11, " ") // 将日期字符串解析为 time.Time 类型 date1, err := time.Parse("2006-01-02", cure_date[0]) if err != nil { fmt.Println("日期解析错误:", err) return } currentTime := time.Now() // 使用 Format 方法格式化输出为 yyyy-mm-dd formattedDate := currentTime.Format("2006-01-02") date2, err := time.Parse("2006-01-02", formattedDate) if err != nil { fmt.Println("日期解析错误:", err) return } duration := date2.Sub(date1) fmt.Println("cha:", duration) if duration.Hours() < 72 && patient.Name == res11.List[len(res11.List)-1].Vaa05 { li = res11.List[len(res11.List)-1] } }else{ res8 = NMGzhuyuan(c, patient.Name) var res10 Data //res9.List = append(res9.List, res.List...) res10.List = append(res10.List, res8.List...) layout := "2006-01-02 15:04:05" var maxDate time.Time for _, item := range res10.List { currentDate, err := time.Parse(layout, item.Vae11) if err != nil { fmt.Println("Error parsing date:", err) continue } if currentDate.After(maxDate) { maxDate = currentDate } if !maxDate.IsZero() { fmt.Println("The maximum date is:", maxDate.Format(layout)) } else { fmt.Println("No valid dates found") } } fmt.Println(maxDate.Format("2006-01-02 15:04:05")) for _, item := range res10.List { if item.Vae11 == maxDate.Format("2006-01-02 15:04:05") && patient.Name == item.Vaa05 { li = item } } } if res8.Code == 200 { 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 } org_id := org.Id recordDateTime := theTime.Unix() patientPrescription, _ := service.FindPatientPrescriptionInfoTwo(org_id, patient.ID, recordDateTime, 2) if patientPrescription.ID == 0 { patientPrescription, _ = service.FindLastPatientPrescriptionInfo(org_id, patient.ID, recordDateTime) } departmwnt, _ := service.GetDepartMentDetail(patientPrescription.Departments) //admin_user_info, _ := service.GetAdminUserInfoByID(org_id, admin_user_id) doctor_info, _ := service.GetAdminUserInfoByID(org_id, patientPrescription.DoctorId) var recordStartTime int64 var recordEndTime int64 var dias []string start_time_str := c.GetString("start_time") end_time_str := c.GetString("end_time") theStartTime, err := time.ParseInLocation(timeLayout+" 15:04:05", start_time_str+" 00:00:00", loc) if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } recordStartTime = theStartTime.Unix() theEndTime, err := time.ParseInLocation(timeLayout+" 15:04:05", end_time_str+" 00:00:00", loc) if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } recordEndTime = theEndTime.Unix() if settle_accounts_type == 1{ patientPrescription, _ := service.FindPatientPrescriptionInfoTwo(org_id, patient.ID, recordDateTime, 2) if patientPrescription.ID == 0 { patientPrescription, _ = service.FindLastPatientPrescriptionInfo(org_id, patient.ID, recordDateTime) } diass := strings.Split(patientPrescription.Diagnosis,",") for _, subdiaitem := range diass{ if subdiaitem != "716"{ dias = append(dias,subdiaitem) } } }else { var recordStartTime2 int64 var recordEndTime2 int64 start_time_str2 := c.GetString("start_time") end_time_str2 := c.GetString("end_time") theStartTime2, err := time.ParseInLocation(timeLayout+" 15:04:05", start_time_str2+" 00:00:00", loc) if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } recordStartTime2 = theStartTime2.Unix() theEndTime2, err := time.ParseInLocation(timeLayout+" 15:04:05", end_time_str2+" 00:00:00", loc) if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } recordEndTime2 = theEndTime2.Unix() patientPrescription, _ := service.FindPatientPrescriptionInfoThree(org_id, patient.ID, recordStartTime2, recordEndTime2, 2) for _, spinfo := range patientPrescription { fmt.Println(spinfo.Diagnosis) diass := strings.Split(spinfo.Diagnosis,",") fmt.Println(diass) for _, dia := range diass { fmt.Println(dia) if dia != "716" { dias = append(dias,dia) } } } } newArr := make([]string, 0) for i := 0; i < len(dias); i++ { repeat := false for j := i + 1; j < len(dias); j++ { if dias[i] == dias[j] { repeat = true break } } if !repeat { newArr = append(newArr, dias[i]) } } var prescriptions []models.HisPrescription if settle_accounts_type == 1 { //日结 prescriptions, _ = service.GetUnSettleHisPrescriptionFiveone(p_id) var total float64 var customs []*models.NewCustomTwo for _, item := range prescriptions { if item.Type == 1 { //药品 for _, subItem := range item.HisDoctorAdviceInfo { tempTime := time.Unix(item.PreTime, 0) //timeFormat := tempTime.Format("20060102150405") timeFormatOne := tempTime.Format("2006-01-02 15:04:05") cus := &models.NewCustomTwo{ AdviceId: subItem.ID, ProjectId: 0, DetItemFeeSumamt: fmt.Sprintf("%.4f", subItem.Price*subItem.PrescribingNumber), Cut: fmt.Sprintf("%.4f", subItem.PrescribingNumber), FeedetlSn: subItem.FeedetlSn, Price: fmt.Sprintf("%.2f", subItem.Price), MedListCodg: subItem.BaseDrugLib.MedicalInsuranceNumber, Type: 1, ItemId: subItem.BaseDrugLib.ZuobiaoId, StartTime: timeFormatOne, Content: subItem.AdviceName, Bby01: subItem.BaseDrugLib.Bby01, } customs = append(customs, cus) } } if item.Type == 2 { //项目 for _, subItem := range item.HisPrescriptionProject { if subItem.Type == 2 { tempTime := time.Unix(item.PreTime, 0) //timeFormat := tempTime.Format("20060102150405") timeFormatOne := tempTime.Format("2006-01-02 15:04:05") cnt, _ := strconv.ParseFloat(subItem.Count, 64) cus := &models.NewCustomTwo{ AdviceId: 0, ProjectId: subItem.ID, DetItemFeeSumamt: fmt.Sprintf("%.4f", subItem.Price*cnt), Cut: fmt.Sprintf("%.4f", cnt), FeedetlSn: subItem.FeedetlSn, Price: fmt.Sprintf("%.4f", float64(subItem.Price)), MedListCodg: subItem.HisProject.MedicalCode, Type: 2, ItemId: subItem.HisProject.ZuobiaoId, StartTime: timeFormatOne, Content: subItem.HisProject.ProjectName, Bby01: subItem.HisProject.Bby01, } customs = append(customs, cus) } else { tempTime := time.Unix(item.PreTime, 0) //timeFormat := tempTime.Format("20060102150405") timeFormatOne := tempTime.Format("2006-01-02 15:04:05") cnt, _ := strconv.ParseFloat(subItem.Count, 64) cus := &models.NewCustomTwo{ AdviceId: 0, ProjectId: subItem.ID, DetItemFeeSumamt: fmt.Sprintf("%.4f", subItem.Price*cnt), Cut: fmt.Sprintf("%.4f", cnt), FeedetlSn: subItem.FeedetlSn, Price: fmt.Sprintf("%.4f", float64(subItem.Price)), MedListCodg: subItem.GoodInfo.MedicalInsuranceNumber, Type: 3, ItemId: subItem.GoodInfo.ZuobiaoId, StartTime: timeFormatOne, Content: subItem.GoodInfo.GoodName, Bby01: subItem.GoodInfo.Bby01, } customs = append(customs, cus) } } } } for _, item := range prescriptions { if item.Type == 1 { //药品 for _, subItem := range item.HisDoctorAdviceInfo { price, _ := strconv.ParseFloat(fmt.Sprintf("%.2f", subItem.Price), 64) total_one := price * subItem.PrescribingNumber fmt.Println("subItem") fmt.Println(subItem.Price) fmt.Println("price") fmt.Println(price) fmt.Println("total_one") fmt.Println(total_one) total = total + total_one fmt.Println(total) } } if item.Type == 2 { //项目 for _, subItem := range item.HisPrescriptionProject { cnt, _ := strconv.ParseFloat(subItem.Count, 64) price, _ := strconv.ParseFloat(fmt.Sprintf("%.2f", subItem.Price), 64) total_one := price * cnt total = total + total_one } } } //allTotal := fmt.Sprintf("%2f", total) var info models.UploadInfo info.Acf01 = int64(li.Acf01) info.Bce01 = "132" info.Bck01 = "48" info.Vaa07 = int64(li.Vaa07) info.Vaa01 = int64(li.Vaa01) info.Vaa05 = li.Vaa05 info.Bce01a = doctor_info.DoctorNumber for _, item := range customs { var cha models.ChargeListtwo cnt, _ := strconv.ParseFloat(item.Cut, 64) Bby01, _ := strconv.ParseInt(item.Bby01, 10, 64) cha.Bby01 = Bby01 cha.Vaj25 = cnt info.ChargeListtwo = append(info.ChargeListtwo, &cha) } //日结处方进行拆分处理 var big_ps []models.HisPrescription drugPrescriptions, consumablePrescriptions := classifyPrescriptions(prescriptions) groupDrugPrescriptions := summarizePrescriptionsTwo(drugPrescriptions) //非没同组药品,汇总处理 var doc_two []models.HisDoctorAdviceInfo var doc []models.HisDoctorAdviceInfo doc = summarizePrescriptions(drugPrescriptions) fmt.Println(groupDrugPrescriptions) fmt.Println(doc) fmt.Println(consumablePrescriptions) var no_group_drug_ps models.HisPrescription no_group_drug_ps.MedType = "110" no_group_drug_ps.ID = int64(rand.Intn(90000) + 10000) no_group_drug_ps.Type = 1 for _ ,sumitem := range doc{ rand.Seed(time.Now().UnixNano()) // 生成4位随机数 randomNumber := rand.Intn(9000) + 1000 sumitem.Groupno = sumitem.Groupno + int64(randomNumber) //doc = append(doc, sumitem.HisDoctorAdviceInfo...) } doc_two = RemoveRepeatedPurviewElementdrug(doc) var dos []models.HisDoctorAdviceInfo for _, pro := range doc_two { var ppp models.HisDoctorAdviceInfo var count float64 var drugWayCount float64 for _, pro_two := range doc { if pro.BaseDrugLib.ZuobiaoId == pro_two.BaseDrugLib.ZuobiaoId && pro.BaseDrugLib.Bby01 == pro_two.BaseDrugLib.Bby01 && pro.DeliveryWay == pro_two.DeliveryWay { ppp = pro_two count = count + pro_two.PrescribingNumber if len(pro_two.DrugWayCount) == 0{ pro_two.DrugWayCount = "1" } result, _ := strconv.ParseFloat(pro_two.DrugWayCount, 64) drugWayCount = drugWayCount + result } } ppp.PrescribingNumber = count ppp.DrugWayCount = strconv.FormatFloat(drugWayCount, 'f', -1, 64) dos = append(dos, ppp) } if len(dos) > 0 { no_group_drug_ps.HisDoctorAdviceInfo = dos big_ps = append(big_ps, no_group_drug_ps) } //同组药品不需要进行汇总 for _, item := range groupDrugPrescriptions { if len(item.HisDoctorAdviceInfo) > 0 { var group_drug_ps models.HisPrescription group_drug_ps.MedType = "110" group_drug_ps.ID = int64(rand.Intn(90000) + 10000) group_drug_ps.Type = 1 group_drug_ps.HisDoctorAdviceInfo = item.HisDoctorAdviceInfo big_ps = append(big_ps, group_drug_ps) } } //耗材和项目汇总 var projects []models.HisPrescriptionProject var goods []models.HisPrescriptionProject var checks []models.HisPrescriptionProject var projects_two []models.HisPrescriptionProject var goods_two []models.HisPrescriptionProject for _, item := range consumablePrescriptions { for _, subitem := range item.HisPrescriptionProject { if subitem.Type == 2 { if subitem.HisProject.CostClassify == 3{ checks = append(checks, subitem) }else{ projects = append(projects, subitem) } } else if subitem.Type == 3 { goods = append(goods, subitem) } } } projects_two = RemoveRepeatedPurviewElementproject(projects) goods_two = RemoveRepeatedPurviewElementgood(goods) //checks_two = RemoveRepeatedPurviewElementgood(checks) var new_pros []models.HisPrescriptionProject var new_goods []models.HisPrescriptionProject var new_checks []models.HisPrescriptionProject for _, pro := range projects_two { var ppp models.HisPrescriptionProject var count float64 for _, pro_two := range projects { if pro.HisProject.ZuobiaoId == pro_two.HisProject.ZuobiaoId && pro.HisProject.Bby01 == pro_two.HisProject.Bby01 { ppp = pro_two result, _ := strconv.ParseFloat(pro_two.Count, 64) count = count + result } } ppp.Count = strconv.FormatFloat(count, 'f', -1, 64) new_pros = append(new_pros, ppp) } for _, good := range goods_two { var ppp models.HisPrescriptionProject var count float64 for _, good_two := range goods { if good.GoodInfo.ZuobiaoId == good_two.GoodInfo.ZuobiaoId && good.GoodInfo.Bby01 == good_two.GoodInfo.Bby01 { ppp = good_two result, _ := strconv.ParseFloat(good_two.Count, 64) count = count + result } } ppp.Count = strconv.FormatFloat(count, 'f', -1, 64) new_goods = append(new_goods, ppp) } for _, check := range checks { var ppp models.HisPrescriptionProject ppp = check ppp.Count = check.Count new_checks = append(new_checks, ppp) } if len(new_goods) > 0 { var ps1 models.HisPrescription ps1.MedType = "120" ps1.ID = int64(rand.Intn(90000) + 10000) ps1.Type = 2 ps1.HisPrescriptionProject = append(ps1.HisPrescriptionProject, new_goods...) big_ps = append(big_ps, ps1) } if len(new_pros) > 0 { var ps2 models.HisPrescription ps2.MedType = "130" ps2.Type = 2 ps2.ID = int64(rand.Intn(90000) + 10000) ps2.HisPrescriptionProject = append(ps2.HisPrescriptionProject, new_pros...) big_ps = append(big_ps, ps2) } if len(new_checks) > 0 { var ps3 models.HisPrescription ps3.MedType = "140" ps3.Type = 2 ps3.ID = int64(rand.Intn(90000) + 10000) ps3.HisPrescriptionProject = append(ps3.HisPrescriptionProject, new_checks...) big_ps = append(big_ps, ps3) } ////信息 var is_upload_success bool = true var curpage int var pagesize int = len(big_ps) var start int = 1 var stop int var zuobiao_ids string var err_msg string var idss []int64 //pagecount := 10 pagecount := int(math.Ceil(float64(len(big_ps)) / float64(pagesize))) for curpage = 1; curpage <= pagecount; curpage++ { var root models.Root var tradeInfo models.TradeInfo var cBM1 models.CBM1 var vAF1 models.VAF1 var vAO1 models.VAO1 var vBQ1 models.VBQ1 if li.Acf01 == 1 { tradeInfo.PatSource = 1 tradeInfo.Type = 0 } else { tradeInfo.PatSource = 2 tradeInfo.Type = 1 } tradeInfo.Detpid = departmwnt.Number tradeInfo.Empid = doctor_info.DoctorNumber tradeInfo.Empno = doctor_info.DoctorCode tradeInfo.Empname = doctor_info.UserName root.TradeInfo = tradeInfo if curpage == 1 { start = 1 } else { start = (curpage-1)*pagesize + 1 } stop = curpage * pagesize if stop > len(big_ps) { stop = len(big_ps) } //var ids []int64 // //for _, item := range prescriptions[start-1 : stop] { // ids = append(ids, item.ID) //} for _, item := range big_ps[start-1 : stop] { //departmwnt_two, _ := service.GetDepartMentDetail(item.VMHisPrescriptionInfo.Departments) var ie_cbm1 models.IEone ie_cbm1.CBMID = strconv.FormatInt(int64(item.ID), 10) ie_cbm1.VAA01 = strconv.FormatInt(int64(li.Vaa01), 10) ie_cbm1.VAA07 = strconv.FormatInt(int64(li.Vaa07), 10) ie_cbm1.ACF01 = strconv.FormatInt(int64(li.Acf01), 10) //ie_cbm1.CBM06 = strconv.FormatInt(int64(res.List[0].Acf01), 10) if li.Acf01 == 1 { if item.MedType == "140"{ ie_cbm1.CBM06 = "9" } if item.MedType == "110"{ ie_cbm1.CBM06 = "1" } if item.MedType == "120"{ ie_cbm1.CBM06 = "1" } if item.MedType == "130"{ ie_cbm1.CBM06 = "6" } ie_cbm1.BCK01A = "0" } else { ie_cbm1.CBM06 = "0" ie_cbm1.BCK01A = strconv.FormatInt(int64(li.Bck01B), 10) //病区id } if item.MedType == "140"{ ie_cbm1.CBM07 = "10" } if item.MedType == "110"{ ie_cbm1.CBM07 = "1" } if item.MedType == "120"{ ie_cbm1.CBM07 = "1" } if item.MedType == "130"{ ie_cbm1.CBM07 = "12" } ie_cbm1.BCK01B = strconv.FormatInt(int64(li.Bck01B), 10) ie_cbm1.BCK01C = "38" ie_cbm1.CBM19 = "0" cBM1.Ie = append(cBM1.Ie, ie_cbm1) } root.CBM1 = cBM1 ////医嘱 for _, item := range big_ps[start-1 : stop] { //departmwnt_two, _ := service.GetDepartMentDetail(item.VMHisPrescriptionInfo.Departments) if item.Type == 1 { //组号去重 //temphisDoctorAdviceInfo := RemoveRepeatedPurviewElementdoctoradvice(item.HisDoctorAdviceInfo) // 使用 map 来存储 groupno 的数量 //groupCount := make(map[int64]int64) // 使用 map 来存储 groupno 的数量和最后一条数据的索引 groupInfo := make(map[int64]struct { Count int64 LastElement int }) // 遍历切片,计算 groupno 的数量和最后一条数据的索引 for i, obj := range item.HisDoctorAdviceInfo { info, ok := groupInfo[obj.Groupno] if !ok { info = struct { Count int64 LastElement int }{} } info.Count++ info.LastElement = i groupInfo[obj.Groupno] = info } // 根据 groupno 的数量设置字段值 for i, obj := range item.HisDoctorAdviceInfo { info := groupInfo[obj.Groupno] if info.Count < 2 { item.HisDoctorAdviceInfo[i].NewGroupno = strconv.FormatInt(int64(1), 10) } else { // 对于数量大于等于 2 的,将最后一条数据设置 1,其他设置为随机数 if i == info.LastElement { item.HisDoctorAdviceInfo[i].NewGroupno = strconv.FormatInt(int64(1), 10) } else { item.HisDoctorAdviceInfo[i].NewGroupno = strconv.FormatInt(obj.ID, 10) } } } for _, subitem := range item.HisDoctorAdviceInfo { var ie_cbm1 models.IEtwo ie_cbm1.CBMID = strconv.FormatInt(int64(item.ID), 10) ie_cbm1.VAF04 = strconv.FormatInt(int64(li.Acf01), 10) ie_cbm1.VAA01 = strconv.FormatInt(int64(li.Vaa01), 10) ie_cbm1.VAF06 = strconv.FormatInt(int64(li.Vaa07), 10) ie_cbm1.BCK01A = strconv.FormatInt(int64(li.Bck01B), 10) ie_cbm1.ROWNR = subitem.NewGroupno ie_cbm1.VAF10 = "1" ie_cbm1.VAF11 = "2" ie_cbm1.BDA01 = "1" //诊疗类型 ie_cbm1.BBX01 = subitem.BaseDrugLib.ZuobiaoId ie_cbm1.VAF14 = "" //检验样本类型 ie_cbm1.VAF15 = "" ie_cbm1.BBY01 = subitem.BaseDrugLib.Bby01 //药品规格id或材料规格id if li.Acf01 == 1 { ie_cbm1.VAF17 = strconv.FormatInt(int64(subitem.Day), 10) } else { ie_cbm1.VAF17 = "0" } ie_cbm1.VAF18 = fmt.Sprintf("%.2f", subitem.SingleDose) //药品规格id或材料规格id ie_cbm1.VAF19 = fmt.Sprintf("%.2f", subitem.SingleDose) + " " + subitem.SingleDoseUnit //药品规格id或材料规格id ie_cbm1.VAF20 = fmt.Sprintf("%.2f", subitem.SingleDose) ie_cbm1.VAF21 = fmt.Sprintf("%.2f", subitem.PrescribingNumber) ie_cbm1.VAF22 = subitem.AdviceName + " " + subitem.BaseDrugLib.DrugSpec ie_cbm1.Crypt = "0" ie_cbm1.VAF23 = "" ie_cbm1.BCK01B = subitem.BaseDrugLib.Bck01b ie_cbm1.VAF26 = subitem.ExecutionFrequency ie_cbm1.VAF27 = "1" ie_cbm1.VAF28 = "1" ie_cbm1.VAF29 = "1" ie_cbm1.VAF30 = "" ie_cbm1.VAF31 = "0" ie_cbm1.VAF32 = "0" //todo ie_cbm1.VAF33 = "0" ie_cbm1.VAF34 = "0" ie_cbm1.VAF35 = "0" tempTime1 := time.Unix(subitem.StartTime, 0) timeFormatOne := tempTime1.Format("2006-01-02 15:04:05") ie_cbm1.VAF36 = timeFormatOne ie_cbm1.VAF37 = "1899-12-30" doctor_info, _ := service.GetAdminUserInfoByID(org_id, 4270) ie_cbm1.BCK01C = "38" ie_cbm1.BCE02A = doctor_info.DoctorCode ie_cbm1.BCE03A = doctor_info.UserName ie_cbm1.BCE03B = "" ie_cbm1.VAF53 = "-1" ie_cbm1.VAF55 = subitem.Remark ie_cbm1.BCK01D = "38" ie_cbm1.VAF58 = "0" ie_cbm1.VAF59 = strconv.FormatInt(int64(subitem.Groupno), 10) ie_cbm1.VAF60 = "" ie_cbm1.VAF61 = "1" ie_cbm1.VAF62 = "0" ie_cbm1.LSign = "0" ie_cbm1.BDA01A = ie_cbm1.BDA01 ie_cbm1.LRoute = "0" ie_cbm1.BCE01A = doctor_info.DoctorNumber ie_cbm1.BCE01B = "0" ie_cbm1.VAF01B = "0" ie_cbm1.VCO01 = "0" ie_cbm1.BCE01H = "0" ie_cbm1.BCE03H = "" ie_cbm1.BIW02 = "" ie_cbm1.RCurrent = "0" ie_cbm1.FCheck = "0" ie_cbm1.UnameA = "" ie_cbm1.VEH02 = "" vAF1.Ie = append(vAF1.Ie, ie_cbm1) } hisDoctorAdviceInfo := RemoveRepeatedPurviewElementdoctoradvice(item.HisDoctorAdviceInfo) //每种药品下的给药途径 for _, subitem := range hisDoctorAdviceInfo { way, _ := service.GetDrugwayDicByName(subitem.DeliveryWay, c.GetAdminUserInfo().CurrentOrgId) var ie_cbm1 models.IEtwo ie_cbm1.CBMID = strconv.FormatInt(int64(item.ID), 10) ie_cbm1.VAF04 = strconv.FormatInt(int64(li.Acf01), 10) ie_cbm1.VAA01 = strconv.FormatInt(int64(li.Vaa01), 10) ie_cbm1.VAF06 = strconv.FormatInt(int64(li.Vaa07), 10) ie_cbm1.BCK01A = strconv.FormatInt(int64(li.Bck01B), 10) ie_cbm1.ROWNR = "0" ie_cbm1.VAF10 = "1" ie_cbm1.VAF11 = "2" ie_cbm1.BDA01 = "T" //诊疗类型 ie_cbm1.BBX01 = way.Code ie_cbm1.VAF14 = "" //检验样本类型 ie_cbm1.VAF15 = "" //检验样本类型 ie_cbm1.BBY01 = way.Bby01 //药品规格id或材料规格id if li.Acf01 == 1 { ie_cbm1.VAF17 = strconv.FormatInt(int64(subitem.Day), 10) //药品规格id或材料规格id } else { ie_cbm1.VAF17 = "0" //药品规格id或材料规格id } ie_cbm1.VAF18 = fmt.Sprintf("%.2f", subitem.SingleDose) //药品规格id或材料规格id ie_cbm1.VAF19 = fmt.Sprintf("%.2f", subitem.SingleDose) + " " + subitem.SingleDoseUnit //药品规格id或材料规格id ie_cbm1.VAF20 = fmt.Sprintf("%.2f", subitem.SingleDose) //ie_cbm1.VAF21 = fmt.Sprintf("%.2f",subitem.PrescribingNumber) //ie_cbm1.VAF18 = "" //药品规格id或材料规格id //ie_cbm1.VAF19 = "" //ie_cbm1.VAF20 = "" if subitem.DrugWayCount == "" { ie_cbm1.VAF21 = "1" } else { ie_cbm1.VAF21 = subitem.DrugWayCount } ie_cbm1.VAF22 = way.Name ie_cbm1.Crypt = "0" ie_cbm1.VAF23 = "" ie_cbm1.BCK01B = subitem.BaseDrugLib.Bck01b ie_cbm1.VAF26 = subitem.ExecutionFrequency ie_cbm1.VAF27 = "1" ie_cbm1.VAF28 = "1" ie_cbm1.VAF29 = "1" ie_cbm1.BCK01C = "38" ie_cbm1.VAF30 = "" ie_cbm1.VAF31 = "0" ie_cbm1.VAF32 = "1" //todo ie_cbm1.VAF33 = "0" ie_cbm1.VAF34 = "0" ie_cbm1.VAF35 = "0" tempTime1 := time.Unix(subitem.StartTime, 0) timeFormatOne := tempTime1.Format("2006-01-02 15:04:05") ie_cbm1.VAF36 = timeFormatOne ie_cbm1.VAF37 = "1899-12-30" doctor_info, _ := service.GetAdminUserInfoByID(org_id, 4270) ie_cbm1.BCE02A = doctor_info.DoctorCode ie_cbm1.BCE03A = doctor_info.UserName ie_cbm1.BCE03B = "" ie_cbm1.VAF53 = "-1" ie_cbm1.VAF55 = subitem.Remark ie_cbm1.BCK01D = "38" ie_cbm1.VAF58 = "0" //ie_cbm1.VAF59 =strconv.FormatInt(int64(subitem.ID ), 10) ie_cbm1.VAF59 = strconv.FormatInt(int64(subitem.Groupno), 10) ie_cbm1.VAF60 = "" ie_cbm1.VAF61 = "1" ie_cbm1.VAF62 = "0" ie_cbm1.LSign = "0" ie_cbm1.BDA01A = ie_cbm1.BDA01 ie_cbm1.LRoute = "0" ie_cbm1.BCE01A = doctor_info.DoctorNumber ie_cbm1.BCE01B = "0" ie_cbm1.VAF01B = "0" ie_cbm1.VCO01 = "0" ie_cbm1.BCE01H = "0" ie_cbm1.BCE03H = "" ie_cbm1.BIW02 = "" ie_cbm1.RCurrent = "0" ie_cbm1.FCheck = "0" ie_cbm1.UnameA = "" ie_cbm1.VEH02 = "" ie_cbm1.VAF07 = "0" vAF1.Ie = append(vAF1.Ie, ie_cbm1) } } else if item.Type == 2 { for index, subitem := range item.HisPrescriptionProject { if subitem.Type == 2 { if subitem.HisProject.CostClassify != 3 { var ie_cbm1 models.IEtwo ie_cbm1.CBMID = strconv.FormatInt(int64(item.ID), 10) ie_cbm1.VAF04 = strconv.FormatInt(int64(li.Acf01), 10) ie_cbm1.VAA01 = strconv.FormatInt(int64(li.Vaa01), 10) ie_cbm1.VAF06 = strconv.FormatInt(int64(li.Vaa07), 10) ie_cbm1.BCK01A = strconv.FormatInt(int64(li.Bck01B), 10) ie_cbm1.ROWNR = strconv.FormatInt(int64(index+1), 10) ie_cbm1.VAF10 = "1" ie_cbm1.VAF11 = "2" ie_cbm1.BDA01 = "T" //诊疗类型 ie_cbm1.BBX01 = subitem.HisProject.ZuobiaoId ie_cbm1.VAF14 = "" //检验样本类型 ie_cbm1.VAF15 = "" //检验样本类型 ie_cbm1.BBY01 = subitem.HisProject.Bby01 //药品规格id或材料规格id if li.Acf01 == 1 { ie_cbm1.VAF17 = subitem.Day //药品规格id或材料规格id if len(subitem.Day) == 0 { ie_cbm1.VAF17 = "1" } } else { ie_cbm1.VAF17 = "0" //药品规格id或材料规格idn } if subitem.SingleDose == "" { subitem.SingleDose = "1" } ie_cbm1.VAF18 = subitem.SingleDose //药品规格id或材料规格id ie_cbm1.VAF19 = subitem.SingleDose + " " + subitem.Unit //药品规格id或材料规格id ie_cbm1.VAF20 = subitem.SingleDose ie_cbm1.VAF21 = subitem.Count ie_cbm1.VAF22 = subitem.HisProject.ProjectName ie_cbm1.Crypt = "0" ie_cbm1.VAF23 = "" ie_cbm1.BCK01B = subitem.HisProject.Bck01b ie_cbm1.VAF26 = subitem.ExecutionFrequency ie_cbm1.VAF27 = "1" ie_cbm1.VAF28 = "1" ie_cbm1.VAF29 = "" ie_cbm1.BCK01C = "38" ie_cbm1.VAF30 = "" ie_cbm1.VAF31 = "0" ie_cbm1.VAF32 = "0" //todo ie_cbm1.VAF33 = "0" ie_cbm1.VAF34 = "0" ie_cbm1.VAF35 = "0" tempTime1 := time.Unix(subitem.StartTime, 0) timeFormatOne := tempTime1.Format("2006-01-02 15:04:05") ie_cbm1.VAF36 = timeFormatOne ie_cbm1.VAF37 = "1899-12-30" doctor_info, _ := service.GetAdminUserInfoByID(org_id, 4270) ie_cbm1.BCE02A = doctor_info.DoctorCode ie_cbm1.BCE03A = doctor_info.UserName ie_cbm1.BCE03B = "" ie_cbm1.VAF53 = "-1" ie_cbm1.VAF55 = subitem.Remark ie_cbm1.BCK01D = "38" ie_cbm1.VAF58 = "0" ie_cbm1.VAF59 = strconv.FormatInt(int64(index+1), 10) ie_cbm1.VAF60 = "" ie_cbm1.VAF61 = "1" ie_cbm1.VAF62 = "0" ie_cbm1.LSign = "0" ie_cbm1.BDA01A = "" //诊疗类型 ie_cbm1.LRoute = "0" ie_cbm1.BCE01A = doctor_info.DoctorNumber //ie_cbm1.BCE01A = doctor_info.UserName ie_cbm1.BCE01B = "0" ie_cbm1.VAF01B = "0" ie_cbm1.VCO01 = "0" ie_cbm1.BCE01H = "0" ie_cbm1.BCE03H = "" ie_cbm1.BIW02 = "" ie_cbm1.RCurrent = "0" ie_cbm1.FCheck = "0" ie_cbm1.UnameA = "" ie_cbm1.VAF07 = "0" ie_cbm1.VEH02 = "" vAF1.Ie = append(vAF1.Ie, ie_cbm1) } if subitem.HisProject.CostClassify == 3 { var ie_cbm1 models.IEtwo //if subitem.TeamId > 0{ // //ie_cbm1.BBX01 = subitem.HisProject. // team := service.GetBbx01ByTeamID(subitem.TeamId) // ie_cbm1.BBX01 = team.Bbx01 //}else{ ie_cbm1.BBX01 = subitem.HisProject.ZuobiaoId //} ie_cbm1.CBMID = strconv.FormatInt(int64(item.ID), 10) ie_cbm1.VAF04 = strconv.FormatInt(int64(li.Acf01), 10) ie_cbm1.VAA01 = strconv.FormatInt(int64(li.Vaa01), 10) ie_cbm1.VAF06 = strconv.FormatInt(int64(li.Vaa07), 10) ie_cbm1.BCK01A = strconv.FormatInt(int64(li.Bck01B), 10) ie_cbm1.ROWNR = strconv.FormatInt(int64(index+1), 10) ie_cbm1.VAF10 = "1" ie_cbm1.VAF11 = "2" ie_cbm1.BDA01 = "L" //诊疗类型 ie_cbm1.VAF14 = subitem.HisProject.Vaf14 //检验样本类型 ie_cbm1.VAF15 = "" //检验样本类型 ie_cbm1.BBY01 = subitem.HisProject.Bby01 //药品规格id或材料规格id if li.Acf01 == 1 { ie_cbm1.VAF17 = subitem.Day //药品规格id或材料规格id } else { ie_cbm1.VAF17 = "0" //药品规格id或材料规格idn } if subitem.SingleDose == "" { subitem.SingleDose = "1" } ie_cbm1.VAF18 = subitem.SingleDose //药品规格id或材料规格id ie_cbm1.VAF19 = subitem.SingleDose + " " + subitem.Unit //药品规格id或材料规格id ie_cbm1.VAF20 = subitem.SingleDose ie_cbm1.VAF21 = subitem.Count ie_cbm1.VAF22 = subitem.HisProject.ProjectName ie_cbm1.Crypt = "0" ie_cbm1.VAF23 = "" ie_cbm1.BCK01B = subitem.HisProject.Bck01b ie_cbm1.VAF26 = subitem.ExecutionFrequency ie_cbm1.VAF27 = "1" ie_cbm1.VAF28 = "1" ie_cbm1.VAF29 = "" ie_cbm1.BCK01C = "38" ie_cbm1.VAF30 = "" ie_cbm1.VAF31 = "0" ie_cbm1.VAF32 = "0" //todo ie_cbm1.VAF33 = "0" ie_cbm1.VAF34 = "0" ie_cbm1.VAF35 = "0" tempTime1 := time.Unix(subitem.StartTime, 0) timeFormatOne := tempTime1.Format("2006-01-02 15:04:05") ie_cbm1.VAF36 = timeFormatOne ie_cbm1.VAF37 = "1899-12-30" doctor_info, _ := service.GetAdminUserInfoByID(org_id, 4270) ie_cbm1.BCE02A = doctor_info.DoctorCode ie_cbm1.BCE03A = doctor_info.UserName ie_cbm1.BCE03B = "" ie_cbm1.VAF53 = "-1" ie_cbm1.VAF55 = subitem.Remark ie_cbm1.BCK01D = "38" ie_cbm1.VAF58 = "0" ie_cbm1.VAF59 = strconv.FormatInt(int64(index+1), 10) ie_cbm1.VAF60 = "" ie_cbm1.VAF61 = "1" ie_cbm1.VAF62 = "0" ie_cbm1.LSign = "0" ie_cbm1.BDA01A = "" //诊疗类型 ie_cbm1.LRoute = "0" ie_cbm1.BCE01A = doctor_info.DoctorNumber ie_cbm1.VAF07 = "0" //ie_cbm1.BCE01A = doctor_info.UserName ie_cbm1.BCE01B = "0" ie_cbm1.VAF01B = "0" ie_cbm1.VCO01 = "0" ie_cbm1.BCE01H = "0" ie_cbm1.BCE03H = "" ie_cbm1.BIW02 = "" ie_cbm1.RCurrent = "0" ie_cbm1.FCheck = "0" ie_cbm1.UnameA = "" ie_cbm1.VEH02 = "" vAF1.Ie = append(vAF1.Ie, ie_cbm1) } } else if subitem.Type == 3 { var ie_cbm1 models.IEtwo ie_cbm1.CBMID = strconv.FormatInt(int64(item.ID), 10) ie_cbm1.VAF04 = strconv.FormatInt(int64(li.Acf01), 10) ie_cbm1.VAA01 = strconv.FormatInt(int64(li.Vaa01), 10) ie_cbm1.VAF06 = strconv.FormatInt(int64(li.Vaa07), 10) ie_cbm1.BCK01A = strconv.FormatInt(int64(li.Bck01B), 10) ie_cbm1.ROWNR = strconv.FormatInt(int64(index+1), 10) ie_cbm1.VAF10 = "1" ie_cbm1.VAF11 = "2" ie_cbm1.BDA01 = "4" //诊疗类型 ie_cbm1.BBX01 = subitem.GoodInfo.ZuobiaoId ie_cbm1.VAF15 = "" //检验样本类型 ie_cbm1.BBY01 = subitem.GoodInfo.Bby01 //药品规格id或材料规格id if li.Acf01 == 1 { ie_cbm1.VAF17 = subitem.Day //药品规格id或材料规格id if len(subitem.Day) == 0 { ie_cbm1.VAF17 = "1" } } else { ie_cbm1.VAF17 = "0" //药品规格id或材料规格idn } if subitem.SingleDose == "" { subitem.SingleDose = "1" } ie_cbm1.VAF18 = subitem.SingleDose //药品规格id或材料规格id ie_cbm1.VAF19 = subitem.SingleDose + " " + subitem.Unit //药品规格id或材料规格id ie_cbm1.VAF20 = subitem.SingleDose ie_cbm1.VAF21 = subitem.Count ie_cbm1.BCK01C = "38" ie_cbm1.VAF22 = subitem.GoodInfo.GoodName + " " + subitem.GoodInfo.SpecificationName ie_cbm1.Crypt = "0" ie_cbm1.VAF23 = "" ie_cbm1.BCK01B = subitem.GoodInfo.Bck01b ie_cbm1.VAF26 = subitem.ExecutionFrequency ie_cbm1.VAF27 = "1" ie_cbm1.VAF28 = "1" ie_cbm1.VAF29 = "" ie_cbm1.VAF07 = "0" ie_cbm1.VAF14 = "" //检验样本类型 ie_cbm1.VAF30 = "" ie_cbm1.VAF31 = "0" ie_cbm1.VAF32 = "0" //todo ie_cbm1.VAF33 = "0" ie_cbm1.VAF34 = "0" ie_cbm1.VAF35 = "0" tempTime1 := time.Unix(subitem.StartTime, 0) timeFormatOne := tempTime1.Format("2006-01-02 15:04:05") ie_cbm1.VAF36 = timeFormatOne ie_cbm1.VAF37 = "1899-12-30" doctor_info, _ := service.GetAdminUserInfoByID(org_id, 4270) ie_cbm1.BCE02A = doctor_info.DoctorCode ie_cbm1.BCE03A = doctor_info.UserName ie_cbm1.BCE03B = "" ie_cbm1.BCK01C = "38" ie_cbm1.VAF53 = "-1" ie_cbm1.VAF55 = subitem.Remark ie_cbm1.BCK01D ="38" ie_cbm1.VAF58 = "0" ie_cbm1.VAF59 = strconv.FormatInt(int64(index+1), 10) ie_cbm1.VAF60 = "" ie_cbm1.VAF61 = "1" ie_cbm1.VAF62 = "0" ie_cbm1.LSign = "0" ie_cbm1.BDA01A = "" //诊疗类型 ie_cbm1.LRoute = "0" ie_cbm1.BCE01A = doctor_info.DoctorNumber ie_cbm1.BCE01B = "0" ie_cbm1.VAF01B = "0" ie_cbm1.VCO01 = "0" ie_cbm1.BCE01H = "0" ie_cbm1.BCE03H = "" ie_cbm1.BIW02 = "" ie_cbm1.RCurrent = "0" ie_cbm1.FCheck = "0" ie_cbm1.UnameA = "" ie_cbm1.VEH02 = "" vAF1.Ie = append(vAF1.Ie, ie_cbm1) } } } } root.VAF1 = vAF1 for index, item := range big_ps[start-1 : stop] { sick, _ := service.FindSickById(sick_type) item.VMHisPrescriptionInfo.Diagnosis = "716" dias := strings.Split(item.VMHisPrescriptionInfo.Diagnosis, ",") //service.get //诊断 for _, subitem := range dias { diagnosisConfig, _ := service.FindDiagnoseByIdtwo(subitem) if index == 0 { var ie_cbm1 models.IEthree ie_cbm1.CBMID = strconv.FormatInt(int64(item.ID), 10) //ie_cbm1.CBMID = strconv.FormatInt(int64(index+1), 10) ie_cbm1.VAA01 = strconv.FormatInt(int64(li.Vaa01), 10) ie_cbm1.VAA07 = strconv.FormatInt(int64(li.Vaa07), 10) ie_cbm1.ACF01 = strconv.FormatInt(int64(li.Acf01), 10) ie_cbm1.VAO06 = strconv.FormatInt(int64(index+1), 10) ie_cbm1.VAO07 = "1" ie_cbm1.VAO10 = "0" ie_cbm1.VAO11 = "1" ie_cbm1.BAK01A = sick.ContentCode ie_cbm1.CAM01 = diagnosisConfig.ContentCode ie_cbm1.VAO15 = diagnosisConfig.ClassName ie_cbm1.VAO18 = "0" ie_cbm1.VAO22 = "1" ie_cbm1.IAA01 = "" ie_cbm1.IAD03 = "" ie_cbm1.BAK01B = "" ie_cbm1.VAO26 = "" ie_cbm1.IAD04 = "" ie_cbm1.IAD01 = "" ie_cbm1.VAO25 = "1" ie_cbm1.VAO35 = "" vAO1.Ie = append(vAO1.Ie, ie_cbm1) } else { var ie_cbm1 models.IEthree ie_cbm1.CBMID = strconv.FormatInt(int64(item.ID), 10) ie_cbm1.VAA01 = strconv.FormatInt(int64(li.Vaa01), 10) ie_cbm1.VAA07 = strconv.FormatInt(int64(li.Vaa07), 10) ie_cbm1.ACF01 = strconv.FormatInt(int64(li.Acf01), 10) ie_cbm1.VAO06 = strconv.FormatInt(int64(index+1), 10) ie_cbm1.VAO07 = "1" ie_cbm1.VAO10 = "0" ie_cbm1.VAO11 = "1" ie_cbm1.BAK01A = sick.ContentCode ie_cbm1.CAM01 = diagnosisConfig.ContentCode ie_cbm1.VAO15 = diagnosisConfig.ClassName ie_cbm1.VAO18 = "0" ie_cbm1.VAO22 = "1" ie_cbm1.IAA01 = "" ie_cbm1.IAD03 = "" ie_cbm1.BAK01B = "" ie_cbm1.VAO26 = "" ie_cbm1.IAD04 = "" ie_cbm1.IAD01 = "" ie_cbm1.VAO25 = "1" ie_cbm1.VAO35 = "" vAO1.Ie = append(vAO1.Ie, ie_cbm1) } } } for index, item := range big_ps[start-1 : stop] { //sick, _ := service.FindSickById(sick_type) //item.VMHisPrescriptionInfo.Diagnosis = "716" //dias := strings.Split(item.VMHisPrescriptionInfo.Diagnosis, ",") //service.get //诊断 for _, subitem := range newArr { diagnosisConfig, _ := service.FindDiagnoseByIdtwo(subitem) if index == 0 { var ie_cbm1 models.IEthree ie_cbm1.CBMID = strconv.FormatInt(int64(item.ID), 10) //ie_cbm1.CBMID = strconv.FormatInt(int64(index+1), 10) ie_cbm1.VAA01 = strconv.FormatInt(int64(li.Vaa01), 10) ie_cbm1.VAA07 = strconv.FormatInt(int64(li.Vaa07), 10) ie_cbm1.ACF01 = strconv.FormatInt(int64(li.Acf01), 10) ie_cbm1.VAO06 = strconv.FormatInt(int64(index+1), 10) ie_cbm1.VAO07 = "1" ie_cbm1.VAO10 = "0" ie_cbm1.VAO11 = "1" ie_cbm1.BAK01A ="" ie_cbm1.CAM01 = diagnosisConfig.ContentCode ie_cbm1.VAO15 = diagnosisConfig.ClassName ie_cbm1.VAO18 = "0" ie_cbm1.VAO22 = "1" ie_cbm1.IAA01 = "" ie_cbm1.IAD03 = "" ie_cbm1.BAK01B = "" ie_cbm1.VAO26 = "" ie_cbm1.IAD04 = "" ie_cbm1.IAD01 = "" ie_cbm1.VAO25 = "2" ie_cbm1.VAO35 = "" vAO1.Ie = append(vAO1.Ie, ie_cbm1) } else { var ie_cbm1 models.IEthree ie_cbm1.CBMID = strconv.FormatInt(int64(item.ID), 10) ie_cbm1.VAA01 = strconv.FormatInt(int64(li.Vaa01), 10) ie_cbm1.VAA07 = strconv.FormatInt(int64(li.Vaa07), 10) ie_cbm1.ACF01 = strconv.FormatInt(int64(li.Acf01), 10) ie_cbm1.VAO06 = strconv.FormatInt(int64(index+1), 10) ie_cbm1.VAO07 = "1" ie_cbm1.VAO10 = "0" ie_cbm1.VAO11 = "1" ie_cbm1.BAK01A = "" ie_cbm1.CAM01 = diagnosisConfig.ContentCode ie_cbm1.VAO15 = diagnosisConfig.ClassName ie_cbm1.VAO18 = "0" ie_cbm1.VAO22 = "1" ie_cbm1.IAA01 = "" ie_cbm1.IAD03 = "" ie_cbm1.BAK01B = "" ie_cbm1.VAO26 = "" ie_cbm1.IAD04 = "" ie_cbm1.IAD01 = "" ie_cbm1.VAO25 = "2" ie_cbm1.VAO35 = "" vAO1.Ie = append(vAO1.Ie, ie_cbm1) } } } //// //////检验检查医嘱 //for _, item := range prescriptions{ // fmt.Println("6666666666666") // if item.Type == 2{ // for _, subitem := range item.HisPrescriptionProject { // if subitem.Type == 2{ // if subitem.HisProject.CostClassify == 3 { // var ie_cbm1 models.IEfour // ie_cbm1.VBQ01 = strconv.FormatInt(int64(item.ID), 10) // ie_cbm1.VAA01 = strconv.FormatInt(int64(li.Vaa01), 10) // ie_cbm1.VAA07 = strconv.FormatInt(int64(li.Vaa07), 10) // ie_cbm1.ACF01 = strconv.FormatInt(int64(li.Acf01), 10) // ie_cbm1.VAP01 = "0" // ie_cbm1.VBQ07 = "0" // ie_cbm1.BCK01A = departmwnt.Number // ie_cbm1.BCK01B= "0" // ie_cbm1.BCE03A= "" // ie_cbm1.BCE01A= "0" // ie_cbm1.VBQ27= subitem.HisProject.ProjectName // ie_cbm1.VBQ28= patientPrescription.Diagnosis // ie_cbm1.VBQ29= "" // ie_cbm1.VBQ30= "" // vBQ1.Ie = append(vBQ1.Ie, ie_cbm1) // } // // } // // } // } //} root.VAO1 = vAO1 root.VBQ1 = vBQ1 xmlStr2, err := xml.MarshalIndent(root, "", " ") if err != nil { fmt.Println("转换为XML时发生错误:", err) return } data := make(map[string]interface{}) data["xmlStr"] = string(xmlStr2) bytesData, _ := json.Marshal(data) var req *http.Request client := &http.Client{} fmt.Println(string(xmlStr2)) saveLog("", string(xmlStr2), "1111", "上传明细xml", "") req, _ = http.NewRequest("POST", "http://127.0.0.1:9532/"+"nmg/coordinate/upload", bytes.NewBufferString(string(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 } respJSON3 := respJSON["data"].(map[string]interface{})["msg"].(string) respJSON4 := respJSON["data"].(map[string]interface{})["res"].(string) if respJSON3 == "成功" { //if li.Acf01 != 1{ // //记账 // result2, request2 := service.NMGSettleForCoordinate(info) // saveLog(result2, request2, "记账", "记账", org.OrgName) // // // //data := make(map[string]interface{}) // //data["info"] = &info // // // //fmt.Println(data) // // // //bytesData, _ := json.Marshal(data) // //var req *http.Request // // // //client := &http.Client{} // // // //req, _ = http.NewRequest("POST", "http://192.168.100.199:9532/"+"nmg/coordinate/settle", 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{})["res"].(map[string]interface{}) // //userJSONBytes, _ := json.Marshal(respJSON) // // // //var res2 ResultUpload2 // //if err := json.Unmarshal(userJSONBytes, &res2); err != nil { // // utils.ErrorLog("解析失败:%v", err) // // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // // return // //} // //if res2.Code == 500{ // // c.ServeSuccessJSON(map[string]interface{}{ // // "failed_code": -10, // // "msg": res2.Msg, // // }) // // return // //} //} if len(zuobiao_ids) == 0 { zuobiao_ids = respJSON4 } else { zuobiao_ids = zuobiao_ids + "," + respJSON4 } continue } else { err_msg = respJSON3 is_upload_success = false if len(zuobiao_ids) > 0 { tm := time.Unix(time.Now().Unix(), 0) order := &models.HisOrder{ PsnNo: strconv.FormatInt(int64(li.Vaa01), 10), UserOrgId: org_id, PatientId: patient_id, SettleAccountsDate: recordDateTime, Ctime: time.Now().Unix(), Mtime: time.Now().Unix(), Status: 1, OrderStatus: 1, MdtrtId: strconv.FormatInt(int64(li.Vaa07), 10), Number: zuobiao_ids, SetlId: zuobiao_ids, MedfeeSumamt: total, MedType: strconv.Itoa(int(reg_type)), SettleType: settle_accounts_type, Diagnosis: diagnosis_id, PType: int64(li.Acf01), SetlTime: tm.Format("2006-01-02 15:04:05"), SettleStartTime: recordStartTime, SettleEndTime: recordEndTime, } err = service.CreateOrder(order) if err != nil { //c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeCreateOrderException) return } fmt.Println(idss) if settle_accounts_type == 1{ err = service.UpDatePrescriptionNumber222(org_id, p_id, zuobiao_ids,patient_id) }else{ err = service.UpDatePrescriptionNumber111(org_id, recordStartTime,recordEndTime, zuobiao_ids,patient_id) } //err = service.UpDateHisPrescriptionInfoNumbertwo(org_id, patient_id, strconv.FormatInt(int64(li.Vaa07), 10), recordDateTime, his.ID) err = service.UpdataOrderStatusThreef(zuobiao_ids, org_id) var zuobiao_advice models.HisZuobiaoAdvice zuobiao_advice.Status = 1 zuobiao_advice.RecordDate = recordDateTime zuobiao_advice.PatientId = patient_id zuobiao_advice.Cbm01 = zuobiao_ids zuobiao_advice.Ctime = time.Now().Unix() zuobiao_advice.Mtime = time.Now().Unix() zuobiao_advice.Oid = order.ID zuobiao_advice.StartTime = recordStartTime zuobiao_advice.EndTime = recordEndTime zuobiao_advice.Vaa01 = strconv.FormatInt(int64(li.Vaa01), 10) zuobiao_advice.Vaa07 = strconv.FormatInt(int64(li.Vaa07), 10) zuobiao_advice.UserOrgId = c.GetAdminUserInfo().CurrentOrgId service.Createzuobiao(&zuobiao_advice) } } if is_upload_success == false { if len(zuobiao_ids) > 0 { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": "部分处方数据上传成功,可在已上传或者在坐标系统查看。其余上传失败原因: " + err_msg, }) return } else { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": err_msg, }) return } } } if is_upload_success { if len(zuobiao_ids) > 0 { tm := time.Unix(time.Now().Unix(), 0) order := &models.HisOrder{ PsnNo: strconv.FormatInt(int64(li.Vaa01), 10), UserOrgId: org_id, PatientId: patient_id, SettleAccountsDate: recordDateTime, Ctime: time.Now().Unix(), Mtime: time.Now().Unix(), Status: 1, OrderStatus: 1, MdtrtId: strconv.FormatInt(int64(li.Vaa07), 10), Number: zuobiao_ids, SetlId: zuobiao_ids, MedfeeSumamt: total, MedType: strconv.Itoa(int(reg_type)), SettleType: settle_accounts_type, Diagnosis: diagnosis_id, PType: int64(li.Acf01), SetlTime: tm.Format("2006-01-02 15:04:05"), SettleStartTime: recordStartTime, SettleEndTime: recordEndTime, } err = service.CreateOrder(order) if err != nil { //c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeCreateOrderException) return } err = service.UpDatePrescriptionNumber222(org_id, p_id, zuobiao_ids,patient_id) //err = service.UpDatePrescriptionNumber111(org_id, recordStartTime,recordEndTime, zuobiao_ids,patient_id) //err = service.UpDateHisPrescriptionInfoNumbertwo(org_id, patient_id, strconv.FormatInt(int64(li.Vaa07), 10), recordDateTime, his.ID) err = service.UpdataOrderStatusThreef(zuobiao_ids, org_id) //err = service.UpdataOrderStatusThreef(zuobiao_ids, org_id) var zuobiao_advice models.HisZuobiaoAdvice zuobiao_advice.Status = 1 zuobiao_advice.RecordDate = recordDateTime zuobiao_advice.PatientId = patient_id zuobiao_advice.Cbm01 = zuobiao_ids zuobiao_advice.Ctime = time.Now().Unix() zuobiao_advice.Mtime = time.Now().Unix() zuobiao_advice.Oid = order.ID zuobiao_advice.StartTime = recordStartTime zuobiao_advice.EndTime = recordEndTime zuobiao_advice.Vaa01 = strconv.FormatInt(int64(li.Vaa01), 10) zuobiao_advice.Vaa07 = strconv.FormatInt(int64(li.Vaa07), 10) zuobiao_advice.UserOrgId = c.GetAdminUserInfo().CurrentOrgId service.Createzuobiao(&zuobiao_advice) } c.ServeSuccessJSON(map[string]interface{}{ "msg": "上传成功", }) } else { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": err_msg, }) } } else { //月结 start_time_str := c.GetString("start_time") end_time_str := c.GetString("end_time") theStartTime, err := time.ParseInLocation(timeLayout+" 15:04:05", start_time_str+" 00:00:00", loc) if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } recordStartTime = theStartTime.Unix() theEndTime, err := time.ParseInLocation(timeLayout+" 15:04:05", end_time_str+" 00:00:00", loc) if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } recordEndTime = theEndTime.Unix() prescriptions, _ = service.GetUnSettleMonthHisPrescription(org_id, patient_id, recordStartTime, recordEndTime) var total float64 var customs []*models.NewCustomTwo for _, item := range prescriptions { if item.Type == 1 { //药品 for _, subItem := range item.HisDoctorAdviceInfo { tempTime := time.Unix(item.PreTime, 0) //timeFormat := tempTime.Format("20060102150405") timeFormatOne := tempTime.Format("2006-01-02 15:04:05") cus := &models.NewCustomTwo{ AdviceId: subItem.ID, ProjectId: 0, DetItemFeeSumamt: fmt.Sprintf("%.4f", subItem.Price*subItem.PrescribingNumber), Cut: fmt.Sprintf("%.4f", subItem.PrescribingNumber), FeedetlSn: subItem.FeedetlSn, Price: fmt.Sprintf("%.2f", subItem.Price), MedListCodg: subItem.BaseDrugLib.MedicalInsuranceNumber, Type: 1, ItemId: subItem.BaseDrugLib.ZuobiaoId, StartTime: timeFormatOne, Content: subItem.AdviceName, Bby01: subItem.BaseDrugLib.Bby01, } customs = append(customs, cus) } } if item.Type == 2 { //项目 for _, subItem := range item.HisPrescriptionProject { if subItem.Type == 2 { tempTime := time.Unix(item.PreTime, 0) //timeFormat := tempTime.Format("20060102150405") timeFormatOne := tempTime.Format("2006-01-02 15:04:05") cnt, _ := strconv.ParseFloat(subItem.Count, 64) cus := &models.NewCustomTwo{ AdviceId: 0, ProjectId: subItem.ID, DetItemFeeSumamt: fmt.Sprintf("%.4f", subItem.Price*cnt), Cut: fmt.Sprintf("%.4f", cnt), FeedetlSn: subItem.FeedetlSn, Price: fmt.Sprintf("%.4f", float64(subItem.Price)), MedListCodg: subItem.HisProject.MedicalCode, Type: 2, ItemId: subItem.HisProject.ZuobiaoId, StartTime: timeFormatOne, Content: subItem.HisProject.ProjectName, Bby01: subItem.HisProject.Bby01, } customs = append(customs, cus) } else { tempTime := time.Unix(item.PreTime, 0) //timeFormat := tempTime.Format("20060102150405") timeFormatOne := tempTime.Format("2006-01-02 15:04:05") cnt, _ := strconv.ParseFloat(subItem.Count, 64) cus := &models.NewCustomTwo{ AdviceId: 0, ProjectId: subItem.ID, DetItemFeeSumamt: fmt.Sprintf("%.4f", subItem.Price*cnt), Cut: fmt.Sprintf("%.4f", cnt), FeedetlSn: subItem.FeedetlSn, Price: fmt.Sprintf("%.4f", float64(subItem.Price)), MedListCodg: subItem.GoodInfo.MedicalInsuranceNumber, Type: 3, ItemId: subItem.GoodInfo.ZuobiaoId, StartTime: timeFormatOne, Content: subItem.GoodInfo.GoodName, Bby01: subItem.GoodInfo.Bby01, } customs = append(customs, cus) } } } } for _, item := range prescriptions { if item.Type == 1 { //药品 for _, subItem := range item.HisDoctorAdviceInfo { price, _ := strconv.ParseFloat(fmt.Sprintf("%.2f", subItem.Price), 64) total_one := price * subItem.PrescribingNumber total = total + total_one } } if item.Type == 2 { //项目 for _, subItem := range item.HisPrescriptionProject { cnt, _ := strconv.ParseFloat(subItem.Count, 64) price, _ := strconv.ParseFloat(fmt.Sprintf("%.2f", subItem.Price), 64) total_one := price * cnt total = total + total_one } } } //allTotal := fmt.Sprintf("%2f", total) var info models.UploadInfo info.Acf01 = int64(li.Acf01) info.Bce01 = "132" info.Bck01 = "48" info.Vaa07 = int64(li.Vaa07) info.Vaa01 = int64(li.Vaa01) info.Vaa05 = li.Vaa05 info.Bce01a = doctor_info.DoctorNumber for _, item := range customs { var cha models.ChargeListtwo cnt, _ := strconv.ParseFloat(item.Cut, 64) Bby01, _ := strconv.ParseInt(item.Bby01, 10, 64) cha.Bby01 = Bby01 cha.Vaj25 = cnt info.ChargeListtwo = append(info.ChargeListtwo, &cha) } //汇总逻辑,坐标id相同的汇总成一条医嘱,数量累加 var big_ps []models.HisPrescription drugPrescriptions, consumablePrescriptions := classifyPrescriptions(prescriptions) //药品处方需要和非没同组药品的分出同组药品的 //var noGroupdrugPrescriptions models.HisPrescription var groupdrugPrescriptions []models.HisPrescription //同组药处方集合 groupdrugPrescriptions = summarizePrescriptionsTwo(drugPrescriptions) //不同组药汇总到一个处方 //noGroupdrugPrescriptions = summarizePrescriptions(drugPrescriptions) //noGroupdrugPrescriptions.HisDoctorAdviceInfo = append(noGroupdrugPrescriptions.HisDoctorAdviceInfo,summarizePrescriptions(drugPrescriptions)...) //非没同组药品,汇总处理 var doc_two []models.HisDoctorAdviceInfo var doc []models.HisDoctorAdviceInfo doc = summarizePrescriptions(drugPrescriptions) var no_group_drug_ps models.HisPrescription no_group_drug_ps.MedType = "110" no_group_drug_ps.ID = int64(rand.Intn(90000) + 10000) no_group_drug_ps.Type = 1 // 设置随机种子 for _ ,sumitem := range doc{ rand.Seed(time.Now().UnixNano()) // 生成4位随机数 randomNumber := rand.Intn(9000) + 1000 sumitem.Groupno = sumitem.Groupno + int64(randomNumber) //doc = append(doc, sumitem.HisDoctorAdviceInfo...) } doc_two = RemoveRepeatedPurviewElementdrug(doc) var dos []models.HisDoctorAdviceInfo for _, pro := range doc_two { var ppp models.HisDoctorAdviceInfo var count float64 var drugWayCount float64 for _, pro_two := range doc { if pro.BaseDrugLib.ZuobiaoId == pro_two.BaseDrugLib.ZuobiaoId && pro.BaseDrugLib.Bby01 == pro_two.BaseDrugLib.Bby01 && pro.DeliveryWay == pro_two.DeliveryWay{ ppp = pro_two count = count + pro_two.PrescribingNumber if len(pro_two.DrugWayCount) == 0{ pro_two.DrugWayCount = "1" } result, _ := strconv.ParseFloat(pro_two.DrugWayCount, 64) drugWayCount = drugWayCount + result } } //fmt.Println(strconv.FormatFloat(drugWayCount, 'f', -1, 64)) ppp.PrescribingNumber = count ppp.DrugWayCount = strconv.FormatFloat(drugWayCount, 'f', -1, 64) dos = append(dos, ppp) } no_group_drug_ps.HisDoctorAdviceInfo = dos if len(dos) > 0 { big_ps = append(big_ps, no_group_drug_ps) } jsonString, err := json.Marshal(big_ps) if err != nil { fmt.Println("转换失败:", err) return } // 输出JSON字符串 //fmt.Println(string(jsonString)) saveLog("", string(jsonString), "1111333", "122222224444", "") //var hds []models.HisDoctorAdviceInfo ////同组药品不需要进行汇总 for _, item := range groupdrugPrescriptions { var group_drug_ps models.HisPrescription group_drug_ps.MedType = "190" group_drug_ps.ID = int64(rand.Intn(90000) + 10000) group_drug_ps.Type = 1 group_drug_ps.HisDoctorAdviceInfo = item.HisDoctorAdviceInfo big_ps = append(big_ps, group_drug_ps) } //jsonString2, err := json.Marshal(big_ps) //if err != nil { // fmt.Println("转换失败:", err) // return //} // 输出JSON字符串 //fmt.Println(string(jsonString2)) //saveLog("", string(jsonString2), "222222", "33334444444", "") //return // //hds = RemoveRepeatedPurviewElementdrugtwo(hds) // //for _,item := range hds{ // for _,subitem := range hds{ // if item.Newfn == subitem.Newfn{ // // // } // } //} //if len(item.HisDoctorAdviceInfo) > 0 { // // var group_drug_ps models.HisPrescription // group_drug_ps.MedType = "110" // group_drug_ps.ID = int64(rand.Intn(90000) + 10000) // group_drug_ps.Type = 1 // group_drug_ps.HisDoctorAdviceInfo = item.HisDoctorAdviceInfo // big_ps = append(big_ps, group_drug_ps) //} //耗材和项目汇总 var projects []models.HisPrescriptionProject var goods []models.HisPrescriptionProject var checks []models.HisPrescriptionProject var projects_two []models.HisPrescriptionProject var goods_two []models.HisPrescriptionProject //var checks_two []models.HisPrescriptionProject for _, item := range consumablePrescriptions { for _, subitem := range item.HisPrescriptionProject { if subitem.Type == 2 { if subitem.HisProject.CostClassify == 3{ checks = append(checks, subitem) }else{ projects = append(projects, subitem) } } else if subitem.Type == 3 { goods = append(goods, subitem) } } } projects_two = RemoveRepeatedPurviewElementproject(projects) goods_two = RemoveRepeatedPurviewElementgood(goods) //checks_two = RemoveRepeatedPurviewElementproject(checks) var new_pros []models.HisPrescriptionProject var new_goods []models.HisPrescriptionProject var new_checks []models.HisPrescriptionProject for _, pro := range projects_two { var ppp models.HisPrescriptionProject var count float64 for _, pro_two := range projects { if pro.HisProject.ZuobiaoId == pro_two.HisProject.ZuobiaoId && pro.HisProject.Bby01 == pro_two.HisProject.Bby01 { ppp = pro_two result, _ := strconv.ParseFloat(pro_two.Count, 64) count = count + result } } ppp.Count = strconv.FormatFloat(count, 'f', -1, 64) new_pros = append(new_pros, ppp) } for _, good := range goods_two { var ppp models.HisPrescriptionProject var count float64 for _, good_two := range goods { if good.GoodInfo.ZuobiaoId == good_two.GoodInfo.ZuobiaoId && good.GoodInfo.Bby01 == good_two.GoodInfo.Bby01 { ppp = good_two result, _ := strconv.ParseFloat(good_two.Count, 64) count = count + result } } ppp.Count = strconv.FormatFloat(count, 'f', -1, 64) new_goods = append(new_goods, ppp) } for _, check := range checks { var ppp models.HisPrescriptionProject ppp = check ppp.Count = check.Count new_checks = append(new_checks, ppp) } if len(new_goods) > 0 { var ps1 models.HisPrescription ps1.MedType = "120" ps1.ID = int64(rand.Intn(90000) + 10000) ps1.Type = 2 ps1.HisPrescriptionProject = append(ps1.HisPrescriptionProject, new_goods...) big_ps = append(big_ps, ps1) } if len(new_pros) > 0 { var ps2 models.HisPrescription ps2.MedType = "130" ps2.Type = 2 ps2.ID = int64(rand.Intn(90000) + 10000) ps2.HisPrescriptionProject = append(ps2.HisPrescriptionProject, new_pros...) big_ps = append(big_ps, ps2) } if len(new_checks) > 0 { var ps3 models.HisPrescription ps3.MedType = "140" ps3.Type = 2 ps3.ID = int64(rand.Intn(90000) + 10000) ps3.HisPrescriptionProject = append(ps3.HisPrescriptionProject, new_checks...) big_ps = append(big_ps, ps3) } ////信息 var is_upload_success bool = true var curpage int var pagesize int = len(big_ps) var start int = 1 var stop int var zuobiao_ids string var err_msg string var idss []int64 //pagecount := 10 pagecount := int(math.Ceil(float64(len(big_ps)) / float64(pagesize))) for curpage = 1; curpage <= pagecount; curpage++ { var root models.Root var tradeInfo models.TradeInfo var cBM1 models.CBM1 var vAF1 models.VAF1 var vAO1 models.VAO1 var vBQ1 models.VBQ1 if li.Acf01 == 1 { tradeInfo.PatSource = 1 tradeInfo.Type = 0 } else { tradeInfo.PatSource = 2 tradeInfo.Type = 1 } tradeInfo.Detpid = departmwnt.Number tradeInfo.Empid = doctor_info.DoctorNumber tradeInfo.Empno = doctor_info.DoctorCode tradeInfo.Empname = doctor_info.UserName root.TradeInfo = tradeInfo if curpage == 1 { start = 1 } else { start = (curpage-1)*pagesize + 1 } stop = curpage * pagesize if stop > len(big_ps) { stop = len(big_ps) } //var ids []int64 // //for _, item := range prescriptions[start-1 : stop] { // ids = append(ids, item.ID) //} for _, item := range big_ps[start-1 : stop] { //departmwnt_two, _ := service.GetDepartMentDetail(item.VMHisPrescriptionInfo.Departments) var ie_cbm1 models.IEone ie_cbm1.CBMID = strconv.FormatInt(int64(item.ID), 10) ie_cbm1.VAA01 = strconv.FormatInt(int64(li.Vaa01), 10) ie_cbm1.VAA07 = strconv.FormatInt(int64(li.Vaa07), 10) ie_cbm1.ACF01 = strconv.FormatInt(int64(li.Acf01), 10) //ie_cbm1.CBM06 = strconv.FormatInt(int64(res.List[0].Acf01), 10) if li.Acf01 == 1 { if item.MedType == "110" { ie_cbm1.CBM06 = "1" } if item.MedType == "120"{ ie_cbm1.CBM06 = "5" } if item.MedType == "130"{ ie_cbm1.CBM06 = "0" } if item.MedType == "140"{ ie_cbm1.CBM06 = "9" } if item.MedType == "190"{ ie_cbm1.CBM06 = "1" } ie_cbm1.BCK01A = "0" } else { ie_cbm1.CBM06 = "0" ie_cbm1.BCK01A = strconv.FormatInt(int64(li.Bck01B), 10) //病区id } if item.MedType == "110" { ie_cbm1.CBM07 = "1" } if item.MedType == "120"{ ie_cbm1.CBM07 = "5" } if item.MedType == "130"{ ie_cbm1.CBM07 = "0" } if item.MedType == "140"{ ie_cbm1.CBM07 = "10" } if item.MedType == "190"{ ie_cbm1.CBM07 = "1" } ie_cbm1.BCK01B = strconv.FormatInt(int64(li.Bck01B), 10) ie_cbm1.BCK01C = "38" ie_cbm1.CBM19 = "0" cBM1.Ie = append(cBM1.Ie, ie_cbm1) } root.CBM1 = cBM1 ////医嘱 for _, item := range big_ps[start-1 : stop] { //departmwnt_two, _ := service.GetDepartMentDetail(item.VMHisPrescriptionInfo.Departments) if item.Type == 1 { if item.MedType == "190"{ //组号去重 //temphisDoctorAdviceInfo := RemoveRepeatedPurviewElementdoctoradvice(item.HisDoctorAdviceInfo) // 使用 map 来存储 groupno 的数量 //groupCount := make(map[int64]int64) // 使用 map 来存储 groupno 的数量和最后一条数据的索引 groupInfo := make(map[string]struct { Count int64 LastElement int }) // 遍历切片,计算 groupno 的数量和最后一条数据的索引 for i, obj := range item.HisDoctorAdviceInfo { fmt.Println("转换失败1:", strconv.FormatInt(int64(obj.Groupno), 10) +"-"+strconv.FormatInt(int64(obj.PrescriptionId), 10)) info, ok := groupInfo[strconv.FormatInt(int64(obj.Groupno), 10) +"-"+strconv.FormatInt(int64(obj.PrescriptionId), 10)] fmt.Println("转换失败2:",info) if !ok { info = struct { Count int64 LastElement int }{} } info.Count++ info.LastElement = i groupInfo[strconv.FormatInt(int64(obj.Groupno), 10) +"-"+strconv.FormatInt(int64(obj.PrescriptionId), 10)] = info fmt.Println("转换失败3:",groupInfo[strconv.FormatInt(int64(obj.Groupno), 10) +"-"+strconv.FormatInt(int64(obj.PrescriptionId), 10)]) } fmt.Println("转换失败4:",groupInfo) // 根据 groupno 的数量设置字段值 for i, obj := range item.HisDoctorAdviceInfo { info := groupInfo[strconv.FormatInt(int64(obj.Groupno), 10) +"-"+strconv.FormatInt(int64(obj.PrescriptionId), 10)] if info.Count < 2 { fmt.Println("转换失败555:") item.HisDoctorAdviceInfo[i].NewGroupno = strconv.FormatInt(int64(1), 10) //item.HisDoctorAdviceInfo[i].Groupno = int64(rand.Intn(90000) + 10000) } else { // 对于数量大于等于 2 的,将最后一条数据设置 1,其他设置为随机数 if i == info.LastElement { fmt.Println("转换失败6666:") item.HisDoctorAdviceInfo[i].NewGroupno = strconv.FormatInt(int64(1), 10) //item.HisDoctorAdviceInfo[i].Groupno = int64(rand.Intn(90000) + 10000) } else { fmt.Println("转换失败777777:") item.HisDoctorAdviceInfo[i].NewGroupno = strconv.FormatInt(obj.ID, 10) } } } for _, subitem := range item.HisDoctorAdviceInfo { fmt.Println("转换失败777777:", subitem.NewGroupno) var ie_cbm1 models.IEtwo ie_cbm1.CBMID = strconv.FormatInt(int64(item.ID), 10) ie_cbm1.VAF04 = strconv.FormatInt(int64(li.Acf01), 10) ie_cbm1.VAA01 = strconv.FormatInt(int64(li.Vaa01), 10) ie_cbm1.VAF06 = strconv.FormatInt(int64(li.Vaa07), 10) ie_cbm1.BCK01A = strconv.FormatInt(int64(li.Bck01B), 10) ie_cbm1.ROWNR = subitem.NewGroupno ie_cbm1.VAF10 = "1" ie_cbm1.VAF11 = "2" ie_cbm1.BDA01 = "1" //诊疗类型 ie_cbm1.BBX01 = subitem.BaseDrugLib.ZuobiaoId ie_cbm1.VAF14 = "" //检验样本类型 ie_cbm1.VAF15 = "" ie_cbm1.BBY01 = subitem.BaseDrugLib.Bby01 //药品规格id或材料规格id if li.Acf01 == 1 { ie_cbm1.VAF17 = strconv.FormatInt(int64(subitem.Day), 10) } else { ie_cbm1.VAF17 = "0" } ie_cbm1.VAF18 = fmt.Sprintf("%.2f", subitem.SingleDose) //药品规格id或材料规格id ie_cbm1.VAF19 = fmt.Sprintf("%.2f", subitem.SingleDose) + " " + subitem.SingleDoseUnit //药品规格id或材料规格id ie_cbm1.VAF20 = fmt.Sprintf("%.2f", subitem.SingleDose) ie_cbm1.VAF21 = fmt.Sprintf("%.2f", subitem.PrescribingNumber) ie_cbm1.VAF22 = subitem.AdviceName + " " + subitem.BaseDrugLib.DrugSpec ie_cbm1.Crypt = "0" ie_cbm1.VAF23 = "" ie_cbm1.BCK01B = subitem.BaseDrugLib.Bck01b ie_cbm1.VAF26 = subitem.ExecutionFrequency ie_cbm1.VAF27 = "1" ie_cbm1.VAF28 = "1" ie_cbm1.VAF29 = "1" ie_cbm1.VAF30 = "" ie_cbm1.VAF31 = "0" ie_cbm1.VAF32 = "0" //todo ie_cbm1.VAF33 = "0" ie_cbm1.VAF34 = "0" ie_cbm1.VAF35 = "0" tempTime1 := time.Unix(subitem.StartTime, 0) timeFormatOne := tempTime1.Format("2006-01-02 15:04:05") ie_cbm1.VAF36 = timeFormatOne ie_cbm1.VAF37 = "1899-12-30" doctor_info, _ := service.GetAdminUserInfoByID(org_id, 4270) ie_cbm1.BCK01C = "38" ie_cbm1.BCE02A = doctor_info.DoctorCode ie_cbm1.BCE03A = doctor_info.UserName ie_cbm1.BCE03B = "" ie_cbm1.VAF53 = "-1" ie_cbm1.VAF55 = subitem.Remark ie_cbm1.BCK01D = "38" ie_cbm1.VAF58 = "0" ie_cbm1.VAF59 = strconv.FormatInt(int64(subitem.Groupno ), 10) ie_cbm1.VAF60 = "" ie_cbm1.VAF61 = "1" ie_cbm1.VAF62 = "0" ie_cbm1.LSign = "0" ie_cbm1.BDA01A = ie_cbm1.BDA01 ie_cbm1.LRoute = "0" ie_cbm1.BCE01A = doctor_info.DoctorNumber ie_cbm1.BCE01B = "0" ie_cbm1.VAF01B = "0" ie_cbm1.VCO01 = "0" ie_cbm1.BCE01H = "0" ie_cbm1.BCE03H = "" ie_cbm1.BIW02 = "" ie_cbm1.RCurrent = "0" ie_cbm1.FCheck = "0" ie_cbm1.UnameA = "" ie_cbm1.VEH02 = "" vAF1.Ie = append(vAF1.Ie, ie_cbm1) } //hisDoctorAdviceInfo := RemoveRepeatedPurviewElementdoctoradvice(item.HisDoctorAdviceInfo) //每种药品下的给药途径 for _, subitem := range item.HisDoctorAdviceInfo { way, _ := service.GetDrugwayDicByName(subitem.DeliveryWay, c.GetAdminUserInfo().CurrentOrgId) var ie_cbm1 models.IEtwo ie_cbm1.CBMID = strconv.FormatInt(int64(item.ID), 10) ie_cbm1.VAF04 = strconv.FormatInt(int64(li.Acf01), 10) ie_cbm1.VAA01 = strconv.FormatInt(int64(li.Vaa01), 10) ie_cbm1.VAF06 = strconv.FormatInt(int64(li.Vaa07), 10) ie_cbm1.BCK01A = strconv.FormatInt(int64(li.Bck01B), 10) ie_cbm1.ROWNR = "0" ie_cbm1.VAF10 = "1" ie_cbm1.VAF11 = "2" ie_cbm1.BDA01 = "T" //诊疗类型 ie_cbm1.BBX01 = way.Code ie_cbm1.VAF14 = "" //检验样本类型 ie_cbm1.VAF15 = "" //检验样本类型 ie_cbm1.BBY01 = way.Bby01 //药品规格id或材料规格id if li.Acf01 == 1 { ie_cbm1.VAF17 = strconv.FormatInt(int64(subitem.Day), 10) //药品规格id或材料规格id } else { ie_cbm1.VAF17 = "0" //药品规格id或材料规格id } ie_cbm1.VAF18 = fmt.Sprintf("%.2f", subitem.SingleDose) //药品规格id或材料规格id ie_cbm1.VAF19 = fmt.Sprintf("%.2f", subitem.SingleDose) + " " + subitem.SingleDoseUnit //药品规格id或材料规格id ie_cbm1.VAF20 = fmt.Sprintf("%.2f", subitem.SingleDose) //ie_cbm1.VAF21 = fmt.Sprintf("%.2f",subitem.PrescribingNumber) //ie_cbm1.VAF18 = "" //药品规格id或材料规格id //ie_cbm1.VAF19 = "" //ie_cbm1.VAF20 = "" if subitem.DrugWayCount == "" { ie_cbm1.VAF21 = "1" } else { ie_cbm1.VAF21 = subitem.DrugWayCount } ie_cbm1.VAF22 = way.Name ie_cbm1.Crypt = "0" ie_cbm1.VAF23 = "" ie_cbm1.BCK01B = subitem.BaseDrugLib.Bck01b ie_cbm1.VAF26 = subitem.ExecutionFrequency ie_cbm1.VAF27 = "1" ie_cbm1.VAF28 = "1" ie_cbm1.VAF29 = "1" ie_cbm1.BCK01C = "38" ie_cbm1.VAF30 = "" ie_cbm1.VAF31 = "0" ie_cbm1.VAF32 = "1" //todo ie_cbm1.VAF33 = "0" ie_cbm1.VAF34 = "0" ie_cbm1.VAF35 = "0" tempTime1 := time.Unix(subitem.StartTime, 0) timeFormatOne := tempTime1.Format("2006-01-02 15:04:05") ie_cbm1.VAF36 = timeFormatOne ie_cbm1.VAF37 = "1899-12-30" doctor_info, _ := service.GetAdminUserInfoByID(org_id, 4270) ie_cbm1.BCE02A = doctor_info.DoctorCode ie_cbm1.BCE03A = doctor_info.UserName ie_cbm1.BCE03B = "" ie_cbm1.VAF53 = "-1" ie_cbm1.VAF55 = subitem.Remark ie_cbm1.BCK01D = "38" ie_cbm1.VAF58 = "0" ie_cbm1.VAF59 =strconv.FormatInt(int64(subitem.Groupno ), 10) ie_cbm1.VAF60 = "" ie_cbm1.VAF61 = "1" ie_cbm1.VAF62 = "0" ie_cbm1.LSign = "0" ie_cbm1.BDA01A = ie_cbm1.BDA01 ie_cbm1.LRoute = "0" ie_cbm1.BCE01A = doctor_info.DoctorNumber ie_cbm1.BCE01B = "0" ie_cbm1.VAF01B = "0" ie_cbm1.VCO01 = "0" ie_cbm1.BCE01H = "0" ie_cbm1.BCE03H = "" ie_cbm1.BIW02 = "" ie_cbm1.RCurrent = "0" ie_cbm1.FCheck = "0" ie_cbm1.UnameA = "" ie_cbm1.VEH02 = "" ie_cbm1.VAF07 = "0" vAF1.Ie = append(vAF1.Ie, ie_cbm1) } }else{ //组号去重 //temphisDoctorAdviceInfo := RemoveRepeatedPurviewElementdoctoradvice(item.HisDoctorAdviceInfo) // 使用 map 来存储 groupno 的数量 //groupCount := make(map[int64]int64) // 使用 map 来存储 groupno 的数量和最后一条数据的索引 groupInfo := make(map[string]struct { Count int64 LastElement int }) // 遍历切片,计算 groupno 的数量和最后一条数据的索引 for i, obj := range item.HisDoctorAdviceInfo { fmt.Println("转换失败1:", strconv.FormatInt(int64(obj.Groupno), 10) +"-"+strconv.FormatInt(int64(obj.PrescriptionId), 10)) info, ok := groupInfo[strconv.FormatInt(int64(obj.Groupno), 10) +"-"+strconv.FormatInt(int64(obj.PrescriptionId), 10)] fmt.Println("转换失败2:",info) if !ok { info = struct { Count int64 LastElement int }{} } info.Count++ info.LastElement = i groupInfo[strconv.FormatInt(int64(obj.Groupno), 10) +"-"+strconv.FormatInt(int64(obj.PrescriptionId), 10)] = info fmt.Println("转换失败3:",groupInfo[strconv.FormatInt(int64(obj.Groupno), 10) +"-"+strconv.FormatInt(int64(obj.PrescriptionId), 10)]) } fmt.Println("转换失败4:",groupInfo) // 根据 groupno 的数量设置字段值 for i, obj := range item.HisDoctorAdviceInfo { info := groupInfo[strconv.FormatInt(int64(obj.Groupno), 10) +"-"+strconv.FormatInt(int64(obj.PrescriptionId), 10)] if info.Count < 2 { fmt.Println("转换失败555:") item.HisDoctorAdviceInfo[i].NewGroupno = strconv.FormatInt(int64(1), 10) item.HisDoctorAdviceInfo[i].Groupno = int64(rand.Intn(90000) + 10000) } else { // 对于数量大于等于 2 的,将最后一条数据设置 1,其他设置为随机数 if i == info.LastElement { fmt.Println("转换失败6666:") item.HisDoctorAdviceInfo[i].NewGroupno = strconv.FormatInt(int64(1), 10) item.HisDoctorAdviceInfo[i].Groupno = int64(rand.Intn(90000) + 10000) } else { fmt.Println("转换失败777777:") item.HisDoctorAdviceInfo[i].NewGroupno = strconv.FormatInt(obj.ID, 10) } } } for _, subitem := range item.HisDoctorAdviceInfo { fmt.Println("转换失败777777:", subitem.NewGroupno) var ie_cbm1 models.IEtwo ie_cbm1.CBMID = strconv.FormatInt(int64(item.ID), 10) ie_cbm1.VAF04 = strconv.FormatInt(int64(li.Acf01), 10) ie_cbm1.VAA01 = strconv.FormatInt(int64(li.Vaa01), 10) ie_cbm1.VAF06 = strconv.FormatInt(int64(li.Vaa07), 10) ie_cbm1.BCK01A = strconv.FormatInt(int64(li.Bck01B), 10) ie_cbm1.ROWNR = subitem.NewGroupno ie_cbm1.VAF10 = "1" ie_cbm1.VAF11 = "2" ie_cbm1.BDA01 = "1" //诊疗类型 ie_cbm1.BBX01 = subitem.BaseDrugLib.ZuobiaoId ie_cbm1.VAF14 = "" //检验样本类型 ie_cbm1.VAF15 = "" ie_cbm1.BBY01 = subitem.BaseDrugLib.Bby01 //药品规格id或材料规格id if li.Acf01 == 1 { ie_cbm1.VAF17 = strconv.FormatInt(int64(subitem.Day), 10) } else { ie_cbm1.VAF17 = "0" } ie_cbm1.VAF18 = fmt.Sprintf("%.2f", subitem.SingleDose) //药品规格id或材料规格id ie_cbm1.VAF19 = fmt.Sprintf("%.2f", subitem.SingleDose) + " " + subitem.SingleDoseUnit //药品规格id或材料规格id ie_cbm1.VAF20 = fmt.Sprintf("%.2f", subitem.SingleDose) ie_cbm1.VAF21 = fmt.Sprintf("%.2f", subitem.PrescribingNumber) ie_cbm1.VAF22 = subitem.AdviceName + " " + subitem.BaseDrugLib.DrugSpec ie_cbm1.Crypt = "0" ie_cbm1.VAF23 = "" ie_cbm1.BCK01B = subitem.BaseDrugLib.Bck01b ie_cbm1.VAF26 = subitem.ExecutionFrequency ie_cbm1.VAF27 = "1" ie_cbm1.VAF28 = "1" ie_cbm1.VAF29 = "1" ie_cbm1.VAF30 = "" ie_cbm1.VAF31 = "0" ie_cbm1.VAF32 = "0" //todo ie_cbm1.VAF33 = "0" ie_cbm1.VAF34 = "0" ie_cbm1.VAF35 = "0" tempTime1 := time.Unix(subitem.StartTime, 0) timeFormatOne := tempTime1.Format("2006-01-02 15:04:05") ie_cbm1.VAF36 = timeFormatOne ie_cbm1.VAF37 = "1899-12-30" doctor_info, _ := service.GetAdminUserInfoByID(org_id, 4270) ie_cbm1.BCK01C = "38" ie_cbm1.BCE02A = doctor_info.DoctorCode ie_cbm1.BCE03A = doctor_info.UserName ie_cbm1.BCE03B = "" ie_cbm1.VAF53 = "-1" ie_cbm1.VAF55 = subitem.Remark ie_cbm1.BCK01D = "38" ie_cbm1.VAF58 = "0" ie_cbm1.VAF59 = strconv.FormatInt(int64(subitem.Groupno ), 10) ie_cbm1.VAF60 = "" ie_cbm1.VAF61 = "1" ie_cbm1.VAF62 = "0" ie_cbm1.LSign = "0" ie_cbm1.BDA01A = ie_cbm1.BDA01 ie_cbm1.LRoute = "0" ie_cbm1.BCE01A = doctor_info.DoctorNumber ie_cbm1.BCE01B = "0" ie_cbm1.VAF01B = "0" ie_cbm1.VCO01 = "0" ie_cbm1.BCE01H = "0" ie_cbm1.BCE03H = "" ie_cbm1.BIW02 = "" ie_cbm1.RCurrent = "0" ie_cbm1.FCheck = "0" ie_cbm1.UnameA = "" ie_cbm1.VEH02 = "" vAF1.Ie = append(vAF1.Ie, ie_cbm1) } //hisDoctorAdviceInfo := RemoveRepeatedPurviewElementdoctoradvice(item.HisDoctorAdviceInfo) //每种药品下的给药途径 for _, subitem := range item.HisDoctorAdviceInfo { way, _ := service.GetDrugwayDicByName(subitem.DeliveryWay, c.GetAdminUserInfo().CurrentOrgId) var ie_cbm1 models.IEtwo ie_cbm1.CBMID = strconv.FormatInt(int64(item.ID), 10) ie_cbm1.VAF04 = strconv.FormatInt(int64(li.Acf01), 10) ie_cbm1.VAA01 = strconv.FormatInt(int64(li.Vaa01), 10) ie_cbm1.VAF06 = strconv.FormatInt(int64(li.Vaa07), 10) ie_cbm1.BCK01A = strconv.FormatInt(int64(li.Bck01B), 10) ie_cbm1.ROWNR = "0" ie_cbm1.VAF10 = "1" ie_cbm1.VAF11 = "2" ie_cbm1.BDA01 = "T" //诊疗类型 ie_cbm1.BBX01 = way.Code ie_cbm1.VAF14 = "" //检验样本类型 ie_cbm1.VAF15 = "" //检验样本类型 ie_cbm1.BBY01 = way.Bby01 //药品规格id或材料规格id if li.Acf01 == 1 { ie_cbm1.VAF17 = strconv.FormatInt(int64(subitem.Day), 10) //药品规格id或材料规格id } else { ie_cbm1.VAF17 = "0" //药品规格id或材料规格id } ie_cbm1.VAF18 = fmt.Sprintf("%.2f", subitem.SingleDose) //药品规格id或材料规格id ie_cbm1.VAF19 = fmt.Sprintf("%.2f", subitem.SingleDose) + " " + subitem.SingleDoseUnit //药品规格id或材料规格id ie_cbm1.VAF20 = fmt.Sprintf("%.2f", subitem.SingleDose) //ie_cbm1.VAF21 = fmt.Sprintf("%.2f",subitem.PrescribingNumber) //ie_cbm1.VAF18 = "" //药品规格id或材料规格id //ie_cbm1.VAF19 = "" //ie_cbm1.VAF20 = "" if subitem.DrugWayCount == "" { ie_cbm1.VAF21 = "1" } else { ie_cbm1.VAF21 = subitem.DrugWayCount } ie_cbm1.VAF22 = way.Name ie_cbm1.Crypt = "0" ie_cbm1.VAF23 = "" ie_cbm1.BCK01B = subitem.BaseDrugLib.Bck01b ie_cbm1.VAF26 = subitem.ExecutionFrequency ie_cbm1.VAF27 = "1" ie_cbm1.VAF28 = "1" ie_cbm1.VAF29 = "1" ie_cbm1.BCK01C = "38" ie_cbm1.VAF30 = "" ie_cbm1.VAF31 = "0" ie_cbm1.VAF32 = "1" //todo ie_cbm1.VAF33 = "0" ie_cbm1.VAF34 = "0" ie_cbm1.VAF35 = "0" tempTime1 := time.Unix(subitem.StartTime, 0) timeFormatOne := tempTime1.Format("2006-01-02 15:04:05") ie_cbm1.VAF36 = timeFormatOne ie_cbm1.VAF37 = "1899-12-30" doctor_info, _ := service.GetAdminUserInfoByID(org_id, 4270) ie_cbm1.BCE02A = doctor_info.DoctorCode ie_cbm1.BCE03A = doctor_info.UserName ie_cbm1.BCE03B = "" ie_cbm1.VAF53 = "-1" ie_cbm1.VAF55 = subitem.Remark ie_cbm1.BCK01D = "38" ie_cbm1.VAF58 = "0" ie_cbm1.VAF59 =strconv.FormatInt(int64(subitem.Groupno ), 10) ie_cbm1.VAF60 = "" ie_cbm1.VAF61 = "1" ie_cbm1.VAF62 = "0" ie_cbm1.LSign = "0" ie_cbm1.BDA01A = ie_cbm1.BDA01 ie_cbm1.LRoute = "0" ie_cbm1.BCE01A = doctor_info.DoctorNumber ie_cbm1.BCE01B = "0" ie_cbm1.VAF01B = "0" ie_cbm1.VCO01 = "0" ie_cbm1.BCE01H = "0" ie_cbm1.BCE03H = "" ie_cbm1.BIW02 = "" ie_cbm1.RCurrent = "0" ie_cbm1.FCheck = "0" ie_cbm1.UnameA = "" ie_cbm1.VEH02 = "" ie_cbm1.VAF07 = "0" vAF1.Ie = append(vAF1.Ie, ie_cbm1) } } } else if item.Type == 2 { for index, subitem := range item.HisPrescriptionProject { if subitem.Type == 2 { if subitem.HisProject.CostClassify != 3 { var ie_cbm1 models.IEtwo ie_cbm1.CBMID = strconv.FormatInt(int64(item.ID), 10) ie_cbm1.VAF04 = strconv.FormatInt(int64(li.Acf01), 10) ie_cbm1.VAA01 = strconv.FormatInt(int64(li.Vaa01), 10) ie_cbm1.VAF06 = strconv.FormatInt(int64(li.Vaa07), 10) ie_cbm1.BCK01A = strconv.FormatInt(int64(li.Bck01B), 10) ie_cbm1.ROWNR = strconv.FormatInt(int64(index+1), 10) ie_cbm1.VAF10 = "1" ie_cbm1.VAF11 = "2" ie_cbm1.BDA01 = "T" //诊疗类型 ie_cbm1.BBX01 = subitem.HisProject.ZuobiaoId ie_cbm1.VAF14 = "" //检验样本类型 ie_cbm1.VAF15 = "" //检验样本类型 ie_cbm1.BBY01 = subitem.HisProject.Bby01 //药品规格id或材料规格id if li.Acf01 == 1 { ie_cbm1.VAF17 = subitem.Day //药品规格id或材料规格id if len(subitem.Day) == 0 { ie_cbm1.VAF17 = "1" } } else { ie_cbm1.VAF17 = "0" //药品规格id或材料规格idn } if subitem.SingleDose == "" { subitem.SingleDose = "1" } ie_cbm1.VAF18 = subitem.SingleDose //药品规格id或材料规格id ie_cbm1.VAF19 = subitem.SingleDose + " " + subitem.Unit //药品规格id或材料规格id ie_cbm1.VAF20 = subitem.SingleDose ie_cbm1.VAF21 = subitem.Count ie_cbm1.VAF22 = subitem.HisProject.ProjectName ie_cbm1.Crypt = "0" ie_cbm1.VAF23 = "" ie_cbm1.BCK01B = subitem.HisProject.Bck01b ie_cbm1.VAF26 = subitem.ExecutionFrequency ie_cbm1.VAF27 = "1" ie_cbm1.VAF28 = "1" ie_cbm1.VAF29 = "" ie_cbm1.BCK01C = "38" ie_cbm1.VAF30 = "" ie_cbm1.VAF31 = "0" ie_cbm1.VAF32 = "0" //todo ie_cbm1.VAF33 = "0" ie_cbm1.VAF34 = "0" ie_cbm1.VAF35 = "0" tempTime1 := time.Unix(subitem.StartTime, 0) timeFormatOne := tempTime1.Format("2006-01-02 15:04:05") ie_cbm1.VAF36 = timeFormatOne ie_cbm1.VAF37 = "1899-12-30" doctor_info, _ := service.GetAdminUserInfoByID(org_id, 4270) ie_cbm1.BCE02A = doctor_info.DoctorCode ie_cbm1.BCE03A = doctor_info.UserName ie_cbm1.BCE03B = "" ie_cbm1.VAF53 = "-1" ie_cbm1.VAF55 = subitem.Remark ie_cbm1.BCK01D = "38" ie_cbm1.VAF58 = "0" ie_cbm1.VAF59 = strconv.FormatInt(int64(index+1), 10) ie_cbm1.VAF60 = "" ie_cbm1.VAF61 = "1" ie_cbm1.VAF62 = "0" ie_cbm1.LSign = "0" ie_cbm1.BDA01A = "" //诊疗类型 ie_cbm1.LRoute = "0" ie_cbm1.BCE01A = doctor_info.DoctorNumber //ie_cbm1.BCE01A = doctor_info.UserName ie_cbm1.BCE01B = "0" ie_cbm1.VAF01B = "0" ie_cbm1.VCO01 = "0" ie_cbm1.BCE01H = "0" ie_cbm1.BCE03H = "" ie_cbm1.BIW02 = "" ie_cbm1.RCurrent = "0" ie_cbm1.FCheck = "0" ie_cbm1.UnameA = "" ie_cbm1.VAF07 = "0" ie_cbm1.VEH02 = "" vAF1.Ie = append(vAF1.Ie, ie_cbm1) } if subitem.HisProject.CostClassify == 3 { var ie_cbm1 models.IEtwo ie_cbm1.CBMID = strconv.FormatInt(int64(item.ID), 10) ie_cbm1.VAF04 = strconv.FormatInt(int64(li.Acf01), 10) ie_cbm1.VAA01 = strconv.FormatInt(int64(li.Vaa01), 10) ie_cbm1.VAF06 = strconv.FormatInt(int64(li.Vaa07), 10) ie_cbm1.BCK01A = strconv.FormatInt(int64(li.Bck01B), 10) ie_cbm1.ROWNR = strconv.FormatInt(int64(index+1), 10) ie_cbm1.VAF10 = "1" ie_cbm1.VAF11 = "2" ie_cbm1.BDA01 = "L" //诊疗类型 ie_cbm1.BBX01 = subitem.HisProject.ZuobiaoId ie_cbm1.VAF14 = subitem.HisProject.Vaf14 //检验样本类型 ie_cbm1.VAF15 = "" //检验样本类型 ie_cbm1.BBY01 = subitem.HisProject.Bby01 //药品规格id或材料规格id if li.Acf01 == 1 { ie_cbm1.VAF17 = subitem.Day //药品规格id或材料规格id } else { ie_cbm1.VAF17 = "0" //药品规格id或材料规格idn } if subitem.SingleDose == "" { subitem.SingleDose = "1" } ie_cbm1.VAF18 = subitem.SingleDose //药品规格id或材料规格id ie_cbm1.VAF19 = subitem.SingleDose + " " + subitem.Unit //药品规格id或材料规格id ie_cbm1.VAF20 = subitem.SingleDose ie_cbm1.VAF21 = subitem.Count ie_cbm1.VAF22 = subitem.HisProject.ProjectName ie_cbm1.Crypt = "0" ie_cbm1.VAF23 = "" ie_cbm1.BCK01B = subitem.HisProject.Bck01b ie_cbm1.VAF26 = subitem.ExecutionFrequency ie_cbm1.VAF27 = "1" ie_cbm1.VAF28 = "1" ie_cbm1.VAF29 = "" ie_cbm1.BCK01C = "38" ie_cbm1.VAF30 = "" ie_cbm1.VAF31 = "0" ie_cbm1.VAF32 = "0" //todo ie_cbm1.VAF33 = "0" ie_cbm1.VAF34 = "0" ie_cbm1.VAF35 = "0" tempTime1 := time.Unix(subitem.StartTime, 0) timeFormatOne := tempTime1.Format("2006-01-02 15:04:05") ie_cbm1.VAF36 = timeFormatOne ie_cbm1.VAF37 = "1899-12-30" doctor_info, _ := service.GetAdminUserInfoByID(org_id, 4270) ie_cbm1.BCE02A = doctor_info.DoctorCode ie_cbm1.BCE03A = doctor_info.UserName ie_cbm1.BCE03B = "" ie_cbm1.VAF53 = "-1" ie_cbm1.VAF55 = subitem.Remark ie_cbm1.BCK01D = "38" ie_cbm1.VAF58 = "0" ie_cbm1.VAF59 = strconv.FormatInt(int64(index+1), 10) ie_cbm1.VAF60 = "" ie_cbm1.VAF61 = "1" ie_cbm1.VAF62 = "0" ie_cbm1.LSign = "0" ie_cbm1.BDA01A = "" //诊疗类型 ie_cbm1.LRoute = "0" ie_cbm1.BCE01A = doctor_info.DoctorNumber ie_cbm1.VAF07 = "0" //ie_cbm1.BCE01A = doctor_info.UserName ie_cbm1.BCE01B = "0" ie_cbm1.VAF01B = "0" ie_cbm1.VCO01 = "0" ie_cbm1.BCE01H = "0" ie_cbm1.BCE03H = "" ie_cbm1.BIW02 = "" ie_cbm1.RCurrent = "0" ie_cbm1.FCheck = "0" ie_cbm1.UnameA = "" ie_cbm1.VEH02 = "" vAF1.Ie = append(vAF1.Ie, ie_cbm1) } } else if subitem.Type == 3 { var ie_cbm1 models.IEtwo ie_cbm1.CBMID = strconv.FormatInt(int64(item.ID), 10) ie_cbm1.VAF04 = strconv.FormatInt(int64(li.Acf01), 10) ie_cbm1.VAA01 = strconv.FormatInt(int64(li.Vaa01), 10) ie_cbm1.VAF06 = strconv.FormatInt(int64(li.Vaa07), 10) ie_cbm1.BCK01A = strconv.FormatInt(int64(li.Bck01B), 10) ie_cbm1.ROWNR = strconv.FormatInt(int64(index+1), 10) ie_cbm1.VAF10 = "1" ie_cbm1.VAF11 = "2" ie_cbm1.BDA01 = "4" //诊疗类型 ie_cbm1.BBX01 = subitem.GoodInfo.ZuobiaoId ie_cbm1.VAF14 = "" //检验样本类型 ie_cbm1.VAF15 = "" //检验样本类型 ie_cbm1.BBY01 = subitem.GoodInfo.Bby01 //药品规格id或材料规格id if li.Acf01 == 1 { ie_cbm1.VAF17 = subitem.Day //药品规格id或材料规格id if len(subitem.Day) == 0 { ie_cbm1.VAF17 = "1" } } else { ie_cbm1.VAF17 = "0" //药品规格id或材料规格idn } if subitem.SingleDose == "" { subitem.SingleDose = "1" } ie_cbm1.VAF18 = subitem.SingleDose //药品规格id或材料规格id ie_cbm1.VAF19 = subitem.SingleDose + " " + subitem.Unit //药品规格id或材料规格id ie_cbm1.VAF20 = subitem.SingleDose ie_cbm1.VAF21 = subitem.Count ie_cbm1.BCK01C = "38" ie_cbm1.VAF22 = subitem.GoodInfo.GoodName + " " + subitem.GoodInfo.SpecificationName ie_cbm1.Crypt = "0" ie_cbm1.VAF23 = "" ie_cbm1.BCK01B = subitem.GoodInfo.Bck01b ie_cbm1.VAF26 = subitem.ExecutionFrequency ie_cbm1.VAF27 = "1" ie_cbm1.VAF28 = "1" ie_cbm1.VAF29 = "" ie_cbm1.VAF07 = "0" ie_cbm1.VAF30 = "" ie_cbm1.VAF31 = "0" ie_cbm1.VAF32 = "0" //todo ie_cbm1.VAF33 = "0" ie_cbm1.VAF34 = "0" ie_cbm1.VAF35 = "0" tempTime1 := time.Unix(subitem.StartTime, 0) timeFormatOne := tempTime1.Format("2006-01-02 15:04:05") ie_cbm1.VAF36 = timeFormatOne ie_cbm1.VAF37 = "1899-12-30" doctor_info, _ := service.GetAdminUserInfoByID(org_id, 4270) ie_cbm1.BCE02A = doctor_info.DoctorCode ie_cbm1.BCE03A = doctor_info.UserName ie_cbm1.BCE03B = "" ie_cbm1.BCK01C = "38" ie_cbm1.VAF53 = "-1" ie_cbm1.VAF55 = subitem.Remark ie_cbm1.BCK01D ="38" ie_cbm1.VAF58 = "0" ie_cbm1.VAF59 = strconv.FormatInt(int64(index+1), 10) ie_cbm1.VAF60 = "" ie_cbm1.VAF61 = "1" ie_cbm1.VAF62 = "0" ie_cbm1.LSign = "0" ie_cbm1.BDA01A = "" //诊疗类型 ie_cbm1.LRoute = "0" ie_cbm1.BCE01A = doctor_info.DoctorNumber ie_cbm1.BCE01B = "0" ie_cbm1.VAF01B = "0" ie_cbm1.VCO01 = "0" ie_cbm1.BCE01H = "0" ie_cbm1.BCE03H = "" ie_cbm1.BIW02 = "" ie_cbm1.RCurrent = "0" ie_cbm1.FCheck = "0" ie_cbm1.UnameA = "" ie_cbm1.VEH02 = "" vAF1.Ie = append(vAF1.Ie, ie_cbm1) } } } } root.VAF1 = vAF1 for index, item := range big_ps[start-1 : stop] { sick, _ := service.FindSickById(sick_type) item.VMHisPrescriptionInfo.Diagnosis = "716" diass := strings.Split(item.VMHisPrescriptionInfo.Diagnosis, ",") //service.get //诊断 for _, subitem := range diass { diagnosisConfig, _ := service.FindDiagnoseByIdtwo(subitem) if index == 0 { var ie_cbm1 models.IEthree ie_cbm1.CBMID = strconv.FormatInt(int64(item.ID), 10) //ie_cbm1.CBMID = strconv.FormatInt(int64(index+1), 10) ie_cbm1.VAA01 = strconv.FormatInt(int64(li.Vaa01), 10) ie_cbm1.VAA07 = strconv.FormatInt(int64(li.Vaa07), 10) ie_cbm1.ACF01 = strconv.FormatInt(int64(li.Acf01), 10) ie_cbm1.VAO06 = strconv.FormatInt(int64(index+1), 10) ie_cbm1.VAO07 = "1" ie_cbm1.VAO10 = "0" ie_cbm1.VAO11 = "1" ie_cbm1.BAK01A = sick.ContentCode ie_cbm1.CAM01 = diagnosisConfig.ContentCode ie_cbm1.VAO15 = diagnosisConfig.ClassName ie_cbm1.VAO18 = "0" ie_cbm1.VAO22 = "1" ie_cbm1.IAA01 = "" ie_cbm1.IAD03 = "" ie_cbm1.BAK01B = "" ie_cbm1.VAO26 = "" ie_cbm1.IAD04 = "" ie_cbm1.IAD01 = "" ie_cbm1.VAO25 = "1" ie_cbm1.VAO35 = "" vAO1.Ie = append(vAO1.Ie, ie_cbm1) } else { var ie_cbm1 models.IEthree ie_cbm1.CBMID = strconv.FormatInt(int64(item.ID), 10) ie_cbm1.VAA01 = strconv.FormatInt(int64(li.Vaa01), 10) ie_cbm1.VAA07 = strconv.FormatInt(int64(li.Vaa07), 10) ie_cbm1.ACF01 = strconv.FormatInt(int64(li.Acf01), 10) ie_cbm1.VAO06 = strconv.FormatInt(int64(index+1), 10) ie_cbm1.VAO07 = "1" ie_cbm1.VAO10 = "0" ie_cbm1.VAO11 = "1" ie_cbm1.BAK01A = sick.ContentCode ie_cbm1.CAM01 = diagnosisConfig.ContentCode ie_cbm1.VAO15 = diagnosisConfig.ClassName ie_cbm1.VAO18 = "0" ie_cbm1.VAO22 = "1" ie_cbm1.IAA01 = "" ie_cbm1.IAD03 = "" ie_cbm1.BAK01B = "" ie_cbm1.VAO26 = "" ie_cbm1.IAD04 = "" ie_cbm1.IAD01 = "" ie_cbm1.VAO25 = "1" ie_cbm1.VAO35 = "" vAO1.Ie = append(vAO1.Ie, ie_cbm1) } } } for index, item := range big_ps[start-1 : stop] { //sick, _ := service.FindSickById(sick_type) //item.VMHisPrescriptionInfo.Diagnosis = "716" //dias := strings.Split(item.VMHisPrescriptionInfo.Diagnosis, ",") //service.get //诊断 for _, subitem := range newArr { diagnosisConfig, _ := service.FindDiagnoseByIdtwo(subitem) //fmt.Println("6666666666666") //fmt.Println(diagnosisConfig) jsonString2, err := json.Marshal(diagnosisConfig) if err != nil { fmt.Println("转换失败:", err) return } saveLog("", string(jsonString2), "444", "55555", "") if index == 0 { var ie_cbm1 models.IEthree ie_cbm1.CBMID = strconv.FormatInt(int64(item.ID), 10) //ie_cbm1.CBMID = strconv.FormatInt(int64(index+1), 10) ie_cbm1.VAA01 = strconv.FormatInt(int64(li.Vaa01), 10) ie_cbm1.VAA07 = strconv.FormatInt(int64(li.Vaa07), 10) ie_cbm1.ACF01 = strconv.FormatInt(int64(li.Acf01), 10) ie_cbm1.VAO06 = strconv.FormatInt(int64(index+1), 10) ie_cbm1.VAO07 = "1" ie_cbm1.VAO10 = "0" ie_cbm1.VAO11 = "1" ie_cbm1.BAK01A = "" ie_cbm1.CAM01 = diagnosisConfig.ContentCode ie_cbm1.VAO15 = diagnosisConfig.ClassName ie_cbm1.VAO18 = "0" ie_cbm1.VAO22 = "1" ie_cbm1.IAA01 = "" ie_cbm1.IAD03 = "" ie_cbm1.BAK01B = "" ie_cbm1.VAO26 = "" ie_cbm1.IAD04 = "" ie_cbm1.IAD01 = "" ie_cbm1.VAO25 = "2" ie_cbm1.VAO35 = "" vAO1.Ie = append(vAO1.Ie, ie_cbm1) } else { var ie_cbm1 models.IEthree ie_cbm1.CBMID = strconv.FormatInt(int64(item.ID), 10) ie_cbm1.VAA01 = strconv.FormatInt(int64(li.Vaa01), 10) ie_cbm1.VAA07 = strconv.FormatInt(int64(li.Vaa07), 10) ie_cbm1.ACF01 = strconv.FormatInt(int64(li.Acf01), 10) ie_cbm1.VAO06 = strconv.FormatInt(int64(index+1), 10) ie_cbm1.VAO07 = "1" ie_cbm1.VAO10 = "0" ie_cbm1.VAO11 = "1" ie_cbm1.BAK01A = "" ie_cbm1.CAM01 = diagnosisConfig.ContentCode ie_cbm1.VAO15 = diagnosisConfig.ClassName ie_cbm1.VAO18 = "0" ie_cbm1.VAO22 = "1" ie_cbm1.IAA01 = "" ie_cbm1.IAD03 = "" ie_cbm1.BAK01B = "" ie_cbm1.VAO26 = "" ie_cbm1.IAD04 = "" ie_cbm1.IAD01 = "" ie_cbm1.VAO25 = "2" ie_cbm1.VAO35 = "" vAO1.Ie = append(vAO1.Ie, ie_cbm1) } } } //// //////检验检查医嘱 //for _, item := range prescriptions{ // fmt.Println("6666666666666") // if item.Type == 2{ // for _, subitem := range item.HisPrescriptionProject { // if subitem.Type == 2{ // if subitem.HisProject.CostClassify == 3 { // var ie_cbm1 models.IEfour // ie_cbm1.VBQ01 = strconv.FormatInt(int64(item.ID), 10) // ie_cbm1.VAA01 = strconv.FormatInt(int64(li.Vaa01), 10) // ie_cbm1.VAA07 = strconv.FormatInt(int64(li.Vaa07), 10) // ie_cbm1.ACF01 = strconv.FormatInt(int64(li.Acf01), 10) // ie_cbm1.VAP01 = "0" // ie_cbm1.VBQ07 = "0" // ie_cbm1.BCK01A = departmwnt.Number // ie_cbm1.BCK01B= "0" // ie_cbm1.BCE03A= "" // ie_cbm1.BCE01A= "0" // ie_cbm1.VBQ27= subitem.HisProject.ProjectName // ie_cbm1.VBQ28= patientPrescription.Diagnosis // ie_cbm1.VBQ29= "" // ie_cbm1.VBQ30= "" // vBQ1.Ie = append(vBQ1.Ie, ie_cbm1) // } // // } // // } // } //} root.VAO1 = vAO1 root.VBQ1 = vBQ1 xmlStr2, err := xml.MarshalIndent(root, "", " ") if err != nil { fmt.Println("转换为XML时发生错误:", err) return } data := make(map[string]interface{}) data["xmlStr"] = string(xmlStr2) bytesData, _ := json.Marshal(data) var req *http.Request client := &http.Client{} fmt.Println(string(xmlStr2)) saveLog("", string(xmlStr2), "1111", "上传明细xml", "") req, _ = http.NewRequest("POST", "http://127.0.0.1:9532/"+"nmg/coordinate/upload", bytes.NewBufferString(string(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 } respJSON3 := respJSON["data"].(map[string]interface{})["msg"].(string) respJSON4 := respJSON["data"].(map[string]interface{})["res"].(string) if respJSON3 == "成功" { //if li.Acf01 != 1{ // //记账 // result2, request2 := service.NMGSettleForCoordinate(info) // saveLog(result2, request2, "记账", "记账", org.OrgName) // // // //data := make(map[string]interface{}) // //data["info"] = &info // // // //fmt.Println(data) // // // //bytesData, _ := json.Marshal(data) // //var req *http.Request // // // //client := &http.Client{} // // // //req, _ = http.NewRequest("POST", "http://192.168.100.199:9532/"+"nmg/coordinate/settle", 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{})["res"].(map[string]interface{}) // //userJSONBytes, _ := json.Marshal(respJSON) // // // //var res2 ResultUpload2 // //if err := json.Unmarshal(userJSONBytes, &res2); err != nil { // // utils.ErrorLog("解析失败:%v", err) // // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // // return // //} // //if res2.Code == 500{ // // c.ServeSuccessJSON(map[string]interface{}{ // // "failed_code": -10, // // "msg": res2.Msg, // // }) // // return // //} //} if len(zuobiao_ids) == 0 { zuobiao_ids = respJSON4 } else { zuobiao_ids = zuobiao_ids + "," + respJSON4 } continue } else { err_msg = respJSON3 is_upload_success = false if len(zuobiao_ids) > 0 { tm := time.Unix(time.Now().Unix(), 0) order := &models.HisOrder{ PsnNo: strconv.FormatInt(int64(li.Vaa01), 10), UserOrgId: org_id, PatientId: patient_id, SettleAccountsDate: recordDateTime, Ctime: time.Now().Unix(), Mtime: time.Now().Unix(), Status: 1, OrderStatus: 1, MdtrtId: strconv.FormatInt(int64(li.Vaa07), 10), Number: zuobiao_ids, SetlId: zuobiao_ids, MedfeeSumamt: total, MedType: strconv.Itoa(int(reg_type)), SettleType: settle_accounts_type, Diagnosis: diagnosis_id, PType: int64(li.Acf01), SetlTime: tm.Format("2006-01-02 15:04:05"), SettleStartTime: recordStartTime, SettleEndTime: recordEndTime, } err = service.CreateOrder(order) if err != nil { //c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeCreateOrderException) return } fmt.Println(idss) if settle_accounts_type == 1{ err = service.UpDatePrescriptionNumber222(org_id, p_id, zuobiao_ids,patient_id) }else{ err = service.UpDatePrescriptionNumber111(org_id, recordStartTime,recordEndTime, zuobiao_ids,patient_id) } //err = service.UpDateHisPrescriptionInfoNumbertwo(org_id, patient_id, strconv.FormatInt(int64(li.Vaa07), 10), recordDateTime, his.ID) err = service.UpdataOrderStatusThreef(zuobiao_ids, org_id) var zuobiao_advice models.HisZuobiaoAdvice zuobiao_advice.Status = 1 zuobiao_advice.RecordDate = recordDateTime zuobiao_advice.PatientId = patient_id zuobiao_advice.Cbm01 = zuobiao_ids zuobiao_advice.Ctime = time.Now().Unix() zuobiao_advice.Mtime = time.Now().Unix() zuobiao_advice.Oid = order.ID zuobiao_advice.StartTime = recordStartTime zuobiao_advice.EndTime = recordEndTime zuobiao_advice.Vaa01 = strconv.FormatInt(int64(li.Vaa01), 10) zuobiao_advice.Vaa07 = strconv.FormatInt(int64(li.Vaa07), 10) zuobiao_advice.UserOrgId = c.GetAdminUserInfo().CurrentOrgId service.Createzuobiao(&zuobiao_advice) } } if is_upload_success == false { if len(zuobiao_ids) > 0 { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": "部分处方数据上传成功,可在已上传或者在坐标系统查看。其余上传失败原因: " + err_msg, }) return } else { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": err_msg, }) return } } } if is_upload_success { if len(zuobiao_ids) > 0 { tm := time.Unix(time.Now().Unix(), 0) order := &models.HisOrder{ PsnNo: strconv.FormatInt(int64(li.Vaa01), 10), UserOrgId: org_id, PatientId: patient_id, SettleAccountsDate: recordDateTime, Ctime: time.Now().Unix(), Mtime: time.Now().Unix(), Status: 1, OrderStatus: 1, MdtrtId: strconv.FormatInt(int64(li.Vaa07), 10), Number: zuobiao_ids, SetlId: zuobiao_ids, MedfeeSumamt: total, MedType: strconv.Itoa(int(reg_type)), SettleType: settle_accounts_type, Diagnosis: diagnosis_id, PType: int64(li.Acf01), SetlTime: tm.Format("2006-01-02 15:04:05"), SettleStartTime: recordStartTime, SettleEndTime: recordEndTime, } err = service.CreateOrder(order) if err != nil { //c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeCreateOrderException) return } err = service.UpDatePrescriptionNumber111(org_id, recordStartTime,recordEndTime, zuobiao_ids,patient_id) //err = service.UpDateHisPrescriptionInfoNumbertwo(org_id, patient_id, strconv.FormatInt(int64(li.Vaa07), 10), recordDateTime, his.ID) err = service.UpdataOrderStatusThreef(zuobiao_ids, org_id) var zuobiao_advice models.HisZuobiaoAdvice zuobiao_advice.Status = 1 zuobiao_advice.RecordDate = recordDateTime zuobiao_advice.PatientId = patient_id zuobiao_advice.Cbm01 = zuobiao_ids zuobiao_advice.Ctime = time.Now().Unix() zuobiao_advice.Mtime = time.Now().Unix() zuobiao_advice.Oid = order.ID zuobiao_advice.StartTime = recordStartTime zuobiao_advice.EndTime = recordEndTime zuobiao_advice.Vaa01 = strconv.FormatInt(int64(li.Vaa01), 10) zuobiao_advice.Vaa07 = strconv.FormatInt(int64(li.Vaa07), 10) zuobiao_advice.UserOrgId = c.GetAdminUserInfo().CurrentOrgId service.Createzuobiao(&zuobiao_advice) } c.ServeSuccessJSON(map[string]interface{}{ "msg": "上传成功", }) } else { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": err_msg, }) } } // //zuobiao, _ := service.Getzuobiao(c.GetAdminUserInfo().CurrentOrgId, patient_id, recordDateTime) // //is_success := true //failed_mag := "" //查询出对应的坐标系统医嘱id,先进行删除操作,在创建医嘱。如果没有医嘱id,则直接创建医嘱 //if zuobiao.ID > 0 { // cbm01s := strings.Split(zuobiao.Cbm01, ",") // fmt.Println(cbm01s) // // for _, iditem := range cbm01s { // fmt.Println(iditem) // var root2 models.Root2 // var tradeInfo2 models.TradeInfo // if li.Acf01 == 1 { // tradeInfo2.PatSource = 1 // tradeInfo2.Type = 0 // } else { // tradeInfo2.PatSource = 2 // tradeInfo2.Type = 1 // // } // tradeInfo2.Detpid = departmwnt.Number // tradeInfo2.Empid = doctor_info.DoctorNumber // tradeInfo2.Empno = doctor_info.DoctorCode // tradeInfo2.Empname = doctor_info.UserName // var vaf01 models.VAF10 // var ie1111 models.IEfive // ie1111.VAF01 = iditem // vaf01.Ie = append(vaf01.Ie, ie1111) // root2.TradeInfo = tradeInfo2 // root2.VAF1 = vaf01 // xmlStr2, err := xml.MarshalIndent(root2, "", " ") // if err != nil { // fmt.Println("转换为XML时发生错误:", err) // return // } // data := make(map[string]interface{}) // data["xmlStr"] = string(xmlStr2) // bytesData, _ := json.Marshal(data) // client := &http.Client{} // // var req *http.Request // // // req, _ = http.NewRequest("POST", "http://192.168.100.199:9532/"+"nmg/coordinate/del", 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 // } // // respJSON2 := respJSON["data"].(map[string]interface{})["msg"].(string) // fmt.Println( respJSON) // fmt.Println( respJSON["data"].(map[string]interface{})) // fmt.Println(respJSON2) // // if respJSON2 != "成功"{ // //is_success = false // failed_mag = respJSON2 // } // } //} } else { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res8.Msg, }) } } type Result struct { ResultObj []struct { Vaf01 int `json:"vaf01"` Vaf10 int `json:"vaf10"` } `json:"resultObj"` Result bool `json:"result"` Code int `json:"code"` ResultMsg string `json:"resultMsg"` Msg string `json:"msg"` Error bool `json:"error"` Success bool `json:"success"` } func (c *CoordinateController) NMGCancelSettleAccount() { zuobiao_id, _ := c.GetInt64("id") zuobiao, _ := service.Getzuobiaobyid(zuobiao_id) admin_user_id, _ := c.GetInt64("admin_user_id") order, _ := service.GetHisOrderByID(zuobiao.Oid) admin_user_info, _ := service.GetAdminUserInfoByID(order.UserOrgId, admin_user_id) is_success := true var failed_mag string if zuobiao.ID > 0 { cbm01s := strings.Split(zuobiao.Cbm01, ",") var p_type int64 //for _, iditem := range cbm01s{ if order.PType == 1 { p_type = 1 } else { p_type = 2 } is_del := true for _, iditem := range cbm01s { var vaf01List []string a, _ := service.QueryNMGPrescriptionForCoordinate(p_type, vaf01List, iditem) var result Result err := json.Unmarshal([]byte(a), &result) fmt.Println("Error:", result) fmt.Println("Error:", err) if err != nil { fmt.Println("Error:", err) return } for _,item := range result.ResultObj{ if item.Vaf10 != 4 { is_del = false } } } if is_del{ err := service.UpdataOrderStatustwo(order.ID, zuobiao.Cbm01, order.UserOrgId) zuobiao.Status = 0 service.Createzuobiao(&zuobiao) if err == nil { c.ServeSuccessJSON(map[string]interface{}{ "msg": "撤销记账成功", }) } else { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } c.ServeSuccessJSON(map[string]interface{}{ "msg": "撤销成功", }) }else{ for _, iditem := range cbm01s { var root2 models.Root2 var tradeInfo2 models.TradeInfo if order.PType == 1 { tradeInfo2.PatSource = 1 tradeInfo2.Type = 0 } else { tradeInfo2.PatSource = 2 tradeInfo2.Type = 1 } tradeInfo2.Detpid = "38" tradeInfo2.Empid = admin_user_info.DoctorNumber tradeInfo2.Empno = admin_user_info.DoctorCode tradeInfo2.Empname = admin_user_info.UserName var vaf01 models.VAF10 var ie1111 models.IEfive ie1111.VAF01 = iditem vaf01.Ie = append(vaf01.Ie, ie1111) root2.TradeInfo = tradeInfo2 root2.VAF1 = vaf01 xmlStr2, err := xml.MarshalIndent(root2, "", " ") if err != nil { fmt.Println("转换为XML时发生错误:", err) return } data := make(map[string]interface{}) data["xmlStr"] = string(xmlStr2) bytesData, _ := json.Marshal(data) client := &http.Client{} var req *http.Request req, _ = http.NewRequest("POST", "http://127.0.0.1:9532/"+"nmg/coordinate/del", 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 } respJSON2 := respJSON["data"].(map[string]interface{})["msg"].(string) if respJSON2 != "成功" { is_success = false if len(failed_mag) == 0 { failed_mag = respJSON2 } else { failed_mag = failed_mag + "---" + respJSON2 } } if strings.Contains(failed_mag, "医嘱已执行收款,不允许在取消医嘱") { is_success = false } } if is_success { err := service.UpdataOrderStatustwo(order.ID, zuobiao.Cbm01, order.UserOrgId) zuobiao.Status = 0 service.Createzuobiao(&zuobiao) if err == nil { c.ServeSuccessJSON(map[string]interface{}{ "msg": "撤销记账成功", }) } else { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } c.ServeSuccessJSON(map[string]interface{}{ "msg": "撤销成功", }) } else { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": failed_mag, }) } } //} else { // c.ServeSuccessJSON(map[string]interface{}{ // "failed_code": -10, // "msg": "查询不到可删除的数据", // }) //} } } //func (c *CoordinateController)NMGgetcheck(){ // patient_id, _ := c.GetInt64("patient_id") // record_date := c.GetString("record_date") // admin_user_id, _ := c.GetInt64("admin_user_id") // //diagnosis_id := c.GetString("diagnosis") // //sick_type, _ := c.GetInt64("sick_type") // //reg_type, _ := c.GetInt64("p_type") // org_id, _ := c.GetInt64("org_id") // org_id = 10454 // org, _ := service.GetOrgById(org_id) // patient, _ := service.GetPatientByID(org.Id, patient_id) // settle_accounts_type, _ := c.GetInt64("settle_accounts_type") // result, request := service.GetNMGHisPatientForCoordinate(0,0,2,patient.Name) // result5, request5 := service.GetNMGHisPatientForCoordinate(0,0,1,patient.Name) // // saveLog(result, request, "查询", "查询", "") // saveLog(result5, request5, "查询", "查询", "") // // var res Data // if err := json.Unmarshal([]byte(result), &res); err != nil { // utils.ErrorLog("解析失败:%v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // // var res8 Data // if err := json.Unmarshal([]byte(result5), &res8); err != nil { // utils.ErrorLog("解析失败:%v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // // if res.Code == 200 || res8.Code == 200 { // var res9 Data // res9.List = append(res9.List,res.List...) // res9.List = append(res9.List,res8.List...) // // // var li ListItem // for _, item := range res9.List{ // cure_date := strings.Split(item.Vae11, " ") // if cure_date[0] == record_date && patient.Name == item.Vaa05{ // li = item // } // } // fmt.Println("11111111") // fmt.Println(li) // fmt.Println("11111111") // 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 // } // org_id := org.Id // recordDateTime := theTime.Unix() // patientPrescription, _ := service.FindPatientPrescriptionInfoTwo(org_id, patient.ID, recordDateTime, 2) // if patientPrescription.ID == 0 { // patientPrescription, _ = service.FindLastPatientPrescriptionInfo(org_id, patient.ID, recordDateTime) // } // //departmwnt, _ := service.GetDepartMentDetail(patientPrescription.Departments) // //admin_user_info, _ := service.GetAdminUserInfoByID(org_id, admin_user_id) // //doctor_info, _ := service.GetAdminUserInfoByID(org_id, patientPrescription.DoctorId) // // // // // //service.QueryNMGChenckForCoordinate(li.Acf01,li.Vaa01,li.Vaa07,"") // // // } else { // c.ServeSuccessJSON(map[string]interface{}{ // "failed_code": -10, // "msg": res.Msg, // }) // } // // //} //func (c *CoordinateController) SettleAccount() { // patient_id, _ := c.GetInt64("patient_id") // record_date := c.GetString("record_date") // admin_user_id, _ := c.GetInt64("admin_user_id") // diagnosis_id := c.GetString("diagnosis") // sick_type, _ := c.GetInt64("sick_type") // reg_type, _ := c.GetInt64("p_type") // org_id, _ := c.GetInt64("org_id") // org_id = 3877 // org, _ := service.GetOrgById(org_id) // patient, _ := service.GetPatientByID(org.Id, patient_id) // settle_accounts_type, _ := c.GetInt64("settle_accounts_type") // // result, request := service.GetHisPatientForCoordinate(patient.IdCardNo) // saveLog(result, request, "查询", "查询", org.OrgName) // var res ResultQuery // if err := json.Unmarshal([]byte(result), &res); err != nil { // utils.ErrorLog("解析失败:%v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // if res.Code == "10000" { // if len(res.Result) == 0 { // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisPatientNoRegException) // 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 // } // org_id := org.Id // recordDateTime := theTime.Unix() // patientPrescription, _ := service.FindPatientPrescriptionInfoTwo(org_id, patient.ID, recordDateTime, 2) // if patientPrescription.ID == 0 { // patientPrescription, _ = service.FindLastPatientPrescriptionInfo(org_id, patient.ID, recordDateTime) // } // departmwnt, _ := service.GetDepartMentDetail(patientPrescription.Departments) // doctor_info, _ := service.GetAdminUserInfoByID(org_id, patientPrescription.DoctorId) // //admin_user_info, _ := service.GetAdminUserInfoByID(org_id, admin_user_id) // // var prescriptions []*models.HisPrescription // // if settle_accounts_type == 1 { //日结 // prescriptions, _ = service.GetUnSettleHisPrescriptionFive(org_id, patient_id, recordDateTime, 2) // } else { //月结 // // start_time_str := c.GetString("start_time") // end_time_str := c.GetString("end_time") // timeLayout := "2006-01-02" // loc, _ := time.LoadLocation("Local") // theStartTime, err := time.ParseInLocation(timeLayout+" 15:04:05", start_time_str+" 00:00:00", loc) // if err != nil { // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) // return // } // recordStartTime := theStartTime.Unix() // theEndTime, err := time.ParseInLocation(timeLayout+" 15:04:05", end_time_str+" 00:00:00", loc) // if err != nil { // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) // return // } // recordEndTime := theEndTime.Unix() // prescriptions, _ = service.GetUnSettleMonthHisPrescription(org_id, patient_id, recordStartTime, recordEndTime) // } // var total float64 // // for _, item := range prescriptions { // fmt.Println(item) // if item.Type == 1 { //药品 // for _, subItem := range item.HisDoctorAdviceInfo { // total = total + (subItem.Price * subItem.PrescribingNumber) // } // } // if item.Type == 2 { //项目 // for _, subItem := range item.HisPrescriptionProject { // cnt, _ := strconv.ParseFloat(subItem.Count, 64) // total = total + (subItem.Price * cnt) // } // } // // } // // var ids []int64 // // for _, item := range prescriptions { // ids = append(ids, item.ID) // } // // var customs []*models.NewCustomTwo // for _, item := range prescriptions { // if item.Type == 1 { //药品 // for _, subItem := range item.HisDoctorAdviceInfo { // cus := &models.NewCustomTwo{ // AdviceId: subItem.ID, // ProjectId: 0, // DetItemFeeSumamt: fmt.Sprintf("%.4f", subItem.Price*subItem.PrescribingNumber), // Cut: fmt.Sprintf("%.4f", subItem.PrescribingNumber), // FeedetlSn: subItem.FeedetlSn, // Price: fmt.Sprintf("%.2f", subItem.Price), // MedListCodg: subItem.BaseDrugLib.MedicalInsuranceNumber, // Type: 1, // } // customs = append(customs, cus) // } // } // if item.Type == 2 { //项目 // for _, subItem := range item.HisPrescriptionProject { // if subItem.Type == 2 { // cnt, _ := strconv.ParseFloat(subItem.Count, 64) // cus := &models.NewCustomTwo{ // AdviceId: 0, // ProjectId: subItem.ID, // DetItemFeeSumamt: fmt.Sprintf("%.4f", subItem.Price*cnt), // Cut: fmt.Sprintf("%.4f", cnt), // FeedetlSn: subItem.FeedetlSn, // Price: fmt.Sprintf("%.4f", float64(subItem.Price)), // MedListCodg: subItem.HisProject.MedicalCode, // Type: 2, // } // customs = append(customs, cus) // // } else { // cnt, _ := strconv.ParseFloat(subItem.Count, 64) // cus := &models.NewCustomTwo{ // AdviceId: 0, // ProjectId: subItem.ID, // DetItemFeeSumamt: fmt.Sprintf("%.4f", subItem.Price*cnt), // Cut: fmt.Sprintf("%.4f", cnt), // FeedetlSn: subItem.FeedetlSn, // Price: fmt.Sprintf("%.4f", float64(subItem.Price)), // MedListCodg: subItem.GoodInfo.MedicalInsuranceNumber, // Type: 3, // } // customs = append(customs, cus) // } // // } // } // } // // var info models.UploadInfo // info.Vaa01 = int64(res.Result[0].Vaa01) // info.Fasong = "1" // info.Vaa07 = int64(res.Result[0].Vaa07) // info.Bck01c = departmwnt.Number // info.Bce02a = doctor_info.DoctorNumber // // diagnosis_ids := strings.Split(patientPrescription.Diagnosis, ",") // var config []*models.HisXtDiagnoseConfig // for _, item := range diagnosis_ids { // id, _ := strconv.ParseInt(item, 10, 64) // diagnosisConfig, _ := service.FindDiagnoseById(id) // config = append(config, &diagnosisConfig) // } // for index, item := range config { // var diag models.Diag // diag.Vao06 = strconv.FormatInt(int64(index+1), 10) // diag.Bak02 = item.CountryCode // info.Diag = append(info.Diag, &diag) // } // var presInfos []*models.PresInfo // var presDetails []*models.PresDetail // for index, item := range prescriptions { // var presDetail models.PresDetail // var presInfo models.PresInfo // presInfo.Cbmid = strconv.FormatInt(item.ID, 10) // if item.Type == 1 { // presInfo.Cbm06 = "0" // } else { // presInfo.Cbm06 = "5" // } // // if item.Type == 1 { // presInfo.Cbm07 = item.MedType // } else { // presInfo.Cbm07 = item.MedType // } // // presDetail.Vaf59 = strconv.FormatInt(int64(index+1), 10) // var infoItems []*models.Item // for _, subItem := range item.HisDoctorAdviceInfo { // ef, _ := service.GetExecutionFrequencyByName(subItem.ExecutionFrequency, subItem.UserOrgId) // // var infoItem models.Item // infoItem.Rownr = "0" // infoItem.Vaf11 = "1" // infoItem.Vaf36 = time.Unix(subItem.ExecutionTime, 0).Format("2006-01-02 15:04:05") // infoItem.Bbx01 = subItem.BaseDrugLib.MedicalInsuranceNumber // infoItem.Bda01 = "1" // infoItem.Bby01 = "" // if subItem.BaseDrugLib.MinUnit != subItem.BaseDrugLib.DoseUnit { // infoItem.Vaf22 = subItem.BaseDrugLib.DrugName + " " + subItem.BaseDrugLib.Dose + subItem.BaseDrugLib.DoseUnit + "*" + strconv.FormatInt(subItem.BaseDrugLib.MinNumber, 10) + subItem.BaseDrugLib.MinUnit + "/" + subItem.BaseDrugLib.MaxUnit // } // infoItem.Vaf14 = subItem.BaseDrugLib.DrugName // infoItem.Bdi01 = ef.Code // infoItem.Vaf17 = strconv.FormatInt(subItem.Day, 10) // infoItem.Vaf20 = fmt.Sprintf("%.2f", subItem.SingleDose) // infoItem.Vaf21 = fmt.Sprintf("%.2f", subItem.PrescribingNumber) // infoItem.Vaf35 = "0" // infoItem.Vaf32 = "0" // infoItem.Bck01b = departmwnt.Number // infoItem.Bck01d = departmwnt.Number // infoItem.Vaf58 = "0" // infoItem.Vaf61 = "1" // infoItems = append(infoItems, &infoItem) // } // for _, subItem := range item.HisPrescriptionProject { // ef, _ := service.GetExecutionFrequencyByName(subItem.ExecutionFrequency, subItem.UserOrgId) // // if subItem.Type == 2 { // var infoItem models.Item // infoItem.Rownr = "0" // infoItem.Vaf11 = "1" // infoItem.Vaf36 = time.Unix(subItem.ExecutionTime, 0).Format("2006-01-02 15:04:05") // infoItem.Bbx01 = subItem.HisProject.MedicalCode // // if subItem.HisProject.CostClassify == 2 { // infoItem.Bda01 = "T" // } else if subItem.HisProject.CostClassify == 3 { // infoItem.Bda01 = "L" // } else { // infoItem.Bda01 = "T" // } // infoItem.Bby01 = "" // infoItem.Vaf22 = subItem.HisProject.ProjectName // infoItem.Bdi01 = ef.Code // infoItem.Vaf17 = subItem.Day // infoItem.Vaf20 = fmt.Sprintf("%.2f", subItem.SingleDose) // infoItem.Vaf21 = fmt.Sprintf("%.2f", subItem.Count) // infoItem.Vaf35 = "0" // infoItem.Vaf18 = "0" // infoItem.Vaf32 = "0" // infoItem.Bck01b = departmwnt.Number // infoItem.Bck01d = departmwnt.Number // infoItem.Vaf58 = "0" // infoItem.Vaf61 = "1" // infoItems = append(infoItems, &infoItem) // // } else { // var infoItem models.Item // infoItem.Rownr = "0" // infoItem.Vaf11 = "1" // infoItem.Vaf36 = time.Unix(subItem.ExecutionTime, 0).Format("2006-01-02 15:04:05") // infoItem.Bbx01 = subItem.GoodInfo.MedicalInsuranceNumber // infoItem.Bda01 = "M" // infoItem.Bby01 = "" // infoItem.Vaf22 = subItem.GoodInfo.GoodName + " " + subItem.GoodInfo.SpecificationName // infoItem.Bdi01 = ef.Code // infoItem.Vaf17 = subItem.Day // infoItem.Vaf20 = fmt.Sprintf("%.2f", subItem.SingleDose) // infoItem.Vaf21 = fmt.Sprintf("%.2f", subItem.Count) // infoItem.Vaf35 = "0" // infoItem.Vaf32 = "0" // infoItem.Bck01b = departmwnt.Number // infoItem.Bck01d = departmwnt.Number // infoItem.Vaf58 = "0" // infoItem.Vaf61 = "1" // infoItems = append(infoItems, &infoItem) // // } // // } // presDetail.Item = infoItems // presDetails = append(presDetails, &presDetail) // presInfo.PresDetail = presDetails // presInfos = append(presInfos, &presInfo) // } // info.PresInfo = presInfos // // result2, request2 := service.UploadPrescriptionForCoordinate(info) // saveLog(result2, request2, "上传明细", "上传明细", org.OrgName) // // var res2 ResultUpload // if err := json.Unmarshal([]byte(result2), &res2); err != nil { // utils.ErrorLog("解析失败:%v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // if res2.Code == "10000" { // // 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(patient.ID, 10) // his := models.VMHisPatient{ // Name: patient.Name, // Gender: patient.Gender, // Birthday: patient.Birthday, // MedicalTreatmentType: 0, // IdType: 1, // IdCardNo: patient.IdCardNo, // BalanceAccountsType: 1, // MedicalInsuranceNumber: "", // RegisterType: 0, // RegisterCost: 0, // TreatmentCost: 0, // Status: 1, // Ctime: time.Now().Unix(), // Mtime: time.Now().Unix(), // PsnNo: strconv.FormatInt(int64(res.Result[0].Vaa01), 10), // PsnCertType: "", // Certno: patient.IdCardNo, // PsnName: patient.Name, // Gend: "", // Naty: "", // Brdy: "", // Age: 0, // Iinfo: "", // Idetinfo: "", // PatientId: patient.ID, // RecordDate: theTime.Unix(), // UserOrgId: org_id, // AdminUserId: admin_user_id, // IsReturn: 1, // Doctor: patientPrescription.DoctorId, // Departments: patientPrescription.Departments, // IptOtpNo: ipt_otp_no, // Number: strconv.FormatInt(int64(res.Result[0].Vaa07), 10), // PhoneNumber: patient.Phone, // } // service.UpdateHisPatientStatusten(&his) // service.UpdateHisPrescriptionHisID(his.ID, patient.ID, recordDateTime, org_id) // tm := time.Unix(time.Now().Unix(), 0) // // order := &models.HisOrder{ // PsnNo: his.PsnNo, // UserOrgId: org_id, // HisPatientId: his.ID, // PatientId: patient_id, // SettleAccountsDate: recordDateTime, // Ctime: time.Now().Unix(), // Mtime: time.Now().Unix(), // Status: 1, // OrderStatus: 1, // MdtrtId: his.Number, // Number: ipt_otp_no, // SetlId: "", // MedfeeSumamt: total, // MedType: strconv.Itoa(int(reg_type)), // SettleEndTime: 0, // SettleStartTime: 0, // SettleType: settle_accounts_type, // Diagnosis: diagnosis_id, // PType: 2, // SetlTime: tm.Format("2006-01-02 15:04:05"), // } // err = service.CreateOrder(order) // if err != nil { // //c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeCreateOrderException) // return // } // // 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: patient_id, // Status: 1, // Mtime: time.Now().Unix(), // Ctime: time.Now().Unix(), // UserOrgId: org_id, // HisPatientId: his.ID, // OrderId: order.ID, // ProjectId: project_id, // Type: types, // ItemId: item_id, // } // service.CreateOrderInfo(info) // } // his.Diagnosis = diagnosis_id // his.SickType = sick_type // his.RegisterType = reg_type // his.MedicalTreatmentType = reg_type // service.UpdataHisPateintTwo(&his) // err = service.UpDatePrescriptionNumber(org_id, ids, strconv.FormatInt(int64(chrgBchno), 10)) // err = service.UpDateHisPrescriptionInfoNumbertwo(org_id, patient_id, strconv.FormatInt(int64(chrgBchno), 10), recordDateTime, his.ID) // err = service.UpdataOrderStatusThreef(strconv.FormatInt(int64(chrgBchno), 10), org_id) // // c.ServeSuccessJSON(map[string]interface{}{ // "msg": "医嘱保存成功", // }) // // } else { // c.ServeSuccessJSON(map[string]interface{}{ // "failed_code": -10, // "msg": res.Msg, // }) // // } // // } else { // c.ServeSuccessJSON(map[string]interface{}{ // "failed_code": -10, // "msg": res.Msg, // }) // // } // //} func (c *CoordinateController) Settle() { //参数1 patient_id //参数2 就诊号 //参数3 单据id fmt.Println(c.Ctx.Request.Body) body, _ := ioutil.ReadAll(c.Ctx.Request.Body) fmt.Println(string(body)) var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) return } patien_id := respJSON["vaa01"].(float64) infoSeq := respJSON["vaa07"].(float64) //strconv.For(patien_id, 10) vaa001 := fmt.Sprintf("%f", patien_id) vaa007 := fmt.Sprintf("%f", infoSeq) setl_id := respJSON["setl_id"].(string) order, _ := service.GetHisOrderFour(vaa001, vaa007, "") order.SetlId = setl_id if order.ID == 0 { json := make(map[string]interface{}) json["msg"] = "结算记录不存在,请检查参数是否正确" json["code"] = "-1" c.Data["json"] = json c.ServeJSON() return } order.OrderStatus = 2 service.UpDateOrder(order) service.UpdataOrderStatusTwo(order.Number, order.UserOrgId) json := make(map[string]interface{}) json["msg"] = "结算成功" json["code"] = "0" c.Data["json"] = json c.ServeJSON() return } func (c *CoordinateController) Refund() { //参数1 patient_id //参数2 就诊号 //参数3 单据id body, _ := ioutil.ReadAll(c.Ctx.Request.Body) var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) return } patien_id := respJSON["vaa01"].(float64) infoSeq := respJSON["vaa07"].(float64) //strconv.For(patien_id, 10) vaa001 := fmt.Sprintf("%f", patien_id) vaa007 := fmt.Sprintf("%f", infoSeq) docId := respJSON["setl_id"].(string) order, _ := service.GetHisOrderFour(vaa001, vaa007, docId) if order.ID == 0 { json := make(map[string]interface{}) json["msg"] = "结算记录不存在,请检查参数是否正确" json["code"] = "-1" c.Data["json"] = json c.ServeJSON() return } service.UpdataOrderStatustwo(order.ID, order.Number, order.UserOrgId) json := make(map[string]interface{}) json["msg"] = "退费成功" json["code"] = "0" c.Data["json"] = json c.ServeJSON() return } func (c *CoordinateController) SavePatientMessageInfo() { result, request_log := service.SavePatientMessageInfo() fmt.Println(result) fmt.Println(request_log) } func (c *CoordinateController) checkpatient() { } func (c *CoordinateController) Register() { patient_id, _ := c.GetInt64("patient_id") diagnosis_time := c.GetString("diagnosis_time") record_date := c.GetString("record_date") admin_user_id, _ := c.GetInt64("admin_user_id") org_id, _ := c.GetInt64("org_id") patient, _ := service.GetPatientByID(org_id, patient_id) org, _ := service.GetOrgById(org_id) 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 } if len(patient.ZbPatientId) == 0 { c.ServeFailJSONWithSGJErrorCode(enums.ErrorPsnNoEmpty) return } recordDateTime := theTime.Unix() patientPrescription, _ := service.FindPatientPrescriptionInfoTwo(org_id, patient.ID, recordDateTime, 2) if patientPrescription.ID == 0 { patientPrescription, _ = service.FindLastPatientPrescriptionInfo(org_id, patient.ID, recordDateTime) } doctor_info, _ := service.GetAdminUserInfoByID(org_id, patientPrescription.DoctorId) admin_user_info, _ := service.GetAdminUserInfoByID(org_id, admin_user_id) reg := models.Reg{ DeptId: "0112", PatientId: patient.ZbPatientId, PatientName: patient.Name, DoctorId: doctor_info.DoctorNumber, RegDate: strings.Split(diagnosis_time, " ")[0], RegFee: "0", TreatFee: "0", OperatorId: admin_user_info.UserName, IdCardNo: patient.IdCardNo, } result, request_log := service.SaveReg(reg) fmt.Println(result) fmt.Println(request_log) saveLog(result, request_log, "登记", "登记", org.OrgName) var res ResultReg if err := json.Unmarshal([]byte(result), &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if res.ResultCode == "0" { 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(patient.ID, 10) his := models.VMHisPatient{ Name: patient.Name, Gender: patient.Gender, Birthday: patient.Birthday, MedicalTreatmentType: 0, IdType: 1, IdCardNo: patient.IdCardNo, BalanceAccountsType: 1, MedicalInsuranceNumber: "", RegisterType: 0, RegisterCost: 0, TreatmentCost: 0, Status: 1, Ctime: time.Now().Unix(), Mtime: time.Now().Unix(), PsnNo: patient.ZbPatientId, PsnCertType: "", Certno: patient.IdCardNo, PsnName: patient.Name, Gend: "", Naty: "", Brdy: "", Age: 0, Iinfo: "", Idetinfo: "", PatientId: patient.ID, RecordDate: theTime.Unix(), UserOrgId: org_id, AdminUserId: admin_user_id, IsReturn: 1, Doctor: patientPrescription.DoctorId, Departments: patientPrescription.Departments, IptOtpNo: ipt_otp_no, Number: res.InfoSeq, PhoneNumber: patient.Phone, } service.UpdateHisPatientStatus(&his) service.UpdateHisPrescriptionHisID(his.ID, patient.ID, recordDateTime, org_id) c.ServeSuccessJSON(map[string]interface{}{ "his_info": his, }) } else { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res.ResultDesc, }) } } //func (c *CoordinateController) GetWaitPayDetail() { // result, request_log := service.GetWaitPayDetail() // fmt.Println(result) // fmt.Println(request_log) // //} //func (c *CoordinateController) OpKeepAccounts() { // id, _ := c.GetInt64("id") // record_time := c.GetString("record_time") // his_patient_id, _ := c.GetInt64("his_patient_id") // timeLayout := "2006-01-02" // loc, _ := time.LoadLocation("Local") // settle_accounts_type, _ := c.GetInt64("settle_accounts_type") // fapiao_code := c.GetString("fapiao_code") // fapiao_number := c.GetString("fapiao_number") // diagnosis_id := c.GetString("diagnosis") // sick_type, _ := c.GetInt64("sick_type") // reg_type, _ := c.GetInt64("p_type") // org_id, _ := c.GetInt64("org_id") // org, _ := service.GetOrgById(org_id) // // his, _ := service.GetHisPatientByIdThree(his_patient_id) // // 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() // var prescriptions []*models.HisPrescription // var start_time int64 // var end_time int64 // // //ids_str := c.GetString("ids") // //ids_arr := strings.Split(ids_str, ",") // // if settle_accounts_type == 1 { //日结 // //fmt.Println(reg_type) // prescriptions, _ = service.GetUnSettleHisPrescriptionFive(org_id, id, recordDateTime, 2) // // } else { //月结 // // start_time_str := c.GetString("start_time") // end_time_str := c.GetString("end_time") // timeLayout := "2006-01-02" // loc, _ := time.LoadLocation("Local") // theStartTime, err := time.ParseInLocation(timeLayout+" 15:04:05", start_time_str+" 00:00:00", loc) // if err != nil { // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) // return // } // recordStartTime := theStartTime.Unix() // start_time = recordStartTime // theEndTime, err := time.ParseInLocation(timeLayout+" 15:04:05", end_time_str+" 00:00:00", loc) // if err != nil { // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) // return // } // recordEndTime := theEndTime.Unix() // end_time = recordEndTime // prescriptions, _ = service.GetUnSettleMonthHisPrescription(org_id, id, recordStartTime, recordEndTime) // } // // 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) // strconv.FormatInt(his.PatientId, 10) // // var ids []int64 // // for _, item := range prescriptions { // ids = append(ids, item.ID) // } // var total float64 // // for _, item := range prescriptions { // fmt.Println(item) // if item.Type == 1 { //药品 // for _, subItem := range item.HisDoctorAdviceInfo { // total = total + (subItem.Price * subItem.PrescribingNumber) // } // } // if item.Type == 2 { //项目 // for _, subItem := range item.HisPrescriptionProject { // cnt, _ := strconv.ParseFloat(subItem.Count, 64) // total = total + (subItem.Price * cnt) // } // } // // for _, subItem := range item.HisAdditionalCharge { // total = total + (subItem.Price * float64(subItem.Count)) // } // } // // tm := time.Unix(time.Now().Unix(), 0) // // var customs []*models.NewCustomTwo // for _, item := range prescriptions { // if item.Type == 1 { //药品 // for _, subItem := range item.HisDoctorAdviceInfo { // cus := &models.NewCustomTwo{ // AdviceId: subItem.ID, // ProjectId: 0, // DetItemFeeSumamt: fmt.Sprintf("%.4f", subItem.Price*subItem.PrescribingNumber), // Cut: fmt.Sprintf("%.4f", subItem.PrescribingNumber), // FeedetlSn: subItem.FeedetlSn, // Price: fmt.Sprintf("%.2f", subItem.Price), // MedListCodg: subItem.BaseDrugLib.MedicalInsuranceNumber, // Type: 1, // } // customs = append(customs, cus) // } // } // if item.Type == 2 { //项目 // for _, subItem := range item.HisPrescriptionProject { // if subItem.Type == 2 { // cnt, _ := strconv.ParseFloat(subItem.Count, 64) // cus := &models.NewCustomTwo{ // AdviceId: 0, // ProjectId: subItem.ID, // DetItemFeeSumamt: fmt.Sprintf("%.4f", subItem.Price*cnt), // Cut: fmt.Sprintf("%.4f", cnt), // FeedetlSn: subItem.FeedetlSn, // Price: fmt.Sprintf("%.4f", float64(subItem.Price)), // MedListCodg: subItem.HisProject.MedicalCode, // Type: 2, // } // customs = append(customs, cus) // // } else { // cnt, _ := strconv.ParseFloat(subItem.Count, 64) // cus := &models.NewCustomTwo{ // AdviceId: 0, // ProjectId: subItem.ID, // DetItemFeeSumamt: fmt.Sprintf("%.4f", subItem.Price*cnt), // Cut: fmt.Sprintf("%.4f", cnt), // FeedetlSn: subItem.FeedetlSn, // Price: fmt.Sprintf("%.4f", float64(subItem.Price)), // MedListCodg: subItem.GoodInfo.MedicalInsuranceNumber, // Type: 3, // } // customs = append(customs, cus) // // } // // } // } // for _, item := range item.HisAdditionalCharge { // cus := &models.NewCustomTwo{ // ItemId: item.ID, // AdviceId: 0, // ProjectId: 0, // DetItemFeeSumamt: fmt.Sprintf("%.4f", item.Price), // Cut: fmt.Sprintf("%.4f", float64(item.Count)), // FeedetlSn: item.FeedetlSn, // Price: fmt.Sprintf("%.4f", float64(item.Price)), // MedListCodg: item.XtHisAddtionConfig.Code, // Type: 3, // } // customs = append(customs, cus) // } // } // result, request_log := service.OpKeepAccounts(his.Number, customs) // saveLog(result, request_log, "记账", "记账", org.OrgName) // // var res ResultSettle // if err := json.Unmarshal([]byte(result), &res); err != nil { // utils.ErrorLog("解析失败:%v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // if res.ResultCode == "0" { // // //totals, _ := strconv.ParseFloat(total, 64) // order := &models.HisOrder{ // PsnNo: his.PsnNo, // UserOrgId: org_id, // HisPatientId: his.ID, // PatientId: id, // SettleAccountsDate: recordDateTime, // Ctime: time.Now().Unix(), // Mtime: time.Now().Unix(), // Status: 1, // OrderStatus: 1, // MdtrtId: his.Number, // Number: chrg_bchno, // SetlId: "", // MedfeeSumamt: total, // MedType: strconv.Itoa(int(reg_type)), // SettleEndTime: end_time, // SettleStartTime: start_time, // SettleType: settle_accounts_type, // FaPiaoCode: fapiao_code, // FaPiaoNumber: fapiao_number, // Diagnosis: diagnosis_id, // PType: 2, // SetlTime: tm.Format("2006-01-02 15:04:05"), // } // err = service.CreateOrder(order) // if err != nil { // //c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeCreateOrderException) // return // } // // 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: org_id, // HisPatientId: his.ID, // OrderId: order.ID, // ProjectId: project_id, // Type: types, // ItemId: item_id, // } // service.CreateOrderInfo(info) // } // his.Diagnosis = diagnosis_id // his.SickType = sick_type // his.RegisterType = reg_type // his.MedicalTreatmentType = reg_type // service.UpdataHisPateintThree(&his) // err = service.UpDatePrescriptionNumber(org_id, ids, chrg_bchno) // err = service.UpDateHisPrescriptionInfoNumbertwo(org_id, id, chrg_bchno, recordDateTime, his_patient_id) // err = service.UpdataOrderStatusThreef(chrg_bchno, org_id) // if err == nil { // c.ServeSuccessJSON(map[string]interface{}{ // "msg": "记账成功", // }) // } // } else { // c.ServeSuccessJSON(map[string]interface{}{ // "failed_code": -10, // "msg": res.ResultDesc, // }) // } // //} // //func (c *CoordinateController) OpCancelKeepAccounts() { // order_id, _ := c.GetInt64("order_id") // admin_user_id, _ := c.GetInt64("admin_user_id") // org_id, _ := c.GetInt64("org_id") // org, _ := service.GetOrgById(org_id) // // order, _ := service.GetHisOrderByID(order_id) // if order.ID == 0 { // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeOrderParamWrong) // return // } // // role, _ := service.GetAdminUserInfoByID(org_id, admin_user_id) // result, request_log := service.OpCancelKeepAccounts(order.SetlId, role.UserName, role.DoctorNumber) // saveLog(result, request_log, "撤销记账", "撤销记账", org.OrgName) // var res RefundDetail // if err := json.Unmarshal([]byte(result), &res); err != nil { // utils.ErrorLog("解析失败:%v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // fmt.Println(result) // fmt.Println(request_log) // fmt.Println(res) // flag := 0 // isSuccess := false // for _, item := range res.Result { // if item.Code == "200" { // flag = flag + 1 // } // } // if len(res.Result) == flag { // isSuccess = true // } // var errMsg string // for _, item := range res.Result { // errMsg = errMsg + "\n" + item.ResultMsg // } // // if isSuccess { // err := service.UpdataOrderStatustwo(order_id, order.Number, org_id) // if err == nil { // c.ServeSuccessJSON(map[string]interface{}{ // "msg": "撤销记账成功", // }) // } else { // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // } else { // c.ServeSuccessJSON(map[string]interface{}{ // "failed_code": -10, // "msg": errMsg, // }) // // } //} //func saveLog(result string, request string, infno string, desc string) { // // org_id, _ := beego.AppConfig.Int64("org_id") // miConfig, _ := service.FindMedicalInsuranceInfo(org_id) // dir := miConfig.OrgName + "日志" // utils.Mkdir(dir) // month := time.Unix(1557042972, 0).Format("1") // year := time.Now().Format("2006") // month = time.Now().Format("01") // day := time.Now().Format("02") // hour := time.Now().Format("15") // min := time.Now().Format("04") // sec := time.Now().Format("05") // // result_time := year + "-" + month + "-" + day + " " + hour + ":" + min + ":" + sec // // file := strconv.FormatInt(org_id, 10) + "_" + year + month + day + "_log" // file_name := file + ".txt" // file_path := miConfig.OrgName + "日志" + "/" + file_name // exist, _ := utils.PathExists(file_path) // if exist { //存在 // fmt.Println("存在") // f, err := os.OpenFile(file_path, os.O_WRONLY, 0644) // if err != nil { // fmt.Println("read fail") // } // content := "\r\n" + "\r\n" + "\r\n" + result_time + " " + "【 " + desc + infno + "入参" + " 】:" + "\r\n" + request + "\r\n" + result_time + " " + "【 " + desc + infno + "出参" + " 】:" + "\r\n" + result // n, _ := f.Seek(0, 2) // _, err = f.WriteAt([]byte(content), n) // // } else { //不存在 // fmt.Println("文件不存在,创建文件") // f, err := os.Create(miConfig.OrgName + "日志" + "/" + file_name) // defer f.Close() // if err != nil { // } else { // _, err = f.Write([]byte("记录日志")) // } // } // //} func generateRandomNumber() int64 { rand.Seed(time.Now().UnixNano()) return int64(rand.Intn(90000) + 10000) }