package service import ( "XT_New/models" "bytes" "encoding/json" "fmt" "github.com/jinzhu/gorm" "io/ioutil" "net/http" "time" ) func SavePatientMessageInfo() (string, string) { //input := make(map[string]interface{}) inputData := make(map[string]interface{}) inputData["patType"] = "1" // 就诊凭证编号 inputData["patIdNo"] = "440510199211080038" // 开始时间 inputData["patName"] = "测试患者4 " // 人员姓名 inputData["patMobile"] = "13535547902" // 人员姓名 inputData["patSex"] = "M" // 人员姓名 inputData["patMarriage"] = "1" // 人员姓名 inputData["birthday"] = "1992-10-23" // 人员姓名 inputData["patAddress"] = "11111" // 人员姓名 inputData["thirdPartyID"] = "6936" // 人员姓名 inputData["patAge"] = "30" // 人员姓名 //input["req"] = inputData var inputLog string bytesData, err := json.Marshal(inputData) inputLog = string(bytesData) fmt.Println(string(bytesData)) if err != nil { fmt.Println(err.Error()) return err.Error(), "" } reader := bytes.NewReader(bytesData) var url string gdyb_url := "http://218.104.146.179:9091/esb/listener/savePatientMessageInfo" url = gdyb_url //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/1101" request, err := http.NewRequest("GET", url, reader) if err != nil { fmt.Println(err.Error()) return err.Error(), "" } request.Header.Set("Content-Type", "application/json;charset=UTF-8") request.Header.Set("code", "Xmrjyy") client := http.Client{} resp, err := client.Do(request) if err != nil { fmt.Println(err.Error()) return err.Error(), "" } respBytes, err := ioutil.ReadAll(resp.Body) if err != nil { fmt.Println(err.Error()) return err.Error(), "" } fmt.Println(string(respBytes)) str := string(respBytes) return str, inputLog } func SaveReg(reg models.Reg) (string, string) { //input := make(map[string]interface{}) inputData := make(map[string]interface{}) inputData["deptId"] = reg.DeptId inputData["clinicUnitId"] = "" inputData["healthCardNo"] = "" fmt.Println(reg.PatientId) inputData["patientId"] = reg.PatientId inputData["patientName"] = reg.PatientName inputData["idCardNo"] = reg.IdCardNo inputData["phone"] = "" inputData["doctorId"] = "" inputData["doctorLevelCode"] = "" inputData["regDate"] = reg.RegDate inputData["shiftCode"] = "" inputData["startTime"] = "" inputData["endTime"] = "" inputData["scheduleId"] = "" inputData["periodId"] = "" inputData["svObjectId"] = "" inputData["diseaseId"] = "" inputData["regFee"] = reg.RegFee inputData["treatFee"] = reg.TreatFee inputData["operatorId"] = reg.OperatorId inputData["remark"] = "血透" inputData["orderType"] = "0" inputData["clinicCode"] = "" inputData["infoSeq"] = "" //input["Request"] = inputData var inputLog string bytesData, err := json.Marshal(inputData) inputLog = string(bytesData) fmt.Println(string(bytesData)) if err != nil { fmt.Println(err.Error()) return err.Error(), "" } reader := bytes.NewReader(bytesData) var url string gdyb_url := "http://218.104.146.179:9091/esb/listener/saveReg" url = gdyb_url //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/1101" request, err := http.NewRequest("POST", url, reader) if err != nil { fmt.Println(err.Error()) return err.Error(), "" } request.Header.Set("Content-Type", "application/json;charset=UTF-8") request.Header.Set("code", "Xmrjyy") client := http.Client{} resp, err := client.Do(request) if err != nil { fmt.Println(err.Error()) return err.Error(), "" } respBytes, err := ioutil.ReadAll(resp.Body) if err != nil { fmt.Println(err.Error()) return err.Error(), "" } fmt.Println(string(respBytes)) str := string(respBytes) return str, inputLog } func GetWaitPayDetail() (string, string) { //input := make(map[string]interface{}) inputData := make(map[string]interface{}) inputData["clinicSeq"] = "30445" // 就诊凭证编号 inputData["prescriptionId"] = "" // 开始时间 inputData["patientId"] = "701822660170096645" // 人员姓名 var inputLog string bytesData, err := json.Marshal(inputData) inputLog = string(bytesData) fmt.Println(string(bytesData)) if err != nil { fmt.Println(err.Error()) return err.Error(), "" } reader := bytes.NewReader(bytesData) var url string gdyb_url := "http://218.104.146.179:9091/esb/listener/getWaitPayDetail" url = gdyb_url //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/1101" request, err := http.NewRequest("POST", url, reader) if err != nil { fmt.Println(err.Error()) return err.Error(), "" } request.Header.Set("Content-Type", "application/json;charset=UTF-8") request.Header.Set("code", "Xmrjyy") client := http.Client{} resp, err := client.Do(request) if err != nil { fmt.Println(err.Error()) return err.Error(), "" } respBytes, err := ioutil.ReadAll(resp.Body) if err != nil { fmt.Println(err.Error()) return err.Error(), "" } fmt.Println(string(respBytes)) str := string(respBytes) return str, inputLog } func OpKeepAccounts(number string, cus []*models.NewCustomTwo) (string, string) { inputData := make(map[string]interface{}) feedetail := make([]map[string]interface{}, 0) for _, item := range cus { feedetailInfo := make(map[string]interface{}) feedetailInfo["itemCode"] = item.MedListCodg feedetailInfo["num"] = item.Cut feedetail = append(feedetail, feedetailInfo) } inputData["item"] = feedetail inputData["clinicSeq"] = number // 就诊凭证编号 var inputLog string bytesData, err := json.Marshal(inputData) inputLog = string(bytesData) fmt.Println(string(bytesData)) if err != nil { fmt.Println(err.Error()) return err.Error(), "" } reader := bytes.NewReader(bytesData) var url string gdyb_url := "http://218.104.146.179:9091/esb/listener/opKeepAccounts" url = gdyb_url request, err := http.NewRequest("POST", url, reader) if err != nil { fmt.Println(err.Error()) return err.Error(), "" } request.Header.Set("Content-Type", "application/json;charset=UTF-8") request.Header.Set("code", "Xmrjyy") client := http.Client{} resp, err := client.Do(request) if err != nil { fmt.Println(err.Error()) return err.Error(), "" } respBytes, err := ioutil.ReadAll(resp.Body) if err != nil { fmt.Println(err.Error()) return err.Error(), "" } fmt.Println(string(respBytes)) str := string(respBytes) return str, inputLog } func OpCancelKeepAccounts(setl_id string, op_name string, op_code string) (string, string) { inputData := make(map[string]interface{}) inputData["docId"] = setl_id inputData["operCode"] = "111" inputData["operName"] = "2222" var inputLog string bytesData, err := json.Marshal(inputData) inputLog = string(bytesData) fmt.Println(string(bytesData)) if err != nil { fmt.Println(err.Error()) return err.Error(), "" } reader := bytes.NewReader(bytesData) var url string gdyb_url := "http://218.104.146.179:9091/esb/listener/opCancelKeepAccounts" url = gdyb_url request, err := http.NewRequest("POST", url, reader) if err != nil { fmt.Println(err.Error()) return err.Error(), "" } request.Header.Set("Content-Type", "application/json;charset=UTF-8") request.Header.Set("code", "Xmrjyy") client := http.Client{} resp, err := client.Do(request) if err != nil { fmt.Println(err.Error()) return err.Error(), "" } respBytes, err := ioutil.ReadAll(resp.Body) if err != nil { fmt.Println(err.Error()) return err.Error(), "" } fmt.Println(string(respBytes)) str := string(respBytes) return str, inputLog } func UpdateHisPatientStatus(his *models.VMHisPatient) { writeDb.Save(&his) } func GetUnSettleHisPrescriptionFive(org_id int64, patient_id int64, record_date int64, p_type int64) (prescription []*models.HisPrescription, err error) { err = readDb.Model(&models.HisPrescription{}). Preload("HisAdditionalCharge", func(db *gorm.DB) *gorm.DB { return db.Where("status = 1 AND user_org_id = ?", org_id).Preload("XtHisAddtionConfig", "status=1") }). Preload("HisDoctorAdviceInfo", func(db *gorm.DB) *gorm.DB { return db.Where("status = 1 AND user_org_id = ?", org_id).Preload("HisOrderInfo", "status = 1").Preload("Drug", "status=1") }). Preload("HisPrescriptionProject", func(db *gorm.DB) *gorm.DB { return db.Where("status = 1 AND user_org_id = ?", org_id).Preload("HisOrderInfo", "status = 1").Preload("HisProject").Preload("GoodInfo", "status=1").Preload("XtHisProjectTeam", "status = 1") }).Preload("TempHisOrder", func(db *gorm.DB) *gorm.DB { return db.Where("status = 1 AND user_org_id = ? AND order_status <> 3 AND order_status <> 2 ", org_id) }). Where("user_org_id = ? AND status = 1 AND record_date = ? AND patient_id = ? AND order_status <> 2 AND order_status <> 3 and order_status <> 5 AND p_type = ?", org_id, record_date, patient_id, p_type). Find(&prescription).Error return } func GetUnSettleMonthHisPrescription(org_id int64, patient_id int64, start_date int64, end_date int64) (prescription []*models.HisPrescription, err error) { err = readDb.Model(&models.HisPrescription{}). Preload("HisAdditionalCharge", func(db *gorm.DB) *gorm.DB { return db.Where("status = 1 AND user_org_id = ?", org_id).Preload("XtHisAddtionConfig", "status=1") }). Preload("HisDoctorAdviceInfo", func(db *gorm.DB) *gorm.DB { return db.Where("status = 1 AND user_org_id = ?", org_id).Preload("Drug", "status=1") }). Preload("HisPrescriptionProject", func(db *gorm.DB) *gorm.DB { return db.Where("status = 1 AND user_org_id = ?", org_id).Preload("HisProject").Preload("GoodInfo", "status=1").Preload("XtHisProjectTeam", "status = 1") }). Where("user_org_id = ? AND status = 1 AND record_date >= ? AND record_date <= ? AND patient_id = ? AND order_status <> 2 AND order_status <> 5 AND p_type <> 1", org_id, start_date, end_date, patient_id). Find(&prescription).Error return } func GetHisOrderFour(patient_id string, infoSeq string, docId string) (order models.HisOrder, err error) { if len(docId) > 0 { err = readDb.Model(&models.HisOrder{}).Where("mdtrt_id = ? AND psn_no = ? AND setl_id = ? AND status = 1", infoSeq, patient_id, docId).First(&order).Error } else { err = readDb.Model(&models.HisOrder{}).Where("mdtrt_id = ? AND psn_no = ? AND status = 1 ", infoSeq, patient_id).First(&order).Error } return } func GetHisPatientForCoordinate(id_card_no string) (string, string) { //input := make(map[string]interface{}) inputData := make(map[string]interface{}) inputData["idcard"] = id_card_no // 就诊凭证编号 var inputLog string bytesData, err := json.Marshal(inputData) inputLog = string(bytesData) fmt.Println(string(bytesData)) if err != nil { fmt.Println(err.Error()) return err.Error(), "" } reader := bytes.NewReader(bytesData) var url string gdyb_url := "http://218.104.146.179:9091/esb/listener/getPatientType" url = gdyb_url //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/1101" request, err := http.NewRequest("GET", url, reader) if err != nil { fmt.Println(err.Error()) return err.Error(), "" } request.Header.Set("Content-Type", "application/json;charset=UTF-8") request.Header.Set("code", "Xmrjyy") client := http.Client{} resp, err := client.Do(request) if err != nil { fmt.Println(err.Error()) return err.Error(), "" } respBytes, err := ioutil.ReadAll(resp.Body) if err != nil { fmt.Println(err.Error()) return err.Error(), "" } fmt.Println(string(respBytes)) str := string(respBytes) return str, inputLog } func UploadPrescriptionForCoordinate(info models.UploadInfo) (string, string) { //input := make(map[string]interface{}) inputData := make(map[string]interface{}) diags := make([]map[string]interface{}, 0) //diags := make([]map[string]interface{}, 0) presInfos := make([]map[string]interface{}, 0) for _, item := range info.Diag { inputDataDiag := make(map[string]interface{}) inputDataDiag["vao06"] = item.Vao06 inputDataDiag["bak02"] = item.Bak02 diags = append(diags, inputDataDiag) } for _, item := range info.PresInfo { inputDataPresInfo := make(map[string]interface{}) inputDataPresInfo["cbm06"] = item.Cbm06 inputDataPresInfo["cbm07"] = item.Cbm06 inputDataPresInfo["cbmid"] = item.Cbmid presDetails := make([]map[string]interface{}, 0) for _, subItem := range item.PresDetail { inputDataPresDetail := make(map[string]interface{}) inputDataPresDetail["vaf59"] = subItem.Vaf59 Items := make([]map[string]interface{}, 0) for _, subSubItem := range subItem.Item { inputDataItem := make(map[string]interface{}) inputDataItem["bbx01"] = subSubItem.Bbx01 inputDataItem["bda01"] = subSubItem.Bda01 inputDataItem["bby01"] = subSubItem.Bby01 inputDataItem["bck01b"] = subSubItem.Bck01b inputDataItem["bck01d"] = subSubItem.Bck01d inputDataItem["bdi01"] = subSubItem.Bdi01 inputDataItem["rownr"] = subSubItem.Rownr inputDataItem["vaf11"] = subSubItem.Vaf11 inputDataItem["vaf14"] = subSubItem.Vaf14 inputDataItem["vaf15"] = subSubItem.Vaf15 inputDataItem["vaf17"] = subSubItem.Vaf17 inputDataItem["vaf18"] = subSubItem.Vaf18 inputDataItem["vaf19"] = subSubItem.Vaf19 inputDataItem["vaf20"] = subSubItem.Vaf20 inputDataItem["vaf21"] = subSubItem.Vaf21 inputDataItem["vaf22"] = subSubItem.Vaf22 inputDataItem["vaf32"] = subSubItem.Vaf32 inputDataItem["vaf35"] = subSubItem.Vaf35 inputDataItem["vaf36"] = subSubItem.Vaf36 inputDataItem["vaf58"] = subSubItem.Vaf58 inputDataItem["vaf61"] = subSubItem.Vaf61 Items = append(Items, inputDataItem) } inputDataPresDetail["item"] = Items presDetails = append(presDetails, inputDataPresDetail) } inputDataPresInfo["presDetail"] = presDetails presInfos = append(presInfos, inputDataPresInfo) } inputData["vaa01"] = info.Vaa01 // 就诊凭证编号 inputData["Fasong"] = info.Fasong // 就诊凭证编号 inputData["vaa07"] = info.Vaa07 // 就诊凭证编号 inputData["bck01c"] = info.Bck01c // 就诊凭证编号 inputData["bce02a"] = "1001" // 就诊凭证编号 inputData["diag"] = diags // 就诊凭证编号 inputData["presInfo"] = presInfos // 就诊凭证编号 var inputLog string bytesData, err := json.Marshal(inputData) inputLog = string(bytesData) fmt.Println(string(bytesData)) if err != nil { fmt.Println(err.Error()) return err.Error(), "" } reader := bytes.NewReader(bytesData) var url string gdyb_url := "http://218.104.146.179:9091/esb/listener/sendPretreat" url = gdyb_url //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/1101" request, err := http.NewRequest("POST", url, reader) if err != nil { fmt.Println(err.Error()) return err.Error(), "" } request.Header.Set("Content-Type", "application/json;charset=UTF-8") request.Header.Set("code", "Xmrjyy") client := http.Client{} resp, err := client.Do(request) if err != nil { fmt.Println(err.Error()) return err.Error(), "" } respBytes, err := ioutil.ReadAll(resp.Body) if err != nil { fmt.Println(err.Error()) return err.Error(), "" } fmt.Println(string(respBytes)) str := string(respBytes) return str, inputLog } func UploadPrescriptionForCoordinateHospital(info models.UploadInfo) (string, string) { //input := make(map[string]interface{}) inputData := make(map[string]interface{}) diags := make([]map[string]interface{}, 0) //diags := make([]map[string]interface{}, 0) presInfos := make([]map[string]interface{}, 0) for _, item := range info.Diag { inputDataDiag := make(map[string]interface{}) inputDataDiag["vao06"] = item.Vao06 inputDataDiag["bak02"] = item.Bak02 diags = append(diags, inputDataDiag) } for _, item := range info.PresInfo { inputDataPresInfo := make(map[string]interface{}) inputDataPresInfo["cbm06"] = item.Cbm06 inputDataPresInfo["cbm07"] = item.Cbm06 inputDataPresInfo["cbmid"] = item.Cbmid presDetails := make([]map[string]interface{}, 0) for _, subItem := range item.PresDetail { inputDataPresDetail := make(map[string]interface{}) inputDataPresDetail["vaf59"] = subItem.Vaf59 Items := make([]map[string]interface{}, 0) for _, subSubItem := range subItem.Item { inputDataItem := make(map[string]interface{}) inputDataItem["bbx01"] = subSubItem.Bbx01 inputDataItem["bda01"] = subSubItem.Bda01 inputDataItem["bby01"] = subSubItem.Bby01 inputDataItem["bck01b"] = subSubItem.Bck01b inputDataItem["bck01d"] = subSubItem.Bck01d inputDataItem["bdi01"] = subSubItem.Bdi01 inputDataItem["rownr"] = subSubItem.Rownr inputDataItem["vaf11"] = subSubItem.Vaf11 inputDataItem["vaf14"] = subSubItem.Vaf14 inputDataItem["vaf15"] = subSubItem.Vaf15 inputDataItem["vaf17"] = subSubItem.Vaf17 inputDataItem["vaf18"] = subSubItem.Vaf18 inputDataItem["vaf19"] = subSubItem.Vaf19 inputDataItem["vaf20"] = subSubItem.Vaf20 inputDataItem["vaf21"] = subSubItem.Vaf21 inputDataItem["vaf22"] = subSubItem.Vaf22 inputDataItem["vaf32"] = subSubItem.Vaf32 inputDataItem["vaf35"] = subSubItem.Vaf35 inputDataItem["vaf36"] = subSubItem.Vaf36 inputDataItem["vaf58"] = subSubItem.Vaf58 inputDataItem["vaf61"] = subSubItem.Vaf61 Items = append(Items, inputDataItem) } inputDataPresDetail["item"] = Items presDetails = append(presDetails, inputDataPresDetail) } inputDataPresInfo["presDetail"] = presDetails presInfos = append(presInfos, inputDataPresInfo) } inputData["vaa01"] = info.Vaa01 // 就诊凭证编号 inputData["Fasong"] = info.Fasong // 就诊凭证编号 inputData["vaa07"] = info.Vaa07 // 就诊凭证编号 inputData["bck01c"] = info.Bck01c // 就诊凭证编号 inputData["bce02a"] = "1001" // 就诊凭证编号 inputData["diag"] = diags // 就诊凭证编号 inputData["presInfo"] = presInfos // 就诊凭证编号 var inputLog string bytesData, err := json.Marshal(inputData) inputLog = string(bytesData) fmt.Println(string(bytesData)) if err != nil { fmt.Println(err.Error()) return err.Error(), "" } reader := bytes.NewReader(bytesData) var url string gdyb_url := "http://218.104.146.179:9091/esb/listener/saveOrdInfoIp" url = gdyb_url //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/1101" request, err := http.NewRequest("POST", url, reader) if err != nil { fmt.Println(err.Error()) return err.Error(), "" } request.Header.Set("Content-Type", "application/json;charset=UTF-8") request.Header.Set("code", "Xmrjyy") client := http.Client{} resp, err := client.Do(request) if err != nil { fmt.Println(err.Error()) return err.Error(), "" } respBytes, err := ioutil.ReadAll(resp.Body) if err != nil { fmt.Println(err.Error()) return err.Error(), "" } fmt.Println(string(respBytes)) str := string(respBytes) return str, inputLog } func UpDatePrescriptionNumberForCoordinate(user_org_id int64, ids []int64, number string) (err error) { err = writeDb.Model(&models.HisPrescription{}).Where("user_org_id = ? AND status = 1 AND id in (?)", user_org_id, ids).Updates(map[string]interface{}{"batch_number": number, "mtime": time.Now().Unix(), "order_status": 6}).Error return }