package sg import ( "archive/zip" "bytes" //"encoding/base64" //"github.com/jung-kurt/gofpdf" "encoding/json" "fmt" "gdyb/controllers" "gdyb/enums" "gdyb/models" "gdyb/service" "gdyb/utils" "github.com/astaxie/beego" "github.com/axgle/mahonia" "github.com/go-ole/go-ole/oleutil" "github.com/gorilla/websocket" "github.com/jinzhu/gorm" "github.com/shopspring/decimal" "io" "io/ioutil" "math" "math/rand" "net/http" "net/url" "os" "path/filepath" "regexp" "strconv" "strings" "syscall" "time" "unsafe" ) type HisApiController struct { controllers.BaseAuthAPIController } func HisManagerApiRegistRouters() { //挂号 beego.Router("/test/net", &HisApiController{}, "get:TestNet") beego.Router("/api/register/get", &HisApiController{}, "get:GetRegisterInfo") //上传就诊信息-上传明细-结算 beego.Router("/api/upload/get", &HisApiController{}, "get:GetUploadInfo") //查询 beego.Router("/api/settle/query", &HisApiController{}, "get:GetSettleAccounts") //对总账 beego.Router("/api/checkaccount/get", &HisApiController{}, "get:GetCheckAccount") //对明细 beego.Router("/api/checkdetailaccount/get", &HisApiController{}, "get:GetCheckDetailAccount") //退费,退明细 beego.Router("/api/refund/post", &HisApiController{}, "get:Refund") //退号 beego.Router("/api/refundnumber/post", &HisApiController{}, "get:RefundNumber") //退明细 beego.Router("/api/refunddetail/post", &HisApiController{}, "get:RefundDetail") //上传就诊信息-上传明细-预结算 beego.Router("/api/presettle/get", &HisApiController{}, "get:GetPreUploadInfo") //beego.Router("/api/treatment/check", &HisApiController{}, "get:CheckTreatment") beego.Router("/api/org/info", &HisApiController{}, "get:GetOrgInfo") beego.Router("/api/readcard", &HisApiController{}, "get:ReadCard") beego.Router("/api/310", &HisApiController{}, "get:Check310") beego.Router("/api/390", &HisApiController{}, "get:Check390") beego.Router("/api/patient/info", &HisApiController{}, "get:GetPatientInfo") beego.Router("/api/checkcode/get", &HisApiController{}, "get:GetCheckCode") beego.Router("/api/uncheckcode/get", &HisApiController{}, "get:UnCheckCode") beego.Router("/api/psn/putonrecord", &HisApiController{}, "get:PsnPutOnRecord") beego.Router("/api/psn/unputonrecord", &HisApiController{}, "get:PsnUnPutOnRecord") beego.Router("/api/psn/ncds/putonrecord", &HisApiController{}, "get:PsnPutNCDSOnRecord") beego.Router("/api/psn/ncds/unputonrecord", &HisApiController{}, "get:PsnPutUnNCDSOnRecord") beego.Router("/api/reversal", &HisApiController{}, "get:ReversalData") beego.Router("/api/reversal/other", &HisApiController{}, "get:ReversalOtherData") beego.Router("/api/settlelist/get", &HisApiController{}, "get:GetSettleList") beego.Router("/api/settlelisthosptial/get", &HisApiController{}, "get:GetSettleListHospital") beego.Router("/api/pwd/check", &HisApiController{}, "get:CheckCardPWD") beego.Router("/api/insutype/check", &HisApiController{}, "get:CheckInsutype") beego.Router("/api/psn/info", &HisApiController{}, "get:GetPsnNcdsInfo") beego.Router("/api/allopatry/refund", &HisApiController{}, "post:RefundAllopatry") beego.Router("/api/check", &HisApiController{}, "get:Check") beego.Router("/90990", &HisApiController{}, "get:CheckCardPWDTwo") beego.Router("/9001", &HisApiController{}, "get:Get9001") //beego.Router("/api/readelecard", &HisApiController{}, "get:ReadEleCard") beego.Router("/api/3202", &HisApiController{}, "get:Post3202") beego.Router("/api/3204a", &HisApiController{}, "get:Post3204a") beego.Router("/api/3202b", &HisApiController{}, "get:Post3202b") beego.Router("/api/8404", &HisApiController{}, "get:Post8404") beego.Router("/api/3204", &HisApiController{}, "get:Post3204") beego.Router("/api/1608", &HisApiController{}, "get:Post1608") beego.Router("/api/5302", &HisApiController{}, "get:Post5302") beego.Router("/api/3501", &HisApiController{}, "post:Post3501") beego.Router("/api/readele", &HisApiController{}, "get:ReadEleToken") beego.Router("/api/2505", &HisApiController{}, "get:Get2505") beego.Router("/api/4201A", &HisApiController{}, "get:Get4201A") beego.Router("/api/4202", &HisApiController{}, "get:Get4202") beego.Router("/api/4203", &HisApiController{}, "get:Get4203") beego.Router("/api/4205", &HisApiController{}, "get:Get4205") beego.Router("/api/4207", &HisApiController{}, "get:Get4207") beego.Router("/api/4208", &HisApiController{}, "get:Get4208") beego.Router("/api/4209", &HisApiController{}, "get:Get4209") beego.Router("/api/allopatry/get", &HisApiController{}, "get:GetAllopatry") //beego.Router("/api/comfirmallopatry/post", &HisApiController{}, "post:ComfirmAllopatry") beego.Router("/api/allopatry/refund", &HisApiController{}, "get:RefundAllopatry") beego.Router("/api/settle/query/batch", &HisApiController{}, "get:GetBatchSettleAccounts") beego.Router("/api/bl4201A", &HisApiController{}, "get:GetBL4201A") beego.Router("/api/bl4201A", &HisApiController{}, "get:GetBL4201A") //beego.Router("/api/CFYLJG001", &HisApiController{}, "get:GetCFYLJG001") //beego.Router("/api/CFYLJG002", &HisApiController{}, "get:GetCFYLJG002") //beego.Router("/api/CFYLJG003", &HisApiController{}, "get:GetCFYLJG003") //beego.Router("/api/CFYLJG004", &HisApiController{}, "get:GetCFYLJG004") //beego.Router("/api/CFYLJG005", &HisApiController{}, "get:GetCFYLJG005") //beego.Router("/api/CFYLJG006", &HisApiController{}, "get:GetCFYLJG006") //beego.Router("/api/CFYLJG007", &HisApiController{}, "get:GetCFYLJG007") //beego.Router("/api/CFYLJG008", &HisApiController{}, "get:GetCFYLJG008") //beego.Router("/api/CFYLJG009", &HisApiController{}, "get:GetCFYLJG009") //beego.Router("/api/2205", &HisApiController{}, "get:Get2205") beego.Router("/api/3260", &HisApiController{}, "get:Get3260") beego.Router("/api/3261", &HisApiController{}, "get:Get3261") beego.Router("/api/3262", &HisApiController{}, "get:Get3262") beego.Router("/api/3263", &HisApiController{}, "get:Get3263") beego.Router("/api/3264", &HisApiController{}, "get:Get3264") beego.Router("/api/3265", &HisApiController{}, "get:Get3265") beego.Router("/api/3266", &HisApiController{}, "get:Get3266") beego.Router("/api/3267", &HisApiController{}, "get:Get3267") beego.Router("/api/3268", &HisApiController{}, "get:Get3268") beego.Router("/api/3269", &HisApiController{}, "get:Get3269") beego.Router("/api/3270", &HisApiController{}, "get:Get3270") beego.Router("/api/3271", &HisApiController{}, "get:Get3271") beego.Router("/api/3272", &HisApiController{}, "get:Get3272") beego.Router("/api/3273", &HisApiController{}, "get:Get3273") beego.Router("/api/3274", &HisApiController{}, "get:Get3274") beego.Router("/api/3275", &HisApiController{}, "get:Get3275") beego.Router("/api/3276", &HisApiController{}, "get:Get3276") beego.Router("/api/3277", &HisApiController{}, "get:Get3277") beego.Router("/api/3103", &HisApiController{}, "get:Get3103") beego.Router("/api/comfirm/upload", &HisApiController{}, "get:Get4102") beego.Router("/api/batch/check_drug", &HisApiController{}, "get:Drugscheck") beego.Router("/api/batch/check_good", &HisApiController{}, "get:Goodcheck") beego.Router("/api/batch/check_project", &HisApiController{}, "get:Projectcheck") beego.Router("/api/querydata", &HisApiController{}, "get:Getquerydata") //beego.Router("/api/5267", &HisApiController{}, "get:Get5267") //beego.Router("/api/1312a", &HisApiController{}, "get:Get1312a") //beego.Router("/api/cancledia/get", &HisApiController{}, "get:CancleDia") beego.Router("/api/4105", &HisApiController{}, "get:Get4105") beego.Router("/api/4104", &HisApiController{}, "get:Get4104") beego.Router("/api/2406", &HisApiController{}, "get:Get2406") beego.Router("/api/2503", &HisApiController{}, "get:Get2503") beego.Router("/api/1318", &HisApiController{}, "get:Get1318") beego.Router("/api/readelebyface", &HisApiController{}, "get:ReadEleFace") beego.Router("/api/settlelist/get/batch", &HisApiController{}, "get:GetbatchSettleList") //库盘和变更 beego.Router("/api/pc_bg", &HisApiController{}, "get:FJ3501AND3502") //删除库盘和变更 beego.Router("/api/delete_pc_bg", &HisApiController{}, "get:DeletePCandBG") beego.Router("/api/delete_xs_bg", &HisApiController{}, "get:DeleteXSandBG") //药品变更 beego.Router("/api/changedrug", &HisApiController{}, "get:ChangeDrug") beego.Router("/api/changedrug/two", &HisApiController{}, "get:ChangeDrugtwo") beego.Router("/api/changedrug/three", &HisApiController{}, "get:ChangeDrugthree") beego.Router("/api/changedrug/ten", &HisApiController{}, "get:ChangeDrugTen") beego.Router("/api/3508", &HisApiController{}, "get:Get3508") beego.Router("/api/3509", &HisApiController{}, "get:Get3509") beego.Router("/api/3510", &HisApiController{}, "get:Get3510") beego.Router("/api/3511", &HisApiController{}, "get:Get3511") beego.Router("/api/3512", &HisApiController{}, "get:Get3512") beego.Router("/api/3513", &HisApiController{}, "get:Get3513") beego.Router("/api/35081", &HisApiController{}, "get:Get35081") beego.Router("/api/35082", &HisApiController{}, "get:Get35082") beego.Router("/api/changedrug/four", &HisApiController{}, "get:ChangeDrugfour") beego.Router("/api/changedrug/five", &HisApiController{}, "get:ChangeDrugFive") beego.Router("/api/delete_xs_bg_two", &HisApiController{}, "get:DeleteXSandBGTwo") beego.Router("/api/delete_xs_bg_three", &HisApiController{}, "get:DeleteXSandBGThree") beego.Router("/api/3201", &HisApiController{}, "get:Get3201") } func (c *HisApiController) Get3201() { adminUser := c.GetAdminUserInfo() miConfig, _ := service.FindMedicalInsuranceInfo(adminUser.CurrentOrgId) result, _ := service.AHyb3201(932, 0, 571536.19, 543283.9, "2024-10-01", "2024-10-31", "340699", "11", "390", miConfig.OrgName, "王幸子", miConfig.Code, "340399", "340399", miConfig.Url, miConfig.AccessKey, miConfig.SecretKey, miConfig.Cainfo) var response Response if err := json.Unmarshal([]byte(result), &response); err != nil { fmt.Println("Error decoding JSON:", err) return } } func (c *HisApiController) TestNet() { //c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) //return c.ServeSuccessJSON(map[string]interface{}{ "msg": "成功", }) } func (c *HisApiController) Get3508() { admin_user_id, _ := c.GetInt64("admin_user_id") drug_id, _ := c.GetInt64("id") start_time := c.GetString("start_time") end_time := c.GetString("end_time") adminUser := c.GetAdminUserInfo() curRoles, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, admin_user_id) miConfig, _ := service.FindMedicalInsuranceInfo(adminUser.CurrentOrgId) drug, _ := service.GetDrugByID(drug_id) var struct3508 models.Struct3508 struct3508.OrgName = miConfig.OrgName struct3508.FixmedinsCode = miConfig.Code struct3508.AccessKey = miConfig.AccessKey struct3508.Opter = curRoles.UserName struct3508.RequestUrl = miConfig.Url struct3508.Url = miConfig.Url struct3508.AppId = miConfig.Cainfo struct3508.AppSecret = miConfig.AppSecret struct3508.Enckey = miConfig.EncKey struct3508.SignKey = miConfig.SignKey struct3508.SecretKey = miConfig.SecretKey struct3508.MedListCodg = drug.MedicalInsuranceNumber struct3508.Begndate = start_time struct3508.Enddate = end_time result1, result2, _ := service.FJyb3508(struct3508) saveLog(result1, result2, "3508", "3508") var res models.Result3508 var respJSON2 map[string]interface{} if err := json.Unmarshal([]byte(string(result1)), &respJSON2); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } userJSONBytes2, _ := json.Marshal(respJSON2) if err := json.Unmarshal(userJSONBytes2, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if res.Infcode == -1 { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res.ErrMsg, }) } else { c.ServeSuccessJSON(map[string]interface{}{ "info": res.Output, }) } } func (c *HisApiController) Get3509() { admin_user_id, _ := c.GetInt64("admin_user_id") drug_id, _ := c.GetInt64("id") start_time := c.GetString("start_time") end_time := c.GetString("end_time") adminUser := c.GetAdminUserInfo() curRoles, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, admin_user_id) miConfig, _ := service.FindMedicalInsuranceInfo(adminUser.CurrentOrgId) drug, _ := service.GetDrugByID(drug_id) var struct3508 models.Struct3509 struct3508.OrgName = miConfig.OrgName struct3508.FixmedinsCode = miConfig.Code struct3508.AccessKey = miConfig.AccessKey struct3508.Opter = curRoles.UserName struct3508.RequestUrl = miConfig.Url struct3508.Url = miConfig.Url struct3508.AppId = miConfig.Cainfo struct3508.AppSecret = miConfig.AppSecret struct3508.Enckey = miConfig.EncKey struct3508.SignKey = miConfig.SignKey struct3508.SecretKey = miConfig.SecretKey struct3508.MedListCodg = drug.MedicalInsuranceNumber struct3508.Begndate = start_time struct3508.Enddate = end_time result1, result2, _ := service.FJyb3509(struct3508) saveLog(result1, result2, "3509", "3509") var res models.Result3509 var respJSON2 map[string]interface{} if err := json.Unmarshal([]byte(string(result1)), &respJSON2); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } userJSONBytes2, _ := json.Marshal(respJSON2) if err := json.Unmarshal(userJSONBytes2, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if res.Infcode == -1 { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res.ErrMsg, }) } else { c.ServeSuccessJSON(map[string]interface{}{ "info": res.Output, }) } } func (c *HisApiController) Get3510() { admin_user_id, _ := c.GetInt64("admin_user_id") drug_id, _ := c.GetInt64("id") start_time := c.GetString("start_time") end_time := c.GetString("end_time") adminUser := c.GetAdminUserInfo() curRoles, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, admin_user_id) miConfig, _ := service.FindMedicalInsuranceInfo(adminUser.CurrentOrgId) drug, _ := service.GetDrugByID(drug_id) var struct3508 models.Struct3510 struct3508.FixmedinsCode = miConfig.Code struct3508.OrgName = miConfig.OrgName struct3508.AccessKey = miConfig.AccessKey struct3508.Opter = curRoles.UserName struct3508.RequestUrl = miConfig.Url struct3508.Url = miConfig.Url struct3508.AppId = miConfig.Cainfo struct3508.AppSecret = miConfig.AppSecret struct3508.Enckey = miConfig.EncKey struct3508.SignKey = miConfig.SignKey struct3508.SecretKey = miConfig.SecretKey struct3508.MedListCodg = drug.MedicalInsuranceNumber struct3508.Begndate = start_time struct3508.Enddate = end_time result1, result2, _ := service.FJyb3510(struct3508) saveLog(result1, result2, "3510", "3510") var res models.Result3510 var respJSON2 map[string]interface{} if err := json.Unmarshal([]byte(string(result1)), &respJSON2); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } userJSONBytes2, _ := json.Marshal(respJSON2) if err := json.Unmarshal(userJSONBytes2, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if res.Infcode == -1 { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res.ErrMsg, }) } else { c.ServeSuccessJSON(map[string]interface{}{ "info": res.Output, }) } } func (c *HisApiController) Get3511() { admin_user_id, _ := c.GetInt64("admin_user_id") drug_id, _ := c.GetInt64("id") start_time := c.GetString("start_time") end_time := c.GetString("end_time") adminUser := c.GetAdminUserInfo() curRoles, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, admin_user_id) miConfig, _ := service.FindMedicalInsuranceInfo(adminUser.CurrentOrgId) drug, _ := service.GetDrugByID(drug_id) var struct3508 models.Struct3511 struct3508.FixmedinsCode = miConfig.Code struct3508.OrgName = miConfig.OrgName struct3508.AccessKey = miConfig.AccessKey struct3508.Opter = curRoles.UserName struct3508.RequestUrl = miConfig.Url struct3508.Url = miConfig.Url struct3508.AppId = miConfig.Cainfo struct3508.AppSecret = miConfig.AppSecret struct3508.Enckey = miConfig.EncKey struct3508.SignKey = miConfig.SignKey struct3508.SecretKey = miConfig.SecretKey struct3508.MedListCodg = drug.MedicalInsuranceNumber struct3508.Begndate = start_time struct3508.Enddate = end_time result1, result2, _ := service.FJyb3511(struct3508) saveLog(result1, result2, "3511", "3511") var res models.Result3511 var respJSON2 map[string]interface{} if err := json.Unmarshal([]byte(string(result1)), &respJSON2); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } userJSONBytes2, _ := json.Marshal(respJSON2) if err := json.Unmarshal(userJSONBytes2, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if res.Infcode == -1 { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res.ErrMsg, }) } else { c.ServeSuccessJSON(map[string]interface{}{ "info": res.Output, }) } } func (c *HisApiController) Get3512() { admin_user_id, _ := c.GetInt64("admin_user_id") drug_id, _ := c.GetInt64("id") start_time := c.GetString("start_time") end_time := c.GetString("end_time") adminUser := c.GetAdminUserInfo() curRoles, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, admin_user_id) miConfig, _ := service.FindMedicalInsuranceInfo(adminUser.CurrentOrgId) drug, _ := service.GetDrugByID(drug_id) var struct3508 models.Struct3512 struct3508.FixmedinsCode = miConfig.Code struct3508.OrgName = miConfig.OrgName struct3508.AccessKey = miConfig.AccessKey struct3508.Opter = curRoles.UserName struct3508.RequestUrl = miConfig.Url struct3508.Url = miConfig.Url struct3508.AppId = miConfig.Cainfo struct3508.AppSecret = miConfig.AppSecret struct3508.Enckey = miConfig.EncKey struct3508.SignKey = miConfig.SignKey struct3508.SecretKey = miConfig.SecretKey struct3508.MedListCodg = drug.MedicalInsuranceNumber struct3508.Begndate = start_time struct3508.Enddate = end_time result1, result2, _ := service.FJyb3512(struct3508) saveLog(result1, result2, "3512", "3512") var res models.Result3512 var respJSON2 map[string]interface{} if err := json.Unmarshal([]byte(string(result1)), &respJSON2); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } userJSONBytes2, _ := json.Marshal(respJSON2) if err := json.Unmarshal(userJSONBytes2, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if res.Infcode == -1 { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res.ErrMsg, }) } else { c.ServeSuccessJSON(map[string]interface{}{ "info": res.Output, }) } } func (c *HisApiController) Get3513() { admin_user_id, _ := c.GetInt64("admin_user_id") drug_id, _ := c.GetInt64("id") start_time := c.GetString("start_time") end_time := c.GetString("end_time") adminUser := c.GetAdminUserInfo() curRoles, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, admin_user_id) miConfig, _ := service.FindMedicalInsuranceInfo(adminUser.CurrentOrgId) drug, _ := service.GetDrugByID(drug_id) var struct3508 models.Struct3513 struct3508.FixmedinsCode = miConfig.Code struct3508.OrgName = miConfig.OrgName struct3508.AccessKey = miConfig.AccessKey struct3508.Opter = curRoles.UserName struct3508.RequestUrl = miConfig.Url struct3508.Url = miConfig.Url struct3508.AppId = miConfig.Cainfo struct3508.AppSecret = miConfig.AppSecret struct3508.Enckey = miConfig.EncKey struct3508.SignKey = miConfig.SignKey struct3508.SecretKey = miConfig.SecretKey struct3508.MedListCodg = drug.MedicalInsuranceNumber struct3508.Begndate = start_time struct3508.Enddate = end_time result1, result2, _ := service.FJyb3513(struct3508) saveLog(result1, result2, "3513", "3513") var res models.Result3513 var respJSON2 map[string]interface{} if err := json.Unmarshal([]byte(string(result1)), &respJSON2); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } userJSONBytes2, _ := json.Marshal(respJSON2) if err := json.Unmarshal(userJSONBytes2, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if res.Infcode == -1 { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res.ErrMsg, }) } else { c.ServeSuccessJSON(map[string]interface{}{ "info": res.Output, }) } } func (c *HisApiController) Get35081() { admin_user_id, _ := c.GetInt64("admin_user_id") drug_id, _ := c.GetInt64("id") //start_time := c.GetString("start_time") //end_time := c.GetString("end_time") page, _ := c.GetInt("page") adminUser := c.GetAdminUserInfo() curRoles, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, admin_user_id) miConfig, _ := service.FindMedicalInsuranceInfo(adminUser.CurrentOrgId) drug, _ := service.GetDrugByID(drug_id) var struct3508 models.Struct35081 struct3508.FixmedinsCode = miConfig.Code struct3508.OrgName = miConfig.OrgName struct3508.AccessKey = miConfig.AccessKey struct3508.Opter = curRoles.UserName struct3508.RequestUrl = miConfig.Url struct3508.Url = miConfig.Url struct3508.AppId = miConfig.Cainfo struct3508.AppSecret = miConfig.AppSecret struct3508.Enckey = miConfig.EncKey struct3508.SignKey = miConfig.SignKey struct3508.SecretKey = miConfig.SecretKey struct3508.MedListCodg = drug.MedicalInsuranceNumber struct3508.PageNum = page struct3508.PageSize = 10 result1, result2, _ := service.FJyb35081(struct3508) saveLog(result1, result2, "35081", "35081") var res models.Result35081 var respJSON2 map[string]interface{} if err := json.Unmarshal([]byte(string(result1)), &respJSON2); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } userJSONBytes2, _ := json.Marshal(respJSON2) if err := json.Unmarshal(userJSONBytes2, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if res.Infcode == -1 { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res.ErrMsg, }) } else { c.ServeSuccessJSON(map[string]interface{}{ "info": res.Output, }) } } func (c *HisApiController) Get35082() { admin_user_id, _ := c.GetInt64("admin_user_id") drug_id, _ := c.GetInt64("id") //start_time := c.GetString("start_time") //end_time := c.GetString("end_time") page, _ := c.GetInt("page") adminUser := c.GetAdminUserInfo() curRoles, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, admin_user_id) miConfig, _ := service.FindMedicalInsuranceInfo(adminUser.CurrentOrgId) drug, _ := service.GetDrugByID(drug_id) var struct3508 models.Struct35082 struct3508.FixmedinsCode = miConfig.Code struct3508.OrgName = miConfig.OrgName struct3508.AccessKey = miConfig.AccessKey struct3508.Opter = curRoles.UserName struct3508.RequestUrl = miConfig.Url struct3508.Url = miConfig.Url struct3508.AppId = miConfig.Cainfo struct3508.AppSecret = miConfig.AppSecret struct3508.Enckey = miConfig.EncKey struct3508.SignKey = miConfig.SignKey struct3508.SecretKey = miConfig.SecretKey struct3508.MedListCodg = drug.MedicalInsuranceNumber struct3508.PageNum = page struct3508.PageSize = 10 result1, result2, _ := service.FJyb35082(struct3508) saveLog(result1, result2, "35082", "35082") var res models.Result35082 var respJSON2 map[string]interface{} if err := json.Unmarshal([]byte(string(result1)), &respJSON2); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } userJSONBytes2, _ := json.Marshal(respJSON2) if err := json.Unmarshal(userJSONBytes2, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if res.Infcode == -1 { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res.ErrMsg, }) } else { c.ServeSuccessJSON(map[string]interface{}{ "info": res.Output, }) } } func (c *HisApiController) FJ3501AND3502() { ids := c.GetString("ids") admin_user_id, _ := c.GetInt64("admin_user_id") roles, _ := service.GetAdminUserInfoByID(c.GetAdminUserInfo().CurrentOrgId, admin_user_id) id_arr := strings.Split(ids, ",") drugs, _ := service.GetNewDrugWarehouseInfo(c.GetAdminUserInfo().CurrentOrgId, id_arr) miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId) //库盘 var errs []string for _, drug := range drugs { if drug.IsPc == 0 { var res2 ResultSix var res3 ResultSix number := strconv.FormatInt(time.Now().Unix(), 10) + "-" + strconv.FormatInt(drug.ID, 10) + "-" + "3501" var struct3501 models.Struct3501 struct3501.Code = miConfig.Code struct3501.OrgName = miConfig.OrgName struct3501.AccessKey = miConfig.AccessKey struct3501.Opter = roles.UserName struct3501.RequestUrl = miConfig.Url struct3501.Url = miConfig.Url struct3501.AppId = miConfig.Cainfo struct3501.AppSecret = miConfig.AppSecret struct3501.Enckey = miConfig.EncKey struct3501.SignKey = miConfig.SignKey struct3501.SecretKey = miConfig.SecretKey struct3501.MedListCodg = drug.BaseDrugLib.MedicalInsuranceNumber struct3501.FixmedinsHilistId = drug.BaseDrugLib.MedicalInsuranceNumber struct3501.FixmedinsHilistName = drug.BaseDrugLib.DrugName struct3501.RxFlag = "1" struct3501.Invdate = time.Unix(drug.Ctime, 0).Format("2006-01-02") struct3501.ManuDate = time.Unix(drug.ProductDate, 0).Format("2006-01-02") struct3501.MdtrtareaAdmvs = miConfig.MdtrtareaAdmvs struct3501.InsuplcAdmdvs = miConfig.InsuplcAdmdvs struct3501.InvCnt = strconv.FormatInt(drug.StockMaxNumber, 10) struct3501.ExpyEnd = time.Unix(drug.ExpiryDate, 0).Format("2006-01-02") struct3501.FixmedinsBchno = number struct3501.DrugTracCodg = drug.DrugCode memo := make(map[string]interface{}) memo["pric"] = drug.Price bytesData, _ := json.Marshal(memo) struct3501.Memo = string(bytesData) if strings.HasPrefix(miConfig.MdtrtareaAdmvs[0:3], "350") { //福建 result1, result2, _ := service.FJyb3501(struct3501) saveLog(result1, result2, "3501", "3501") //saveLog(result, requestLog, "2201", "挂号") var respJSON2 map[string]interface{} if err := json.Unmarshal([]byte(string(result1)), &respJSON2); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } userJSONBytes2, _ := json.Marshal(respJSON2) if err := json.Unmarshal(userJSONBytes2, &res2); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if strings.HasPrefix(miConfig.MdtrtareaAdmvs[0:3], "320") { //江苏 data := make(map[string]interface{}) data["struct_3501s"] = struct3501 client := &http.Client{} bytesData, _ := json.Marshal(data) var req *http.Request if miConfig.MdtrtareaAdmvs == "320921" { req, _ = http.NewRequest("POST", "http://192.168.2.3:9532/"+"jsyb/3501", bytes.NewReader(bytesData)) } else { req, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/3501", bytes.NewReader(bytesData)) } resp, _ := client.Do(req) defer resp.Body.Close() body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var resSix10265 ResultSix10265 //1101结果 respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) result, _ := json.Marshal(respJSON) if err := json.Unmarshal([]byte(result), &resSix10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res2.InfRefmsgid = resSix10265.InfRefmsgid res2.Output = resSix10265.Output res2.ErrMsg = resSix10265.ErrMsg res2.Cainfo = resSix10265.Cainfo res2.WarnMsg = resSix10265.WarnMsg infocode, _ := strconv.ParseInt(resSix10265.Infcode, 10, 64) res2.Infcode = infocode } else if strings.HasPrefix(miConfig.MdtrtareaAdmvs[0:3], "340") { //安徽 data := make(map[string]interface{}) data["struct_3501s"] = struct3501 client := &http.Client{} bytesData, _ := json.Marshal(data) var req *http.Request req, _ = http.NewRequest("POST", miConfig.Url+"ahyb/3501", bytes.NewReader(bytesData)) resp, _ := client.Do(req) defer resp.Body.Close() body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var resSix10265 ResultSix10265 //1101结果 respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) result, _ := json.Marshal(respJSON) if err := json.Unmarshal([]byte(result), &resSix10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res2.InfRefmsgid = resSix10265.InfRefmsgid res2.Output = resSix10265.Output res2.ErrMsg = resSix10265.ErrMsg res2.Cainfo = resSix10265.Cainfo res2.WarnMsg = resSix10265.WarnMsg infocode, _ := strconv.ParseInt(resSix10265.Infcode, 10, 64) res2.Infcode = infocode } else if strings.HasPrefix(miConfig.MdtrtareaAdmvs[0:3], "150") { //内蒙 data := make(map[string]interface{}) data["struct_3501s"] = struct3501 client := &http.Client{} bytesData, _ := json.Marshal(data) var req *http.Request req, _ = http.NewRequest("POST", miConfig.Url+"nmyb/3501", bytes.NewReader(bytesData)) resp, _ := client.Do(req) defer resp.Body.Close() body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var resSix10265 ResultSix10265 //1101结果 respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) result, _ := json.Marshal(respJSON) if err := json.Unmarshal([]byte(result), &resSix10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res2.InfRefmsgid = resSix10265.InfRefmsgid res2.Output = resSix10265.Output res2.ErrMsg = resSix10265.ErrMsg res2.Cainfo = resSix10265.Cainfo res2.WarnMsg = resSix10265.WarnMsg infocode, _ := strconv.ParseInt(resSix10265.Infcode, 10, 64) res2.Infcode = infocode } else if strings.HasPrefix(miConfig.MdtrtareaAdmvs[0:3], "440") { //广东 result1, result2 := service.Gdyb3501(struct3501, struct3501.SecretKey) saveLog(result1, result2, "3501", "3501") //saveLog(result, requestLog, "2201", "挂号") var respJSON2 map[string]interface{} if err := json.Unmarshal([]byte(string(result1)), &respJSON2); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } userJSONBytes2, _ := json.Marshal(respJSON2) if err := json.Unmarshal(userJSONBytes2, &res2); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } if res2.Infcode != -1 { drug.IsPc = 1 drug.Bchno = number drug.PcDate = time.Now().Unix() err := service.SaveW(drug) if err == nil { bg_number := strconv.FormatInt(time.Now().Unix(), 10) + "-" + strconv.FormatInt(drug.ID, 10) + "-" + "3502" var struct3502 models.Struct3502 struct3502.MedListCodg = drug.BaseDrugLib.MedicalInsuranceNumber struct3502.FixmedinsHilistId = drug.BaseDrugLib.MedicalInsuranceNumber struct3502.FixmedinsHilistName = drug.BaseDrugLib.DrugName struct3502.FixmedinsCode = miConfig.Code struct3502.Code = miConfig.Code struct3502.RxFlag = "0" struct3502.InvChgTime = time.Now().Format("2006-01-02") struct3502.OrgName = miConfig.OrgName struct3502.Opter = roles.UserName struct3502.AccessKey = miConfig.AccessKey struct3502.RequestUrl = miConfig.Url struct3502.SecretKey = miConfig.SecretKey struct3502.MdtrtareaAdmvs = miConfig.MdtrtareaAdmvs struct3502.InsuplcAdmdvs = miConfig.InsuplcAdmdvs struct3502.Url = miConfig.Url struct3502.AppId = miConfig.Cainfo struct3502.AppSecret = miConfig.AppSecret struct3502.Enckey = miConfig.EncKey struct3502.SignKey = miConfig.SignKey struct3502.SecretKey = miConfig.SecretKey struct3502.DrugTracCodg = drug.DrugCode struct3502.Memo = "" struct3502.InvChgType = "108" struct3502.FixmedinsBchno = bg_number struct3502.Cnt = strconv.FormatInt(drug.WarehousingCount, 10) struct3502.Pric = fmt.Sprintf("%.2f", drug.BaseDrugLib.RetailPrice) if strings.HasPrefix(miConfig.MdtrtareaAdmvs[0:3], "350") { result11, result22, _ := service.FJyb3502(struct3502) saveLog(result11, result22, "3502", "3502") var respJSON3 map[string]interface{} if err := json.Unmarshal([]byte(string(result11)), &respJSON3); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } userJSONBytes3, _ := json.Marshal(respJSON3) if err := json.Unmarshal(userJSONBytes3, &res3); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if strings.HasPrefix(miConfig.MdtrtareaAdmvs[0:3], "320") { data := make(map[string]interface{}) data["struct_3502s"] = struct3502 client := &http.Client{} bytesData, _ := json.Marshal(data) var req *http.Request if miConfig.MdtrtareaAdmvs == "320921" { req, _ = http.NewRequest("POST", "http://192.168.2.3:9532/"+"jsyb/3502", bytes.NewReader(bytesData)) } else { req, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/3502", bytes.NewReader(bytesData)) } resp, _ := client.Do(req) defer resp.Body.Close() body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var resSix10265 ResultSix10265 //1101结果 respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) result, _ := json.Marshal(respJSON) if err := json.Unmarshal([]byte(result), &resSix10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res3.InfRefmsgid = resSix10265.InfRefmsgid res3.Output = resSix10265.Output res3.ErrMsg = resSix10265.ErrMsg res3.Cainfo = resSix10265.Cainfo res3.WarnMsg = resSix10265.WarnMsg infocode, _ := strconv.ParseInt(resSix10265.Infcode, 10, 64) res3.Infcode = infocode } else if strings.HasPrefix(miConfig.MdtrtareaAdmvs[0:3], "150") { data := make(map[string]interface{}) data["struct_3502s"] = struct3502 client := &http.Client{} bytesData, _ := json.Marshal(data) var req *http.Request req, _ = http.NewRequest("POST", "http://192.168.2.3:9532/"+"nmyb/3502", bytes.NewReader(bytesData)) resp, _ := client.Do(req) defer resp.Body.Close() body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var resSix10265 ResultSix10265 //1101结果 respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) result, _ := json.Marshal(respJSON) if err := json.Unmarshal([]byte(result), &resSix10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res3.InfRefmsgid = resSix10265.InfRefmsgid res3.Output = resSix10265.Output res3.ErrMsg = resSix10265.ErrMsg res3.Cainfo = resSix10265.Cainfo res3.WarnMsg = resSix10265.WarnMsg infocode, _ := strconv.ParseInt(resSix10265.Infcode, 10, 64) res3.Infcode = infocode } else if strings.HasPrefix(miConfig.MdtrtareaAdmvs[0:3], "340") { data := make(map[string]interface{}) data["struct_3501s"] = struct3501 client := &http.Client{} bytesData, _ := json.Marshal(data) var req *http.Request req, _ = http.NewRequest("POST", miConfig.Url+"ahyb/3501", bytes.NewReader(bytesData)) resp, _ := client.Do(req) defer resp.Body.Close() body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var resSix10265 ResultSix10265 //1101结果 respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) result, _ := json.Marshal(respJSON) if err := json.Unmarshal([]byte(result), &resSix10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res2.InfRefmsgid = resSix10265.InfRefmsgid res2.Output = resSix10265.Output res2.ErrMsg = resSix10265.ErrMsg res2.Cainfo = resSix10265.Cainfo res2.WarnMsg = resSix10265.WarnMsg infocode, _ := strconv.ParseInt(resSix10265.Infcode, 10, 64) res2.Infcode = infocode } else if strings.HasPrefix(miConfig.MdtrtareaAdmvs[0:3], "440") { result11, result22 := service.Gdyb3502(struct3502, struct3502.SecretKey) saveLog(result11, result22, "3502", "3502") var respJSON3 map[string]interface{} if err := json.Unmarshal([]byte(string(result11)), &respJSON3); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } userJSONBytes3, _ := json.Marshal(respJSON3) if err := json.Unmarshal(userJSONBytes3, &res3); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } if res3.Infcode == -1 { errs = append(errs, "变更"+drug.BaseDrugLib.DrugName+",出错:"+res3.ErrMsg) c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res3.ErrMsg, }) } else { drug.IsBg = 1 drug.BgBchno = bg_number service.SaveW(drug) } } } else { errs = append(errs, "盘存"+drug.BaseDrugLib.DrugName+",出错:"+res2.ErrMsg) } } //变更 } if len(errs) == 0 { c.ServeSuccessJSON(map[string]interface{}{ "msg": "盘存变更成功", }) } else { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": errs, }) } } func (c *HisApiController) DeletePCandBG() { ids := c.GetString("ids") id_arr := strings.Split(ids, ",") admin_user_id, _ := c.GetInt64("admin_user_id") roles, _ := service.GetAdminUserInfoByID(c.GetAdminUserInfo().CurrentOrgId, admin_user_id) drugs, _ := service.GetNewDrugWarehouseInfo(c.GetAdminUserInfo().CurrentOrgId, id_arr) miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId) var err []string for _, item := range drugs { if item.IsPc == 1 && item.IsBg == 1 { var res FJ3507Result var res2 FJ3507Result var struct3507 models.Struct3507 struct3507.FixmedinsBchno = item.Bchno struct3507.InvDataType = "1" struct3507.Opter = roles.UserName struct3507.OrgName = miConfig.OrgName struct3507.AccessKey = miConfig.AccessKey struct3507.RequestUrl = miConfig.Url struct3507.FixmedinsCode = miConfig.Code struct3507.Code = miConfig.Code struct3507.SecretKey = miConfig.SecretKey struct3507.MdtrtareaAdmvs = miConfig.MdtrtareaAdmvs struct3507.InsuplcAdmdvs = miConfig.InsuplcAdmdvs struct3507.Url = miConfig.Url struct3507.AppId = miConfig.Cainfo struct3507.AppSecret = miConfig.AppSecret struct3507.Enckey = miConfig.EncKey struct3507.SignKey = miConfig.SignKey struct3507.SecretKey = miConfig.SecretKey if miConfig.MdtrtareaAdmvs == "350500" { result, result1, _ := service.FJyb3507(struct3507) saveLog(result, result1, "3507", "3507") var respJSON2 map[string]interface{} if err := json.Unmarshal([]byte(string(result)), &respJSON2); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } userJSONBytes2, _ := json.Marshal(respJSON2) if err := json.Unmarshal(userJSONBytes2, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else { data := make(map[string]interface{}) data["struct_3507s"] = struct3507 client := &http.Client{} bytesData, _ := json.Marshal(data) var req *http.Request if miConfig.MdtrtareaAdmvs == "320921" { req, _ = http.NewRequest("POST", "http://192.168.2.3:9532/"+"jsyb/3507", bytes.NewReader(bytesData)) } else { req, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/3507", bytes.NewReader(bytesData)) } resp, _ := client.Do(req) defer resp.Body.Close() body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var resSix10265 ResultSix10265 //1101结果 respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) result, _ := json.Marshal(respJSON) if err := json.Unmarshal([]byte(result), &resSix10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res.InfRefmsgid = resSix10265.InfRefmsgid //res.Output = resSix10265.Output res.ErrMsg = resSix10265.ErrMsg res.Cainfo = resSix10265.Cainfo res.WarnMsg = resSix10265.WarnMsg infocode, _ := strconv.ParseInt(resSix10265.Infcode, 10, 64) res.Infcode = infocode } if res.Infcode == 0 { item.IsPc = 0 err2 := service.SaveW(item) if err2 == nil { var struct3507_2 models.Struct3507 struct3507_2.OrgName = miConfig.OrgName struct3507_2.AccessKey = miConfig.AccessKey struct3507_2.RequestUrl = miConfig.Url struct3507_2.Opter = roles.UserName struct3507_2.FixmedinsCode = miConfig.Code struct3507_2.Code = miConfig.Code struct3507_2.SecretKey = miConfig.SecretKey struct3507_2.MdtrtareaAdmvs = miConfig.MdtrtareaAdmvs struct3507_2.InsuplcAdmdvs = miConfig.InsuplcAdmdvs struct3507_2.Url = miConfig.Url struct3507_2.AppId = miConfig.Cainfo struct3507_2.AppSecret = miConfig.AppSecret struct3507_2.Enckey = miConfig.EncKey struct3507_2.SignKey = miConfig.SignKey struct3507_2.SecretKey = miConfig.SecretKey struct3507_2.FixmedinsBchno = item.BgBchno struct3507_2.InvDataType = "2" if miConfig.MdtrtareaAdmvs == "350500" { result11, result22, _ := service.FJyb3507(struct3507_2) saveLog(result11, result22, "3507", "3507") var respJSON3 map[string]interface{} if err := json.Unmarshal([]byte(string(result11)), &respJSON3); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } userJSONBytes3, _ := json.Marshal(respJSON3) if err := json.Unmarshal(userJSONBytes3, &res2); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else { data := make(map[string]interface{}) data["struct_3507s"] = struct3507_2 client := &http.Client{} bytesData, _ := json.Marshal(data) var req *http.Request if miConfig.MdtrtareaAdmvs == "320921" { req, _ = http.NewRequest("POST", "http://192.168.2.3:9532/"+"jsyb/3507", bytes.NewReader(bytesData)) } else { req, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/3507", bytes.NewReader(bytesData)) } resp, _ := client.Do(req) defer resp.Body.Close() body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var resSix10265 ResultSix10265 //1101结果 respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) result, _ := json.Marshal(respJSON) if err := json.Unmarshal([]byte(result), &resSix10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res2.InfRefmsgid = resSix10265.InfRefmsgid //res2.Output = resSix10265.Output res2.ErrMsg = resSix10265.ErrMsg res2.Cainfo = resSix10265.Cainfo res2.WarnMsg = resSix10265.WarnMsg infocode, _ := strconv.ParseInt(resSix10265.Infcode, 10, 64) res2.Infcode = infocode } if res2.Infcode != -1 { item.IsBg = 0 item.Bchno = "" item.BgBchno = "" item.PcDate = 0 service.SaveW(item) } else { err = append(err, "删除"+item.BaseDrugLib.DrugName+"变更失败,失败原因:"+res.ErrMsg) } } } else { err = append(err, "删除"+item.BaseDrugLib.DrugName+"盘存失败,失败原因:"+res.ErrMsg) } } if item.IsPc == 1 && item.IsBg == 0 { var res FJ3507Result var struct3507 models.Struct3507 struct3507.FixmedinsBchno = item.Bchno struct3507.InvDataType = "1" struct3507.Opter = roles.UserName struct3507.FixmedinsCode = miConfig.Code struct3507.Code = miConfig.Code struct3507.OrgName = miConfig.OrgName struct3507.AccessKey = miConfig.AccessKey struct3507.RequestUrl = miConfig.Url struct3507.SecretKey = miConfig.SecretKey struct3507.MdtrtareaAdmvs = miConfig.MdtrtareaAdmvs struct3507.InsuplcAdmdvs = miConfig.InsuplcAdmdvs struct3507.Url = miConfig.Url struct3507.AppId = miConfig.Cainfo struct3507.AppSecret = miConfig.AppSecret struct3507.Enckey = miConfig.EncKey struct3507.SignKey = miConfig.SignKey struct3507.SecretKey = miConfig.SecretKey //result, result1, _ := service.FJyb3507(struct3507) //saveLog(result, result1, "3507", "3507") if miConfig.MdtrtareaAdmvs == "350500" { result, result1, _ := service.FJyb3507(struct3507) saveLog(result, result1, "3507", "3507") var respJSON2 map[string]interface{} if err := json.Unmarshal([]byte(string(result)), &respJSON2); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } userJSONBytes2, _ := json.Marshal(respJSON2) if err := json.Unmarshal(userJSONBytes2, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else { data := make(map[string]interface{}) data["struct_3507s"] = struct3507 client := &http.Client{} bytesData, _ := json.Marshal(data) var req *http.Request if miConfig.MdtrtareaAdmvs == "320921" { req, _ = http.NewRequest("POST", "http://192.168.2.3:9532/"+"jsyb/3507", bytes.NewReader(bytesData)) } else { req, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/3507", bytes.NewReader(bytesData)) } resp, _ := client.Do(req) defer resp.Body.Close() body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var resSix10265 ResultSix10265 //1101结果 respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) result, _ := json.Marshal(respJSON) if err := json.Unmarshal([]byte(result), &resSix10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res.InfRefmsgid = resSix10265.InfRefmsgid //res.Output = resSix10265.Output res.ErrMsg = resSix10265.ErrMsg res.Cainfo = resSix10265.Cainfo res.WarnMsg = resSix10265.WarnMsg infocode, _ := strconv.ParseInt(resSix10265.Infcode, 10, 64) res.Infcode = infocode } if res.Infcode == 0 { item.IsPc = 0 item.Bchno = "" item.BgBchno = "" item.PcDate = 0 service.SaveW(item) } else { err = append(err, "删除"+item.BaseDrugLib.DrugName+"盘存失败,失败原因:"+res.ErrMsg) } } if item.IsPc == 0 && item.IsBg == 1 { var res FJ3507Result var struct3507 models.Struct3507 struct3507.FixmedinsBchno = item.BgBchno struct3507.InvDataType = "2" struct3507.Opter = roles.UserName struct3507.FixmedinsCode = miConfig.Code struct3507.OrgName = miConfig.OrgName struct3507.AccessKey = miConfig.AccessKey struct3507.RequestUrl = miConfig.Url struct3507.SecretKey = miConfig.SecretKey struct3507.MdtrtareaAdmvs = miConfig.MdtrtareaAdmvs struct3507.InsuplcAdmdvs = miConfig.InsuplcAdmdvs struct3507.Url = miConfig.Url struct3507.AppId = miConfig.Cainfo struct3507.AppSecret = miConfig.AppSecret struct3507.Enckey = miConfig.EncKey struct3507.SignKey = miConfig.SignKey struct3507.SecretKey = miConfig.SecretKey //result, result1, _ := service.FJyb3507(struct3507) //saveLog(result, result1, "3507", "3507") if miConfig.MdtrtareaAdmvs == "350500" { result, result1, _ := service.FJyb3507(struct3507) saveLog(result, result1, "3507", "3507") var respJSON2 map[string]interface{} if err := json.Unmarshal([]byte(string(result)), &respJSON2); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } userJSONBytes2, _ := json.Marshal(respJSON2) if err := json.Unmarshal(userJSONBytes2, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else { data := make(map[string]interface{}) data["struct_3507s"] = struct3507 client := &http.Client{} bytesData, _ := json.Marshal(data) var req *http.Request if miConfig.MdtrtareaAdmvs == "320921" { req, _ = http.NewRequest("POST", "http://192.168.2.3:9532/"+"jsyb/3507", bytes.NewReader(bytesData)) } else { req, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/3507", bytes.NewReader(bytesData)) } resp, _ := client.Do(req) defer resp.Body.Close() body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var resSix10265 ResultSix10265 //1101结果 respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) result, _ := json.Marshal(respJSON) if err := json.Unmarshal([]byte(result), &resSix10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res.InfRefmsgid = resSix10265.InfRefmsgid //res.Output = resSix10265.Output res.ErrMsg = resSix10265.ErrMsg res.Cainfo = resSix10265.Cainfo res.WarnMsg = resSix10265.WarnMsg infocode, _ := strconv.ParseInt(resSix10265.Infcode, 10, 64) res.Infcode = infocode } if res.Infcode == 0 { item.IsBg = 0 item.Bchno = "" item.BgBchno = "" item.PcDate = 0 service.SaveW(item) } else { err = append(err, "删除"+item.BaseDrugLib.DrugName+"变更失败,失败原因:"+res.ErrMsg) } } } if len(err) == 0 { c.ServeSuccessJSON(map[string]interface{}{ "msg": "删除盘存变更成功", }) } else { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": err, }) } } func (c *HisApiController) DeleteXSandBG() { ids := c.GetString("ids") id_arr := strings.Split(ids, ",") admin_user_id, _ := c.GetInt64("admin_user_id") flows, _ := service.GetNewDrugFlowInfo(c.GetAdminUserInfo().CurrentOrgId, id_arr) roles, _ := service.GetAdminUserInfoByID(c.GetAdminUserInfo().CurrentOrgId, admin_user_id) miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId) var err []string for _, item := range flows { if item.IsSale == 1 && item.IsChange == 1 { var res FJ3507Result var res2 FJ3507Result var struct3507 models.Struct3507 struct3507.FixmedinsBchno = item.Bchno struct3507.InvDataType = "4" struct3507.Opter = roles.UserName struct3507.OrgName = miConfig.OrgName struct3507.AccessKey = miConfig.AccessKey struct3507.RequestUrl = miConfig.Url struct3507.FixmedinsCode = miConfig.Code struct3507.SecretKey = miConfig.SecretKey struct3507.MdtrtareaAdmvs = miConfig.MdtrtareaAdmvs struct3507.InsuplcAdmdvs = miConfig.InsuplcAdmdvs struct3507.Url = miConfig.Url struct3507.AppId = miConfig.Cainfo struct3507.AppSecret = miConfig.AppSecret struct3507.Enckey = miConfig.EncKey struct3507.SignKey = miConfig.SignKey struct3507.SecretKey = miConfig.SecretKey //result, result1, _ := service.FJyb3507(struct3507) //saveLog(result, result1, "3507", "3507") if miConfig.MdtrtareaAdmvs == "350500" { result, result1, _ := service.FJyb3507(struct3507) saveLog(result, result1, "3507", "3507") var respJSON2 map[string]interface{} if err := json.Unmarshal([]byte(string(result)), &respJSON2); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } userJSONBytes2, _ := json.Marshal(respJSON2) if err := json.Unmarshal(userJSONBytes2, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else { data := make(map[string]interface{}) data["struct_3507s"] = struct3507 client := &http.Client{} bytesData, _ := json.Marshal(data) var req *http.Request if miConfig.MdtrtareaAdmvs == "320921" { req, _ = http.NewRequest("POST", "http://192.168.2.3:9532/"+"jsyb/3507", bytes.NewReader(bytesData)) } else { req, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/3507", bytes.NewReader(bytesData)) } resp, _ := client.Do(req) defer resp.Body.Close() body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var resSix10265 ResultSix10265 //1101结果 respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) result, _ := json.Marshal(respJSON) if err := json.Unmarshal([]byte(result), &resSix10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res.InfRefmsgid = resSix10265.InfRefmsgid //res.Output = resSix10265.Output res.ErrMsg = resSix10265.ErrMsg res.Cainfo = resSix10265.Cainfo res.WarnMsg = resSix10265.WarnMsg infocode, _ := strconv.ParseInt(resSix10265.Infcode, 10, 64) res.Infcode = infocode } if res.Infcode == 0 { item.IsSale = 0 item.SaleDate = "" item.Bchno = "" err2 := service.SaveDF(item) if err2 == nil { var struct3507_2 models.Struct3507 struct3507_2.OrgName = miConfig.OrgName struct3507_2.AccessKey = miConfig.AccessKey struct3507_2.RequestUrl = miConfig.Url struct3507_2.Opter = roles.UserName struct3507_2.FixmedinsCode = miConfig.Code struct3507_2.Code = miConfig.Code struct3507_2.SecretKey = miConfig.SecretKey struct3507_2.MdtrtareaAdmvs = miConfig.MdtrtareaAdmvs struct3507_2.InsuplcAdmdvs = miConfig.InsuplcAdmdvs struct3507_2.Url = miConfig.Url struct3507_2.AppId = miConfig.Cainfo struct3507_2.AppSecret = miConfig.AppSecret struct3507_2.Enckey = miConfig.EncKey struct3507_2.SignKey = miConfig.SignKey struct3507_2.SecretKey = miConfig.SecretKey struct3507_2.FixmedinsBchno = item.BgBchno struct3507_2.InvDataType = "2" if miConfig.MdtrtareaAdmvs == "350500" { result11, result22, _ := service.FJyb3507(struct3507_2) saveLog(result11, result22, "3507", "3507") var respJSON3 map[string]interface{} if err := json.Unmarshal([]byte(string(result11)), &respJSON3); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } userJSONBytes3, _ := json.Marshal(respJSON3) if err := json.Unmarshal(userJSONBytes3, &res2); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else { data := make(map[string]interface{}) data["struct_3507s"] = struct3507_2 client := &http.Client{} bytesData, _ := json.Marshal(data) var req *http.Request if miConfig.MdtrtareaAdmvs == "320921" { req, _ = http.NewRequest("POST", "http://192.168.2.3:9532/"+"jsyb/3507", bytes.NewReader(bytesData)) } else { req, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/3507", bytes.NewReader(bytesData)) } resp, _ := client.Do(req) defer resp.Body.Close() body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var resSix10265 ResultSix10265 //1101结果 respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) result, _ := json.Marshal(respJSON) if err := json.Unmarshal([]byte(result), &resSix10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res2.InfRefmsgid = resSix10265.InfRefmsgid //res.Output = resSix10265.Output res2.ErrMsg = resSix10265.ErrMsg res2.Cainfo = resSix10265.Cainfo res2.WarnMsg = resSix10265.WarnMsg infocode, _ := strconv.ParseInt(resSix10265.Infcode, 10, 64) res2.Infcode = infocode } if res2.Infcode == 0 { item.IsChange = 0 item.BgBchno = "" service.SaveDF2(item) } else { err = append(err, "删除"+item.HisDoctorAdviceInfo.BaseDrugLib.DrugName+"变更失败,失败原因:"+res.ErrMsg) } } } else { err = append(err, "删除"+item.HisDoctorAdviceInfo.BaseDrugLib.DrugName+"盘存失败,失败原因:"+res.ErrMsg) } } if item.IsSale == 2 && item.IsChange == 1 { var res FJ3507Result var res2 FJ3507Result var struct3507 models.Struct3507 struct3507.FixmedinsBchno = item.Bchno struct3507.InvDataType = "4" struct3507.Opter = roles.UserName struct3507.OrgName = miConfig.OrgName struct3507.AccessKey = miConfig.AccessKey struct3507.RequestUrl = miConfig.Url struct3507.FixmedinsCode = miConfig.Code struct3507.Code = miConfig.Code struct3507.SecretKey = miConfig.SecretKey struct3507.MdtrtareaAdmvs = miConfig.MdtrtareaAdmvs struct3507.InsuplcAdmdvs = miConfig.InsuplcAdmdvs struct3507.Url = miConfig.Url struct3507.AppId = miConfig.Cainfo struct3507.AppSecret = miConfig.AppSecret struct3507.Enckey = miConfig.EncKey struct3507.SignKey = miConfig.SignKey struct3507.SecretKey = miConfig.SecretKey //result, result1, _ := service.FJyb3507(struct3507) //saveLog(result, result1, "3507", "3507") // //var respJSON2 map[string]interface{} //if err := json.Unmarshal([]byte(string(result)), &respJSON2); err != nil { // utils.ErrorLog("接口返回数据解析JSON失败: %v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return //} //userJSONBytes2, _ := json.Marshal(respJSON2) //if err := json.Unmarshal(userJSONBytes2, &res); err != nil { // utils.ErrorLog("解析失败:%v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return //} if miConfig.MdtrtareaAdmvs == "350500" { result, result1, _ := service.FJyb3507(struct3507) saveLog(result, result1, "3507", "3507") var respJSON2 map[string]interface{} if err := json.Unmarshal([]byte(string(result)), &respJSON2); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } userJSONBytes2, _ := json.Marshal(respJSON2) if err := json.Unmarshal(userJSONBytes2, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else { data := make(map[string]interface{}) data["struct_3507s"] = struct3507 client := &http.Client{} bytesData, _ := json.Marshal(data) var req *http.Request if miConfig.MdtrtareaAdmvs == "320921" { req, _ = http.NewRequest("POST", "http://192.168.2.3:9532/"+"jsyb/3507", bytes.NewReader(bytesData)) } else { req, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/3507", bytes.NewReader(bytesData)) } resp, _ := client.Do(req) defer resp.Body.Close() body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var resSix10265 ResultSix10265 //1101结果 respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) result, _ := json.Marshal(respJSON) if err := json.Unmarshal([]byte(result), &resSix10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res.InfRefmsgid = resSix10265.InfRefmsgid //res.Output = resSix10265.Output res.ErrMsg = resSix10265.ErrMsg res.Cainfo = resSix10265.Cainfo res.WarnMsg = resSix10265.WarnMsg infocode, _ := strconv.ParseInt(resSix10265.Infcode, 10, 64) res.Infcode = infocode } if res.Infcode == 0 { item.IsSale = 0 item.SaleDate = "" item.Bchno = "" err2 := service.SaveDF(item) if err2 == nil { var struct3507_2 models.Struct3507 struct3507_2.OrgName = miConfig.OrgName struct3507_2.AccessKey = miConfig.AccessKey struct3507_2.RequestUrl = miConfig.Url struct3507_2.Opter = roles.UserName struct3507_2.FixmedinsCode = miConfig.Code struct3507_2.Code = miConfig.Code struct3507_2.SecretKey = miConfig.SecretKey struct3507_2.MdtrtareaAdmvs = miConfig.MdtrtareaAdmvs struct3507_2.InsuplcAdmdvs = miConfig.InsuplcAdmdvs struct3507_2.Url = miConfig.Url struct3507_2.AppId = miConfig.Cainfo struct3507_2.AppSecret = miConfig.AppSecret struct3507_2.Enckey = miConfig.EncKey struct3507_2.SignKey = miConfig.SignKey struct3507_2.SecretKey = miConfig.SecretKey struct3507_2.FixmedinsBchno = item.BgBchno struct3507_2.InvDataType = "2" //result11, result22, _ := service.FJyb3507(struct3507_2) //saveLog(result11, result22, "3507", "3507") //var respJSON3 map[string]interface{} //if err := json.Unmarshal([]byte(string(result11)), &respJSON3); err != nil { // utils.ErrorLog("接口返回数据解析JSON失败: %v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return //} //userJSONBytes3, _ := json.Marshal(respJSON3) //if err := json.Unmarshal(userJSONBytes3, &res2); err != nil { // utils.ErrorLog("解析失败:%v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return //} if miConfig.MdtrtareaAdmvs == "350500" { result11, result22, _ := service.FJyb3507(struct3507_2) saveLog(result11, result22, "3507", "3507") var respJSON3 map[string]interface{} if err := json.Unmarshal([]byte(string(result11)), &respJSON3); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } userJSONBytes3, _ := json.Marshal(respJSON3) if err := json.Unmarshal(userJSONBytes3, &res2); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else { data := make(map[string]interface{}) data["struct_3507s"] = struct3507_2 client := &http.Client{} bytesData, _ := json.Marshal(data) var req *http.Request if miConfig.MdtrtareaAdmvs == "320921" { req, _ = http.NewRequest("POST", "http://192.168.2.3:9532/"+"jsyb/3507", bytes.NewReader(bytesData)) } else { req, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/3507", bytes.NewReader(bytesData)) } resp, _ := client.Do(req) defer resp.Body.Close() body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var resSix10265 ResultSix10265 //1101结果 respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) result, _ := json.Marshal(respJSON) if err := json.Unmarshal([]byte(result), &resSix10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res2.InfRefmsgid = resSix10265.InfRefmsgid //res.Output = resSix10265.Output res2.ErrMsg = resSix10265.ErrMsg res2.Cainfo = resSix10265.Cainfo res2.WarnMsg = resSix10265.WarnMsg infocode, _ := strconv.ParseInt(resSix10265.Infcode, 10, 64) res2.Infcode = infocode } if res2.Infcode == 0 { item.IsChange = 0 item.BgBchno = "" service.SaveDF2(item) } else { err = append(err, "删除"+item.HisDoctorAdviceInfo.BaseDrugLib.DrugName+"变更失败,失败原因:"+res.ErrMsg) } } } else { err = append(err, "删除"+item.HisDoctorAdviceInfo.BaseDrugLib.DrugName+"盘存失败,失败原因:"+res.ErrMsg) } } if item.IsSale == 1 && item.IsChange == 0 { var res FJ3507Result var struct3507 models.Struct3507 struct3507.FixmedinsBchno = item.Bchno struct3507.InvDataType = "4" struct3507.Opter = roles.UserName struct3507.FixmedinsCode = miConfig.Code struct3507.Code = miConfig.Code struct3507.OrgName = miConfig.OrgName struct3507.AccessKey = miConfig.AccessKey struct3507.RequestUrl = miConfig.Url struct3507.SecretKey = miConfig.SecretKey struct3507.MdtrtareaAdmvs = miConfig.MdtrtareaAdmvs struct3507.InsuplcAdmdvs = miConfig.InsuplcAdmdvs struct3507.Url = miConfig.Url struct3507.AppId = miConfig.Cainfo struct3507.AppSecret = miConfig.AppSecret struct3507.Enckey = miConfig.EncKey struct3507.SignKey = miConfig.SignKey struct3507.SecretKey = miConfig.SecretKey //result, result1, _ := service.FJyb3507(struct3507) //saveLog(result, result1, "3507", "3507") // //var respJSON3 map[string]interface{} //if err := json.Unmarshal([]byte(string(result)), &respJSON3); err != nil { // utils.ErrorLog("接口返回数据解析JSON失败: %v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return //} //userJSONBytes3, _ := json.Marshal(respJSON3) //if err := json.Unmarshal(userJSONBytes3, &res); err != nil { // utils.ErrorLog("解析失败:%v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return //} if miConfig.MdtrtareaAdmvs == "350500" { result, result1, _ := service.FJyb3507(struct3507) saveLog(result, result1, "3507", "3507") var respJSON2 map[string]interface{} if err := json.Unmarshal([]byte(string(result)), &respJSON2); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } userJSONBytes2, _ := json.Marshal(respJSON2) if err := json.Unmarshal(userJSONBytes2, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else { data := make(map[string]interface{}) data["struct_3507s"] = struct3507 client := &http.Client{} bytesData, _ := json.Marshal(data) var req *http.Request if miConfig.MdtrtareaAdmvs == "320921" { req, _ = http.NewRequest("POST", "http://192.168.2.3:9532/"+"jsyb/3507", bytes.NewReader(bytesData)) } else { req, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/3507", bytes.NewReader(bytesData)) } resp, _ := client.Do(req) defer resp.Body.Close() body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var resSix10265 ResultSix10265 //1101结果 respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) result, _ := json.Marshal(respJSON) if err := json.Unmarshal([]byte(result), &resSix10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res.InfRefmsgid = resSix10265.InfRefmsgid //res.Output = resSix10265.Output res.ErrMsg = resSix10265.ErrMsg res.Cainfo = resSix10265.Cainfo res.WarnMsg = resSix10265.WarnMsg infocode, _ := strconv.ParseInt(resSix10265.Infcode, 10, 64) res.Infcode = infocode } if res.Infcode == 0 { item.IsSale = 0 item.SaleDate = "" service.SaveDF(item) } else { err = append(err, "删除"+item.HisDoctorAdviceInfo.BaseDrugLib.DrugName+"变更失败,失败原因:"+res.ErrMsg) } } if item.IsSale == 2 && item.IsChange == 0 { var res FJ3507Result var struct3507 models.Struct3507 struct3507.FixmedinsBchno = item.Bchno struct3507.InvDataType = "4" struct3507.Opter = roles.UserName struct3507.FixmedinsCode = miConfig.Code struct3507.Code = miConfig.Code struct3507.OrgName = miConfig.OrgName struct3507.AccessKey = miConfig.AccessKey struct3507.RequestUrl = miConfig.Url struct3507.SecretKey = miConfig.SecretKey struct3507.MdtrtareaAdmvs = miConfig.MdtrtareaAdmvs struct3507.InsuplcAdmdvs = miConfig.InsuplcAdmdvs struct3507.Url = miConfig.Url struct3507.AppId = miConfig.Cainfo struct3507.AppSecret = miConfig.AppSecret struct3507.Enckey = miConfig.EncKey struct3507.SignKey = miConfig.SignKey struct3507.SecretKey = miConfig.SecretKey //result, result1, _ := service.FJyb3507(struct3507) //saveLog(result, result1, "3507", "3507") // //var respJSON3 map[string]interface{} //if err := json.Unmarshal([]byte(string(result)), &respJSON3); err != nil { // utils.ErrorLog("接口返回数据解析JSON失败: %v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return //} //userJSONBytes3, _ := json.Marshal(respJSON3) //if err := json.Unmarshal(userJSONBytes3, &res); err != nil { // utils.ErrorLog("解析失败:%v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return //} if miConfig.MdtrtareaAdmvs == "350500" { result, result1, _ := service.FJyb3507(struct3507) saveLog(result, result1, "3507", "3507") var respJSON2 map[string]interface{} if err := json.Unmarshal([]byte(string(result)), &respJSON2); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } userJSONBytes2, _ := json.Marshal(respJSON2) if err := json.Unmarshal(userJSONBytes2, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else { data := make(map[string]interface{}) data["struct_3507s"] = struct3507 client := &http.Client{} bytesData, _ := json.Marshal(data) var req *http.Request if miConfig.MdtrtareaAdmvs == "320921" { req, _ = http.NewRequest("POST", "http://192.168.2.3:9532/"+"jsyb/3507", bytes.NewReader(bytesData)) } else { req, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/3507", bytes.NewReader(bytesData)) } resp, _ := client.Do(req) defer resp.Body.Close() body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var resSix10265 ResultSix10265 //1101结果 respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) result, _ := json.Marshal(respJSON) if err := json.Unmarshal([]byte(result), &resSix10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res.InfRefmsgid = resSix10265.InfRefmsgid //res.Output = resSix10265.Output res.ErrMsg = resSix10265.ErrMsg res.Cainfo = resSix10265.Cainfo res.WarnMsg = resSix10265.WarnMsg infocode, _ := strconv.ParseInt(resSix10265.Infcode, 10, 64) res.Infcode = infocode } if res.Infcode == 0 { item.IsSale = 0 item.SaleDate = "" item.Bchno = "" service.SaveDF(item) } else { err = append(err, "删除"+item.HisDoctorAdviceInfo.BaseDrugLib.DrugName+"变更失败,失败原因:"+res.ErrMsg) } } if item.IsSale == 0 && item.IsChange == 1 { var res FJ3507Result var struct3507 models.Struct3507 struct3507.FixmedinsBchno = item.BgBchno struct3507.InvDataType = "2" struct3507.Opter = roles.UserName struct3507.FixmedinsCode = miConfig.Code struct3507.Code = miConfig.Code struct3507.OrgName = miConfig.OrgName struct3507.AccessKey = miConfig.AccessKey struct3507.RequestUrl = miConfig.Url struct3507.SecretKey = miConfig.SecretKey struct3507.MdtrtareaAdmvs = miConfig.MdtrtareaAdmvs struct3507.InsuplcAdmdvs = miConfig.InsuplcAdmdvs struct3507.Url = miConfig.Url struct3507.AppId = miConfig.Cainfo struct3507.AppSecret = miConfig.AppSecret struct3507.Enckey = miConfig.EncKey struct3507.SignKey = miConfig.SignKey struct3507.SecretKey = miConfig.SecretKey //result, result1, _ := service.FJyb3507(struct3507) //saveLog(result, result1, "3507", "3507") // //var respJSON3 map[string]interface{} //if err := json.Unmarshal([]byte(string(result)), &respJSON3); err != nil { // utils.ErrorLog("接口返回数据解析JSON失败: %v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return //} //userJSONBytes3, _ := json.Marshal(respJSON3) //if err := json.Unmarshal(userJSONBytes3, &res); err != nil { // utils.ErrorLog("解析失败:%v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return //} if miConfig.MdtrtareaAdmvs == "350500" { result, result1, _ := service.FJyb3507(struct3507) saveLog(result, result1, "3507", "3507") var respJSON2 map[string]interface{} if err := json.Unmarshal([]byte(string(result)), &respJSON2); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } userJSONBytes2, _ := json.Marshal(respJSON2) if err := json.Unmarshal(userJSONBytes2, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else { data := make(map[string]interface{}) data["struct_3507s"] = struct3507 client := &http.Client{} bytesData, _ := json.Marshal(data) var req *http.Request if miConfig.MdtrtareaAdmvs == "320921" { req, _ = http.NewRequest("POST", "http://192.168.2.3:9532/"+"jsyb/3507", bytes.NewReader(bytesData)) } else { req, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/3507", bytes.NewReader(bytesData)) } resp, _ := client.Do(req) defer resp.Body.Close() body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var resSix10265 ResultSix10265 //1101结果 respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) result, _ := json.Marshal(respJSON) if err := json.Unmarshal([]byte(result), &resSix10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res.InfRefmsgid = resSix10265.InfRefmsgid //res.Output = resSix10265.Output res.ErrMsg = resSix10265.ErrMsg res.Cainfo = resSix10265.Cainfo res.WarnMsg = resSix10265.WarnMsg infocode, _ := strconv.ParseInt(resSix10265.Infcode, 10, 64) res.Infcode = infocode } if res.Infcode == 0 { item.IsChange = 0 item.BgBchno = "" service.SaveDF2(item) } else { err = append(err, "删除"+item.HisDoctorAdviceInfo.BaseDrugLib.DrugName+"变更失败,失败原因:"+res.ErrMsg) } } } if len(err) == 0 { c.ServeSuccessJSON(map[string]interface{}{ "msg": "删除销售变更成功", }) } else { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": err, }) } } //func (c *HisApiController) BatchFJ3501AND3502() { // //ids := c.GetString("ids") // start_time := c.GetString("start_time") // end_time := c.GetString("end_time") // admin_user_id, _ := c.GetInt64("admin_user_id") // // // timeLayout := "2006-01-02" // loc, _ := time.LoadLocation("Local") // startime, _ := time.ParseInLocation(timeLayout+" 15:04:05", start_time+" 00:00:00", loc) // endtime, _ := time.ParseInLocation(timeLayout+" 15:04:05", end_time+" 23:59:59", loc) // // roles, _ := service.GetAdminUserInfoByID(c.GetAdminUserInfo().CurrentOrgId, admin_user_id) // //id_arr := strings.Split(ids, ",") // drugs, _ := service.GetNewDrugWarehouseInfobytime(c.GetAdminUserInfo().CurrentOrgId, startime,endtime) // miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId) // //库盘 // var errs []string // for _, drug := range drugs { // if drug.IsPc == 0 && drug.IsBg == 0 { // var res2 ResultSix // var res3 ResultSix // // number := strconv.FormatInt(time.Now().Unix(), 10) + "-" + strconv.FormatInt(drug.ID, 10) + "-" + "3501" // var struct3501 models.Struct3501 // struct3501.Code = miConfig.Code // struct3501.OrgName = miConfig.OrgName // struct3501.AccessKey = miConfig.AccessKey // struct3501.Opter = roles.UserName // struct3501.RequestUrl = miConfig.Url // struct3501.Url = miConfig.Url // struct3501.AppId = miConfig.Cainfo // struct3501.AppSecret = miConfig.AppSecret // struct3501.Enckey = miConfig.EncKey // struct3501.SignKey = miConfig.SignKey // struct3501.SecretKey = miConfig.SecretKey // struct3501.MedListCodg = drug.BaseDrugLib.MedicalInsuranceNumber // struct3501.FixmedinsHilistId = drug.BaseDrugLib.MedicalInsuranceNumber // struct3501.FixmedinsHilistName = drug.BaseDrugLib.DrugName // struct3501.RxFlag = "1" // struct3501.Invdate = time.Unix(drug.Ctime, 0).Format("2006-01-02") // struct3501.ManuDate = time.Unix(drug.ProductDate, 0).Format("2006-01-02") // // struct3501.MdtrtareaAdmvs = miConfig.MdtrtareaAdmvs // struct3501.InsuplcAdmdvs = miConfig.InsuplcAdmdvs // struct3501.InvCnt = strconv.FormatInt(drug.StockMaxNumber, 10) // struct3501.ExpyEnd = time.Unix(drug.ExpiryDate, 0).Format("2006-01-02") // struct3501.FixmedinsBchno = number // struct3501.DrugTracCodg = drug.DrugCode // memo := make(map[string]interface{}) // memo["pric"] = drug.Price // bytesData, _ := json.Marshal(memo) // struct3501.Memo = string(bytesData) // // if strings.HasPrefix(miConfig.MdtrtareaAdmvs[0:3], "350") { //福建 // // result1, result2, _ := service.FJyb3501(struct3501) // saveLog(result1, result2, "3501", "3501") // //saveLog(result, requestLog, "2201", "挂号") // // var respJSON2 map[string]interface{} // if err := json.Unmarshal([]byte(string(result1)), &respJSON2); err != nil { // utils.ErrorLog("接口返回数据解析JSON失败: %v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // userJSONBytes2, _ := json.Marshal(respJSON2) // if err := json.Unmarshal(userJSONBytes2, &res2); err != nil { // utils.ErrorLog("解析失败:%v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // // } else if strings.HasPrefix(miConfig.MdtrtareaAdmvs[0:3], "320") { //江苏 // data := make(map[string]interface{}) // data["struct_3501s"] = struct3501 // client := &http.Client{} // bytesData, _ := json.Marshal(data) // var req *http.Request // if miConfig.MdtrtareaAdmvs == "320921" { // req, _ = http.NewRequest("POST", "http://192.168.2.3:9532/"+"jsyb/3501", bytes.NewReader(bytesData)) // } else { // req, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/3501", bytes.NewReader(bytesData)) // } // // resp, _ := client.Do(req) // defer resp.Body.Close() // body, ioErr := ioutil.ReadAll(resp.Body) // if ioErr != nil { // utils.ErrorLog("接口返回数据读取失败: %v", ioErr) // } // var respJSON map[string]interface{} // if err := json.Unmarshal([]byte(body), &respJSON); err != nil { // utils.ErrorLog("接口返回数据解析JSON失败: %v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // var resSix10265 ResultSix10265 //1101结果 // respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) // result, _ := json.Marshal(respJSON) // if err := json.Unmarshal([]byte(result), &resSix10265); err != nil { // utils.ErrorLog("解析失败:%v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // res2.InfRefmsgid = resSix10265.InfRefmsgid // res2.Output = resSix10265.Output // res2.ErrMsg = resSix10265.ErrMsg // res2.Cainfo = resSix10265.Cainfo // res2.WarnMsg = resSix10265.WarnMsg // infocode, _ := strconv.ParseInt(resSix10265.Infcode, 10, 64) // res2.Infcode = infocode // // } else if strings.HasPrefix(miConfig.MdtrtareaAdmvs[0:3], "340") { //安徽 // data := make(map[string]interface{}) // data["struct_3501s"] = struct3501 // client := &http.Client{} // bytesData, _ := json.Marshal(data) // var req *http.Request // req, _ = http.NewRequest("POST", miConfig.Url+"ahyb/3501", bytes.NewReader(bytesData)) // resp, _ := client.Do(req) // defer resp.Body.Close() // body, ioErr := ioutil.ReadAll(resp.Body) // if ioErr != nil { // utils.ErrorLog("接口返回数据读取失败: %v", ioErr) // } // var respJSON map[string]interface{} // if err := json.Unmarshal([]byte(body), &respJSON); err != nil { // utils.ErrorLog("接口返回数据解析JSON失败: %v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // var resSix10265 ResultSix10265 //1101结果 // respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) // result, _ := json.Marshal(respJSON) // if err := json.Unmarshal([]byte(result), &resSix10265); err != nil { // utils.ErrorLog("解析失败:%v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // res2.InfRefmsgid = resSix10265.InfRefmsgid // res2.Output = resSix10265.Output // res2.ErrMsg = resSix10265.ErrMsg // res2.Cainfo = resSix10265.Cainfo // res2.WarnMsg = resSix10265.WarnMsg // infocode, _ := strconv.ParseInt(resSix10265.Infcode, 10, 64) // res2.Infcode = infocode // // } else if strings.HasPrefix(miConfig.MdtrtareaAdmvs[0:3], "150") { //内蒙 // data := make(map[string]interface{}) // data["struct_3501s"] = struct3501 // client := &http.Client{} // bytesData, _ := json.Marshal(data) // var req *http.Request // req, _ = http.NewRequest("POST", miConfig.Url+"nmyb/3501", bytes.NewReader(bytesData)) // resp, _ := client.Do(req) // defer resp.Body.Close() // body, ioErr := ioutil.ReadAll(resp.Body) // if ioErr != nil { // utils.ErrorLog("接口返回数据读取失败: %v", ioErr) // } // var respJSON map[string]interface{} // if err := json.Unmarshal([]byte(body), &respJSON); err != nil { // utils.ErrorLog("接口返回数据解析JSON失败: %v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // var resSix10265 ResultSix10265 //1101结果 // respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) // result, _ := json.Marshal(respJSON) // if err := json.Unmarshal([]byte(result), &resSix10265); err != nil { // utils.ErrorLog("解析失败:%v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // res2.InfRefmsgid = resSix10265.InfRefmsgid // res2.Output = resSix10265.Output // res2.ErrMsg = resSix10265.ErrMsg // res2.Cainfo = resSix10265.Cainfo // res2.WarnMsg = resSix10265.WarnMsg // infocode, _ := strconv.ParseInt(resSix10265.Infcode, 10, 64) // res2.Infcode = infocode // // } else if strings.HasPrefix(miConfig.MdtrtareaAdmvs[0:3], "440") { //广东 // result1, result2 := service.Gdyb3501(struct3501, struct3501.SecretKey) // saveLog(result1, result2, "3501", "3501") // //saveLog(result, requestLog, "2201", "挂号") // // var respJSON2 map[string]interface{} // if err := json.Unmarshal([]byte(string(result1)), &respJSON2); err != nil { // utils.ErrorLog("接口返回数据解析JSON失败: %v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // userJSONBytes2, _ := json.Marshal(respJSON2) // if err := json.Unmarshal(userJSONBytes2, &res2); err != nil { // utils.ErrorLog("解析失败:%v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // // } // // if res2.Infcode != -1 { // drug.IsPc = 1 // drug.Bchno = number // drug.PcDate = time.Now().Unix() // err := service.SaveW(drug) // if err == nil { // bg_number := strconv.FormatInt(time.Now().Unix(), 10) + "-" + strconv.FormatInt(drug.ID, 10) + "-" + "3502" // var struct3502 models.Struct3502 // struct3502.MedListCodg = drug.BaseDrugLib.MedicalInsuranceNumber // struct3502.FixmedinsHilistId = drug.BaseDrugLib.MedicalInsuranceNumber // struct3502.FixmedinsHilistName = drug.BaseDrugLib.DrugName // struct3502.FixmedinsCode = miConfig.Code // struct3502.Code = miConfig.Code // // struct3502.RxFlag = "0" // struct3502.InvChgTime = time.Now().Format("2006-01-02") // struct3502.OrgName = miConfig.OrgName // struct3502.Opter = roles.UserName // struct3502.AccessKey = miConfig.AccessKey // struct3502.RequestUrl = miConfig.Url // struct3502.SecretKey = miConfig.SecretKey // struct3502.MdtrtareaAdmvs = miConfig.MdtrtareaAdmvs // struct3502.InsuplcAdmdvs = miConfig.InsuplcAdmdvs // struct3502.Url = miConfig.Url // struct3502.AppId = miConfig.Cainfo // struct3502.AppSecret = miConfig.AppSecret // struct3502.Enckey = miConfig.EncKey // struct3502.SignKey = miConfig.SignKey // struct3502.SecretKey = miConfig.SecretKey // struct3502.DrugTracCodg = drug.DrugCode // // struct3502.Memo = "" // struct3502.InvChgType = "108" // struct3502.FixmedinsBchno = bg_number // struct3502.Cnt = strconv.FormatInt(drug.WarehousingCount, 10) // struct3502.Pric = fmt.Sprintf("%.2f", drug.BaseDrugLib.RetailPrice) // // if strings.HasPrefix(miConfig.MdtrtareaAdmvs[0:3], "350") { // result11, result22, _ := service.FJyb3502(struct3502) // saveLog(result11, result22, "3502", "3502") // // var respJSON3 map[string]interface{} // if err := json.Unmarshal([]byte(string(result11)), &respJSON3); err != nil { // utils.ErrorLog("接口返回数据解析JSON失败: %v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // userJSONBytes3, _ := json.Marshal(respJSON3) // if err := json.Unmarshal(userJSONBytes3, &res3); err != nil { // utils.ErrorLog("解析失败:%v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // // } else if strings.HasPrefix(miConfig.MdtrtareaAdmvs[0:3], "320") { // data := make(map[string]interface{}) // data["struct_3502s"] = struct3502 // client := &http.Client{} // bytesData, _ := json.Marshal(data) // var req *http.Request // if miConfig.MdtrtareaAdmvs == "320921" { // req, _ = http.NewRequest("POST", "http://192.168.2.3:9532/"+"jsyb/3502", bytes.NewReader(bytesData)) // } else { // req, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/3502", bytes.NewReader(bytesData)) // } // // resp, _ := client.Do(req) // defer resp.Body.Close() // body, ioErr := ioutil.ReadAll(resp.Body) // if ioErr != nil { // utils.ErrorLog("接口返回数据读取失败: %v", ioErr) // } // var respJSON map[string]interface{} // if err := json.Unmarshal([]byte(body), &respJSON); err != nil { // utils.ErrorLog("接口返回数据解析JSON失败: %v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // var resSix10265 ResultSix10265 //1101结果 // respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) // result, _ := json.Marshal(respJSON) // if err := json.Unmarshal([]byte(result), &resSix10265); err != nil { // utils.ErrorLog("解析失败:%v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // res3.InfRefmsgid = resSix10265.InfRefmsgid // res3.Output = resSix10265.Output // res3.ErrMsg = resSix10265.ErrMsg // res3.Cainfo = resSix10265.Cainfo // res3.WarnMsg = resSix10265.WarnMsg // infocode, _ := strconv.ParseInt(resSix10265.Infcode, 10, 64) // res3.Infcode = infocode // // } else if strings.HasPrefix(miConfig.MdtrtareaAdmvs[0:3], "150") { // // data := make(map[string]interface{}) // data["struct_3502s"] = struct3502 // client := &http.Client{} // bytesData, _ := json.Marshal(data) // var req *http.Request // req, _ = http.NewRequest("POST", "http://192.168.2.3:9532/"+"nmyb/3502", bytes.NewReader(bytesData)) // resp, _ := client.Do(req) // defer resp.Body.Close() // body, ioErr := ioutil.ReadAll(resp.Body) // if ioErr != nil { // utils.ErrorLog("接口返回数据读取失败: %v", ioErr) // } // var respJSON map[string]interface{} // if err := json.Unmarshal([]byte(body), &respJSON); err != nil { // utils.ErrorLog("接口返回数据解析JSON失败: %v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // var resSix10265 ResultSix10265 //1101结果 // respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) // result, _ := json.Marshal(respJSON) // if err := json.Unmarshal([]byte(result), &resSix10265); err != nil { // utils.ErrorLog("解析失败:%v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // res3.InfRefmsgid = resSix10265.InfRefmsgid // res3.Output = resSix10265.Output // res3.ErrMsg = resSix10265.ErrMsg // res3.Cainfo = resSix10265.Cainfo // res3.WarnMsg = resSix10265.WarnMsg // infocode, _ := strconv.ParseInt(resSix10265.Infcode, 10, 64) // res3.Infcode = infocode // // } else if strings.HasPrefix(miConfig.MdtrtareaAdmvs[0:3], "340") { // // data := make(map[string]interface{}) // data["struct_3501s"] = struct3501 // client := &http.Client{} // bytesData, _ := json.Marshal(data) // var req *http.Request // req, _ = http.NewRequest("POST", miConfig.Url+"ahyb/3501", bytes.NewReader(bytesData)) // resp, _ := client.Do(req) // defer resp.Body.Close() // body, ioErr := ioutil.ReadAll(resp.Body) // if ioErr != nil { // utils.ErrorLog("接口返回数据读取失败: %v", ioErr) // } // var respJSON map[string]interface{} // if err := json.Unmarshal([]byte(body), &respJSON); err != nil { // utils.ErrorLog("接口返回数据解析JSON失败: %v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // var resSix10265 ResultSix10265 //1101结果 // respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) // result, _ := json.Marshal(respJSON) // if err := json.Unmarshal([]byte(result), &resSix10265); err != nil { // utils.ErrorLog("解析失败:%v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // res2.InfRefmsgid = resSix10265.InfRefmsgid // res2.Output = resSix10265.Output // res2.ErrMsg = resSix10265.ErrMsg // res2.Cainfo = resSix10265.Cainfo // res2.WarnMsg = resSix10265.WarnMsg // infocode, _ := strconv.ParseInt(resSix10265.Infcode, 10, 64) // res2.Infcode = infocode // // } else if strings.HasPrefix(miConfig.MdtrtareaAdmvs[0:3], "440") { // result11, result22 := service.Gdyb3502(struct3502, struct3502.SecretKey) // saveLog(result11, result22, "3502", "3502") // // var respJSON3 map[string]interface{} // if err := json.Unmarshal([]byte(string(result11)), &respJSON3); err != nil { // utils.ErrorLog("接口返回数据解析JSON失败: %v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // userJSONBytes3, _ := json.Marshal(respJSON3) // if err := json.Unmarshal(userJSONBytes3, &res3); err != nil { // utils.ErrorLog("解析失败:%v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // } // if res3.Infcode == -1 { // errs = append(errs, "变更"+drug.BaseDrugLib.DrugName+",出错:"+res3.ErrMsg) // c.ServeSuccessJSON(map[string]interface{}{ // "failed_code": -10, // "msg": res3.ErrMsg, // }) // } else { // drug.IsBg = 1 // drug.BgBchno = bg_number // service.SaveW(drug) // } // } // } else { // errs = append(errs, "盘存"+drug.BaseDrugLib.DrugName+",出错:"+res2.ErrMsg) // } // } // //变更 // if drug.IsPc == 1 && drug.IsBg == 0 { // var res3 ResultSix // bg_number := strconv.FormatInt(time.Now().Unix(), 10) + "-" + strconv.FormatInt(drug.ID, 10) + "-" + "3502" // // var struct3502 models.Struct3502 // struct3502.MedListCodg = drug.BaseDrugLib.MedicalInsuranceNumber // struct3502.FixmedinsHilistId = drug.BaseDrugLib.MedicalInsuranceNumber // struct3502.FixmedinsHilistName = drug.BaseDrugLib.DrugName // struct3502.FixmedinsCode = miConfig.Code // struct3502.Code = miConfig.Code // // struct3502.Opter = roles.UserName // struct3502.RxFlag = "0" // struct3502.InvChgTime = time.Now().Format("2006-01-02") // struct3502.OrgName = miConfig.OrgName // struct3502.AccessKey = miConfig.AccessKey // struct3502.RequestUrl = miConfig.Url // struct3502.SecretKey = miConfig.SecretKey // struct3502.MdtrtareaAdmvs = miConfig.MdtrtareaAdmvs // struct3502.InsuplcAdmdvs = miConfig.InsuplcAdmdvs // struct3502.InvChgType = "108" // struct3502.DrugTracCodg = drug.DrugCode // // struct3502.Url = miConfig.Url // struct3502.AppId = miConfig.Cainfo // struct3502.AppSecret = miConfig.AppSecret // struct3502.Enckey = miConfig.EncKey // struct3502.SignKey = miConfig.SignKey // struct3502.SecretKey = miConfig.SecretKey // // struct3502.FixmedinsBchno = bg_number // struct3502.Cnt = strconv.FormatInt(drug.WarehousingCount, 10) // struct3502.Pric = fmt.Sprintf("%.2f", drug.BaseDrugLib.RetailPrice) // // if strings.HasPrefix(miConfig.MdtrtareaAdmvs[0:3], "350") { // result1, result2, _ := service.FJyb3502(struct3502) // saveLog(result1, result2, "3502", "3502") // var respJSON3 map[string]interface{} // if err := json.Unmarshal([]byte(string(result1)), &respJSON3); err != nil { // utils.ErrorLog("接口返回数据解析JSON失败: %v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // userJSONBytes3, _ := json.Marshal(respJSON3) // if err := json.Unmarshal(userJSONBytes3, &res3); err != nil { // utils.ErrorLog("解析失败:%v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // } else if strings.HasPrefix(miConfig.MdtrtareaAdmvs[0:3], "320") { // data := make(map[string]interface{}) // data["struct_3502s"] = struct3502 // client := &http.Client{} // bytesData, _ := json.Marshal(data) // var req *http.Request // if miConfig.MdtrtareaAdmvs == "320921" { // req, _ = http.NewRequest("POST", "http://192.168.2.3:9532/"+"jsyb/3502", bytes.NewReader(bytesData)) // } else { // req, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/3502", bytes.NewReader(bytesData)) // } // resp, _ := client.Do(req) // defer resp.Body.Close() // body, ioErr := ioutil.ReadAll(resp.Body) // if ioErr != nil { // utils.ErrorLog("接口返回数据读取失败: %v", ioErr) // } // var respJSON map[string]interface{} // if err := json.Unmarshal([]byte(body), &respJSON); err != nil { // utils.ErrorLog("接口返回数据解析JSON失败: %v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // var resSix10265 ResultSix10265 //1101结果 // respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) // result, _ := json.Marshal(respJSON) // if err := json.Unmarshal([]byte(result), &resSix10265); err != nil { // utils.ErrorLog("解析失败:%v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // res3.InfRefmsgid = resSix10265.InfRefmsgid // res3.Output = resSix10265.Output // res3.ErrMsg = resSix10265.ErrMsg // res3.Cainfo = resSix10265.Cainfo // res3.WarnMsg = resSix10265.WarnMsg // infocode, _ := strconv.ParseInt(resSix10265.Infcode, 10, 64) // res3.Infcode = infocode // } else if strings.HasPrefix(miConfig.MdtrtareaAdmvs[0:3], "150") { // // } else if strings.HasPrefix(miConfig.MdtrtareaAdmvs[0:3], "340") { // // } else if strings.HasPrefix(miConfig.MdtrtareaAdmvs[0:3], "420") { // // }else if strings.HasPrefix(miConfig.MdtrtareaAdmvs[0:3], "440") { // // result1, result2 := service.Gdyb3501(struct3501, struct3501.SecretKey) // saveLog(result1, result2, "3501", "3501") // //saveLog(result, requestLog, "2201", "挂号") // // var respJSON2 map[string]interface{} // if err := json.Unmarshal([]byte(string(result1)), &respJSON2); err != nil { // utils.ErrorLog("接口返回数据解析JSON失败: %v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // userJSONBytes2, _ := json.Marshal(respJSON2) // if err := json.Unmarshal(userJSONBytes2, &res2); err != nil { // utils.ErrorLog("解析失败:%v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // // } // if res3.Infcode == -1 { // errs = append(errs, "变更"+drug.BaseDrugLib.DrugName+",出错:"+res3.ErrMsg) // } else { // drug.IsBg = 1 // drug.BgBchno = bg_number // service.SaveW(drug) // } // } // } // // if len(errs) == 0 { // c.ServeSuccessJSON(map[string]interface{}{ // "msg": "盘存变更成功", // }) // } else { // c.ServeSuccessJSON(map[string]interface{}{ // "failed_code": -10, // "msg": errs, // }) // } //} func (c *HisApiController) DeleteXSandBGTwo() { patient_id, _ := c.GetInt64("patient_id") admin_user_id, _ := c.GetInt64("admin_user_id") times := c.GetString("time", "") timeLayout := "2006-01-02" loc, _ := time.LoadLocation("Local") var stime, etime int64 if times == "" { stime, etime = GetNowTime() } else { stmp, _ := time.ParseInLocation(timeLayout+" 15:04:05", times+" 00:00:00", loc) stime = stmp.Unix() etime = stime + 86399 } advicelist, _ := service.FindUploadHisAdviceDocAdvice(c.GetAdminUserInfo().CurrentOrgId, patient_id, stime, etime) var flows []*models.DrugFlow for _, item := range advicelist { flow, _ := service.GetNewUploadDrugFlowInfoByPatientTwo(patient_id, item.DrugId, stime, c.GetAdminUserInfo().CurrentOrgId) flows = append(flows, flow...) } //flows, _ := service.GetNewDrugFlowInfo(c.GetAdminUserInfo().CurrentOrgId, id_arr) roles, _ := service.GetAdminUserInfoByID(c.GetAdminUserInfo().CurrentOrgId, admin_user_id) miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId) var err []string for _, item := range flows { if item.IsSale == 1 { var res FJ3507Result var struct3507 models.Struct3507 struct3507.FixmedinsBchno = item.Bchno struct3507.InvDataType = "4" struct3507.Opter = roles.UserName struct3507.OrgName = miConfig.OrgName struct3507.AccessKey = miConfig.AccessKey struct3507.RequestUrl = miConfig.Url struct3507.FixmedinsCode = miConfig.Code struct3507.SecretKey = miConfig.SecretKey struct3507.MdtrtareaAdmvs = miConfig.MdtrtareaAdmvs struct3507.InsuplcAdmdvs = miConfig.InsuplcAdmdvs struct3507.Url = miConfig.Url struct3507.AppId = miConfig.Cainfo struct3507.AppSecret = miConfig.AppSecret struct3507.Enckey = miConfig.EncKey struct3507.SignKey = miConfig.SignKey struct3507.SecretKey = miConfig.SecretKey if miConfig.MdtrtareaAdmvs == "350500" { result, result1, _ := service.FJyb3507(struct3507) saveLog(result, result1, "3507", "3507") var respJSON2 map[string]interface{} if err := json.Unmarshal([]byte(string(result)), &respJSON2); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } userJSONBytes2, _ := json.Marshal(respJSON2) if err := json.Unmarshal(userJSONBytes2, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "320921" || miConfig.MdtrtareaAdmvs == "320982" { data := make(map[string]interface{}) data["struct_3507s"] = struct3507 client := &http.Client{} bytesData, _ := json.Marshal(data) var req *http.Request if miConfig.MdtrtareaAdmvs == "320921" { req, _ = http.NewRequest("POST", "http://192.168.2.3:9532/"+"jsyb/3507", bytes.NewReader(bytesData)) } else { req, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/3507", bytes.NewReader(bytesData)) } resp, _ := client.Do(req) defer resp.Body.Close() body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var resSix10265 ResultSix10265 //1101结果 respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) result, _ := json.Marshal(respJSON) if err := json.Unmarshal([]byte(result), &resSix10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res.InfRefmsgid = resSix10265.InfRefmsgid //res.Output = resSix10265.Output res.ErrMsg = resSix10265.ErrMsg res.Cainfo = resSix10265.Cainfo res.WarnMsg = resSix10265.WarnMsg infocode, _ := strconv.ParseInt(resSix10265.Infcode, 10, 64) res.Infcode = infocode } else if miConfig.MdtrtareaAdmvs == "440100" { result1, result2 := service.Gzyb3507(struct3507, struct3507.SecretKey) saveLog(result2, result1, "3507", "3507") var respJSON2 map[string]interface{} if err := json.Unmarshal([]byte(string(result1)), &respJSON2); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } userJSONBytes2, _ := json.Marshal(respJSON2) if err := json.Unmarshal(userJSONBytes2, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if strings.HasPrefix(miConfig.MdtrtareaAdmvs[0:3], "440") { result1, result2 := service.Gdyb3507(struct3507, struct3507.SecretKey) saveLog(result2, result1, "3507", "3507") var respJSON2 map[string]interface{} if err := json.Unmarshal([]byte(string(result1)), &respJSON2); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } userJSONBytes2, _ := json.Marshal(respJSON2) if err := json.Unmarshal(userJSONBytes2, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if strings.HasPrefix(miConfig.MdtrtareaAdmvs[0:3], "361") { result1, result2 := service.Jxyb3507(struct3507) saveLog(result2, result1, "3507", "3507") var respJSON2 map[string]interface{} if err := json.Unmarshal([]byte(string(result1)), &respJSON2); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } userJSONBytes2, _ := json.Marshal(respJSON2) if err := json.Unmarshal(userJSONBytes2, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "340699" { result1, result2 := service.AHyb3507(struct3507) saveLog(result2, result1, "3507", "3507") var respJSON2 map[string]interface{} if err := json.Unmarshal([]byte(string(result1)), &respJSON2); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } userJSONBytes2, _ := json.Marshal(respJSON2) if err := json.Unmarshal(userJSONBytes2, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "150499" { data := make(map[string]interface{}) data["struct_3507s"] = struct3507 client := &http.Client{} bytesData, _ := json.Marshal(data) var req *http.Request req, _ = http.NewRequest("POST", "http://172.16.13.254:9532"+"/nmyb/3507", bytes.NewReader(bytesData)) resp, _ := client.Do(req) defer resp.Body.Close() body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) } var resSix10265 ResultSix10265 //1101结果 respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) result, _ := json.Marshal(respJSON) if err := json.Unmarshal([]byte(result), &resSix10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res.InfRefmsgid = resSix10265.InfRefmsgid res.ErrMsg = resSix10265.ErrMsg res.Cainfo = resSix10265.Cainfo res.WarnMsg = resSix10265.WarnMsg infocode, _ := strconv.ParseInt(resSix10265.Infcode, 10, 64) res.Infcode = infocode } if res.Infcode == 0 { service.SaveDoctoradviceStatusTwo(item.HisDoctorAdviceInfo.ID) item.IsSale = 0 item.SaleDate = "" item.Bchno = "" service.SaveDF(item) } else { err = append(err, "删除"+item.HisDoctorAdviceInfo.BaseDrugLib.DrugName+"盘存失败,失败原因:"+res.ErrMsg) } } } c.ServeSuccessJSON(map[string]interface{}{ "msg": "删除销售数据成功", }) } // 删除 func (c *HisApiController) DeleteXSandBGThree() { id, _ := c.GetInt64("id") admin_user_id, _ := c.GetInt64("admin_user_id") advicelist, _ := service.FindHisAdviceDocAdvice(id) var flows []*models.DrugFlow for _, item := range advicelist { flow, _ := service.GetNewUploadDrugFlowInfoByPatientTwo(item.PatientId, item.DrugId, item.RecordDate, c.GetAdminUserInfo().CurrentOrgId) flows = append(flows, flow...) } //flows, _ := service.GetNewDrugFlowInfo(c.GetAdminUserInfo().CurrentOrgId, id_arr) roles, _ := service.GetAdminUserInfoByID(c.GetAdminUserInfo().CurrentOrgId, admin_user_id) miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId) var err []string for _, item := range flows { if item.IsSale == 1 { var res FJ3507Result var struct3507 models.Struct3507 struct3507.FixmedinsBchno = item.Bchno struct3507.InvDataType = "4" struct3507.Opter = roles.UserName struct3507.OrgName = miConfig.OrgName struct3507.AccessKey = miConfig.AccessKey struct3507.RequestUrl = miConfig.Url struct3507.FixmedinsCode = miConfig.Code struct3507.SecretKey = miConfig.SecretKey struct3507.MdtrtareaAdmvs = miConfig.MdtrtareaAdmvs struct3507.InsuplcAdmdvs = miConfig.InsuplcAdmdvs struct3507.Url = miConfig.Url struct3507.AppId = miConfig.Cainfo struct3507.AppSecret = miConfig.AppSecret struct3507.Enckey = miConfig.EncKey struct3507.SignKey = miConfig.SignKey struct3507.SecretKey = miConfig.SecretKey if miConfig.MdtrtareaAdmvs == "350500" { result, result1, _ := service.FJyb3507(struct3507) saveLog(result, result1, "3507", "3507") var respJSON2 map[string]interface{} if err := json.Unmarshal([]byte(string(result)), &respJSON2); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } userJSONBytes2, _ := json.Marshal(respJSON2) if err := json.Unmarshal(userJSONBytes2, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "320921" || miConfig.MdtrtareaAdmvs == "320982" { data := make(map[string]interface{}) data["struct_3507s"] = struct3507 client := &http.Client{} bytesData, _ := json.Marshal(data) var req *http.Request if miConfig.MdtrtareaAdmvs == "320921" { req, _ = http.NewRequest("POST", "http://192.168.2.3:9532/"+"jsyb/3507", bytes.NewReader(bytesData)) } else { req, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/3507", bytes.NewReader(bytesData)) } resp, _ := client.Do(req) defer resp.Body.Close() body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var resSix10265 ResultSix10265 //1101结果 respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) result, _ := json.Marshal(respJSON) if err := json.Unmarshal([]byte(result), &resSix10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res.InfRefmsgid = resSix10265.InfRefmsgid //res.Output = resSix10265.Output res.ErrMsg = resSix10265.ErrMsg res.Cainfo = resSix10265.Cainfo res.WarnMsg = resSix10265.WarnMsg infocode, _ := strconv.ParseInt(resSix10265.Infcode, 10, 64) res.Infcode = infocode } else if miConfig.MdtrtareaAdmvs == "440100" { result1, result2 := service.Gzyb3507(struct3507, struct3507.SecretKey) saveLog(result2, result1, "3507", "3507") var respJSON2 map[string]interface{} if err := json.Unmarshal([]byte(string(result1)), &respJSON2); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } userJSONBytes2, _ := json.Marshal(respJSON2) if err := json.Unmarshal(userJSONBytes2, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if strings.HasPrefix(miConfig.MdtrtareaAdmvs[0:3], "440") { result1, result2 := service.Gdyb3507(struct3507, struct3507.SecretKey) saveLog(result2, result1, "3507", "3507") var respJSON2 map[string]interface{} if err := json.Unmarshal([]byte(string(result1)), &respJSON2); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } userJSONBytes2, _ := json.Marshal(respJSON2) if err := json.Unmarshal(userJSONBytes2, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if strings.HasPrefix(miConfig.MdtrtareaAdmvs[0:3], "361") { result1, result2 := service.Jxyb3507(struct3507) saveLog(result2, result1, "3507", "3507") var respJSON2 map[string]interface{} if err := json.Unmarshal([]byte(string(result1)), &respJSON2); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } userJSONBytes2, _ := json.Marshal(respJSON2) if err := json.Unmarshal(userJSONBytes2, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "340699" { result1, result2 := service.AHyb3507(struct3507) saveLog(result2, result1, "3507", "3507") var respJSON2 map[string]interface{} if err := json.Unmarshal([]byte(string(result1)), &respJSON2); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } userJSONBytes2, _ := json.Marshal(respJSON2) if err := json.Unmarshal(userJSONBytes2, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "150499" { data := make(map[string]interface{}) data["struct_3507s"] = struct3507 client := &http.Client{} bytesData, _ := json.Marshal(data) var req *http.Request req, _ = http.NewRequest("POST", "http://172.16.13.254:9532"+"/nmyb/3507", bytes.NewReader(bytesData)) resp, _ := client.Do(req) defer resp.Body.Close() body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) } var resSix10265 ResultSix10265 //1101结果 respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) result, _ := json.Marshal(respJSON) if err := json.Unmarshal([]byte(result), &resSix10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res.InfRefmsgid = resSix10265.InfRefmsgid res.ErrMsg = resSix10265.ErrMsg res.Cainfo = resSix10265.Cainfo res.WarnMsg = resSix10265.WarnMsg infocode, _ := strconv.ParseInt(resSix10265.Infcode, 10, 64) res.Infcode = infocode } if res.Infcode == 0 { service.SaveDoctoradviceStatusTwo(item.HisDoctorAdviceInfo.ID) item.IsSale = 0 item.SaleDate = "" item.Bchno = "" service.SaveDF(item) } else { err = append(err, "删除"+item.HisDoctorAdviceInfo.BaseDrugLib.DrugName+"盘存失败,失败原因:"+res.ErrMsg) } } } c.ServeSuccessJSON(map[string]interface{}{ "msg": "删除销售数据成功", }) } // 获取当天起止时间戳 func GetNowTime() (int64, int64) { t := time.Now() addTime := time.Date(t.Year(), t.Month(), t.Day(), 0, 0, 0, 0, t.Location()) timesamp := addTime.Unix() return timesamp, timesamp + 86399 } func (c *HisApiController) ChangeDrugfour() { patient_id, _ := c.GetInt64("patient_id") admin_user_id, _ := c.GetInt64("admin_user_id") times := c.GetString("time", "") timeLayout := "2006-01-02" loc, _ := time.LoadLocation("Local") var stime, etime int64 if times == "" { stime, etime = GetNowTime() } else { stmp, _ := time.ParseInLocation(timeLayout+" 15:04:05", times+" 00:00:00", loc) stime = stmp.Unix() etime = stime + 86399 } advicelist, _ := service.FindeHisAdviceDocAdvice(c.GetAdminUserInfo().CurrentOrgId, patient_id, stime, etime) var flows []*models.DrugFlow for _, item := range advicelist { flow, _ := service.GetNewDrugFlowInfoByPatient(patient_id, item.DrugId, stime, c.GetAdminUserInfo().CurrentOrgId) flows = append(flows, flow...) } roles, _ := service.GetAdminUserInfoByID(c.GetAdminUserInfo().CurrentOrgId, admin_user_id) miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId) var err []string for _, item := range flows { if item.ConsumableType == 3 { //3为自动出库 7为自动退库 prescription := service.GetHisPrescriptionByID(item.HisDoctorAdviceInfo.PrescriptionId) if prescription.OrderStatus == 2 { if item.IsSale == 0 { var res FJ3507Result var res3507for10188 FJ3507ResultFor10188 number := strconv.FormatInt(time.Now().Unix(), 10) + "-" + strconv.FormatInt(item.ID, 10) + "-" + "3505" //进行商品销售接口 result3, result4 := SaleStock(c.GetAdminUserInfo().CurrentOrgId, prescription, item, miConfig, "", roles, number) saveLog(result3, result4, "3505", "自动出库,未销售进行销售行为,3505") var respJSON3 map[string]interface{} if err := json.Unmarshal([]byte(string(result3)), &respJSON3); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } userJSONBytes3, _ := json.Marshal(respJSON3) if c.GetAdminUserInfo().CurrentOrgId == 10188 || c.GetAdminUserInfo().CurrentOrgId == 10217 { if err := json.Unmarshal(userJSONBytes3, &res3507for10188); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } //if res3507for10188.Infcode res.InfRefmsgid = res3507for10188.InfRefmsgid //res.Output = resSix10265.Output res.ErrMsg = res3507for10188.ErrMsg res.Cainfo = res3507for10188.Cainfo res.WarnMsg = res3507for10188.WarnMsg infocode, _ := strconv.ParseInt(res3507for10188.Infcode, 10, 64) res.Infcode = infocode } else { if err := json.Unmarshal(userJSONBytes3, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } if res.Infcode == 0 { service.SaveDoctoradviceStatus(item.HisDoctorAdviceInfo.ID) item.IsSale = 1 item.Bchno = number item.SaleDate = time.Now().Format("2006-01-02") service.SaveDF(item) } else { err = append(err, item.HisDoctorAdviceInfo.AdviceName+",销售失败:"+res.ErrMsg) } } } else { //还没结,提示用户去结算,并药品追溯上传 err = append(err, item.HisDoctorAdviceInfo.AdviceName+"还没结算,请结算后,在药品追溯页面上传") } } } str := strings.Join(err, " ") saveLog(str, str, "3505", "3505自动上传日志") c.ServeSuccessJSON(map[string]interface{}{ "status": "1", "msg": err, }) } func (c *HisApiController) ChangeDrugFive() { id, _ := c.GetInt64("id") admin_user_id, _ := c.GetInt64("admin_user_id") advicelist, _ := service.FindHisAdviceDocAdvice(id) var flows []*models.DrugFlow for _, item := range advicelist { flow, _ := service.GetNewDrugFlowInfoByPatient(item.PatientId, item.DrugId, item.RecordDate, c.GetAdminUserInfo().CurrentOrgId) flows = append(flows, flow...) } roles, _ := service.GetAdminUserInfoByID(c.GetAdminUserInfo().CurrentOrgId, admin_user_id) miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId) var err []string for _, item := range flows { if item.ConsumableType == 3 { //3为自动出库 7为自动退库 prescription := service.GetHisPrescriptionByID(item.HisDoctorAdviceInfo.PrescriptionId) if prescription.OrderStatus == 2 { if item.IsSale == 0 { var res FJ3507Result var res3507for10188 FJ3507ResultFor10188 number := strconv.FormatInt(time.Now().Unix(), 10) + "-" + strconv.FormatInt(item.ID, 10) + "-" + "3505" //进行商品销售接口 result3, result4 := SaleStock(c.GetAdminUserInfo().CurrentOrgId, prescription, item, miConfig, "", roles, number) saveLog(result3, result4, "3505", "自动出库,未销售进行销售行为,3505") var respJSON3 map[string]interface{} if err := json.Unmarshal([]byte(string(result3)), &respJSON3); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } userJSONBytes3, _ := json.Marshal(respJSON3) if c.GetAdminUserInfo().CurrentOrgId == 10188 || c.GetAdminUserInfo().CurrentOrgId == 10217 { if err := json.Unmarshal(userJSONBytes3, &res3507for10188); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } //if res3507for10188.Infcode res.InfRefmsgid = res3507for10188.InfRefmsgid //res.Output = resSix10265.Output res.ErrMsg = res3507for10188.ErrMsg res.Cainfo = res3507for10188.Cainfo res.WarnMsg = res3507for10188.WarnMsg infocode, _ := strconv.ParseInt(res3507for10188.Infcode, 10, 64) res.Infcode = infocode } else { if err := json.Unmarshal(userJSONBytes3, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } if res.Infcode == 0 { service.SaveDoctoradviceStatus(item.HisDoctorAdviceInfo.ID) item.IsSale = 1 item.Bchno = number item.SaleDate = time.Now().Format("2006-01-02") service.SaveDF(item) } else { err = append(err, item.HisDoctorAdviceInfo.AdviceName+",销售失败:"+res.ErrMsg) } } } else { //还没结,提示用户去结算,并药品追溯上传 err = append(err, item.HisDoctorAdviceInfo.AdviceName+"还没结算,请结算后,在药品追溯页面上传") } } } str := strings.Join(err, " ") saveLog(str, str, "3505", "3505自动上传日志") c.ServeSuccessJSON(map[string]interface{}{ "status": "1", "msg": err, }) } //func (c *HisApiController) ChangeDrugfour() { // patient_id, _ := c.GetInt64("patient_id") // admin_user_id, _ := c.GetInt64("admin_user_id") // //id_arr := strings.Split(ids, ",") // times := c.GetString("time", "") // timeLayout := "2006-01-02" // loc, _ := time.LoadLocation("Local") // var stime, etime int64 // if times == "" { // stime, etime = GetNowTime() // } else { // stmp, _ := time.ParseInLocation(timeLayout+" 15:04:05", times+" 00:00:00", loc) // stime = stmp.Unix() // etime = stime + 86399 // } // advicelist, _ := service.FindeHisAdviceDocAdvice(c.GetAdminUserInfo().CurrentOrgId, patient_id, stime, etime) // var flows []*models.DrugFlow // for _, item := range advicelist { // flow, _ := service.GetNewDrugFlowInfoByPatient(patient_id, item.DrugId, times, c.GetAdminUserInfo().CurrentOrgId) // flows = append(flows, flow...) // } // roles, _ := service.GetAdminUserInfoByID(c.GetAdminUserInfo().CurrentOrgId, admin_user_id) // miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId) // var err []string // // for _, item := range flows { // var res3 ResultSix // if item.ConsumableType == 3 { //3为自动出库 7为自动退库 // prescription := service.GetHisPrescriptionByID(item.HisDoctorAdviceInfo.PrescriptionId) // if prescription.OrderStatus == 2 { // //已经结算 // //判断是否已经销售 // if item.IsSale == 1 { //是否已经销售,1是 0否 // //是否已经变更 1是 0否 // if item.IsChange == 0 { //没变更,进行变更操作 // bg_number := strconv.FormatInt(time.Now().Unix(), 10) + "-" + strconv.FormatInt(item.ID, 10) + "-" + "3502" // // result, result2 := ChangeStock(item.Count, item, miConfig, "102", roles, bg_number) // saveLog(result, result2, "3502", "自动出库,已经销售,未变更3502") // var respJSON3 map[string]interface{} // if err := json.Unmarshal([]byte(string(result)), &respJSON3); err != nil { // utils.ErrorLog("接口返回数据解析JSON失败: %v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // userJSONBytes3, _ := json.Marshal(respJSON3) // if err := json.Unmarshal(userJSONBytes3, &res3); err != nil { // utils.ErrorLog("解析失败:%v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // if res3.Infcode == 0 { // item.IsChange = 1 // item.BgBchno = bg_number // service.SaveDF2(item) // } else { // // err = append(err, item.HisDoctorAdviceInfo.AdviceName+",销售变更失败:"+res3.ErrMsg) // } // } // } else { //没销售, // var res FJ3507Result // var res3507for10188 FJ3507ResultFor10188 // number := strconv.FormatInt(time.Now().Unix(), 10) + "-" + strconv.FormatInt(item.ID, 10) + "-" + "3505" // // //进行商品销售接口 // result3, result4 := SaleStock(c.GetAdminUserInfo().CurrentOrgId, prescription, item, miConfig, "", roles, number) // saveLog(result3, result4, "3505", "自动出库,未销售进行销售行为,3505") // var respJSON3 map[string]interface{} // if err := json.Unmarshal([]byte(string(result3)), &respJSON3); err != nil { // utils.ErrorLog("接口返回数据解析JSON失败: %v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // userJSONBytes3, _ := json.Marshal(respJSON3) // if c.GetAdminUserInfo().CurrentOrgId == 10188 || c.GetAdminUserInfo().CurrentOrgId == 10217 { // if err := json.Unmarshal(userJSONBytes3, &res3507for10188); err != nil { // utils.ErrorLog("解析失败:%v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // //if res3507for10188.Infcode // res.InfRefmsgid = res3507for10188.InfRefmsgid // //res.Output = resSix10265.Output // res.ErrMsg = res3507for10188.ErrMsg // res.Cainfo = res3507for10188.Cainfo // res.WarnMsg = res3507for10188.WarnMsg // infocode, _ := strconv.ParseInt(res3507for10188.Infcode, 10, 64) // res.Infcode = infocode // } else { // if err := json.Unmarshal(userJSONBytes3, &res); err != nil { // utils.ErrorLog("解析失败:%v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // // } // if res.Infcode == 0 { // item.IsSale = 1 // item.Bchno = number // item.SaleDate = time.Now().Format("2006-01-02") // // err5 := service.SaveDF(item) // if err5 == nil { // if item.IsChange == 0 { //没变更,进行变更操作 // bg_number := strconv.FormatInt(time.Now().Unix(), 10) + "-" + strconv.FormatInt(item.ID, 10) + "-" + "3502" // // result, result2 := ChangeStock(item.Count, item, miConfig, "102", roles, bg_number) // saveLog(result, result2, "3502", "自动出库,没销售,未变更3502") // // var respJSON3 map[string]interface{} // if err := json.Unmarshal([]byte(string(result)), &respJSON3); err != nil { // utils.ErrorLog("接口返回数据解析JSON失败: %v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // if c.GetAdminUserInfo().CurrentOrgId == 10188 || c.GetAdminUserInfo().CurrentOrgId == 10217 { // if err := json.Unmarshal(userJSONBytes3, &res3507for10188); err != nil { // utils.ErrorLog("解析失败:%v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // //if res3507for10188.Infcode // res3.InfRefmsgid = res3507for10188.InfRefmsgid // //res.Output = resSix10265.Output // res3.ErrMsg = res3507for10188.ErrMsg // res3.Cainfo = res3507for10188.Cainfo // res3.WarnMsg = res3507for10188.WarnMsg // infocode, _ := strconv.ParseInt(res3507for10188.Infcode, 10, 64) // res3.Infcode = infocode // } else { // if err := json.Unmarshal(userJSONBytes3, &res3); err != nil { // utils.ErrorLog("解析失败:%v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // } // if res3.Infcode == 0 { // item.IsChange = 1 // item.BgBchno = bg_number // service.SaveDF2(item) // } else { // // err = append(err, item.HisDoctorAdviceInfo.AdviceName+",销售变更失败:"+res3.ErrMsg) // } // } // } // } else { // // err = append(err, item.HisDoctorAdviceInfo.AdviceName+",销售失败:"+res.ErrMsg) // } // } // // } else { //还没结,提示用户去结算,并药品追溯上传 // err = append(err, item.HisDoctorAdviceInfo.AdviceName+"还没结算,请结算后,在药品追溯页面上传") // } // } // } // if len(err) == 0 { // c.ServeSuccessJSON(map[string]interface{}{ // "msg": "销售变更成功", // }) // } else { // c.ServeSuccessJSON(map[string]interface{}{ // "failed_code": -10, // "msg": err, // }) // } //} func (c *HisApiController) ChangeDrug() { ids := c.GetString("ids") id_arr := strings.Split(ids, ",") flows, _ := service.GetNewDrugFlowInfo(c.GetAdminUserInfo().CurrentOrgId, id_arr) admin_user_id, _ := c.GetInt64("admin_user_id") roles, _ := service.GetAdminUserInfoByID(c.GetAdminUserInfo().CurrentOrgId, admin_user_id) miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId) var err []string for _, item := range flows { var res3 ResultSix if item.ConsumableType == 3 { //3为自动出库 7为自动退库 prescription := service.GetHisPrescriptionByID(item.HisDoctorAdviceInfo.PrescriptionId) if prescription.OrderStatus == 2 { //已经结算 //判断是否已经销售 if item.IsSale == 1 { //是否已经销售,1是 0否 //是否已经变更 1是 0否 if item.IsChange == 0 { //没变更,进行变更操作 bg_number := strconv.FormatInt(time.Now().Unix(), 10) + "-" + strconv.FormatInt(item.ID, 10) + "-" + "3502" result, result2 := ChangeStock(item.Count, item, miConfig, "102", roles, bg_number) saveLog(result, result2, "3502", "自动出库,已经销售,未变更3502") var respJSON3 map[string]interface{} if err := json.Unmarshal([]byte(string(result)), &respJSON3); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } userJSONBytes3, _ := json.Marshal(respJSON3) if err := json.Unmarshal(userJSONBytes3, &res3); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if res3.Infcode == 0 { item.IsChange = 1 item.BgBchno = bg_number service.SaveDF2(item) } else { err = append(err, item.HisDoctorAdviceInfo.AdviceName+",销售变更失败:"+res3.ErrMsg) } } } else { //没销售, var res FJ3507Result var res3507for10188 FJ3507ResultFor10188 number := strconv.FormatInt(time.Now().Unix(), 10) + "-" + strconv.FormatInt(item.ID, 10) + "-" + "3505" //进行商品销售接口 result3, result4 := SaleStock(c.GetAdminUserInfo().CurrentOrgId, prescription, item, miConfig, "", roles, number) saveLog(result3, result4, "3505", "自动出库,未销售进行销售行为,3505") var respJSON3 map[string]interface{} if err := json.Unmarshal([]byte(string(result3)), &respJSON3); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } userJSONBytes3, _ := json.Marshal(respJSON3) if c.GetAdminUserInfo().CurrentOrgId == 10188 || c.GetAdminUserInfo().CurrentOrgId == 10217 { if err := json.Unmarshal(userJSONBytes3, &res3507for10188); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } //if res3507for10188.Infcode res.InfRefmsgid = res3507for10188.InfRefmsgid //res.Output = resSix10265.Output res.ErrMsg = res3507for10188.ErrMsg res.Cainfo = res3507for10188.Cainfo res.WarnMsg = res3507for10188.WarnMsg infocode, _ := strconv.ParseInt(res3507for10188.Infcode, 10, 64) res.Infcode = infocode } else { if err := json.Unmarshal(userJSONBytes3, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } if res.Infcode == 0 { item.IsSale = 1 item.Bchno = number item.SaleDate = time.Now().Format("2006-01-02") err5 := service.SaveDF(item) if err5 == nil { if item.IsChange == 0 { //没变更,进行变更操作 bg_number := strconv.FormatInt(time.Now().Unix(), 10) + "-" + strconv.FormatInt(item.ID, 10) + "-" + "3502" result, result2 := ChangeStock(item.Count, item, miConfig, "102", roles, bg_number) saveLog(result, result2, "3502", "自动出库,没销售,未变更3502") var respJSON3 map[string]interface{} if err := json.Unmarshal([]byte(string(result)), &respJSON3); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } userJSONBytes3, _ := json.Marshal(respJSON3) if err := json.Unmarshal(userJSONBytes3, &res3); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if c.GetAdminUserInfo().CurrentOrgId == 10188 || c.GetAdminUserInfo().CurrentOrgId == 10217 { if err := json.Unmarshal(userJSONBytes3, &res3507for10188); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } //if res3507for10188.Infcode res3.InfRefmsgid = res3507for10188.InfRefmsgid //res.Output = resSix10265.Output res3.ErrMsg = res3507for10188.ErrMsg res3.Cainfo = res3507for10188.Cainfo res3.WarnMsg = res3507for10188.WarnMsg infocode, _ := strconv.ParseInt(res3507for10188.Infcode, 10, 64) res3.Infcode = infocode } else { if err := json.Unmarshal(userJSONBytes3, &res3); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } if res3.Infcode == 0 { item.IsChange = 1 item.BgBchno = bg_number service.SaveDF2(item) } else { err = append(err, item.HisDoctorAdviceInfo.AdviceName+",销售变更失败:"+res3.ErrMsg) } } } } else { err = append(err, item.HisDoctorAdviceInfo.AdviceName+",销售失败:"+res.ErrMsg) } } } else { //还没结算 var res3507for10188 FJ3507ResultFor10188 if item.IsChange == 0 { //没变更,进行变更操作 bg_number := strconv.FormatInt(time.Now().Unix(), 10) + "-" + strconv.FormatInt(item.ID, 10) + "-" + "3502" result, result2 := ChangeStock(item.Count, item, miConfig, "102", roles, bg_number) saveLog(result, result2, "3502", "自动出库,未销售,未变更3502") var respJSON3 map[string]interface{} if err := json.Unmarshal([]byte(string(result)), &respJSON3); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } userJSONBytes3, _ := json.Marshal(respJSON3) if c.GetAdminUserInfo().CurrentOrgId == 10188 || c.GetAdminUserInfo().CurrentOrgId == 10217 { if err := json.Unmarshal(userJSONBytes3, &res3507for10188); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } //if res3507for10188.Infcode res3.InfRefmsgid = res3507for10188.InfRefmsgid //res.Output = resSix10265.Output res3.ErrMsg = res3507for10188.ErrMsg res3.Cainfo = res3507for10188.Cainfo res3.WarnMsg = res3507for10188.WarnMsg infocode, _ := strconv.ParseInt(res3507for10188.Infcode, 10, 64) res3.Infcode = infocode } else { if err := json.Unmarshal(userJSONBytes3, &res3); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } if res3.Infcode == 0 { item.IsChange = 1 item.BgBchno = bg_number service.SaveDF2(item) } else { err = append(err, item.HisDoctorAdviceInfo.AdviceName+",销售变更失败:"+res3.ErrMsg) } } } } else if item.ConsumableType == 7 { var res3507for10188 FJ3507ResultFor10188 prescription := service.GetHisPrescriptionByID(item.HisDoctorAdviceInfo.PrescriptionId) order := service.GetHisOrderByNumber(prescription.BatchNumber) if order.OrderStatus == 2 || order.OrderStatus == 1 { //已经结算 //判断是否已经销售 if item.IsSale == 2 { //是否已经销售,1是 0否 //是否已经变更 1是 0否 if item.IsChange == 0 { //没变更,进行变更操作 bg_number := strconv.FormatInt(time.Now().Unix(), 10) + "-" + strconv.FormatInt(item.ID, 10) + "-" + "3502" result, result2 := ChangeStock(item.Count, item, miConfig, "101", roles, bg_number) saveLog(result, result2, "3502", "自动出库,未销售,未变更3502") var respJSON3 map[string]interface{} if err := json.Unmarshal([]byte(string(result)), &respJSON3); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } userJSONBytes3, _ := json.Marshal(respJSON3) if c.GetAdminUserInfo().CurrentOrgId == 10188 || c.GetAdminUserInfo().CurrentOrgId == 10217 { if err := json.Unmarshal(userJSONBytes3, &res3507for10188); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } //if res3507for10188.Infcode res3.InfRefmsgid = res3507for10188.InfRefmsgid //res.Output = resSix10265.Output res3.ErrMsg = res3507for10188.ErrMsg res3.Cainfo = res3507for10188.Cainfo res3.WarnMsg = res3507for10188.WarnMsg infocode, _ := strconv.ParseInt(res3507for10188.Infcode, 10, 64) res3.Infcode = infocode } else { if err := json.Unmarshal(userJSONBytes3, &res3); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } if res3.Infcode == 0 { item.IsChange = 1 item.BgBchno = bg_number service.SaveDF2(item) } else { err = append(err, item.HisDoctorAdviceInfo.AdviceName+",销售变更失败:"+res3.ErrMsg) } } } else { //没销售, //进行商品销售退货接口 number := strconv.FormatInt(time.Now().Unix(), 10) + "-" + strconv.FormatInt(item.ID, 10) + "-" + "3506" result111, result222 := CancleSaleStock(c.GetAdminUserInfo().CurrentOrgId, prescription, item, miConfig, "", roles, number) saveLog(result111, result222, "3506", "销售退货") var res7 FJ3507Result //进行商品销售接口 //result3, result4 := SaleStock(c.GetAdminUserInfo().CurrentOrgId, prescription, item, miConfig, "", roles,number) //saveLog(result3, result4, "3506", "自动退库,未销售退货进行销售退货行为,3505") var respJSON3 map[string]interface{} if err := json.Unmarshal([]byte(string(result111)), &respJSON3); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } userJSONBytes3, _ := json.Marshal(respJSON3) if c.GetAdminUserInfo().CurrentOrgId == 10188 || c.GetAdminUserInfo().CurrentOrgId == 10217 { if err := json.Unmarshal(userJSONBytes3, &res3507for10188); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } //if res3507for10188.Infcode res7.InfRefmsgid = res3507for10188.InfRefmsgid //res.Output = resSix10265.Output res7.ErrMsg = res3507for10188.ErrMsg res7.Cainfo = res3507for10188.Cainfo res7.WarnMsg = res3507for10188.WarnMsg infocode, _ := strconv.ParseInt(res3507for10188.Infcode, 10, 64) res7.Infcode = infocode } else { if err := json.Unmarshal(userJSONBytes3, &res7); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } if res7.Infcode == 0 { item.IsSale = 2 item.SaleDate = item.SaleDate item.Bchno = number service.SaveDF(item) if item.IsChange == 0 { //没变更,进行变更操作 bg_number := strconv.FormatInt(time.Now().Unix(), 10) + "-" + strconv.FormatInt(item.ID, 10) + "-" + "3502" result, result2 := ChangeStock(item.Count, item, miConfig, "101", roles, bg_number) saveLog(result, result2, "3502", "自动出库,未销售,未变更3502") var respJSON3 map[string]interface{} if err := json.Unmarshal([]byte(string(result)), &respJSON3); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } userJSONBytes3, _ := json.Marshal(respJSON3) //if err := json.Unmarshal(userJSONBytes3, &res3); err != nil { // utils.ErrorLog("解析失败:%v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return //} if c.GetAdminUserInfo().CurrentOrgId == 10188 || c.GetAdminUserInfo().CurrentOrgId == 10217 { if err := json.Unmarshal(userJSONBytes3, &res3507for10188); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } //if res3507for10188.Infcode res3.InfRefmsgid = res3507for10188.InfRefmsgid //res.Output = resSix10265.Output res3.ErrMsg = res3507for10188.ErrMsg res3.Cainfo = res3507for10188.Cainfo res3.WarnMsg = res3507for10188.WarnMsg infocode, _ := strconv.ParseInt(res3507for10188.Infcode, 10, 64) res3.Infcode = infocode } else { if err := json.Unmarshal(userJSONBytes3, &res3); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } if res3.Infcode == 0 { item.IsChange = 1 item.BgBchno = bg_number service.SaveDF2(item) } else { err = append(err, item.HisDoctorAdviceInfo.AdviceName+",销售变更失败:"+res3.ErrMsg) } } } else { err = append(err, item.HisDoctorAdviceInfo.AdviceName+",销售变更失败:"+res7.ErrMsg) } } } else { //还没结算 if item.IsChange == 0 { //没变更,进行变更操作 bg_number := strconv.FormatInt(time.Now().Unix(), 10) + "-" + strconv.FormatInt(item.ID, 10) + "-" + "3502" result, result2 := ChangeStock(item.Count, item, miConfig, "101", roles, bg_number) saveLog(result, result2, "3502", "自动出库,未销售,未变更3502") var respJSON3 map[string]interface{} if err := json.Unmarshal([]byte(string(result)), &respJSON3); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } userJSONBytes3, _ := json.Marshal(respJSON3) //if err := json.Unmarshal(userJSONBytes3, &res3); err != nil { // utils.ErrorLog("解析失败:%v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return //} if c.GetAdminUserInfo().CurrentOrgId == 10188 || c.GetAdminUserInfo().CurrentOrgId == 10217 { if err := json.Unmarshal(userJSONBytes3, &res3507for10188); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } //if res3507for10188.Infcode res3.InfRefmsgid = res3507for10188.InfRefmsgid //res.Output = resSix10265.Output res3.ErrMsg = res3507for10188.ErrMsg res3.Cainfo = res3507for10188.Cainfo res3.WarnMsg = res3507for10188.WarnMsg infocode, _ := strconv.ParseInt(res3507for10188.Infcode, 10, 64) res3.Infcode = infocode } else { if err := json.Unmarshal(userJSONBytes3, &res3); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } if res3.Infcode == 0 { item.IsChange = 1 item.BgBchno = bg_number service.SaveDF2(item) } else { err = append(err, item.HisDoctorAdviceInfo.AdviceName+",销售变更失败:"+res3.ErrMsg) } } } } } if len(err) == 0 { c.ServeSuccessJSON(map[string]interface{}{ "msg": "销售变更成功", }) } else { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": err, }) } } func (c *HisApiController) ChangeDrugtwo() { //ids := c.GetString("ids") //id_arr := strings.Split(ids, ",") flows, _ := service.GetNewDrugFlowInfothree123() admin_user_id, _ := c.GetInt64("admin_user_id") roles, _ := service.GetAdminUserInfoByID(c.GetAdminUserInfo().CurrentOrgId, admin_user_id) miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId) var err []string for _, item := range flows { var res3 ResultSix if item.ConsumableType == 3 { //3为自动出库 7为自动退库 prescription := service.GetHisPrescriptionByID(item.HisDoctorAdviceInfo.PrescriptionId) if prescription.OrderStatus == 2 { //已经结算 //判断是否已经销售 //if item.IsSale == 1 { //是否已经销售,1是 0否 // //是否已经变更 1是 0否 // if item.IsChange == 0 { //没变更,进行变更操作 // bg_number := strconv.FormatInt(time.Now().Unix(), 10) + "-" + strconv.FormatInt(item.ID, 10) + "-" + "3502" // // result, result2 := ChangeStock(item.Count, item, miConfig, "102", roles, bg_number) // saveLog(result, result2, "3502", "自动出库,已经销售,未变更3502") // var respJSON3 map[string]interface{} // if err := json.Unmarshal([]byte(string(result)), &respJSON3); err != nil { // utils.ErrorLog("接口返回数据解析JSON失败: %v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // userJSONBytes3, _ := json.Marshal(respJSON3) // if err := json.Unmarshal(userJSONBytes3, &res3); err != nil { // utils.ErrorLog("解析失败:%v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // if res3.Infcode == 0 { // item.IsChange = 1 // item.BgBchno = bg_number // service.SaveDF2(item) // } else { // err = append(err, item.HisDoctorAdviceInfo.AdviceName+",销售变更失败:"+res3.ErrMsg) // } // } //} //else { //没销售, var res FJ3507Result var res3507for10188 FJ3507ResultFor10188 number := strconv.FormatInt(time.Now().Unix(), 10) + "-" + strconv.FormatInt(item.ID, 10) + "-" + "3505" //进行商品销售接口 result3, result4 := SaleStock10217(c.GetAdminUserInfo().CurrentOrgId, prescription, item, miConfig, "", roles, number) saveLog(result3, result4, "3505", "自动出库,未销售进行销售行为,3505") var respJSON3 map[string]interface{} if err := json.Unmarshal([]byte(string(result3)), &respJSON3); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } userJSONBytes3, _ := json.Marshal(respJSON3) if c.GetAdminUserInfo().CurrentOrgId == 10188 || c.GetAdminUserInfo().CurrentOrgId == 10217 { if err := json.Unmarshal(userJSONBytes3, &res3507for10188); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } //if res3507for10188.Infcode res.InfRefmsgid = res3507for10188.InfRefmsgid //res.Output = resSix10265.Output res.ErrMsg = res3507for10188.ErrMsg res.Cainfo = res3507for10188.Cainfo res.WarnMsg = res3507for10188.WarnMsg infocode, _ := strconv.ParseInt(res3507for10188.Infcode, 10, 64) res.Infcode = infocode } else { if err := json.Unmarshal(userJSONBytes3, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } if res.Infcode == 0 { item.IsSale = 1 item.Bchno = number item.SaleDate = time.Now().Format("2006-01-02") service.SaveDF(item) //if err5 == nil { // if item.IsChange == 0 { //没变更,进行变更操作 // bg_number := strconv.FormatInt(time.Now().Unix(), 10) + "-" + strconv.FormatInt(item.ID, 10) + "-" + "3502" // // result, result2 := ChangeStock(item.Count, item, miConfig, "102", roles, bg_number) // saveLog(result, result2, "3502", "自动出库,没销售,未变更3502") // // var respJSON3 map[string]interface{} // if err := json.Unmarshal([]byte(string(result)), &respJSON3); err != nil { // utils.ErrorLog("接口返回数据解析JSON失败: %v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // // if c.GetAdminUserInfo().CurrentOrgId == 10188 || c.GetAdminUserInfo().CurrentOrgId == 10217 { // if err := json.Unmarshal(userJSONBytes3, &res3507for10188); err != nil { // utils.ErrorLog("解析失败:%v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // //if res3507for10188.Infcode // res3.InfRefmsgid = res3507for10188.InfRefmsgid // //res.Output = resSix10265.Output // res3.ErrMsg = res3507for10188.ErrMsg // res3.Cainfo = res3507for10188.Cainfo // res3.WarnMsg = res3507for10188.WarnMsg // infocode, _ := strconv.ParseInt(res3507for10188.Infcode, 10, 64) // res3.Infcode = infocode // } else { // // if err := json.Unmarshal(userJSONBytes3, &res3); err != nil { // utils.ErrorLog("解析失败:%v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // // } // // if res3.Infcode == 0 { // item.IsChange = 1 // item.BgBchno = bg_number // service.SaveDF2(item) // } else { // err = append(err, item.HisDoctorAdviceInfo.AdviceName+",销售变更失败:"+res3.ErrMsg) // } // } //} } else { err = append(err, item.HisDoctorAdviceInfo.AdviceName+",销售失败:"+res.ErrMsg) } } } else { //还没结算 var res3507for10188 FJ3507ResultFor10188 if item.IsChange == 0 { //没变更,进行变更操作 bg_number := strconv.FormatInt(time.Now().Unix(), 10) + "-" + strconv.FormatInt(item.ID, 10) + "-" + "3502" result, result2 := ChangeStock(item.Count, item, miConfig, "102", roles, bg_number) saveLog(result, result2, "3502", "自动出库,未销售,未变更3502") var respJSON3 map[string]interface{} if err := json.Unmarshal([]byte(string(result)), &respJSON3); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } userJSONBytes3, _ := json.Marshal(respJSON3) if c.GetAdminUserInfo().CurrentOrgId == 10188 || c.GetAdminUserInfo().CurrentOrgId == 10217 { if err := json.Unmarshal(userJSONBytes3, &res3507for10188); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } //if res3507for10188.Infcode res3.InfRefmsgid = res3507for10188.InfRefmsgid //res.Output = resSix10265.Output res3.ErrMsg = res3507for10188.ErrMsg res3.Cainfo = res3507for10188.Cainfo res3.WarnMsg = res3507for10188.WarnMsg infocode, _ := strconv.ParseInt(res3507for10188.Infcode, 10, 64) res3.Infcode = infocode } else { if err := json.Unmarshal(userJSONBytes3, &res3); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } if res3.Infcode == 0 { item.IsChange = 1 item.BgBchno = bg_number service.SaveDF2(item) } else { err = append(err, item.HisDoctorAdviceInfo.AdviceName+",销售变更失败:"+res3.ErrMsg) } } } } //if item.ConsumableType == 7 { // var res3507for10188 FJ3507ResultFor10188 // // prescription := service.GetHisPrescriptionByID(item.HisDoctorAdviceInfo.PrescriptionId) // order := service.GetHisOrderByNumber(prescription.BatchNumber) // if order.OrderStatus == 2 || order.OrderStatus == 1 { //已经结算 // //判断是否已经销售 // if item.IsSale == 2 { //是否已经销售,1是 0否 // //是否已经变更 1是 0否 // if item.IsChange == 0 { //没变更,进行变更操作 // bg_number := strconv.FormatInt(time.Now().Unix(), 10) + "-" + strconv.FormatInt(item.ID, 10) + "-" + "3502" // // result, result2 := ChangeStock(item.Count, item, miConfig, "101", roles, bg_number) // saveLog(result, result2, "3502", "自动出库,未销售,未变更3502") // // var respJSON3 map[string]interface{} // if err := json.Unmarshal([]byte(string(result)), &respJSON3); err != nil { // utils.ErrorLog("接口返回数据解析JSON失败: %v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // userJSONBytes3, _ := json.Marshal(respJSON3) // if c.GetAdminUserInfo().CurrentOrgId == 10188 || c.GetAdminUserInfo().CurrentOrgId == 10217 { // if err := json.Unmarshal(userJSONBytes3, &res3507for10188); err != nil { // utils.ErrorLog("解析失败:%v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // //if res3507for10188.Infcode // res3.InfRefmsgid = res3507for10188.InfRefmsgid // //res.Output = resSix10265.Output // res3.ErrMsg = res3507for10188.ErrMsg // res3.Cainfo = res3507for10188.Cainfo // res3.WarnMsg = res3507for10188.WarnMsg // infocode, _ := strconv.ParseInt(res3507for10188.Infcode, 10, 64) // res3.Infcode = infocode // } else { // // if err := json.Unmarshal(userJSONBytes3, &res3); err != nil { // utils.ErrorLog("解析失败:%v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // // } // if res3.Infcode == 0 { // item.IsChange = 1 // item.BgBchno = bg_number // service.SaveDF2(item) // } else { // err = append(err, item.HisDoctorAdviceInfo.AdviceName+",销售变更失败:"+res3.ErrMsg) // } // } // } else { //没销售, // //进行商品销售退货接口 // number := strconv.FormatInt(time.Now().Unix(), 10) + "-" + strconv.FormatInt(item.ID, 10) + "-" + "3506" // // result111, result222 := CancleSaleStock(c.GetAdminUserInfo().CurrentOrgId, prescription, item, miConfig, "", roles, number) // saveLog(result111, result222, "3506", "销售退货") // var res7 FJ3507Result // // //进行商品销售接口 // //result3, result4 := SaleStock(c.GetAdminUserInfo().CurrentOrgId, prescription, item, miConfig, "", roles,number) // //saveLog(result3, result4, "3506", "自动退库,未销售退货进行销售退货行为,3505") // var respJSON3 map[string]interface{} // if err := json.Unmarshal([]byte(string(result111)), &respJSON3); err != nil { // utils.ErrorLog("接口返回数据解析JSON失败: %v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // userJSONBytes3, _ := json.Marshal(respJSON3) // // if c.GetAdminUserInfo().CurrentOrgId == 10188 || c.GetAdminUserInfo().CurrentOrgId == 10217 { // if err := json.Unmarshal(userJSONBytes3, &res3507for10188); err != nil { // utils.ErrorLog("解析失败:%v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // //if res3507for10188.Infcode // res7.InfRefmsgid = res3507for10188.InfRefmsgid // //res.Output = resSix10265.Output // res7.ErrMsg = res3507for10188.ErrMsg // res7.Cainfo = res3507for10188.Cainfo // res7.WarnMsg = res3507for10188.WarnMsg // infocode, _ := strconv.ParseInt(res3507for10188.Infcode, 10, 64) // res7.Infcode = infocode // } else { // // if err := json.Unmarshal(userJSONBytes3, &res7); err != nil { // utils.ErrorLog("解析失败:%v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // // } // if res7.Infcode == 0 { // item.IsSale = 2 // item.SaleDate = item.SaleDate // item.Bchno = number // service.SaveDF(item) // if item.IsChange == 0 { //没变更,进行变更操作 // bg_number := strconv.FormatInt(time.Now().Unix(), 10) + "-" + strconv.FormatInt(item.ID, 10) + "-" + "3502" // // result, result2 := ChangeStock(item.Count, item, miConfig, "101", roles, bg_number) // saveLog(result, result2, "3502", "自动出库,未销售,未变更3502") // // var respJSON3 map[string]interface{} // if err := json.Unmarshal([]byte(string(result)), &respJSON3); err != nil { // utils.ErrorLog("接口返回数据解析JSON失败: %v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // userJSONBytes3, _ := json.Marshal(respJSON3) // //if err := json.Unmarshal(userJSONBytes3, &res3); err != nil { // // utils.ErrorLog("解析失败:%v", err) // // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // // return // //} // // if c.GetAdminUserInfo().CurrentOrgId == 10188 || c.GetAdminUserInfo().CurrentOrgId == 10217 { // if err := json.Unmarshal(userJSONBytes3, &res3507for10188); err != nil { // utils.ErrorLog("解析失败:%v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // //if res3507for10188.Infcode // res3.InfRefmsgid = res3507for10188.InfRefmsgid // //res.Output = resSix10265.Output // res3.ErrMsg = res3507for10188.ErrMsg // res3.Cainfo = res3507for10188.Cainfo // res3.WarnMsg = res3507for10188.WarnMsg // infocode, _ := strconv.ParseInt(res3507for10188.Infcode, 10, 64) // res3.Infcode = infocode // } else { // // if err := json.Unmarshal(userJSONBytes3, &res3); err != nil { // utils.ErrorLog("解析失败:%v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // // } // if res3.Infcode == 0 { // item.IsChange = 1 // item.BgBchno = bg_number // service.SaveDF2(item) // } else { // err = append(err, item.HisDoctorAdviceInfo.AdviceName+",销售变更失败:"+res3.ErrMsg) // } // } // } else { // err = append(err, item.HisDoctorAdviceInfo.AdviceName+",销售变更失败:"+res7.ErrMsg) // } // } // } else { //还没结算 // if item.IsChange == 0 { //没变更,进行变更操作 // bg_number := strconv.FormatInt(time.Now().Unix(), 10) + "-" + strconv.FormatInt(item.ID, 10) + "-" + "3502" // // result, result2 := ChangeStock(item.Count, item, miConfig, "101", roles, bg_number) // saveLog(result, result2, "3502", "自动出库,未销售,未变更3502") // // var respJSON3 map[string]interface{} // if err := json.Unmarshal([]byte(string(result)), &respJSON3); err != nil { // utils.ErrorLog("接口返回数据解析JSON失败: %v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // userJSONBytes3, _ := json.Marshal(respJSON3) // //if err := json.Unmarshal(userJSONBytes3, &res3); err != nil { // // utils.ErrorLog("解析失败:%v", err) // // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // // return // //} // // if c.GetAdminUserInfo().CurrentOrgId == 10188 || c.GetAdminUserInfo().CurrentOrgId == 10217 { // if err := json.Unmarshal(userJSONBytes3, &res3507for10188); err != nil { // utils.ErrorLog("解析失败:%v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // //if res3507for10188.Infcode // res3.InfRefmsgid = res3507for10188.InfRefmsgid // //res.Output = resSix10265.Output // res3.ErrMsg = res3507for10188.ErrMsg // res3.Cainfo = res3507for10188.Cainfo // res3.WarnMsg = res3507for10188.WarnMsg // infocode, _ := strconv.ParseInt(res3507for10188.Infcode, 10, 64) // res3.Infcode = infocode // } else { // // if err := json.Unmarshal(userJSONBytes3, &res3); err != nil { // utils.ErrorLog("解析失败:%v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // // } // if res3.Infcode == 0 { // item.IsChange = 1 // item.BgBchno = bg_number // service.SaveDF2(item) // } else { // err = append(err, item.HisDoctorAdviceInfo.AdviceName+",销售变更失败:"+res3.ErrMsg) // } // } // } //} } if len(err) == 0 { c.ServeSuccessJSON(map[string]interface{}{ "msg": "销售变更成功", }) } else { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": err, }) } } func (c *HisApiController) ChangeDrugthree() { //ids := c.GetString("ids") //id_arr := strings.Split(ids, ",") flows, _ := service.GetNewDrugFlowInfothree() admin_user_id, _ := c.GetInt64("admin_user_id") roles, _ := service.GetAdminUserInfoByID(c.GetAdminUserInfo().CurrentOrgId, admin_user_id) miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId) var err []string for _, item := range flows { var res3 ResultSix if item.ConsumableType == 3 { //3为自动出库 7为自动退库 prescription := service.GetHisPrescriptionByID(item.HisDoctorAdviceInfo.PrescriptionId) if prescription.OrderStatus == 2 { //已经结算 //判断是否已经销售 if item.IsSale == 1 { //是否已经销售,1是 0否 //是否已经变更 1是 0否 if item.IsChange == 0 { //没变更,进行变更操作 bg_number := strconv.FormatInt(time.Now().Unix(), 10) + "-" + strconv.FormatInt(item.ID, 10) + "-" + "3502" result, result2 := ChangeStock(item.Count, item, miConfig, "102", roles, bg_number) saveLog(result, result2, "3502", "自动出库,已经销售,未变更3502") var respJSON3 map[string]interface{} if err := json.Unmarshal([]byte(string(result)), &respJSON3); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } userJSONBytes3, _ := json.Marshal(respJSON3) if err := json.Unmarshal(userJSONBytes3, &res3); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if res3.Infcode == 0 { item.IsChange = 1 item.BgBchno = bg_number service.SaveDF2(item) } else { err = append(err, item.HisDoctorAdviceInfo.AdviceName+",销售变更失败:"+res3.ErrMsg) } } } else { //没销售, var res FJ3507Result var res3507for10188 FJ3507ResultFor10188 number := strconv.FormatInt(time.Now().Unix(), 10) + "-" + strconv.FormatInt(item.ID, 10) + "-" + "3505" //进行商品销售接口 result3, result4 := SaleStock(c.GetAdminUserInfo().CurrentOrgId, prescription, item, miConfig, "", roles, number) saveLog(result3, result4, "3505", "自动出库,未销售进行销售行为,3505") var respJSON3 map[string]interface{} if err := json.Unmarshal([]byte(string(result3)), &respJSON3); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } userJSONBytes3, _ := json.Marshal(respJSON3) if c.GetAdminUserInfo().CurrentOrgId == 10188 || c.GetAdminUserInfo().CurrentOrgId == 10217 { if err := json.Unmarshal(userJSONBytes3, &res3507for10188); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } //if res3507for10188.Infcode res.InfRefmsgid = res3507for10188.InfRefmsgid //res.Output = resSix10265.Output res.ErrMsg = res3507for10188.ErrMsg res.Cainfo = res3507for10188.Cainfo res.WarnMsg = res3507for10188.WarnMsg infocode, _ := strconv.ParseInt(res3507for10188.Infcode, 10, 64) res.Infcode = infocode } else { if err := json.Unmarshal(userJSONBytes3, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } if res.Infcode == 0 { item.IsSale = 1 item.Bchno = number item.SaleDate = time.Now().Format("2006-01-02") err5 := service.SaveDF(item) if err5 == nil { if item.IsChange == 0 { //没变更,进行变更操作 bg_number := strconv.FormatInt(time.Now().Unix(), 10) + "-" + strconv.FormatInt(item.ID, 10) + "-" + "3502" result, result2 := ChangeStock(item.Count, item, miConfig, "102", roles, bg_number) saveLog(result, result2, "3502", "自动出库,没销售,未变更3502") var respJSON3 map[string]interface{} if err := json.Unmarshal([]byte(string(result)), &respJSON3); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if c.GetAdminUserInfo().CurrentOrgId == 10188 { if err := json.Unmarshal(userJSONBytes3, &res3507for10188); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } //if res3507for10188.Infcode res3.InfRefmsgid = res3507for10188.InfRefmsgid //res.Output = resSix10265.Output res3.ErrMsg = res3507for10188.ErrMsg res3.Cainfo = res3507for10188.Cainfo res3.WarnMsg = res3507for10188.WarnMsg infocode, _ := strconv.ParseInt(res3507for10188.Infcode, 10, 64) res3.Infcode = infocode } else if c.GetAdminUserInfo().CurrentOrgId == 10217 { if err := json.Unmarshal(userJSONBytes3, &res3507for10188); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } //if res3507for10188.Infcode res3.InfRefmsgid = res3507for10188.InfRefmsgid //res.Output = resSix10265.Output res3.ErrMsg = res3507for10188.ErrMsg res3.Cainfo = res3507for10188.Cainfo res3.WarnMsg = res3507for10188.WarnMsg infocode, _ := strconv.ParseInt(res3507for10188.Infcode, 10, 64) res3.Infcode = infocode } else { if err := json.Unmarshal(userJSONBytes3, &res3); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } if res3.Infcode == 0 { item.IsChange = 1 item.BgBchno = bg_number service.SaveDF2(item) } else { err = append(err, item.HisDoctorAdviceInfo.AdviceName+",销售变更失败:"+res3.ErrMsg) } } } } else { err = append(err, item.HisDoctorAdviceInfo.AdviceName+",销售失败:"+res.ErrMsg) } } } else { //还没结算 var res3507for10188 FJ3507ResultFor10188 if item.IsChange == 0 { //没变更,进行变更操作 bg_number := strconv.FormatInt(time.Now().Unix(), 10) + "-" + strconv.FormatInt(item.ID, 10) + "-" + "3502" result, result2 := ChangeStock(item.Count, item, miConfig, "102", roles, bg_number) saveLog(result, result2, "3502", "自动出库,未销售,未变更3502") var respJSON3 map[string]interface{} if err := json.Unmarshal([]byte(string(result)), &respJSON3); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } userJSONBytes3, _ := json.Marshal(respJSON3) if c.GetAdminUserInfo().CurrentOrgId == 10188 { if err := json.Unmarshal(userJSONBytes3, &res3507for10188); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } //if res3507for10188.Infcode res3.InfRefmsgid = res3507for10188.InfRefmsgid //res.Output = resSix10265.Output res3.ErrMsg = res3507for10188.ErrMsg res3.Cainfo = res3507for10188.Cainfo res3.WarnMsg = res3507for10188.WarnMsg infocode, _ := strconv.ParseInt(res3507for10188.Infcode, 10, 64) res3.Infcode = infocode } else if c.GetAdminUserInfo().CurrentOrgId == 10217 { if err := json.Unmarshal(userJSONBytes3, &res3507for10188); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } //if res3507for10188.Infcode res3.InfRefmsgid = res3507for10188.InfRefmsgid //res.Output = resSix10265.Output res3.ErrMsg = res3507for10188.ErrMsg res3.Cainfo = res3507for10188.Cainfo res3.WarnMsg = res3507for10188.WarnMsg infocode, _ := strconv.ParseInt(res3507for10188.Infcode, 10, 64) res3.Infcode = infocode } else { if err := json.Unmarshal(userJSONBytes3, &res3); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } if res3.Infcode == 0 { item.IsChange = 1 item.BgBchno = bg_number service.SaveDF2(item) } else { err = append(err, item.HisDoctorAdviceInfo.AdviceName+",销售变更失败:"+res3.ErrMsg) } } } } else if item.ConsumableType == 7 { var res3507for10188 FJ3507ResultFor10188 prescription := service.GetHisPrescriptionByID(item.HisDoctorAdviceInfo.PrescriptionId) order := service.GetHisOrderByNumber(prescription.BatchNumber) if order.OrderStatus == 2 || order.OrderStatus == 1 { //已经结算 //判断是否已经销售 if item.IsSale == 2 { //是否已经销售,1是 0否 //是否已经变更 1是 0否 if item.IsChange == 0 { //没变更,进行变更操作 bg_number := strconv.FormatInt(time.Now().Unix(), 10) + "-" + strconv.FormatInt(item.ID, 10) + "-" + "3502" result, result2 := ChangeStock(item.Count, item, miConfig, "101", roles, bg_number) saveLog(result, result2, "3502", "自动出库,未销售,未变更3502") var respJSON3 map[string]interface{} if err := json.Unmarshal([]byte(string(result)), &respJSON3); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } userJSONBytes3, _ := json.Marshal(respJSON3) if c.GetAdminUserInfo().CurrentOrgId == 10188 || c.GetAdminUserInfo().CurrentOrgId == 10217 { if err := json.Unmarshal(userJSONBytes3, &res3507for10188); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } //if res3507for10188.Infcode res3.InfRefmsgid = res3507for10188.InfRefmsgid //res.Output = resSix10265.Output res3.ErrMsg = res3507for10188.ErrMsg res3.Cainfo = res3507for10188.Cainfo res3.WarnMsg = res3507for10188.WarnMsg infocode, _ := strconv.ParseInt(res3507for10188.Infcode, 10, 64) res3.Infcode = infocode } else { if err := json.Unmarshal(userJSONBytes3, &res3); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } if res3.Infcode == 0 { item.IsChange = 1 item.BgBchno = bg_number service.SaveDF2(item) } else { err = append(err, item.HisDoctorAdviceInfo.AdviceName+",销售变更失败:"+res3.ErrMsg) } } } else { //没销售, //进行商品销售退货接口 number := strconv.FormatInt(time.Now().Unix(), 10) + "-" + strconv.FormatInt(item.ID, 10) + "-" + "3506" result111, result222 := CancleSaleStock(c.GetAdminUserInfo().CurrentOrgId, prescription, item, miConfig, "", roles, number) saveLog(result111, result222, "3506", "销售退货") var res7 FJ3507Result //进行商品销售接口 //result3, result4 := SaleStock(c.GetAdminUserInfo().CurrentOrgId, prescription, item, miConfig, "", roles,number) //saveLog(result3, result4, "3506", "自动退库,未销售退货进行销售退货行为,3505") var respJSON3 map[string]interface{} if err := json.Unmarshal([]byte(string(result111)), &respJSON3); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } userJSONBytes3, _ := json.Marshal(respJSON3) if c.GetAdminUserInfo().CurrentOrgId == 10188 || c.GetAdminUserInfo().CurrentOrgId == 10217 { if err := json.Unmarshal(userJSONBytes3, &res3507for10188); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } //if res3507for10188.Infcode res7.InfRefmsgid = res3507for10188.InfRefmsgid //res.Output = resSix10265.Output res7.ErrMsg = res3507for10188.ErrMsg res7.Cainfo = res3507for10188.Cainfo res7.WarnMsg = res3507for10188.WarnMsg infocode, _ := strconv.ParseInt(res3507for10188.Infcode, 10, 64) res7.Infcode = infocode } else { if err := json.Unmarshal(userJSONBytes3, &res7); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } if res7.Infcode == 0 { item.IsSale = 2 item.SaleDate = item.SaleDate item.Bchno = number service.SaveDF(item) if item.IsChange == 0 { //没变更,进行变更操作 bg_number := strconv.FormatInt(time.Now().Unix(), 10) + "-" + strconv.FormatInt(item.ID, 10) + "-" + "3502" result, result2 := ChangeStock(item.Count, item, miConfig, "101", roles, bg_number) saveLog(result, result2, "3502", "自动出库,未销售,未变更3502") var respJSON3 map[string]interface{} if err := json.Unmarshal([]byte(string(result)), &respJSON3); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } userJSONBytes3, _ := json.Marshal(respJSON3) //if err := json.Unmarshal(userJSONBytes3, &res3); err != nil { // utils.ErrorLog("解析失败:%v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return //} if c.GetAdminUserInfo().CurrentOrgId == 10188 || c.GetAdminUserInfo().CurrentOrgId == 10217 { if err := json.Unmarshal(userJSONBytes3, &res3507for10188); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } //if res3507for10188.Infcode res3.InfRefmsgid = res3507for10188.InfRefmsgid //res.Output = resSix10265.Output res3.ErrMsg = res3507for10188.ErrMsg res3.Cainfo = res3507for10188.Cainfo res3.WarnMsg = res3507for10188.WarnMsg infocode, _ := strconv.ParseInt(res3507for10188.Infcode, 10, 64) res3.Infcode = infocode } else { if err := json.Unmarshal(userJSONBytes3, &res3); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } if res3.Infcode == 0 { item.IsChange = 1 item.BgBchno = bg_number service.SaveDF2(item) } else { err = append(err, item.HisDoctorAdviceInfo.AdviceName+",销售变更失败:"+res3.ErrMsg) } } } else { err = append(err, item.HisDoctorAdviceInfo.AdviceName+",销售变更失败:"+res7.ErrMsg) } } } else { //还没结算 if item.IsChange == 0 { //没变更,进行变更操作 bg_number := strconv.FormatInt(time.Now().Unix(), 10) + "-" + strconv.FormatInt(item.ID, 10) + "-" + "3502" result, result2 := ChangeStock(item.Count, item, miConfig, "101", roles, bg_number) saveLog(result, result2, "3502", "自动出库,未销售,未变更3502") var respJSON3 map[string]interface{} if err := json.Unmarshal([]byte(string(result)), &respJSON3); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } userJSONBytes3, _ := json.Marshal(respJSON3) //if err := json.Unmarshal(userJSONBytes3, &res3); err != nil { // utils.ErrorLog("解析失败:%v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return //} if c.GetAdminUserInfo().CurrentOrgId == 10188 || c.GetAdminUserInfo().CurrentOrgId == 10217 { if err := json.Unmarshal(userJSONBytes3, &res3507for10188); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } //if res3507for10188.Infcode res3.InfRefmsgid = res3507for10188.InfRefmsgid //res.Output = resSix10265.Output res3.ErrMsg = res3507for10188.ErrMsg res3.Cainfo = res3507for10188.Cainfo res3.WarnMsg = res3507for10188.WarnMsg infocode, _ := strconv.ParseInt(res3507for10188.Infcode, 10, 64) res3.Infcode = infocode } else { if err := json.Unmarshal(userJSONBytes3, &res3); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } if res3.Infcode == 0 { item.IsChange = 1 item.BgBchno = bg_number service.SaveDF2(item) } else { err = append(err, item.HisDoctorAdviceInfo.AdviceName+",销售变更失败:"+res3.ErrMsg) } } } } } if len(err) == 0 { c.ServeSuccessJSON(map[string]interface{}{ "msg": "销售变更成功", }) } else { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": err, }) } } func (c *HisApiController) ChangeDrugTen() { start_time_str := c.GetString("start_time") end_time_str := c.GetString("end_time") //ids := c.GetString("ids") //id_arr := strings.Split(ids, ",") timeLayout := "2006-01-02" loc, _ := time.LoadLocation("Local") theStartTime, _ := time.ParseInLocation(timeLayout+" 15:04:05", start_time_str+" 00:00:00", loc) recordStartTime := theStartTime.Unix() theEndTime, _ := time.ParseInLocation(timeLayout+" 15:04:05", end_time_str+" 00:00:00", loc) recordEndTime := theEndTime.Unix() //timestamp := int64(1729612800) flows, _ := service.GetNewDrugFlowInforTenone(recordStartTime, recordEndTime, c.GetAdminUserInfo().CurrentOrgId) admin_user_id, _ := c.GetInt64("admin_user_id") roles, _ := service.GetAdminUserInfoByID(c.GetAdminUserInfo().CurrentOrgId, admin_user_id) miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId) var err []string for _, item := range flows { var res3 ResultSix if item.ConsumableType == 3 { //3为自动出库 7为自动退库 if item.HisDoctorAdviceInfo.PrescriptionId == 0 { continue } if item.HisDoctorAdviceInfo.PrescriptionId == 0 { continue } prescription := service.GetHisPrescriptionByID(item.HisDoctorAdviceInfo.PrescriptionId) if prescription.OrderStatus == 2 { //已经结算 //判断 是否已经销售 //if item.IsSale == 1 { //是否已经销售,1是 0否 ////是否已经变更 1是 0否 //if item.IsChange == 0 { //没变更,进行变更操作 // bg_number := strconv.FormatInt(time.Now().Unix(), 10) + "-" + strconv.FormatInt(item.ID, 10) + "-" + "3502" // // result, result2 := ChangeStock(item.Count, item, miConfig, "102", roles, bg_number) // saveLog(result, result2, "3502", "自动出库,已经销售,未变更3502") // var respJSON3 map[string]interface{} // if err := json.Unmarshal([]byte(string(result)), &respJSON3); err != nil { // utils.ErrorLog("接口返回数据解析JSON失败: %v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // userJSONBytes3, _ := json.Marshal(respJSON3) // if err := json.Unmarshal(userJSONBytes3, &res3); err != nil { // utils.ErrorLog("解析失败:%v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // if res3.Infcode == 0 { // item.IsChange = 1 // item.BgBchno = bg_number // service.SaveDF2(item) // } else { // err = append(err, item.HisDoctorAdviceInfo.AdviceName+",销售变更失败:"+res3.ErrMsg) // } //} //} else if item.IsSale == 0 { //没销售, var res FJ3507Result var res3507for10188 FJ3507ResultFor10188 number := strconv.FormatInt(time.Now().Unix(), 10) + "-" + strconv.FormatInt(item.ID, 10) + "-" + "3505" //进行商品销售接口 result3, result4 := SaleStock(c.GetAdminUserInfo().CurrentOrgId, prescription, item, miConfig, "", roles, number) saveLog(result3, result4, "3505", "自动出库,未销售进行销售行为,3505") var respJSON3 map[string]interface{} if err := json.Unmarshal([]byte(string(result3)), &respJSON3); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } userJSONBytes3, _ := json.Marshal(respJSON3) if c.GetAdminUserInfo().CurrentOrgId == 10265 || c.GetAdminUserInfo().CurrentOrgId == 10188 || c.GetAdminUserInfo().CurrentOrgId == 10217 { if err := json.Unmarshal(userJSONBytes3, &res3507for10188); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } //if res3507for10188.Infcode res.InfRefmsgid = res3507for10188.InfRefmsgid //res.Output = resSix10265.Output res.ErrMsg = res3507for10188.ErrMsg res.Cainfo = res3507for10188.Cainfo res.WarnMsg = res3507for10188.WarnMsg infocode, _ := strconv.ParseInt(res3507for10188.Infcode, 10, 64) res.Infcode = infocode } else if c.GetAdminUserInfo().CurrentOrgId == 10480 { } else { if err := json.Unmarshal(userJSONBytes3, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } if res.Infcode == 0 { item.IsSale = 1 item.Bchno = number item.SaleDate = time.Now().Format("2006-01-02") err5 := service.SaveDF(item) utils.ErrorLog("接口返回数据解析JSON失败: %v", err5) //if err5 == nil { // // if item.IsChange == 1 { //没变更,进行变更操作 // bg_number := strconv.FormatInt(time.Now().Unix(), 10) + "-" + strconv.FormatInt(item.ID, 10) + "-" + "3502" // // result, result2 := ChangeStock(item.Count, item, miConfig, "102", roles, bg_number) // saveLog(result, result2, "3502", "自动出库,没销售,未变更3502") // // var respJSON3 map[string]interface{} // if err := json.Unmarshal([]byte(string(result)), &respJSON3); err != nil { // utils.ErrorLog("接口返回数据解析JSON失败: %v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // // if c.GetAdminUserInfo().CurrentOrgId == 10188 { // if err := json.Unmarshal(userJSONBytes3, &res3507for10188); err != nil { // utils.ErrorLog("解析失败:%v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // //if res3507for10188.Infcode // res3.InfRefmsgid = res3507for10188.InfRefmsgid // //res.Output = resSix10265.Output // res3.ErrMsg = res3507for10188.ErrMsg // res3.Cainfo = res3507for10188.Cainfo // res3.WarnMsg = res3507for10188.WarnMsg // infocode, _ := strconv.ParseInt(res3507for10188.Infcode, 10, 64) // res3.Infcode = infocode // } else if c.GetAdminUserInfo().CurrentOrgId == 10217 { // if err := json.Unmarshal(userJSONBytes3, &res3507for10188); err != nil { // utils.ErrorLog("解析失败:%v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // //if res3507for10188.Infcode // res3.InfRefmsgid = res3507for10188.InfRefmsgid // //res.Output = resSix10265.Output // res3.ErrMsg = res3507for10188.ErrMsg // res3.Cainfo = res3507for10188.Cainfo // res3.WarnMsg = res3507for10188.WarnMsg // infocode, _ := strconv.ParseInt(res3507for10188.Infcode, 10, 64) // res3.Infcode = infocode // // } else { // // if err := json.Unmarshal(userJSONBytes3, &res3); err != nil { // utils.ErrorLog("解析失败:%v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // // } // // if res3.Infcode == 0 { // item.IsChange = 1 // item.BgBchno = bg_number // service.SaveDF2(item) // return // } else { // err = append(err, item.HisDoctorAdviceInfo.AdviceName+",销售变更失败:"+res3.ErrMsg) // } // } //} } else { err = append(err, item.HisDoctorAdviceInfo.AdviceName+",销售失败:"+res.ErrMsg) } } } } else if item.ConsumableType == 7 { var res3507for10188 FJ3507ResultFor10188 prescription := service.GetHisPrescriptionByID(item.HisDoctorAdviceInfo.PrescriptionId) order := service.GetHisOrderByNumber(prescription.BatchNumber) if order.OrderStatus == 2 || order.OrderStatus == 1 { //已经结算 //判断是否已经销售 if item.IsSale == 2 { //是否已经销售,1是 0否 //是否已经变更 1是 0否 if item.IsChange == 0 { //没变更,进行变更操作 bg_number := strconv.FormatInt(time.Now().Unix(), 10) + "-" + strconv.FormatInt(item.ID, 10) + "-" + "3502" result, result2 := ChangeStock(item.Count, item, miConfig, "101", roles, bg_number) saveLog(result, result2, "3502", "自动出库,未销售,未变更3502") var respJSON3 map[string]interface{} if err := json.Unmarshal([]byte(string(result)), &respJSON3); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } userJSONBytes3, _ := json.Marshal(respJSON3) if c.GetAdminUserInfo().CurrentOrgId == 10188 || c.GetAdminUserInfo().CurrentOrgId == 10217 { if err := json.Unmarshal(userJSONBytes3, &res3507for10188); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } //if res3507for10188.Infcode res3.InfRefmsgid = res3507for10188.InfRefmsgid //res.Output = resSix10265.Output res3.ErrMsg = res3507for10188.ErrMsg res3.Cainfo = res3507for10188.Cainfo res3.WarnMsg = res3507for10188.WarnMsg infocode, _ := strconv.ParseInt(res3507for10188.Infcode, 10, 64) res3.Infcode = infocode } else { if err := json.Unmarshal(userJSONBytes3, &res3); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } if res3.Infcode == 0 { item.IsChange = 1 item.BgBchno = bg_number service.SaveDF2(item) } else { err = append(err, item.HisDoctorAdviceInfo.AdviceName+",销售变更失败:"+res3.ErrMsg) } } } else { //没销售, //进行商品销售退货接口 number := strconv.FormatInt(time.Now().Unix(), 10) + "-" + strconv.FormatInt(item.ID, 10) + "-" + "3506" result111, result222 := CancleSaleStock(c.GetAdminUserInfo().CurrentOrgId, prescription, item, miConfig, "", roles, number) saveLog(result111, result222, "3506", "销售退货") var res7 FJ3507Result //进行商品销售接口 //result3, result4 := SaleStock(c.GetAdminUserInfo().CurrentOrgId, prescription, item, miConfig, "", roles,number) //saveLog(result3, result4, "3506", "自动退库,未销售退货进行销售退货行为,3505") var respJSON3 map[string]interface{} if err := json.Unmarshal([]byte(string(result111)), &respJSON3); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } userJSONBytes3, _ := json.Marshal(respJSON3) if c.GetAdminUserInfo().CurrentOrgId == 10188 || c.GetAdminUserInfo().CurrentOrgId == 10217 { if err := json.Unmarshal(userJSONBytes3, &res3507for10188); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } //if res3507for10188.Infcode res7.InfRefmsgid = res3507for10188.InfRefmsgid //res.Output = resSix10265.Output res7.ErrMsg = res3507for10188.ErrMsg res7.Cainfo = res3507for10188.Cainfo res7.WarnMsg = res3507for10188.WarnMsg infocode, _ := strconv.ParseInt(res3507for10188.Infcode, 10, 64) res7.Infcode = infocode } else { if err := json.Unmarshal(userJSONBytes3, &res7); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } if res7.Infcode == 0 { item.IsSale = 2 item.SaleDate = item.SaleDate item.Bchno = number service.SaveDF(item) if item.IsChange == 0 { //没变更,进行变更操作 bg_number := strconv.FormatInt(time.Now().Unix(), 10) + "-" + strconv.FormatInt(item.ID, 10) + "-" + "3502" result, result2 := ChangeStock(item.Count, item, miConfig, "101", roles, bg_number) saveLog(result, result2, "3502", "自动出库,未销售,未变更3502") var respJSON3 map[string]interface{} if err := json.Unmarshal([]byte(string(result)), &respJSON3); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } userJSONBytes3, _ := json.Marshal(respJSON3) //if err := json.Unmarshal(userJSONBytes3, &res3); err != nil { // utils.ErrorLog("解析失败:%v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return //} if c.GetAdminUserInfo().CurrentOrgId == 10188 || c.GetAdminUserInfo().CurrentOrgId == 10217 { if err := json.Unmarshal(userJSONBytes3, &res3507for10188); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } //if res3507for10188.Infcode res3.InfRefmsgid = res3507for10188.InfRefmsgid //res.Output = resSix10265.Output res3.ErrMsg = res3507for10188.ErrMsg res3.Cainfo = res3507for10188.Cainfo res3.WarnMsg = res3507for10188.WarnMsg infocode, _ := strconv.ParseInt(res3507for10188.Infcode, 10, 64) res3.Infcode = infocode } else { if err := json.Unmarshal(userJSONBytes3, &res3); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } if res3.Infcode == 0 { item.IsChange = 1 item.BgBchno = bg_number service.SaveDF2(item) } else { err = append(err, item.HisDoctorAdviceInfo.AdviceName+",销售变更失败:"+res3.ErrMsg) } } } else { err = append(err, item.HisDoctorAdviceInfo.AdviceName+",销售变更失败:"+res7.ErrMsg) } } } else { //还没结算 if item.IsChange == 0 { //没变更,进行变更操作 bg_number := strconv.FormatInt(time.Now().Unix(), 10) + "-" + strconv.FormatInt(item.ID, 10) + "-" + "3502" result, result2 := ChangeStock(item.Count, item, miConfig, "101", roles, bg_number) saveLog(result, result2, "3502", "自动出库,未销售,未变更3502") var respJSON3 map[string]interface{} if err := json.Unmarshal([]byte(string(result)), &respJSON3); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } userJSONBytes3, _ := json.Marshal(respJSON3) //if err := json.Unmarshal(userJSONBytes3, &res3); err != nil { // utils.ErrorLog("解析失败:%v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return //} if c.GetAdminUserInfo().CurrentOrgId == 10188 || c.GetAdminUserInfo().CurrentOrgId == 10217 { if err := json.Unmarshal(userJSONBytes3, &res3507for10188); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } //if res3507for10188.Infcode res3.InfRefmsgid = res3507for10188.InfRefmsgid //res.Output = resSix10265.Output res3.ErrMsg = res3507for10188.ErrMsg res3.Cainfo = res3507for10188.Cainfo res3.WarnMsg = res3507for10188.WarnMsg infocode, _ := strconv.ParseInt(res3507for10188.Infcode, 10, 64) res3.Infcode = infocode } else { if err := json.Unmarshal(userJSONBytes3, &res3); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } if res3.Infcode == 0 { item.IsChange = 1 item.BgBchno = bg_number service.SaveDF2(item) } else { err = append(err, item.HisDoctorAdviceInfo.AdviceName+",销售变更失败:"+res3.ErrMsg) } } } } } if len(err) == 0 { c.ServeSuccessJSON(map[string]interface{}{ "msg": "销售变更成功", }) } else { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": err, }) } } func ChangeDrugTenone() { //ids := c.GetString("ids") //id_arr := strings.Split(ids, ",") now := time.Now() timestamp := time.Date(now.Year(), now.Month(), now.Day(), 0, 0, 0, 0, time.Local).Unix() //timestamp := int64(1729612800) flows, _ := service.GetNewDrugFlowInforTen(timestamp, 10188) admin_user_id := int64(2463) roles, _ := service.GetAdminUserInfoByID(10188, admin_user_id) miConfig, _ := service.FindMedicalInsuranceInfo(10188) var err []string for _, item := range flows { var res3 ResultSix if item.ConsumableType == 3 { //3为自动出库 7为自动退库 if item.HisDoctorAdviceInfo.PrescriptionId == 0 { continue } if item.HisDoctorAdviceInfo.PrescriptionId == 0 { continue } prescription := service.GetHisPrescriptionByID(item.HisDoctorAdviceInfo.PrescriptionId) if prescription.OrderStatus == 2 { //已经结算 //判断是否已经销售 if item.IsSale == 1 { //是否已经销售,1是 0否 //是否已经变更 1是 0否 if item.IsChange == 0 { //没变更,进行变更操作 bg_number := strconv.FormatInt(time.Now().Unix(), 10) + "-" + strconv.FormatInt(item.ID, 10) + "-" + "3502" result, result2 := ChangeStock(item.Count, item, miConfig, "102", roles, bg_number) saveLog(result, result2, "3502", "自动出库,已经销售,未变更3502") var respJSON3 map[string]interface{} if err := json.Unmarshal([]byte(string(result)), &respJSON3); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) //c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } userJSONBytes3, _ := json.Marshal(respJSON3) if err := json.Unmarshal(userJSONBytes3, &res3); err != nil { utils.ErrorLog("解析失败:%v", err) //c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if res3.Infcode == 0 { item.IsChange = 1 item.BgBchno = bg_number service.SaveDF2(item) } else { err = append(err, item.HisDoctorAdviceInfo.AdviceName+",销售变更失败:"+res3.ErrMsg) } } } else { //没销售, var res FJ3507Result var res3507for10188 FJ3507ResultFor10188 number := strconv.FormatInt(time.Now().Unix(), 10) + "-" + strconv.FormatInt(item.ID, 10) + "-" + "3505" //进行商品销售接口 result3, result4 := SaleStock(10188, prescription, item, miConfig, "", roles, number) saveLog(result3, result4, "3505", "自动出库,未销售进行销售行为,3505") var respJSON3 map[string]interface{} if err := json.Unmarshal([]byte(string(result3)), &respJSON3); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) //c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } userJSONBytes3, _ := json.Marshal(respJSON3) { if err := json.Unmarshal(userJSONBytes3, &res3507for10188); err != nil { utils.ErrorLog("解析失败:%v", err) return } //if res3507for10188.Infcode res.InfRefmsgid = res3507for10188.InfRefmsgid //res.Output = resSix10265.Output res.ErrMsg = res3507for10188.ErrMsg res.Cainfo = res3507for10188.Cainfo res.WarnMsg = res3507for10188.WarnMsg infocode, _ := strconv.ParseInt(res3507for10188.Infcode, 10, 64) res.Infcode = infocode } if res.Infcode == 0 { item.IsSale = 1 item.Bchno = number item.SaleDate = time.Now().Format("2006-01-02") err5 := service.SaveDF(item) if err5 == nil { if item.IsChange == 1 { //没变更,进行变更操作 bg_number := strconv.FormatInt(time.Now().Unix(), 10) + "-" + strconv.FormatInt(item.ID, 10) + "-" + "3502" result, result2 := ChangeStock(item.Count, item, miConfig, "102", roles, bg_number) saveLog(result, result2, "3502", "自动出库,没销售,未变更3502") var respJSON3 map[string]interface{} if err := json.Unmarshal([]byte(string(result)), &respJSON3); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) return } { if err := json.Unmarshal(userJSONBytes3, &res3507for10188); err != nil { utils.ErrorLog("解析失败:%v", err) return } //if res3507for10188.Infcode res3.InfRefmsgid = res3507for10188.InfRefmsgid //res.Output = resSix10265.Output res3.ErrMsg = res3507for10188.ErrMsg res3.Cainfo = res3507for10188.Cainfo res3.WarnMsg = res3507for10188.WarnMsg infocode, _ := strconv.ParseInt(res3507for10188.Infcode, 10, 64) res3.Infcode = infocode } if res3.Infcode == 0 { item.IsChange = 1 item.BgBchno = bg_number service.SaveDF2(item) } else { err = append(err, item.HisDoctorAdviceInfo.AdviceName+",销售变更失败:"+res3.ErrMsg) } } } } else { err = append(err, item.HisDoctorAdviceInfo.AdviceName+",销售失败:"+res.ErrMsg) } } } } } } func ChangeStock(count int64, drug *models.DrugFlow, miConfig models.MedicalInsuranceOrgConfig, chgType string, role models.UserAdminRole, number string) (string, string) { var struct3502 models.Struct3502 struct3502.MedListCodg = drug.HisDoctorAdviceInfo.BaseDrugLib.MedicalInsuranceNumber struct3502.FixmedinsHilistId = drug.HisDoctorAdviceInfo.BaseDrugLib.MedicalInsuranceNumber struct3502.FixmedinsHilistName = drug.HisDoctorAdviceInfo.BaseDrugLib.DrugName struct3502.FixmedinsCode = miConfig.Code struct3502.Code = miConfig.Code struct3502.DrugTracCodg = drug.HisDoctorAdviceInfo.DrugCode struct3502.Opter = role.UserName struct3502.RxFlag = "1" struct3502.InvChgTime = time.Now().Format("2006-01-02") struct3502.OrgName = miConfig.OrgName struct3502.AccessKey = miConfig.AccessKey struct3502.RequestUrl = miConfig.Url struct3502.SecretKey = miConfig.SecretKey struct3502.MdtrtareaAdmvs = miConfig.MdtrtareaAdmvs struct3502.InsuplcAdmdvs = miConfig.InsuplcAdmdvs struct3502.Url = miConfig.Url struct3502.AppId = miConfig.Cainfo struct3502.AppSecret = miConfig.AppSecret struct3502.Enckey = miConfig.EncKey struct3502.SignKey = miConfig.SignKey struct3502.SecretKey = miConfig.SecretKey struct3502.InvChgType = chgType struct3502.FixmedinsBchno = number struct3502.Cnt = strconv.FormatInt(count, 10) struct3502.Pric = fmt.Sprintf("%.2f", drug.Price) //result1, result2, _ := service.FJyb3502(struct3502) if miConfig.MdtrtareaAdmvs == "350500" { result1, result2, _ := service.FJyb3502(struct3502) //saveLog(result1, result2, "3502", "3502") return result1, result2 } else if miConfig.MdtrtareaAdmvs == "440100" { result1, result2 := service.Gzyb3502(struct3502, struct3502.SecretKey) return result1, result2 } else if strings.HasPrefix(miConfig.MdtrtareaAdmvs[0:3], "440") { result1, result2 := service.Gdyb3502(struct3502, struct3502.SecretKey) return result1, result2 } else { data := make(map[string]interface{}) data["struct_3502s"] = struct3502 client := &http.Client{} bytesData, _ := json.Marshal(data) var req *http.Request if miConfig.MdtrtareaAdmvs == "320921" { req, _ = http.NewRequest("POST", "http://192.168.2.3:9532/"+"jsyb/3502", bytes.NewReader(bytesData)) } else { req, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/3502", bytes.NewReader(bytesData)) } resp, _ := client.Do(req) defer resp.Body.Close() body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) } //var resSix10265 ResultSix10265 //1101结果 respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) result, _ := json.Marshal(respJSON) return string(result), "" } } func SaleStock(org_id int64, pre models.HisPrescription, drug *models.DrugFlow, miConfig models.MedicalInsuranceOrgConfig, chgType string, role models.UserAdminRole, number string) (string, string) { var struct3505 models.Struct3505 struct3505.MedListCodg = drug.HisDoctorAdviceInfo.BaseDrugLib.MedicalInsuranceNumber struct3505.FixmedinsHilistId = drug.HisDoctorAdviceInfo.BaseDrugLib.MedicalInsuranceNumber struct3505.FixmedinsHilistName = drug.HisDoctorAdviceInfo.BaseDrugLib.DrugName struct3505.FixmedinsBchno = number struct3505.Opter = role.UserName struct3505.Bchno = "---" struct3505.FixmedinsCode = miConfig.Code struct3505.Code = miConfig.Code struct3505.FinlTrnsPric = drug.HisDoctorAdviceInfo.Price roles, _ := service.GetAdminUserInfoByID(org_id, pre.Creator) struct3505.PrscDrName = roles.UserName if org_id == 10191 { struct3505.PharName = "刘水山" struct3505.PharPracCertNo = "2015026350260000002611351127" } if org_id == 10188 { struct3505.PharName = "李汉清" struct3505.PharPracCertNo = "30220200932022010034" } if org_id == 10217 { struct3505.PharName = "张敏" struct3505.PharPracCertNo = "30220230432090100108" } if org_id == 10318 { struct3505.PharName = "邹刘阳" struct3505.PharPracCertNo = "210441200001378" } if org_id == 10402 { struct3505.PharName = "刘韶健" struct3505.PharPracCertNo = "2015026440262015440501001198" } if org_id == 9919 { struct3505.PharName = "周君权" struct3505.PharPracCertNo = "089644396094401375" } if org_id == 10644 { struct3505.PharName = "陈金娣" struct3505.PharPracCertNo = "20181441500320100066" } if org_id == 10567 { struct3505.PharName = "范小兰" struct3505.PharPracCertNo = "0200102079485" } if org_id == 10721 { struct3505.PharName = "孙莉侠" struct3505.PharPracCertNo = "060399" } if org_id == 10726 { struct3505.PharName = "彭建福" struct3505.PharPracCertNo = "D445281006261" } if org_id == 10265 { struct3505.PharName = "李彩星" struct3505.PharPracCertNo = "20171110600110100019" } if org_id == 10028 { struct3505.PharName = "曾细平" struct3505.PharPracCertNo = "D440307022134" } if org_id == 10138 { struct3505.PharName = "彭斯遥" struct3505.PharPracCertNo = "30220200943042010052" } if org_id == 10278 { struct3505.PharName = "彭斯遥" struct3505.PharPracCertNo = "30220200943042010052" } if org_id == 10610 { struct3505.PharName = "彭斯遥" struct3505.PharPracCertNo = "30220200943042010052" } if org_id == 10537 { struct3505.PharName = "彭斯遥" struct3505.PharPracCertNo = "30220200943042010052" } if org_id == 9504 { struct3505.PharName = "资美红" struct3505.PharPracCertNo = "D440904006635" } if org_id == 10480 { struct3505.PharName = "陈思" struct3505.PharPracCertNo = "30220240434110010470" } order := service.GetHisOrderByNumber(pre.BatchNumber) struct3505.SetlId = order.SetlId struct3505.MdtrtSn = order.MdtrtId struct3505.ManuLotnum = drug.BatchNumber struct3505.ManuDate = time.Unix(drug.ProductDate, 0).Format("2006-01-02") struct3505.ExpyEnd = time.Unix(drug.ExpireDate, 0).Format("2006-01-02") struct3505.RxFlag = "1" if drug.HisDoctorAdviceInfo.PrescribingNumberUnit != drug.HisDoctorAdviceInfo.BaseDrugLib.MinUnit { struct3505.TrdnFlag = "0" } else { struct3505.TrdnFlag = "1" } if drug.HisDoctorAdviceInfo.ZeroFlag == 1 { struct3505.TrdnFlag = "1" } if drug.HisDoctorAdviceInfo.ZeroFlag == 2 { struct3505.TrdnFlag = "0" } struct3505.RtalDocno = order.Number struct3505.PsnCertType = "01" struct3505.CertNo = order.Certno struct3505.PsnNo = order.PsnNo struct3505.PsnName = order.PsnName struct3505.Url = miConfig.Url struct3505.AppId = miConfig.Cainfo struct3505.AppSecret = miConfig.AppSecret struct3505.Enckey = miConfig.EncKey struct3505.SignKey = miConfig.SignKey struct3505.SecretKey = miConfig.SecretKey strValue := fmt.Sprintf("%.2f", drug.HisDoctorAdviceInfo.PrescribingNumber) struct3505.SelRetnCnt = strValue struct3505.SelRetnTime = time.Unix(drug.HisDoctorAdviceInfo.CreatedTime, 0).Format("2006-01-02 15:04:05") struct3505.SelRetnOpterName = role.UserName if order.IsMedicineInsurance == 1 { struct3505.MdtrtSetlType = "1" } else { struct3505.MdtrtSetlType = "2" } struct3505.OrgName = miConfig.OrgName struct3505.AccessKey = miConfig.AccessKey struct3505.RequestUrl = miConfig.Url struct3505.SecretKey = miConfig.SecretKey struct3505.MdtrtareaAdmvs = miConfig.MdtrtareaAdmvs struct3505.InsuplcAdmdvs = miConfig.InsuplcAdmdvs struct3505.Cainfo = miConfig.Cainfo struct3505.DrugTracCodg = drug.HisDoctorAdviceInfo.DrugCode if miConfig.MdtrtareaAdmvs == "350500" { result1, result2, _ := service.FJyb3505(struct3505) return result1, result2 } else if miConfig.MdtrtareaAdmvs == "440100" { result1, result2 := service.Gzyb3505(struct3505, struct3505.SecretKey) return result1, result2 } else if strings.HasPrefix(miConfig.MdtrtareaAdmvs[0:3], "440") { result1, result2 := service.Gdyb3505(struct3505, struct3505.SecretKey) return result1, result2 } else if strings.HasPrefix(miConfig.MdtrtareaAdmvs[0:3], "361") { result1, result2 := service.JXyb3505(struct3505, struct3505.SecretKey, struct3505.AccessKey, struct3505.RequestUrl) return result1, result2 } else if miConfig.MdtrtareaAdmvs == "340699" { result1, result2 := service.AHyb3505(struct3505, struct3505.SecretKey, struct3505.RequestUrl) return result1, result2 } else if miConfig.MdtrtareaAdmvs == "150499" { data := make(map[string]interface{}) data["struct_3505s"] = struct3505 client := &http.Client{} bytesData, _ := json.Marshal(data) var req *http.Request req, _ = http.NewRequest("POST", "http://172.16.13.254:9532"+"/nmyb/3505", bytes.NewReader(bytesData)) resp, _ := client.Do(req) defer resp.Body.Close() body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) result, _ := json.Marshal(respJSON) return string(result), "" } else if miConfig.MdtrtareaAdmvs == "341203" { data := make(map[string]interface{}) data["struct_3505s"] = struct3505 client := &http.Client{} bytesData, _ := json.Marshal(data) var req *http.Request req, _ = http.NewRequest("POST", miConfig.SecretKey+"ahyb/3505", bytes.NewReader(bytesData)) resp, _ := client.Do(req) defer resp.Body.Close() body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) } status := respJSON["data"].(map[string]interface{})["status"].(string) if status == "0" { err_msg := respJSON["data"].(map[string]interface{})["msg"].(string) utils.ErrorLog("接口返回数据读取失败: %v", err_msg) } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) result, _ := json.Marshal(respJSON) return string(result), "" } else { data := make(map[string]interface{}) data["struct_3505s"] = struct3505 client := &http.Client{} bytesData, _ := json.Marshal(data) var req *http.Request if miConfig.MdtrtareaAdmvs == "320921" { req, _ = http.NewRequest("POST", "http://192.168.2.3:9532/"+"jsyb/3505", bytes.NewReader(bytesData)) } else { req, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/3505", bytes.NewReader(bytesData)) } resp, _ := client.Do(req) defer resp.Body.Close() body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) } //var resSix10265 ResultSix10265 //1101结果 respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) result, _ := json.Marshal(respJSON) return string(result), "" } } func SaleStock10217(org_id int64, pre models.HisPrescription, drug *models.DrugFlow, miConfig models.MedicalInsuranceOrgConfig, chgType string, role models.UserAdminRole, number string) (string, string) { var struct3505 models.Struct3505 struct3505.MedListCodg = drug.HisDoctorAdviceInfo.BaseDrugLib.MedicalInsuranceNumber struct3505.FixmedinsHilistId = drug.HisDoctorAdviceInfo.BaseDrugLib.MedicalInsuranceNumber struct3505.FixmedinsHilistName = drug.HisDoctorAdviceInfo.BaseDrugLib.DrugName struct3505.FixmedinsBchno = number struct3505.Opter = role.UserName struct3505.FixmedinsCode = miConfig.Code struct3505.Code = miConfig.Code roles, _ := service.GetAdminUserInfoByID(org_id, pre.Creator) struct3505.PrscDrName = roles.UserName if org_id == 10191 { struct3505.PharName = "刘水山" struct3505.PharPracCertNo = "2015026350260000002611351127" } if org_id == 10188 { struct3505.PharName = "李汉清" struct3505.PharPracCertNo = "30220200932022010034" } if org_id == 10217 { struct3505.PharName = "张敏" struct3505.PharPracCertNo = "30220230432090100108" } if org_id == 10318 { struct3505.PharName = "邹刘阳" struct3505.PharPracCertNo = "210441200001378" } if org_id == 10402 { struct3505.PharName = "刘韶健" struct3505.PharPracCertNo = "2015026440262015440501001198" } if org_id == 9919 { struct3505.PharName = "周君权" struct3505.PharPracCertNo = "089644396094401375" } if org_id == 10644 { struct3505.PharName = "陈金娣" struct3505.PharPracCertNo = "20181441500320100066" } if org_id == 10567 { struct3505.PharName = "范小兰" struct3505.PharPracCertNo = "0200102079485" } if org_id == 10721 { struct3505.PharName = "孙莉侠" struct3505.PharPracCertNo = "060399" } if org_id == 10726 { struct3505.PharName = "彭建福" struct3505.PharPracCertNo = "D445281006261" } order := service.GetHisOrderByNumber(pre.BatchNumber) struct3505.SetlId = order.SetlId struct3505.MdtrtSn = order.MdtrtId struct3505.ManuLotnum = drug.Number struct3505.ManuDate = time.Unix(drug.ProductDate, 0).Format("2006-01-02") struct3505.ExpyEnd = time.Unix(drug.ExpireDate, 0).Format("2006-01-02") struct3505.RxFlag = "1" struct3505.TrdnFlag = "0" struct3505.RtalDocno = order.Number struct3505.PsnCertType = "01" struct3505.CertNo = order.Certno struct3505.PsnNo = order.PsnNo struct3505.PsnName = order.PsnName struct3505.Url = miConfig.Url struct3505.AppId = miConfig.Cainfo struct3505.AppSecret = miConfig.AppSecret struct3505.Enckey = miConfig.EncKey struct3505.SignKey = miConfig.SignKey struct3505.SecretKey = miConfig.SecretKey strValue := fmt.Sprintf("%.2f", drug.HisDoctorAdviceInfo.PrescribingNumber) struct3505.SelRetnCnt = strValue struct3505.SelRetnTime = time.Unix(drug.HisDoctorAdviceInfo.CreatedTime, 0).Format("2006-01-02 15:04:05") struct3505.SelRetnOpterName = role.UserName if order.IsMedicineInsurance == 1 { struct3505.MdtrtSetlType = "1" } else { struct3505.MdtrtSetlType = "2" } struct3505.OrgName = miConfig.OrgName struct3505.AccessKey = miConfig.AccessKey struct3505.RequestUrl = miConfig.Url struct3505.SecretKey = miConfig.SecretKey struct3505.MdtrtareaAdmvs = miConfig.MdtrtareaAdmvs struct3505.InsuplcAdmdvs = miConfig.InsuplcAdmdvs struct3505.Cainfo = miConfig.Cainfo struct3505.DrugTracCodg = drug.DrugCode if miConfig.MdtrtareaAdmvs == "350500" { result1, result2, _ := service.FJyb3505(struct3505) return result1, result2 } else if miConfig.MdtrtareaAdmvs == "440100" { result1, result2 := service.Gzyb3505(struct3505, struct3505.SecretKey) return result1, result2 } else if strings.HasPrefix(miConfig.MdtrtareaAdmvs[0:3], "440") { result1, result2 := service.Gdyb3505(struct3505, struct3505.SecretKey) return result1, result2 } else if strings.HasPrefix(miConfig.MdtrtareaAdmvs[0:3], "361") { result1, result2 := service.JXyb3505(struct3505, struct3505.SecretKey, struct3505.AccessKey, struct3505.RequestUrl) return result1, result2 } else if miConfig.MdtrtareaAdmvs == "340699" { result1, result2 := service.AHyb3505(struct3505, struct3505.SecretKey, struct3505.RequestUrl) return result1, result2 } else { data := make(map[string]interface{}) data["struct_3505s"] = struct3505 client := &http.Client{} bytesData, _ := json.Marshal(data) var req *http.Request if miConfig.MdtrtareaAdmvs == "320921" { req, _ = http.NewRequest("POST", "http://192.168.2.3:9532/"+"jsyb/3505", bytes.NewReader(bytesData)) } else { req, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/3505", bytes.NewReader(bytesData)) } resp, _ := client.Do(req) defer resp.Body.Close() body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) } //var resSix10265 ResultSix10265 //1101结果 respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) result, _ := json.Marshal(respJSON) return string(result), "" } } func CancleSaleStock(org_id int64, pre models.HisPrescription, drug *models.DrugFlow, miConfig models.MedicalInsuranceOrgConfig, chgType string, role models.UserAdminRole, number string) (string, string) { var struct3506 models.Struct3506 struct3506.MedListCodg = drug.HisDoctorAdviceInfo.BaseDrugLib.MedicalInsuranceNumber struct3506.FixmedinsHilistId = drug.HisDoctorAdviceInfo.BaseDrugLib.MedicalInsuranceNumber struct3506.FixmedinsHilistName = drug.HisDoctorAdviceInfo.BaseDrugLib.DrugName struct3506.FixmedinsCode = miConfig.Code struct3506.Code = miConfig.Code struct3506.FixmedinsBchno = number struct3506.Opter = role.UserName order := service.GetHisOrderByNumber(pre.BatchNumber) struct3506.ManuLotnum = drug.NewDrugWarehouseInfo.Number struct3506.ManuDate = time.Unix(drug.ProductDate, 0).Format("2006-01-02") struct3506.MdtrtSn = order.MdtrtId struct3506.ExpyEnd = "" struct3506.RxFlag = "0" struct3506.TrdnFlag = "1" strValue := fmt.Sprintf("%.2f", drug.HisDoctorAdviceInfo.PrescribingNumber) struct3506.SelRetnCnt = strValue struct3506.SelRetnTime = time.Unix(drug.HisDoctorAdviceInfo.CreatedTime, 0).Format("2006-01-02 15:04:05") //roles_two, _ := service.GetAdminUserInfoByID(org_id, order.Creator) struct3506.SelRetnOpterName = role.UserName struct3506.OrgName = miConfig.OrgName struct3506.AccessKey = miConfig.AccessKey struct3506.RequestUrl = miConfig.Url struct3506.SecretKey = miConfig.SecretKey struct3506.MdtrtareaAdmvs = miConfig.MdtrtareaAdmvs struct3506.InsuplcAdmdvs = miConfig.InsuplcAdmdvs struct3506.Url = miConfig.Url struct3506.AppId = miConfig.Cainfo struct3506.AppSecret = miConfig.AppSecret struct3506.Enckey = miConfig.EncKey struct3506.SignKey = miConfig.SignKey struct3506.SecretKey = miConfig.SecretKey struct3506.DrugTracCodg = drug.DrugCode if miConfig.MdtrtareaAdmvs == "350500" { result1, result2, _ := service.FJyb3506(struct3506) return result1, result2 } else { data := make(map[string]interface{}) data["struct_3506s"] = struct3506 client := &http.Client{} bytesData, _ := json.Marshal(data) var req *http.Request if miConfig.MdtrtareaAdmvs == "320921" { req, _ = http.NewRequest("POST", "http://192.168.2.3:9532/"+"jsyb/3506", bytes.NewReader(bytesData)) } else { req, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/3506", bytes.NewReader(bytesData)) } resp, _ := client.Do(req) defer resp.Body.Close() body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) } //var resSix10265 ResultSix10265 //1101结果 respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) result, _ := json.Marshal(respJSON) return string(result), "" } } func (c *HisApiController) Get1318() { adminUser := c.GetAdminUserInfo() admin_user_id, _ := c.GetInt64("admin_user_id") code := c.GetString("code") code = "" curRoles, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, admin_user_id) miConfig, _ := service.FindMedicalInsuranceInfo(adminUser.CurrentOrgId) api := "" if miConfig.MdtrtareaAdmvs == "320921" { api = "http://192.168.2.3:9532/" + "jsyb/1318?" + "org_name=" + miConfig.OrgName + "&doctor=" + curRoles.UserName + "&doctor_name=" + curRoles.UserName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + miConfig.MdtrtareaAdmvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&url=" + miConfig.Url + "&ak=" + miConfig.AccessKey + "&cainfo=" + miConfig.Cainfo + "&h_code=" + code } else { api = "http://192.168.5.251:9532/" + "jsyb/1318?" + "org_name=" + miConfig.OrgName + "&doctor=" + curRoles.UserName + "&doctor_name=" + curRoles.UserName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + miConfig.MdtrtareaAdmvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&url=" + miConfig.Url + "&ak=" + miConfig.AccessKey + "&cainfo=" + miConfig.Cainfo + "&h_code=" + code } resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } //var res Result2406 /*respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) result, _ := json.Marshal(respJSON) if err := json.Unmarshal([]byte(result), &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if res.Infcode == "0" { c.ServeSuccessJSON(map[string]interface{}{ "result": "", }) } else { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res.ErrMsg, }) */return //} } func (c *HisApiController) Get2503() { adminUser := c.GetAdminUserInfo() admin_user_id, _ := c.GetInt64("admin_user_id") roles, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, admin_user_id) miConfig, _ := service.FindMedicalInsuranceInfo(adminUser.CurrentOrgId) service.Gxyb2503(miConfig.OrgName, roles.UserName, miConfig.Code, miConfig.MdtrtareaAdmvs, miConfig.InsuplcAdmdvs, "", admin_user_id) } func (c *HisApiController) Get2406() { id, _ := c.GetInt64("id") record_time := c.GetString("record_time") his_patient_id, _ := c.GetInt64("his_patient_id") admin_user_id, _ := c.GetInt64("admin_user_id") diagnosis_id := c.GetString("diagnosis") timeLayout := "2006-01-02" loc, _ := time.LoadLocation("Local") theTime, err := time.ParseInLocation(timeLayout+" 15:04:05", record_time+" 00:00:00", loc) if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } recordDateTime := theTime.Unix() adminUser := c.GetAdminUserInfo() diagnosis_ids := strings.Split(diagnosis_id, ",") var config []*models.HisXtDiagnoseConfig for _, item := range diagnosis_ids { id, _ := strconv.ParseInt(item, 10, 64) diagnosisConfig, _ := service.FindDiagnoseById(id) config = append(config, &diagnosisConfig) } roles, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, admin_user_id) fmt.Println(his_patient_id) his, _ := service.GetNewHisPatientInfo(adminUser.CurrentOrgId, his_patient_id, recordDateTime) //timestamp := time.Now().Unix() miConfig, _ := service.FindMedicalInsuranceInfo(adminUser.CurrentOrgId) var patientPrescription models.HisPrescriptionInfo patientPrescription, _ = service.FindHisPatientPrescriptionInfo(adminUser.CurrentOrgId, his_patient_id, recordDateTime) if patientPrescription.ID == 0 { patientPrescription, _ = service.FindLastPatientPrescriptionInfo(adminUser.CurrentOrgId, id, recordDateTime) } var res2 Result2406 if miConfig.MdtrtareaAdmvs == "341203" { data := make(map[string]interface{}) client := &http.Client{} data["psn_no"] = his.PsnNo data["mdtrt_id"] = his.Number data["operator"] = roles.UserName data["cert_no"] = his.IdCardNo data["org_name"] = miConfig.OrgName data["psn_name"] = his.Name data["ipt_otp_no"] = his.IptOtpNo data["ipt_psn_sp_flag_type"] = "0901" data["ipt_psn_sp_flag"] = "1" data["fixmedins_code"] = miConfig.Code data["insuplc_admdvs"] = his.InsuplcAdmdvs data["mdtrtarea_admvs"] = miConfig.MdtrtareaAdmvs data["url"] = miConfig.Url utils.ErrorLog("接口返回数据解析JSON失败: %v", data) bytesData, _ := json.Marshal(data) var req *http.Request utils.ErrorLog("接口返回数据解析JSON失败: %v", miConfig.SecretKey) req, _ = http.NewRequest("POST", miConfig.SecretKey+"ahyb/2406", 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 } status := respJSON["data"].(map[string]interface{})["status"].(string) if status == "0" { err_msg := respJSON["data"].(map[string]interface{})["msg"].(string) c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": err_msg, }) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) userJSONBytes, _ := json.Marshal(respJSON) fmt.Println("log") fmt.Println(string(userJSONBytes)) if err := json.Unmarshal(userJSONBytes, &res2); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "340699" { data := make(map[string]interface{}) client := &http.Client{} data["psn_no"] = his.PsnNo data["mdtrt_id"] = his.Number data["operator"] = roles.UserName data["cert_no"] = his.IdCardNo data["org_name"] = miConfig.OrgName data["psn_name"] = his.Name data["ipt_otp_no"] = his.IptOtpNo data["ipt_psn_sp_flag_type"] = "0901" data["ipt_psn_sp_flag"] = "1" data["fixmedins_code"] = miConfig.Code data["insuplc_admdvs"] = his.InsuplcAdmdvs data["mdtrtarea_admvs"] = miConfig.MdtrtareaAdmvs data["url"] = miConfig.Url utils.ErrorLog("接口返回数据解析JSON失败: %v", data) bytesData, _ := json.Marshal(data) var req *http.Request utils.ErrorLog("接口返回数据解析JSON失败: %v", miConfig.SecretKey) req, _ = http.NewRequest("POST", miConfig.SecretKey+"ahyb/2406", 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 } status := respJSON["data"].(map[string]interface{})["status"].(string) if status == "0" { err_msg := respJSON["data"].(map[string]interface{})["msg"].(string) c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": err_msg, }) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) userJSONBytes, _ := json.Marshal(respJSON) fmt.Println("log") fmt.Println(string(userJSONBytes)) if err := json.Unmarshal(userJSONBytes, &res2); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } if res2.Infcode != 0 { adminUser := c.GetAdminUserInfo() errlog := &models.HisOrderError{ UserOrgId: adminUser.CurrentOrgId, Ctime: time.Now().Unix(), Mtime: time.Now().Unix(), ErrMsg: res2.ErrMsg, Status: 1, PatientId: id, RecordTime: recordDateTime, Stage: 3, } service.CreateErrMsgLog(errlog) c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res2.ErrMsg, }) return } else { c.ServeSuccessJSON(map[string]interface{}{ "msg": "上传成功", }) return } } func (c *HisApiController) Get4105() { } func (c *HisApiController) Post5302() { patient_id, _ := c.GetInt64("id") admin_user_id, _ := c.GetInt64("admin_user_id") p, _ := service.GetHisPatientById(patient_id) adminUser := c.GetAdminUserInfo() miConfig, _ := service.FindMedicalInsuranceInfo(adminUser.CurrentOrgId) role, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, admin_user_id) service.Gxyb5302(p.PsnNo, miConfig.OrgName, role.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, admin_user_id) } func (c *HisApiController) Get4104() { } type Output struct { CertNo string `json:"certno"` PsnName string `json:"psn_name"` CardNo string `json:"card_no"` InsuplcAdmdvs string `json:"insuplc_admdvs"` CardSN string `json:"card_sn"` PsnCertType string `json:"psn_cert_type"` MdtrtCertNo string `json:"mdtrt_cert_no"` MdtrtCertType string `json:"mdtrt_cert_type"` QRCode string `json:"qrCode"` EcToken string `json:"ecToken"` } type AHResponse struct { Body AHBody `json:"body"` Code int `json:"code"` CSBCode int `json:"csbCode"` Message string `json:"message"` RequestID string `json:"requestId"` State struct{} `json:"state"` } type AHBody struct { ErrMsg string `json:"err_msg"` InfRefMsgID string `json:"inf_refmsgid"` InfCode int `json:"infcode"` Output struct { Result []struct { BasMednFlag string `json:"bas_medn_flag"` ChldMedcFlag string `json:"chld_medc_flag"` ChrgitmLv string `json:"chrgitm_lv"` Cnt float64 `json:"cnt"` DetItemFeeSumamt float64 `json:"det_item_fee_sumamt"` DrtReimFlag string `json:"drt_reim_flag"` FeedetlSn string `json:"feedetl_sn"` FulamtOwnpayAmt float64 `json:"fulamt_ownpay_amt"` HiNegoDrugFlag string `json:"hi_nego_drug_flag"` InscpScpAmt float64 `json:"inscp_scp_amt"` ListSpItemFlag string `json:"list_sp_item_flag"` LmtUsedFlag string `json:"lmt_used_flag"` MedChrgitmType string `json:"med_chrgitm_type"` Memo string `json:"memo"` OverlmtAmt float64 `json:"overlmt_amt"` PreselfpayAmt float64 `json:"preselfpay_amt"` Pric float64 `json:"pric"` PricUplmtAmt float64 `json:"pric_uplmt_amt"` SelfpayProp float64 `json:"selfpay_prop"` } `json:"result"` } `json:"output"` } type Response struct { Output Output `json:"output"` Infcode int `json:"infcode"` InfRefMsgID string `json:"inf_refmsgid"` RefMsgTime string `json:"refmsg_time"` RespondTime string `json:"respond_time"` ErrMsg string `json:"err_msg"` WarnMsg string `json:"warn_msg"` SignType string `json:"signtype"` CAInfo string `json:"cainfo"` } func (c *HisApiController) Getquerydata() { query_type, _ := c.GetInt64("type") refd_setl_flag := c.GetString("refd_setl_flag") med_type := c.GetString("med_type") //admin_user_id,_ := c.GetInt64("admin_user_id") cert_no := c.GetString("cert_no") psn_no := c.GetString("psn_no") start_time := c.GetString("start_time") end_time := c.GetString("end_time") page, _ := c.GetInt64("page") limit, _ := c.GetInt64("limit") var bp models.BusinessParams5262 bp.RefdSetlFlag = refd_setl_flag bp.MedType = med_type bp.Certno = cert_no bp.Psnno = psn_no bp.QBegntime = start_time bp.QEndtime = end_time if query_type == 1 { //本地 Post5262(c, bp, page, limit) } else { //异地 Post5267(c, bp, page, limit) } } func (c *HisApiController) Drugscheck() { admin_user_id, _ := c.GetInt64("admin_user_id") adminUser := c.GetAdminUserInfo() var queryResult []QueryResult drugs, _ := service.GetBatchDrugListtw(adminUser.CurrentOrgId) for _, item := range drugs { result := QueryResult{ ID: item.ID, Name: item.DrugName, Code: item.MedicalInsuranceNumber, List_type_code: "101", } queryResult = append(queryResult, result) } miConfig, _ := service.FindMedicalInsuranceInfo(adminUser.CurrentOrgId) //config, _ := service.GetMedicalInsuranceConfig(adminUser.CurrentOrgId) role, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, admin_user_id) for _, item := range queryResult { service.Hnyb3302(miConfig.OrgName, role.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.Cainfo, item.Name, item.Code, item.List_type_code, "2022-01-26", "2099-12-31", miConfig.Url, miConfig.AccessKey, miConfig.SecretKey) } } func (c *HisApiController) Goodcheck() { admin_user_id, _ := c.GetInt64("admin_user_id") adminUser := c.GetAdminUserInfo() var queryResult []QueryResult goods, _ := service.GetBatchGoodInformationListtwo(adminUser.CurrentOrgId) for _, item := range goods { result := QueryResult{ ID: item.ID, Name: item.GoodName, Code: item.SocialSecurityDirectoryCode, List_type_code: "301", } queryResult = append(queryResult, result) } miConfig, _ := service.FindMedicalInsuranceInfo(adminUser.CurrentOrgId) //config, _ := service.GetMedicalInsuranceConfig(adminUser.CurrentOrgId) role, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, admin_user_id) for _, item := range queryResult { service.Hnyb3302(miConfig.OrgName, role.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.Cainfo, item.Name, item.Code, item.List_type_code, "2022-01-26", "2099-12-31", miConfig.Url, miConfig.AccessKey, miConfig.SecretKey) //service.Hnyb3302(miConfig.OrgName,role.UserName,miConfig.Code,miConfig.InsuplcAdmdvs,miConfig.MdtrtareaAdmvs,miConfig.Cainfo, item.Name, item.Code, item.List_type_code, "2022-01-26", "2099-12-31", miConfig.Url,miConfig.AccessKey,miConfig.SecretKey) } } func (c *HisApiController) Projectcheck() { admin_user_id, _ := c.GetInt64("admin_user_id") adminUser := c.GetAdminUserInfo() var queryResult []QueryResult projects, _ := service.GetBathchMyPorjecgListtwo(adminUser.CurrentOrgId) for _, item := range projects { result := QueryResult{ ID: item.ID, Name: item.ProjectName, Code: item.MedicalCode, List_type_code: "201", } queryResult = append(queryResult, result) } miConfig, _ := service.FindMedicalInsuranceInfo(adminUser.CurrentOrgId) //config, _ := service.GetMedicalInsuranceConfig(adminUser.CurrentOrgId) role, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, admin_user_id) for _, item := range queryResult { service.Hnyb3302(miConfig.OrgName, role.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.Cainfo, item.Name, item.Code, item.List_type_code, "2022-01-26", "2099-12-31", miConfig.Url, miConfig.AccessKey, miConfig.SecretKey) } } //func (c *HisApiController)CancleDia(){ // // id, _ := c.GetInt64("id") // record_time := c.GetString("record_time") // his_patient_id, _ := c.GetInt64("his_patient_id") // // 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") // begin_time := c.GetString("begin_time") // acct_used_flag_num, _ := c.GetInt64("acct_used_flag") // // // acct_used_flag := strconv.FormatInt(acct_used_flag_num, 10) // // fmt.Println(acct_used_flag) // // // timeLayout := "2006-01-02" // loc, _ := time.LoadLocation("Local") // theTime, err := time.ParseInLocation(timeLayout+" 15:04:05", record_time+" 00:00:00", loc) // if err != nil { // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) // return // } // recordDateTime := theTime.Unix() // adminUser := c.GetAdminUserInfo() // // // // // // roles, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, admin_user_id) // his, _ := service.GetNewHisPatientInfo(adminUser.CurrentOrgId, his_patient_id, recordDateTime) // var patientPrescription models.HisPrescriptionInfo // patientPrescription, _ = service.FindHisPatientPrescriptionInfo(adminUser.CurrentOrgId, his_patient_id, recordDateTime) // if patientPrescription.ID == 0 { // patientPrescription, _ = service.FindLastPatientPrescriptionInfo(adminUser.CurrentOrgId, id, recordDateTime) // } // //if patientPrescription.Do // miConfig, _ := service.FindMedicalInsuranceInfo(adminUser.CurrentOrgId) // department, _ := service.GetDepartMentDetail(patientPrescription.Departments) // // doctor_info, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, patientPrescription.DoctorId) // // diagnosis_ids := strings.Split(diagnosis_id, ",") // // var config []*models.HisXtDiagnoseConfig // for _, item := range diagnosis_ids { // id, _ := strconv.ParseInt(item, 10, 64) // diagnosisConfig, _ := service.FindDiagnoseById(id) // config = append(config, &diagnosisConfig) // } // // sickConfig, _ := service.FindSickById(sick_type) // // // data := make(map[string]interface{}) // client := &http.Client{} // data["psn_no"] = his.PsnNo // data["mdtrt_id"] = his.Number // data["doctor"] = roles.UserName // data["department"] = department.Name // data["org_name"] = miConfig.OrgName // data["med_type"] = strconv.FormatInt(reg_type, 10) // data["doctor_id"] = doctor_info.DoctorNumber // data["new_doctor_name"] = doctor_info.UserName // data["fixmedins_code"] = miConfig.Code // data["insuplc_admdvs"] = his.InsuplcAdmdvs // data["mdtrtarea_admvs"] = miConfig.MdtrtareaAdmvs // data["secret_key"] = miConfig.SecretKey // data["sick_code"] = sickConfig.CountryCode // data["sick_name"] = sickConfig.ClassName // data["url"] = miConfig.Url // data["ak"] = miConfig.AccessKey // data["begin_time"] = begin_time // data["cainfo"] = miConfig.Cainfo // data["is_vaild"] = "0" // // data["dept"] = strconv.FormatInt(department.ID, 10) // data["config"] = config // bytesData, _ := json.Marshal(data) // // var req *http.Request // req, _ = http.NewRequest("POST", "http://172.16.13.254:9532/"+"nmyb/2203C", bytes.NewReader(bytesData)) // resp, _ := client.Do(req) // defer resp.Body.Close() // body, ioErr := ioutil.ReadAll(resp.Body) // if ioErr != nil { // utils.ErrorLog("接口返回数据读取失败: %v", ioErr) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // var respJSON map[string]interface{} // if err := json.Unmarshal([]byte(body), &respJSON); err != nil { // utils.ErrorLog("接口返回数据解析JSON失败: %v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // // respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) // userJSONBytes, _ := json.Marshal(respJSON) // fmt.Println("log") // fmt.Println(string(userJSONBytes)) // // if err := json.Unmarshal(userJSONBytes, &ressix10265); err != nil { // utils.ErrorLog("解析失败:%v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // res2.InfRefmsgid = ressix10265.InfRefmsgid // res2.Output = ressix10265.Output // res2.ErrMsg = ressix10265.ErrMsg // res2.Cainfo = ressix10265.Cainfo // res2.WarnMsg = ressix10265.WarnMsg // infocode, _ := strconv.ParseInt(ressix10265.Infcode, 10, 64) // res2.Infcode = infocode // //} func (c *HisApiController) Get4102() { order_id, _ := c.GetInt64("order_id") admin_user_id, _ := c.GetInt64("admin_user_id") stas_type := c.GetString("stas_type") order, _ := service.GetHisOrderByIDTwo(order_id) curRoles, _ := service.GetAdminUserInfoByID(c.GetAdminUserInfo().CurrentOrgId, admin_user_id) miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId) var pp models.PublicParams pp.InsuplcAdmdvs = miConfig.InsuplcAdmdvs pp.MdtrtareaAdmvs = miConfig.MdtrtareaAdmvs pp.FixmedinsName = miConfig.OrgName pp.FixmedinsCode = miConfig.Code pp.RequestUrl = miConfig.Url pp.Cainfo = miConfig.Cainfo pp.SecretKey = miConfig.SecretKey pp.AccessKey = miConfig.AccessKey pp.OpterName = curRoles.UserName if miConfig.MdtrtareaAdmvs == "350500" { result, request, _ := service.Fjyb4102(order.PsnNo, order.SetlId, pp, stas_type) //result, request := service.Jxyb4103(order.PsnNo,order.SetlId,pp) saveLog(result, request, "4102", "清单确认") var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } var empty ResultFourteen userJSONBytes, _ := json.Marshal(dat) if err := json.Unmarshal(userJSONBytes, &empty); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if empty.Infcode == 0 { c.ServeSuccessJSON(map[string]interface{}{ "msg": "确认成功", }) return } } else { result, request := service.Jxyb4102(order.PsnNo, order.SetlId, pp, stas_type) result2, request2 := service.Jxyb4103(order.PsnNo, order.SetlId, pp) result3, request3 := service.Jxyb4105(pp) saveLog(result, request, "4102", "清单确认") saveLog(result2, request2, "4103", "清单确认") saveLog(result3, request3, "4105", "清单统计") var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } var empty ResultFourteen userJSONBytes, _ := json.Marshal(dat) if err := json.Unmarshal(userJSONBytes, &empty); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if empty.Infcode == 0 { c.ServeSuccessJSON(map[string]interface{}{ "msg": "确认成功", }) return } } } // 对账权限查询 func (c *HisApiController) Get3260() { admin_user_id, _ := c.GetInt64("admin_user_id") curRoles, _ := service.GetAdminUserInfoByID(c.GetAdminUserInfo().CurrentOrgId, admin_user_id) miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId) var api string var res models.JSResult3260 if miConfig.MdtrtareaAdmvs == "320921" { api = "http://192.168.2.3:9532/" + "jsyb/3260?" + "org_name=" + miConfig.OrgName + "&doctor=" + curRoles.UserName + "&doctor_name=" + curRoles.UserName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + miConfig.MdtrtareaAdmvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&url=" + miConfig.Url + "&ak=" + miConfig.AccessKey + "&cainfo=" + miConfig.Cainfo } else { api = "http://192.168.5.251:9532/" + "jsyb/3260?" + "org_name=" + miConfig.OrgName + "&doctor=" + curRoles.UserName + "&doctor_name=" + curRoles.UserName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + miConfig.MdtrtareaAdmvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&url=" + miConfig.Url + "&ak=" + miConfig.AccessKey + "&cainfo=" + miConfig.Cainfo } resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) result, _ := json.Marshal(respJSON) if err := json.Unmarshal([]byte(result), &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if res.Infcode == "0" { c.ServeSuccessJSON(map[string]interface{}{ "result": res.Output.Data, }) } else { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res.ErrMsg, }) return } } func (c *HisApiController) Get3261() { admin_user_id, _ := c.GetInt64("admin_user_id") //month := c.GetString("month") startTime := c.GetString("start_time") //endTime, _ := c.GetString("end_time") times := strings.Split(startTime, "-") stmt_mon := times[0] + times[1] curRoles, _ := service.GetAdminUserInfoByID(c.GetAdminUserInfo().CurrentOrgId, admin_user_id) miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId) var api string var res models.JSResult3261 //var res10265 Result5301For10265 if miConfig.MdtrtareaAdmvs == "320921" { api = "http://192.168.2.3:9532/" + "jsyb/3261?" + "org_name=" + miConfig.OrgName + "&doctor=" + curRoles.UserName + "&doctor_name=" + curRoles.UserName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + miConfig.MdtrtareaAdmvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&url=" + miConfig.Url + "&ak=" + miConfig.AccessKey + "&cainfo=" + miConfig.Cainfo + "&month=" + stmt_mon } else { api = "http://192.168.5.251:9532/" + "jsyb/3261?" + "org_name=" + miConfig.OrgName + "&doctor=" + curRoles.UserName + "&doctor_name=" + curRoles.UserName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + miConfig.MdtrtareaAdmvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&url=" + miConfig.Url + "&ak=" + miConfig.AccessKey + "&cainfo=" + miConfig.Cainfo + "&month=" + stmt_mon } resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) result, _ := json.Marshal(respJSON) if err := json.Unmarshal([]byte(result), &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if res.Infcode == "0" { c.ServeSuccessJSON(map[string]interface{}{ "result": res.Output, }) } else { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res.ErrMsg, }) return } } type TempFun struct { FundKey string FundCode string } func (c *HisApiController) Get3262() { admin_user_id, _ := c.GetInt64("admin_user_id") startTime := c.GetString("start_time") endTime := c.GetString("end_time") curRoles, _ := service.GetAdminUserInfoByID(c.GetAdminUserInfo().CurrentOrgId, admin_user_id) miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId) //timeLayout := "2006-01-02" //loc, _ := time.LoadLocation("Local") //var theStartTIme int64 //if len(startTime) > 0 { // theTime, err := time.ParseInLocation(timeLayout+" 15:04:05", startTime+" 00:00:00", loc) // if err != nil { // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) // return // } // theStartTIme = theTime.Unix() //} //var theEndtTIme int64 //if len(endTime) > 0 { // theTime, err := time.ParseInLocation(timeLayout+" 15:04:05", endTime+" 23:59:59", loc) // if err != nil { // utils.ErrorLog(err.Error()) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) // return // } // theEndtTIme = theTime.Unix() //} datas, _ := service.GetOrderByTimeTen(startTime, endTime, c.GetAdminUserInfo().CurrentOrgId) datas_two, _ := service.GetOrderByTimeTentwo(startTime, endTime, c.GetAdminUserInfo().CurrentOrgId) for _, team := range datas { fmt.Println(team.PsnTime) for _, team_two := range datas_two { fmt.Println(team_two.PsnTime) if team.FundKey == team_two.FundKey { fmt.Println(team_two.PsnTime) team.PsnTime = team.PsnTime + team_two.PsnTime*2 fmt.Println(team.PsnTime) } } } fmt.Println("1111") fmt.Println(datas) fmt.Println("1111") var twos []models.FixMonRecDetailFileInTwo for _, team := range datas { var two models.FixMonRecDetailFileInTwo two.MedType = team.MedType two.Insutype = team.Insutype two.PsnType = team.PsnType two.MedType = team.MedType two.FixBlngAdmdvs = "999999" two.InsuAdmdvs = "555555" two.PsnTime = team.PsnTime two.PsnCnt = team.PsnCnt two.FundKey = team.FundKey ms, _ := strconv.ParseFloat(team.Sumamt, 64) fps, _ := strconv.ParseFloat(team.Fund, 64) ia, _ := strconv.ParseFloat(team.Amt, 64) two.MedfeeSumAmt = ms two.InscpAmt = ia two.FundPaySumAmt = fps twos = append(twos, two) } //startTime := c.GetString("start_time") //endTime, _ := c.GetString("end_time") times := strings.Split(startTime, "-") stmt_mon := times[0] + times[1] var funs []models.FundDetail for _, item := range datas { fun, _ := service.GetOrderDetailByTimeTen(startTime, endTime, c.GetAdminUserInfo().CurrentOrgId, item.FundKey) funs = append(funs, fun...) } var funInfos []models.Fund //for _, item := range funs { // var rf []models.FundInfo // json.Unmarshal([]byte(item.SetlDetail), &rf) // for _, subitem := range rf { // var fund models.Fund // fund.FundCode = subitem.FundPayType // fund.FundName = subitem.FundPayTypeName // fund.FundAmt = subitem.FundPayAmt // fund.FundKey = item.FundKey // fund.InsuAdmdvs = "555555" // fund.FixBlngAdmdvs = "999999" // funInfos = append(funInfos, fund) // } //} var tempFuns []TempFun for _, funInfo := range funInfos { var tempFun TempFun tempFun.FundKey = funInfo.FundKey tempFun.FundCode = funInfo.FundCode tempFuns = append(tempFuns, tempFun) } tempFuns = RemoveRepeatedFunElement(tempFuns) fmt.Println(tempFuns) var funInfosTwo []models.Fund decimal.DivisionPrecision = 2 for _, item := range tempFuns { var fund models.Fund for _, subItem := range funInfos { if item.FundKey == subItem.FundKey && item.FundCode == subItem.FundCode { fund.FundKey = subItem.FundKey fund.InsuAdmdvs = subItem.InsuAdmdvs fund.FixBlngAdmdvs = subItem.FixBlngAdmdvs fund.FundName = subItem.FundName fund.FundCode = subItem.FundCode fund.FundAmt, _ = decimal.NewFromFloat(fund.FundAmt).Add(decimal.NewFromFloat(subItem.FundAmt)).Float64() } } funInfosTwo = append(funInfosTwo, fund) } fmt.Println("funInfosTwo") fmt.Println(funInfosTwo) var upld_btch string var empty models.JSResultEmpty data := make(map[string]interface{}) data["org_name"] = miConfig.OrgName data["doctor"] = curRoles.UserName data["doctor_name"] = curRoles.UserName data["fixmedins_code"] = miConfig.Code data["insuplc_admdvs"] = miConfig.InsuplcAdmdvs data["mdtrtarea_admvs"] = miConfig.MdtrtareaAdmvs data["secret_key"] = miConfig.SecretKey data["url"] = miConfig.Url data["ak"] = miConfig.AccessKey data["cainfo"] = miConfig.Cainfo data["datas"] = twos data["fund"] = funInfosTwo fmt.Println(twos) 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") fix_fill_date := year + month + day + hour + min + sec data["fix_fill_dept"] = miConfig.OrgName data["fix_fill_psn_id"] = strconv.FormatInt(curRoles.AdminUserId, 10) data["fix_fill_psn"] = curRoles.UserName data["fix_fill_date"] = fix_fill_date data["stmt_loc"] = "2" data["setl_mon"] = stmt_mon upld_btch = "0" data["upld_btch"] = upld_btch //fmt.Println(data) client := &http.Client{} bytesData, _ := json.Marshal(data) var req *http.Request if miConfig.MdtrtareaAdmvs == "320921" { req, _ = http.NewRequest("POST", "http://192.168.2.3:9532/"+"jsyb/3262", bytes.NewReader(bytesData)) } else { req, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/3262", 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) } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) //fmt.Println(respJSON) result, _ := json.Marshal(respJSON) //fmt.Println(result) if err := json.Unmarshal([]byte(result), &empty); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) } if empty.Infcode != "0" { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": empty.ErrMsg, }) return } else { c.ServeSuccessJSON(map[string]interface{}{ "msg": "上传成功", }) return } } func RemoveRepeatedFunElement(arr []TempFun) (newArr []TempFun) { newArr = make([]TempFun, 0) for i := 0; i < len(arr); i++ { repeat := false for j := i + 1; j < len(arr); j++ { if arr[i].FundKey == arr[j].FundKey && arr[i].FundCode == arr[j].FundCode { repeat = true break } } if !repeat { newArr = append(newArr, arr[i]) } } return } func (c *HisApiController) Get3263() { admin_user_id, _ := c.GetInt64("admin_user_id") startTime := c.GetString("start_time") //endTime, _ := c.GetString("end_time") times := strings.Split(startTime, "-") setl_mon := times[0] + times[1] upld_btch := "0" curRoles, _ := service.GetAdminUserInfoByID(c.GetAdminUserInfo().CurrentOrgId, admin_user_id) miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId) var result3263 models.JSResult3263 data := make(map[string]interface{}) data["org_name"] = miConfig.OrgName data["doctor"] = curRoles.UserName data["doctor_name"] = curRoles.UserName data["fixmedins_code"] = miConfig.Code data["insuplc_admdvs"] = miConfig.InsuplcAdmdvs data["mdtrtarea_admvs"] = miConfig.MdtrtareaAdmvs data["secret_key"] = miConfig.SecretKey data["url"] = miConfig.Url data["ak"] = miConfig.AccessKey data["cainfo"] = miConfig.Cainfo data["setl_mon"] = setl_mon data["stmt_loc"] = "2" data["upld_btch"] = upld_btch client := &http.Client{} bytesData, _ := json.Marshal(data) var req *http.Request if miConfig.MdtrtareaAdmvs == "320921" { req, _ = http.NewRequest("POST", "http://192.168.2.3:9532/"+"jsyb/3263", bytes.NewReader(bytesData)) } else { req, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/3263", 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) } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) fmt.Println(respJSON) result, _ := json.Marshal(respJSON) fmt.Println(result) if err := json.Unmarshal([]byte(result), &result3263); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) } if result3263.Infcode != "0" { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": result3263.ErrMsg, }) return } else { c.ServeSuccessJSON(map[string]interface{}{ "list": result3263.Output, }) return } } func (c *HisApiController) Get3264() { admin_user_id, _ := c.GetInt64("admin_user_id") startTime := c.GetString("start_time") //endTime, _ := c.GetString("end_time") times := strings.Split(startTime, "-") setl_mon := times[0] + times[1] upld_btch := "0" curRoles, _ := service.GetAdminUserInfoByID(c.GetAdminUserInfo().CurrentOrgId, admin_user_id) miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId) //solidify_id := [] var result3263 models.JSResult3263 data := make(map[string]interface{}) data["org_name"] = miConfig.OrgName data["doctor"] = curRoles.UserName data["doctor_name"] = curRoles.UserName data["fixmedins_code"] = miConfig.Code data["insuplc_admdvs"] = miConfig.InsuplcAdmdvs data["mdtrtarea_admvs"] = miConfig.MdtrtareaAdmvs data["secret_key"] = miConfig.SecretKey data["url"] = miConfig.Url data["ak"] = miConfig.AccessKey data["cainfo"] = miConfig.Cainfo data["setl_mon"] = setl_mon data["stmt_loc"] = "2" data["upld_btch"] = upld_btch client := &http.Client{} bytesData, _ := json.Marshal(data) var req3263 *http.Request if miConfig.MdtrtareaAdmvs == "320921" { req3263, _ = http.NewRequest("POST", "http://192.168.2.3:9532/"+"jsyb/3263", bytes.NewReader(bytesData)) } else { req3263, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/3263", bytes.NewReader(bytesData)) } resp, _ := client.Do(req3263) defer resp.Body.Close() body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) } var respJSON3263 map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON3263); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) } respJSON3263 = respJSON3263["data"].(map[string]interface{})["pre"].(map[string]interface{}) fmt.Println(respJSON3263) result, _ := json.Marshal(respJSON3263) fmt.Println(result) if err := json.Unmarshal([]byte(result), &result3263); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) } var ids []string for _, item := range result3263.Output { ids = append(ids, item.SolidifyID) } var empty models.JSResultEmpty data2 := make(map[string]interface{}) data2["org_name"] = miConfig.OrgName data2["doctor"] = curRoles.UserName data2["doctor_name"] = curRoles.UserName data2["fixmedins_code"] = miConfig.Code data2["insuplc_admdvs"] = miConfig.InsuplcAdmdvs data2["mdtrtarea_admvs"] = miConfig.MdtrtareaAdmvs data2["secret_key"] = miConfig.SecretKey data2["url"] = miConfig.Url data2["ak"] = miConfig.AccessKey data2["cainfo"] = miConfig.Cainfo data2["setl_mon"] = setl_mon data2["stmt_loc"] = "2" data2["upld_btch"] = upld_btch data2["solidify_id"] = ids client2 := &http.Client{} bytesData2, _ := json.Marshal(data2) var req *http.Request if miConfig.MdtrtareaAdmvs == "320921" { req, _ = http.NewRequest("POST", "http://192.168.2.3:9532/"+"jsyb/3264", bytes.NewReader(bytesData2)) } else { req, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/3264", bytes.NewReader(bytesData2)) } resp2, _ := client2.Do(req) defer resp.Body.Close() body2, ioErr2 := ioutil.ReadAll(resp2.Body) if ioErr2 != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr2) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body2), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) } respJSON = respJSON["data"].(map[string]interface{})["request_log"].(map[string]interface{}) fmt.Println(respJSON) result2, _ := json.Marshal(respJSON) fmt.Println(result2) if err := json.Unmarshal([]byte(result2), &empty); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) } if empty.Infcode != "0" { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": empty.ErrMsg, }) return } else { c.ServeSuccessJSON(map[string]interface{}{ "msg": "", }) return } } func (c *HisApiController) Get3265() { admin_user_id, _ := c.GetInt64("admin_user_id") startTime := c.GetString("start_time") //endTime, _ := c.GetString("end_time") curRoles, _ := service.GetAdminUserInfoByID(c.GetAdminUserInfo().CurrentOrgId, admin_user_id) miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId) times := strings.Split(startTime, "-") setl_mon := times[0] + times[1] var upld_btch string upld_btch = "0" //var empty models.JSResultEmpty var result3265 models.JSResult3264 var result3263 models.JSResult3263 data2 := make(map[string]interface{}) data2["org_name"] = miConfig.OrgName data2["doctor"] = curRoles.UserName data2["doctor_name"] = curRoles.UserName data2["fixmedins_code"] = miConfig.Code data2["insuplc_admdvs"] = miConfig.InsuplcAdmdvs data2["mdtrtarea_admvs"] = miConfig.MdtrtareaAdmvs data2["secret_key"] = miConfig.SecretKey data2["url"] = miConfig.Url data2["ak"] = miConfig.AccessKey data2["cainfo"] = miConfig.Cainfo data2["setl_mon"] = setl_mon data2["stmt_loc"] = "2" data2["upld_btch"] = upld_btch client2 := &http.Client{} bytesData2, _ := json.Marshal(data2) var req3263 *http.Request if miConfig.MdtrtareaAdmvs == "320921" { req3263, _ = http.NewRequest("POST", "http://192.168.2.3:9532/"+"jsyb/3263", bytes.NewReader(bytesData2)) } else { req3263, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/3263", bytes.NewReader(bytesData2)) } resp2, _ := client2.Do(req3263) defer resp2.Body.Close() body2, ioErr2 := ioutil.ReadAll(resp2.Body) if ioErr2 != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr2) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) } var respJSON3263 map[string]interface{} if err := json.Unmarshal([]byte(body2), &respJSON3263); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) } respJSON3263 = respJSON3263["data"].(map[string]interface{})["pre"].(map[string]interface{}) fmt.Println(respJSON3263) result2, _ := json.Marshal(respJSON3263) fmt.Println(result2) if err := json.Unmarshal([]byte(result2), &result3263); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) } var ids []string for _, item := range result3263.Output { ids = append(ids, item.SolidifyID) } data := make(map[string]interface{}) data["org_name"] = miConfig.OrgName data["doctor"] = curRoles.UserName data["doctor_name"] = curRoles.UserName data["fixmedins_code"] = miConfig.Code data["insuplc_admdvs"] = miConfig.InsuplcAdmdvs data["mdtrtarea_admvs"] = miConfig.MdtrtareaAdmvs data["secret_key"] = miConfig.SecretKey data["url"] = miConfig.Url data["ak"] = miConfig.AccessKey data["cainfo"] = miConfig.Cainfo data["setl_mon"] = setl_mon data["solidify_id"] = ids 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") fix_fill_date := year + month + day + hour + min + sec data["fix_fill_dept"] = miConfig.OrgName data["fix_fill_psn_id"] = strconv.FormatInt(curRoles.AdminUserId, 10) data["fix_fill_psn"] = curRoles.UserName data["fix_fill_date"] = fix_fill_date data["stmt_loc"] = "2" data["upld_btch"] = upld_btch client := &http.Client{} bytesData, _ := json.Marshal(data) var req *http.Request if miConfig.MdtrtareaAdmvs == "320921" { req, _ = http.NewRequest("POST", "http://192.168.2.3:9532/"+"jsyb/3265", bytes.NewReader(bytesData)) } else { req, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/3265", 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) } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) fmt.Println(respJSON) result, _ := json.Marshal(respJSON) fmt.Println(result) if err := json.Unmarshal([]byte(result), &result3265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) } if result3265.Infcode != "0" { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": result3265.ErrMsg, }) return } else { c.ServeSuccessJSON(map[string]interface{}{ "info": result3265.Output, }) return } } func (c *HisApiController) Get3266() { admin_user_id, _ := c.GetInt64("admin_user_id") startTime := c.GetString("start_time") //endTime, _ := c.GetString("end_time") curRoles, _ := service.GetAdminUserInfoByID(c.GetAdminUserInfo().CurrentOrgId, admin_user_id) miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId) times := strings.Split(startTime, "-") stmt_mon := times[0] + times[1] var upld_btch string //var empty models.JSResultEmpty var result3265 models.JSResult3264 data := make(map[string]interface{}) data["org_name"] = miConfig.OrgName data["doctor"] = curRoles.UserName data["doctor_name"] = curRoles.UserName data["fixmedins_code"] = miConfig.Code data["insuplc_admdvs"] = miConfig.InsuplcAdmdvs data["mdtrtarea_admvs"] = miConfig.MdtrtareaAdmvs data["secret_key"] = miConfig.SecretKey data["url"] = miConfig.Url data["ak"] = miConfig.AccessKey data["cainfo"] = miConfig.Cainfo data["setl_mon"] = stmt_mon 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") fix_fill_date := year + month + day + hour + min + sec data["fix_fill_dept"] = miConfig.OrgName data["fix_fill_psn_id"] = strconv.FormatInt(curRoles.AdminUserId, 10) data["fix_fill_psn"] = curRoles.UserName data["fix_fill_date"] = fix_fill_date data["stmt_loc"] = "2" upld_btch = "0" data["upld_btch"] = upld_btch client := &http.Client{} bytesData, _ := json.Marshal(data) var req *http.Request if miConfig.MdtrtareaAdmvs == "320921" { req, _ = http.NewRequest("POST", "http://192.168.2.3:9532/"+"jsyb/3266", bytes.NewReader(bytesData)) } else { req, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/3266", 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) } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) fmt.Println(respJSON) result, _ := json.Marshal(respJSON) fmt.Println(result) if err := json.Unmarshal([]byte(result), &result3265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) } if result3265.Infcode != "0" { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": result3265.ErrMsg, }) return } else { c.ServeSuccessJSON(map[string]interface{}{ "info": result3265.Output, }) return } } func (c *HisApiController) Get3267() { admin_user_id, _ := c.GetInt64("admin_user_id") startTime := c.GetString("start_time") //endTime, _ := c.GetString("end_time") curRoles, _ := service.GetAdminUserInfoByID(c.GetAdminUserInfo().CurrentOrgId, admin_user_id) miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId) times := strings.Split(startTime, "-") setl_mon := times[0] + times[1] var upld_btch string //var empty models.JSResultEmpty var result3265 models.JSResult3264 upld_btch = "0" data := make(map[string]interface{}) data["org_name"] = miConfig.OrgName data["doctor"] = curRoles.UserName data["doctor_name"] = curRoles.UserName data["fixmedins_code"] = miConfig.Code data["insuplc_admdvs"] = miConfig.InsuplcAdmdvs data["mdtrtarea_admvs"] = miConfig.MdtrtareaAdmvs data["secret_key"] = miConfig.SecretKey data["url"] = miConfig.Url data["ak"] = miConfig.AccessKey data["cainfo"] = miConfig.Cainfo data["setl_mon"] = setl_mon data["stmt_loc"] = "2" data["upld_btch"] = upld_btch client := &http.Client{} bytesData, _ := json.Marshal(data) var req *http.Request if miConfig.MdtrtareaAdmvs == "320921" { req, _ = http.NewRequest("POST", "http://192.168.2.3:9532/"+"jsyb/3267", bytes.NewReader(bytesData)) } else { req, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/3267", 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) } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) fmt.Println(respJSON) result, _ := json.Marshal(respJSON) fmt.Println(result) if err := json.Unmarshal([]byte(result), &result3265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) } if result3265.Infcode != "0" { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": result3265.ErrMsg, }) return } else { c.ServeSuccessJSON(map[string]interface{}{ "info": result3265.Output.Data, }) return } } func (c *HisApiController) Get3268() { admin_user_id, _ := c.GetInt64("admin_user_id") startTime := c.GetString("start_time") endTime := c.GetString("end_time") curRoles, _ := service.GetAdminUserInfoByID(c.GetAdminUserInfo().CurrentOrgId, admin_user_id) miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId) times := strings.Split(startTime, "-") setl_mon := times[0] + times[1] datas, _ := service.GetOrderByTimeTen(startTime, endTime, c.GetAdminUserInfo().CurrentOrgId) var twos []models.FixMonRecDetailFileInTwo var funs []models.FundDetail for _, item := range datas { fun, _ := service.GetOrderDetailByTimeTen(startTime, endTime, c.GetAdminUserInfo().CurrentOrgId, item.FundKey) funs = append(funs, fun...) } var funInfos []models.Fund //for _, item := range funs { // var rf []models.FundInfo // json.Unmarshal([]byte(item.SetlDetail), &rf) // for _, subitem := range rf { // var fund models.Fund // fund.FundCode = subitem.FundPayType // fund.FundName = subitem.FundPayTypeName // fund.FundAmt = subitem.FundPayAmt // fund.FundKey = item.FundKey // fund.InsuAdmdvs = "555555" // fund.FixBlngAdmdvs = miConfig.MdtrtareaAdmvs // funInfos = append(funInfos, fund) // } //} for _, team := range datas { var two models.FixMonRecDetailFileInTwo two.SetlDate = time.Now().Format("2006-01-02") two.MedType = team.MedType two.Insutype = team.Insutype two.PsnType = team.PsnType two.MedType = team.MedType two.FixBlngAdmdvs = team.FixBlngAdmdvs two.InsuAdmdvs = team.InsuAdmdvs two.PsnTime = team.PsnTime two.PsnCnt = team.PsnCnt two.FundKey = team.FundKey ms, _ := strconv.ParseFloat(team.Sumamt, 64) fps, _ := strconv.ParseFloat(team.Fund, 64) ia, _ := strconv.ParseFloat(team.Amt, 64) two.MedfeeSumAmt = ms two.InscpAmt = ia two.FundPaySumAmt = fps twos = append(twos, two) } var upld_btch string upld_btch = "0" var empty models.JSResultEmpty data := make(map[string]interface{}) data["org_name"] = miConfig.OrgName data["doctor"] = curRoles.UserName data["doctor_name"] = curRoles.UserName data["fixmedins_code"] = miConfig.Code data["insuplc_admdvs"] = miConfig.InsuplcAdmdvs data["mdtrtarea_admvs"] = miConfig.MdtrtareaAdmvs data["secret_key"] = miConfig.SecretKey data["url"] = miConfig.Url data["ak"] = miConfig.AccessKey data["cainfo"] = miConfig.Cainfo data["datas"] = twos data["fund"] = funInfos data["setl_mon"] = setl_mon 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") fix_fill_date := year + month + day + hour + min + sec data["fix_fill_dept"] = miConfig.OrgName data["fix_fill_psn_id"] = strconv.FormatInt(curRoles.AdminUserId, 10) data["fix_fill_psn"] = curRoles.UserName data["fix_fill_date"] = fix_fill_date data["stmt_loc"] = "2" data["upld_btch"] = upld_btch client := &http.Client{} bytesData, _ := json.Marshal(data) var req *http.Request if miConfig.MdtrtareaAdmvs == "320921" { req, _ = http.NewRequest("POST", "http://192.168.2.3:9532/"+"jsyb/3268", bytes.NewReader(bytesData)) } else { req, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/3268", 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) } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) fmt.Println(respJSON) result, _ := json.Marshal(respJSON) fmt.Println(result) if err := json.Unmarshal([]byte(result), &empty); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) } if empty.Infcode != "0" { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": empty.ErrMsg, }) return } else { c.ServeSuccessJSON(map[string]interface{}{ "msg": "上传成功", }) return } } func (c *HisApiController) Get3269() { admin_user_id, _ := c.GetInt64("admin_user_id") startTime := c.GetString("start_time") //endTime, _ := c.GetString("end_time") times := strings.Split(startTime, "-") setl_mon := times[0] + times[1] curRoles, _ := service.GetAdminUserInfoByID(c.GetAdminUserInfo().CurrentOrgId, admin_user_id) miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId) var result3263 models.JSResult3263 data := make(map[string]interface{}) data["org_name"] = miConfig.OrgName data["doctor"] = curRoles.UserName data["doctor_name"] = curRoles.UserName data["fixmedins_code"] = miConfig.Code data["insuplc_admdvs"] = miConfig.InsuplcAdmdvs data["mdtrtarea_admvs"] = miConfig.MdtrtareaAdmvs data["secret_key"] = miConfig.SecretKey data["url"] = miConfig.Url data["ak"] = miConfig.AccessKey data["cainfo"] = miConfig.Cainfo data["setl_mon"] = setl_mon data["stmt_loc"] = "2" client := &http.Client{} bytesData, _ := json.Marshal(data) var req *http.Request if miConfig.MdtrtareaAdmvs == "320921" { req, _ = http.NewRequest("POST", "http://192.168.2.3:9532/"+"jsyb/3269", bytes.NewReader(bytesData)) } else { req, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/3269", 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) } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) fmt.Println(respJSON) result, _ := json.Marshal(respJSON) fmt.Println(result) if err := json.Unmarshal([]byte(result), &result3263); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) } if result3263.Infcode != "0" { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": result3263.ErrMsg, }) return } else { c.ServeSuccessJSON(map[string]interface{}{ "msg": "上传成功", }) return } } func (c *HisApiController) Get3270() { admin_user_id, _ := c.GetInt64("admin_user_id") startTime := c.GetString("start_time") //endTime, _ := c.GetString("end_time") times := strings.Split(startTime, "-") setl_mon := times[0] + times[1] curRoles, _ := service.GetAdminUserInfoByID(c.GetAdminUserInfo().CurrentOrgId, admin_user_id) miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId) var result3263 models.JSResult3263 data2 := make(map[string]interface{}) data2["org_name"] = miConfig.OrgName data2["doctor"] = curRoles.UserName data2["doctor_name"] = curRoles.UserName data2["fixmedins_code"] = miConfig.Code data2["insuplc_admdvs"] = miConfig.InsuplcAdmdvs data2["mdtrtarea_admvs"] = miConfig.MdtrtareaAdmvs data2["secret_key"] = miConfig.SecretKey data2["url"] = miConfig.Url data2["ak"] = miConfig.AccessKey data2["cainfo"] = miConfig.Cainfo data2["setl_mon"] = setl_mon data2["stmt_loc"] = "2" client2 := &http.Client{} bytesData2, _ := json.Marshal(data2) var req3263 *http.Request if miConfig.MdtrtareaAdmvs == "320921" { req3263, _ = http.NewRequest("POST", "http://192.168.2.3:9532/"+"jsyb/3269", bytes.NewReader(bytesData2)) } else { req3263, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/3269", bytes.NewReader(bytesData2)) } resp2, _ := client2.Do(req3263) defer resp2.Body.Close() body2, ioErr2 := ioutil.ReadAll(resp2.Body) if ioErr2 != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr2) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) } var respJSON3263 map[string]interface{} if err := json.Unmarshal([]byte(body2), &respJSON3263); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) } respJSON3263 = respJSON3263["data"].(map[string]interface{})["pre"].(map[string]interface{}) fmt.Println(respJSON3263) result2, _ := json.Marshal(respJSON3263) fmt.Println(result2) if err := json.Unmarshal([]byte(result2), &result3263); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) } var ids []string for _, item := range result3263.Output { ids = append(ids, item.SolidifyID) } var result3264 models.JSResult3264 data := make(map[string]interface{}) data["org_name"] = miConfig.OrgName data["doctor"] = curRoles.UserName data["doctor_name"] = curRoles.UserName data["fixmedins_code"] = miConfig.Code data["insuplc_admdvs"] = miConfig.InsuplcAdmdvs data["mdtrtarea_admvs"] = miConfig.MdtrtareaAdmvs data["secret_key"] = miConfig.SecretKey data["url"] = miConfig.Url data["ak"] = miConfig.AccessKey data["cainfo"] = miConfig.Cainfo data["setl_mon"] = setl_mon data["stmt_loc"] = "2" data["solidify_id"] = ids client := &http.Client{} bytesData, _ := json.Marshal(data) var req *http.Request if miConfig.MdtrtareaAdmvs == "320921" { req, _ = http.NewRequest("POST", "http://192.168.2.3:9532/"+"jsyb/3270", bytes.NewReader(bytesData)) } else { req, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/3270", 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) } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) fmt.Println(respJSON) result, _ := json.Marshal(respJSON) fmt.Println(result) if err := json.Unmarshal([]byte(result), &result3264); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) } if result3264.Infcode != "0" { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": result3264.ErrMsg, }) return } else { c.ServeSuccessJSON(map[string]interface{}{ "info": result3264.Output, }) return } } func (c *HisApiController) Get3271() { admin_user_id, _ := c.GetInt64("admin_user_id") startTime := c.GetString("start_time") //endTime, _ := c.GetString("end_time") curRoles, _ := service.GetAdminUserInfoByID(c.GetAdminUserInfo().CurrentOrgId, admin_user_id) miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId) times := strings.Split(startTime, "-") setl_mon := times[0] + times[1] //var empty models.JSResultEmpty var result3265 models.JSResult3264 var result3263 models.JSResult3263 data2 := make(map[string]interface{}) data2["org_name"] = miConfig.OrgName data2["doctor"] = curRoles.UserName data2["doctor_name"] = curRoles.UserName data2["fixmedins_code"] = miConfig.Code data2["insuplc_admdvs"] = miConfig.InsuplcAdmdvs data2["mdtrtarea_admvs"] = miConfig.MdtrtareaAdmvs data2["secret_key"] = miConfig.SecretKey data2["url"] = miConfig.Url data2["ak"] = miConfig.AccessKey data2["cainfo"] = miConfig.Cainfo data2["setl_mon"] = setl_mon data2["stmt_loc"] = "2" client2 := &http.Client{} bytesData2, _ := json.Marshal(data2) var req3263 *http.Request if miConfig.MdtrtareaAdmvs == "320921" { req3263, _ = http.NewRequest("POST", "http://192.168.2.3:9532/"+"jsyb/3269", bytes.NewReader(bytesData2)) } else { req3263, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/3269", bytes.NewReader(bytesData2)) } resp2, _ := client2.Do(req3263) defer resp2.Body.Close() body2, ioErr2 := ioutil.ReadAll(resp2.Body) if ioErr2 != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr2) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) } var respJSON3263 map[string]interface{} if err := json.Unmarshal([]byte(body2), &respJSON3263); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) } respJSON3263 = respJSON3263["data"].(map[string]interface{})["pre"].(map[string]interface{}) fmt.Println(respJSON3263) result2, _ := json.Marshal(respJSON3263) fmt.Println(result2) if err := json.Unmarshal([]byte(result2), &result3263); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) } var ids []string for _, item := range result3263.Output { ids = append(ids, item.SolidifyID) } data := make(map[string]interface{}) data["org_name"] = miConfig.OrgName data["doctor"] = curRoles.UserName data["doctor_name"] = curRoles.UserName data["fixmedins_code"] = miConfig.Code data["insuplc_admdvs"] = miConfig.InsuplcAdmdvs data["mdtrtarea_admvs"] = miConfig.MdtrtareaAdmvs data["secret_key"] = miConfig.SecretKey data["url"] = miConfig.Url data["ak"] = miConfig.AccessKey data["cainfo"] = miConfig.Cainfo data["setl_mon"] = setl_mon data["solidify_id"] = ids 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") fix_fill_date := year + month + day + hour + min + sec data["fix_fill_dept"] = miConfig.OrgName data["fix_fill_psn_id"] = strconv.FormatInt(curRoles.AdminUserId, 10) data["fix_fill_psn"] = curRoles.UserName data["fix_fill_date"] = fix_fill_date data["stmt_loc"] = "2" client := &http.Client{} bytesData, _ := json.Marshal(data) var req *http.Request if miConfig.MdtrtareaAdmvs == "320921" { req, _ = http.NewRequest("POST", "http://192.168.2.3:9532/"+"jsyb/3271", bytes.NewReader(bytesData)) } else { req, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/3271", 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) } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) fmt.Println(respJSON) result, _ := json.Marshal(respJSON) fmt.Println(result) if err := json.Unmarshal([]byte(result), &result3265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) } if result3265.Infcode != "0" { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": result3265.ErrMsg, }) return } else { c.ServeSuccessJSON(map[string]interface{}{ "info": result3265.Output.Data, }) return } } func (c *HisApiController) Get3272() { admin_user_id, _ := c.GetInt64("admin_user_id") startTime := c.GetString("start_time") //endTime, _ := c.GetString("end_time") curRoles, _ := service.GetAdminUserInfoByID(c.GetAdminUserInfo().CurrentOrgId, admin_user_id) miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId) times := strings.Split(startTime, "-") setl_mon := times[0] + times[1] var upld_btch string //var empty models.JSResultEmpty var result3265 models.JSResult3264 data := make(map[string]interface{}) data["org_name"] = miConfig.OrgName data["doctor"] = curRoles.UserName data["doctor_name"] = curRoles.UserName data["fixmedins_code"] = miConfig.Code data["insuplc_admdvs"] = miConfig.InsuplcAdmdvs data["mdtrtarea_admvs"] = miConfig.MdtrtareaAdmvs data["secret_key"] = miConfig.SecretKey data["url"] = miConfig.Url data["ak"] = miConfig.AccessKey data["cainfo"] = miConfig.Cainfo data["setl_mon"] = setl_mon 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") fix_fill_date := year + month + day + hour + min + sec data["fix_fill_dept"] = miConfig.OrgName data["fix_fill_psn_id"] = strconv.FormatInt(curRoles.AdminUserId, 10) data["fix_fill_psn"] = curRoles.UserName data["fix_fill_date"] = fix_fill_date data["stmt_loc"] = "2" data["upld_btch"] = upld_btch client := &http.Client{} bytesData, _ := json.Marshal(data) var req *http.Request if miConfig.MdtrtareaAdmvs == "320921" { req, _ = http.NewRequest("POST", "http://192.168.2.3:9532/"+"jsyb/3272", bytes.NewReader(bytesData)) } else { req, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/3272", 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) } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) fmt.Println(respJSON) result, _ := json.Marshal(respJSON) fmt.Println(result) if err := json.Unmarshal([]byte(result), &result3265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) } if result3265.Infcode != "0" { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": result3265.ErrMsg, }) return } else { c.ServeSuccessJSON(map[string]interface{}{ "info": result3265.Output, }) return } } func (c *HisApiController) Get3273() { admin_user_id, _ := c.GetInt64("admin_user_id") startTime := c.GetString("start_time") //endTime, _ := c.GetString("end_time") curRoles, _ := service.GetAdminUserInfoByID(c.GetAdminUserInfo().CurrentOrgId, admin_user_id) miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId) times := strings.Split(startTime, "-") setl_mon := times[0] + times[1] var result3265 models.JSResult3264 data := make(map[string]interface{}) data["org_name"] = miConfig.OrgName data["doctor"] = curRoles.UserName data["doctor_name"] = curRoles.UserName data["fixmedins_code"] = miConfig.Code data["insuplc_admdvs"] = miConfig.InsuplcAdmdvs data["mdtrtarea_admvs"] = miConfig.MdtrtareaAdmvs data["secret_key"] = miConfig.SecretKey data["url"] = miConfig.Url data["ak"] = miConfig.AccessKey data["cainfo"] = miConfig.Cainfo data["setl_mon"] = setl_mon data["stmt_loc"] = "2" client := &http.Client{} bytesData, _ := json.Marshal(data) var req *http.Request if miConfig.MdtrtareaAdmvs == "320921" { req, _ = http.NewRequest("POST", "http://192.168.2.3:9532/"+"jsyb/3273", bytes.NewReader(bytesData)) } else { req, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/3273", 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) } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) } respJSON = respJSON["data"].(map[string]interface{})["request_log"].(map[string]interface{}) fmt.Println(respJSON) result, _ := json.Marshal(respJSON) fmt.Println(result) if err := json.Unmarshal([]byte(result), &result3265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) } if result3265.Infcode != "0" { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": result3265.ErrMsg, }) return } else { c.ServeSuccessJSON(map[string]interface{}{ "info": result3265.Output.Data, }) return } } func (c *HisApiController) Get3274() { //if miConfig.MdtrtareaAdmvs == "320921" { // api = "http://192.168.2.3:9532/" + "jsyb/3274?psn_no=" + PsnNo + "&insutype=" + insutype + "&cert_no=" + cert_no + "&ipt_otp_no=" + ipt_otp_no + // "&org_name=" + miConfig.OrgName + "&doctor=" + roles.UserName + "&doctor_name=" + doctor_info.UserName + "&fixmedins_code=" + miConfig.Code + // "&insuplc_admdvs=" + insuplc_admdvs_temp + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&id_card_type=" + strconv.FormatInt(id_card_type, 10) + "&dept_code=" + department.Number + "&dept=" + department.Name + "&doctor_id=" + doctor_info.DoctorNumber + "&url=" + miConfig.Url + "&ak=" + miConfig.AccessKey + "&verify_number=" + psn_info.VerifyNumber + "&cainfo=" + miConfig.Cainfo // //} else { // api = "http://192.168.5.251:9532/" + "jsyb/3274?psn_no=" + PsnNo + "&insutype=" + insutype + "&cert_no=" + cert_no + "&ipt_otp_no=" + ipt_otp_no + // "&org_name=" + miConfig.OrgName + "&doctor=" + roles.UserName + "&doctor_name=" + doctor_info.UserName + "&fixmedins_code=" + miConfig.Code + // "&insuplc_admdvs=" + insuplc_admdvs_temp + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&id_card_type=" + strconv.FormatInt(id_card_type, 10) + "&dept_code=" + department.Number + "&dept=" + department.Name + "&doctor_id=" + doctor_info.DoctorNumber + "&url=" + miConfig.Url + "&ak=" + miConfig.AccessKey + "&verify_number=" + psn_info.VerifyNumber + "&cainfo=" + miConfig.Cainfo // //} } func (c *HisApiController) Get3275() { //if miConfig.MdtrtareaAdmvs == "320921" { // api = "http://192.168.2.3:9532/" + "jsyb/3275?psn_no=" + PsnNo + "&insutype=" + insutype + "&cert_no=" + cert_no + "&ipt_otp_no=" + ipt_otp_no + // "&org_name=" + miConfig.OrgName + "&doctor=" + roles.UserName + "&doctor_name=" + doctor_info.UserName + "&fixmedins_code=" + miConfig.Code + // "&insuplc_admdvs=" + insuplc_admdvs_temp + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&id_card_type=" + strconv.FormatInt(id_card_type, 10) + "&dept_code=" + department.Number + "&dept=" + department.Name + "&doctor_id=" + doctor_info.DoctorNumber + "&url=" + miConfig.Url + "&ak=" + miConfig.AccessKey + "&verify_number=" + psn_info.VerifyNumber + "&cainfo=" + miConfig.Cainfo // //} else { // api = "http://192.168.5.251:9532/" + "jsyb/3275?psn_no=" + PsnNo + "&insutype=" + insutype + "&cert_no=" + cert_no + "&ipt_otp_no=" + ipt_otp_no + // "&org_name=" + miConfig.OrgName + "&doctor=" + roles.UserName + "&doctor_name=" + doctor_info.UserName + "&fixmedins_code=" + miConfig.Code + // "&insuplc_admdvs=" + insuplc_admdvs_temp + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&id_card_type=" + strconv.FormatInt(id_card_type, 10) + "&dept_code=" + department.Number + "&dept=" + department.Name + "&doctor_id=" + doctor_info.DoctorNumber + "&url=" + miConfig.Url + "&ak=" + miConfig.AccessKey + "&verify_number=" + psn_info.VerifyNumber + "&cainfo=" + miConfig.Cainfo // //} } func (c *HisApiController) Get3276() { //admin_user_id, _ := c.GetInt64("admin_user_id") //month := c.GetString("month") // //curRoles, _ := service.GetAdminUserInfoByID(c.GetAdminUserInfo().CurrentOrgId, admin_user_id) //miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId) //var api string //var res Result5301 // //if miConfig.MdtrtareaAdmvs == "320921" { // api = "http://192.168.2.3:9532/" + "jsyb/3276?" + "org_name=" + miConfig.OrgName + "&doctor=" + curRoles.UserName + "&doctor_name=" + curRoles.UserName + "&fixmedins_code=" + miConfig.Code + // "&insuplc_admdvs=" + miConfig.MdtrtareaAdmvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&url=" + miConfig.Url + "&ak=" + miConfig.AccessKey + "&cainfo=" + miConfig.Cainfo + "&month=" + month //} else { // api = "http://192.168.5.251:9532/" + "jsyb/3264?" + "org_name=" + miConfig.OrgName + "&doctor=" + curRoles.UserName + "&doctor_name=" + curRoles.UserName + "&fixmedins_code=" + miConfig.Code + // "&insuplc_admdvs=" + miConfig.MdtrtareaAdmvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&url=" + miConfig.Url + "&ak=" + miConfig.AccessKey + "&cainfo=" + miConfig.Cainfo + "&month=" + month //} // //resp, requestErr := http.Get(api) //if requestErr != nil { // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return //} // //body, ioErr := ioutil.ReadAll(resp.Body) //if ioErr != nil { // utils.ErrorLog("接口返回数据读取失败: %v", ioErr) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return //} //var respJSON map[string]interface{} //if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { // utils.ErrorLog("接口返回数据解析JSON失败: %v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return //} // //respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) //result, _ := json.Marshal(respJSON) //if err := json.Unmarshal([]byte(result), &res10265); err != nil { // utils.ErrorLog("解析失败:%v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return //} } func (c *HisApiController) Get3277() { //admin_user_id, _ := c.GetInt64("admin_user_id") //month := c.GetString("month") // //curRoles, _ := service.GetAdminUserInfoByID(c.GetAdminUserInfo().CurrentOrgId, admin_user_id) //miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId) //var api string //var res Result5301 // //if miConfig.MdtrtareaAdmvs == "320921" { // api = "http://192.168.2.3:9532/" + "jsyb/3264?" + "org_name=" + miConfig.OrgName + "&doctor=" + curRoles.UserName + "&doctor_name=" + curRoles.UserName + "&fixmedins_code=" + miConfig.Code + // "&insuplc_admdvs=" + miConfig.MdtrtareaAdmvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&url=" + miConfig.Url + "&ak=" + miConfig.AccessKey + "&cainfo=" + miConfig.Cainfo + "&month=" + month //} else { // api = "http://192.168.5.251:9532/" + "jsyb/3264?" + "org_name=" + miConfig.OrgName + "&doctor=" + curRoles.UserName + "&doctor_name=" + curRoles.UserName + "&fixmedins_code=" + miConfig.Code + // "&insuplc_admdvs=" + miConfig.MdtrtareaAdmvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&url=" + miConfig.Url + "&ak=" + miConfig.AccessKey + "&cainfo=" + miConfig.Cainfo + "&month=" + month //} // //resp, requestErr := http.Get(api) //if requestErr != nil { // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return //} // //body, ioErr := ioutil.ReadAll(resp.Body) //if ioErr != nil { // utils.ErrorLog("接口返回数据读取失败: %v", ioErr) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return //} //var respJSON map[string]interface{} //if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { // utils.ErrorLog("接口返回数据解析JSON失败: %v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return //} // //respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) //result, _ := json.Marshal(respJSON) //if err := json.Unmarshal([]byte(result), &res10265); err != nil { // utils.ErrorLog("解析失败:%v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return //} } //func (c *HisApiController) GetCFYLJG001() { // admin_user_id, _ := c.GetInt64("admin_user_id") // patient_id, _ := c.GetInt64("patient_id") // his_patient_id, _ := c.GetInt64("his_patient_id") // record_time := c.GetString("record_time") // admin_user_id = 3626 // his, _ := service.GetHisPatientRecord(c.GetAdminUserInfo().CurrentOrgId, his_patient_id) // psn, _ := service.GetPsnByPatientId(patient_id) // curRoles, _ := service.GetAdminUserInfoByID(c.GetAdminUserInfo().CurrentOrgId, admin_user_id) // miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId) // var cFYLJG001 models.CFYLJG001 // // timeLayout := "2006-01-02" // loc, _ := time.LoadLocation("Local") // theTime, err := time.ParseInLocation(timeLayout+" 15:04:05", record_time+" 00:00:00", loc) // if err != nil { // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) // return // } // recordDateTime := theTime.Unix() // prescriptions, _ := service.GetHisPrescriptionForMedType(c.GetAdminUserInfo().CurrentOrgId, patient_id, recordDateTime) // info, _ := service.FindLastPatientPrescriptionInfoTwo(c.GetAdminUserInfo().CurrentOrgId, patient_id, recordDateTime) // // //info, _ := service.FindLastPatientPrescriptionInfoTwo(c.GetAdminUserInfo().CurrentOrgId, patient_id, recordDateTime) // doctor_info, _ := service.GetAdminUserInfoByID(c.GetAdminUserInfo().CurrentOrgId, info.DoctorId) // // //dept, _ := service.GetDepartMentDetail(info.Departments) // // for _, item := range prescriptions { // doctor, _ := service.GetAdminUserInfoByID(c.GetAdminUserInfo().CurrentOrgId, item.Creator) // if his.IdCardType == 1 { // bas := strings.Split(psn.CardInfo, "|") // basNumber := bas[1] // fmt.Println(basNumber) // card_sn := bas[3] // card_no := bas[2] // cFYLJG001.MdtrtCertType = "03" // cFYLJG001.CardSn = card_sn // cFYLJG001.MdtrtCertNo = card_no // cFYLJG001.EcToken = "" // cFYLJG001.AuthNo = "" // } else if his.IdCardType == 2 { // cFYLJG001.MdtrtCertType = "02" // cFYLJG001.CardSn = "" // cFYLJG001.MdtrtCertNo = his.IdCardNo // cFYLJG001.EcToken = "" // cFYLJG001.AuthNo = "" // } else if his.IdCardType == 4 { // cFYLJG001.MdtrtCertType = "01" // cFYLJG001.CardSn = "" // cFYLJG001.MdtrtCertNo = psn.VerifyNumber // cFYLJG001.EcToken = psn.VerifyNumber // cFYLJG001.AuthNo = "" // } // cFYLJG001.BizTypeCode = "01" // cFYLJG001.InsuAdmdvs = psn.InsuplcAdmdvs // cFYLJG001.HospRxno = strconv.FormatInt(item.ID, 10) // cFYLJG001.RxTypeCode = "1" // tempTime := time.Unix(item.PreTime, 0) // timeFormatOne := tempTime.Format("2006-01-02 15:04:05") // cFYLJG001.PrscTime = timeFormatOne // var count float64 // if item.Type == 1 { // for _, sumItem := range item.HisDoctorAdviceInfo { // count = count + sumItem.PrescribingNumber // } // } // cFYLJG001.RxDrugCnt = count // cFYLJG001.ValiDays = "5" // ts := time.Unix(item.PreTime, 0) // record_time2 := ts.AddDate(0, 0, int(5)).Unix() // tempTime3 := time.Unix(record_time2, 0) // timeFormat3 := tempTime3.Format("2006-01-02 15:04:05") // cFYLJG001.ValiEndTime = timeFormat3 // cFYLJG001.RxCotnFlag = "0" // for _, subItem := range item.HisDoctorAdviceInfo { // var drug models.RxDrug // drug.MedListCodg = subItem.BaseDrugLib.MedicalInsuranceNumber // drug.MedinsListCodg = subItem.BaseDrugLib.MedicalInsuranceNumber // drug.RxItemTypeCode = "11" // // drug.DrugDosform = "乳膏剂" //TODO // if subItem.BaseDrugLib.MinUnit != subItem.BaseDrugLib.DoseUnit { // drug.DrugSpec = subItem.BaseDrugLib.Dose + subItem.BaseDrugLib.DoseUnit + "*" + strconv.FormatInt(subItem.BaseDrugLib.MinNumber, 10) + subItem.BaseDrugLib.MinUnit + "/" + subItem.BaseDrugLib.MaxUnit // } // // drug.MedcWayDscr = subItem.DeliveryWay // // tempTime2 := time.Unix(subItem.StartTime, 0) // timeFormatTwo := tempTime2.Format("2006-01-02 15:04:05") // drug.MedcBegntime = timeFormatTwo // if subItem.Day > 0 { // ts := time.Unix(subItem.StartTime, 0) // record_time := ts.AddDate(0, 0, int(subItem.Day)).Unix() // tempTime4 := time.Unix(record_time, 0) // timeFormat5 := tempTime4.Format("2006-01-02 15:04:05") // drug.MedcEndtime = timeFormat5 // } else { // tempTime2 := time.Unix(subItem.StartTime, 0) // timeFormatTwo := tempTime2.Format("2006-01-02 15:04:05") // drug.MedcEndtime = timeFormatTwo // } // // drug.MedcDays = strconv.FormatInt(subItem.Day, 10) // drug.DrugPric = fmt.Sprintf("%.2f", subItem.Price) // drug.DrugSumamt = fmt.Sprintf("%.2f", subItem.Price*subItem.PrescribingNumber) // drug.DrugCnt = subItem.PrescribingNumber // drug.DrugDosunt = subItem.PrescribingNumberUnit // drug.DrugGenname = subItem.AdviceName // drug.MedcWayCodg = subItem.DeliveryWay // //drug.DrugTotlcnt = subItem.PrescribingNumber // drug.SinDoscnt = subItem.SingleDose // drug.SinDosunt = subItem.SingleDoseUnit // drug.UsedFrquCodg = strconv.FormatInt(subItem.ID, 10) // drug.UsedFrquName = subItem.ExecutionFrequency // drug.DrugTotlcnt = fmt.Sprintf("%.2f", subItem.PrescribingNumber) // drug.DrugTotlcntEmp = subItem.PrescribingNumberUnit // drug.HospApprFlag = "1" // cFYLJG001.List = append(cFYLJG001.List, drug) // } // cFYLJG001.Mdtrtinfo.FixmedinsCode = miConfig.Code // cFYLJG001.Mdtrtinfo.FixmedinsName = miConfig.Code // cFYLJG001.Mdtrtinfo.MdtrtID = his.Number // cFYLJG001.Mdtrtinfo.MedType = item.MedType // cFYLJG001.Mdtrtinfo.IptOtpNo = his.IptOtpNo // cFYLJG001.Mdtrtinfo.OtpIptFlag = "1" // cFYLJG001.Mdtrtinfo.PsnNo = his.PsnNo // cFYLJG001.Mdtrtinfo.PatnName = his.PsnName // cFYLJG001.Mdtrtinfo.Certno = his.IdCardNo // cFYLJG001.Mdtrtinfo.PsnCertType = "01" // cFYLJG001.Mdtrtinfo.PatnAge = fmt.Sprintf("%.1f", his.Age) // cFYLJG001.Mdtrtinfo.PatnHgt = "160" //todo // cFYLJG001.Mdtrtinfo.PatnWt = "58" //todo // cFYLJG001.Mdtrtinfo.Gend = his.Gend // cFYLJG001.Mdtrtinfo.PatnAge = fmt.Sprintf("%.1f", his.Age) // cFYLJG001.Mdtrtinfo.PrscDeptName = "肾内科" // cFYLJG001.Mdtrtinfo.PrscDeptCode = "A03.06" // cFYLJG001.Mdtrtinfo.DrCode = doctor.DoctorNumber // cFYLJG001.Mdtrtinfo.PrscDrName = doctor.UserName // cFYLJG001.Mdtrtinfo.DrProfttlCodg = "234" // cFYLJG001.Mdtrtinfo.DrProfttlName = "医师" // cFYLJG001.Mdtrtinfo.DrDeptCode = "A03.06" // cFYLJG001.Mdtrtinfo.DrDeptName = "肾内科" // cFYLJG001.Mdtrtinfo.Caty = "A03.06" // tempTime2 := time.Now().Unix() // tempTime6 := time.Unix(tempTime2, 0) // timeFormatTwo := tempTime6.Format("2006-01-02 15:04:05") // cFYLJG001.Mdtrtinfo.MdtrtTime = timeFormatTwo // cFYLJG001.Mdtrtinfo.DiseCodg = "M07803" // cFYLJG001.Mdtrtinfo.SpDiseFlag = "1" // cFYLJG001.Mdtrtinfo.MaindiagCode = "N18.500" // cFYLJG001.Mdtrtinfo.MaindiagName = "慢性肾脏病5期" // // //memo := make(map[string]interface{}) // //inputData := make(map[string]interface{}, 0) // // //type MyData struct { // // Insutype string `json:"insutype"` // //} // // // // data := MyData{ // // Insutype: his.Insutype, // //} // // // // diagnosis_ids := strings.Split(info.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, subitem := range config { // if index == 0 { // var dia models.DiseInfo // dia.DiagType = "1" // dia.MaindiagFlag = "1" // dia.DiagSrtNo = strconv.FormatInt(int64(index+1), 10) // dia.DiagCode = subitem.CountryCode // dia.DiagName = subitem.ClassName // dia.DiagDept = "肾内科" // dia.DiagDrNo = doctor.DoctorNumber // dia.DiagDrName = doctor.UserName // tempTime3 := time.Unix(item.PreTime, 0) // timeFormatTwo := tempTime3.Format("2006-01-02 15:04:05") // dia.DiagTime = timeFormatTwo // cFYLJG001.Diseinfo = append(cFYLJG001.Diseinfo, dia) // } else { // var dia models.DiseInfo // dia.DiagType = "1" // dia.MaindiagFlag = "0" // dia.DiagSrtNo = strconv.FormatInt(int64(index+1), 10) // dia.DiagCode = subitem.CountryCode // dia.DiagName = subitem.ClassName // dia.DiagDept = "肾内科" // dia.DiagDrNo = doctor.DoctorNumber // dia.DiagDrName = doctor.UserName // tempTime3 := time.Unix(item.PreTime, 0) // timeFormatTwo := tempTime3.Format("2006-01-02 15:04:05") // dia.DiagTime = timeFormatTwo // cFYLJG001.Diseinfo = append(cFYLJG001.Diseinfo, dia) // } // } // if miConfig.MdtrtareaAdmvs == "340699" { // //result, request := service.GetAHCFYLJG001(miConfig.OrgName, curRoles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, cFYLJG001, his.Insutype) // //saveLog(result, request, "GetCFYLJG001", "GetCFYLJG001") // // } else { // result, request := service.GetCFYLJG001(miConfig.OrgName, curRoles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, cFYLJG001, his.Insutype) // saveLog(result, request, "GetCFYLJG001", "GetCFYLJG001") // // } // // var res ResultCFYLJG001 // var respJSON2 map[string]interface{} // if err := json.Unmarshal([]byte(string(result)), &respJSON2); err != nil { // utils.ErrorLog("接口返回数据解析JSON失败: %v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // userJSONBytes2, _ := json.Marshal(respJSON2) // if err := json.Unmarshal(userJSONBytes2, &res); err != nil { // utils.ErrorLog("解析失败:%v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // if res.Infcode == -1 { // c.ServeSuccessJSON(map[string]interface{}{ // "failed_code": -10, // "msg": res.ErrMsg, // }) // return // // } else { // var flow models.HisPrescriptionFlow // flow.Ctime = time.Now().Unix() // flow.SignDigest = "" // flow.RxTraceCode = res.Output.RxTraceCode // flow.HiRxno = res.Output.HiRxno // flow.MID = his.Number // flow.Status = 1 // flow.DCode = doctor_info.DoctorNumber // flow.OriginalRxFile = "" // flow.OriginalValue = "" // flow.SignCertDn = "" // flow.UserOrgId = 10454 // flow.SignCertSn = "" // flow.Mtime = time.Now().Unix() // // service.Createflow(&flow) // c.ServeSuccessJSON(map[string]interface{}{ // "msg": "上传成功", // }) // } // } //} //func (c *HisApiController) GetCFYLJG002() { // admin_user_id, _ := c.GetInt64("admin_user_id") // his_patient_id, _ := c.GetInt64("his_patient_id") // record_time := c.GetString("record_time") // admin_user_id = 3626 // his, _ := service.GetHisPatientRecord(c.GetAdminUserInfo().CurrentOrgId, his_patient_id) // //id, _ := c.GetInt64("id") // admin_user_id = 3626 // curRoles, _ := service.GetAdminUserInfoByID(c.GetAdminUserInfo().CurrentOrgId, admin_user_id) // miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId) // // flow, _ := service.Getflowtwo(his.Number) // //his, _ := service.GetHisPatientByNumber(flow.MID) // //record_time := c.GetString("record_time") // patient_id, _ := c.GetInt64("patient_id") // //patient_id = 23834 // //record_time = "2023-09-18" // timeLayout := "2006-01-02" // loc, _ := time.LoadLocation("Local") // theTime, err := time.ParseInLocation(timeLayout+" 15:04:05", record_time+" 00:00:00", loc) // if err != nil { // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) // return // } // recordDateTime := theTime.Unix() // //prescriptions, _ := service.GetHisPrescriptionForMedType(c.GetAdminUserInfo().CurrentOrgId, patient_id, recordDateTime) // info, _ := service.FindLastPatientPrescriptionInfoTwo(c.GetAdminUserInfo().CurrentOrgId, patient_id, recordDateTime) // doctor_info, _ := service.GetAdminUserInfoByID(c.GetAdminUserInfo().CurrentOrgId, info.DoctorId) // // dept, _ := service.GetDepartMentDetail(info.Departments) // // inputData := make(map[string]interface{}) // inputData["rxTraceCode"] = flow.RxTraceCode // inputData["hiRxno"] = flow.HiRxno // inputData["mdtrtId"] = flow.MID // inputData["patnName"] = his.PsnName // inputData["psnCertType"] = his.PsnCertType // inputData["certno"] = his.Certno // inputData["fixmedinsName"] = miConfig.OrgName // inputData["fixmedinsCode"] = miConfig.Code // inputData["drCode"] = doctor_info.DoctorNumber // inputData["prscDrName"] = doctor_info.UserName // inputData["pharDeptName"] = dept.Name // inputData["pharDeptCode"] = dept.Number // inputData["pharProfttlCodg"] = dept.Name // inputData["pharProfttlName"] = "" // inputData["pharCode"] = "HY440309002107" // inputData["pharCertType"] = "01" // inputData["pharCertno"] = "430482199408260023" // inputData["pharName"] = "彭斯遥" // inputData["pharPracCertNo"] = "" // tempTime2 := time.Unix(info.Ctime, 0) // timeFormatTwo := tempTime2.Format("2006-01-02 15:04:05") // inputData["pharChkTime"] = timeFormatTwo // // bytesData, _ := json.Marshal(inputData) // fmt.Println(string(bytesData)) // encoded := base64.StdEncoding.EncodeToString(bytesData) // pdfContent, err := ioutil.ReadFile("signed_data.pdf") // if err != nil { // fmt.Println("Error reading PDF file:", err) // return // } // // // 将 PDF 文件内容进行 Base64 编码 // rx_encoded := base64.StdEncoding.EncodeToString(pdfContent) // // fmt.Println(err) // // if miConfig.MdtrtareaAdmvs == "340699" { // //result, request := service.GetAHCFYLJG002(miConfig.OrgName, curRoles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, encoded, rx_encoded, "") // //saveLog(result, request, "GetCFYLJG002", "GetCFYLJG002") // // } else { // result, request := service.GetCFYLJG002(miConfig.OrgName, curRoles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, encoded, rx_encoded, "") // //result, request := service.GetCFYLJG001(miConfig.OrgName, curRoles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, cFYLJG001,his.Insutype) // saveLog(result, request, "GetCFYLJG002", "GetCFYLJG002") // // } // // var res2 Result002 // var respJSON2 map[string]interface{} // if err := json.Unmarshal([]byte(string(result)), &respJSON2); err != nil { // utils.ErrorLog("接口返回数据解析JSON失败: %v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // userJSONBytes2, _ := json.Marshal(respJSON2) // if err := json.Unmarshal(userJSONBytes2, &res2); err != nil { // utils.ErrorLog("解析失败:%v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // if res2.Infcode == 0 { // flow.Ctime = time.Now().Unix() // flow.SignDigest = res2.Output.SignDigest // flow.RxFile = res2.Output.RxFile // flow.MID = his.Number // flow.Status = 1 // flow.DCode = doctor_info.DoctorNumber // flow.OriginalRxFile = rx_encoded // flow.OriginalValue = encoded // flow.SignCertDn = res2.Output.SignCertDn // flow.SignCertSn = res2.Output.SignCertSn // flow.Mtime = time.Now().Unix() // service.Saveflow(flow) // c.ServeSuccessJSON(map[string]interface{}{ // "msg": "预签名成功", // }) // } else { // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } //} //func (c *HisApiController) GetCFYLJG003() { // admin_user_id, _ := c.GetInt64("admin_user_id") // his_patient_id, _ := c.GetInt64("his_patient_id") // record_time := c.GetString("record_time") // admin_user_id = 3626 // his, _ := service.GetHisPatientRecord(c.GetAdminUserInfo().CurrentOrgId, his_patient_id) // //id, _ := c.GetInt64("id") // admin_user_id = 3626 // curRoles, _ := service.GetAdminUserInfoByID(c.GetAdminUserInfo().CurrentOrgId, admin_user_id) // miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId) // // flow, _ := service.Getflowtwo(his.Number) // //id = 3 // patient_id, _ := c.GetInt64("patient_id") // //patient_id = 23834 // //record_time = "2023-09-18" // timeLayout := "2006-01-02" // loc, _ := time.LoadLocation("Local") // theTime, err := time.ParseInLocation(timeLayout+" 15:04:05", record_time+" 00:00:00", loc) // if err != nil { // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) // return // } // recordDateTime := theTime.Unix() // //prescriptions, _ := service.GetHisPrescriptionForMedType(c.GetAdminUserInfo().CurrentOrgId, patient_id, recordDateTime) // info, _ := service.FindLastPatientPrescriptionInfoTwo(c.GetAdminUserInfo().CurrentOrgId, patient_id, recordDateTime) // doctor_info, _ := service.GetAdminUserInfoByID(c.GetAdminUserInfo().CurrentOrgId, info.DoctorId) // dept, _ := service.GetDepartMentDetail(info.Departments) // // //psn_info,_ := service.GetPsnByPatientId(his.PatientId) // // var cFYLJG003 models.CFYLJG003 // // cFYLJG003.RxTraceCode = flow.RxTraceCode // cFYLJG003.HiRxno = flow.HiRxno // cFYLJG003.MdtrtID = flow.MID // cFYLJG003.PatnName = his.Name // cFYLJG003.Certno = his.Certno // cFYLJG003.FixmedinsName = miConfig.OrgName // cFYLJG003.FixmedinsCode = miConfig.Code // // cFYLJG003.DrCode = doctor_info.DoctorNumber // cFYLJG003.PrscDrName = doctor_info.UserName // cFYLJG003.PharDeptName = dept.Name // cFYLJG003.PharDeptCode = dept.Number // cFYLJG003.PharCode = "HY440309002107" // cFYLJG003.PharCertType = "01" // cFYLJG003.PharCertno = "430482199408260023" // cFYLJG003.PharName = "彭斯遥" // cFYLJG003.PsnCertType = "01" // cFYLJG003.RxFile = flow.RxFile // cFYLJG003.SignDigest = flow.SignDigest // cFYLJG003.FixmedinsCode = miConfig.Code // cFYLJG003.PsnCertType = "01" // cFYLJG003.PharProfttlCodg = dept.Name // //inputData["pharProfttlCodg"] =dept.Name // // tempTime2 := time.Unix(info.Ctime, 0) // timeFormatTwo := tempTime2.Format("2006-01-02 15:04:05") // cFYLJG003.PharChkTime = timeFormatTwo // // if miConfig.MdtrtareaAdmvs == "340699" { // //result, request := service.GetAHCFYLJG002(miConfig.OrgName, curRoles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, encoded, rx_encoded, "") // //result, request := service.GetAHCFYLJG003(miConfig.OrgName, curRoles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, cFYLJG003) // //saveLog(result, request, "GetAHCFYLJG003", "GetAHCFYLJG003") // } else { // result, request := service.GetCFYLJG003(miConfig.OrgName, curRoles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, cFYLJG003) // saveLog(result, request, "GetCFYLJG003", "GetCFYLJG003") // // } // // var res ResultCFYLJG003 // var respJSON2 map[string]interface{} // if err := json.Unmarshal([]byte(string(result)), &respJSON2); err != nil { // utils.ErrorLog("接口返回数据解析JSON失败: %v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // userJSONBytes2, _ := json.Marshal(respJSON2) // if err := json.Unmarshal(userJSONBytes2, &res); err != nil { // utils.ErrorLog("解析失败:%v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // if res.Infcode == -1 { // c.ServeSuccessJSON(map[string]interface{}{ // "failed_code": -10, // "msg": res.ErrMsg, // }) // return // } else { // c.ServeSuccessJSON(map[string]interface{}{ // "info": res.Output, // }) // } // //} //func (c *HisApiController) GetCFYLJG004() { // admin_user_id, _ := c.GetInt64("admin_user_id") // his_patient_id, _ := c.GetInt64("his_patient_id") // record_time := c.GetString("record_time") // admin_user_id = 3626 // his, _ := service.GetHisPatientRecord(c.GetAdminUserInfo().CurrentOrgId, his_patient_id) // //id, _ := c.GetInt64("id") // admin_user_id = 3626 // curRoles, _ := service.GetAdminUserInfoByID(c.GetAdminUserInfo().CurrentOrgId, admin_user_id) // miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId) // // flow, _ := service.Getflowtwo(his.Number) // //id = 3 // patient_id, _ := c.GetInt64("patient_id") // //patient_id = 23834 // //record_time = "2023-09-18" // timeLayout := "2006-01-02" // loc, _ := time.LoadLocation("Local") // theTime, err := time.ParseInLocation(timeLayout+" 15:04:05", record_time+" 00:00:00", loc) // if err != nil { // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) // return // } // recordDateTime := theTime.Unix() // info, _ := service.FindLastPatientPrescriptionInfoTwo(c.GetAdminUserInfo().CurrentOrgId, patient_id, recordDateTime) // doctor_info, _ := service.GetAdminUserInfoByID(c.GetAdminUserInfo().CurrentOrgId, info.DoctorId) // var cFYLJG004 models.CFYLJG004 // cFYLJG004.HiRxno = flow.HiRxno // cFYLJG004.FixmedinsCode = miConfig.Code // cFYLJG004.UndoDrCertno = doctor_info.IdCard // cFYLJG004.UndoDrCertType = "01" // cFYLJG004.UndoRea = "撤销处方" // cFYLJG004.UndoTime = time.Now().Format("2006-01-02 15:04:05") // cFYLJG004.UndoDrName = doctor_info.UserName // cFYLJG004.UndoDrCode = doctor_info.DoctorNumber // // if miConfig.MdtrtareaAdmvs == "340699" { // //result, request := service.GetAHCFYLJG002(miConfig.OrgName, curRoles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, encoded, rx_encoded, "") // //result, request := service.GetAHCFYLJG004(miConfig.OrgName, curRoles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, cFYLJG003) // //saveLog(result, request, "GetAHCFYLJG004", "GetAHCFYLJG004") // // } else { // result, request := service.GetCFYLJG004(miConfig.OrgName, curRoles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, cFYLJG004) // saveLog(result, request, "GetCFYLJG004", "GetCFYLJG004") // // } // // var res ResultCFYLJG004 // var respJSON2 map[string]interface{} // if err := json.Unmarshal([]byte(string(result)), &respJSON2); err != nil { // utils.ErrorLog("接口返回数据解析JSON失败: %v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // userJSONBytes2, _ := json.Marshal(respJSON2) // if err := json.Unmarshal(userJSONBytes2, &res); err != nil { // utils.ErrorLog("解析失败:%v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // if res.Infcode == -1 { // c.ServeSuccessJSON(map[string]interface{}{ // "failed_code": -10, // "msg": res.ErrMsg, // }) // return // } else { // flow.Status = 0 // service.Saveflow(flow) // c.ServeSuccessJSON(map[string]interface{}{ // "msg": "撤销成功", // }) // return // // } //} //func (c *HisApiController) GetCFYLJG005() { // admin_user_id, _ := c.GetInt64("admin_user_id") // his_patient_id, _ := c.GetInt64("his_patient_id") // //record_time := c.GetString("record_time") // admin_user_id = 3626 // his, _ := service.GetHisPatientRecord(c.GetAdminUserInfo().CurrentOrgId, his_patient_id) // //id, _ := c.GetInt64("id") // admin_user_id = 3626 // curRoles, _ := service.GetAdminUserInfoByID(c.GetAdminUserInfo().CurrentOrgId, admin_user_id) // miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId) // // flow, _ := service.Getflowtwo(his.Number) // //id = 3 // var cFYLJG005 models.CFYLJG005 // // //patient_id, _ := c.GetInt64("patient_id") // cFYLJG005.HiRxno = flow.HiRxno // cFYLJG005.MdtrtID = flow.MID // cFYLJG005.EcToken = "" // cFYLJG005.PsnName = his.Name // cFYLJG005.PsnCertType = "01" // cFYLJG005.Certno = his.IdCardNo // // if miConfig.MdtrtareaAdmvs == "340699" { // //result, request := service.GetAHCFYLJG002(miConfig.OrgName, curRoles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, encoded, rx_encoded, "") // // //result, request := service.GetAHCFYLJG005(miConfig.OrgName, curRoles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, cFYLJG005) // //saveLog(result, request, "GetCFYLJG005", "GetCFYLJG005") // // } else { // result, request := service.GetCFYLJG005(miConfig.OrgName, curRoles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, cFYLJG005) // saveLog(result, request, "GetCFYLJG005", "GetCFYLJG005") // // } // // var res ResultCFYLJG005 // var respJSON2 map[string]interface{} // if err := json.Unmarshal([]byte(string(result)), &respJSON2); err != nil { // utils.ErrorLog("接口返回数据解析JSON失败: %v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // userJSONBytes2, _ := json.Marshal(respJSON2) // if err := json.Unmarshal(userJSONBytes2, &res); err != nil { // utils.ErrorLog("解析失败:%v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // if res.Infcode == -1 { // c.ServeSuccessJSON(map[string]interface{}{ // "failed_code": -10, // "msg": res.ErrMsg, // }) // return // } else { // c.ServeSuccessJSON(map[string]interface{}{ // "info": res.Output, // }) // return // } //} //func (c *HisApiController) GetCFYLJG006() { // admin_user_id, _ := c.GetInt64("admin_user_id") // his_patient_id, _ := c.GetInt64("his_patient_id") // admin_user_id = 3626 // his, _ := service.GetHisPatientRecord(c.GetAdminUserInfo().CurrentOrgId, his_patient_id) // //id, _ := c.GetInt64("id") // admin_user_id = 3626 // curRoles, _ := service.GetAdminUserInfoByID(c.GetAdminUserInfo().CurrentOrgId, admin_user_id) // miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId) // // flow, _ := service.Getflowtwo(his.Number) // //id = 3 // patient_id, _ := c.GetInt64("patient_id") // var cFYLJG006 models.CFYLJG006 // patient, _ := service.GetPatientByID(c.GetAdminUserInfo().CurrentOrgId, patient_id) // cFYLJG006.HiRxno = flow.HiRxno // cFYLJG006.MdtrtID = flow.MID // cFYLJG006.PsnName = patient.Name // cFYLJG006.PsnCertType = "01" // cFYLJG006.Certno = patient.IdCardNo // // if miConfig.MdtrtareaAdmvs == "340699" { // //result, request := service.GetAHCFYLJG002(miConfig.OrgName, curRoles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, encoded, rx_encoded, "") // // result, request := service.GetAHCFYLJG006(miConfig.OrgName, curRoles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, cFYLJG006) // saveLog(result, request, "GetCFYLJG006", "GetCFYLJG006") // } else { // result, request := service.GetCFYLJG006(miConfig.OrgName, curRoles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, cFYLJG006) // saveLog(result, request, "GetCFYLJG006", "GetCFYLJG006") // } // // var res ResultCFYLJG006 // var respJSON2 map[string]interface{} // if err := json.Unmarshal([]byte(string(result)), &respJSON2); err != nil { // utils.ErrorLog("接口返回数据解析JSON失败: %v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // userJSONBytes2, _ := json.Marshal(respJSON2) // if err := json.Unmarshal(userJSONBytes2, &res); err != nil { // utils.ErrorLog("解析失败:%v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // if res.Infcode == -1 { // c.ServeSuccessJSON(map[string]interface{}{ // "failed_code": -10, // "msg": res.ErrMsg, // }) // return // } else { // c.ServeSuccessJSON(map[string]interface{}{ // "info": res.Output, // }) // return // } //} //func (c *HisApiController) GetCFYLJG007() { // admin_user_id, _ := c.GetInt64("admin_user_id") // his_patient_id, _ := c.GetInt64("his_patient_id") // admin_user_id = 3626 // his, _ := service.GetHisPatientRecord(c.GetAdminUserInfo().CurrentOrgId, his_patient_id) // //id, _ := c.GetInt64("id") // admin_user_id = 3626 // curRoles, _ := service.GetAdminUserInfoByID(c.GetAdminUserInfo().CurrentOrgId, admin_user_id) // miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId) // // flow, _ := service.Getflowtwo(his.Number) // //id = 3 // patient_id, _ := c.GetInt64("patient_id") // var cFYLJG007 models.CFYLJG007 // patient, _ := service.GetPatientByID(c.GetAdminUserInfo().CurrentOrgId, patient_id) // //his, _ := service.GetHisPatient(c.GetAdminUserInfo().CurrentOrgId,patient_id) // // cFYLJG007.HiRxno = flow.HiRxno // cFYLJG007.MdtrtID = flow.MID // cFYLJG007.PsnNo = his.PsnNo // cFYLJG007.PsnCertType = "01" // cFYLJG007.Certno = patient.IdCardNo // cFYLJG007.PsnName = patient.Name // // if miConfig.MdtrtareaAdmvs == "340699" { // result, request := service.GetAHCFYLJG007(miConfig.OrgName, curRoles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, cFYLJG007) // saveLog(result, request, "GetCFYLJG007", "GetCFYLJG007") // } else { // result, request := service.GetCFYLJG007(miConfig.OrgName, curRoles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, cFYLJG007) // saveLog(result, request, "GetCFYLJG007", "GetCFYLJG007") // } // // var res ResultCFYLJG007 // var respJSON2 map[string]interface{} // if err := json.Unmarshal([]byte(string(result)), &respJSON2); err != nil { // utils.ErrorLog("接口返回数据解析JSON失败: %v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // userJSONBytes2, _ := json.Marshal(respJSON2) // if err := json.Unmarshal(userJSONBytes2, &res); err != nil { // utils.ErrorLog("解析失败:%v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // if res.Infcode == -1 { // c.ServeSuccessJSON(map[string]interface{}{ // "failed_code": -10, // "msg": res.ErrMsg, // }) // return // } else { // c.ServeSuccessJSON(map[string]interface{}{ // "info": res, // }) // return // } //} // //func (c *HisApiController) GetCFYLJG008() { // admin_user_id, _ := c.GetInt64("admin_user_id") // curRoles, _ := service.GetAdminUserInfoByID(c.GetAdminUserInfo().CurrentOrgId, admin_user_id) // miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId) // var cFYLJG008 models.CFYLJG008 // //id, _ := c.GetInt64("id") // patient_id, _ := c.GetInt64("patient_id") // //patient, _ := service.G/etPatientByID(c.GetAdminUserInfo().CurrentOrgId,patient_id) // //his, _ := service.GetHisPatient(c.GetAdminUserInfo().CurrentOrgId,patient_id) // //id = 3 // //flow, _ := service.Getflow(id) // //his, _ := service.GetHisPatientByNumber(flow.MID) // // // // //admin_user_id, _ := c.GetInt64("admin_user_id") // //patient_id, _ := c.GetInt64("patient_id") // //his_patient_id, _ := c.GetInt64("his_patient_id") // record_time := c.GetString("record_time") // // admin_user_id = 3626 // patient_id = 19424 // //his_patient_id = 263947 // record_time = "2023-08-29" // // timeLayout := "2006-01-02" // loc, _ := time.LoadLocation("Local") // theTime, err := time.ParseInLocation(timeLayout+" 15:04:05", record_time+" 00:00:00", loc) // if err != nil { // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) // return // } // recordDateTime := theTime.Unix() // prescriptions, _ := service.GetHisPrescriptionForMedType(c.GetAdminUserInfo().CurrentOrgId, patient_id, recordDateTime) // // cFYLJG008.FixmedinsName = "" // cFYLJG008.Lat = "" // cFYLJG008.Lng = "" // cFYLJG008.OrderType = "1" // cFYLJG008.PoolareaNo = "" // cFYLJG008.Lng = "" // cFYLJG008.PageNum = 1 // cFYLJG008.PageSize = 10 // var MPI models.MedinsProdInvChgDDTO // MPI.MedListCodg = prescriptions[0].HisDoctorAdviceInfo[0].MedListCodg // MPI.Cnt = prescriptions[0].HisDoctorAdviceInfo[0].PrescribingNumber // cFYLJG008.MedList = append(cFYLJG008.MedList, MPI) // // if miConfig.MdtrtareaAdmvs == "340699" { // result, request := service.GetAHCFYLJG008(miConfig.OrgName, curRoles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, cFYLJG008) // saveLog(result, request, "GetAHCFYLJG008", "GetAHCFYLJG008") // // } else { // result, request := service.GetCFYLJG008(miConfig.OrgName, curRoles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, cFYLJG008) // saveLog(result, request, "GetCFYLJG008", "GetCFYLJG008") // // var res ResultCFYLJG008 // var respJSON2 map[string]interface{} // if err := json.Unmarshal([]byte(string(result)), &respJSON2); err != nil { // utils.ErrorLog("接口返回数据解析JSON失败: %v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // userJSONBytes2, _ := json.Marshal(respJSON2) // if err := json.Unmarshal(userJSONBytes2, &res); err != nil { // utils.ErrorLog("解析失败:%v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // if res.Infcode == -1 { // c.ServeSuccessJSON(map[string]interface{}{ // "failed_code": -10, // "msg": res.ErrMsg, // }) // return // } else { // c.ServeSuccessJSON(map[string]interface{}{ // "info": res.Output, // }) // return // } // } // //} func (c *HisApiController) GetBL4201A() { order_id, _ := c.GetInt64("order_id") admin_user_id, _ := c.GetInt64("admin_user_id") order, _ := service.GetHisOrderByIDTwo(order_id) his, _ := service.GetInHospitalRecordByNumber(order.MdtrtId) order_info, _ := service.GetHisOrderInfoByNumber(order.MdtrtId) order_info_two, _ := service.GetHisOrderInfoByNumberTwo(order.MdtrtId) curRoles, _ := service.GetAdminUserInfoByID(c.GetAdminUserInfo().CurrentOrgId, admin_user_id) miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId) department, _ := service.GetDepartMentDetail(his.Departments) pre, _ := service.GetNewHisPrescriptionByNumber(order.Number) doctor, _ := service.GetAdminUserInfoByID(c.GetAdminUserInfo().CurrentOrgId, pre.Creator) if order.ID == 0 { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisOrderNoExistParamWrong) return } var struct4201A models.Struct4201A var fsiOPFLDs []models.FsiOwnpayPatnFeeListDDTO for _, items := range order_info { memo := make(map[string]interface{}) var fsiOPFLD models.FsiOwnpayPatnFeeListDDTO fsiOPFLD.FixmedinsMdtrtID = items.OrderNumber fsiOPFLD.MedType = "14" fsiOPFLD.BkkpSn = items.FeedetlSn fsiOPFLD.FixmedinsCode = miConfig.Code fsiOPFLD.FixmedinsName = miConfig.OrgName fsiOPFLD.Cnt = fmt.Sprintf("%.2f", items.Cnt) fsiOPFLD.Pric = fmt.Sprintf("%.2f", items.Pric) fsiOPFLD.DetItemFeeSumamt = fmt.Sprintf("%.2f", items.DetItemFeeSumamt) if items.AdviceId > 0 && items.ProjectId == 0 && items.HisDoctorAdviceInfo.BaseDrugLib.IsUser != 1 && len(items.HisDoctorAdviceInfo.BaseDrugLib.MedicalInsuranceNumber) > 0 { fsiOPFLD.FeeOcurTime = time.Unix(items.HisDoctorAdviceInfo.CreatedTime, 0).Format("2006-01-02 15:04:05") fsiOPFLD.MedListCodg = items.HisDoctorAdviceInfo.BaseDrugLib.MedicalInsuranceNumber fsiOPFLD.MedinsListCodg = items.HisDoctorAdviceInfo.BaseDrugLib.MedicalInsuranceNumber fsiOPFLD.MedinsListName = items.HisDoctorAdviceInfo.BaseDrugLib.DrugName fsiOPFLD.Prodname = items.HisDoctorAdviceInfo.BaseDrugLib.DrugName fsiOPFLD.BilgDeptName = department.Name fsiOPFLD.BilgDeptCodg = department.Number fsiOPFLD.BilgDrCode = doctor.DoctorNumber fsiOPFLD.BilgDrName = doctor.UserName fsiOPFLD.MedChrgitmType = "09" memo["hosp_appr_flag"] = "1" memo["invoice_no"] = order.MdtrtId memo["memo"] = "自费" bytesData, _ := json.Marshal(memo) fsiOPFLD.Memo = string(bytesData) fsiOPFLDs = append(fsiOPFLDs, fsiOPFLD) } else if items.AdviceId == 0 && items.ProjectId > 0 { if items.HisPrescriptionProject.Type == 2 && len(items.HisPrescriptionProject.HisProject.MedicalCode) > 0 { fsiOPFLD.FeeOcurTime = time.Unix(items.HisPrescriptionProject.Ctime, 0).Format("2006-01-02 15:04:05") fsiOPFLD.MedListCodg = items.HisPrescriptionProject.HisProject.MedicalCode fsiOPFLD.MedinsListCodg = items.HisPrescriptionProject.HisProject.MedicalCode fsiOPFLD.MedinsListName = items.HisPrescriptionProject.HisProject.ProjectName fsiOPFLD.Prodname = items.HisPrescriptionProject.HisProject.ProjectName fsiOPFLD.BilgDeptName = department.Name fsiOPFLD.BilgDeptCodg = department.Number fsiOPFLD.BilgDrCode = doctor.DoctorNumber fsiOPFLD.BilgDrName = doctor.UserName switch items.HisPrescriptionProject.HisProject.CostClassify { case 0: break case 1: fsiOPFLD.MedChrgitmType = "14" break case 2: fsiOPFLD.MedChrgitmType = "05" break case 3: fsiOPFLD.MedChrgitmType = "03" break case 4: fsiOPFLD.MedChrgitmType = "03" break case 5: fsiOPFLD.MedChrgitmType = "08" break case 6: fsiOPFLD.MedChrgitmType = "14" break case 7: fsiOPFLD.MedChrgitmType = "14" break case 8: fsiOPFLD.MedChrgitmType = "03" break case 9: fsiOPFLD.MedChrgitmType = "14" break case 10: fsiOPFLD.MedChrgitmType = "14" break case 11: fsiOPFLD.MedChrgitmType = "06" break case 12: fsiOPFLD.MedChrgitmType = "12" break case 13: fsiOPFLD.MedChrgitmType = "01" break case 14: fsiOPFLD.MedChrgitmType = "04" break case 15: fsiOPFLD.MedChrgitmType = "14" break } memo["hosp_appr_flag"] = "1" memo["invoice_no"] = order.MdtrtId memo["memo"] = "自费" bytesData, _ := json.Marshal(memo) fsiOPFLD.Memo = string(bytesData) fsiOPFLDs = append(fsiOPFLDs, fsiOPFLD) } else if items.HisPrescriptionProject.Type == 3 && items.HisPrescriptionProject.GoodInfo.IsUser != 1 && len(items.HisPrescriptionProject.GoodInfo.MedicalInsuranceNumber) > 0 { fsiOPFLD.FeeOcurTime = time.Unix(items.HisPrescriptionProject.Ctime, 0).Format("2006-01-02 15:04:05") fsiOPFLD.MedListCodg = items.HisPrescriptionProject.GoodInfo.MedicalInsuranceNumber fsiOPFLD.MedinsListCodg = items.HisPrescriptionProject.GoodInfo.MedicalInsuranceNumber fsiOPFLD.BilgDeptName = department.Name fsiOPFLD.BilgDeptCodg = department.Number fsiOPFLD.BilgDrCode = doctor.DoctorNumber fsiOPFLD.BilgDrName = doctor.UserName fsiOPFLD.MedinsListName = items.HisPrescriptionProject.GoodInfo.GoodName fsiOPFLD.Prodname = items.HisPrescriptionProject.GoodInfo.GoodName fsiOPFLD.MedChrgitmType = "08" memo["hosp_appr_flag"] = "1" memo["invoice_no"] = order.MdtrtId memo["memo"] = "自费" bytesData, _ := json.Marshal(memo) fsiOPFLD.Memo = string(bytesData) fsiOPFLDs = append(fsiOPFLDs, fsiOPFLD) } } } for _, items := range order_info_two { memo := make(map[string]interface{}) var fsiOPFLD models.FsiOwnpayPatnFeeListDDTO fsiOPFLD.FixmedinsMdtrtID = items.OrderNumber fsiOPFLD.MedType = "14" fsiOPFLD.BkkpSn = items.FeedetlSn fsiOPFLD.FixmedinsCode = miConfig.Code fsiOPFLD.FixmedinsName = miConfig.OrgName fsiOPFLD.Cnt = fmt.Sprintf("%.2f", items.Cnt) fsiOPFLD.Pric = fmt.Sprintf("%.2f", items.Pric) fsiOPFLD.DetItemFeeSumamt = fmt.Sprintf("%.2f", items.DetItemFeeSumamt) if items.AdviceId > 0 && items.ProjectId == 0 && items.HisDoctorAdviceInfo.BaseDrugLib.IsUser != 1 && len(items.HisDoctorAdviceInfo.BaseDrugLib.MedicalInsuranceNumber) > 0 { fsiOPFLD.FeeOcurTime = time.Unix(items.HisDoctorAdviceInfo.CreatedTime, 0).Format("2006-01-02 15:04:05") fsiOPFLD.MedListCodg = items.HisDoctorAdviceInfo.BaseDrugLib.MedicalInsuranceNumber fsiOPFLD.MedinsListCodg = items.HisDoctorAdviceInfo.BaseDrugLib.MedicalInsuranceNumber fsiOPFLD.MedinsListName = items.HisDoctorAdviceInfo.BaseDrugLib.DrugName fsiOPFLD.Prodname = items.HisDoctorAdviceInfo.BaseDrugLib.DrugName fsiOPFLD.BilgDeptName = department.Name fsiOPFLD.BilgDeptCodg = department.Number fsiOPFLD.BilgDrCode = doctor.DoctorNumber fsiOPFLD.BilgDrName = doctor.UserName fsiOPFLD.MedChrgitmType = "09" memo["hosp_appr_flag"] = "1" memo["invoice_no"] = order.MdtrtId memo["memo"] = "自费" bytesData, _ := json.Marshal(memo) fsiOPFLD.Memo = string(bytesData) fsiOPFLDs = append(fsiOPFLDs, fsiOPFLD) } else if items.AdviceId == 0 && items.ProjectId > 0 { if items.HisPrescriptionProject.Type == 2 && len(items.HisPrescriptionProject.HisProject.MedicalCode) > 0 { fsiOPFLD.FeeOcurTime = time.Unix(items.HisPrescriptionProject.Ctime, 0).Format("2006-01-02 15:04:05") fsiOPFLD.MedListCodg = items.HisPrescriptionProject.HisProject.MedicalCode fsiOPFLD.MedinsListName = items.HisPrescriptionProject.HisProject.ProjectName fsiOPFLD.Prodname = items.HisPrescriptionProject.HisProject.ProjectName fsiOPFLD.MedinsListCodg = items.HisPrescriptionProject.HisProject.MedicalCode fsiOPFLD.BilgDeptName = department.Name fsiOPFLD.BilgDeptCodg = department.Number fsiOPFLD.BilgDrCode = doctor.DoctorNumber fsiOPFLD.BilgDrName = doctor.UserName switch items.HisPrescriptionProject.HisProject.CostClassify { case 0: break case 1: fsiOPFLD.MedChrgitmType = "14" break case 2: fsiOPFLD.MedChrgitmType = "05" break case 3: fsiOPFLD.MedChrgitmType = "03" break case 4: fsiOPFLD.MedChrgitmType = "03" break case 5: fsiOPFLD.MedChrgitmType = "08" break case 6: fsiOPFLD.MedChrgitmType = "14" break case 7: fsiOPFLD.MedChrgitmType = "14" break case 8: fsiOPFLD.MedChrgitmType = "03" break case 9: fsiOPFLD.MedChrgitmType = "14" break case 10: fsiOPFLD.MedChrgitmType = "14" break case 11: fsiOPFLD.MedChrgitmType = "06" break case 12: fsiOPFLD.MedChrgitmType = "12" break case 13: fsiOPFLD.MedChrgitmType = "01" break case 14: fsiOPFLD.MedChrgitmType = "04" break case 15: fsiOPFLD.MedChrgitmType = "14" break } memo["hosp_appr_flag"] = "1" memo["invoice_no"] = order.MdtrtId memo["memo"] = "自费" bytesData, _ := json.Marshal(memo) fsiOPFLD.Memo = string(bytesData) fsiOPFLDs = append(fsiOPFLDs, fsiOPFLD) } else if items.HisPrescriptionProject.Type == 3 && len(items.HisPrescriptionProject.GoodInfo.MedicalInsuranceNumber) > 0 && items.HisPrescriptionProject.GoodInfo.IsUser != 1 { fsiOPFLD.FeeOcurTime = time.Unix(items.HisPrescriptionProject.Ctime, 0).Format("2006-01-02 15:04:05") fsiOPFLD.MedListCodg = items.HisPrescriptionProject.GoodInfo.MedicalInsuranceNumber fsiOPFLD.MedinsListCodg = items.HisPrescriptionProject.GoodInfo.MedicalInsuranceNumber fsiOPFLD.BilgDeptName = department.Name fsiOPFLD.BilgDeptCodg = department.Number fsiOPFLD.BilgDrCode = doctor.DoctorNumber fsiOPFLD.BilgDrName = doctor.UserName fsiOPFLD.MedinsListName = items.HisPrescriptionProject.GoodInfo.GoodName fsiOPFLD.Prodname = items.HisPrescriptionProject.GoodInfo.GoodName fsiOPFLD.MedChrgitmType = "08" memo["hosp_appr_flag"] = "1" memo["invoice_no"] = order.MdtrtId memo["memo"] = "自费" bytesData, _ := json.Marshal(memo) fsiOPFLD.Memo = string(bytesData) fsiOPFLDs = append(fsiOPFLDs, fsiOPFLD) } } } fmt.Println(fsiOPFLDs) struct4201A.Fopfd = fsiOPFLDs fmt.Println(struct4201A.Fopfd) result, requestLog := service.Gdyb4201A(miConfig.OrgName, curRoles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, struct4201A) saveLog(result, requestLog, "4201A", "自费费用明细上传") var res2 ResultSix var respJSON2 map[string]interface{} if err := json.Unmarshal([]byte(string(result)), &respJSON2); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } userJSONBytes2, _ := json.Marshal(respJSON2) if err := json.Unmarshal(userJSONBytes2, &res2); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if res2.Infcode != 0 { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res2.ErrMsg, }) return } else { order.IsUploadOrderInfo = 1 service.UpdateOrder(order) c.ServeSuccessJSON(map[string]interface{}{ "msg": "上传成功", }) } } func (c *HisApiController) Get3103() { admin_user_id, _ := c.GetInt64("admin_user_id") warm_type, _ := c.GetInt64("warm_type") fk_state, _ := c.GetInt64("fk_state") warm_ids := c.GetString("warm_ids") desc := c.GetString("desc") miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId) curRoles, _ := service.GetAdminUserInfoByID(c.GetAdminUserInfo().CurrentOrgId, admin_user_id) result, requestLog := service.Gdyb3103(miConfig.OrgName, curRoles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, warm_type, warm_ids, fk_state, desc) saveLog(result, requestLog, "3103", "反馈") var res2 ResultSix var respJSON2 map[string]interface{} if err := json.Unmarshal([]byte(string(result)), &respJSON2); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } userJSONBytes2, _ := json.Marshal(respJSON2) if err := json.Unmarshal(userJSONBytes2, &res2); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if res2.Infcode != 0 { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res2.ErrMsg, }) return } else { c.ServeSuccessJSON(map[string]interface{}{ "msg": "反馈成功", }) return } } func (c *HisApiController) Get3103() { admin_user_id, _ := c.GetInt64("admin_user_id") miConfig, _ := service.FindMedicalInsuranceInfo(10375) curRoles, _ := service.GetAdminUserInfoByID(c.GetAdminUserInfo().CurrentOrgId, admin_user_id) service.Gdyb2505("45000000000008100145868008", curRoles.UserName, miConfig.OrgName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, "2024-01-12 09:00:00", "2026-12-31 23:00:00", admin_user_id) } func (c *HisApiController) Get4201A() { order_id, _ := c.GetInt64("order_id") admin_user_id, _ := c.GetInt64("admin_user_id") order, _ := service.GetHisOrderByIDTwo(order_id) his, _ := service.GetInHospitalRecordByNumber(order.MdtrtId) order_info, _ := service.GetHisOrderInfoByNumber(order.MdtrtId) order_info_two, _ := service.GetHisOrderInfoByNumberTwo(order.MdtrtId) //order_info = append(order_info, order_info_two...) curRoles, _ := service.GetAdminUserInfoByID(c.GetAdminUserInfo().CurrentOrgId, admin_user_id) miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId) department, _ := service.GetDepartMentDetail(his.Departments) pre, _ := service.GetNewHisPrescriptionByNumber(order.Number) doctor, _ := service.GetAdminUserInfoByID(c.GetAdminUserInfo().CurrentOrgId, pre.Creator) if order.ID == 0 { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisOrderNoExistParamWrong) return } var struct4201A models.Struct4201A var fsiOPFLDs []models.FsiOwnpayPatnFeeListDDTO for _, items := range order_info { memo := make(map[string]interface{}) var fsiOPFLD models.FsiOwnpayPatnFeeListDDTO fsiOPFLD.FixmedinsMdtrtID = items.OrderNumber fsiOPFLD.MedType = "14" fsiOPFLD.BkkpSn = items.FeedetlSn fsiOPFLD.FixmedinsCode = miConfig.Code fsiOPFLD.FixmedinsName = miConfig.OrgName fsiOPFLD.Cnt = fmt.Sprintf("%.2f", items.Cnt) fsiOPFLD.Pric = fmt.Sprintf("%.2f", items.Pric) fsiOPFLD.DetItemFeeSumamt = fmt.Sprintf("%.2f", items.DetItemFeeSumamt) if items.AdviceId > 0 && items.ProjectId == 0 && items.HisDoctorAdviceInfo.BaseDrugLib.IsUser != 1 && len(items.HisDoctorAdviceInfo.BaseDrugLib.MedicalInsuranceNumber) > 0 { fsiOPFLD.FeeOcurTime = time.Unix(items.HisDoctorAdviceInfo.CreatedTime, 0).Format("2006-01-02 15:04:05") fsiOPFLD.MedListCodg = items.HisDoctorAdviceInfo.BaseDrugLib.MedicalInsuranceNumber fsiOPFLD.MedinsListCodg = items.HisDoctorAdviceInfo.BaseDrugLib.MedicalInsuranceNumber fsiOPFLD.MedinsListName = items.HisDoctorAdviceInfo.BaseDrugLib.DrugName fsiOPFLD.Prodname = items.HisDoctorAdviceInfo.BaseDrugLib.DrugName fsiOPFLD.BilgDeptName = department.Name fsiOPFLD.BilgDeptCodg = department.Number fsiOPFLD.BilgDrCode = doctor.DoctorNumber fsiOPFLD.BilgDrName = doctor.UserName fsiOPFLD.MedChrgitmType = "09" memo["hosp_appr_flag"] = "1" memo["invoice_no"] = order.MdtrtId memo["memo"] = "自费" bytesData, _ := json.Marshal(memo) fsiOPFLD.Memo = string(bytesData) fsiOPFLDs = append(fsiOPFLDs, fsiOPFLD) } else if items.AdviceId == 0 && items.ProjectId > 0 { if items.HisPrescriptionProject.Type == 2 && len(items.HisPrescriptionProject.HisProject.MedicalCode) > 0 { fsiOPFLD.FeeOcurTime = time.Unix(items.HisPrescriptionProject.Ctime, 0).Format("2006-01-02 15:04:05") fsiOPFLD.MedListCodg = items.HisPrescriptionProject.HisProject.MedicalCode fsiOPFLD.MedinsListCodg = items.HisPrescriptionProject.HisProject.MedicalCode fsiOPFLD.MedinsListName = items.HisPrescriptionProject.HisProject.ProjectName fsiOPFLD.Prodname = items.HisPrescriptionProject.HisProject.ProjectName fsiOPFLD.BilgDeptName = department.Name fsiOPFLD.BilgDeptCodg = department.Number fsiOPFLD.BilgDrCode = doctor.DoctorNumber fsiOPFLD.BilgDrName = doctor.UserName switch items.HisPrescriptionProject.HisProject.CostClassify { case 0: break case 1: fsiOPFLD.MedChrgitmType = "14" break case 2: fsiOPFLD.MedChrgitmType = "05" break case 3: fsiOPFLD.MedChrgitmType = "03" break case 4: fsiOPFLD.MedChrgitmType = "03" break case 5: fsiOPFLD.MedChrgitmType = "08" break case 6: fsiOPFLD.MedChrgitmType = "14" break case 7: fsiOPFLD.MedChrgitmType = "14" break case 8: fsiOPFLD.MedChrgitmType = "03" break case 9: fsiOPFLD.MedChrgitmType = "14" break case 10: fsiOPFLD.MedChrgitmType = "14" break case 11: fsiOPFLD.MedChrgitmType = "06" break case 12: fsiOPFLD.MedChrgitmType = "12" break case 13: fsiOPFLD.MedChrgitmType = "01" break case 14: fsiOPFLD.MedChrgitmType = "04" break case 15: fsiOPFLD.MedChrgitmType = "14" break } memo["hosp_appr_flag"] = "1" memo["invoice_no"] = order.MdtrtId memo["memo"] = "自费" bytesData, _ := json.Marshal(memo) fsiOPFLD.Memo = string(bytesData) fsiOPFLDs = append(fsiOPFLDs, fsiOPFLD) } else if items.HisPrescriptionProject.Type == 3 && items.HisPrescriptionProject.GoodInfo.IsUser != 1 && len(items.HisPrescriptionProject.GoodInfo.MedicalInsuranceNumber) > 0 { fsiOPFLD.FeeOcurTime = time.Unix(items.HisPrescriptionProject.Ctime, 0).Format("2006-01-02 15:04:05") fsiOPFLD.MedListCodg = items.HisPrescriptionProject.GoodInfo.MedicalInsuranceNumber fsiOPFLD.MedinsListCodg = items.HisPrescriptionProject.GoodInfo.MedicalInsuranceNumber fsiOPFLD.BilgDeptName = department.Name fsiOPFLD.BilgDeptCodg = department.Number fsiOPFLD.BilgDrCode = doctor.DoctorNumber fsiOPFLD.BilgDrName = doctor.UserName fsiOPFLD.MedinsListName = items.HisPrescriptionProject.GoodInfo.GoodName fsiOPFLD.Prodname = items.HisPrescriptionProject.GoodInfo.GoodName fsiOPFLD.MedChrgitmType = "08" memo["hosp_appr_flag"] = "1" memo["invoice_no"] = order.MdtrtId memo["memo"] = "自费" bytesData, _ := json.Marshal(memo) fsiOPFLD.Memo = string(bytesData) fsiOPFLDs = append(fsiOPFLDs, fsiOPFLD) } } } for _, items := range order_info_two { memo := make(map[string]interface{}) var fsiOPFLD models.FsiOwnpayPatnFeeListDDTO fsiOPFLD.FixmedinsMdtrtID = items.OrderNumber fsiOPFLD.MedType = "14" fsiOPFLD.BkkpSn = items.FeedetlSn fsiOPFLD.FixmedinsCode = miConfig.Code fsiOPFLD.FixmedinsName = miConfig.OrgName fsiOPFLD.Cnt = fmt.Sprintf("%.2f", items.Cnt) fsiOPFLD.Pric = fmt.Sprintf("%.2f", items.Pric) fsiOPFLD.DetItemFeeSumamt = fmt.Sprintf("%.2f", items.DetItemFeeSumamt) if items.AdviceId > 0 && items.ProjectId == 0 && items.HisDoctorAdviceInfo.BaseDrugLib.IsUser != 1 && len(items.HisDoctorAdviceInfo.BaseDrugLib.MedicalInsuranceNumber) > 0 { fsiOPFLD.FeeOcurTime = time.Unix(items.HisDoctorAdviceInfo.CreatedTime, 0).Format("2006-01-02 15:04:05") fsiOPFLD.MedListCodg = items.HisDoctorAdviceInfo.BaseDrugLib.MedicalInsuranceNumber fsiOPFLD.MedinsListCodg = items.HisDoctorAdviceInfo.BaseDrugLib.MedicalInsuranceNumber fsiOPFLD.MedinsListName = items.HisDoctorAdviceInfo.BaseDrugLib.DrugName fsiOPFLD.Prodname = items.HisDoctorAdviceInfo.BaseDrugLib.DrugName fsiOPFLD.BilgDeptName = department.Name fsiOPFLD.BilgDeptCodg = department.Number fsiOPFLD.BilgDrCode = doctor.DoctorNumber fsiOPFLD.BilgDrName = doctor.UserName fsiOPFLD.MedChrgitmType = "09" memo["hosp_appr_flag"] = "1" memo["invoice_no"] = order.MdtrtId memo["memo"] = "自费" bytesData, _ := json.Marshal(memo) fsiOPFLD.Memo = string(bytesData) fsiOPFLDs = append(fsiOPFLDs, fsiOPFLD) } else if items.AdviceId == 0 && items.ProjectId > 0 { if items.HisPrescriptionProject.Type == 2 && len(items.HisPrescriptionProject.HisProject.MedicalCode) > 0 { fsiOPFLD.FeeOcurTime = time.Unix(items.HisPrescriptionProject.Ctime, 0).Format("2006-01-02 15:04:05") fsiOPFLD.MedListCodg = items.HisPrescriptionProject.HisProject.MedicalCode fsiOPFLD.MedinsListName = items.HisPrescriptionProject.HisProject.ProjectName fsiOPFLD.Prodname = items.HisPrescriptionProject.HisProject.ProjectName fsiOPFLD.MedinsListCodg = items.HisPrescriptionProject.HisProject.MedicalCode fsiOPFLD.BilgDeptName = department.Name fsiOPFLD.BilgDeptCodg = department.Number fsiOPFLD.BilgDrCode = doctor.DoctorNumber fsiOPFLD.BilgDrName = doctor.UserName switch items.HisPrescriptionProject.HisProject.CostClassify { case 0: break case 1: fsiOPFLD.MedChrgitmType = "14" break case 2: fsiOPFLD.MedChrgitmType = "05" break case 3: fsiOPFLD.MedChrgitmType = "03" break case 4: fsiOPFLD.MedChrgitmType = "03" break case 5: fsiOPFLD.MedChrgitmType = "08" break case 6: fsiOPFLD.MedChrgitmType = "14" break case 7: fsiOPFLD.MedChrgitmType = "14" break case 8: fsiOPFLD.MedChrgitmType = "03" break case 9: fsiOPFLD.MedChrgitmType = "14" break case 10: fsiOPFLD.MedChrgitmType = "14" break case 11: fsiOPFLD.MedChrgitmType = "06" break case 12: fsiOPFLD.MedChrgitmType = "12" break case 13: fsiOPFLD.MedChrgitmType = "01" break case 14: fsiOPFLD.MedChrgitmType = "04" break case 15: fsiOPFLD.MedChrgitmType = "14" break } memo["hosp_appr_flag"] = "1" memo["invoice_no"] = order.MdtrtId memo["memo"] = "自费" bytesData, _ := json.Marshal(memo) fsiOPFLD.Memo = string(bytesData) fsiOPFLDs = append(fsiOPFLDs, fsiOPFLD) } else if items.HisPrescriptionProject.Type == 3 && len(items.HisPrescriptionProject.GoodInfo.MedicalInsuranceNumber) > 0 && items.HisPrescriptionProject.GoodInfo.IsUser != 1 { fsiOPFLD.FeeOcurTime = time.Unix(items.HisPrescriptionProject.Ctime, 0).Format("2006-01-02 15:04:05") fsiOPFLD.MedListCodg = items.HisPrescriptionProject.GoodInfo.MedicalInsuranceNumber fsiOPFLD.MedinsListCodg = items.HisPrescriptionProject.GoodInfo.MedicalInsuranceNumber fsiOPFLD.BilgDeptName = department.Name fsiOPFLD.BilgDeptCodg = department.Number fsiOPFLD.BilgDrCode = doctor.DoctorNumber fsiOPFLD.BilgDrName = doctor.UserName fsiOPFLD.MedinsListName = items.HisPrescriptionProject.GoodInfo.GoodName fsiOPFLD.Prodname = items.HisPrescriptionProject.GoodInfo.GoodName fsiOPFLD.MedChrgitmType = "08" memo["hosp_appr_flag"] = "1" memo["invoice_no"] = order.MdtrtId memo["memo"] = "自费" bytesData, _ := json.Marshal(memo) fsiOPFLD.Memo = string(bytesData) fsiOPFLDs = append(fsiOPFLDs, fsiOPFLD) } } } fmt.Println(fsiOPFLDs) struct4201A.Fopfd = fsiOPFLDs fmt.Println(struct4201A.Fopfd) result, requestLog := service.Gdyb4201A(miConfig.OrgName, curRoles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, struct4201A) saveLog(result, requestLog, "4201A", "自费费用明细上传") var res2 ResultSix var respJSON2 map[string]interface{} if err := json.Unmarshal([]byte(string(result)), &respJSON2); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } userJSONBytes2, _ := json.Marshal(respJSON2) if err := json.Unmarshal(userJSONBytes2, &res2); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if res2.Infcode != 0 { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res2.ErrMsg, }) return } else { order.IsUploadOrderInfo = 1 service.UpdateOrder(order) c.ServeSuccessJSON(map[string]interface{}{ "msg": "上传成功", }) } } func (c *HisApiController) Get4202() { order_id, _ := c.GetInt64("order_id") admin_user_id, _ := c.GetInt64("admin_user_id") order, _ := service.GetHisOrderByIDTwo(order_id) his, _ := service.GetInHospitalRecordByNumber(order.MdtrtId) curRoles, _ := service.GetAdminUserInfoByID(c.GetAdminUserInfo().CurrentOrgId, admin_user_id) miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId) if order.ID == 0 { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisOrderNoExistParamWrong) return } var struct4202 models.Struct4202 struct4202.OwnPayPatnMdtrtD.FixmedinsMdtrtID = his.Number struct4202.OwnPayPatnMdtrtD.FixmedinsCode = miConfig.Code struct4202.OwnPayPatnMdtrtD.FixmedinsName = miConfig.OrgName struct4202.OwnPayPatnMdtrtD.PsnCertType = "01" struct4202.OwnPayPatnMdtrtD.Certno = his.IdCardNo struct4202.OwnPayPatnMdtrtD.PsnName = his.Name struct4202.OwnPayPatnMdtrtD.Begntime = his.InHosptialTime struct4202.OwnPayPatnMdtrtD.MedType = "14" struct4202.OwnPayPatnMdtrtD.ValiFlag = "1" struct4202.OwnPayPatnMdtrtD.MedfeeSumamt = fmt.Sprintf("%.2f", order.MedfeeSumamt) diagnosis_ids := strings.Split(his.Diagnosis, ",") var config []*models.HisXtDiagnoseConfig for _, item := range diagnosis_ids { id, _ := strconv.ParseInt(item, 10, 64) diagnosisConfig, _ := service.FindDiagnoseById(id) config = append(config, &diagnosisConfig) } var tempDiaginfos []models.OwnPayPatnDiagListD for index, item := range config { if index == 0 { var tempDiaginfo models.OwnPayPatnDiagListD tempDiaginfo.InoutDiagType = "1" tempDiaginfo.DiagCode = item.CountryCode tempDiaginfo.DiagName = item.CountryContentName tempDiaginfo.DiagType = "1" tempDiaginfo.DiagSrtNo = "1" tempDiaginfo.MaindiagFlag = "1" tempDiaginfo.ValiFlag = "1" tempDiaginfos = append(tempDiaginfos, tempDiaginfo) } else { var tempDiaginfo models.OwnPayPatnDiagListD tempDiaginfo.DiagCode = item.CountryCode tempDiaginfo.DiagName = item.CountryContentName tempDiaginfo.DiagType = "2" tempDiaginfo.DiagSrtNo = strconv.FormatInt(int64(index+1), 10) tempDiaginfo.MaindiagFlag = "0" tempDiaginfo.ValiFlag = "1" tempDiaginfos = append(tempDiaginfos, tempDiaginfo) } } struct4202.ODiagListD = tempDiaginfos result, requestLog := service.Gdyb4202(miConfig.OrgName, curRoles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, struct4202) saveLog(result, requestLog, "4202", "自费就诊和诊断信息上传") var res2 ResultSix var respJSON2 map[string]interface{} if err := json.Unmarshal([]byte(string(result)), &respJSON2); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } userJSONBytes2, _ := json.Marshal(respJSON2) if err := json.Unmarshal(userJSONBytes2, &res2); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if res2.Infcode != 0 { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res2.ErrMsg, }) return } else { order.IsUploadDiagnose = 1 service.UpdateOrder(order) c.ServeSuccessJSON(map[string]interface{}{ "msg": "上传成功", }) } } func (c *HisApiController) Get4203() { admin_user_id, _ := c.GetInt64("admin_user_id") curRoles, _ := service.GetAdminUserInfoByID(c.GetAdminUserInfo().CurrentOrgId, admin_user_id) miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId) order_id, _ := c.GetInt64("order_id") order, _ := service.GetHisOrderByIDTwo1111(order_id) number := "" his, _ := service.GetHisPatientByNumber(order.MdtrtId) hospital, _ := service.GetInHospitalRecordByNumber(order.MdtrtId) if his.ID == 0 { number = hospital.Number } else { number = his.Number } result, requestLog := service.Gdyb4203(miConfig.OrgName, curRoles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, number) saveLog(result, requestLog, "4203", "自费就诊与结算明细上传完成") var res2 ResultSix var respJSON2 map[string]interface{} if err := json.Unmarshal([]byte(string(result)), &respJSON2); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } userJSONBytes2, _ := json.Marshal(respJSON2) if err := json.Unmarshal(userJSONBytes2, &res2); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if res2.Infcode != 0 { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res2.ErrMsg, }) return } else { order.IsUploadSuccess = 1 service.UpdateOrderTwo(order) c.ServeSuccessJSON(map[string]interface{}{ "msg": "上传成功", }) } } func (c *HisApiController) Get4205() { order_id, _ := c.GetInt64("order_id") admin_user_id, _ := c.GetInt64("admin_user_id") fapiao_code := c.GetString("fapiao_code") order, _ := service.GetHisOrderByIDTwo1111(order_id) his, _ := service.GetHisPatientByNumber(order.MdtrtId) curRoles, _ := service.GetAdminUserInfoByID(c.GetAdminUserInfo().CurrentOrgId, admin_user_id) miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId) order_info, _ := service.GetHisOrderInfoByNumber(order.Number) order_info_two, _ := service.GetHisOrderInfoByNumberTwo(order.Number) //order_info = append(order_info, order_info_two...) department, _ := service.GetDepartMentDetail(his.Departments) pre, _ := service.GetNewHisPrescriptionByNumber(order.Number) doctor, _ := service.GetAdminUserInfoByID(c.GetAdminUserInfo().CurrentOrgId, pre.Creator) if order.ID == 0 { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisOrderNoExistParamWrong) return } var struct4201A models.Struct4201A var fsiOPFLDs []models.FsiOwnpayPatnFeeListDDTO for _, items := range order_info { memo := make(map[string]interface{}) var fsiOPFLD models.FsiOwnpayPatnFeeListDDTO fsiOPFLD.FixmedinsMdtrtID = items.OrderNumber fsiOPFLD.MedType = pre.MedType fsiOPFLD.FixmedinsCode = miConfig.Code fsiOPFLD.FixmedinsName = miConfig.OrgName fsiOPFLD.Cnt = fmt.Sprintf("%.2f", items.Cnt) fsiOPFLD.Pric = fmt.Sprintf("%.2f", items.Pric) fsiOPFLD.DetItemFeeSumamt = fmt.Sprintf("%.2f", items.DetItemFeeSumamt) if items.AdviceId > 0 && items.ProjectId == 0 && items.HisDoctorAdviceInfo.BaseDrugLib.IsUser != 1 && len(items.HisDoctorAdviceInfo.BaseDrugLib.MedicalInsuranceNumber) > 0 { fsiOPFLD.FeeOcurTime = time.Unix(items.HisDoctorAdviceInfo.CreatedTime, 0).Format("2006-01-02 15:04:05") fsiOPFLD.MedListCodg = items.HisDoctorAdviceInfo.BaseDrugLib.MedicalInsuranceNumber fsiOPFLD.BkkpSn = items.HisDoctorAdviceInfo.FeedetlSn fsiOPFLD.MedinsListCodg = items.HisDoctorAdviceInfo.BaseDrugLib.MedicalInsuranceNumber fsiOPFLD.MedinsListName = items.HisDoctorAdviceInfo.BaseDrugLib.DrugName fsiOPFLD.Prodname = items.HisDoctorAdviceInfo.BaseDrugLib.DrugName fsiOPFLD.BilgDeptName = department.Name fsiOPFLD.BilgDeptCodg = department.Number fsiOPFLD.BilgDrCode = doctor.DoctorNumber fsiOPFLD.BilgDrName = doctor.UserName fsiOPFLD.MedChrgitmType = "09" memo["hosp_appr_flag"] = "1" memo["invoice_no"] = fapiao_code memo["memo"] = "自费" bytesData, _ := json.Marshal(memo) fsiOPFLD.Memo = string(bytesData) fsiOPFLDs = append(fsiOPFLDs, fsiOPFLD) } else if items.AdviceId == 0 && items.ProjectId > 0 { fsiOPFLD.BkkpSn = items.HisPrescriptionProject.FeedetlSn if items.HisPrescriptionProject.Type == 2 && len(items.HisPrescriptionProject.HisProject.MedicalCode) > 0 { fsiOPFLD.FeeOcurTime = time.Unix(items.HisPrescriptionProject.Ctime, 0).Format("2006-01-02 15:04:05") fsiOPFLD.MedListCodg = items.HisPrescriptionProject.HisProject.MedicalCode fsiOPFLD.MedinsListCodg = items.HisPrescriptionProject.HisProject.MedicalCode fsiOPFLD.MedinsListName = items.HisPrescriptionProject.HisProject.ProjectName fsiOPFLD.Prodname = items.HisPrescriptionProject.HisProject.ProjectName fsiOPFLD.BilgDeptName = department.Name fsiOPFLD.BilgDeptCodg = department.Number fsiOPFLD.BilgDrCode = doctor.DoctorNumber fsiOPFLD.BilgDrName = doctor.UserName switch items.HisPrescriptionProject.HisProject.CostClassify { case 0: break case 1: fsiOPFLD.MedChrgitmType = "14" break case 2: fsiOPFLD.MedChrgitmType = "05" break case 3: fsiOPFLD.MedChrgitmType = "03" break case 4: fsiOPFLD.MedChrgitmType = "03" break case 5: fsiOPFLD.MedChrgitmType = "08" break case 6: fsiOPFLD.MedChrgitmType = "14" break case 7: fsiOPFLD.MedChrgitmType = "14" break case 8: fsiOPFLD.MedChrgitmType = "03" break case 9: fsiOPFLD.MedChrgitmType = "14" break case 10: fsiOPFLD.MedChrgitmType = "14" break case 11: fsiOPFLD.MedChrgitmType = "06" break case 12: fsiOPFLD.MedChrgitmType = "12" break case 13: fsiOPFLD.MedChrgitmType = "01" break case 14: fsiOPFLD.MedChrgitmType = "04" break case 15: fsiOPFLD.MedChrgitmType = "14" break } memo["hosp_appr_flag"] = "1" memo["invoice_no"] = fapiao_code memo["memo"] = "自费" bytesData, _ := json.Marshal(memo) fsiOPFLD.Memo = string(bytesData) fsiOPFLDs = append(fsiOPFLDs, fsiOPFLD) } else if items.HisPrescriptionProject.Type == 3 && items.HisPrescriptionProject.GoodInfo.IsUser != 1 && len(items.HisPrescriptionProject.GoodInfo.MedicalInsuranceNumber) > 0 { fsiOPFLD.FeeOcurTime = time.Unix(items.HisPrescriptionProject.Ctime, 0).Format("2006-01-02 15:04:05") fsiOPFLD.MedListCodg = items.HisPrescriptionProject.GoodInfo.MedicalInsuranceNumber fsiOPFLD.MedinsListCodg = items.HisPrescriptionProject.GoodInfo.MedicalInsuranceNumber fsiOPFLD.BilgDeptName = department.Name fsiOPFLD.BilgDeptCodg = department.Number fsiOPFLD.BilgDrCode = doctor.DoctorNumber fsiOPFLD.BilgDrName = doctor.UserName fsiOPFLD.MedinsListName = items.HisPrescriptionProject.GoodInfo.GoodName fsiOPFLD.Prodname = items.HisPrescriptionProject.GoodInfo.GoodName fsiOPFLD.MedChrgitmType = "08" memo["hosp_appr_flag"] = "1" memo["invoice_no"] = fapiao_code memo["memo"] = "自费" bytesData, _ := json.Marshal(memo) fsiOPFLD.Memo = string(bytesData) fsiOPFLDs = append(fsiOPFLDs, fsiOPFLD) } } } for _, items := range order_info_two { memo := make(map[string]interface{}) var fsiOPFLD models.FsiOwnpayPatnFeeListDDTO fsiOPFLD.FixmedinsMdtrtID = items.OrderNumber fsiOPFLD.MedType = pre.MedType fsiOPFLD.BkkpSn = items.FeedetlSn fsiOPFLD.FixmedinsCode = miConfig.Code fsiOPFLD.FixmedinsName = miConfig.OrgName fsiOPFLD.Cnt = fmt.Sprintf("%.2f", items.Cnt) fsiOPFLD.Pric = fmt.Sprintf("%.2f", items.Pric) fsiOPFLD.DetItemFeeSumamt = fmt.Sprintf("%.2f", items.DetItemFeeSumamt) if items.AdviceId > 0 && items.ProjectId == 0 && items.HisDoctorAdviceInfo.BaseDrugLib.IsUser != 1 && len(items.HisDoctorAdviceInfo.BaseDrugLib.MedicalInsuranceNumber) > 0 { fsiOPFLD.FeeOcurTime = time.Unix(items.HisDoctorAdviceInfo.CreatedTime, 0).Format("2006-01-02 15:04:05") fsiOPFLD.MedListCodg = items.HisDoctorAdviceInfo.BaseDrugLib.MedicalInsuranceNumber fsiOPFLD.MedinsListCodg = items.HisDoctorAdviceInfo.BaseDrugLib.MedicalInsuranceNumber fsiOPFLD.MedinsListName = items.HisDoctorAdviceInfo.BaseDrugLib.DrugName fsiOPFLD.Prodname = items.HisDoctorAdviceInfo.BaseDrugLib.DrugName fsiOPFLD.BilgDeptName = department.Name fsiOPFLD.BilgDeptCodg = department.Number fsiOPFLD.BilgDrCode = doctor.DoctorNumber fsiOPFLD.BilgDrName = doctor.UserName fsiOPFLD.MedChrgitmType = "09" memo["hosp_appr_flag"] = "1" memo["invoice_no"] = fapiao_code memo["memo"] = "自费" bytesData, _ := json.Marshal(memo) fsiOPFLD.Memo = string(bytesData) fsiOPFLDs = append(fsiOPFLDs, fsiOPFLD) } else if items.AdviceId == 0 && items.ProjectId > 0 { fsiOPFLD.BkkpSn = items.HisPrescriptionProject.FeedetlSn if items.HisPrescriptionProject.Type == 2 && len(items.HisPrescriptionProject.HisProject.MedicalCode) > 0 { fsiOPFLD.FeeOcurTime = time.Unix(items.HisPrescriptionProject.Ctime, 0).Format("2006-01-02 15:04:05") fsiOPFLD.MedListCodg = items.HisPrescriptionProject.HisProject.MedicalCode fsiOPFLD.MedinsListName = items.HisPrescriptionProject.HisProject.ProjectName fsiOPFLD.Prodname = items.HisPrescriptionProject.HisProject.ProjectName fsiOPFLD.MedinsListCodg = items.HisPrescriptionProject.HisProject.MedicalCode fsiOPFLD.BilgDeptName = department.Name fsiOPFLD.BilgDeptCodg = department.Number fsiOPFLD.BilgDrCode = doctor.DoctorNumber fsiOPFLD.BilgDrName = doctor.UserName switch items.HisPrescriptionProject.HisProject.CostClassify { case 0: break case 1: fsiOPFLD.MedChrgitmType = "14" break case 2: fsiOPFLD.MedChrgitmType = "05" break case 3: fsiOPFLD.MedChrgitmType = "03" break case 4: fsiOPFLD.MedChrgitmType = "03" break case 5: fsiOPFLD.MedChrgitmType = "08" break case 6: fsiOPFLD.MedChrgitmType = "14" break case 7: fsiOPFLD.MedChrgitmType = "14" break case 8: fsiOPFLD.MedChrgitmType = "03" break case 9: fsiOPFLD.MedChrgitmType = "14" break case 10: fsiOPFLD.MedChrgitmType = "14" break case 11: fsiOPFLD.MedChrgitmType = "06" break case 12: fsiOPFLD.MedChrgitmType = "12" break case 13: fsiOPFLD.MedChrgitmType = "01" break case 14: fsiOPFLD.MedChrgitmType = "04" break case 15: fsiOPFLD.MedChrgitmType = "14" break } memo["hosp_appr_flag"] = "1" memo["invoice_no"] = fapiao_code memo["memo"] = "自费" bytesData, _ := json.Marshal(memo) fsiOPFLD.Memo = string(bytesData) fsiOPFLDs = append(fsiOPFLDs, fsiOPFLD) } else if items.HisPrescriptionProject.Type == 3 && len(items.HisPrescriptionProject.GoodInfo.MedicalInsuranceNumber) > 0 && items.HisPrescriptionProject.GoodInfo.IsUser != 1 { fsiOPFLD.FeeOcurTime = time.Unix(items.HisPrescriptionProject.Ctime, 0).Format("2006-01-02 15:04:05") fsiOPFLD.MedListCodg = items.HisPrescriptionProject.GoodInfo.MedicalInsuranceNumber fsiOPFLD.MedinsListCodg = items.HisPrescriptionProject.GoodInfo.MedicalInsuranceNumber fsiOPFLD.BilgDeptName = department.Name fsiOPFLD.BilgDeptCodg = department.Number fsiOPFLD.BilgDrCode = doctor.DoctorNumber fsiOPFLD.BilgDrName = doctor.UserName fsiOPFLD.MedinsListName = items.HisPrescriptionProject.GoodInfo.GoodName fsiOPFLD.Prodname = items.HisPrescriptionProject.GoodInfo.GoodName fsiOPFLD.MedChrgitmType = "08" memo["hosp_appr_flag"] = "1" memo["invoice_no"] = fapiao_code memo["memo"] = "自费" bytesData, _ := json.Marshal(memo) fsiOPFLD.Memo = string(bytesData) fsiOPFLDs = append(fsiOPFLDs, fsiOPFLD) } } } fmt.Println(fsiOPFLDs) struct4201A.Fopfd = fsiOPFLDs fmt.Println(struct4201A.Fopfd) var struct4202 models.Struct4202 timeLayout := "2006-01-02 15:04:05" dataTimeStr := time.Unix(his.Ctime, 0).Format(timeLayout) struct4202.OwnPayPatnMdtrtD.FixmedinsMdtrtID = his.Number struct4202.OwnPayPatnMdtrtD.FixmedinsCode = miConfig.Code struct4202.OwnPayPatnMdtrtD.FixmedinsName = miConfig.OrgName struct4202.OwnPayPatnMdtrtD.PsnCertType = "01" struct4202.OwnPayPatnMdtrtD.Certno = his.IdCardNo struct4202.OwnPayPatnMdtrtD.PsnName = his.Name struct4202.OwnPayPatnMdtrtD.Begntime = dataTimeStr struct4202.OwnPayPatnMdtrtD.MedType = pre.MedType struct4202.OwnPayPatnMdtrtD.ValiFlag = "1" struct4202.OwnPayPatnMdtrtD.MedfeeSumamt = fmt.Sprintf("%.2f", order.MedfeeSumamt) diagnosis_ids := strings.Split(his.Diagnosis, ",") var config []*models.HisXtDiagnoseConfig for _, item := range diagnosis_ids { id, _ := strconv.ParseInt(item, 10, 64) diagnosisConfig, _ := service.FindDiagnoseById(id) config = append(config, &diagnosisConfig) } var tempDiaginfos []models.OwnPayPatnDiagListD for index, item := range config { if index == 0 { var tempDiaginfo models.OwnPayPatnDiagListD tempDiaginfo.InoutDiagType = "1" tempDiaginfo.DiagCode = item.CountryCode tempDiaginfo.DiagName = item.CountryContentName tempDiaginfo.DiagType = "1" tempDiaginfo.DiagSrtNo = "1" tempDiaginfo.MaindiagFlag = "1" tempDiaginfo.ValiFlag = "1" tempDiaginfo.DiagDrName = doctor.UserName tempDiaginfo.DiagDrCode = doctor.DoctorNumber tempDiaginfo.DiagTime = time.Unix(pre.Ctime, 0).Format("2006-01-02 15:04:05") tempDiaginfos = append(tempDiaginfos, tempDiaginfo) } else { var tempDiaginfo models.OwnPayPatnDiagListD tempDiaginfo.DiagCode = item.CountryCode tempDiaginfo.DiagName = item.CountryContentName tempDiaginfo.DiagType = "2" tempDiaginfo.DiagSrtNo = strconv.FormatInt(int64(index+1), 10) tempDiaginfo.MaindiagFlag = "0" tempDiaginfo.ValiFlag = "1" tempDiaginfo.DiagDrName = doctor.UserName tempDiaginfo.DiagDrCode = doctor.DoctorNumber tempDiaginfo.DiagTime = time.Unix(pre.Ctime, 0).Format("2006-01-02 15:04:05") tempDiaginfos = append(tempDiaginfos, tempDiaginfo) } } struct4202.ODiagListD = tempDiaginfos result, requestLog := service.Gdyb4205(miConfig.OrgName, curRoles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, struct4202, struct4201A) saveLog(result, requestLog, "4205", "自费就诊和诊断信息上传") var res2 ResultSix var respJSON2 map[string]interface{} if err := json.Unmarshal([]byte(string(result)), &respJSON2); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } userJSONBytes2, _ := json.Marshal(respJSON2) if err := json.Unmarshal(userJSONBytes2, &res2); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if res2.Infcode != 0 { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res2.ErrMsg, }) return } else { order.IsUploadDiagnose = 1 order.IsUploadOrderInfo = 1 service.UpdateOrderTwo(order) c.ServeSuccessJSON(map[string]interface{}{ "msg": "上传成功", }) } } func (c *HisApiController) Get4207() { admin_user_id, _ := c.GetInt64("admin_user_id") curRoles, _ := service.GetAdminUserInfoByID(c.GetAdminUserInfo().CurrentOrgId, admin_user_id) miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId) order_id, _ := c.GetInt64("order_id") order, _ := service.GetHisOrderByIDTwo(order_id) //his, _ := service.GetInHospitalRecordByNumber(order.MdtrtId) var struct4207 models.Struct4207 struct4207.PageNum = "1" struct4207.PageSize = "1000" struct4207.FixmedinsCode = miConfig.Code struct4207.FixmedinsMdtrtID = order.Number result, requestLog := service.Gdyb4207(miConfig.OrgName, curRoles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, struct4207) saveLog(result, requestLog, "4207", "查询") var res2 ResultSix var respJSON2 map[string]interface{} if err := json.Unmarshal([]byte(string(result)), &respJSON2); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } userJSONBytes2, _ := json.Marshal(respJSON2) if err := json.Unmarshal(userJSONBytes2, &res2); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if res2.Infcode != 0 { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res2.ErrMsg, }) return } else { c.ServeSuccessJSON(map[string]interface{}{ "msg": "查询成功", }) } } func (c *HisApiController) Get4208() { admin_user_id, _ := c.GetInt64("admin_user_id") curRoles, _ := service.GetAdminUserInfoByID(c.GetAdminUserInfo().CurrentOrgId, admin_user_id) miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId) order_id, _ := c.GetInt64("order_id") order, _ := service.GetHisOrderByIDTwo(order_id) his, _ := service.GetInHospitalRecordByNumber(order.MdtrtId) var struct4208 models.Struct4208 struct4208.PageNum = "1" struct4208.PageSize = "1000" struct4208.PsnCertType = "01" struct4208.Certno = his.Certno struct4208.MedType = order.MedType struct4208.PsnName = his.Name result, requestLog := service.Gdyb4208(miConfig.OrgName, curRoles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, struct4208) saveLog(result, requestLog, "4208", "查询") var res2 ResultSix var respJSON2 map[string]interface{} if err := json.Unmarshal([]byte(string(result)), &respJSON2); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } userJSONBytes2, _ := json.Marshal(respJSON2) if err := json.Unmarshal(userJSONBytes2, &res2); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if res2.Infcode != 0 { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res2.ErrMsg, }) return } else { c.ServeSuccessJSON(map[string]interface{}{ "msg": "查询成功", }) } } func (c *HisApiController) Get4209() { admin_user_id, _ := c.GetInt64("admin_user_id") curRoles, _ := service.GetAdminUserInfoByID(c.GetAdminUserInfo().CurrentOrgId, admin_user_id) miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId) order_id, _ := c.GetInt64("order_id") order, _ := service.GetHisOrderByIDTwo(order_id) //his, _ := service.GetInHospitalRecordByNumber(order.MdtrtId) var struct4209 models.Struct4209 struct4209.FixmedinsMdtrtID = order.Number struct4209.FixmedinsCode = miConfig.Code struct4209.PageSize = "1000" struct4209.PageNum = "1" result, requestLog := service.Gdyb4209(miConfig.OrgName, curRoles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, struct4209) saveLog(result, requestLog, "4209", "查询") var res2 ResultSix var respJSON2 map[string]interface{} if err := json.Unmarshal([]byte(string(result)), &respJSON2); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } userJSONBytes2, _ := json.Marshal(respJSON2) if err := json.Unmarshal(userJSONBytes2, &res2); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if res2.Infcode != 0 { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res2.ErrMsg, }) return } else { c.ServeSuccessJSON(map[string]interface{}{ "msg": "查询成功", }) } } type Result3101 struct { Infcode string `json:"infcode"` InfRefmsgid string `json:"inf_refmsgid"` RefmsgTime string `json:"refmsg_time"` RespondTime string `json:"respond_time"` Enctype string `json:"enctype"` Signtype string `json:"signtype"` ErrMsg string `json:"err_msg"` Output struct { Result []struct { JudgeResultDetailDtos []struct { VolaItemType string `json:"vola_item_type"` MdtrtID string `json:"mdtrt_id"` JrdID string `json:"jrd_id"` PatnID string `json:"patn_id"` RxID string `json:"rx_id"` VolaAmt interface{} `json:"vola_amt"` } `json:"judge_result_detail_dtos"` RuleID string `json:"rule_id"` VolaEvid string `json:"vola_evid"` MdtrtID string `json:"mdtrt_id"` RuleName string `json:"rule_name"` VolaAmtStas string `json:"vola_amt_stas"` JrID string `json:"jr_id"` PatnID string `json:"patn_id"` SevDeg string `json:"sev_deg"` VolaAmt float64 `json:"vola_amt"` VolaBhvrType string `json:"vola_bhvr_type"` VolaCont string `json:"vola_cont"` } `json:"result"` } `json:"output"` } type Resultgd3101 struct { Infcode int64 `json:"infcode"` InfRefmsgid string `json:"inf_refmsgid"` RefmsgTime string `json:"refmsg_time"` RespondTime string `json:"respond_time"` Enctype string `json:"enctype"` Signtype string `json:"signtype"` ErrMsg string `json:"err_msg"` Output struct { Result []struct { JudgeResultDetailDtos []struct { VolaItemType string `json:"vola_item_type"` MdtrtID string `json:"mdtrt_id"` JrdID string `json:"jrd_id"` PatnID string `json:"patn_id"` RxID string `json:"rx_id"` VolaAmt interface{} `json:"vola_amt"` } `json:"judge_result_detail_dtos"` RuleID string `json:"rule_id"` VolaEvid string `json:"vola_evid"` MdtrtID string `json:"mdtrt_id"` RuleName string `json:"rule_name"` VolaAmtStas string `json:"vola_amt_stas"` JrID string `json:"jr_id"` PatnID string `json:"patn_id"` SevDeg string `json:"sev_deg"` VolaAmt float64 `json:"vola_amt"` VolaBhvrType string `json:"vola_bhvr_type"` VolaCont string `json:"vola_cont"` } `json:"result"` } `json:"output"` } func (c *HisApiController) ReadEleToken() { admin_user_id, _ := c.GetInt64("admin_user_id") his_patient_id, _ := c.GetInt64("his_patient_id") adminUser := c.GetAdminUserInfo() miConfig, _ := service.FindMedicalInsuranceInfo(adminUser.CurrentOrgId) roles, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, admin_user_id) his, _ := service.GetNewHisPatientInfoFour(c.GetAdminUserInfo().CurrentOrgId, his_patient_id) if miConfig.MdtrtareaAdmvs == "320921" || miConfig.MdtrtareaAdmvs == "320982" { tokens := ReadEleCard(admin_user_id, c.GetAdminUserInfo().CurrentOrgId, c) if len(tokens) > 0 { c.ServeSuccessJSON(map[string]interface{}{ "msg": "读取成功", }) } else { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": "读取失败", }) } } else if miConfig.MdtrtareaAdmvs == "341203" { tokens := ReadEleCardforah(admin_user_id, c.GetAdminUserInfo().CurrentOrgId, c) if len(tokens) > 0 { c.ServeSuccessJSON(map[string]interface{}{ "msg": "读取成功", }) } else { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": "读取失败", }) } } else if miConfig.MdtrtareaAdmvs == "340699" { tokens := ReadEleCardforah(admin_user_id, c.GetAdminUserInfo().CurrentOrgId, c) if len(tokens) > 0 { c.ServeSuccessJSON(map[string]interface{}{ "msg": "读取成功", }) } else { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": "读取失败", }) } } else if miConfig.MdtrtareaAdmvs == "150499" { var api string api = "http://172.16.13.254:9532/" + "nmyb/readcard?" + "fixmedins_code=" + miConfig.Code + "&secret_key=" + miConfig.SecretKey + "&ak=" + miConfig.AccessKey + "&org_name=" + miConfig.OrgName + "&doctor=" + roles.UserName + "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&url=" + miConfig.Url + "&cainfo=" + miConfig.Cainfo + "&id_card_type=" + strconv.FormatInt(4, 10) + "&operator_id=" + strconv.FormatInt(admin_user_id, 10) + "&operator=" + roles.UserName + "&is_settle=1" resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) } body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var status string status = respJSON["data"].(map[string]interface{})["status"].(string) //card_type := respJSON["data"].(map[string]interface{})["type"].(string) var token string var res ResultTwo //1101结果 var res10265 ResultTwo10265 //1101结果 if status == "0" { //读卡成功 var card_info string //卡信息 var busi_card_info string token = respJSON["data"].(map[string]interface{})["token"].(string) busi_card_info = respJSON["data"].(map[string]interface{})["busi_card_info"].(string) card_info = respJSON["data"].(map[string]interface{})["card_info"].(string) fmt.Println(card_info) fmt.Println(busi_card_info) respJSON = respJSON["data"].(map[string]interface{})["result"].(map[string]interface{}) result, _ := json.Marshal(respJSON) if err := json.Unmarshal([]byte(result), &res10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res.ErrMsg = res10265.ErrMsg infocode, _ := strconv.ParseInt(res10265.Infcode, 10, 64) res.Infcode = infocode res.Output = res10265.Output res.InfRefmsgid = res10265.InfRefmsgid if res.Infcode == 0 { patient, err := service.GetPatientByIDCard(res.Output.Baseinfo.Certno, c.GetAdminUserInfo().CurrentOrgId) if err == gorm.ErrRecordNotFound { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeNoPateintException) return } else if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError) return } else { Iinfos, _ := json.Marshal(res.Output.Iinfo) Idetinfos, _ := json.Marshal(res.Output.Idetinfo) infoStr := string(Iinfos) idetinfoStr := string(Idetinfos) //date,age,_ := GetBirthdateAndAge(res.Output.Baseinfo.Certno), b, age, _ := getBirthdateAndAge(res.Output.Baseinfo.Certno) psn := &models.HisPsn{ PsnNo: res.Output.Baseinfo.PsnNo, PatientId: patient.ID, Certno: res.Output.Baseinfo.Certno, Gend: res.Output.Baseinfo.Gend, Naty: res.Output.Baseinfo.Naty, PsnCertType: res.Output.Baseinfo.PsnCertType, PsnName: res.Output.Baseinfo.PsnName, Age: float64(age), Brdy: b, Idetinfo: idetinfoStr, Insuinfo: infoStr, UserOrgId: c.GetAdminUserInfo().CurrentOrgId, CardInfo: card_info, VerifyNumber: token, IdCardType: 4, } var rf []*ResultFive json.Unmarshal([]byte(infoStr), &rf) var insutypes []*ResultFive var insutype string var is390 int = 0 var is310 int = 0 for _, item := range rf { if (item.Insutype == "390" && item.PsnInsuStas == "1") || (item.Insutype == "310" && item.PsnInsuStas == "1") { insutypes = append(insutypes, item) } } if len(insutypes) == 1 { insutype = insutypes[0].Insutype //insuplc_admdvs = insutypes[0].InsuplcAdmdvs } else { for _, i := range insutypes { if i.Insutype == "390" { is390 = 1 } if i.Insutype == "310" { is310 = 1 } } } if is390 == 1 { insutype = "390" } if is310 == 1 { insutype = "310" } if len(insutypes) == 0 { insutype = "310" } service.CreateHisPsn(psn) c.ServeSuccessJSON(map[string]interface{}{ "patient": patient, "number": token, "insutype": insutype, }) } } else { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisFailedException) return } } else { //读卡失败 c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisFailedException) return } } else if miConfig.MdtrtareaAdmvs == "350500" { _, outPutInfo, errMsg := service.ReadEleCardForSettle(miConfig.Code, roles.UserName, roles.AdminUserId) if len(errMsg) == 0 { type ELeData struct { Data struct { IdNo string `json:"idNo"` IdType string `json:"idType"` UserName string `json:"userName"` EcToken string `json:"ecToken"` InsuOrg string `json:"insuOrg"` Gender string `json:"gender"` Birthday string `json:"birthday"` Nationality string `json:"nationality"` Email string `json:"email"` Extra string `json:"extra"` } `json:"data"` Code int `json:"code"` Message string `json:"message"` } var ele ELeData err := json.Unmarshal([]byte(outPutInfo), &ele) if err != nil { utils.ErrorLog("解析失败:%v", err) } token := ele.Data.EcToken if len(token) > 0 { psn := &models.HisPsn{ PsnNo: his.PsnNo, Age: 0, PatientId: his.PatientId, Certno: his.Certno, Brdy: his.Brdy, Gend: his.Gend, Naty: his.Naty, PsnCertType: his.PsnCertType, PsnName: his.PsnName, Idetinfo: his.Idetinfo, Insuinfo: his.Iinfo, UserOrgId: c.GetAdminUserInfo().CurrentOrgId, CardInfo: outPutInfo, VerifyNumber: token, } service.CreateHisPsn(psn) } if len(token) > 0 { c.ServeSuccessJSON(map[string]interface{}{ "msg": "读取成功", }) } else { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": "读取失败", }) } } } else if miConfig.MdtrtareaAdmvs == "360302" { _, result := GetELeInfoThree(miConfig.Code, "1", roles.UserName) //json_result := GetJxEleBaseInfo(c.GetAdminUserInfo().CurrentOrgId) type ELeData struct { Data struct { IdNo string `json:"idNo"` IdType string `json:"idType"` UserName string `json:"userName"` EcToken string `json:"ecToken"` InsuOrg string `json:"insuOrg"` Gender string `json:"gender"` Birthday string `json:"birthday"` Nationality string `json:"nationality"` Email string `json:"email"` Extra string `json:"extra"` } `json:"data"` Code int `json:"code"` Message string `json:"message"` } var ele ELeData err := json.Unmarshal([]byte(result), &ele) if err != nil { utils.ErrorLog("解析失败:%v", err) } token := ele.Data.EcToken token = Remove0000(token) fmt.Println(ele.Data.UserName) result2, requestLog2 := service.Jxyb1101ForEleCert(miConfig.OrgName, roles.UserName, miConfig.Code, ele.Data.InsuOrg, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, miConfig.Url, miConfig.AccessKey, token, "", ele.Data.IdNo, ele.Data.UserName) saveLog(result2, requestLog2, "1101", "获取人员信息") var res ResultTwo if err := json.Unmarshal([]byte(result2), &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if res.Infcode == 0 { patient, err := service.GetPatientByNumber(res.Output.Baseinfo.Certno, c.GetAdminUserInfo().CurrentOrgId) if err == gorm.ErrRecordNotFound { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeNoPateintException) return } else if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError) return } else { Iinfos, _ := json.Marshal(res.Output.Iinfo) Idetinfos, _ := json.Marshal(res.Output.Idetinfo) infoStr := string(Iinfos) idetinfoStr := string(Idetinfos) psn := &models.HisPsn{ PsnNo: res.Output.Baseinfo.PsnNo, PatientId: patient.ID, Certno: res.Output.Baseinfo.Certno, Gend: res.Output.Baseinfo.Gend, Naty: res.Output.Baseinfo.Naty, PsnCertType: res.Output.Baseinfo.PsnCertType, PsnName: res.Output.Baseinfo.PsnName, Idetinfo: idetinfoStr, Insuinfo: infoStr, UserOrgId: c.GetAdminUserInfo().CurrentOrgId, CardInfo: "", VerifyNumber: token, } service.CreateHisPsn(psn) c.ServeSuccessJSON(map[string]interface{}{ "patient": patient, "number": token, }) } } else { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisFailedException) return } } else if miConfig.MdtrtareaAdmvs == "361025" { _, result := GetELeInfoThree(miConfig.Code, "1", roles.UserName) //json_result := GetJxEleBaseInfo(c.GetAdminUserInfo().CurrentOrgId) type ELeData struct { Data struct { IdNo string `json:"idNo"` IdType string `json:"idType"` UserName string `json:"userName"` EcToken string `json:"ecToken"` InsuOrg string `json:"insuOrg"` Gender string `json:"gender"` Birthday string `json:"birthday"` Nationality string `json:"nationality"` Email string `json:"email"` Extra string `json:"extra"` } `json:"data"` Code int `json:"code"` Message string `json:"message"` } var ele ELeData err := json.Unmarshal([]byte(result), &ele) if err != nil { utils.ErrorLog("解析失败:%v", err) } token := ele.Data.EcToken token = Remove0000(token) fmt.Println(ele.Data.UserName) result2, requestLog2 := service.Jxyb1101ForEleCert(miConfig.OrgName, roles.UserName, miConfig.Code, ele.Data.InsuOrg, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, miConfig.Url, miConfig.AccessKey, token, "", ele.Data.IdNo, ele.Data.UserName) saveLog(result2, requestLog2, "1101", "获取人员信息") var res ResultTwo if err := json.Unmarshal([]byte(result2), &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if res.Infcode == 0 { patient, err := service.GetPatientByNumber(res.Output.Baseinfo.Certno, c.GetAdminUserInfo().CurrentOrgId) if err == gorm.ErrRecordNotFound { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeNoPateintException) return } else if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError) return } else { Iinfos, _ := json.Marshal(res.Output.Iinfo) Idetinfos, _ := json.Marshal(res.Output.Idetinfo) infoStr := string(Iinfos) idetinfoStr := string(Idetinfos) psn := &models.HisPsn{ PsnNo: res.Output.Baseinfo.PsnNo, PatientId: patient.ID, Certno: res.Output.Baseinfo.Certno, Gend: res.Output.Baseinfo.Gend, Naty: res.Output.Baseinfo.Naty, PsnCertType: res.Output.Baseinfo.PsnCertType, PsnName: res.Output.Baseinfo.PsnName, Idetinfo: idetinfoStr, Insuinfo: infoStr, UserOrgId: c.GetAdminUserInfo().CurrentOrgId, CardInfo: "", VerifyNumber: token, } service.CreateHisPsn(psn) c.ServeSuccessJSON(map[string]interface{}{ "patient": patient, "number": token, }) } } else { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisFailedException) return } } else if miConfig.MdtrtareaAdmvs == "360100" { _, result := GetELeInfoThree(miConfig.Code, "1", roles.UserName) //json_result := GetJxEleBaseInfo(c.GetAdminUserInfo().CurrentOrgId) type ELeData struct { Data struct { IdNo string `json:"idNo"` IdType string `json:"idType"` UserName string `json:"userName"` EcToken string `json:"ecToken"` InsuOrg string `json:"insuOrg"` Gender string `json:"gender"` Birthday string `json:"birthday"` Nationality string `json:"nationality"` Email string `json:"email"` Extra string `json:"extra"` } `json:"data"` Code int `json:"code"` Message string `json:"message"` } var ele ELeData err := json.Unmarshal([]byte(result), &ele) if err != nil { utils.ErrorLog("解析失败:%v", err) } token := ele.Data.EcToken token = Remove0000(token) fmt.Println(ele.Data.UserName) result2, requestLog2 := service.Jxyb1101ForEleCert(miConfig.OrgName, roles.UserName, miConfig.Code, ele.Data.InsuOrg, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, miConfig.Url, miConfig.AccessKey, token, "", ele.Data.IdNo, ele.Data.UserName) saveLog(result2, requestLog2, "1101", "获取人员信息") var res ResultTwo if err := json.Unmarshal([]byte(result2), &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if res.Infcode == 0 { patient, err := service.GetPatientByNumber(res.Output.Baseinfo.Certno, c.GetAdminUserInfo().CurrentOrgId) if err == gorm.ErrRecordNotFound { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeNoPateintException) return } else if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError) return } else { Iinfos, _ := json.Marshal(res.Output.Iinfo) Idetinfos, _ := json.Marshal(res.Output.Idetinfo) infoStr := string(Iinfos) idetinfoStr := string(Idetinfos) psn := &models.HisPsn{ PsnNo: res.Output.Baseinfo.PsnNo, PatientId: patient.ID, Certno: res.Output.Baseinfo.Certno, Gend: res.Output.Baseinfo.Gend, Naty: res.Output.Baseinfo.Naty, PsnCertType: res.Output.Baseinfo.PsnCertType, PsnName: res.Output.Baseinfo.PsnName, Idetinfo: idetinfoStr, Insuinfo: infoStr, UserOrgId: c.GetAdminUserInfo().CurrentOrgId, CardInfo: "", VerifyNumber: token, } service.CreateHisPsn(psn) c.ServeSuccessJSON(map[string]interface{}{ "patient": patient, "number": token, }) } } else { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisFailedException) return } } else if miConfig.MdtrtareaAdmvs == "430800" { //if initFlag == 0 { //c.TestGetJiangXiBasBaseInit() //} //if initEleFlag == 0 { // GetJxEleBaseInitInfo(c.GetAdminUserInfo().CurrentOrgId) //} _, json_result := GethnELeInfo(miConfig.Code, "1", roles.UserName) utils.ErrorLog("解析失败:%v", json_result) //json_result := GetJxEleBaseInfo(c.GetAdminUserInfo().CurrentOrgId) type ELeData struct { Data struct { IdNo string `json:"idNo"` IdType string `json:"idType"` UserName string `json:"userName"` EcToken string `json:"ecToken"` InsuOrg string `json:"insuOrg"` Gender string `json:"gender"` Birthday string `json:"birthday"` Nationality string `json:"nationality"` Email string `json:"email"` Extra string `json:"extra"` } `json:"data"` Code int `json:"code"` Message string `json:"message"` } var ele ELeData err := json.Unmarshal([]byte(json_result), &ele) if err != nil { utils.ErrorLog("解析失败:%v", err) } token := ele.Data.EcToken token = Remove0000(token) //result2, requestLog2 := service.Hnyb1101ForEleCert(miConfig.OrgName, roles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, miConfig.Url, miConfig.AccessKey, token, "", ele.Data.IdNo, ele.Data.UserName) result2, requestLog2 := service.Hnyb1101ForEleCert(miConfig.OrgName, roles.UserName, miConfig.Code, ele.Data.InsuOrg, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, miConfig.Url, miConfig.AccessKey, token, "", ele.Data.IdNo, ele.Data.UserName) //result2, requestLog2 := service.Hnyb1101ForEleCert(miConfig.OrgName, roles.UserName, miConfig.Code, insuOrg, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, miConfig.Url, miConfig.AccessKey, ecToken, "", idNo, userName) saveLog(result2, requestLog2, "1101", "获取人员信息") var res ResultTwo if err := json.Unmarshal([]byte(result2), &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if res.Infcode == 0 { patient, err := service.GetPatientByNumber(res.Output.Baseinfo.Certno, c.GetAdminUserInfo().CurrentOrgId) if err == gorm.ErrRecordNotFound { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeNoPateintException) return } else if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError) return } else { Iinfos, _ := json.Marshal(res.Output.Iinfo) Idetinfos, _ := json.Marshal(res.Output.Idetinfo) infoStr := string(Iinfos) idetinfoStr := string(Idetinfos) psn := &models.HisPsn{ PsnNo: res.Output.Baseinfo.PsnNo, PatientId: patient.ID, Certno: res.Output.Baseinfo.Certno, Gend: res.Output.Baseinfo.Gend, Naty: res.Output.Baseinfo.Naty, PsnCertType: res.Output.Baseinfo.PsnCertType, PsnName: res.Output.Baseinfo.PsnName, Idetinfo: idetinfoStr, Insuinfo: infoStr, UserOrgId: c.GetAdminUserInfo().CurrentOrgId, CardInfo: "", VerifyNumber: token, InsuplcAdmdvs: ele.Data.InsuOrg, } service.CreateHisPsn(psn) c.ServeSuccessJSON(map[string]interface{}{ "patient": patient, "number": token, }) } } else { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisFailedException) return } } else if miConfig.MdtrtareaAdmvs == "450721" { res := c.GetoleInfo() if res.Infcode == 0 { var result string if res.Output.MdtrtCertType == "01" { result = service.Gdyb1101d(res.Output.CertNo, miConfig.OrgName, roles.UserName, miConfig.Code, res.Output.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, 4, res.Output.CardSN, 1, res.Output.PsnName, res.Output.EcToken, admin_user_id) } else if res.Output.MdtrtCertType == "02" { result = service.Gdyb1101B(res.Output.CertNo, miConfig.OrgName, roles.UserName, miConfig.Code, res.Output.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, 2, res.Output.CardSN, 1, res.Output.PsnName, res.Output.CardNo, admin_user_id) } else if res.Output.MdtrtCertType == "03" { result = service.Gdyb1101B(res.Output.CertNo, miConfig.OrgName, roles.UserName, miConfig.Code, res.Output.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, 1, res.Output.CardSN, 1, res.Output.PsnName, res.Output.CardNo, admin_user_id) } var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } userJSONBytes, _ := json.Marshal(dat) var res2 ResultTwo if err := json.Unmarshal(userJSONBytes, &res2); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if res2.Infcode == 0 { patient, err := service.GetPatientByNumber(res.Output.CertNo, c.GetAdminUserInfo().CurrentOrgId) if err == gorm.ErrRecordNotFound { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeNoPateintException) return } else if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError) return } else { Iinfos, _ := json.Marshal(res2.Output.Iinfo) Idetinfos, _ := json.Marshal(res2.Output.Idetinfo) infoStr := string(Iinfos) idetinfoStr := string(Idetinfos) var rf []*ResultFive json.Unmarshal([]byte(infoStr), &rf) var insutypes []*ResultFive var insutype string var is390 int = 0 var is310 int = 0 //var insuplc_admdvs string for _, item := range rf { if (item.Insutype == "390" && item.PsnInsuStas == "1") || (item.Insutype == "310" && item.PsnInsuStas == "1") { insutypes = append(insutypes, item) } } if len(insutypes) == 1 { insutype = insutypes[0].Insutype //insuplc_admdvs = insutypes[0].InsuplcAdmdvs } else { for _, i := range insutypes { if i.Insutype == "390" { is390 = 1 } if i.Insutype == "310" { is310 = 1 } } } if is390 == 1 { insutype = "390" } if is310 == 1 { insutype = "310" } if len(insutypes) == 0 { insutype = "310" } psn := &models.HisPsn{ PsnNo: res2.Output.Baseinfo.PsnNo, PatientId: patient.ID, Certno: res2.Output.Baseinfo.Certno, Gend: res2.Output.Baseinfo.Gend, Naty: res2.Output.Baseinfo.Naty, PsnCertType: res2.Output.Baseinfo.PsnCertType, PsnName: res2.Output.Baseinfo.PsnName, Idetinfo: idetinfoStr, Insuinfo: infoStr, UserOrgId: c.GetAdminUserInfo().CurrentOrgId, CardInfo: res.Output.CertNo + "|" + res.Output.CardSN, VerifyNumber: res.Output.EcToken, InsuplcAdmdvs: res.Output.InsuplcAdmdvs, } service.CreateHisPsn(psn) c.ServeSuccessJSON(map[string]interface{}{ "patient": patient, "number": res.Output.CardNo, "insutype": insutype, }) } } else { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisFailedException) return } } else { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res.ErrMsg, }) } } else { //if initFlag == 0 { // c.TestGetBasBaseInit() //} //token := c.GetEleBaseInfo() //token = Remove0000(token) type ELeData struct { Code string `json:"code"` Data struct { Aac002 string `json:"aac002"` Aaz500 string `json:"aaz500"` ActCardNo string `json:"actCardNo"` Bab520 string `json:"bab520"` Bkz543 string `json:"bkz543"` BusinessType string `json:"businessType"` CertfCodg string `json:"certfCodg"` EcIndexNo string `json:"ecIndexNo"` EcToken string `json:"ecToken"` ID0000 string `json:"id0000"` IDNo string `json:"idNo"` IDType string `json:"idType"` Idcode string `json:"idcode"` IdentityToken string `json:"identity_token"` InsuOrg string `json:"insuOrg"` OfficeID string `json:"officeId"` OfficeName string `json:"officeName"` OperatorID string `json:"operatorId"` OperatorName string `json:"operatorName"` OrgID string `json:"orgId"` UserName string `json:"userName"` } `json:"data"` Infno interface{} `json:"infno"` Message string `json:"message"` OrgID string `json:"orgId"` TransType string `json:"transType"` } _, result := GetELeInfoThree(miConfig.Code, "1", roles.UserName) fmt.Println(result) outPutInfo := Remove0000(result) fmt.Println(outPutInfo) var ele ELeData err := json.Unmarshal([]byte(outPutInfo), &ele) if err != nil { utils.ErrorLog("解析失败:%v", err) } token := ele.Data.EcToken var result2 string var requestLog2 string if len(token) > 0 { if strings.Contains(ele.Data.IDNo, "HKG") { result2, requestLog2 = service.Gdyb1101ForEleCert1111(miConfig.OrgName, roles.UserName, miConfig.Code, ele.Data.InsuOrg, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, token, ele.Data.UserName, ele.Data.IDNo, 6) } else { result2, requestLog2 = service.Gdyb1101ForEleCerttwo(miConfig.OrgName, roles.UserName, miConfig.Code, ele.Data.InsuOrg, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, token, ele.Data.UserName, ele.Data.IDNo) } saveLog(result2, requestLog2, "1101", "获取人员信息") var res ResultTwo if err := json.Unmarshal([]byte(result2), &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if res.Infcode == 0 { patient, err := service.GetPatientByNumber(res.Output.Baseinfo.Certno, c.GetAdminUserInfo().CurrentOrgId) if err == gorm.ErrRecordNotFound { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeNoPateintException) return } else if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError) return } else { Iinfos, _ := json.Marshal(res.Output.Iinfo) Idetinfos, _ := json.Marshal(res.Output.Idetinfo) infoStr := string(Iinfos) idetinfoStr := string(Idetinfos) psn := &models.HisPsn{ PsnNo: res.Output.Baseinfo.PsnNo, PatientId: patient.ID, Certno: res.Output.Baseinfo.Certno, Gend: res.Output.Baseinfo.Gend, Naty: res.Output.Baseinfo.Naty, PsnCertType: res.Output.Baseinfo.PsnCertType, PsnName: res.Output.Baseinfo.PsnName, Idetinfo: idetinfoStr, Insuinfo: infoStr, UserOrgId: c.GetAdminUserInfo().CurrentOrgId, CardInfo: "", VerifyNumber: token, } service.CreateHisPsn(psn) c.ServeSuccessJSON(map[string]interface{}{ "msg": "读取成功", }) } } else { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisFailedException) return } } else { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": "读取失败", }) } } } func (c *HisApiController) ReadEleFace() { admin_user_id, _ := c.GetInt64("admin_user_id") //his_patient_id, _ := c.GetInt64("his_patient_id") adminUser := c.GetAdminUserInfo() miConfig, _ := service.FindMedicalInsuranceInfo(adminUser.CurrentOrgId) //roles, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, admin_user_id) //his, _ := service.GetNewHisPatientInfoFour(c.GetAdminUserInfo().CurrentOrgId, his_patient_id) if miConfig.MdtrtareaAdmvs == "320921" || miConfig.MdtrtareaAdmvs == "320982" { tokens := ReadEleFace(admin_user_id, c.GetAdminUserInfo().CurrentOrgId, c) if len(tokens) > 0 { c.ServeSuccessJSON(map[string]interface{}{ "msg": "读取成功", }) } else { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": "读取失败", }) } } } func (c *HisApiController) Get9001() { adminUser := c.GetAdminUserInfo() admin_user_id, _ := c.GetInt64("admin_user_id") miConfig, _ := service.FindMedicalInsuranceInfo(adminUser.CurrentOrgId) roles, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, admin_user_id) if miConfig.MdtrtareaAdmvs == "350500" { service.GetFjAuthorizationInfo(miConfig.Code) } else if miConfig.MdtrtareaAdmvs == "131023" { result, _ := service.HeBeiyb9001(miConfig.OrgName, roles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, 1669) var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } userJSONBytes, _ := json.Marshal(dat) var res models.Result9001 if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "341203" { fmt.Println(miConfig.SecretKey) var res models.Result9001Two api := miConfig.SecretKey + "ahyb/9001?org_name=" + miConfig.OrgName + "&opera_name=" + roles.UserName + "&opera_id=" + strconv.FormatInt(admin_user_id, 10) + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&cainfo=" + miConfig.Cainfo + "&url=" + miConfig.Url resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } status := respJSON["data"].(map[string]interface{})["status"].(string) if status == "0" { err_msg := respJSON["data"].(map[string]interface{})["msg"].(string) c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": err_msg, }) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) result, _ := json.Marshal(respJSON) fmt.Println("log") fmt.Println(string(result)) if err := json.Unmarshal([]byte(result), &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if res.Infcode == 0 { sign := models.HisSignIn{ UserOrgId: c.GetAdminUserInfo().CurrentOrgId, SignNo: res.Output.Signinoutb.SignNo, SignTime: "", Ctime: time.Now().Unix(), Mtime: time.Now().Unix(), Status: 1, InputLog: "", OutputLog: "", FixmedinsCode: miConfig.Code, } err := service.CreateSignIn(&sign) if err == nil { c.ServeSuccessJSON(map[string]interface{}{ "msg": "签到成功", }) } } else { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res.ErrMsg, }) return //c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisFailedException) //return } } else if miConfig.MdtrtareaAdmvs == "340699" { fmt.Println(miConfig.SecretKey) var res models.Result9001Two api := miConfig.SecretKey + "ahyb/9001?org_name=" + miConfig.OrgName + "&opera_name=" + roles.UserName + "&opera_id=" + strconv.FormatInt(admin_user_id, 10) + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&cainfo=" + miConfig.Cainfo + "&url=" + miConfig.Url resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } status := respJSON["data"].(map[string]interface{})["status"].(string) if status == "0" { err_msg := respJSON["data"].(map[string]interface{})["msg"].(string) c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": err_msg, }) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) result, _ := json.Marshal(respJSON) fmt.Println("log") fmt.Println(string(result)) if err := json.Unmarshal([]byte(result), &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if res.Infcode == 0 { sign := models.HisSignIn{ UserOrgId: c.GetAdminUserInfo().CurrentOrgId, SignNo: res.Output.Signinoutb.SignNo, SignTime: "", Ctime: time.Now().Unix(), Mtime: time.Now().Unix(), Status: 1, InputLog: "", OutputLog: "", FixmedinsCode: miConfig.Code, } err := service.CreateSignIn(&sign) if err == nil { c.ServeSuccessJSON(map[string]interface{}{ "msg": "签到成功", }) } } else { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res.ErrMsg, }) return //c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisFailedException) //return } } else { result, _ := service.Gdyb9001Two(miConfig.OrgName, roles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, admin_user_id) var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } userJSONBytes, _ := json.Marshal(dat) var res models.Result9001 if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if res.Infcode == 0 { sign := models.HisSignIn{ UserOrgId: c.GetAdminUserInfo().CurrentOrgId, SignNo: res.Output.Signinoutb.SignNo, SignTime: res.Output.Signinoutb.SignTime, Ctime: time.Now().Unix(), Mtime: time.Now().Unix(), Status: 1, InputLog: "", OutputLog: "", FixmedinsCode: miConfig.Code, } err := service.CreateSignIn(&sign) if err == nil { c.ServeSuccessJSON(map[string]interface{}{ "msg": "签到成功", }) } } } } func Check3101ForOne(c *HisApiController, patient_id int64, his models.VMHisPatient, admin_user_id int64, trig_scen string, record_time string, prescriptions []*models.HisPrescription, de models.XtHisDepartment) (res2 Result3101) { var res Result3101 adminUser := c.GetAdminUserInfo() roles, _ := service.GetAdminUserInfoByID(c.GetAdminUserInfo().CurrentOrgId, admin_user_id) //his, _ := service.GetNewHisPatientInfoFour(c.GetAdminUserInfo().CurrentOrgId, his_patient_id) miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId) //record_time := c.GetString("record_time") //trig_scen := c.GetString("trig_scen") timeLayout := "2006-01-02" loc, _ := time.LoadLocation("Local") theTime, err := time.ParseInLocation(timeLayout+" 15:04:05", record_time+" 00:00:00", loc) if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return res } recordDateTime := theTime.Unix() var patientPrescription models.HisPrescriptionInfo //patientPrescription, _ = service.FindHisPatientPrescriptionInfo(adminUser.CurrentOrgId, his_patient_id, recordDateTime) //if patientPrescription.ID == 0 { patientPrescription, _ = service.FindLastPatientPrescriptionInfoTwo(adminUser.CurrentOrgId, patient_id, recordDateTime) //} department, _ := service.GetDepartMentDetail(patientPrescription.Departments) doctor_info, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, patientPrescription.DoctorId) // diagnosis_ids := strings.Split(patientPrescription.Diagnosis, ",") //prescriptions, _ := service.GetNewHisPrescriptionTen(adminUser.CurrentOrgId, his_patient_id, recordDateTime) var pp models.PublicParams pp.InsuplcAdmdvs = miConfig.InsuplcAdmdvs pp.MdtrtareaAdmvs = miConfig.MdtrtareaAdmvs pp.FixmedinsName = miConfig.OrgName pp.FixmedinsCode = miConfig.Code pp.RequestUrl = miConfig.Url pp.Cainfo = miConfig.Cainfo pp.SecretKey = miConfig.SecretKey pp.AccessKey = miConfig.AccessKey pp.OpterName = roles.UserName var config []*models.HisXtDiagnoseConfig for _, item := range diagnosis_ids { id, _ := strconv.ParseInt(item, 10, 64) diagnosisConfig, _ := service.FindDiagnoseById(id) config = append(config, &diagnosisConfig) } var pd models.PatientDtos pd.PatnID = his.PsnNo pd.PatnName = his.Name pd.Gend = his.Gend pd.Brdy = his.Brdy pd.Poolarea = miConfig.MdtrtareaAdmvs pd.CurrMdtrtID = his.Number var fed models.FsiEncounterDtos fed.MdtrtID = his.Number fed.MedinsID = miConfig.Code fed.MedinsName = miConfig.OrgName fed.MedinsAdmdvs = miConfig.MdtrtareaAdmvs fed.MedMdtrtType = "1" fed.MedinsType = "1" fed.MedinsLv = "11" tm := time.Unix(his.RecordDate, 0) s_tm := tm.Format("2006-01-02 15:04:05") fed.AdmDate = s_tm fed.DscgDate = s_tm fed.DscgMainDiseCodg = config[0].CountryCode fed.DscgMainDiseName = config[0].CountryContentName //诊断信息 var fdds []*models.FsiDiagnoseDtos for index, item := range config { if index == 0 { var fdd models.FsiDiagnoseDtos fdd.DiseID = strconv.FormatInt(item.ID, 10) fdd.InoutDiseType = "1" fdd.MaindiseFlag = "1" fdd.DiseDate = s_tm fdd.DiasSrtNo = "1" fdd.DiseName = item.CountryContentName fdd.DiseCodg = item.CountryCode fdds = append(fdds, &fdd) } else { var fdd models.FsiDiagnoseDtos fdd.DiseID = strconv.FormatInt(item.ID, 10) fdd.InoutDiseType = "1" fdd.MaindiseFlag = "1" fdd.DiseDate = s_tm fdd.DiasSrtNo = strconv.FormatInt(int64(index), 10) fdd.DiseName = item.CountryContentName fdd.DiseCodg = item.CountryCode fdds = append(fdds, &fdd) } } fed.DrCodg = strconv.FormatInt(doctor_info.ID, 10) fed.AdmDeptCodg = strconv.FormatInt(de.ID, 10) fed.AdmDeptName = de.Name fed.DscgDeptCodg = strconv.FormatInt(de.ID, 10) fed.DscgDeptName = de.Name fed.MedMdtrtType = "1" fed.MedType = "11" //if his.Insutype == "390" { // fed.MedType = "1402" //} else { // fed.MedType = "9933" //} var orders []*models.FsiOrderDtos if trig_scen == "2" { //处方医嘱信息 for _, item := range prescriptions { for _, subItem := range item.HisDoctorAdviceInfo { if len(subItem.BaseDrugLib.MedicalInsuranceNumber) > 0 { var order models.FsiOrderDtos order.RxID = strconv.FormatInt(item.ID, 10) order.Rxno = strconv.FormatInt(item.ID, 10) order.LongDrordFlag = "0" order.HilistType = "1" order.ChrgType = "1" order.DrordBhvr = "-" order.HilistCode = subItem.BaseDrugLib.MedicalInsuranceNumber order.HosplistName = subItem.BaseDrugLib.DrugName order.HilistLv = "1" order.HilistPric = fmt.Sprintf("%.2f", subItem.Price) order.HosplistCode = subItem.BaseDrugLib.MedicalInsuranceNumber order.HosplistName = subItem.BaseDrugLib.DrugName order.Cnt = fmt.Sprintf("%.2f", subItem.PrescribingNumber) order.Pric = fmt.Sprintf("%.2f", subItem.Price) order.Sumamt = fmt.Sprintf("%.2f", (subItem.PrescribingNumber * subItem.Price)) order.OwnpayAmt = "" order.SelfpayAmt = "" order.Spec = "" order.SpecUnt = "" order.DrordBegnDate = s_tm order.DrordStopDate = "" order.DrordDrCodg = doctor_info.DoctorNumber order.DrordDeptName = department.Name order.DrordDeptCodg = department.Number order.DrordDrName = doctor_info.UserName order.DrordDrProfttl = "234" order.CurrDrordFlag = "1" orders = append(orders, &order) } } for _, subItem := range item.HisPrescriptionProject { if subItem.Type == 2 && len(subItem.HisProject.MedicalCode) > 0 { var order models.FsiOrderDtos order.RxID = strconv.FormatInt(item.ID, 10) order.Rxno = strconv.FormatInt(item.ID, 10) order.LongDrordFlag = "0" order.HilistType = "1" order.ChrgType = "1" order.DrordBhvr = "-" order.HilistCode = subItem.HisProject.MedicalCode order.HosplistName = subItem.HisProject.ProjectName order.HilistLv = "1" order.HilistPric = fmt.Sprintf("%.2f", subItem.Price) order.HosplistCode = subItem.HisProject.MedicalCode order.HosplistName = subItem.HisProject.ProjectName order.Cnt = subItem.Count cnt, _ := strconv.ParseFloat(subItem.Count, 64) order.Pric = fmt.Sprintf("%.2f", subItem.Price) order.Sumamt = fmt.Sprintf("%.2f", subItem.Price*cnt) order.OwnpayAmt = "" order.SelfpayAmt = "" order.Spec = "" order.SpecUnt = "" order.DrordBegnDate = s_tm order.DrordStopDate = "" order.DrordDrCodg = doctor_info.DoctorNumber order.DrordDeptName = department.Name order.DrordDeptCodg = department.Number order.DrordDrName = doctor_info.UserName order.DrordDrProfttl = "234" order.CurrDrordFlag = "1" orders = append(orders, &order) } if subItem.Type == 3 && len(subItem.GoodInfo.MedicalInsuranceNumber) > 0 { var order models.FsiOrderDtos order.RxID = strconv.FormatInt(item.ID, 10) order.Rxno = strconv.FormatInt(item.ID, 10) order.LongDrordFlag = "0" order.HilistType = "1" order.ChrgType = "1" order.DrordBhvr = "-" order.HilistCode = subItem.GoodInfo.MedicalInsuranceNumber order.HosplistName = subItem.GoodInfo.GoodName order.HilistLv = "1" order.HilistPric = fmt.Sprintf("%.2f", subItem.Price) order.HosplistCode = subItem.GoodInfo.MedicalInsuranceNumber order.HosplistName = subItem.GoodInfo.GoodName order.Cnt = subItem.Count cnt, _ := strconv.ParseFloat(subItem.Count, 64) order.Pric = fmt.Sprintf("%.2f", subItem.Price) order.Sumamt = fmt.Sprintf("%.2f", subItem.Price*cnt) order.OwnpayAmt = "" order.SelfpayAmt = "" order.Spec = "" order.SpecUnt = "" order.DrordBegnDate = s_tm order.DrordStopDate = "" order.DrordDrCodg = doctor_info.DoctorNumber order.DrordDeptName = department.Name order.DrordDeptCodg = department.Number order.DrordDrName = doctor_info.UserName order.DrordDrProfttl = "234" order.CurrDrordFlag = "1" orders = append(orders, &order) } } } //处方医嘱信息 } fed.MatnStas = "0" fed.MedfeeSumamt = "0" fed.OwnpayAmt = "0" fed.SelfpayAmt = "0" fed.AcctPayamt = "0" fed.MaAmt = "0" fed.HifpPayamt = "0" fed.SetlTotlnum = "1" fed.Insutype = his.Insutype fed.ReimFlag = "0" fed.OutSetlFlag = "0" var fopd []*models.FsiOperationDtosData data := make(map[string]interface{}) data["fed"] = fed data["fdd"] = fdds data["fod"] = orders data["pd"] = pd data["pp"] = pp data["fopd"] = fopd data["trig_scen"] = trig_scen fmt.Println(data) fmt.Println(fed) fmt.Println(fdds) fmt.Println(orders) fmt.Println(pd) fmt.Println(pp) fmt.Println(fopd) client := &http.Client{} bytesData, _ := json.Marshal(data) var req *http.Request if miConfig.MdtrtareaAdmvs == "320921" || miConfig.MdtrtareaAdmvs == "320982" { if miConfig.MdtrtareaAdmvs == "320921" { req, _ = http.NewRequest("POST", "http://192.168.2.3:9532/"+"jsyb/3101", bytes.NewReader(bytesData)) } else { req, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/3101", 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 res } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return res } respJSON = respJSON["data"].(map[string]interface{})["request_log"].(map[string]interface{}) fmt.Println(respJSON) result, _ := json.Marshal(respJSON) fmt.Println(result) if err := json.Unmarshal([]byte(result), &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return res } return res } else { //if miConfig.MdtrtareaAdmvs == "441202" { output, input := service.Gdyb3101(pd, fed, fdds, orders, fopd, pp, trig_scen) saveLog(output, input, "3101", "事前") if err := json.Unmarshal([]byte(output), &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } return res //} } } func Check3101(c *HisApiController, patient_id int64, his_patient_id int64, admin_user_id int64, trig_scen string, record_time string, prescriptions []*models.HisPrescription) (res Result3101) { adminUser := c.GetAdminUserInfo() roles, _ := service.GetAdminUserInfoByID(c.GetAdminUserInfo().CurrentOrgId, admin_user_id) his, _ := service.GetNewHisPatientInfoFour(c.GetAdminUserInfo().CurrentOrgId, his_patient_id) miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId) //record_time := c.GetString("record_time") //trig_scen := c.GetString("trig_scen") timeLayout := "2006-01-02" loc, _ := time.LoadLocation("Local") theTime, err := time.ParseInLocation(timeLayout+" 15:04:05", record_time+" 00:00:00", loc) if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return res } recordDateTime := theTime.Unix() var patientPrescription models.HisPrescriptionInfo patientPrescription, _ = service.FindHisPatientPrescriptionInfo(adminUser.CurrentOrgId, his_patient_id, recordDateTime) if patientPrescription.ID == 0 { patientPrescription, _ = service.FindLastPatientPrescriptionInfo(adminUser.CurrentOrgId, patient_id, recordDateTime) } department, _ := service.GetDepartMentDetail(patientPrescription.Departments) doctor_info, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, patientPrescription.DoctorId) // diagnosis_ids := strings.Split(patientPrescription.Diagnosis, ",") //prescriptions, _ := service.GetNewHisPrescriptionTen(adminUser.CurrentOrgId, his_patient_id, recordDateTime) var pp models.PublicParams pp.InsuplcAdmdvs = miConfig.InsuplcAdmdvs pp.MdtrtareaAdmvs = miConfig.MdtrtareaAdmvs pp.FixmedinsName = miConfig.OrgName pp.FixmedinsCode = miConfig.Code pp.RequestUrl = miConfig.Url pp.Cainfo = miConfig.Cainfo pp.SecretKey = miConfig.SecretKey pp.AccessKey = miConfig.AccessKey pp.OpterName = roles.UserName var config []*models.HisXtDiagnoseConfig for _, item := range diagnosis_ids { id, _ := strconv.ParseInt(item, 10, 64) diagnosisConfig, _ := service.FindDiagnoseById(id) config = append(config, &diagnosisConfig) } var pd models.PatientDtos pd.PatnID = his.PsnNo pd.PatnName = his.Name pd.Gend = his.Gend pd.Brdy = his.Brdy pd.Poolarea = his.InsuplcAdmdvs pd.CurrMdtrtID = his.Number var fed models.FsiEncounterDtos fed.MdtrtID = his.Number fed.MedinsID = miConfig.Code fed.MedinsName = miConfig.OrgName fed.MedinsAdmdvs = miConfig.MdtrtareaAdmvs fed.MedMdtrtType = "1" fed.MedinsType = "1" fed.MedinsLv = "11" tm := time.Unix(his.RecordDate, 0) s_tm := tm.Format("2006-01-02 15:04:05") fed.AdmDate = s_tm fed.DscgDate = s_tm fed.DscgMainDiseCodg = config[0].CountryCode fed.DscgMainDiseName = config[0].CountryContentName //诊断信息 var fdds []*models.FsiDiagnoseDtos for index, item := range config { if index == 0 { var fdd models.FsiDiagnoseDtos fdd.DiseID = strconv.FormatInt(item.ID, 10) fdd.InoutDiseType = "1" fdd.MaindiseFlag = "1" fdd.DiseDate = s_tm fdd.DiasSrtNo = "1" fdd.DiseName = item.CountryContentName fdd.DiseCodg = item.CountryCode fdds = append(fdds, &fdd) } else { var fdd models.FsiDiagnoseDtos fdd.DiseID = strconv.FormatInt(item.ID, 10) fdd.InoutDiseType = "1" fdd.MaindiseFlag = "1" fdd.DiseDate = s_tm fdd.DiasSrtNo = strconv.FormatInt(int64(index), 10) fdd.DiseName = item.CountryContentName fdd.DiseCodg = item.CountryCode fdds = append(fdds, &fdd) } } fed.DrCodg = strconv.FormatInt(doctor_info.ID, 10) fed.AdmDeptCodg = strconv.FormatInt(department.ID, 10) fed.AdmDeptName = department.Name fed.DscgDeptCodg = strconv.FormatInt(department.ID, 10) fed.DscgDeptName = department.Name fed.MedMdtrtType = "1" fed.MedType = "11" //if his.Insutype == "390" { // fed.MedType = "1402" //} else { // fed.MedType = "9933" //} var orders []*models.FsiOrderDtos if trig_scen == "2" { //处方医嘱信息 for _, item := range prescriptions { for _, subItem := range item.HisDoctorAdviceInfo { if len(subItem.BaseDrugLib.MedicalInsuranceNumber) > 0 { var order models.FsiOrderDtos order.RxID = strconv.FormatInt(item.ID, 10) order.Rxno = strconv.FormatInt(item.ID, 10) order.LongDrordFlag = "0" order.HilistType = "1" order.ChrgType = "1" order.DrordBhvr = "-" order.HilistCode = subItem.BaseDrugLib.MedicalInsuranceNumber order.HosplistName = subItem.BaseDrugLib.DrugName order.HilistLv = "1" order.HilistPric = fmt.Sprintf("%.2f", subItem.Price) order.HosplistCode = subItem.BaseDrugLib.MedicalInsuranceNumber order.HosplistName = subItem.BaseDrugLib.DrugName order.Cnt = fmt.Sprintf("%.2f", subItem.PrescribingNumber) order.Pric = fmt.Sprintf("%.2f", subItem.Price) order.Sumamt = fmt.Sprintf("%.2f", (subItem.PrescribingNumber * subItem.Price)) order.OwnpayAmt = "" order.SelfpayAmt = "" order.Spec = "" order.SpecUnt = "" order.DrordBegnDate = s_tm order.DrordStopDate = "" order.DrordDrCodg = doctor_info.DoctorNumber order.DrordDeptName = department.Name order.DrordDeptCodg = department.Number order.DrordDrName = doctor_info.UserName order.DrordDrProfttl = "234" order.CurrDrordFlag = "1" orders = append(orders, &order) } } for _, subItem := range item.HisPrescriptionProject { if subItem.Type == 2 && len(subItem.HisProject.MedicalCode) > 0 { var order models.FsiOrderDtos order.RxID = strconv.FormatInt(item.ID, 10) order.Rxno = strconv.FormatInt(item.ID, 10) order.LongDrordFlag = "0" order.HilistType = "1" order.ChrgType = "1" order.DrordBhvr = "-" order.HilistCode = subItem.HisProject.MedicalCode order.HosplistName = subItem.HisProject.ProjectName order.HilistLv = "1" order.HilistPric = fmt.Sprintf("%.2f", subItem.Price) order.HosplistCode = subItem.HisProject.MedicalCode order.HosplistName = subItem.HisProject.ProjectName order.Cnt = subItem.Count cnt, _ := strconv.ParseFloat(subItem.Count, 64) order.Pric = fmt.Sprintf("%.2f", subItem.Price) order.Sumamt = fmt.Sprintf("%.2f", subItem.Price*cnt) order.OwnpayAmt = "" order.SelfpayAmt = "" order.Spec = "" order.SpecUnt = "" order.DrordBegnDate = s_tm order.DrordStopDate = "" order.DrordDrCodg = doctor_info.DoctorNumber order.DrordDeptName = department.Name order.DrordDeptCodg = department.Number order.DrordDrName = doctor_info.UserName order.DrordDrProfttl = "234" order.CurrDrordFlag = "1" orders = append(orders, &order) } if subItem.Type == 3 && len(subItem.GoodInfo.MedicalInsuranceNumber) > 0 { var order models.FsiOrderDtos order.RxID = strconv.FormatInt(item.ID, 10) order.Rxno = strconv.FormatInt(item.ID, 10) order.LongDrordFlag = "0" order.HilistType = "1" order.ChrgType = "1" order.DrordBhvr = "-" order.HilistCode = subItem.GoodInfo.MedicalInsuranceNumber order.HosplistName = subItem.GoodInfo.GoodName order.HilistLv = "1" order.HilistPric = fmt.Sprintf("%.2f", subItem.Price) order.HosplistCode = subItem.GoodInfo.MedicalInsuranceNumber order.HosplistName = subItem.GoodInfo.GoodName order.Cnt = subItem.Count cnt, _ := strconv.ParseFloat(subItem.Count, 64) order.Pric = fmt.Sprintf("%.2f", subItem.Price) order.Sumamt = fmt.Sprintf("%.2f", subItem.Price*cnt) order.OwnpayAmt = "" order.SelfpayAmt = "" order.Spec = "" order.SpecUnt = "" order.DrordBegnDate = s_tm order.DrordStopDate = "" order.DrordDrCodg = doctor_info.DoctorNumber order.DrordDeptName = department.Name order.DrordDeptCodg = department.Number order.DrordDrName = doctor_info.UserName order.DrordDrProfttl = "234" order.CurrDrordFlag = "1" orders = append(orders, &order) } } } //处方医嘱信息 } fed.MatnStas = "0" fed.MedfeeSumamt = "0" fed.OwnpayAmt = "0" fed.SelfpayAmt = "0" fed.AcctPayamt = "0" fed.MaAmt = "0" fed.HifpPayamt = "0" fed.SetlTotlnum = "1" fed.Insutype = his.Insutype fed.ReimFlag = "0" fed.OutSetlFlag = "0" var fopd []*models.FsiOperationDtosData data := make(map[string]interface{}) data["fed"] = fed data["fdd"] = fdds data["fod"] = orders data["pd"] = pd data["pp"] = pp data["fopd"] = fopd data["trig_scen"] = trig_scen fmt.Println(data) fmt.Println(fed) fmt.Println(fdds) fmt.Println(orders) fmt.Println(pd) fmt.Println(pp) fmt.Println(fopd) client := &http.Client{} bytesData, _ := json.Marshal(data) var req *http.Request if miConfig.MdtrtareaAdmvs == "320921" || miConfig.MdtrtareaAdmvs == "320982" { if miConfig.MdtrtareaAdmvs == "320921" { req, _ = http.NewRequest("POST", "http://192.168.2.3:9532/"+"jsyb/3101", bytes.NewReader(bytesData)) } else { req, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/3101", 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 res } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return res } respJSON = respJSON["data"].(map[string]interface{})["request_log"].(map[string]interface{}) fmt.Println(respJSON) result, _ := json.Marshal(respJSON) fmt.Println(result) if err := json.Unmarshal([]byte(result), &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return res } return res } else { output, input := service.Gdyb3101(pd, fed, fdds, orders, fopd, pp, trig_scen) saveLog(output, input, "3101", "事前") if err := json.Unmarshal([]byte(output), &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } return res } return res } func Check3102(c *HisApiController, patient_id int64, his_patient_id int64, admin_user_id int64, trig_scen string, order_id int64) (res Result3101) { ////patient_id, _ := c.GetInt64("patient_id") //order_id, _ := c.GetInt64("order_id") ////his_patient_id, _ := c.GetInt64("his_patient_id") ////admin_user_id, _ := c.GetInt64("admin_user_id") //trig_scen := c.GetString("trig_scen") adminUser := c.GetAdminUserInfo() roles, _ := service.GetAdminUserInfoByID(c.GetAdminUserInfo().CurrentOrgId, admin_user_id) his, _ := service.GetNewHisPatientInfoFour(c.GetAdminUserInfo().CurrentOrgId, his_patient_id) miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId) record_time := c.GetString("record_time") order, _ := service.GetHisOrderByID(order_id) psn_info, _ := service.GetPsnByPatientId(patient_id) timeLayout := "2006-01-02" loc, _ := time.LoadLocation("Local") theTime, err := time.ParseInLocation(timeLayout+" 15:04:05", record_time+" 00:00:00", loc) if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } recordDateTime := theTime.Unix() var patientPrescription models.HisPrescriptionInfo patientPrescription, _ = service.FindHisPatientPrescriptionInfo(adminUser.CurrentOrgId, his_patient_id, recordDateTime) if patientPrescription.ID == 0 { patientPrescription, _ = service.FindLastPatientPrescriptionInfo(adminUser.CurrentOrgId, patient_id, recordDateTime) } department, _ := service.GetDepartMentDetail(patientPrescription.Departments) doctor_info, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, patientPrescription.DoctorId) // diagnosis_ids := strings.Split(his.Diagnosis, ",") prescriptions, _ := service.GetNewHisPrescriptionTen(adminUser.CurrentOrgId, his_patient_id, recordDateTime) var pp models.PublicParams pp.InsuplcAdmdvs = miConfig.InsuplcAdmdvs pp.MdtrtareaAdmvs = miConfig.MdtrtareaAdmvs pp.FixmedinsName = miConfig.OrgName pp.FixmedinsCode = miConfig.Code pp.RequestUrl = miConfig.Url pp.Cainfo = miConfig.Cainfo pp.SecretKey = miConfig.SecretKey pp.AccessKey = miConfig.AccessKey pp.OpterName = roles.UserName var config []*models.HisXtDiagnoseConfig for _, item := range diagnosis_ids { id, _ := strconv.ParseInt(item, 10, 64) diagnosisConfig, _ := service.FindDiagnoseById(id) config = append(config, &diagnosisConfig) } var pd models.PatientDtos pd.PatnID = his.PsnNo pd.PatnName = his.Name pd.Gend = his.Gend pd.Brdy = psn_info.Brdy pd.Poolarea = his.InsuplcAdmdvs pd.CurrMdtrtID = his.Number var fed models.FsiEncounterDtos fed.MdtrtID = his.Number fed.MedinsID = miConfig.Code fed.MedinsName = miConfig.OrgName fed.MedinsAdmdvs = miConfig.MdtrtareaAdmvs fed.MedMdtrtType = "1" fed.MedinsType = "1" fed.MedinsLv = "11" tm := time.Unix(his.RecordDate, 0) s_tm := tm.Format("2006-01-02 15:04:05") fed.AdmDate = s_tm fed.DscgDate = s_tm fed.DscgMainDiseCodg = config[0].CountryCode fed.DscgMainDiseName = config[0].CountryContentName //诊断信息 var fdds []*models.FsiDiagnoseDtos for index, item := range config { if index == 0 { var fdd models.FsiDiagnoseDtos fdd.DiseID = strconv.FormatInt(item.ID, 10) fdd.InoutDiseType = "1" fdd.MaindiseFlag = "1" fdd.DiseDate = s_tm fdd.DiasSrtNo = "1" fdd.DiseName = item.CountryContentName fdd.DiseCodg = item.CountryCode fdds = append(fdds, &fdd) } else { var fdd models.FsiDiagnoseDtos fdd.DiseID = strconv.FormatInt(item.ID, 10) fdd.InoutDiseType = "1" fdd.MaindiseFlag = "1" fdd.DiseDate = s_tm fdd.DiasSrtNo = strconv.FormatInt(int64(index), 10) fdd.DiseName = item.CountryContentName fdd.DiseCodg = item.CountryCode fdds = append(fdds, &fdd) } } fed.DrCodg = strconv.FormatInt(doctor_info.ID, 10) fed.AdmDeptCodg = strconv.FormatInt(department.ID, 10) fed.AdmDeptName = department.Name fed.DscgDeptCodg = strconv.FormatInt(department.ID, 10) fed.DscgDeptName = department.Name fed.MedType = order.MedType //处方医嘱信息 var orders []*models.FsiOrderDtos //for _, item := range prescriptions { // for _, subItem := range item.HisDoctorAdviceInfo { // var order models.FsiOrderDtos // order.RxID = strconv.FormatInt(item.ID, 10) // order.Rxno = strconv.FormatInt(item.ID, 10) // order.LongDrordFlag = "0" // order.HilistType = "1" // order.ChrgType = "1" // order.DrordBhvr = "-" // order.HilistCode = subItem.BaseDrugLib.MedicalInsuranceNumber // order.HosplistName = subItem.BaseDrugLib.DrugName // order.HilistLv = "1" // order.HilistPric = strconv.FormatFloat(subItem.Price, 'E', -1, 64) // order.HosplistCode = subItem.BaseDrugLib.MedicalInsuranceNumber // order.HosplistName = subItem.BaseDrugLib.DrugName // order.Cnt = strconv.FormatFloat(subItem.PrescribingNumber, 'E', -1, 64) // order.Pric = strconv.FormatFloat(subItem.Price, 'E', -1, 64) // order.Sumamt = strconv.FormatFloat((subItem.Price * subItem.PrescribingNumber), 'E', -1, 64) // order.OwnpayAmt = "" // order.SelfpayAmt = "" // order.Spec = "" // order.SpecUnt = "" // order.DrordBegnDate = s_tm // order.DrordStopDate = "" // order.DrordDrCodg = "1" // order.DrordDeptName = department.Name // order.DrordDrCodg = "1" // order.DrordDrName = doctor_info.UserName // order.DrordDrProfttl = "" // order.CurrDrordFlag = "1" // orders = append(orders, &order) // } // for _, subItem := range item.HisPrescriptionProject { // if subItem.Type == 2 { // var order models.FsiOrderDtos // order.RxID = strconv.FormatInt(item.ID, 10) // order.Rxno = strconv.FormatInt(item.ID, 10) // order.LongDrordFlag = "0" // order.HilistType = "1" // order.ChrgType = "1" // order.DrordBhvr = "-" // order.HilistCode = subItem.HisProject.MedicalCode // order.HosplistName = subItem.HisProject.ProjectName // order.HilistLv = "1" // order.HilistPric = strconv.FormatFloat(subItem.Price, 'E', -1, 64) // order.HosplistCode = subItem.HisProject.MedicalCode // order.HosplistName = subItem.HisProject.ProjectName // order.Cnt = subItem.Count // cnt, _ := strconv.ParseFloat(subItem.Count, 64) // // order.Pric = strconv.FormatFloat(subItem.Price, 'E', -1, 64) // order.Sumamt = strconv.FormatFloat((subItem.Price * cnt), 'E', -1, 64) // order.OwnpayAmt = "" // order.SelfpayAmt = "" // order.Spec = "" // order.SpecUnt = "" // order.DrordBegnDate = s_tm // order.DrordStopDate = "" // order.DrordDrCodg = "1" // order.DrordDeptName = department.Name // order.DrordDrCodg = "1" // order.DrordDrName = doctor_info.UserName // order.DrordDrProfttl = "" // order.CurrDrordFlag = "1" // orders = append(orders, &order) // // } // if subItem.Type == 3 { // // var order models.FsiOrderDtos // order.RxID = strconv.FormatInt(item.ID, 10) // order.Rxno = strconv.FormatInt(item.ID, 10) // order.LongDrordFlag = "0" // order.HilistType = "1" // order.ChrgType = "1" // order.DrordBhvr = "-" // order.HilistCode = subItem.GoodInfo.MedicalInsuranceNumber // order.HosplistName = subItem.GoodInfo.GoodName // order.HilistLv = "1" // order.HilistPric = strconv.FormatFloat(subItem.Price, 'E', -1, 64) // order.HosplistCode = subItem.GoodInfo.MedicalInsuranceNumber // order.HosplistName = subItem.GoodInfo.GoodName // order.Cnt = subItem.Count // cnt, _ := strconv.ParseFloat(subItem.Count, 64) // order.Pric = strconv.FormatFloat(subItem.Price, 'E', -1, 64) // order.Sumamt = strconv.FormatFloat((subItem.Price * cnt), 'E', -1, 64) // order.OwnpayAmt = "" // order.SelfpayAmt = "" // order.Spec = "" // order.SpecUnt = "" // order.DrordBegnDate = s_tm // order.DrordStopDate = "" // order.DrordDrCodg = "1" // order.DrordDeptName = department.Name // order.DrordDrCodg = "1" // order.DrordDrName = doctor_info.UserName // order.DrordDrProfttl = "" // order.CurrDrordFlag = "1" // orders = append(orders, &order) // // } // } //} for _, item := range prescriptions { for _, subItem := range item.HisDoctorAdviceInfo { if len(subItem.BaseDrugLib.MedicalInsuranceNumber) > 0 { var order models.FsiOrderDtos order.RxID = strconv.FormatInt(item.ID, 10) order.Rxno = strconv.FormatInt(item.ID, 10) order.LongDrordFlag = "0" order.HilistType = "1" order.ChrgType = "1" order.DrordBhvr = "-" order.HilistCode = subItem.BaseDrugLib.MedicalInsuranceNumber order.HosplistName = subItem.BaseDrugLib.DrugName order.HilistLv = "1" order.HilistPric = fmt.Sprintf("%.2f", subItem.Price) order.HosplistCode = subItem.BaseDrugLib.MedicalInsuranceNumber order.HosplistName = subItem.BaseDrugLib.DrugName order.Cnt = fmt.Sprintf("%.2f", subItem.PrescribingNumber) order.Pric = fmt.Sprintf("%.2f", subItem.Price) order.Sumamt = fmt.Sprintf("%.2f", (subItem.PrescribingNumber * subItem.Price)) order.OwnpayAmt = "" order.SelfpayAmt = "" order.Spec = "" order.SpecUnt = "" order.DrordBegnDate = s_tm order.DrordStopDate = "" order.DrordDrCodg = doctor_info.DoctorNumber order.DrordDeptName = department.Name order.DrordDeptCodg = department.Number order.DrordDrName = doctor_info.UserName order.DrordDrProfttl = "234" order.CurrDrordFlag = "1" orders = append(orders, &order) } } for _, subItem := range item.HisPrescriptionProject { if subItem.Type == 2 && len(subItem.HisProject.MedicalCode) > 0 { var order models.FsiOrderDtos order.RxID = strconv.FormatInt(item.ID, 10) order.Rxno = strconv.FormatInt(item.ID, 10) order.LongDrordFlag = "0" order.HilistType = "1" order.ChrgType = "1" order.DrordBhvr = "-" order.HilistCode = subItem.HisProject.MedicalCode order.HosplistName = subItem.HisProject.ProjectName order.HilistLv = "1" order.HilistPric = fmt.Sprintf("%.2f", subItem.Price) order.HosplistCode = subItem.HisProject.MedicalCode order.HosplistName = subItem.HisProject.ProjectName order.Cnt = subItem.Count cnt, _ := strconv.ParseFloat(subItem.Count, 64) order.Pric = fmt.Sprintf("%.2f", subItem.Price) order.Sumamt = fmt.Sprintf("%.2f", subItem.Price*cnt) order.OwnpayAmt = "" order.SelfpayAmt = "" order.Spec = "" order.SpecUnt = "" order.DrordBegnDate = s_tm order.DrordStopDate = "" order.DrordDrCodg = doctor_info.DoctorNumber order.DrordDeptName = department.Name order.DrordDeptCodg = department.Number order.DrordDrName = doctor_info.UserName order.DrordDrProfttl = "234" order.CurrDrordFlag = "1" orders = append(orders, &order) } if subItem.Type == 3 && len(subItem.GoodInfo.MedicalInsuranceNumber) > 0 { var order models.FsiOrderDtos order.RxID = strconv.FormatInt(item.ID, 10) order.Rxno = strconv.FormatInt(item.ID, 10) order.LongDrordFlag = "0" order.HilistType = "1" order.ChrgType = "1" order.DrordBhvr = "0" order.HilistCode = subItem.GoodInfo.MedicalInsuranceNumber order.HosplistName = subItem.GoodInfo.GoodName order.HilistLv = "1" order.HilistPric = fmt.Sprintf("%.2f", subItem.Price) order.HosplistCode = subItem.GoodInfo.MedicalInsuranceNumber order.HosplistName = subItem.GoodInfo.GoodName order.Cnt = subItem.Count cnt, _ := strconv.ParseFloat(subItem.Count, 64) order.Pric = fmt.Sprintf("%.2f", subItem.Price) order.Sumamt = fmt.Sprintf("%.2f", subItem.Price*cnt) order.OwnpayAmt = "" order.SelfpayAmt = "" order.Spec = "" order.SpecUnt = "" order.DrordBegnDate = s_tm order.DrordStopDate = "" order.DrordDrCodg = doctor_info.DoctorNumber order.DrordDeptName = department.Name order.DrordDeptCodg = department.Number order.DrordDrName = doctor_info.UserName order.DrordDrProfttl = "234" order.CurrDrordFlag = "1" orders = append(orders, &order) } } } //处方医嘱信息 fed.MatnStas = "0" fed.MedfeeSumamt = fmt.Sprintf("%.2f", order.MedfeeSumamt) fed.OwnpayAmt = fmt.Sprintf("%.2f", order.FulamtOwnpayAmt) fed.SelfpayAmt = fmt.Sprintf("%.2f", order.PreselfpayAmt) fed.AcctPayamt = fmt.Sprintf("%.2f", order.AcctPay) fed.MaAmt = fmt.Sprintf("%.2f", order.MafPay) fed.HifpPayamt = fmt.Sprintf("%.2f", order.HifpPay) fed.SetlTotlnum = "1" fed.Insutype = his.Insutype fed.ReimFlag = "0" fed.OutSetlFlag = "0" var fopd []*models.FsiOperationDtosData data := make(map[string]interface{}) data["fed"] = fed data["fdd"] = fdds data["fod"] = orders data["pd"] = pd data["pp"] = pp data["fopd"] = fopd data["trig_scen"] = trig_scen client := &http.Client{} bytesData, _ := json.Marshal(data) var req *http.Request if miConfig.MdtrtareaAdmvs == "320921" || miConfig.MdtrtareaAdmvs == "320982" { if miConfig.MdtrtareaAdmvs == "320921" { req, _ = http.NewRequest("POST", "http://192.168.2.3:9532/"+"jsyb/3102", bytes.NewReader(bytesData)) } else { req, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/3102", 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 res } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return res } respJSON = respJSON["data"].(map[string]interface{})["request_log"].(map[string]interface{}) result, _ := json.Marshal(respJSON) if err := json.Unmarshal([]byte(result), &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return res } return res } else { output, input := service.Gdyb3102(pd, fed, fdds, orders, fopd, pp, trig_scen) saveLog(output, input, "3102", "事中") if err := json.Unmarshal([]byte(output), &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } return res } return res } func Checkgd3101ForOne(c *HisApiController, patient_id int64, his models.VMHisPatient, admin_user_id int64, trig_scen string, record_time string, prescriptions []*models.HisPrescription, de models.XtHisDepartment) (res2 Resultgd3101) { var res Resultgd3101 adminUser := c.GetAdminUserInfo() roles, _ := service.GetAdminUserInfoByID(c.GetAdminUserInfo().CurrentOrgId, admin_user_id) //his, _ := service.GetNewHisPatientInfoFour(c.GetAdminUserInfo().CurrentOrgId, his_patient_id) miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId) //record_time := c.GetString("record_time") //trig_scen := c.GetString("trig_scen") //psn_info, _ := service.GetPsnByPatientId(patient_id) //psn_info, _ := service.GetPatientId(patient_id) patient, _ := service.GetPatientByIDTwo(adminUser.CurrentOrgId, patient_id) timeLayout := "2006-01-02" loc, _ := time.LoadLocation("Local") theTime, err := time.ParseInLocation(timeLayout+" 15:04:05", record_time+" 00:00:00", loc) if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return res } recordDateTime := theTime.Unix() var patientPrescription models.HisPrescriptionInfo //patientPrescription, _ = service.FindHisPatientPrescriptionInfo(adminUser.CurrentOrgId, his_patient_id, recordDateTime) //if patientPrescription.ID == 0 { patientPrescription, _ = service.FindLastPatientPrescriptionInfoTwo(adminUser.CurrentOrgId, patient_id, recordDateTime) //} department, _ := service.GetDepartMentDetail(patientPrescription.Departments) doctor_info, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, patientPrescription.DoctorId) // diagnosis_ids := strings.Split(patientPrescription.Diagnosis, ",") //prescriptions, _ := service.GetNewHisPrescriptionTen(adminUser.CurrentOrgId, his_patient_id, recordDateTime) str, _ := getBirthDateFromIDCard(patient.IdCardNo) var pp models.PublicParams pp.InsuplcAdmdvs = miConfig.InsuplcAdmdvs pp.MdtrtareaAdmvs = miConfig.MdtrtareaAdmvs pp.FixmedinsName = miConfig.OrgName pp.FixmedinsCode = miConfig.Code pp.RequestUrl = miConfig.Url pp.Cainfo = miConfig.Cainfo pp.SecretKey = miConfig.SecretKey pp.AccessKey = miConfig.AccessKey pp.OpterName = roles.UserName var config []*models.HisXtDiagnoseConfig for _, item := range diagnosis_ids { id, _ := strconv.ParseInt(item, 10, 64) diagnosisConfig, _ := service.FindDiagnoseById(id) config = append(config, &diagnosisConfig) } var pd models.PatientDtos pd.PatnID = his.PsnNo pd.PatnName = his.Name pd.Gend = his.Gend pd.Brdy = str pd.Poolarea = miConfig.MdtrtareaAdmvs pd.CurrMdtrtID = his.Number var fed models.FsiEncounterDtos fed.MdtrtID = his.Number fed.MedinsID = miConfig.Code fed.MedinsName = miConfig.OrgName fed.MedinsAdmdvs = miConfig.MdtrtareaAdmvs fed.MedMdtrtType = "1" fed.MedinsType = "1" fed.MedinsLv = "11" tm := time.Unix(his.RecordDate, 0) s_tm := tm.Format("2006-01-02 15:04:05") fed.AdmDate = s_tm fed.DscgDate = s_tm fed.DscgMainDiseCodg = config[0].CountryCode fed.DscgMainDiseName = config[0].CountryContentName //诊断信息 var fdds []*models.FsiDiagnoseDtos for index, item := range config { if index == 0 { var fdd models.FsiDiagnoseDtos fdd.DiseID = strconv.FormatInt(item.ID, 10) fdd.InoutDiseType = "1" fdd.MaindiseFlag = "1" fdd.DiseDate = s_tm fdd.DiasSrtNo = "1" fdd.DiseName = item.CountryContentName fdd.DiseCodg = item.CountryCode fdds = append(fdds, &fdd) } else { var fdd models.FsiDiagnoseDtos fdd.DiseID = strconv.FormatInt(item.ID, 10) fdd.InoutDiseType = "1" fdd.MaindiseFlag = "1" fdd.DiseDate = s_tm fdd.DiasSrtNo = strconv.FormatInt(int64(index), 10) fdd.DiseName = item.CountryContentName fdd.DiseCodg = item.CountryCode fdds = append(fdds, &fdd) } } fed.DrCodg = strconv.FormatInt(doctor_info.ID, 10) fed.AdmDeptCodg = strconv.FormatInt(de.ID, 10) fed.AdmDeptName = de.Name fed.DscgDeptCodg = strconv.FormatInt(de.ID, 10) fed.DscgDeptName = de.Name fed.MedMdtrtType = "1" fed.MedType = "11" //if his.Insutype == "390" { // fed.MedType = "1402" //} else { // fed.MedType = "9933" //} var orders []*models.FsiOrderDtos if trig_scen == "2" { //处方医嘱信息 for _, item := range prescriptions { for _, subItem := range item.HisDoctorAdviceInfo { if len(subItem.BaseDrugLib.MedicalInsuranceNumber) > 0 { spec := (subItem.BaseDrugLib.Dose + subItem.BaseDrugLib.DoseUnit) + "*" + strconv.FormatInt(subItem.BaseDrugLib.MinNumber, 10) + subItem.BaseDrugLib.MinUnit + "/" + subItem.BaseDrugLib.MaxUnit var order models.FsiOrderDtos order.RxID = strconv.FormatInt(item.ID, 10) order.Rxno = strconv.FormatInt(item.ID, 10) order.LongDrordFlag = "0" order.HilistType = "1" order.ChrgType = "1" order.DrordBhvr = "0" order.HilistCode = subItem.BaseDrugLib.MedicalInsuranceNumber order.HosplistName = subItem.BaseDrugLib.DrugName order.HilistLv = "1" order.HilistPric = fmt.Sprintf("%.2f", subItem.Price) order.HosplistCode = subItem.BaseDrugLib.MedicalInsuranceNumber order.HosplistName = subItem.BaseDrugLib.DrugName order.Cnt = fmt.Sprintf("%.2f", subItem.PrescribingNumber) order.Pric = fmt.Sprintf("%.2f", subItem.Price) order.Sumamt = fmt.Sprintf("%.2f", (subItem.PrescribingNumber * subItem.Price)) order.OwnpayAmt = "" order.SelfpayAmt = "" order.Spec = spec order.SpecUnt = subItem.PrescribingNumberUnit order.DrordBegnDate = s_tm order.DrordStopDate = "" order.DrordDrCodg = doctor_info.DoctorNumber order.DrordDeptName = department.Name order.DrordDeptCodg = department.Number order.DrordDrName = doctor_info.UserName order.DrordDrProfttl = "234" order.CurrDrordFlag = "1" orders = append(orders, &order) } } for _, subItem := range item.HisPrescriptionProject { if subItem.Type == 2 && len(subItem.HisProject.MedicalCode) > 0 { var order models.FsiOrderDtos order.RxID = strconv.FormatInt(item.ID, 10) order.Rxno = strconv.FormatInt(item.ID, 10) order.LongDrordFlag = "0" order.HilistType = "1" order.ChrgType = "1" order.DrordBhvr = "0" order.HilistCode = subItem.HisProject.MedicalCode order.HosplistName = subItem.HisProject.ProjectName order.HilistLv = "1" order.HilistPric = fmt.Sprintf("%.2f", subItem.Price) order.HosplistCode = subItem.HisProject.MedicalCode order.HosplistName = subItem.HisProject.ProjectName order.Cnt = subItem.Count cnt, _ := strconv.ParseFloat(subItem.Count, 64) order.Pric = fmt.Sprintf("%.2f", subItem.Price) order.Sumamt = fmt.Sprintf("%.2f", subItem.Price*cnt) order.OwnpayAmt = "" order.SelfpayAmt = "" order.Spec = subItem.Unit order.SpecUnt = subItem.Unit order.DrordBegnDate = s_tm order.DrordStopDate = "" order.DrordDrCodg = doctor_info.DoctorNumber order.DrordDeptName = department.Name order.DrordDeptCodg = department.Number order.DrordDrName = doctor_info.UserName order.DrordDrProfttl = "234" order.CurrDrordFlag = "1" orders = append(orders, &order) } if subItem.Type == 3 && len(subItem.GoodInfo.MedicalInsuranceNumber) > 0 { var order models.FsiOrderDtos order.RxID = strconv.FormatInt(item.ID, 10) order.Rxno = strconv.FormatInt(item.ID, 10) order.LongDrordFlag = "0" order.HilistType = "1" order.ChrgType = "1" order.DrordBhvr = "0" order.HilistCode = subItem.GoodInfo.MedicalInsuranceNumber order.HosplistName = subItem.GoodInfo.GoodName order.HilistLv = "1" order.HilistPric = fmt.Sprintf("%.2f", subItem.Price) order.HosplistCode = subItem.GoodInfo.MedicalInsuranceNumber order.HosplistName = subItem.GoodInfo.GoodName order.Cnt = subItem.Count cnt, _ := strconv.ParseFloat(subItem.Count, 64) order.Pric = fmt.Sprintf("%.2f", subItem.Price) order.Sumamt = fmt.Sprintf("%.2f", subItem.Price*cnt) order.OwnpayAmt = "" order.SelfpayAmt = "" order.Spec = subItem.GoodInfo.SpecificationName order.SpecUnt = subItem.Unit order.DrordBegnDate = s_tm order.DrordStopDate = "" order.DrordDrCodg = doctor_info.DoctorNumber order.DrordDeptName = department.Name order.DrordDeptCodg = department.Number order.DrordDrName = doctor_info.UserName order.DrordDrProfttl = "234" order.CurrDrordFlag = "1" orders = append(orders, &order) } } } //处方医嘱信息 } fed.MatnStas = "0" fed.MedfeeSumamt = "0" fed.OwnpayAmt = "0" fed.SelfpayAmt = "0" fed.AcctPayamt = "0" fed.MaAmt = "0" fed.HifpPayamt = "0" fed.SetlTotlnum = "1" fed.Insutype = his.Insutype fed.ReimFlag = "0" fed.OutSetlFlag = "0" var fopd []*models.FsiOperationDtosData data := make(map[string]interface{}) data["fed"] = fed data["fdd"] = fdds data["fod"] = orders data["pd"] = pd data["pp"] = pp data["fopd"] = fopd data["trig_scen"] = trig_scen fmt.Println(data) fmt.Println(fed) fmt.Println(fdds) fmt.Println(orders) fmt.Println(pd) fmt.Println(pp) fmt.Println(fopd) client := &http.Client{} bytesData, _ := json.Marshal(data) var req *http.Request if miConfig.MdtrtareaAdmvs == "320921" || miConfig.MdtrtareaAdmvs == "320982" { if miConfig.MdtrtareaAdmvs == "320921" { req, _ = http.NewRequest("POST", "http://192.168.2.3:9532/"+"jsyb/3101", bytes.NewReader(bytesData)) } else { req, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/3101", 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 res } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return res } respJSON = respJSON["data"].(map[string]interface{})["request_log"].(map[string]interface{}) fmt.Println(respJSON) result, _ := json.Marshal(respJSON) fmt.Println(result) if err := json.Unmarshal([]byte(result), &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return res } return res } else { //if miConfig.MdtrtareaAdmvs == "441202" { output, input := service.Gdyb3101(pd, fed, fdds, orders, fopd, pp, trig_scen) saveLog(output, input, "3101", "事前") if err := json.Unmarshal([]byte(output), &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } return res //} } } func Checkgd3101(c *HisApiController, patient_id int64, his_patient_id int64, admin_user_id int64, trig_scen string, record_time string, prescriptions []*models.HisPrescription) (res Resultgd3101) { adminUser := c.GetAdminUserInfo() roles, _ := service.GetAdminUserInfoByID(c.GetAdminUserInfo().CurrentOrgId, admin_user_id) his, _ := service.GetNewHisPatientInfoFour(c.GetAdminUserInfo().CurrentOrgId, his_patient_id) miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId) //record_time := c.GetString("record_time") //trig_scen := c.GetString("trig_scen") //psn_info, _ := service.GetPsnByPatientId(patient_id) timeLayout := "2006-01-02" loc, _ := time.LoadLocation("Local") theTime, err := time.ParseInLocation(timeLayout+" 15:04:05", record_time+" 00:00:00", loc) if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return res } recordDateTime := theTime.Unix() patient, _ := service.GetPatientByIDTwo(adminUser.CurrentOrgId, patient_id) var patientPrescription models.HisPrescriptionInfo patientPrescription, _ = service.FindHisPatientPrescriptionInfo(adminUser.CurrentOrgId, his_patient_id, recordDateTime) if patientPrescription.ID == 0 { patientPrescription, _ = service.FindLastPatientPrescriptionInfo(adminUser.CurrentOrgId, patient_id, recordDateTime) } department, _ := service.GetDepartMentDetail(patientPrescription.Departments) doctor_info, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, patientPrescription.DoctorId) // diagnosis_ids := strings.Split(patientPrescription.Diagnosis, ",") //prescriptions, _ := service.GetNewHisPrescriptionTen(adminUser.CurrentOrgId, his_patient_id, recordDateTime) var pp models.PublicParams pp.InsuplcAdmdvs = miConfig.InsuplcAdmdvs pp.MdtrtareaAdmvs = miConfig.MdtrtareaAdmvs pp.FixmedinsName = miConfig.OrgName pp.FixmedinsCode = miConfig.Code pp.RequestUrl = miConfig.Url pp.Cainfo = miConfig.Cainfo pp.SecretKey = miConfig.SecretKey pp.AccessKey = miConfig.AccessKey pp.OpterName = roles.UserName var config []*models.HisXtDiagnoseConfig for _, item := range diagnosis_ids { id, _ := strconv.ParseInt(item, 10, 64) diagnosisConfig, _ := service.FindDiagnoseById(id) config = append(config, &diagnosisConfig) } str, _ := getBirthDateFromIDCard(patient.IdCardNo) var pd models.PatientDtos pd.PatnID = his.PsnNo pd.PatnName = his.Name pd.Gend = his.Gend pd.Brdy = str pd.Poolarea = his.InsuplcAdmdvs pd.CurrMdtrtID = his.Number var fed models.FsiEncounterDtos fed.MdtrtID = his.Number fed.MedinsID = miConfig.Code fed.MedinsName = miConfig.OrgName fed.MedinsAdmdvs = miConfig.MdtrtareaAdmvs fed.MedMdtrtType = "1" fed.MedinsType = "1" fed.MedinsLv = "11" tm := time.Unix(his.RecordDate, 0) s_tm := tm.Format("2006-01-02 15:04:05") fed.AdmDate = s_tm fed.DscgDate = s_tm fed.DscgMainDiseCodg = config[0].CountryCode fed.DscgMainDiseName = config[0].CountryContentName //诊断信息 var fdds []*models.FsiDiagnoseDtos for index, item := range config { if index == 0 { var fdd models.FsiDiagnoseDtos fdd.DiseID = strconv.FormatInt(item.ID, 10) fdd.InoutDiseType = "1" fdd.MaindiseFlag = "1" fdd.DiseDate = s_tm fdd.DiasSrtNo = "1" fdd.DiseName = item.CountryContentName fdd.DiseCodg = item.CountryCode fdds = append(fdds, &fdd) } else { var fdd models.FsiDiagnoseDtos fdd.DiseID = strconv.FormatInt(item.ID, 10) fdd.InoutDiseType = "1" fdd.MaindiseFlag = "1" fdd.DiseDate = s_tm fdd.DiasSrtNo = strconv.FormatInt(int64(index), 10) fdd.DiseName = item.CountryContentName fdd.DiseCodg = item.CountryCode fdds = append(fdds, &fdd) } } fed.DrCodg = strconv.FormatInt(doctor_info.ID, 10) fed.AdmDeptCodg = strconv.FormatInt(department.ID, 10) fed.AdmDeptName = department.Name fed.DscgDeptCodg = strconv.FormatInt(department.ID, 10) fed.DscgDeptName = department.Name fed.MedMdtrtType = "1" fed.MedType = "11" //if his.Insutype == "390" { // fed.MedType = "1402" //} else { // fed.MedType = "9933" //} var orders []*models.FsiOrderDtos if trig_scen == "2" { //处方医嘱信息 for _, item := range prescriptions { for _, subItem := range item.HisDoctorAdviceInfo { if len(subItem.BaseDrugLib.MedicalInsuranceNumber) > 0 { spec := (subItem.BaseDrugLib.Dose + subItem.BaseDrugLib.DoseUnit) + "*" + strconv.FormatInt(subItem.BaseDrugLib.MinNumber, 10) + subItem.BaseDrugLib.MinUnit + "/" + subItem.BaseDrugLib.MaxUnit var order models.FsiOrderDtos order.RxID = strconv.FormatInt(item.ID, 10) order.Rxno = strconv.FormatInt(item.ID, 10) order.LongDrordFlag = "0" order.HilistType = "1" order.ChrgType = "1" order.DrordBhvr = "0" order.HilistCode = subItem.BaseDrugLib.MedicalInsuranceNumber order.HosplistName = subItem.BaseDrugLib.DrugName order.HilistLv = "1" order.HilistPric = fmt.Sprintf("%.2f", subItem.Price) order.HosplistCode = subItem.BaseDrugLib.MedicalInsuranceNumber order.HosplistName = subItem.BaseDrugLib.DrugName order.Cnt = fmt.Sprintf("%.2f", subItem.PrescribingNumber) order.Pric = fmt.Sprintf("%.2f", subItem.Price) order.Sumamt = fmt.Sprintf("%.2f", (subItem.PrescribingNumber * subItem.Price)) order.OwnpayAmt = "" order.SelfpayAmt = "" order.Spec = spec order.SpecUnt = subItem.PrescribingNumberUnit order.DrordBegnDate = s_tm order.DrordStopDate = "" order.DrordDrCodg = doctor_info.DoctorNumber order.DrordDeptName = department.Name order.DrordDeptCodg = department.Number order.DrordDrName = doctor_info.UserName order.DrordDrProfttl = "234" order.CurrDrordFlag = "1" orders = append(orders, &order) } } for _, subItem := range item.HisPrescriptionProject { if subItem.Type == 2 && len(subItem.HisProject.MedicalCode) > 0 { var order models.FsiOrderDtos order.RxID = strconv.FormatInt(item.ID, 10) order.Rxno = strconv.FormatInt(item.ID, 10) order.LongDrordFlag = "0" order.HilistType = "1" order.ChrgType = "1" order.DrordBhvr = "0" order.HilistCode = subItem.HisProject.MedicalCode order.HosplistName = subItem.HisProject.ProjectName order.HilistLv = "1" order.HilistPric = fmt.Sprintf("%.2f", subItem.Price) order.HosplistCode = subItem.HisProject.MedicalCode order.HosplistName = subItem.HisProject.ProjectName order.Cnt = subItem.Count cnt, _ := strconv.ParseFloat(subItem.Count, 64) order.Pric = fmt.Sprintf("%.2f", subItem.Price) order.Sumamt = fmt.Sprintf("%.2f", subItem.Price*cnt) order.OwnpayAmt = "" order.SelfpayAmt = "" order.Spec = subItem.Unit order.SpecUnt = subItem.Unit order.DrordBegnDate = s_tm order.DrordStopDate = "" order.DrordDrCodg = doctor_info.DoctorNumber order.DrordDeptName = department.Name order.DrordDeptCodg = department.Number order.DrordDrName = doctor_info.UserName order.DrordDrProfttl = "234" order.CurrDrordFlag = "1" orders = append(orders, &order) } if subItem.Type == 3 && len(subItem.GoodInfo.MedicalInsuranceNumber) > 0 { var order models.FsiOrderDtos order.RxID = strconv.FormatInt(item.ID, 10) order.Rxno = strconv.FormatInt(item.ID, 10) order.LongDrordFlag = "0" order.HilistType = "1" order.ChrgType = "1" order.DrordBhvr = "0" order.HilistCode = subItem.GoodInfo.MedicalInsuranceNumber order.HosplistName = subItem.GoodInfo.GoodName order.HilistLv = "1" order.HilistPric = fmt.Sprintf("%.2f", subItem.Price) order.HosplistCode = subItem.GoodInfo.MedicalInsuranceNumber order.HosplistName = subItem.GoodInfo.GoodName order.Cnt = subItem.Count cnt, _ := strconv.ParseFloat(subItem.Count, 64) order.Pric = fmt.Sprintf("%.2f", subItem.Price) order.Sumamt = fmt.Sprintf("%.2f", subItem.Price*cnt) order.OwnpayAmt = "" order.SelfpayAmt = "" order.Spec = subItem.GoodInfo.SpecificationName order.SpecUnt = subItem.Unit order.DrordBegnDate = s_tm order.DrordStopDate = "" order.DrordDrCodg = doctor_info.DoctorNumber order.DrordDeptName = department.Name order.DrordDeptCodg = department.Number order.DrordDrName = doctor_info.UserName order.DrordDrProfttl = "234" order.CurrDrordFlag = "1" orders = append(orders, &order) } } } //处方医嘱信息 } fed.MatnStas = "0" fed.MedfeeSumamt = "0" fed.OwnpayAmt = "0" fed.SelfpayAmt = "0" fed.AcctPayamt = "0" fed.MaAmt = "0" fed.HifpPayamt = "0" fed.SetlTotlnum = "1" fed.Insutype = his.Insutype fed.ReimFlag = "0" fed.OutSetlFlag = "0" var fopd []*models.FsiOperationDtosData data := make(map[string]interface{}) data["fed"] = fed data["fdd"] = fdds data["fod"] = orders data["pd"] = pd data["pp"] = pp data["fopd"] = fopd data["trig_scen"] = trig_scen fmt.Println(data) fmt.Println(fed) fmt.Println(fdds) fmt.Println(orders) fmt.Println(pd) fmt.Println(pp) fmt.Println(fopd) client := &http.Client{} bytesData, _ := json.Marshal(data) var req *http.Request if miConfig.MdtrtareaAdmvs == "320921" || miConfig.MdtrtareaAdmvs == "320982" { if miConfig.MdtrtareaAdmvs == "320921" { req, _ = http.NewRequest("POST", "http://192.168.2.3:9532/"+"jsyb/3101", bytes.NewReader(bytesData)) } else { req, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/3101", 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 res } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return res } respJSON = respJSON["data"].(map[string]interface{})["request_log"].(map[string]interface{}) fmt.Println(respJSON) result, _ := json.Marshal(respJSON) fmt.Println(result) if err := json.Unmarshal([]byte(result), &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return res } return res } else { output, input := service.Gdyb3101(pd, fed, fdds, orders, fopd, pp, trig_scen) saveLog(output, input, "3101", "事前") if err := json.Unmarshal([]byte(output), &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } return res } return res } func Checkgd3102(c *HisApiController, patient_id int64, his_patient_id int64, admin_user_id int64, trig_scen string, order_id int64) (res Resultgd3101) { adminUser := c.GetAdminUserInfo() roles, _ := service.GetAdminUserInfoByID(c.GetAdminUserInfo().CurrentOrgId, admin_user_id) his, _ := service.GetNewHisPatientInfoFour(c.GetAdminUserInfo().CurrentOrgId, his_patient_id) miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId) record_time := c.GetString("record_time") order, _ := service.GetHisOrderByID(order_id) timeLayout := "2006-01-02" loc, _ := time.LoadLocation("Local") theTime, err := time.ParseInLocation(timeLayout+" 15:04:05", record_time+" 00:00:00", loc) if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } recordDateTime := theTime.Unix() patient, _ := service.GetPatientByIDTwo(adminUser.CurrentOrgId, patient_id) var patientPrescription models.HisPrescriptionInfo patientPrescription, _ = service.FindHisPatientPrescriptionInfo(adminUser.CurrentOrgId, his_patient_id, recordDateTime) if patientPrescription.ID == 0 { patientPrescription, _ = service.FindLastPatientPrescriptionInfo(adminUser.CurrentOrgId, patient_id, recordDateTime) } department, _ := service.GetDepartMentDetail(patientPrescription.Departments) doctor_info, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, patientPrescription.DoctorId) // diagnosis_ids := strings.Split(his.Diagnosis, ",") prescriptions, _ := service.GetNewHisPrescriptionTen(adminUser.CurrentOrgId, his_patient_id, recordDateTime) var pp models.PublicParams pp.InsuplcAdmdvs = miConfig.InsuplcAdmdvs pp.MdtrtareaAdmvs = miConfig.MdtrtareaAdmvs pp.FixmedinsName = miConfig.OrgName pp.FixmedinsCode = miConfig.Code pp.RequestUrl = miConfig.Url pp.Cainfo = miConfig.Cainfo pp.SecretKey = miConfig.SecretKey pp.AccessKey = miConfig.AccessKey pp.OpterName = roles.UserName var config []*models.HisXtDiagnoseConfig for _, item := range diagnosis_ids { id, _ := strconv.ParseInt(item, 10, 64) diagnosisConfig, _ := service.FindDiagnoseById(id) config = append(config, &diagnosisConfig) } str, _ := getBirthDateFromIDCard(patient.IdCardNo) var pd models.PatientDtos pd.PatnID = his.PsnNo pd.PatnName = his.Name pd.Gend = his.Gend pd.Brdy = str pd.Poolarea = his.InsuplcAdmdvs pd.CurrMdtrtID = his.Number var fed models.FsiEncounterDtos fed.MdtrtID = his.Number fed.MedinsID = miConfig.Code fed.MedinsName = miConfig.OrgName fed.MedinsAdmdvs = miConfig.MdtrtareaAdmvs fed.MedMdtrtType = "1" fed.MedinsType = "1" fed.MedinsLv = "11" tm := time.Unix(his.RecordDate, 0) s_tm := tm.Format("2006-01-02 15:04:05") fed.AdmDate = s_tm fed.DscgDate = s_tm fed.DscgMainDiseCodg = config[0].CountryCode fed.DscgMainDiseName = config[0].CountryContentName //诊断信息 var fdds []*models.FsiDiagnoseDtos for index, item := range config { if index == 0 { var fdd models.FsiDiagnoseDtos fdd.DiseID = strconv.FormatInt(item.ID, 10) fdd.InoutDiseType = "1" fdd.MaindiseFlag = "1" fdd.DiseDate = s_tm fdd.DiasSrtNo = "1" fdd.DiseName = item.CountryContentName fdd.DiseCodg = item.CountryCode fdds = append(fdds, &fdd) } else { var fdd models.FsiDiagnoseDtos fdd.DiseID = strconv.FormatInt(item.ID, 10) fdd.InoutDiseType = "1" fdd.MaindiseFlag = "1" fdd.DiseDate = s_tm fdd.DiasSrtNo = strconv.FormatInt(int64(index), 10) fdd.DiseName = item.CountryContentName fdd.DiseCodg = item.CountryCode fdds = append(fdds, &fdd) } } fed.DrCodg = strconv.FormatInt(doctor_info.ID, 10) fed.AdmDeptCodg = strconv.FormatInt(department.ID, 10) fed.AdmDeptName = department.Name fed.DscgDeptCodg = strconv.FormatInt(department.ID, 10) fed.DscgDeptName = department.Name fed.MedType = order.MedType //处方医嘱信息 var orders []*models.FsiOrderDtos //for _, item := range prescriptions { // for _, subItem := range item.HisDoctorAdviceInfo { // var order models.FsiOrderDtos // order.RxID = strconv.FormatInt(item.ID, 10) // order.Rxno = strconv.FormatInt(item.ID, 10) // order.LongDrordFlag = "0" // order.HilistType = "1" // order.ChrgType = "1" // order.DrordBhvr = "-" // order.HilistCode = subItem.BaseDrugLib.MedicalInsuranceNumber // order.HosplistName = subItem.BaseDrugLib.DrugName // order.HilistLv = "1" // order.HilistPric = strconv.FormatFloat(subItem.Price, 'E', -1, 64) // order.HosplistCode = subItem.BaseDrugLib.MedicalInsuranceNumber // order.HosplistName = subItem.BaseDrugLib.DrugName // order.Cnt = strconv.FormatFloat(subItem.PrescribingNumber, 'E', -1, 64) // order.Pric = strconv.FormatFloat(subItem.Price, 'E', -1, 64) // order.Sumamt = strconv.FormatFloat((subItem.Price * subItem.PrescribingNumber), 'E', -1, 64) // order.OwnpayAmt = "" // order.SelfpayAmt = "" // order.Spec = "" // order.SpecUnt = "" // order.DrordBegnDate = s_tm // order.DrordStopDate = "" // order.DrordDrCodg = "1" // order.DrordDeptName = department.Name // order.DrordDrCodg = "1" // order.DrordDrName = doctor_info.UserName // order.DrordDrProfttl = "" // order.CurrDrordFlag = "1" // orders = append(orders, &order) // } // for _, subItem := range item.HisPrescriptionProject { // if subItem.Type == 2 { // var order models.FsiOrderDtos // order.RxID = strconv.FormatInt(item.ID, 10) // order.Rxno = strconv.FormatInt(item.ID, 10) // order.LongDrordFlag = "0" // order.HilistType = "1" // order.ChrgType = "1" // order.DrordBhvr = "-" // order.HilistCode = subItem.HisProject.MedicalCode // order.HosplistName = subItem.HisProject.ProjectName // order.HilistLv = "1" // order.HilistPric = strconv.FormatFloat(subItem.Price, 'E', -1, 64) // order.HosplistCode = subItem.HisProject.MedicalCode // order.HosplistName = subItem.HisProject.ProjectName // order.Cnt = subItem.Count // cnt, _ := strconv.ParseFloat(subItem.Count, 64) // // order.Pric = strconv.FormatFloat(subItem.Price, 'E', -1, 64) // order.Sumamt = strconv.FormatFloat((subItem.Price * cnt), 'E', -1, 64) // order.OwnpayAmt = "" // order.SelfpayAmt = "" // order.Spec = "" // order.SpecUnt = "" // order.DrordBegnDate = s_tm // order.DrordStopDate = "" // order.DrordDrCodg = "1" // order.DrordDeptName = department.Name // order.DrordDrCodg = "1" // order.DrordDrName = doctor_info.UserName // order.DrordDrProfttl = "" // order.CurrDrordFlag = "1" // orders = append(orders, &order) // // } // if subItem.Type == 3 { // // var order models.FsiOrderDtos // order.RxID = strconv.FormatInt(item.ID, 10) // order.Rxno = strconv.FormatInt(item.ID, 10) // order.LongDrordFlag = "0" // order.HilistType = "1" // order.ChrgType = "1" // order.DrordBhvr = "-" // order.HilistCode = subItem.GoodInfo.MedicalInsuranceNumber // order.HosplistName = subItem.GoodInfo.GoodName // order.HilistLv = "1" // order.HilistPric = strconv.FormatFloat(subItem.Price, 'E', -1, 64) // order.HosplistCode = subItem.GoodInfo.MedicalInsuranceNumber // order.HosplistName = subItem.GoodInfo.GoodName // order.Cnt = subItem.Count // cnt, _ := strconv.ParseFloat(subItem.Count, 64) // order.Pric = strconv.FormatFloat(subItem.Price, 'E', -1, 64) // order.Sumamt = strconv.FormatFloat((subItem.Price * cnt), 'E', -1, 64) // order.OwnpayAmt = "" // order.SelfpayAmt = "" // order.Spec = "" // order.SpecUnt = "" // order.DrordBegnDate = s_tm // order.DrordStopDate = "" // order.DrordDrCodg = "1" // order.DrordDeptName = department.Name // order.DrordDrCodg = "1" // order.DrordDrName = doctor_info.UserName // order.DrordDrProfttl = "" // order.CurrDrordFlag = "1" // orders = append(orders, &order) // // } // } //} for _, item := range prescriptions { for _, subItem := range item.HisDoctorAdviceInfo { if len(subItem.BaseDrugLib.MedicalInsuranceNumber) > 0 { spec := (subItem.BaseDrugLib.Dose + subItem.BaseDrugLib.DoseUnit) + "*" + strconv.FormatInt(subItem.BaseDrugLib.MinNumber, 10) + subItem.BaseDrugLib.MinUnit + "/" + subItem.BaseDrugLib.MaxUnit var order models.FsiOrderDtos order.RxID = strconv.FormatInt(item.ID, 10) order.Rxno = strconv.FormatInt(item.ID, 10) order.LongDrordFlag = "0" order.HilistType = "1" order.ChrgType = "1" order.DrordBhvr = "0" order.HilistCode = subItem.BaseDrugLib.MedicalInsuranceNumber order.HosplistName = subItem.BaseDrugLib.DrugName order.HilistLv = "1" order.HilistPric = fmt.Sprintf("%.2f", subItem.Price) order.HosplistCode = subItem.BaseDrugLib.MedicalInsuranceNumber order.HosplistName = subItem.BaseDrugLib.DrugName order.Cnt = fmt.Sprintf("%.2f", subItem.PrescribingNumber) order.Pric = fmt.Sprintf("%.2f", subItem.Price) order.Sumamt = fmt.Sprintf("%.2f", (subItem.PrescribingNumber * subItem.Price)) order.OwnpayAmt = "" order.SelfpayAmt = "" order.Spec = spec order.SpecUnt = subItem.PrescribingNumberUnit order.DrordBegnDate = s_tm order.DrordStopDate = "" order.DrordDrCodg = doctor_info.DoctorNumber order.DrordDeptName = department.Name order.DrordDeptCodg = department.Number order.DrordDrName = doctor_info.UserName order.DrordDrProfttl = "234" order.CurrDrordFlag = "1" orders = append(orders, &order) } } for _, subItem := range item.HisPrescriptionProject { if subItem.Type == 2 && len(subItem.HisProject.MedicalCode) > 0 { var order models.FsiOrderDtos order.RxID = strconv.FormatInt(item.ID, 10) order.Rxno = strconv.FormatInt(item.ID, 10) order.LongDrordFlag = "0" order.HilistType = "1" order.ChrgType = "1" order.DrordBhvr = "0" order.HilistCode = subItem.HisProject.MedicalCode order.HosplistName = subItem.HisProject.ProjectName order.HilistLv = "1" order.HilistPric = fmt.Sprintf("%.2f", subItem.Price) order.HosplistCode = subItem.HisProject.MedicalCode order.HosplistName = subItem.HisProject.ProjectName order.Cnt = subItem.Count cnt, _ := strconv.ParseFloat(subItem.Count, 64) order.Pric = fmt.Sprintf("%.2f", subItem.Price) order.Sumamt = fmt.Sprintf("%.2f", subItem.Price*cnt) order.OwnpayAmt = "" order.SelfpayAmt = "" order.Spec = subItem.Unit order.SpecUnt = subItem.Unit order.DrordBegnDate = s_tm order.DrordStopDate = "" order.DrordDrCodg = doctor_info.DoctorNumber order.DrordDeptName = department.Name order.DrordDeptCodg = department.Number order.DrordDrName = doctor_info.UserName order.DrordDrProfttl = "234" order.CurrDrordFlag = "1" orders = append(orders, &order) } if subItem.Type == 3 && len(subItem.GoodInfo.MedicalInsuranceNumber) > 0 { var order models.FsiOrderDtos order.RxID = strconv.FormatInt(item.ID, 10) order.Rxno = strconv.FormatInt(item.ID, 10) order.LongDrordFlag = "0" order.HilistType = "1" order.ChrgType = "1" order.DrordBhvr = "0" order.HilistCode = subItem.GoodInfo.MedicalInsuranceNumber order.HosplistName = subItem.GoodInfo.GoodName order.HilistLv = "1" order.HilistPric = fmt.Sprintf("%.2f", subItem.Price) order.HosplistCode = subItem.GoodInfo.MedicalInsuranceNumber order.HosplistName = subItem.GoodInfo.GoodName order.Cnt = subItem.Count cnt, _ := strconv.ParseFloat(subItem.Count, 64) order.Pric = fmt.Sprintf("%.2f", subItem.Price) order.Sumamt = fmt.Sprintf("%.2f", subItem.Price*cnt) order.OwnpayAmt = "" order.SelfpayAmt = "" order.Spec = subItem.GoodInfo.SpecificationName order.SpecUnt = subItem.Unit order.DrordBegnDate = s_tm order.DrordStopDate = "" order.DrordDrCodg = doctor_info.DoctorNumber order.DrordDeptName = department.Name order.DrordDeptCodg = department.Number order.DrordDrName = doctor_info.UserName order.DrordDrProfttl = "234" order.CurrDrordFlag = "1" orders = append(orders, &order) } } } //处方医嘱信息 fed.MatnStas = "0" fed.MedfeeSumamt = fmt.Sprintf("%.2f", order.MedfeeSumamt) fed.OwnpayAmt = fmt.Sprintf("%.2f", order.FulamtOwnpayAmt) fed.SelfpayAmt = fmt.Sprintf("%.2f", order.PreselfpayAmt) fed.AcctPayamt = fmt.Sprintf("%.2f", order.AcctPay) fed.MaAmt = fmt.Sprintf("%.2f", order.MafPay) fed.HifpPayamt = fmt.Sprintf("%.2f", order.HifpPay) fed.SetlTotlnum = "1" fed.Insutype = his.Insutype fed.ReimFlag = "0" fed.OutSetlFlag = "0" var fopd []*models.FsiOperationDtosData data := make(map[string]interface{}) data["fed"] = fed data["fdd"] = fdds data["fod"] = orders data["pd"] = pd data["pp"] = pp data["fopd"] = fopd data["trig_scen"] = trig_scen client := &http.Client{} bytesData, _ := json.Marshal(data) var req *http.Request if miConfig.MdtrtareaAdmvs == "320921" || miConfig.MdtrtareaAdmvs == "320982" { if miConfig.MdtrtareaAdmvs == "320921" { req, _ = http.NewRequest("POST", "http://192.168.2.3:9532/"+"jsyb/3102", bytes.NewReader(bytesData)) } else { req, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/3102", 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 res } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return res } respJSON = respJSON["data"].(map[string]interface{})["request_log"].(map[string]interface{}) result, _ := json.Marshal(respJSON) if err := json.Unmarshal([]byte(result), &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return res } return res } else { output, input := service.Gdyb3102(pd, fed, fdds, orders, fopd, pp, trig_scen) saveLog(output, input, "3102", "事中") if err := json.Unmarshal([]byte(output), &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } return res } return res } func (c *HisApiController) Check() { psn_no := c.GetString("psn_no") in := c.GetString("in") mt := c.GetString("mt") baseParams := models.BaseParams{ SecretKey: "MSDBYGxXm1Mtyi3PtOUB7n1ktcxwyW57", FixmedinsCode: "H15049901371", InsuplcAdmdvs: "150499", MdtrtareaAdmvs: "150499", OrgName: "赤峰费森血液透析中心", Doctor: "1111", } service.Gdyb2001(baseParams, psn_no, in, mt) } func (c *HisApiController) GetPsnNcdsInfo() { admin_user_id, _ := c.GetInt64("admin_user_id") patient_id, _ := c.GetInt64("patient_id") //id, _ := c.GetInt64("id") adminUser := c.GetAdminUserInfo() miConfig, _ := service.FindMedicalInsuranceInfo(adminUser.CurrentOrgId) //config, _ := service.GetMedicalInsuranceConfig(adminUser.CurrentOrgId) //patient, _ := service.GetPatientByID(c.GetAdminUserInfo().CurrentOrgId, id) role, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, admin_user_id) //psn_record, _ := service.GetP(id) psn_info, _ := service.GetPsnByPatientId(patient_id) //psn_record, _ := service.GetPsnNCDSRecordById(id) // //if psn_record.ID == 0 { // c.ServeFailJSONWithSGJErrorCode(enums.ErrorPsnRecordNoExistWrong) // return //} var res Result5301 var res10265 Result5301For10265 if miConfig.MdtrtareaAdmvs == "320921" || miConfig.MdtrtareaAdmvs == "320982" { psn_info, _ := service.GetPsnByPatientId(patient_id) var api string if miConfig.MdtrtareaAdmvs == "320921" { api = "http://192.168.2.3:9532/" + "jsyb/5301?" + "fixmedins_code=" + miConfig.Code + "&secret_key=" + miConfig.SecretKey + "&ak=" + miConfig.AccessKey + "&org_name=" + miConfig.OrgName + "&doctor=" + role.UserName + "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&url=" + miConfig.Url + "&psn_no=" + psn_info.PsnNo + "&cainfo=" + miConfig.Cainfo } else { api = "http://192.168.5.251:9532/" + "jsyb/5301?" + "fixmedins_code=" + miConfig.Code + "&secret_key=" + miConfig.SecretKey + "&ak=" + miConfig.AccessKey + "&org_name=" + miConfig.OrgName + "&doctor=" + role.UserName + "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&url=" + miConfig.Url + "&psn_no=" + psn_info.PsnNo + "&cainfo=" + miConfig.Cainfo } resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) result, _ := json.Marshal(respJSON) if err := json.Unmarshal([]byte(result), &res10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res.ErrMsg = res10265.ErrMsg res.Output = res10265.Output res.InfRefmsgid = res10265.InfRefmsgid infocode, _ := strconv.ParseInt(res10265.Infcode, 10, 64) res.Infcode = infocode } else if miConfig.MdtrtareaAdmvs == "341203" { psn_info, _ := service.GetPsnByPatientId(patient_id) var api string api = miConfig.SecretKey + "ahyb/5301?" + "fixmedins_code=" + miConfig.Code + "&secret_key=" + miConfig.SecretKey + "&ak=" + miConfig.AccessKey + "&org_name=" + miConfig.OrgName + "&doctor=" + role.UserName + "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&url=" + miConfig.Url + "&psn_no=" + psn_info.PsnNo + "&cainfo=" + miConfig.Cainfo resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } status := respJSON["data"].(map[string]interface{})["status"].(string) if status == "0" { err_msg := respJSON["data"].(map[string]interface{})["msg"].(string) c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": err_msg, }) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) result, _ := json.Marshal(respJSON) if err := json.Unmarshal([]byte(result), &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "340699" { psn_info, _ := service.GetHisPatientByPatientId(patient_id) var api string api = miConfig.SecretKey + "ahyb/5301?" + "fixmedins_code=" + miConfig.Code + "&secret_key=" + miConfig.SecretKey + "&ak=" + miConfig.AccessKey + "&org_name=" + miConfig.OrgName + "&doctor=" + role.UserName + "&insuplc_admdvs=" + psn_info.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&url=" + miConfig.Url + "&psn_no=" + psn_info.PsnNo + "&cainfo=" + miConfig.Cainfo resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } status := respJSON["data"].(map[string]interface{})["status"].(string) if status == "0" { err_msg := respJSON["data"].(map[string]interface{})["msg"].(string) c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": err_msg, }) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) result, _ := json.Marshal(respJSON) if err := json.Unmarshal([]byte(result), &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "360302" { p, _ := service.GetHisPatientById(patient_id) result, _ := service.Jxyb5301(p.PsnNo, miConfig.OrgName, role.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, miConfig.Url, miConfig.AccessKey, "") var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } userJSONBytes, _ := json.Marshal(dat) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "361025" { p, _ := service.GetHisPatientById(patient_id) result, _ := service.Jxyb5301(p.PsnNo, miConfig.OrgName, role.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, miConfig.Url, miConfig.AccessKey, "") var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } userJSONBytes, _ := json.Marshal(dat) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "360100" { p, _ := service.GetHisPatientById(patient_id) result, _ := service.Jxyb5301(p.PsnNo, miConfig.OrgName, role.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, miConfig.Url, miConfig.AccessKey, "") var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } userJSONBytes, _ := json.Marshal(dat) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "430800" { p, _ := service.GetHisPatientById(patient_id) result, _ := service.Hnyb5301(p.PsnNo, miConfig.OrgName, role.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, miConfig.Url, miConfig.AccessKey, "") var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } userJSONBytes, _ := json.Marshal(dat) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "420200" { p, _ := service.GetHisPatientById(patient_id) api := "http://192.168.0.197:9532/" + "/hbyb/5301?psn_no=" + p.PsnNo + "&org_name=" + miConfig.OrgName + "&doctor=" + role.UserName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) result, _ := json.Marshal(respJSON) if err := json.Unmarshal([]byte(result), &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "420902" { p, _ := service.GetHisPatientById(patient_id) api := miConfig.Url + "hbyb/5301?psn_no=" + p.PsnNo + "&org_name=" + miConfig.OrgName + "&doctor=" + role.UserName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) result, _ := json.Marshal(respJSON) if err := json.Unmarshal([]byte(result), &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "421182" { p, _ := service.GetHisPatientById(patient_id) api := miConfig.Url + "/hbyb/5301?psn_no=" + p.PsnNo + "&org_name=" + miConfig.OrgName + "&doctor=" + role.UserName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) result, _ := json.Marshal(respJSON) if err := json.Unmarshal([]byte(result), &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "420902" { p, _ := service.GetHisPatientById(patient_id) api := miConfig.Url + "/hbyb/5301?psn_no=" + p.PsnNo + "&org_name=" + miConfig.OrgName + "&doctor=" + role.UserName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) result, _ := json.Marshal(respJSON) if err := json.Unmarshal([]byte(result), &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "421300" { p, _ := service.GetHisPatientById(patient_id) api := "http://192.168.124.4:9532/" + "/hbyb/5301?psn_no=" + p.PsnNo + "&org_name=" + miConfig.OrgName + "&doctor=" + role.UserName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) result, _ := json.Marshal(respJSON) if err := json.Unmarshal([]byte(result), &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "441799" { p, _ := service.GetHisPatientById(patient_id) api := miConfig.Url + "gdyb/5301?psn_no=" + p.PsnNo + "&org_name=" + miConfig.OrgName + "&doctor=" + role.UserName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) result, _ := json.Marshal(respJSON) if err := json.Unmarshal([]byte(result), &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else { result := service.Gdyb5301(psn_info.PsnNo, miConfig.OrgName, role.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, admin_user_id) var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } userJSONBytes, _ := json.Marshal(dat) if miConfig.Code == "H15049901371" { if err := json.Unmarshal(userJSONBytes, &res10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res.InfRefmsgid = res10265.InfRefmsgid res.Output = res10265.Output res.ErrMsg = res10265.ErrMsg infocode, _ := strconv.ParseInt(res10265.Infcode, 10, 64) res.Infcode = infocode } else { if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } } if res.Infcode == 0 { c.ServeSuccessJSON(map[string]interface{}{ "result": res.Output.Result, }) } } func (c *HisApiController) CheckInsutype() { his_patient_id, _ := c.GetInt64("his_patient_id") admin_user_id, _ := c.GetInt64("admin_user_id") roles, _ := service.GetAdminUserInfoByID(c.GetAdminUserInfo().CurrentOrgId, admin_user_id) his, _ := service.GetNewHisPatientInfoFour(c.GetAdminUserInfo().CurrentOrgId, his_patient_id) miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId) result := service.Gdyb90100(his.PsnNo, miConfig.OrgName, roles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey) var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } userJSONBytes, _ := json.Marshal(dat) var res Result90100 if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if res.Infcode != 0 { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res.ErrMsg, }) return } else { fmt.Println(res) } } func (c *HisApiController) CheckCardPWD() { card_pwd := c.GetString("card_pwd") his_patient_id, _ := c.GetInt64("his_patient_id") admin_user_id, _ := c.GetInt64("admin_user_id") roles, _ := service.GetAdminUserInfoByID(c.GetAdminUserInfo().CurrentOrgId, admin_user_id) miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId) his, _ := service.GetNewHisPatientInfoFour(c.GetAdminUserInfo().CurrentOrgId, his_patient_id) psn, _ := service.GetPsnByPatientId(his.PatientId) bas := strings.Split(psn.CardInfo, "|") basNumber := bas[2] if psn.InsuplcAdmdvs[:4] == "4403" { result := service.Gdyb90991(his.PsnNo, miConfig.OrgName, roles.UserName, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, card_pwd, basNumber) var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } userJSONBytes, _ := json.Marshal(dat) var res Result90991 if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if res.Infcode != 0 { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res.ErrMsg, }) return } else { if res.Output.Result.SscnoCheckStat == "0" && res.Output.Result.CardStat != "10" { var msg string switch res.Output.Result.CardStat { case "00": msg = "未激活" break case "10": msg = "激活" break case "20": msg = "窗口挂失" break case "21": msg = "电话挂失" break case "22": msg = "单位网上申报挂失" break case "23": msg = "保健办挂失" break case "24": msg = "个人网上挂失" break case "25": msg = "网上服务大厅挂失" break case "30": msg = "注销" break case "40": msg = "回收" break case "99": msg = "制卡中(无效卡)" break } c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": msg, }) return } else { c.ServeSuccessJSON(map[string]interface{}{ "msg": "校验成功", }) return } } } else { c.ServeSuccessJSON(map[string]interface{}{ "msg": "校验成功", }) return } } func (c *HisApiController) CheckCardPWDTwo() { //card_pwd := c.GetString("card_pwd") //his_patient_id, _ := c.GetInt64("his_patient_id") admin_user_id, _ := c.GetInt64("admin_user_id") roles, _ := service.GetAdminUserInfoByID(c.GetAdminUserInfo().CurrentOrgId, admin_user_id) miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId) result := service.Gdyb90991("44030000000629690364", miConfig.OrgName, roles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, "000000", "BDM421363") var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } userJSONBytes, _ := json.Marshal(dat) var res Result90991 if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if res.Infcode != 0 { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res.ErrMsg, }) return } else { if res.Output.Result.SscnoCheckStat == "0" { var msg string switch res.Output.Result.CardStat { case "00": msg = "未激活" break case "10": msg = "激活" break case "20": msg = "窗口挂失" break case "21": msg = "电话挂失" break case "22": msg = "单位网上申报挂失" break case "23": msg = "保健办挂失" break case "24": msg = "个人网上挂失" break case "25": msg = "网上服务大厅挂失" break case "30": msg = "注销" break case "40": msg = "回收" break case "99": msg = "制卡中(无效卡)" break } c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": msg, }) return } else { c.ServeSuccessJSON(map[string]interface{}{ "msg": "校验成功", }) return } } } type ELeCertData struct { Data struct { Extra string `json:"extra"` IDNo string `json:"idNo"` IDType string `json:"idType"` EcToken string `json:"ecToken"` InsuOrg string `json:"insuOrg"` UserName string `json:"userName"` EcIndexNo string `json:"ecIndexNo"` Gender string `json:"gender"` Birthday string `json:"birthday"` Nationality string `json:"nationality"` Email string `json:"email"` } `json:"OutData"` } func (c *HisApiController) ReadCard() { id_card_type, _ := c.GetInt64("id_card_type") admin_user_id, _ := c.GetInt64("admin_user_id") certificates, _ := c.GetInt64("certificates") // insuplc_admdvs_str := c.GetString("insuplc_admdvs") id_card_no := c.GetString("id_card_no") patient, _ := service.GetPatientByIDCard(id_card_no, c.GetAdminUserInfo().CurrentOrgId) roles, _ := service.GetAdminUserInfoByID(c.GetAdminUserInfo().CurrentOrgId, admin_user_id) miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId) switch id_card_type { case 1: if miConfig.MdtrtareaAdmvs == "421300" { var res ResultTwo api := "http://192.168.124.4:9532/" + "hbyb/1101?cert_no=" + "" + "&org_name=" + miConfig.OrgName + "&doctor=" + roles.UserName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&id_card_type=" + strconv.FormatInt(id_card_type, 10) + "&card_sn=" + "" + "&certificates=" + strconv.FormatInt(certificates, 10) resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) result, _ := json.Marshal(respJSON) fmt.Println("log") fmt.Println(string(result)) if err := json.Unmarshal([]byte(result), &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if res.Infcode == 0 { patient, err := service.GetPatientByIDCard(res.Output.Baseinfo.Certno, c.GetAdminUserInfo().CurrentOrgId) if err == gorm.ErrRecordNotFound { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeNoPateintException) return } else if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError) return } else { Iinfos, _ := json.Marshal(res.Output.Iinfo) Idetinfos, _ := json.Marshal(res.Output.Idetinfo) infoStr := string(Iinfos) idetinfoStr := string(Idetinfos) var rf []*ResultFive json.Unmarshal([]byte(infoStr), &rf) var insutypes []*ResultFive var insutype string var is390 int = 0 var is310 int = 0 for _, item := range rf { if (item.Insutype == "390" && item.PsnInsuStas == "1") || (item.Insutype == "310" && item.PsnInsuStas == "1") || (item.Insutype == "310" && item.PsnInsuStas == "") || (item.Insutype == "390" && item.PsnInsuStas == "") { insutypes = append(insutypes, item) } } if len(insutypes) == 1 { insutype = insutypes[0].Insutype //insuplc_admdvs = insutypes[0].InsuplcAdmdvs } else { for _, i := range insutypes { if i.Insutype == "390" { is390 = 1 } if i.Insutype == "310" { is310 = 1 } } } if is390 == 1 { insutype = "390" } if is310 == 1 { insutype = "310" } if len(insutypes) == 0 { insutype = "390" } var insuplc_admdvs string for _, item := range rf { if item.Insutype == insutype { insuplc_admdvs = item.InsuplcAdmdvs } } if strings.Contains(insuplc_admdvs, "4213") { insuplc_admdvs = miConfig.MdtrtareaAdmvs } psn := &models.HisPsn{ PsnNo: res.Output.Baseinfo.PsnNo, PatientId: patient.ID, Certno: res.Output.Baseinfo.Certno, Gend: res.Output.Baseinfo.Gend, Naty: res.Output.Baseinfo.Naty, PsnCertType: res.Output.Baseinfo.PsnCertType, PsnName: res.Output.Baseinfo.PsnName, Idetinfo: idetinfoStr, Insuinfo: infoStr, InsuplcAdmdvs: insuplc_admdvs, UserOrgId: c.GetAdminUserInfo().CurrentOrgId, } service.CreateHisPsn(psn) c.ServeSuccessJSON(map[string]interface{}{ "patient": patient, "number": res.Output.Baseinfo.Certno, }) } } else { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisFailedException) return } } else if miConfig.MdtrtareaAdmvs == "420200" { var res ResultTwo api := "http://192.168.0.197:9532/" + "hbyb/1101?cert_no=" + "" + "&org_name=" + miConfig.OrgName + "&doctor=" + roles.UserName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&id_card_type=" + strconv.FormatInt(id_card_type, 10) + "&card_sn=" + "" + "&certificates=" + strconv.FormatInt(certificates, 10) resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) result, _ := json.Marshal(respJSON) fmt.Println("log") fmt.Println(string(result)) if err := json.Unmarshal([]byte(result), &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if res.Infcode == 0 { patient, err := service.GetPatientByIDCard(res.Output.Baseinfo.Certno, c.GetAdminUserInfo().CurrentOrgId) if err == gorm.ErrRecordNotFound { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeNoPateintException) return } else if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError) return } else { Iinfos, _ := json.Marshal(res.Output.Iinfo) Idetinfos, _ := json.Marshal(res.Output.Idetinfo) infoStr := string(Iinfos) idetinfoStr := string(Idetinfos) psn := &models.HisPsn{ PsnNo: res.Output.Baseinfo.PsnNo, PatientId: patient.ID, Certno: res.Output.Baseinfo.Certno, Gend: res.Output.Baseinfo.Gend, Naty: res.Output.Baseinfo.Naty, PsnCertType: res.Output.Baseinfo.PsnCertType, PsnName: res.Output.Baseinfo.PsnName, Idetinfo: idetinfoStr, Insuinfo: infoStr, UserOrgId: c.GetAdminUserInfo().CurrentOrgId, } service.CreateHisPsn(psn) var rf []*ResultFive json.Unmarshal([]byte(infoStr), &rf) var insutypes []*ResultFive var insutype string var is390 int = 0 var is310 int = 0 for _, item := range rf { if (item.Insutype == "390" && item.PsnInsuStas == "1") || (item.Insutype == "310" && item.PsnInsuStas == "1") { insutypes = append(insutypes, item) } } if len(insutypes) == 1 { insutype = insutypes[0].Insutype //insuplc_admdvs = insutypes[0].InsuplcAdmdvs } else { for _, i := range insutypes { if i.Insutype == "390" { is390 = 1 } if i.Insutype == "310" { is310 = 1 } } } if is390 == 1 { insutype = "390" } if is310 == 1 { insutype = "310" } if len(insutypes) == 0 { insutype = "310" } c.ServeSuccessJSON(map[string]interface{}{ "patient": patient, "number": res.Output.Baseinfo.Certno, "insutype": insutype, }) } } else { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisFailedException) return } } else if miConfig.MdtrtareaAdmvs == "420902" { var res ResultTwo api := miConfig.Url + "hbyb/1101?cert_no=" + "" + "&org_name=" + miConfig.OrgName + "&doctor=" + roles.UserName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&id_card_type=" + strconv.FormatInt(id_card_type, 10) + "&card_sn=" + "" + "&certificates=" + strconv.FormatInt(certificates, 10) resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) result, _ := json.Marshal(respJSON) fmt.Println("log") fmt.Println(string(result)) if err := json.Unmarshal([]byte(result), &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if res.Infcode == 0 { patient, err := service.GetPatientByIDCard(res.Output.Baseinfo.Certno, c.GetAdminUserInfo().CurrentOrgId) if err == gorm.ErrRecordNotFound { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeNoPateintException) return } else if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError) return } else { Iinfos, _ := json.Marshal(res.Output.Iinfo) Idetinfos, _ := json.Marshal(res.Output.Idetinfo) infoStr := string(Iinfos) idetinfoStr := string(Idetinfos) var rf []*ResultFive json.Unmarshal([]byte(infoStr), &rf) var insutypes []*ResultFive var insutype string var is390 int = 0 var is310 int = 0 for _, item := range rf { if (item.Insutype == "390" && item.PsnInsuStas == "1") || (item.Insutype == "310" && item.PsnInsuStas == "1") || (item.Insutype == "310" && item.PsnInsuStas == "") || (item.Insutype == "390" && item.PsnInsuStas == "") { insutypes = append(insutypes, item) } } if len(insutypes) == 1 { insutype = insutypes[0].Insutype //insuplc_admdvs = insutypes[0].InsuplcAdmdvs } else { for _, i := range insutypes { if i.Insutype == "390" { is390 = 1 } if i.Insutype == "310" { is310 = 1 } } } if is390 == 1 { insutype = "390" } if is310 == 1 { insutype = "310" } if len(insutypes) == 0 { insutype = "390" } var insuplc_admdvs string for _, item := range rf { if item.Insutype == insutype { insuplc_admdvs = item.InsuplcAdmdvs } } psn := &models.HisPsn{ PsnNo: res.Output.Baseinfo.PsnNo, PatientId: patient.ID, Certno: res.Output.Baseinfo.Certno, Gend: res.Output.Baseinfo.Gend, Naty: res.Output.Baseinfo.Naty, PsnCertType: res.Output.Baseinfo.PsnCertType, PsnName: res.Output.Baseinfo.PsnName, Idetinfo: idetinfoStr, Insuinfo: infoStr, UserOrgId: c.GetAdminUserInfo().CurrentOrgId, InsuplcAdmdvs: insuplc_admdvs, } service.CreateHisPsn(psn) for _, item := range rf { if (item.Insutype == "390" && item.PsnInsuStas == "1") || (item.Insutype == "310" && item.PsnInsuStas == "1") { insutypes = append(insutypes, item) } } if len(insutypes) == 1 { insutype = insutypes[0].Insutype //insuplc_admdvs = insutypes[0].InsuplcAdmdvs } else { for _, i := range insutypes { if i.Insutype == "390" { is390 = 1 } if i.Insutype == "310" { is310 = 1 } } } if is390 == 1 { insutype = "390" } if is310 == 1 { insutype = "310" } if len(insutypes) == 0 { insutype = "310" } c.ServeSuccessJSON(map[string]interface{}{ "patient": patient, "number": res.Output.Baseinfo.Certno, "insutype": insutype, }) } } else { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisFailedException) return } } else if miConfig.MdtrtareaAdmvs == "421182" { var res ResultTwo api := "http://192.168.0:9532/" + "hbyb/1101?cert_no=" + "" + "&org_name=" + miConfig.OrgName + "&doctor=" + roles.UserName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&id_card_type=" + strconv.FormatInt(id_card_type, 10) + "&card_sn=" + "" + "&certificates=" + strconv.FormatInt(certificates, 10) resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) result, _ := json.Marshal(respJSON) fmt.Println("log") fmt.Println(string(result)) if err := json.Unmarshal([]byte(result), &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if res.Infcode == 0 { patient, err := service.GetPatientByIDCard(res.Output.Baseinfo.Certno, c.GetAdminUserInfo().CurrentOrgId) if err == gorm.ErrRecordNotFound { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeNoPateintException) return } else if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError) return } else { Iinfos, _ := json.Marshal(res.Output.Iinfo) Idetinfos, _ := json.Marshal(res.Output.Idetinfo) infoStr := string(Iinfos) idetinfoStr := string(Idetinfos) b, age, _ := getBirthdateAndAge(res.Output.Baseinfo.Certno) psn := &models.HisPsn{ PsnNo: res.Output.Baseinfo.PsnNo, PatientId: patient.ID, Certno: res.Output.Baseinfo.Certno, Brdy: b, Age: float64(age), Gend: res.Output.Baseinfo.Gend, Naty: res.Output.Baseinfo.Naty, PsnCertType: res.Output.Baseinfo.PsnCertType, PsnName: res.Output.Baseinfo.PsnName, Idetinfo: idetinfoStr, Insuinfo: infoStr, UserOrgId: c.GetAdminUserInfo().CurrentOrgId, } service.CreateHisPsn(psn) var rf []*ResultFive json.Unmarshal([]byte(infoStr), &rf) var insutypes []*ResultFive var insutype string var is390 int = 0 var is310 int = 0 for _, item := range rf { if (item.Insutype == "390" && item.PsnInsuStas == "1") || (item.Insutype == "310" && item.PsnInsuStas == "1") { insutypes = append(insutypes, item) } } if len(insutypes) == 1 { insutype = insutypes[0].Insutype //insuplc_admdvs = insutypes[0].InsuplcAdmdvs } else { for _, i := range insutypes { if i.Insutype == "390" { is390 = 1 } if i.Insutype == "310" { is310 = 1 } } } if is390 == 1 { insutype = "390" } if is310 == 1 { insutype = "310" } if len(insutypes) == 0 { insutype = "310" } c.ServeSuccessJSON(map[string]interface{}{ "patient": patient, "number": res.Output.Baseinfo.Certno, "insutype": insutype, }) } } else { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisFailedException) return } } else if miConfig.MdtrtareaAdmvs == "320921" || miConfig.MdtrtareaAdmvs == "320982" { var api string if miConfig.MdtrtareaAdmvs == "320921" { api = "http://192.168.2.3:9532/" + "jsyb/readcard?" + "fixmedins_code=" + miConfig.Code + "&secret_key=" + miConfig.SecretKey + "&ak=" + miConfig.AccessKey + "&org_name=" + miConfig.OrgName + "&doctor=" + roles.UserName + "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&url=" + miConfig.Url + "&cainfo=" + miConfig.Cainfo + "&id_card_type=" + strconv.FormatInt(id_card_type, 10) + "&operator_id=" + strconv.FormatInt(admin_user_id, 10) + "&operator=" + roles.UserName fmt.Println(api) } else { api = "http://192.168.5.251:9532/" + "jsyb/readcard?" + "fixmedins_code=" + miConfig.Code + "&secret_key=" + miConfig.SecretKey + "&ak=" + miConfig.AccessKey + "&org_name=" + miConfig.OrgName + "&doctor=" + roles.UserName + "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&url=" + miConfig.Url + "&cainfo=" + miConfig.Cainfo + "&id_card_type=" + strconv.FormatInt(id_card_type, 10) } resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var status string status = respJSON["data"].(map[string]interface{})["status"].(string) card_type := respJSON["data"].(map[string]interface{})["type"].(string) //console.log() fmt.Println("type===") fmt.Println(card_type) var token string var res ResultTwo //1101结果 var res10265 ResultTwo10265 //1101结果 var card_info string //卡信息 var busi_card_info string card_info = respJSON["data"].(map[string]interface{})["card_info"].(string) busi_card_info = respJSON["data"].(map[string]interface{})["busi_card_info"].(string) if status == "0" { //读卡成功 if card_type == "1" { respJSON = respJSON["data"].(map[string]interface{})["result"].(map[string]interface{}) result, _ := json.Marshal(respJSON) if err := json.Unmarshal([]byte(result), &res10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res.ErrMsg = res10265.ErrMsg infocode, _ := strconv.ParseInt(res10265.Infcode, 10, 64) res.Infcode = infocode res.Output = res10265.Output res.InfRefmsgid = res10265.InfRefmsgid } else { //var card_info string //卡信息 //var busi_card_info string token = respJSON["data"].(map[string]interface{})["token"].(string) //busi_card_info = respJSON["data"].(map[string]interface{})["busi_card_info"].(string) //fmt.Println(card_info) //fmt.Println(busi_card_info) respJSON = respJSON["data"].(map[string]interface{})["result"].(map[string]interface{}) result, _ := json.Marshal(respJSON) if err := json.Unmarshal([]byte(result), &res10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res.ErrMsg = res10265.ErrMsg infocode, _ := strconv.ParseInt(res10265.Infcode, 10, 64) res.Infcode = infocode res.Output = res10265.Output res.InfRefmsgid = res10265.InfRefmsgid } if res.Infcode == 0 { patient, err := service.GetPatientByIDCard(res.Output.Baseinfo.Certno, c.GetAdminUserInfo().CurrentOrgId) if err == gorm.ErrRecordNotFound { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeNoPateintException) return } else if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError) return } else { if card_type == "1" { bas := strings.Split(card_info, "|") basNumber := bas[2] Iinfos, _ := json.Marshal(res.Output.Iinfo) Idetinfos, _ := json.Marshal(res.Output.Idetinfo) infoStr := string(Iinfos) idetinfoStr := string(Idetinfos) b, age, _ := getBirthdateAndAge(res.Output.Baseinfo.Certno) psn := &models.HisPsn{ PsnNo: res.Output.Baseinfo.PsnNo, PatientId: patient.ID, Certno: res.Output.Baseinfo.Certno, Brdy: b, Age: float64(age), Gend: res.Output.Baseinfo.Gend, Naty: res.Output.Baseinfo.Naty, PsnCertType: res.Output.Baseinfo.PsnCertType, PsnName: res.Output.Baseinfo.PsnName, Idetinfo: idetinfoStr, Insuinfo: infoStr, UserOrgId: c.GetAdminUserInfo().CurrentOrgId, CardInfo: card_info, VerifyNumber: busi_card_info, } service.CreateHisPsn(psn) var rf []*ResultFive json.Unmarshal([]byte(infoStr), &rf) var insutypes []*ResultFive var insutype string var is390 int = 0 var is310 int = 0 for _, item := range rf { if (item.Insutype == "390" && item.PsnInsuStas == "1") || (item.Insutype == "310" && item.PsnInsuStas == "1") { insutypes = append(insutypes, item) } } if len(insutypes) == 1 { insutype = insutypes[0].Insutype //insuplc_admdvs = insutypes[0].InsuplcAdmdvs } else { for _, i := range insutypes { if i.Insutype == "390" { is390 = 1 } if i.Insutype == "310" { is310 = 1 } } } if is390 == 1 { insutype = "390" } if is310 == 1 { insutype = "310" } if len(insutypes) == 0 { insutype = "310" } c.ServeSuccessJSON(map[string]interface{}{ "patient": patient, "number": basNumber, "insutype": insutype, }) } else { Iinfos, _ := json.Marshal(res.Output.Iinfo) Idetinfos, _ := json.Marshal(res.Output.Idetinfo) infoStr := string(Iinfos) idetinfoStr := string(Idetinfos) psn := &models.HisPsn{ PsnNo: res.Output.Baseinfo.PsnNo, PatientId: patient.ID, Certno: res.Output.Baseinfo.Certno, Gend: res.Output.Baseinfo.Gend, Naty: res.Output.Baseinfo.Naty, PsnCertType: res.Output.Baseinfo.PsnCertType, PsnName: res.Output.Baseinfo.PsnName, Idetinfo: idetinfoStr, Insuinfo: infoStr, UserOrgId: c.GetAdminUserInfo().CurrentOrgId, CardInfo: card_info, VerifyNumber: token, } service.CreateHisPsn(psn) c.ServeSuccessJSON(map[string]interface{}{ "patient": patient, "number": token, }) } } } else { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisFailedException) return } } else { //读卡失败 c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisFailedException) return } } else if miConfig.MdtrtareaAdmvs == "350500" { cardnum, cardCode, id_card_no, name, errmsg := c.GetFjBasBaseInfo() cardnum = DeleteExtraSpaceTwo(cardnum) cardCode = DeleteExtraSpaceTwo(cardCode) id_card_no = DeleteExtraSpaceTwo(id_card_no) name = DeleteExtraSpaceTwo(name) errmsg = DeleteExtraSpaceTwo(errmsg) cardnum = Remove0000(cardnum) cardCode = Remove0000(cardCode) id_card_no = Remove0000(id_card_no) name = Remove0000(name) errmsg = Remove0000(errmsg) patient, _ := service.GetPatientByIDCard(id_card_no, miConfig.UserOrgId) basStr := cardnum + "|" + cardCode + "|" + id_card_no + "|" + name //result2, requestLog2, errMsgLog2 := service.FJybidcomfirm(cardnum, miConfig.OrgName, roles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, id_card_type, cardCode, certificates, miConfig.Url, miConfig.Cainfo, miConfig.AppSecret, miConfig.SignKey, miConfig.EncKey, patient.Name) //fmt.Println(result2) //fmt.Println(requestLog2) //fmt.Println(errMsgLog2) result, requestLog, errMsgLog := service.FJyb1101(cardnum, miConfig.OrgName, roles.UserName, miConfig.Code, "", miConfig.MdtrtareaAdmvs, id_card_type, cardCode, certificates, miConfig.Url, miConfig.Cainfo, miConfig.AppSecret, miConfig.SignKey, miConfig.EncKey, patient.Name, id_card_no) saveLog(result, requestLog, "1101", "获取人员信息") fmt.Println(errMsgLog) if len(errMsgLog) > 0 { } else { var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } userJSONBytes, _ := json.Marshal(dat) var res ResultTwo if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res.ErrMsg = errMsgLog if res.Infcode == 0 { patient, err := service.GetPatientByNumber(id_card_no, c.GetAdminUserInfo().CurrentOrgId) if err == gorm.ErrRecordNotFound { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeNoPateintException) return } else if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError) return } else { fmt.Println(res) Iinfos, _ := json.Marshal(res.Output.Iinfo) Idetinfos, _ := json.Marshal(res.Output.Idetinfo) infoStr := string(Iinfos) idetinfoStr := string(Idetinfos) var rf []*ResultFive json.Unmarshal([]byte(infoStr), &rf) var insutypes []*ResultFive var insutype string var is390 int = 0 var is310 int = 0 for _, item := range rf { if (item.Insutype == "390" && item.PsnInsuStas == "1") || (item.Insutype == "310" && item.PsnInsuStas == "1") || (item.Insutype == "310" && item.PsnInsuStas == "") || (item.Insutype == "390" && item.PsnInsuStas == "") { insutypes = append(insutypes, item) } } if len(insutypes) == 1 { insutype = insutypes[0].Insutype //insuplc_admdvs = insutypes[0].InsuplcAdmdvs } else { for _, i := range insutypes { if i.Insutype == "390" { is390 = 1 } if i.Insutype == "310" { is310 = 1 } } } if is390 == 1 { insutype = "390" } if is310 == 1 { insutype = "310" } if len(insutypes) == 0 { insutype = "390" } var insuplc_admdvs string for _, item := range rf { if item.Insutype == insutype { insuplc_admdvs = item.InsuplcAdmdvs } } psn := &models.HisPsn{ PsnNo: res.Output.Baseinfo.PsnNo, PatientId: patient.ID, Certno: res.Output.Baseinfo.Certno, Gend: res.Output.Baseinfo.Gend, Naty: res.Output.Baseinfo.Naty, PsnCertType: res.Output.Baseinfo.PsnCertType, PsnName: res.Output.Baseinfo.PsnName, Idetinfo: idetinfoStr, Insuinfo: infoStr, UserOrgId: c.GetAdminUserInfo().CurrentOrgId, CardInfo: basStr, VerifyNumber: "", InsuplcAdmdvs: insuplc_admdvs, } service.CreateHisPsn(psn) c.ServeSuccessJSON(map[string]interface{}{ "patient": patient, "number": cardnum, "insutype": insutype, }) } } else { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisFailedException) return } } } else if miConfig.MdtrtareaAdmvs == "360302" { fmt.Println(initFlag) fmt.Println("initFlag") if initFlag == 0 { c.TestGetJiangXiBasBaseInit() } basStr := c.GetBasBaseInfo() if len(basStr) == 0 { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeReadCardException) return } fmt.Println(basStr) bas := strings.Split(basStr, "|") basNumber := bas[1] fmt.Println(basNumber) card_sn := bas[3] fmt.Println(card_sn) patient, _ := service.GetPatientByNumber(basNumber, c.GetAdminUserInfo().CurrentOrgId) result, _ := service.Jxyb1101(basNumber, miConfig.OrgName, roles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, id_card_type, card_sn, "1", miConfig.Url, miConfig.AccessKey, patient.Name) //result := service.Jxyb1101(basNumber, miConfig.OrgName, roles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, id_card_type, card_sn, certificates) var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } userJSONBytes, _ := json.Marshal(dat) var res ResultTwo if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if res.Infcode == 0 { patient, err := service.GetPatientByNumber(basNumber, c.GetAdminUserInfo().CurrentOrgId) if err == gorm.ErrRecordNotFound { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeNoPateintException) return } else if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError) return } else { Iinfos, _ := json.Marshal(res.Output.Iinfo) Idetinfos, _ := json.Marshal(res.Output.Idetinfo) infoStr := string(Iinfos) idetinfoStr := string(Idetinfos) var rf []*ResultFive json.Unmarshal([]byte(infoStr), &rf) var insutypes []*ResultFive var insutype string var is390 int = 0 var is310 int = 0 var insuplc_admdvs string for _, item := range rf { if (item.Insutype == "390" && item.PsnInsuStas == "1") || (item.Insutype == "310" && item.PsnInsuStas == "1") { insutypes = append(insutypes, item) } } if len(insutypes) == 1 { insutype = insutypes[0].Insutype insuplc_admdvs = insutypes[0].InsuplcAdmdvs } else { for _, i := range insutypes { if i.Insutype == "390" { is390 = 1 } if i.Insutype == "310" { is310 = 1 } } } if is390 == 1 { insutype = "390" } if is310 == 1 { insutype = "310" } if len(insutypes) == 0 { insutype = "310" } for _, item := range rf { if item.Insutype == insutype && item.PsnInsuStas == "1" { insuplc_admdvs = item.InsuplcAdmdvs } } psn := &models.HisPsn{ PsnNo: res.Output.Baseinfo.PsnNo, PatientId: patient.ID, Certno: res.Output.Baseinfo.Certno, Gend: res.Output.Baseinfo.Gend, Naty: res.Output.Baseinfo.Naty, PsnCertType: res.Output.Baseinfo.PsnCertType, PsnName: res.Output.Baseinfo.PsnName, Idetinfo: idetinfoStr, Insuinfo: infoStr, UserOrgId: c.GetAdminUserInfo().CurrentOrgId, CardInfo: basStr, InsuplcAdmdvs: insuplc_admdvs, VerifyNumber: "", } service.CreateHisPsn(psn) c.ServeSuccessJSON(map[string]interface{}{ "patient": patient, "number": basNumber, "insutype": insutype, }) } } else { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisFailedException) return } } else if miConfig.MdtrtareaAdmvs == "361025" { basStr := c.GetBasBaseInfo22222() fmt.Println(basStr) if len(basStr) == 0 { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeReadCardException) return } fmt.Println(basStr) bas := strings.Split(basStr, "|") basNumber := bas[2] //卡号 card_sn := bas[3] // id_card_No := bas[1] //卡号 fmt.Println(basNumber) fmt.Println(card_sn) fmt.Println(id_card_No) var patient service.Patients if len(id_card_No) == 0 { patient, _ = service.GetPatientByNumber(basNumber, c.GetAdminUserInfo().CurrentOrgId) } else { patient, _ = service.GetPatientByNumber(id_card_No, c.GetAdminUserInfo().CurrentOrgId) } result, _ := service.Jxyb1101bycard(basNumber, miConfig.OrgName, roles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, id_card_type, card_sn, "1", miConfig.Url, miConfig.AccessKey, patient.Name, patient.IdCardNo) //result := service.Jxyb1101(basNumber, miConfig.OrgName, roles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, id_card_type, card_sn, certificates) var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } userJSONBytes, _ := json.Marshal(dat) var res ResultTwo if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if res.Infcode == 0 { var pateint2 service.Patients var err error if len(id_card_No) == 0 { pateint2, err = service.GetPatientByNumber(basNumber, c.GetAdminUserInfo().CurrentOrgId) } else { pateint2, err = service.GetPatientByNumber(id_card_No, c.GetAdminUserInfo().CurrentOrgId) //patient, _ = service.GetPatientByNumber(id_card_No, c.GetAdminUserInfo().CurrentOrgId) } if err == gorm.ErrRecordNotFound { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeNoPateintException) return } else if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError) return } else { Iinfos, _ := json.Marshal(res.Output.Iinfo) Idetinfos, _ := json.Marshal(res.Output.Idetinfo) infoStr := string(Iinfos) idetinfoStr := string(Idetinfos) var rf []*ResultFive json.Unmarshal([]byte(infoStr), &rf) var insutypes []*ResultFive var insutype string var is390 int = 0 var is310 int = 0 var insuplc_admdvs string for _, item := range rf { if (item.Insutype == "390" && item.PsnInsuStas == "1") || (item.Insutype == "310" && item.PsnInsuStas == "1") { insutypes = append(insutypes, item) } } if len(insutypes) == 1 { insutype = insutypes[0].Insutype insuplc_admdvs = insutypes[0].InsuplcAdmdvs } else { for _, i := range insutypes { if i.Insutype == "390" { is390 = 1 } if i.Insutype == "310" { is310 = 1 } } } if is390 == 1 { insutype = "390" } if is310 == 1 { insutype = "310" } if len(insutypes) == 0 { insutype = "310" } for _, item := range rf { if item.Insutype == insutype && item.PsnInsuStas == "1" { insuplc_admdvs = item.InsuplcAdmdvs } } psn := &models.HisPsn{ PsnNo: res.Output.Baseinfo.PsnNo, PatientId: pateint2.ID, Certno: res.Output.Baseinfo.Certno, Gend: res.Output.Baseinfo.Gend, Naty: res.Output.Baseinfo.Naty, PsnCertType: res.Output.Baseinfo.PsnCertType, PsnName: res.Output.Baseinfo.PsnName, Idetinfo: idetinfoStr, Insuinfo: infoStr, UserOrgId: c.GetAdminUserInfo().CurrentOrgId, CardInfo: basStr, InsuplcAdmdvs: insuplc_admdvs, VerifyNumber: "", } service.CreateHisPsn(psn) c.ServeSuccessJSON(map[string]interface{}{ "patient": patient, "number": basNumber, "insutype": insutype, }) } } else { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisFailedException) return } } else if miConfig.MdtrtareaAdmvs == "360100" { basStr := c.GetBasBaseInfo22222() fmt.Println(basStr) if len(basStr) == 0 { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeReadCardException) return } fmt.Println(basStr) bas := strings.Split(basStr, "|") basNumber := bas[2] //卡号 card_sn := bas[3] // id_card_No := bas[1] //卡号 fmt.Println(basNumber) fmt.Println(card_sn) fmt.Println(id_card_No) var patient service.Patients if len(id_card_No) == 0 { patient, _ = service.GetPatientByNumber(basNumber, c.GetAdminUserInfo().CurrentOrgId) } else { patient, _ = service.GetPatientByNumber(id_card_No, c.GetAdminUserInfo().CurrentOrgId) } result, _ := service.Jxyb1101bycard(basNumber, miConfig.OrgName, roles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, id_card_type, card_sn, "1", miConfig.Url, miConfig.AccessKey, patient.Name, patient.IdCardNo) //result := service.Jxyb1101(basNumber, miConfig.OrgName, roles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, id_card_type, card_sn, certificates) var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } userJSONBytes, _ := json.Marshal(dat) var res ResultTwo if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if res.Infcode == 0 { var pateint2 service.Patients var err error if len(id_card_No) == 0 { pateint2, err = service.GetPatientByNumber(basNumber, c.GetAdminUserInfo().CurrentOrgId) } else { pateint2, err = service.GetPatientByNumber(id_card_No, c.GetAdminUserInfo().CurrentOrgId) //patient, _ = service.GetPatientByNumber(id_card_No, c.GetAdminUserInfo().CurrentOrgId) } if err == gorm.ErrRecordNotFound { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeNoPateintException) return } else if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError) return } else { Iinfos, _ := json.Marshal(res.Output.Iinfo) Idetinfos, _ := json.Marshal(res.Output.Idetinfo) infoStr := string(Iinfos) idetinfoStr := string(Idetinfos) var rf []*ResultFive json.Unmarshal([]byte(infoStr), &rf) var insutypes []*ResultFive var insutype string var is390 int = 0 var is310 int = 0 var insuplc_admdvs string for _, item := range rf { if (item.Insutype == "390" && item.PsnInsuStas == "1") || (item.Insutype == "310" && item.PsnInsuStas == "1") { insutypes = append(insutypes, item) } } if len(insutypes) == 1 { insutype = insutypes[0].Insutype insuplc_admdvs = insutypes[0].InsuplcAdmdvs } else { for _, i := range insutypes { if i.Insutype == "390" { is390 = 1 } if i.Insutype == "310" { is310 = 1 } } } if is390 == 1 { insutype = "390" } if is310 == 1 { insutype = "310" } if len(insutypes) == 0 { insutype = "310" } for _, item := range rf { if item.Insutype == insutype && item.PsnInsuStas == "1" { insuplc_admdvs = item.InsuplcAdmdvs } } psn := &models.HisPsn{ PsnNo: res.Output.Baseinfo.PsnNo, PatientId: pateint2.ID, Certno: res.Output.Baseinfo.Certno, Gend: res.Output.Baseinfo.Gend, Naty: res.Output.Baseinfo.Naty, PsnCertType: res.Output.Baseinfo.PsnCertType, PsnName: res.Output.Baseinfo.PsnName, Idetinfo: idetinfoStr, Insuinfo: infoStr, UserOrgId: c.GetAdminUserInfo().CurrentOrgId, CardInfo: basStr, InsuplcAdmdvs: insuplc_admdvs, VerifyNumber: "", } service.CreateHisPsn(psn) c.ServeSuccessJSON(map[string]interface{}{ "patient": patient, "number": basNumber, "insutype": insutype, }) } } else { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisFailedException) return } } else if miConfig.MdtrtareaAdmvs == "430800" { fmt.Println(initFlag) fmt.Println("initFlag") if initFlag == 0 { c.TestGetHnBasBaseInit() } basStr := c.GetBasBaseInfo() if len(basStr) == 0 { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeReadCardException) return } fmt.Println(basStr) bas := strings.Split(basStr, "|") basNumber := bas[1] fmt.Println(basNumber) card_sn := bas[3] card_no := bas[2] fmt.Println(card_sn) name := bas[4] name = ConvertToString(name, "gbk", "utf-8") result, _ := service.Hnyb1101(basNumber, miConfig.OrgName, roles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, id_card_type, card_sn, "1", miConfig.Url, miConfig.AccessKey, "", name, card_no) //result := service.Jxyb1101(basNumber, miConfig.OrgName, roles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, id_card_type, card_sn, certificates) var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } userJSONBytes, _ := json.Marshal(dat) var res ResultTwo if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if res.Infcode == 0 { patient, err := service.GetPatientByNumber(basNumber, c.GetAdminUserInfo().CurrentOrgId) if err == gorm.ErrRecordNotFound { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeNoPateintException) return } else if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError) return } else { Iinfos, _ := json.Marshal(res.Output.Iinfo) Idetinfos, _ := json.Marshal(res.Output.Idetinfo) infoStr := string(Iinfos) idetinfoStr := string(Idetinfos) psn := &models.HisPsn{ PsnNo: res.Output.Baseinfo.PsnNo, PatientId: patient.ID, Certno: res.Output.Baseinfo.Certno, Gend: res.Output.Baseinfo.Gend, Naty: res.Output.Baseinfo.Naty, PsnCertType: res.Output.Baseinfo.PsnCertType, PsnName: res.Output.Baseinfo.PsnName, Idetinfo: idetinfoStr, Insuinfo: infoStr, UserOrgId: c.GetAdminUserInfo().CurrentOrgId, CardInfo: basStr, VerifyNumber: "", } service.CreateHisPsn(psn) var rf []*ResultFive json.Unmarshal([]byte(infoStr), &rf) var insutypes []*ResultFive var insutype string var is390 int = 0 var is310 int = 0 for _, item := range rf { if (item.Insutype == "390" && item.PsnInsuStas == "1") || (item.Insutype == "310" && item.PsnInsuStas == "1") { insutypes = append(insutypes, item) } } if len(insutypes) == 1 { insutype = insutypes[0].Insutype //insuplc_admdvs = insutypes[0].InsuplcAdmdvs } else { for _, i := range insutypes { if i.Insutype == "390" { is390 = 1 } if i.Insutype == "310" { is310 = 1 } } } if is390 == 1 { insutype = "390" } if is310 == 1 { insutype = "310" } if len(insutypes) == 0 { insutype = "310" } c.ServeSuccessJSON(map[string]interface{}{ "patient": patient, "number": basNumber, "insutype": insutype, }) } } else { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisFailedException) return } } else if miConfig.MdtrtareaAdmvs == "150499" { var api string api = "http://172.16.13.254:9532/" + "nmyb/readcard?" + "fixmedins_code=" + miConfig.Code + "&secret_key=" + miConfig.SecretKey + "&ak=" + miConfig.AccessKey + "&org_name=" + miConfig.OrgName + "&doctor=" + roles.UserName + "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&url=" + miConfig.Url + "&cainfo=" + miConfig.Cainfo + "&id_card_type=" + strconv.FormatInt(id_card_type, 10) + "&operator_id=" + strconv.FormatInt(admin_user_id, 10) + "&operator=" + roles.UserName fmt.Println(api) resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var res ResultTwo //1101结果 var res10265 ResultTwo10265 //1101结果 var card_info string //卡信息 token := respJSON["data"].(map[string]interface{})["token"].(string) respJSON = respJSON["data"].(map[string]interface{})["result"].(map[string]interface{}) result, _ := json.Marshal(respJSON) if err := json.Unmarshal([]byte(result), &res10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res.ErrMsg = res10265.ErrMsg infocode, _ := strconv.ParseInt(res10265.Infcode, 10, 64) res.Infcode = infocode res.Output = res10265.Output res.InfRefmsgid = res10265.InfRefmsgid if res.Infcode == 0 { patient, err := service.GetPatientByIDCard(res.Output.Baseinfo.Certno, c.GetAdminUserInfo().CurrentOrgId) if err == gorm.ErrRecordNotFound { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeNoPateintException) return } else if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError) return } else { bas := strings.Split(card_info, "|") basNumber := bas[2] Iinfos, _ := json.Marshal(res.Output.Iinfo) Idetinfos, _ := json.Marshal(res.Output.Idetinfo) infoStr := string(Iinfos) idetinfoStr := string(Idetinfos) psn := &models.HisPsn{ PsnNo: res.Output.Baseinfo.PsnNo, PatientId: patient.ID, Certno: res.Output.Baseinfo.Certno, Gend: res.Output.Baseinfo.Gend, Naty: res.Output.Baseinfo.Naty, PsnCertType: res.Output.Baseinfo.PsnCertType, PsnName: res.Output.Baseinfo.PsnName, Idetinfo: idetinfoStr, Insuinfo: infoStr, UserOrgId: c.GetAdminUserInfo().CurrentOrgId, CardInfo: card_info, VerifyNumber: token, } service.CreateHisPsn(psn) var rf []*ResultFive json.Unmarshal([]byte(infoStr), &rf) var insutypes []*ResultFive var insutype string var is390 int = 0 var is310 int = 0 for _, item := range rf { if (item.Insutype == "390" && item.PsnInsuStas == "1") || (item.Insutype == "310" && item.PsnInsuStas == "1") { insutypes = append(insutypes, item) } } if len(insutypes) == 1 { insutype = insutypes[0].Insutype //insuplc_admdvs = insutypes[0].InsuplcAdmdvs } else { for _, i := range insutypes { if i.Insutype == "390" { is390 = 1 } if i.Insutype == "310" { is310 = 1 } } } if is390 == 1 { insutype = "390" } if is310 == 1 { insutype = "310" } if len(insutypes) == 0 { insutype = "310" } c.ServeSuccessJSON(map[string]interface{}{ "patient": patient, "number": basNumber, "insutype": insutype, }) } } else { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisFailedException) return } } else if miConfig.MdtrtareaAdmvs == "450721" { res := c.GetoleInfo() if res.Infcode == 0 { var result string if res.Output.MdtrtCertType == "01" { result = service.Gdyb1101d(res.Output.CertNo, miConfig.OrgName, roles.UserName, miConfig.Code, res.Output.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, 4, res.Output.CardSN, certificates, res.Output.PsnName, res.Output.EcToken, admin_user_id) } else if res.Output.MdtrtCertType == "02" { result = service.Gdyb1101B(res.Output.CertNo, miConfig.OrgName, roles.UserName, miConfig.Code, res.Output.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, 2, res.Output.CardSN, certificates, res.Output.PsnName, res.Output.CardNo, admin_user_id) } else if res.Output.MdtrtCertType == "03" { result = service.Gdyb1101B(res.Output.CertNo, miConfig.OrgName, roles.UserName, miConfig.Code, res.Output.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, 1, res.Output.CardSN, certificates, res.Output.PsnName, res.Output.CardNo, admin_user_id) } var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } userJSONBytes, _ := json.Marshal(dat) var res2 ResultTwo if err := json.Unmarshal(userJSONBytes, &res2); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if res2.Infcode == 0 { patient, err := service.GetPatientByNumber(res.Output.CertNo, c.GetAdminUserInfo().CurrentOrgId) if err == gorm.ErrRecordNotFound { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeNoPateintException) return } else if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError) return } else { Iinfos, _ := json.Marshal(res2.Output.Iinfo) Idetinfos, _ := json.Marshal(res2.Output.Idetinfo) infoStr := string(Iinfos) idetinfoStr := string(Idetinfos) var rf []*ResultFive json.Unmarshal([]byte(infoStr), &rf) var insutypes []*ResultFive var insutype string var is390 int = 0 var is310 int = 0 //var insuplc_admdvs string for _, item := range rf { if (item.Insutype == "390" && item.PsnInsuStas == "1") || (item.Insutype == "310" && item.PsnInsuStas == "1") { insutypes = append(insutypes, item) } } if len(insutypes) == 1 { insutype = insutypes[0].Insutype //insuplc_admdvs = insutypes[0].InsuplcAdmdvs } else { for _, i := range insutypes { if i.Insutype == "390" { is390 = 1 } if i.Insutype == "310" { is310 = 1 } } } if is390 == 1 { insutype = "390" } if is310 == 1 { insutype = "310" } if len(insutypes) == 0 { insutype = "310" } psn := &models.HisPsn{ PsnNo: res2.Output.Baseinfo.PsnNo, PatientId: patient.ID, Certno: res2.Output.Baseinfo.Certno, Gend: res2.Output.Baseinfo.Gend, Naty: res2.Output.Baseinfo.Naty, PsnCertType: res2.Output.Baseinfo.PsnCertType, PsnName: res2.Output.Baseinfo.PsnName, Idetinfo: idetinfoStr, Insuinfo: infoStr, UserOrgId: c.GetAdminUserInfo().CurrentOrgId, CardInfo: res.Output.CertNo + "|" + res.Output.CardSN, VerifyNumber: res.Output.EcToken, InsuplcAdmdvs: res.Output.InsuplcAdmdvs, } if res.Output.MdtrtCertType == "01" { psn.VerifyNumber = res.Output.EcToken //result = service.Gdyb1101d(res.Output.CertNo, miConfig.OrgName, roles.UserName, miConfig.Code, res.Output.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, 4, res.Output.CardSN, certificates, res.Output.PsnName, res.Output.EcToken,admin_user_id) } else if res.Output.MdtrtCertType == "02" { psn.VerifyNumber = res.Output.MdtrtCertNo //result = service.Gdyb1101B(res.Output.CertNo, miConfig.OrgName, roles.UserName, miConfig.Code, res.Output.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, 2, res.Output.CardSN, certificates, res.Output.PsnName, res.Output.CardNo,admin_user_id) } else if res.Output.MdtrtCertType == "03" { psn.VerifyNumber = res.Output.MdtrtCertNo //result = service.Gdyb1101B(res.Output.CertNo, miConfig.OrgName, roles.UserName, miConfig.Code, res.Output.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, 1, res.Output.CardSN, certificates, res.Output.PsnName, res.Output.CardNo,admin_user_id) } var balc float64 for _, item := range rf { if item.Insutype == insutype { balc = item.Balc } } service.CreateHisPsn(psn) c.ServeSuccessJSON(map[string]interface{}{ "patient": patient, "number": res.Output.CardNo, "insutype": insutype, "blac": balc, "desc": idetinfoStr, }) } } else { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res2.ErrMsg, }) } } else { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res.ErrMsg, }) } } else if miConfig.MdtrtareaAdmvs == "341203" { var api string api = miConfig.SecretKey + "ahyb/readcard?" + "fixmedins_code=" + miConfig.Code + "&secret_key=" + miConfig.SecretKey + "&ak=" + miConfig.AccessKey + "&org_name=" + miConfig.OrgName + "&doctor=" + roles.UserName + "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&url=" + miConfig.Url + "&cainfo=" + miConfig.Cainfo + "&id_card_type=" + strconv.FormatInt(id_card_type, 10) + "&operator_id=" + strconv.FormatInt(admin_user_id, 10) + "&operator=" + roles.UserName fmt.Println(api) resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var status string status = respJSON["data"].(map[string]interface{})["status"].(string) card_type := respJSON["data"].(map[string]interface{})["type"].(string) //console.log() fmt.Println("type===") fmt.Println(card_type) var token string var res ResultTwo //1101结果 //var res10265 ResultTwoesultTwo10265 //1101结果 var card_info string //卡信息 var busi_card_info string card_info = respJSON["data"].(map[string]interface{})["card_info"].(string) busi_card_info = respJSON["data"].(map[string]interface{})["busi_card_info"].(string) if status == "0" { //读卡成功 if card_type == "1" { respJSON = respJSON["data"].(map[string]interface{})["result"].(map[string]interface{}) result, _ := json.Marshal(respJSON) if err := json.Unmarshal([]byte(result), &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else { token = respJSON["data"].(map[string]interface{})["token"].(string) respJSON = respJSON["data"].(map[string]interface{})["result"].(map[string]interface{}) result, _ := json.Marshal(respJSON) if err := json.Unmarshal([]byte(result), &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } if res.Infcode == 0 { patient, err := service.GetPatientByIDCard(res.Output.Baseinfo.Certno, c.GetAdminUserInfo().CurrentOrgId) if err == gorm.ErrRecordNotFound { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeNoPateintException) return } else if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError) return } else { if card_type == "1" { bas := strings.Split(card_info, "|") basNumber := bas[2] Iinfos, _ := json.Marshal(res.Output.Iinfo) Idetinfos, _ := json.Marshal(res.Output.Idetinfo) infoStr := string(Iinfos) idetinfoStr := string(Idetinfos) psn := &models.HisPsn{ PsnNo: res.Output.Baseinfo.PsnNo, PatientId: patient.ID, Certno: res.Output.Baseinfo.Certno, Gend: res.Output.Baseinfo.Gend, Naty: res.Output.Baseinfo.Naty, PsnCertType: res.Output.Baseinfo.PsnCertType, PsnName: res.Output.Baseinfo.PsnName, Idetinfo: idetinfoStr, Insuinfo: infoStr, UserOrgId: c.GetAdminUserInfo().CurrentOrgId, CardInfo: card_info, VerifyNumber: busi_card_info, } service.CreateHisPsn(psn) var rf []*ResultFive json.Unmarshal([]byte(infoStr), &rf) var insutypes []*ResultFive var insutype string var is390 int = 0 var is310 int = 0 for _, item := range rf { if (item.Insutype == "390" && item.PsnInsuStas == "1") || (item.Insutype == "310" && item.PsnInsuStas == "1") { insutypes = append(insutypes, item) } } if len(insutypes) == 1 { insutype = insutypes[0].Insutype //insuplc_admdvs = insutypes[0].InsuplcAdmdvs } else { for _, i := range insutypes { if i.Insutype == "390" { is390 = 1 } if i.Insutype == "310" { is310 = 1 } } } if is390 == 1 { insutype = "390" } if is310 == 1 { insutype = "310" } if len(insutypes) == 0 { insutype = "310" } c.ServeSuccessJSON(map[string]interface{}{ "patient": patient, "number": basNumber, "insutype": insutype, }) } else { Iinfos, _ := json.Marshal(res.Output.Iinfo) Idetinfos, _ := json.Marshal(res.Output.Idetinfo) infoStr := string(Iinfos) idetinfoStr := string(Idetinfos) psn := &models.HisPsn{ PsnNo: res.Output.Baseinfo.PsnNo, PatientId: patient.ID, Certno: res.Output.Baseinfo.Certno, Gend: res.Output.Baseinfo.Gend, Naty: res.Output.Baseinfo.Naty, PsnCertType: res.Output.Baseinfo.PsnCertType, PsnName: res.Output.Baseinfo.PsnName, Idetinfo: idetinfoStr, Insuinfo: infoStr, UserOrgId: c.GetAdminUserInfo().CurrentOrgId, CardInfo: card_info, VerifyNumber: token, } service.CreateHisPsn(psn) c.ServeSuccessJSON(map[string]interface{}{ "patient": patient, "number": token, }) } } } else { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisFailedException) return } } else { //读卡失败 c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisFailedException) return } } else if miConfig.MdtrtareaAdmvs == "340699" { var api string api = miConfig.SecretKey + "ahyb/readcard?" + "fixmedins_code=" + miConfig.Code + "&secret_key=" + miConfig.SecretKey + "&ak=" + miConfig.AccessKey + "&org_name=" + miConfig.OrgName + "&doctor=" + roles.UserName + "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&url=" + miConfig.Url + "&cainfo=" + miConfig.Cainfo + "&id_card_type=" + strconv.FormatInt(id_card_type, 10) + "&operator_id=" + strconv.FormatInt(admin_user_id, 10) + "&operator=" + roles.UserName fmt.Println(api) resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var status string status = respJSON["data"].(map[string]interface{})["status"].(string) card_type := respJSON["data"].(map[string]interface{})["type"].(string) //console.log() fmt.Println("type===") fmt.Println(card_type) var token string var res ResultTwo //1101结果 //var res10265 ResultTwoesultTwo10265 //1101结果 var card_info string //卡信息 //var busi_card_info string card_info = respJSON["data"].(map[string]interface{})["card_info"].(string) //busi_card_info = respJSON["data"].(map[string]interface{})["busi_card_info"].(string) if status == "0" { //读卡成功 if card_type == "1" { respJSON = respJSON["data"].(map[string]interface{})["result"].(map[string]interface{}) result, _ := json.Marshal(respJSON) fmt.Println(result) if err := json.Unmarshal([]byte(result), &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } fmt.Println(res) } else { token = respJSON["data"].(map[string]interface{})["token"].(string) respJSON = respJSON["data"].(map[string]interface{})["result"].(map[string]interface{}) result, _ := json.Marshal(respJSON) if err := json.Unmarshal([]byte(result), &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } if res.Infcode == 0 { patient, err := service.GetPatientByIDCard(res.Output.Baseinfo.Certno, c.GetAdminUserInfo().CurrentOrgId) if err == gorm.ErrRecordNotFound { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeNoPateintException) return } else if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError) return } else { if card_type == "1" { bas := strings.Split(card_info, "|") basNumber := bas[2] Iinfos, _ := json.Marshal(res.Output.Iinfo) Idetinfos, _ := json.Marshal(res.Output.Idetinfo) infoStr := string(Iinfos) idetinfoStr := string(Idetinfos) psn := &models.HisPsn{ PsnNo: res.Output.Baseinfo.PsnNo, PatientId: patient.ID, Certno: res.Output.Baseinfo.Certno, Gend: res.Output.Baseinfo.Gend, Naty: res.Output.Baseinfo.Naty, PsnCertType: res.Output.Baseinfo.PsnCertType, PsnName: res.Output.Baseinfo.PsnName, Idetinfo: idetinfoStr, Insuinfo: infoStr, UserOrgId: c.GetAdminUserInfo().CurrentOrgId, CardInfo: card_info, //VerifyNumber: busi_card_info, } service.CreateHisPsn(psn) var rf []*ResultFive json.Unmarshal([]byte(infoStr), &rf) var insutypes []*ResultFive var insutype string var is390 int = 0 var is310 int = 0 for _, item := range rf { if (item.Insutype == "390" && item.PsnInsuStas == "1") || (item.Insutype == "310" && item.PsnInsuStas == "1") { insutypes = append(insutypes, item) } } if len(insutypes) == 1 { insutype = insutypes[0].Insutype //insuplc_admdvs = insutypes[0].InsuplcAdmdvs } else { for _, i := range insutypes { if i.Insutype == "390" { is390 = 1 } if i.Insutype == "310" { is310 = 1 } } } if is390 == 1 { insutype = "390" } if is310 == 1 { insutype = "310" } if len(insutypes) == 0 { insutype = "310" } c.ServeSuccessJSON(map[string]interface{}{ "patient": patient, "number": basNumber, "insutype": insutype, }) } else { Iinfos, _ := json.Marshal(res.Output.Iinfo) Idetinfos, _ := json.Marshal(res.Output.Idetinfo) infoStr := string(Iinfos) idetinfoStr := string(Idetinfos) psn := &models.HisPsn{ PsnNo: res.Output.Baseinfo.PsnNo, PatientId: patient.ID, Certno: res.Output.Baseinfo.Certno, Gend: res.Output.Baseinfo.Gend, Naty: res.Output.Baseinfo.Naty, PsnCertType: res.Output.Baseinfo.PsnCertType, PsnName: res.Output.Baseinfo.PsnName, Idetinfo: idetinfoStr, Insuinfo: infoStr, UserOrgId: c.GetAdminUserInfo().CurrentOrgId, CardInfo: card_info, VerifyNumber: token, } service.CreateHisPsn(psn) c.ServeSuccessJSON(map[string]interface{}{ "patient": patient, "number": token, }) } } } else { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisFailedException) return } } else { //读卡失败 c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisFailedException) return } } else { if initFlag == 0 { c.TestGetBasBaseInit() } basStr := c.GetBasBaseInfo() if len(basStr) == 0 { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeReadCardException) return } fmt.Println(basStr) bas := strings.Split(basStr, "|") basNumber := bas[1] fmt.Println(basNumber) card_sn := bas[3] fmt.Println(card_sn) cardNumber := bas[2] fmt.Println(cardNumber) patient, _ := service.GetPatientByIDCard(basNumber, miConfig.UserOrgId) var result string if bas[0][:2] == "44" { result = service.Gdyb1101f(basNumber, miConfig.OrgName, roles.UserName, miConfig.Code, bas[0], miConfig.MdtrtareaAdmvs, miConfig.SecretKey, id_card_type, card_sn, certificates, patient.Name, cardNumber) } else { result = service.Gdyb1101B(basNumber, miConfig.OrgName, roles.UserName, miConfig.Code, bas[0], miConfig.MdtrtareaAdmvs, miConfig.SecretKey, id_card_type, card_sn, certificates, patient.Name, cardNumber, admin_user_id) } var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } userJSONBytes, _ := json.Marshal(dat) var res ResultTwo if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if res.Infcode == 0 { patient, err := service.GetPatientByNumber(basNumber, c.GetAdminUserInfo().CurrentOrgId) if err == gorm.ErrRecordNotFound { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeNoPateintException) return } else if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError) return } else { Iinfos, _ := json.Marshal(res.Output.Iinfo) Idetinfos, _ := json.Marshal(res.Output.Idetinfo) infoStr := string(Iinfos) idetinfoStr := string(Idetinfos) var rf []*ResultFive json.Unmarshal([]byte(infoStr), &rf) var insutypes []*ResultFive var insutype string var is390 int = 0 var is310 int = 0 var insuplc_admdvs string for _, item := range rf { if (item.Insutype == "390" && item.PsnInsuStas == "1") || (item.Insutype == "310" && item.PsnInsuStas == "1") { insutypes = append(insutypes, item) } } if len(insutypes) == 1 { insutype = insutypes[0].Insutype //insuplc_admdvs = insutypes[0].InsuplcAdmdvs } else { for _, i := range insutypes { if i.Insutype == "390" { is390 = 1 } if i.Insutype == "310" { is310 = 1 } } } if is390 == 1 { insutype = "390" } if is310 == 1 { insutype = "310" } if len(insutypes) == 0 { insutype = "310" } for _, item := range rf { if item.Insutype == insutype { insuplc_admdvs = item.InsuplcAdmdvs } } psn := &models.HisPsn{ PsnNo: res.Output.Baseinfo.PsnNo, PatientId: patient.ID, Certno: res.Output.Baseinfo.Certno, Gend: res.Output.Baseinfo.Gend, Naty: res.Output.Baseinfo.Naty, PsnCertType: res.Output.Baseinfo.PsnCertType, PsnName: res.Output.Baseinfo.PsnName, Idetinfo: idetinfoStr, Insuinfo: infoStr, UserOrgId: c.GetAdminUserInfo().CurrentOrgId, CardInfo: basStr, VerifyNumber: "", InsuplcAdmdvs: insuplc_admdvs, } service.CreateHisPsn(psn) c.ServeSuccessJSON(map[string]interface{}{ "patient": patient, "number": basNumber, }) } } else { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisFailedException) return } break } case 2: if miConfig.MdtrtareaAdmvs == "430800" { if initFlag == 0 { c.TestGetHnBasBaseInit() } SFZStr := c.GetSFZBaseInfo() if len(SFZStr) == 0 { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeReadCardException) return } fmt.Println(SFZStr) id_card_str := strings.Split(SFZStr, "^") card_no := id_card_str[0] //patient, _ := service.GetPatientByNumber(card_no, c.GetAdminUserInfo().CurrentOrgId) //name := id_card_str[1] //name = ConvertToString(name, "gbk", "utf-8") result, _ := service.Hnyb1101(card_no, miConfig.OrgName, roles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, id_card_type, "", "1", miConfig.Url, miConfig.AccessKey, "", "", card_no) var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } userJSONBytes, _ := json.Marshal(dat) var res ResultTwo if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if res.Infcode == 0 { patient, err := service.GetPatientByNumber(card_no, c.GetAdminUserInfo().CurrentOrgId) if err == gorm.ErrRecordNotFound { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeNoPateintException) return } else if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError) return } else { Iinfos, _ := json.Marshal(res.Output.Iinfo) Idetinfos, _ := json.Marshal(res.Output.Idetinfo) infoStr := string(Iinfos) idetinfoStr := string(Idetinfos) var rf []*ResultFive json.Unmarshal([]byte(infoStr), &rf) var insutypes []*ResultFive var insutype string var is390 int = 0 var is310 int = 0 for _, item := range rf { if (item.Insutype == "390" && item.PsnInsuStas == "1") || (item.Insutype == "310" && item.PsnInsuStas == "1") { insutypes = append(insutypes, item) } } if len(insutypes) == 1 { insutype = insutypes[0].Insutype } else { for _, i := range insutypes { if i.Insutype == "390" { is390 = 1 } if i.Insutype == "310" { is310 = 1 } } } if is390 == 1 { insutype = "390" } if is310 == 1 { insutype = "310" } if len(insutypes) == 0 { insutype = "310" } var InsuplcAdmdvs string for _, item := range rf { if item.Insutype == insutype { InsuplcAdmdvs = item.InsuplcAdmdvs } } psn := &models.HisPsn{ PsnNo: res.Output.Baseinfo.PsnNo, PatientId: patient.ID, Certno: res.Output.Baseinfo.Certno, Gend: res.Output.Baseinfo.Gend, Naty: res.Output.Baseinfo.Naty, PsnCertType: res.Output.Baseinfo.PsnCertType, PsnName: res.Output.Baseinfo.PsnName, Idetinfo: idetinfoStr, Insuinfo: infoStr, UserOrgId: c.GetAdminUserInfo().CurrentOrgId, CardInfo: SFZStr, VerifyNumber: "", InsuplcAdmdvs: InsuplcAdmdvs, } service.CreateHisPsn(psn) c.ServeSuccessJSON(map[string]interface{}{ "patient": patient, "number": card_no, "insutype": insutype, }) } } else { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisFailedException) return } } else if miConfig.MdtrtareaAdmvs == "420200" { var res ResultTwo api := "http://192.168.0.197:9532/" + "hbyb/1101?cert_no=" + "" + "&org_name=" + miConfig.OrgName + "&doctor=" + roles.UserName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&id_card_type=" + strconv.FormatInt(id_card_type, 10) + "&card_sn=" + "" + "&certificates=" + strconv.FormatInt(certificates, 10) resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) result, _ := json.Marshal(respJSON) fmt.Println("log") fmt.Println(string(result)) if err := json.Unmarshal([]byte(result), &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if res.Infcode == 0 { patient, err := service.GetPatientByIDCard(res.Output.Baseinfo.Certno, c.GetAdminUserInfo().CurrentOrgId) if err == gorm.ErrRecordNotFound { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeNoPateintException) return } else if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError) return } else { Iinfos, _ := json.Marshal(res.Output.Iinfo) Idetinfos, _ := json.Marshal(res.Output.Idetinfo) infoStr := string(Iinfos) idetinfoStr := string(Idetinfos) psn := &models.HisPsn{ PsnNo: res.Output.Baseinfo.PsnNo, PatientId: patient.ID, Certno: res.Output.Baseinfo.Certno, Gend: res.Output.Baseinfo.Gend, Naty: res.Output.Baseinfo.Naty, PsnCertType: res.Output.Baseinfo.PsnCertType, PsnName: res.Output.Baseinfo.PsnName, Idetinfo: idetinfoStr, Insuinfo: infoStr, UserOrgId: c.GetAdminUserInfo().CurrentOrgId, } service.CreateHisPsn(psn) c.ServeSuccessJSON(map[string]interface{}{ "patient": patient, "number": res.Output.Baseinfo.Certno, }) } } else { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisFailedException) return } } else if miConfig.MdtrtareaAdmvs == "421182" { var res ResultTwo api := miConfig.Url + "hbyb/1101?cert_no=" + "" + "&org_name=" + miConfig.OrgName + "&doctor=" + roles.UserName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&id_card_type=" + strconv.FormatInt(id_card_type, 10) + "&card_sn=" + "" + "&certificates=" + strconv.FormatInt(certificates, 10) resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) result, _ := json.Marshal(respJSON) fmt.Println("log") fmt.Println(string(result)) if err := json.Unmarshal([]byte(result), &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if res.Infcode == 0 { patient, err := service.GetPatientByIDCard(res.Output.Baseinfo.Certno, c.GetAdminUserInfo().CurrentOrgId) if err == gorm.ErrRecordNotFound { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeNoPateintException) return } else if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError) return } else { Iinfos, _ := json.Marshal(res.Output.Iinfo) Idetinfos, _ := json.Marshal(res.Output.Idetinfo) infoStr := string(Iinfos) idetinfoStr := string(Idetinfos) psn := &models.HisPsn{ PsnNo: res.Output.Baseinfo.PsnNo, PatientId: patient.ID, Certno: res.Output.Baseinfo.Certno, Gend: res.Output.Baseinfo.Gend, Naty: res.Output.Baseinfo.Naty, PsnCertType: res.Output.Baseinfo.PsnCertType, PsnName: res.Output.Baseinfo.PsnName, Idetinfo: idetinfoStr, Insuinfo: infoStr, UserOrgId: c.GetAdminUserInfo().CurrentOrgId, } service.CreateHisPsn(psn) c.ServeSuccessJSON(map[string]interface{}{ "patient": patient, "number": res.Output.Baseinfo.Certno, }) } } else { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisFailedException) return } } else if miConfig.MdtrtareaAdmvs == "420902" { var res ResultTwo api := miConfig.Url + "hbyb/1101?cert_no=" + "" + "&org_name=" + miConfig.OrgName + "&doctor=" + roles.UserName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&id_card_type=" + strconv.FormatInt(id_card_type, 10) + "&card_sn=" + "" + "&certificates=" + strconv.FormatInt(certificates, 10) resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) result, _ := json.Marshal(respJSON) fmt.Println("log") fmt.Println(string(result)) if err := json.Unmarshal([]byte(result), &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if res.Infcode == 0 { patient, err := service.GetPatientByIDCard(res.Output.Baseinfo.Certno, c.GetAdminUserInfo().CurrentOrgId) if err == gorm.ErrRecordNotFound { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeNoPateintException) return } else if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError) return } else { Iinfos, _ := json.Marshal(res.Output.Iinfo) Idetinfos, _ := json.Marshal(res.Output.Idetinfo) infoStr := string(Iinfos) idetinfoStr := string(Idetinfos) var rf []*ResultFive json.Unmarshal([]byte(infoStr), &rf) var insutypes []*ResultFive var insutype string var is390 int = 0 var is310 int = 0 for _, item := range rf { if (item.Insutype == "390" && item.PsnInsuStas == "1") || (item.Insutype == "310" && item.PsnInsuStas == "1") || (item.Insutype == "310" && item.PsnInsuStas == "") || (item.Insutype == "390" && item.PsnInsuStas == "") { insutypes = append(insutypes, item) } } if len(insutypes) == 1 { insutype = insutypes[0].Insutype //insuplc_admdvs = insutypes[0].InsuplcAdmdvs } else { for _, i := range insutypes { if i.Insutype == "390" { is390 = 1 } if i.Insutype == "310" { is310 = 1 } } } if is390 == 1 { insutype = "390" } if is310 == 1 { insutype = "310" } if len(insutypes) == 0 { insutype = "390" } var insuplc_admdvs string for _, item := range rf { if item.Insutype == insutype { insuplc_admdvs = item.InsuplcAdmdvs } } psn := &models.HisPsn{ PsnNo: res.Output.Baseinfo.PsnNo, PatientId: patient.ID, Certno: res.Output.Baseinfo.Certno, Gend: res.Output.Baseinfo.Gend, Naty: res.Output.Baseinfo.Naty, PsnCertType: res.Output.Baseinfo.PsnCertType, PsnName: res.Output.Baseinfo.PsnName, Idetinfo: idetinfoStr, Insuinfo: infoStr, UserOrgId: c.GetAdminUserInfo().CurrentOrgId, InsuplcAdmdvs: insuplc_admdvs, } service.CreateHisPsn(psn) c.ServeSuccessJSON(map[string]interface{}{ "patient": patient, "number": res.Output.Baseinfo.Certno, }) } } else { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisFailedException) return } } else if miConfig.MdtrtareaAdmvs == "450721" { res := c.GetoleInfo() if res.Infcode == 0 { var result string if res.Output.MdtrtCertType == "01" { result = service.Gdyb1101d(res.Output.CertNo, miConfig.OrgName, roles.UserName, miConfig.Code, res.Output.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, 4, res.Output.CardSN, 1, res.Output.PsnName, res.Output.EcToken, admin_user_id) } else if res.Output.MdtrtCertType == "02" { result = service.Gdyb1101B(res.Output.CertNo, miConfig.OrgName, roles.UserName, miConfig.Code, res.Output.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, 2, res.Output.CardSN, 1, res.Output.PsnName, res.Output.CardNo, admin_user_id) } else if res.Output.MdtrtCertType == "03" { result = service.Gdyb1101B(res.Output.CertNo, miConfig.OrgName, roles.UserName, miConfig.Code, res.Output.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, 1, res.Output.CardSN, 1, res.Output.PsnName, res.Output.CardNo, admin_user_id) } var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } userJSONBytes, _ := json.Marshal(dat) var res2 ResultTwo if err := json.Unmarshal(userJSONBytes, &res2); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if res2.Infcode == 0 { patient, err := service.GetPatientByNumber(res.Output.CertNo, c.GetAdminUserInfo().CurrentOrgId) if err == gorm.ErrRecordNotFound { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeNoPateintException) return } else if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError) return } else { Iinfos, _ := json.Marshal(res2.Output.Iinfo) Idetinfos, _ := json.Marshal(res2.Output.Idetinfo) infoStr := string(Iinfos) idetinfoStr := string(Idetinfos) var rf []*ResultFive json.Unmarshal([]byte(infoStr), &rf) var insutypes []*ResultFive var insutype string var is390 int = 0 var is310 int = 0 //var insuplc_admdvs string for _, item := range rf { if (item.Insutype == "390" && item.PsnInsuStas == "1") || (item.Insutype == "310" && item.PsnInsuStas == "1") { insutypes = append(insutypes, item) } } if len(insutypes) == 1 { insutype = insutypes[0].Insutype //insuplc_admdvs = insutypes[0].InsuplcAdmdvs } else { for _, i := range insutypes { if i.Insutype == "390" { is390 = 1 } if i.Insutype == "310" { is310 = 1 } } } if is390 == 1 { insutype = "390" } if is310 == 1 { insutype = "310" } if len(insutypes) == 0 { insutype = "310" } psn := &models.HisPsn{ PsnNo: res2.Output.Baseinfo.PsnNo, PatientId: patient.ID, //Brdy: res2.Output.Baseinfo.Brdy, Certno: res2.Output.Baseinfo.Certno, Gend: res2.Output.Baseinfo.Gend, Naty: res2.Output.Baseinfo.Naty, PsnCertType: res2.Output.Baseinfo.PsnCertType, PsnName: res2.Output.Baseinfo.PsnName, Idetinfo: idetinfoStr, Insuinfo: infoStr, UserOrgId: c.GetAdminUserInfo().CurrentOrgId, CardInfo: res.Output.CertNo + "|" + res.Output.CardSN, VerifyNumber: res.Output.EcToken, InsuplcAdmdvs: res.Output.InsuplcAdmdvs, } service.CreateHisPsn(psn) var balc float64 for _, item := range rf { if item.Insutype == insutype { balc = item.Balc } } c.ServeSuccessJSON(map[string]interface{}{ "patient": patient, "number": res.Output.CardNo, "insutype": insutype, "blac": balc, "desc": idetinfoStr, }) } } else { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res2.ErrMsg, }) } } else { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res.ErrMsg, }) } } else if miConfig.MdtrtareaAdmvs == "340699" { var insuplc_admdvs string if len(patient.InsuplcAdmdvs) > 0 { insuplc_admdvs = patient.InsuplcAdmdvs } else { if len(insuplc_admdvs_str) > 0 { insuplc_admdvs = insuplc_admdvs_str } else { insuplc_admdvs = miConfig.InsuplcAdmdvs } } //请求内网数据 api := miConfig.SecretKey + "ahyb/1101?url=" + miConfig.Url + "&cert_no=" + patient.IdCardNo + "&org_name=" + miConfig.OrgName + "&doctor=" + roles.UserName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + insuplc_admdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&id_card_type=" + strconv.FormatInt(2, 10) + "&card_sn=" + "" + "&certificates=" + strconv.FormatInt(1, 10) + "&name=" + patient.Name + "&token=" + "" resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } status := respJSON["data"].(map[string]interface{})["status"].(string) if status == "0" { err_msg := respJSON["data"].(map[string]interface{})["msg"].(string) c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": err_msg, }) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) var res ResultTwo result, _ := json.Marshal(respJSON) fmt.Println("log") fmt.Println(string(result)) if err := json.Unmarshal([]byte(result), &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if res.Infcode == 0 { patient, err := service.GetPatientByIDCard(res.Output.Baseinfo.Certno, c.GetAdminUserInfo().CurrentOrgId) if err == gorm.ErrRecordNotFound { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeNoPateintException) return } else if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError) return } else { Iinfos, _ := json.Marshal(res.Output.Iinfo) Idetinfos, _ := json.Marshal(res.Output.Idetinfo) infoStr := string(Iinfos) idetinfoStr := string(Idetinfos) psn := &models.HisPsn{ PsnNo: res.Output.Baseinfo.PsnNo, PatientId: patient.ID, Certno: res.Output.Baseinfo.Certno, Gend: res.Output.Baseinfo.Gend, Naty: res.Output.Baseinfo.Naty, PsnCertType: res.Output.Baseinfo.PsnCertType, PsnName: res.Output.Baseinfo.PsnName, Idetinfo: idetinfoStr, Insuinfo: infoStr, UserOrgId: c.GetAdminUserInfo().CurrentOrgId, } service.CreateHisPsn(psn) var rf []*ResultFive json.Unmarshal([]byte(infoStr), &rf) var insutypes []*ResultFive var is390 int = 0 var is310 int = 0 var insutype string for _, item := range rf { if (item.Insutype == "390" && item.PsnInsuStas == "1") || (item.Insutype == "310" && item.PsnInsuStas == "1") { insutypes = append(insutypes, item) } } if len(insutypes) == 1 { insutype = insutypes[0].Insutype //insuplc_admdvs = insutypes[0].InsuplcAdmdvs } else { for _, i := range insutypes { if i.Insutype == "390" { is390 = 1 } if i.Insutype == "310" { is310 = 1 } } } if is390 == 1 { insutype = "390" } if is310 == 1 { insutype = "310" } if len(insutypes) == 0 { insutype = "390" } c.ServeSuccessJSON(map[string]interface{}{ "patient": patient, "insutype": insutype, "number": res.Output.Baseinfo.Certno, "info": res, }) } } else { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisFailedException) return } } else { SFZStr := c.GetSFZBaseInfo() id_card_str := strings.Split(SFZStr, "^") id_card_number := id_card_str[0] card_sn := "" result := service.Gdyb1101B(id_card_number, miConfig.OrgName, roles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, id_card_type, card_sn, certificates, "", "", admin_user_id) var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } userJSONBytes, _ := json.Marshal(dat) var res ResultTwo if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if res.Infcode == 0 { patient, err := service.GetPatientByNumber(id_card_number, c.GetAdminUserInfo().CurrentOrgId) if err == gorm.ErrRecordNotFound { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeNoPateintException) return } else if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError) return } else { c.ServeSuccessJSON(map[string]interface{}{ "patient": patient, "number": id_card_number, }) } } else { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisFailedException) return } } break case 3: if miConfig.MdtrtareaAdmvs == "320921" || miConfig.MdtrtareaAdmvs == "320982" { var api string if miConfig.MdtrtareaAdmvs == "320921" { api = "http://192.168.2.3:9532/" + "jsyb/readcard?" + "fixmedins_code=" + miConfig.Code + "&secret_key=" + miConfig.SecretKey + "&ak=" + miConfig.AccessKey + "&org_name=" + miConfig.OrgName + "&doctor=" + roles.UserName + "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&url=" + miConfig.Url + "&cainfo=" + miConfig.Cainfo + "&id_card_type=" + strconv.FormatInt(id_card_type, 10) + "&operator_id=" + strconv.FormatInt(admin_user_id, 10) + "&operator=" + roles.UserName fmt.Println(api) } else { api = "http://192.168.5.251:9532/" + "jsyb/readcard?" + "fixmedins_code=" + miConfig.Code + "&secret_key=" + miConfig.SecretKey + "&ak=" + miConfig.AccessKey + "&org_name=" + miConfig.OrgName + "&doctor=" + roles.UserName + "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&url=" + miConfig.Url + "&cainfo=" + miConfig.Cainfo + "&id_card_type=" + strconv.FormatInt(id_card_type, 10) } resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var status string status = respJSON["data"].(map[string]interface{})["status"].(string) card_type := respJSON["data"].(map[string]interface{})["type"].(string) var token string var res ResultTwo //1101结果 var res10265 ResultTwo10265 //1101结果 var card_info string //卡信息 var busi_card_info string //card_info = respJSON["data"].(map[string]interface{})["card_info"].(string) busi_card_info = respJSON["data"].(map[string]interface{})["busi_card_info"].(string) if status == "0" { //读卡成功 if card_type == "1" { respJSON = respJSON["data"].(map[string]interface{})["result"].(map[string]interface{}) result, _ := json.Marshal(respJSON) if err := json.Unmarshal([]byte(result), &res10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res.ErrMsg = res10265.ErrMsg infocode, _ := strconv.ParseInt(res10265.Infcode, 10, 64) res.Infcode = infocode res.Output = res10265.Output res.InfRefmsgid = res10265.InfRefmsgid } else { //var card_info string //卡信息 //var busi_card_info string token = respJSON["data"].(map[string]interface{})["token"].(string) //busi_card_info = respJSON["data"].(map[string]interface{})["busi_card_info"].(string) //fmt.Println(card_info) //fmt.Println(busi_card_info) respJSON = respJSON["data"].(map[string]interface{})["result"].(map[string]interface{}) result, _ := json.Marshal(respJSON) if err := json.Unmarshal([]byte(result), &res10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res.ErrMsg = res10265.ErrMsg infocode, _ := strconv.ParseInt(res10265.Infcode, 10, 64) res.Infcode = infocode res.Output = res10265.Output res.InfRefmsgid = res10265.InfRefmsgid } if res.Infcode == 0 { patient, err := service.GetPatientByIDCard(res.Output.Baseinfo.Certno, c.GetAdminUserInfo().CurrentOrgId) if err == gorm.ErrRecordNotFound { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeNoPateintException) return } else if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError) return } else { if card_type == "1" { bas := strings.Split(card_info, "|") basNumber := bas[2] Iinfos, _ := json.Marshal(res.Output.Iinfo) Idetinfos, _ := json.Marshal(res.Output.Idetinfo) infoStr := string(Iinfos) idetinfoStr := string(Idetinfos) psn := &models.HisPsn{ PsnNo: res.Output.Baseinfo.PsnNo, PatientId: patient.ID, Certno: res.Output.Baseinfo.Certno, //Brdy: res.Output.Baseinfo.Brdy, Gend: res.Output.Baseinfo.Gend, Naty: res.Output.Baseinfo.Naty, PsnCertType: res.Output.Baseinfo.PsnCertType, PsnName: res.Output.Baseinfo.PsnName, Idetinfo: idetinfoStr, Insuinfo: infoStr, UserOrgId: c.GetAdminUserInfo().CurrentOrgId, CardInfo: card_info, VerifyNumber: busi_card_info, } service.CreateHisPsn(psn) c.ServeSuccessJSON(map[string]interface{}{ "patient": patient, "number": basNumber, }) } else { Iinfos, _ := json.Marshal(res.Output.Iinfo) Idetinfos, _ := json.Marshal(res.Output.Idetinfo) infoStr := string(Iinfos) idetinfoStr := string(Idetinfos) psn := &models.HisPsn{ PsnNo: res.Output.Baseinfo.PsnNo, PatientId: patient.ID, Certno: res.Output.Baseinfo.Certno, Gend: res.Output.Baseinfo.Gend, Naty: res.Output.Baseinfo.Naty, PsnCertType: res.Output.Baseinfo.PsnCertType, PsnName: res.Output.Baseinfo.PsnName, Idetinfo: idetinfoStr, Insuinfo: infoStr, UserOrgId: c.GetAdminUserInfo().CurrentOrgId, CardInfo: card_info, VerifyNumber: token, } service.CreateHisPsn(psn) var rf []*ResultFive json.Unmarshal([]byte(infoStr), &rf) var insutypes []*ResultFive var insutype string var is390 int = 0 var is310 int = 0 for _, item := range rf { if (item.Insutype == "390" && item.PsnInsuStas == "1") || (item.Insutype == "310" && item.PsnInsuStas == "1") { insutypes = append(insutypes, item) } } if len(insutypes) == 1 { insutype = insutypes[0].Insutype //insuplc_admdvs = insutypes[0].InsuplcAdmdvs } else { for _, i := range insutypes { if i.Insutype == "390" { is390 = 1 } if i.Insutype == "310" { is310 = 1 } } } if is390 == 1 { insutype = "390" } if is310 == 1 { insutype = "310" } if len(insutypes) == 0 { insutype = "310" } c.ServeSuccessJSON(map[string]interface{}{ "patient": patient, "number": token, "insutype": insutype, }) } } } else { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisFailedException) return } } else { //读卡失败 c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisFailedException) return } } break case 4: if miConfig.MdtrtareaAdmvs == "320921" || miConfig.MdtrtareaAdmvs == "320982" { var api string if miConfig.MdtrtareaAdmvs == "320921" { api = "http://192.168.2.3:9532/" + "jsyb/readcard?" + "fixmedins_code=" + miConfig.Code + "&secret_key=" + miConfig.SecretKey + "&ak=" + miConfig.AccessKey + "&org_name=" + miConfig.OrgName + "&doctor=" + roles.UserName + "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&url=" + miConfig.Url + "&cainfo=" + miConfig.Cainfo + "&id_card_type=" + strconv.FormatInt(id_card_type, 10) + "&operator_id=" + strconv.FormatInt(admin_user_id, 10) + "&operator=" + roles.UserName fmt.Println(api) } else { api = "http://192.168.5.251:9532/" + "jsyb/readcard?" + "fixmedins_code=" + miConfig.Code + "&secret_key=" + miConfig.SecretKey + "&ak=" + miConfig.AccessKey + "&org_name=" + miConfig.OrgName + "&doctor=" + roles.UserName + "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&url=" + miConfig.Url + "&cainfo=" + miConfig.Cainfo + "&id_card_type=" + strconv.FormatInt(id_card_type, 10) } resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var status string status = respJSON["data"].(map[string]interface{})["status"].(string) //card_type := respJSON["data"].(map[string]interface{})["type"].(string) var token string var res ResultTwo //1101结果 var res10265 ResultTwo10265 //1101结果 if status == "0" { //读卡成功 var card_info string //卡信息 var busi_card_info string token = respJSON["data"].(map[string]interface{})["token"].(string) busi_card_info = respJSON["data"].(map[string]interface{})["busi_card_info"].(string) card_info = respJSON["data"].(map[string]interface{})["card_info"].(string) fmt.Println(card_info) fmt.Println(busi_card_info) respJSON = respJSON["data"].(map[string]interface{})["result"].(map[string]interface{}) result, _ := json.Marshal(respJSON) if err := json.Unmarshal([]byte(result), &res10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res.ErrMsg = res10265.ErrMsg infocode, _ := strconv.ParseInt(res10265.Infcode, 10, 64) res.Infcode = infocode res.Output = res10265.Output res.InfRefmsgid = res10265.InfRefmsgid if res.Infcode == 0 { patient, err := service.GetPatientByIDCard(res.Output.Baseinfo.Certno, c.GetAdminUserInfo().CurrentOrgId) if err == gorm.ErrRecordNotFound { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeNoPateintException) return } else if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError) return } else { Iinfos, _ := json.Marshal(res.Output.Iinfo) Idetinfos, _ := json.Marshal(res.Output.Idetinfo) infoStr := string(Iinfos) idetinfoStr := string(Idetinfos) b, age, _ := getBirthdateAndAge(res.Output.Baseinfo.Certno) psn := &models.HisPsn{ PsnNo: res.Output.Baseinfo.PsnNo, PatientId: patient.ID, Certno: res.Output.Baseinfo.Certno, Brdy: b, Age: float64(age), //Brdy: res.Output.Baseinfo.Brdy, Gend: res.Output.Baseinfo.Gend, Naty: res.Output.Baseinfo.Naty, PsnCertType: res.Output.Baseinfo.PsnCertType, PsnName: res.Output.Baseinfo.PsnName, Idetinfo: idetinfoStr, Insuinfo: infoStr, UserOrgId: c.GetAdminUserInfo().CurrentOrgId, CardInfo: card_info, VerifyNumber: token, } var rf []*ResultFive json.Unmarshal([]byte(infoStr), &rf) var insutypes []*ResultFive var insutype string var is390 int = 0 var is310 int = 0 for _, item := range rf { if (item.Insutype == "390" && item.PsnInsuStas == "1") || (item.Insutype == "310" && item.PsnInsuStas == "1") { insutypes = append(insutypes, item) } } if len(insutypes) == 1 { insutype = insutypes[0].Insutype //insuplc_admdvs = insutypes[0].InsuplcAdmdvs } else { for _, i := range insutypes { if i.Insutype == "390" { is390 = 1 } if i.Insutype == "310" { is310 = 1 } } } if is390 == 1 { insutype = "390" } if is310 == 1 { insutype = "310" } if len(insutypes) == 0 { insutype = "310" } service.CreateHisPsn(psn) c.ServeSuccessJSON(map[string]interface{}{ "patient": patient, "number": token, "insutype": insutype, }) } } else { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res.ErrMsg, }) } } else { //读卡失败 c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisFailedException) return } } else if miConfig.MdtrtareaAdmvs == "341203" { var api string api = miConfig.SecretKey + "ahyb/readcard?" + "fixmedins_code=" + miConfig.Code + "&secret_key=" + miConfig.SecretKey + "&ak=" + miConfig.AccessKey + "&org_name=" + miConfig.OrgName + "&doctor=" + roles.UserName + "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&url=" + miConfig.Url + "&cainfo=" + miConfig.Cainfo + "&id_card_type=" + strconv.FormatInt(id_card_type, 10) + "&operator_id=" + strconv.FormatInt(admin_user_id, 10) + "&operator=" + roles.UserName resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var status string status = respJSON["data"].(map[string]interface{})["status"].(string) //card_type := respJSON["data"].(map[string]interface{})["type"].(string) var token string var res ResultTwo //1101结果 if status == "1" { //读卡成功 var card_info string //卡信息 var busi_card_info string token = respJSON["data"].(map[string]interface{})["token"].(string) busi_card_info = respJSON["data"].(map[string]interface{})["busi_card_info"].(string) card_info = respJSON["data"].(map[string]interface{})["card_info"].(string) fmt.Println(card_info) fmt.Println(busi_card_info) respJSON = respJSON["data"].(map[string]interface{})["result"].(map[string]interface{}) result, _ := json.Marshal(respJSON) if err := json.Unmarshal([]byte(result), &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if res.Infcode == 0 { patient, err := service.GetPatientByIDCard(res.Output.Baseinfo.Certno, c.GetAdminUserInfo().CurrentOrgId) if err == gorm.ErrRecordNotFound { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeNoPateintException) return } else if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError) return } else { Iinfos, _ := json.Marshal(res.Output.Iinfo) Idetinfos, _ := json.Marshal(res.Output.Idetinfo) infoStr := string(Iinfos) idetinfoStr := string(Idetinfos) psn := &models.HisPsn{ PsnNo: res.Output.Baseinfo.PsnNo, PatientId: patient.ID, Certno: res.Output.Baseinfo.Certno, Gend: res.Output.Baseinfo.Gend, Naty: res.Output.Baseinfo.Naty, PsnCertType: res.Output.Baseinfo.PsnCertType, PsnName: res.Output.Baseinfo.PsnName, Idetinfo: idetinfoStr, Insuinfo: infoStr, UserOrgId: c.GetAdminUserInfo().CurrentOrgId, CardInfo: card_info, VerifyNumber: token, } var rf []*ResultFive json.Unmarshal([]byte(infoStr), &rf) var insutypes []*ResultFive var insutype string var is390 int = 0 var is310 int = 0 for _, item := range rf { if (item.Insutype == "390" && item.PsnInsuStas == "1") || (item.Insutype == "310" && item.PsnInsuStas == "1") { insutypes = append(insutypes, item) } } if len(insutypes) == 1 { insutype = insutypes[0].Insutype //insuplc_admdvs = insutypes[0].InsuplcAdmdvs } else { for _, i := range insutypes { if i.Insutype == "390" { is390 = 1 } if i.Insutype == "310" { is310 = 1 } } } if is390 == 1 { insutype = "390" } if is310 == 1 { insutype = "310" } if len(insutypes) == 0 { insutype = "310" } service.CreateHisPsn(psn) c.ServeSuccessJSON(map[string]interface{}{ "patient": patient, "number": token, "insutype": insutype, }) } } else { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisFailedException) return } } else { //读卡失败 c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisFailedException) return } } else if miConfig.MdtrtareaAdmvs == "340699" { var api string api = miConfig.SecretKey + "ahyb/readcard?" + "fixmedins_code=" + miConfig.Code + "&secret_key=" + miConfig.SecretKey + "&ak=" + miConfig.AccessKey + "&org_name=" + miConfig.OrgName + "&doctor=" + roles.UserName + "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&url=" + miConfig.Url + "&cainfo=" + miConfig.Cainfo + "&id_card_type=" + strconv.FormatInt(id_card_type, 10) + "&operator_id=" + strconv.FormatInt(admin_user_id, 10) + "&operator=" + roles.UserName resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var status string status = respJSON["data"].(map[string]interface{})["status"].(string) //card_type := respJSON["data"].(map[string]interface{})["type"].(string) var token string var res ResultTwo //1101结果 if status == "1" { //读卡成功 var card_info string //卡信息 var busi_card_info string token = respJSON["data"].(map[string]interface{})["token"].(string) busi_card_info = respJSON["data"].(map[string]interface{})["busi_card_info"].(string) card_info = respJSON["data"].(map[string]interface{})["card_info"].(string) fmt.Println(card_info) fmt.Println(busi_card_info) respJSON = respJSON["data"].(map[string]interface{})["result"].(map[string]interface{}) result, _ := json.Marshal(respJSON) if err := json.Unmarshal([]byte(result), &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if res.Infcode == 0 { patient, err := service.GetPatientByIDCard(res.Output.Baseinfo.Certno, c.GetAdminUserInfo().CurrentOrgId) if err == gorm.ErrRecordNotFound { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeNoPateintException) return } else if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError) return } else { Iinfos, _ := json.Marshal(res.Output.Iinfo) Idetinfos, _ := json.Marshal(res.Output.Idetinfo) infoStr := string(Iinfos) idetinfoStr := string(Idetinfos) psn := &models.HisPsn{ PsnNo: res.Output.Baseinfo.PsnNo, PatientId: patient.ID, Certno: res.Output.Baseinfo.Certno, Gend: res.Output.Baseinfo.Gend, Naty: res.Output.Baseinfo.Naty, PsnCertType: res.Output.Baseinfo.PsnCertType, PsnName: res.Output.Baseinfo.PsnName, Idetinfo: idetinfoStr, Insuinfo: infoStr, UserOrgId: c.GetAdminUserInfo().CurrentOrgId, CardInfo: card_info, VerifyNumber: token, } var rf []*ResultFive json.Unmarshal([]byte(infoStr), &rf) var insutypes []*ResultFive var insutype string var is390 int = 0 var is310 int = 0 for _, item := range rf { if (item.Insutype == "390" && item.PsnInsuStas == "1") || (item.Insutype == "310" && item.PsnInsuStas == "1") { insutypes = append(insutypes, item) } } if len(insutypes) == 1 { insutype = insutypes[0].Insutype //insuplc_admdvs = insutypes[0].InsuplcAdmdvs } else { for _, i := range insutypes { if i.Insutype == "390" { is390 = 1 } if i.Insutype == "310" { is310 = 1 } } } if is390 == 1 { insutype = "390" } if is310 == 1 { insutype = "310" } if len(insutypes) == 0 { insutype = "310" } service.CreateHisPsn(psn) c.ServeSuccessJSON(map[string]interface{}{ "patient": patient, "number": token, "insutype": insutype, }) } } else { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisFailedException) return } } else { //读卡失败 c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisFailedException) return } } else if miConfig.MdtrtareaAdmvs == "430800" { //idNo := c.GetString("idNo") //userName := c.GetString("userName") //ecToken := c.GetString("ecToken") //insuOrg := c.GetString("insuOrg") _, json_result := GethnELeInfo(miConfig.Code, "1", roles.UserName) utils.ErrorLog("解析失败:%v", json_result) //json_result := GetJxEleBaseInfo(c.GetAdminUserInfo().CurrentOrgId) type ELeData struct { Data struct { IdNo string `json:"idNo"` IdType string `json:"idType"` UserName string `json:"userName"` EcToken string `json:"ecToken"` InsuOrg string `json:"insuOrg"` Gender string `json:"gender"` Birthday string `json:"birthday"` Nationality string `json:"nationality"` Email string `json:"email"` Extra string `json:"extra"` } `json:"data"` Code int `json:"code"` Message string `json:"message"` } var ele ELeData err := json.Unmarshal([]byte(json_result), &ele) if err != nil { utils.ErrorLog("解析失败:%v", err) } token := ele.Data.EcToken token = Remove0000(token) result2, requestLog2 := service.Hnyb1101ForEleCert(miConfig.OrgName, roles.UserName, miConfig.Code, ele.Data.InsuOrg, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, miConfig.Url, miConfig.AccessKey, token, "", ele.Data.IdNo, ele.Data.UserName) saveLog(result2, requestLog2, "1101", "获取人员信息") var res ResultTwo if err := json.Unmarshal([]byte(result2), &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if res.Infcode == 0 { patient, err := service.GetPatientByNumber(res.Output.Baseinfo.Certno, c.GetAdminUserInfo().CurrentOrgId) if err == gorm.ErrRecordNotFound { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeNoPateintException) return } else if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError) return } else { Iinfos, _ := json.Marshal(res.Output.Iinfo) Idetinfos, _ := json.Marshal(res.Output.Idetinfo) infoStr := string(Iinfos) idetinfoStr := string(Idetinfos) psn := &models.HisPsn{ PsnNo: res.Output.Baseinfo.PsnNo, PatientId: patient.ID, Certno: res.Output.Baseinfo.Certno, Gend: res.Output.Baseinfo.Gend, Naty: res.Output.Baseinfo.Naty, PsnCertType: res.Output.Baseinfo.PsnCertType, PsnName: res.Output.Baseinfo.PsnName, Idetinfo: idetinfoStr, Insuinfo: infoStr, UserOrgId: c.GetAdminUserInfo().CurrentOrgId, CardInfo: "", Stage: "1", VerifyNumber: token, InsuplcAdmdvs: ele.Data.InsuOrg, } service.CreateHisPsn(psn) var rf []*ResultFive json.Unmarshal([]byte(infoStr), &rf) var insutypes []*ResultFive var insutype string var is390 int = 0 var is310 int = 0 for _, item := range rf { if (item.Insutype == "390" && item.PsnInsuStas == "1") || (item.Insutype == "310" && item.PsnInsuStas == "1") { insutypes = append(insutypes, item) } } if len(insutypes) == 1 { insutype = insutypes[0].Insutype //insuplc_admdvs = insutypes[0].InsuplcAdmdvs } else { for _, i := range insutypes { if i.Insutype == "390" { is390 = 1 } if i.Insutype == "310" { is310 = 1 } } } if is390 == 1 { insutype = "390" } if is310 == 1 { insutype = "310" } if len(insutypes) == 0 { insutype = "310" } c.ServeSuccessJSON(map[string]interface{}{ "patient": patient, "number": token, "insutype": insutype, }) } } else { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisFailedException) return } } else if miConfig.MdtrtareaAdmvs == "360302" { //if initFlag == 0 { //c.TestGetJiangXiBasBaseInit() //} //if initEleFlag == 0 { // GetJxEleBaseInitInfo(c.GetAdminUserInfo().CurrentOrgId) //} //_, result2 := GetjxELekeyInfo(miConfig.Code, "1", roles.UserName) _, result := GetjxELeInfoaaa(miConfig.Code, "1", roles.UserName) //json_result := GetJxEleBaseInfo(c.GetAdminUserInfo().CurrentOrgId) type ELeData struct { Data struct { IdNo string `json:"idNo"` IdType string `json:"idType"` UserName string `json:"userName"` EcToken string `json:"ecToken"` InsuOrg string `json:"insuOrg"` Gender string `json:"gender"` Birthday string `json:"birthday"` Nationality string `json:"nationality"` Email string `json:"email"` Extra string `json:"extra"` } `json:"data"` Code int `json:"code"` Message string `json:"message"` } var ele ELeData err := json.Unmarshal([]byte(result), &ele) if err != nil { utils.ErrorLog("解析失败:%v", err) } token := ele.Data.EcToken token = Remove0000(token) result2, requestLog2 := service.Jxyb1101ForEleCert(miConfig.OrgName, roles.UserName, miConfig.Code, ele.Data.InsuOrg, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, miConfig.Url, miConfig.AccessKey, token, "", ele.Data.IdNo, ele.Data.UserName) saveLog(result2, requestLog2, "1101", "获取人员信息") var res ResultTwo if err := json.Unmarshal([]byte(result2), &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if res.Infcode == 0 { patient, err := service.GetPatientByNumber(res.Output.Baseinfo.Certno, c.GetAdminUserInfo().CurrentOrgId) if err == gorm.ErrRecordNotFound { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeNoPateintException) return } else if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError) return } else { Iinfos, _ := json.Marshal(res.Output.Iinfo) Idetinfos, _ := json.Marshal(res.Output.Idetinfo) infoStr := string(Iinfos) idetinfoStr := string(Idetinfos) psn := &models.HisPsn{ PsnNo: res.Output.Baseinfo.PsnNo, PatientId: patient.ID, Certno: res.Output.Baseinfo.Certno, Gend: res.Output.Baseinfo.Gend, Naty: res.Output.Baseinfo.Naty, PsnCertType: res.Output.Baseinfo.PsnCertType, PsnName: res.Output.Baseinfo.PsnName, Idetinfo: idetinfoStr, Insuinfo: infoStr, UserOrgId: c.GetAdminUserInfo().CurrentOrgId, CardInfo: "", VerifyNumber: token, InsuplcAdmdvs: ele.Data.InsuOrg, } service.CreateHisPsn(psn) var rf []*ResultFive json.Unmarshal([]byte(infoStr), &rf) var insutypes []*ResultFive var insutype string var is390 int = 0 var is310 int = 0 for _, item := range rf { if (item.Insutype == "390" && item.PsnInsuStas == "1") || (item.Insutype == "310" && item.PsnInsuStas == "1") { insutypes = append(insutypes, item) } } if len(insutypes) == 1 { insutype = insutypes[0].Insutype //insuplc_admdvs = insutypes[0].InsuplcAdmdvs } else { for _, i := range insutypes { if i.Insutype == "390" { is390 = 1 } if i.Insutype == "310" { is310 = 1 } } } if is390 == 1 { insutype = "390" } if is310 == 1 { insutype = "310" } if len(insutypes) == 0 { insutype = "310" } c.ServeSuccessJSON(map[string]interface{}{ "patient": patient, "number": token, "insutype": insutype, }) } } else { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisFailedException) return } } else if miConfig.MdtrtareaAdmvs == "361025" { //if initFlag == 0 { //c.TestGetJiangXiBasBaseInit() //} //if initEleFlag == 0 { // GetJxEleBaseInitInfo(c.GetAdminUserInfo().CurrentOrgId) //} //_, result2 := GetjxELekeyInfo(miConfig.Code, "1", roles.UserName) _, result := GetjxELeInfoaaa(miConfig.Code, "1", roles.UserName) //json_result := GetJxEleBaseInfo(c.GetAdminUserInfo().CurrentOrgId) type ELeData struct { Data struct { IdNo string `json:"idNo"` IdType string `json:"idType"` UserName string `json:"userName"` EcToken string `json:"ecToken"` InsuOrg string `json:"insuOrg"` Gender string `json:"gender"` Birthday string `json:"birthday"` Nationality string `json:"nationality"` Email string `json:"email"` Extra string `json:"extra"` } `json:"data"` Code int `json:"code"` Message string `json:"message"` } var ele ELeData err := json.Unmarshal([]byte(result), &ele) if err != nil { utils.ErrorLog("解析失败:%v", err) } token := ele.Data.EcToken token = Remove0000(token) result2, requestLog2 := service.Jxyb1101ForEleCert(miConfig.OrgName, roles.UserName, miConfig.Code, ele.Data.InsuOrg, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, miConfig.Url, miConfig.AccessKey, token, "", ele.Data.IdNo, ele.Data.UserName) saveLog(result2, requestLog2, "1101", "获取人员信息") var res ResultTwo if err := json.Unmarshal([]byte(result2), &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if res.Infcode == 0 { patient, err := service.GetPatientByNumber(res.Output.Baseinfo.Certno, c.GetAdminUserInfo().CurrentOrgId) if err == gorm.ErrRecordNotFound { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeNoPateintException) return } else if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError) return } else { Iinfos, _ := json.Marshal(res.Output.Iinfo) Idetinfos, _ := json.Marshal(res.Output.Idetinfo) infoStr := string(Iinfos) idetinfoStr := string(Idetinfos) psn := &models.HisPsn{ PsnNo: res.Output.Baseinfo.PsnNo, PatientId: patient.ID, Certno: res.Output.Baseinfo.Certno, Gend: res.Output.Baseinfo.Gend, Naty: res.Output.Baseinfo.Naty, PsnCertType: res.Output.Baseinfo.PsnCertType, PsnName: res.Output.Baseinfo.PsnName, Idetinfo: idetinfoStr, Insuinfo: infoStr, UserOrgId: c.GetAdminUserInfo().CurrentOrgId, CardInfo: "", VerifyNumber: token, InsuplcAdmdvs: ele.Data.InsuOrg, } service.CreateHisPsn(psn) var rf []*ResultFive json.Unmarshal([]byte(infoStr), &rf) var insutypes []*ResultFive var insutype string var is390 int = 0 var is310 int = 0 for _, item := range rf { if (item.Insutype == "390" && item.PsnInsuStas == "1") || (item.Insutype == "310" && item.PsnInsuStas == "1") { insutypes = append(insutypes, item) } } if len(insutypes) == 1 { insutype = insutypes[0].Insutype //insuplc_admdvs = insutypes[0].InsuplcAdmdvs } else { for _, i := range insutypes { if i.Insutype == "390" { is390 = 1 } if i.Insutype == "310" { is310 = 1 } } } if is390 == 1 { insutype = "390" } if is310 == 1 { insutype = "310" } if len(insutypes) == 0 { insutype = "310" } c.ServeSuccessJSON(map[string]interface{}{ "patient": patient, "number": token, "insutype": insutype, }) } } else { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisFailedException) return } } else if miConfig.MdtrtareaAdmvs == "360100" { //if initFlag == 0 { //c.TestGetJiangXiBasBaseInit() //} //if initEleFlag == 0 { // GetJxEleBaseInitInfo(c.GetAdminUserInfo().CurrentOrgId) //} //_, result2 := GetjxELekeyInfo(miConfig.Code, "1", roles.UserName) _, result := GetjxELeInfoaaa(miConfig.Code, "1", roles.UserName) //json_result := GetJxEleBaseInfo(c.GetAdminUserInfo().CurrentOrgId) type ELeData struct { Data struct { IdNo string `json:"idNo"` IdType string `json:"idType"` UserName string `json:"userName"` EcToken string `json:"ecToken"` InsuOrg string `json:"insuOrg"` Gender string `json:"gender"` Birthday string `json:"birthday"` Nationality string `json:"nationality"` Email string `json:"email"` Extra string `json:"extra"` } `json:"data"` Code int `json:"code"` Message string `json:"message"` } var ele ELeData err := json.Unmarshal([]byte(result), &ele) if err != nil { utils.ErrorLog("解析失败:%v", err) } token := ele.Data.EcToken token = Remove0000(token) result2, requestLog2 := service.Jxyb1101ForEleCert(miConfig.OrgName, roles.UserName, miConfig.Code, ele.Data.InsuOrg, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, miConfig.Url, miConfig.AccessKey, token, "", ele.Data.IdNo, ele.Data.UserName) saveLog(result2, requestLog2, "1101", "获取人员信息") var res ResultTwo if err := json.Unmarshal([]byte(result2), &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if res.Infcode == 0 { patient, err := service.GetPatientByNumber(res.Output.Baseinfo.Certno, c.GetAdminUserInfo().CurrentOrgId) if err == gorm.ErrRecordNotFound { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeNoPateintException) return } else if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError) return } else { Iinfos, _ := json.Marshal(res.Output.Iinfo) Idetinfos, _ := json.Marshal(res.Output.Idetinfo) infoStr := string(Iinfos) idetinfoStr := string(Idetinfos) psn := &models.HisPsn{ PsnNo: res.Output.Baseinfo.PsnNo, PatientId: patient.ID, Certno: res.Output.Baseinfo.Certno, Gend: res.Output.Baseinfo.Gend, Naty: res.Output.Baseinfo.Naty, PsnCertType: res.Output.Baseinfo.PsnCertType, PsnName: res.Output.Baseinfo.PsnName, Idetinfo: idetinfoStr, Insuinfo: infoStr, UserOrgId: c.GetAdminUserInfo().CurrentOrgId, CardInfo: "", VerifyNumber: token, InsuplcAdmdvs: ele.Data.InsuOrg, } service.CreateHisPsn(psn) var rf []*ResultFive json.Unmarshal([]byte(infoStr), &rf) var insutypes []*ResultFive var insutype string var is390 int = 0 var is310 int = 0 for _, item := range rf { if (item.Insutype == "390" && item.PsnInsuStas == "1") || (item.Insutype == "310" && item.PsnInsuStas == "1") { insutypes = append(insutypes, item) } } if len(insutypes) == 1 { insutype = insutypes[0].Insutype //insuplc_admdvs = insutypes[0].InsuplcAdmdvs } else { for _, i := range insutypes { if i.Insutype == "390" { is390 = 1 } if i.Insutype == "310" { is310 = 1 } } } if is390 == 1 { insutype = "390" } if is310 == 1 { insutype = "310" } if len(insutypes) == 0 { insutype = "310" } c.ServeSuccessJSON(map[string]interface{}{ "patient": patient, "number": token, "insutype": insutype, }) } } else { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisFailedException) return } } else if miConfig.MdtrtareaAdmvs == "430800" { //if initFlag == 0 { c.TestGetJiangXiBasBaseInit() //} //if initEleFlag == 0 { // GetJxEleBaseInitInfo(c.GetAdminUserInfo().CurrentOrgId) //} json_result := GetJxEleBaseInfo(c.GetAdminUserInfo().CurrentOrgId) type ELeData struct { Data struct { IdNo string `json:"idNo"` IdType string `json:"idType"` UserName string `json:"userName"` EcToken string `json:"ecToken"` InsuOrg string `json:"insuOrg"` Gender string `json:"gender"` Birthday string `json:"birthday"` Nationality string `json:"nationality"` Email string `json:"email"` Extra string `json:"extra"` } `json:"data"` Code int `json:"code"` Message string `json:"message"` } var ele ELeData err := json.Unmarshal([]byte(json_result), &ele) if err != nil { utils.ErrorLog("解析失败:%v", err) } token := ele.Data.EcToken token = Remove0000(token) result2, requestLog2 := service.Hnyb1101ForEleCert(miConfig.OrgName, roles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, miConfig.Url, miConfig.AccessKey, token, "", ele.Data.IdNo, ele.Data.UserName) saveLog(result2, requestLog2, "1101", "获取人员信息") var res ResultTwo if err := json.Unmarshal([]byte(result2), &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if res.Infcode == 0 { patient, err := service.GetPatientByNumber(res.Output.Baseinfo.Certno, c.GetAdminUserInfo().CurrentOrgId) if err == gorm.ErrRecordNotFound { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeNoPateintException) return } else if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError) return } else { Iinfos, _ := json.Marshal(res.Output.Iinfo) Idetinfos, _ := json.Marshal(res.Output.Idetinfo) infoStr := string(Iinfos) idetinfoStr := string(Idetinfos) psn := &models.HisPsn{ PsnNo: res.Output.Baseinfo.PsnNo, PatientId: patient.ID, Certno: res.Output.Baseinfo.Certno, Gend: res.Output.Baseinfo.Gend, Naty: res.Output.Baseinfo.Naty, PsnCertType: res.Output.Baseinfo.PsnCertType, PsnName: res.Output.Baseinfo.PsnName, Idetinfo: idetinfoStr, Insuinfo: infoStr, UserOrgId: c.GetAdminUserInfo().CurrentOrgId, CardInfo: "", VerifyNumber: token, } service.CreateHisPsn(psn) var rf []*ResultFive json.Unmarshal([]byte(infoStr), &rf) var insutypes []*ResultFive var insutype string var is390 int = 0 var is310 int = 0 for _, item := range rf { if (item.Insutype == "390" && item.PsnInsuStas == "1") || (item.Insutype == "310" && item.PsnInsuStas == "1") { insutypes = append(insutypes, item) } } if len(insutypes) == 1 { insutype = insutypes[0].Insutype //insuplc_admdvs = insutypes[0].InsuplcAdmdvs } else { for _, i := range insutypes { if i.Insutype == "390" { is390 = 1 } if i.Insutype == "310" { is310 = 1 } } } if is390 == 1 { insutype = "390" } if is310 == 1 { insutype = "310" } if len(insutypes) == 0 { insutype = "310" } c.ServeSuccessJSON(map[string]interface{}{ "patient": patient, "number": token, "insutype": insutype, }) } } else { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisFailedException) return } } else if miConfig.MdtrtareaAdmvs == "350500" { type ELeData struct { Code string `json:"code"` Data struct { Aac002 string `json:"aac002"` Aaz500 string `json:"aaz500"` ActCardNo string `json:"actCardNo"` Bab520 string `json:"bab520"` Bkz543 string `json:"bkz543"` BusinessType string `json:"businessType"` CertfCodg string `json:"certfCodg"` EcIndexNo string `json:"ecIndexNo"` EcToken string `json:"ecToken"` ID0000 string `json:"id0000"` IDNo string `json:"idNo"` IDType string `json:"idType"` Idcode string `json:"idcode"` IdentityToken string `json:"identity_token"` InsuOrg string `json:"insuOrg"` OfficeID string `json:"officeId"` OfficeName string `json:"officeName"` OperatorID string `json:"operatorId"` OperatorName string `json:"operatorName"` OrgID string `json:"orgId"` UserName string `json:"userName"` } `json:"data"` Infno interface{} `json:"infno"` Message string `json:"message"` OrgID string `json:"orgId"` TransType string `json:"transType"` } inputInfo, outPutInfo, _ := service.ReadEleCard(miConfig.Code) outPutInfo = Remove0000(outPutInfo) if len(outPutInfo) > 0 { var ele ELeData err := json.Unmarshal([]byte(outPutInfo), &ele) if err != nil { utils.ErrorLog("解析失败:%v", err) } token := ele.Data.EcToken fmt.Println(inputInfo) fmt.Println(outPutInfo) result, requestLog, errMsgLog := service.FJyb1101ForEleToken(ele.Data.IDNo, miConfig.OrgName, roles.UserName, miConfig.Code, ele.Data.InsuOrg, miConfig.MdtrtareaAdmvs, id_card_type, "", 1, miConfig.Url, miConfig.Cainfo, miConfig.AppSecret, miConfig.SignKey, miConfig.EncKey, token, ele.Data.UserName) saveLog(result, requestLog, "1101", "获取人员信息") var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } userJSONBytes, _ := json.Marshal(dat) var res ResultTwo if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res.ErrMsg = errMsgLog if res.Infcode == 0 { patient, err := service.GetPatientByNumber(ele.Data.IDNo, c.GetAdminUserInfo().CurrentOrgId) if err == gorm.ErrRecordNotFound { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeNoPateintException) return } else if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError) return } else { fmt.Println(res) Iinfos, _ := json.Marshal(res.Output.Iinfo) Idetinfos, _ := json.Marshal(res.Output.Idetinfo) infoStr := string(Iinfos) idetinfoStr := string(Idetinfos) psn := &models.HisPsn{ PsnNo: res.Output.Baseinfo.PsnNo, PatientId: patient.ID, Certno: res.Output.Baseinfo.Certno, Gend: res.Output.Baseinfo.Gend, Naty: res.Output.Baseinfo.Naty, PsnCertType: res.Output.Baseinfo.PsnCertType, PsnName: res.Output.Baseinfo.PsnName, Idetinfo: idetinfoStr, Insuinfo: infoStr, UserOrgId: c.GetAdminUserInfo().CurrentOrgId, CardInfo: outPutInfo, VerifyNumber: token, InsuplcAdmdvs: ele.Data.InsuOrg, } service.CreateHisPsn(psn) var rf []*ResultFive json.Unmarshal([]byte(infoStr), &rf) var insutypes []*ResultFive var insutype string var is390 int = 0 var is310 int = 0 for _, item := range rf { if (item.Insutype == "390" && item.PsnInsuStas == "1") || (item.Insutype == "310" && item.PsnInsuStas == "1") || (item.Insutype == "310" && item.PsnInsuStas == "") || (item.Insutype == "390" && item.PsnInsuStas == "") { insutypes = append(insutypes, item) } } if len(insutypes) == 1 { insutype = insutypes[0].Insutype //insuplc_admdvs = insutypes[0].InsuplcAdmdvs } else { for _, i := range insutypes { if i.Insutype == "390" { is390 = 1 } if i.Insutype == "310" { is310 = 1 } } } if is390 == 1 { insutype = "390" } if is310 == 1 { insutype = "310" } if len(insutypes) == 0 { insutype = "310" } c.ServeSuccessJSON(map[string]interface{}{ "patient": patient, "number": token, "insutype": insutype, }) } } else { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisFailedException) return } } } else if miConfig.MdtrtareaAdmvs == "150499" { var api string api = "http://172.16.13.254:9532/" + "nmyb/readcard?" + "fixmedins_code=" + miConfig.Code + "&secret_key=" + miConfig.SecretKey + "&ak=" + miConfig.AccessKey + "&org_name=" + miConfig.OrgName + "&doctor=" + roles.UserName + "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&url=" + miConfig.Url + "&cainfo=" + miConfig.Cainfo + "&id_card_type=" + strconv.FormatInt(id_card_type, 10) + "&operator_id=" + strconv.FormatInt(admin_user_id, 10) + "&operator=" + roles.UserName resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var status string status = respJSON["data"].(map[string]interface{})["status"].(string) //card_type := respJSON["data"].(map[string]interface{})["type"].(string) var token string var res ResultTwo //1101结果 var res10265 ResultTwo10265 //1101结果 if status == "0" { //读卡成功 var card_info string //卡信息 var busi_card_info string token = respJSON["data"].(map[string]interface{})["token"].(string) busi_card_info = respJSON["data"].(map[string]interface{})["busi_card_info"].(string) card_info = respJSON["data"].(map[string]interface{})["card_info"].(string) fmt.Println(card_info) fmt.Println(busi_card_info) respJSON = respJSON["data"].(map[string]interface{})["result"].(map[string]interface{}) result, _ := json.Marshal(respJSON) if err := json.Unmarshal([]byte(result), &res10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res.ErrMsg = res10265.ErrMsg infocode, _ := strconv.ParseInt(res10265.Infcode, 10, 64) res.Infcode = infocode res.Output = res10265.Output res.InfRefmsgid = res10265.InfRefmsgid if res.Infcode == 0 { patient, err := service.GetPatientByIDCard(res.Output.Baseinfo.Certno, c.GetAdminUserInfo().CurrentOrgId) if err == gorm.ErrRecordNotFound { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeNoPateintException) return } else if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError) return } else { Iinfos, _ := json.Marshal(res.Output.Iinfo) Idetinfos, _ := json.Marshal(res.Output.Idetinfo) infoStr := string(Iinfos) idetinfoStr := string(Idetinfos) psn := &models.HisPsn{ PsnNo: res.Output.Baseinfo.PsnNo, PatientId: patient.ID, Certno: res.Output.Baseinfo.Certno, Gend: res.Output.Baseinfo.Gend, Naty: res.Output.Baseinfo.Naty, PsnCertType: res.Output.Baseinfo.PsnCertType, PsnName: res.Output.Baseinfo.PsnName, Idetinfo: idetinfoStr, Insuinfo: infoStr, UserOrgId: c.GetAdminUserInfo().CurrentOrgId, CardInfo: card_info, VerifyNumber: token, } var rf []*ResultFive json.Unmarshal([]byte(infoStr), &rf) var insutypes []*ResultFive var insutype string var is390 int = 0 var is310 int = 0 for _, item := range rf { if (item.Insutype == "390" && item.PsnInsuStas == "1") || (item.Insutype == "310" && item.PsnInsuStas == "1") { insutypes = append(insutypes, item) } } if len(insutypes) == 1 { insutype = insutypes[0].Insutype //insuplc_admdvs = insutypes[0].InsuplcAdmdvs } else { for _, i := range insutypes { if i.Insutype == "390" { is390 = 1 } if i.Insutype == "310" { is310 = 1 } } } if is390 == 1 { insutype = "390" } if is310 == 1 { insutype = "310" } if len(insutypes) == 0 { insutype = "310" } service.CreateHisPsn(psn) c.ServeSuccessJSON(map[string]interface{}{ "patient": patient, "number": token, "insutype": insutype, }) } } else { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisFailedException) return } } else { //读卡失败 c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisFailedException) return } } else if miConfig.MdtrtareaAdmvs == "450721" { res := c.GetoleInfo() if res.Infcode == 0 { var result string if res.Output.MdtrtCertType == "01" { result = service.Gdyb1101d(res.Output.CertNo, miConfig.OrgName, roles.UserName, miConfig.Code, res.Output.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, 4, res.Output.CardSN, 1, res.Output.PsnName, res.Output.EcToken, admin_user_id) } else if res.Output.MdtrtCertType == "02" { result = service.Gdyb1101B(res.Output.CertNo, miConfig.OrgName, roles.UserName, miConfig.Code, res.Output.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, 2, res.Output.CardSN, 1, res.Output.PsnName, res.Output.CardNo, admin_user_id) } else if res.Output.MdtrtCertType == "03" { result = service.Gdyb1101B(res.Output.CertNo, miConfig.OrgName, roles.UserName, miConfig.Code, res.Output.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, 1, res.Output.CardSN, 1, res.Output.PsnName, res.Output.CardNo, admin_user_id) } var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } userJSONBytes, _ := json.Marshal(dat) var res2 ResultTwo if err := json.Unmarshal(userJSONBytes, &res2); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if res2.Infcode == 0 { patient, err := service.GetPatientByNumber(res.Output.CertNo, c.GetAdminUserInfo().CurrentOrgId) if err == gorm.ErrRecordNotFound { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeNoPateintException) return } else if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError) return } else { Iinfos, _ := json.Marshal(res2.Output.Iinfo) Idetinfos, _ := json.Marshal(res2.Output.Idetinfo) infoStr := string(Iinfos) idetinfoStr := string(Idetinfos) var rf []*ResultFive json.Unmarshal([]byte(infoStr), &rf) var insutypes []*ResultFive var insutype string var is390 int = 0 var is310 int = 0 //var insuplc_admdvs string for _, item := range rf { if (item.Insutype == "390" && item.PsnInsuStas == "1") || (item.Insutype == "310" && item.PsnInsuStas == "1") { insutypes = append(insutypes, item) } } if len(insutypes) == 1 { insutype = insutypes[0].Insutype //insuplc_admdvs = insutypes[0].InsuplcAdmdvs } else { for _, i := range insutypes { if i.Insutype == "390" { is390 = 1 } if i.Insutype == "310" { is310 = 1 } } } if is390 == 1 { insutype = "390" } if is310 == 1 { insutype = "310" } if len(insutypes) == 0 { insutype = "310" } psn := &models.HisPsn{ PsnNo: res2.Output.Baseinfo.PsnNo, PatientId: patient.ID, Certno: res2.Output.Baseinfo.Certno, Gend: res2.Output.Baseinfo.Gend, Naty: res2.Output.Baseinfo.Naty, PsnCertType: res2.Output.Baseinfo.PsnCertType, PsnName: res2.Output.Baseinfo.PsnName, Idetinfo: idetinfoStr, Insuinfo: infoStr, UserOrgId: c.GetAdminUserInfo().CurrentOrgId, CardInfo: res.Output.CertNo + "|" + res.Output.CardSN, VerifyNumber: res.Output.EcToken, InsuplcAdmdvs: res.Output.InsuplcAdmdvs, } if res.Output.MdtrtCertType == "01" { psn.VerifyNumber = res.Output.EcToken //result = service.Gdyb1101d(res.Output.CertNo, miConfig.OrgName, roles.UserName, miConfig.Code, res.Output.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, 4, res.Output.CardSN, 1, res.Output.PsnName, res.Output.EcToken,admin_user_id) } else if res.Output.MdtrtCertType == "02" { psn.VerifyNumber = res.Output.CardNo //result = service.Gdyb1101B(res.Output.CertNo, miConfig.OrgName, roles.UserName, miConfig.Code, res.Output.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, 2, res.Output.CardSN, 1, res.Output.PsnName, res.Output.CardNo,admin_user_id) } else if res.Output.MdtrtCertType == "03" { psn.VerifyNumber = res.Output.MdtrtCertNo //result = service.Gdyb1101B(res.Output.CertNo, miConfig.OrgName, roles.UserName, miConfig.Code, res.Output.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, 1, res.Output.CardSN, 1, res.Output.PsnName, res.Output.CardNo,admin_user_id) } service.CreateHisPsn(psn) var balc float64 for _, item := range rf { if item.Insutype == insutype { balc = item.Balc } } c.ServeSuccessJSON(map[string]interface{}{ "patient": patient, "number": res.Output.CardNo, "insutype": insutype, "blac": balc, "desc": idetinfoStr, }) } } else { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res2.ErrMsg, }) } } else { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res.ErrMsg, }) } } else if miConfig.MdtrtareaAdmvs == "420902" { var res ResultTwo api := miConfig.Url + "hbyb/1101?cert_no=" + "" + "&org_name=" + miConfig.OrgName + "&doctor=" + roles.UserName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&id_card_type=" + strconv.FormatInt(id_card_type, 10) + "&card_sn=" + "" + "&certificates=" + strconv.FormatInt(certificates, 10) resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) result, _ := json.Marshal(respJSON) fmt.Println("log") fmt.Println(string(result)) if err := json.Unmarshal([]byte(result), &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if res.Infcode == 0 { patient, err := service.GetPatientByIDCard(res.Output.Baseinfo.Certno, c.GetAdminUserInfo().CurrentOrgId) if err == gorm.ErrRecordNotFound { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeNoPateintException) return } else if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError) return } else { Iinfos, _ := json.Marshal(res.Output.Iinfo) Idetinfos, _ := json.Marshal(res.Output.Idetinfo) infoStr := string(Iinfos) idetinfoStr := string(Idetinfos) var rf []*ResultFive json.Unmarshal([]byte(infoStr), &rf) var insutypes []*ResultFive var insutype string var is390 int = 0 var is310 int = 0 for _, item := range rf { if (item.Insutype == "390" && item.PsnInsuStas == "1") || (item.Insutype == "310" && item.PsnInsuStas == "1") || (item.Insutype == "310" && item.PsnInsuStas == "") || (item.Insutype == "390" && item.PsnInsuStas == "") { insutypes = append(insutypes, item) } } if len(insutypes) == 1 { insutype = insutypes[0].Insutype //insuplc_admdvs = insutypes[0].InsuplcAdmdvs } else { for _, i := range insutypes { if i.Insutype == "390" { is390 = 1 } if i.Insutype == "310" { is310 = 1 } } } if is390 == 1 { insutype = "390" } if is310 == 1 { insutype = "310" } if len(insutypes) == 0 { insutype = "390" } var insuplc_admdvs string for _, item := range rf { if item.Insutype == insutype { insuplc_admdvs = item.InsuplcAdmdvs } } psn := &models.HisPsn{ PsnNo: res.Output.Baseinfo.PsnNo, PatientId: patient.ID, Certno: res.Output.Baseinfo.Certno, Gend: res.Output.Baseinfo.Gend, Naty: res.Output.Baseinfo.Naty, PsnCertType: res.Output.Baseinfo.PsnCertType, PsnName: res.Output.Baseinfo.PsnName, Idetinfo: idetinfoStr, Insuinfo: infoStr, UserOrgId: c.GetAdminUserInfo().CurrentOrgId, InsuplcAdmdvs: insuplc_admdvs, } service.CreateHisPsn(psn) c.ServeSuccessJSON(map[string]interface{}{ "patient": patient, "number": res.Output.Baseinfo.Certno, }) } } else { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisFailedException) return } } else { type ELeData struct { Code string `json:"code"` Data struct { Aac002 string `json:"aac002"` Aaz500 string `json:"aaz500"` ActCardNo string `json:"actCardNo"` Bab520 string `json:"bab520"` Bkz543 string `json:"bkz543"` BusinessType string `json:"businessType"` CertfCodg string `json:"certfCodg"` EcIndexNo string `json:"ecIndexNo"` EcToken string `json:"ecToken"` ID0000 string `json:"id0000"` IDNo string `json:"idNo"` IDType string `json:"idType"` Idcode string `json:"idcode"` IdentityToken string `json:"identity_token"` InsuOrg string `json:"insuOrg"` OfficeID string `json:"officeId"` OfficeName string `json:"officeName"` OperatorID string `json:"operatorId"` OperatorName string `json:"operatorName"` OrgID string `json:"orgId"` UserName string `json:"userName"` } `json:"data"` Infno interface{} `json:"infno"` Message string `json:"message"` OrgID string `json:"orgId"` TransType string `json:"transType"` } _, result := GetELeInfo(miConfig.Code, "1", roles.UserName, miConfig.MdtrtareaAdmvs) fmt.Println(result) outPutInfo := Remove0000(result) fmt.Println(outPutInfo) if len(outPutInfo) > 0 { var ele ELeData err := json.Unmarshal([]byte(outPutInfo), &ele) if err != nil { utils.ErrorLog("解析失败:%v", err) } token := ele.Data.EcToken fmt.Println(outPutInfo) result, requestLog := service.Gdyb1101ForEleCert1111(miConfig.OrgName, roles.UserName, miConfig.Code, ele.Data.InsuOrg, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, token, ele.Data.UserName, ele.Data.IDNo, certificates) saveLog(result, requestLog, "1101", "获取人员信息") var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } userJSONBytes, _ := json.Marshal(dat) var res ResultTwo if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if res.Infcode == 0 { patient, err := service.GetPatientByNumber(ele.Data.IDNo, c.GetAdminUserInfo().CurrentOrgId) if err == gorm.ErrRecordNotFound { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeNoPateintException) return } else if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError) return } else { fmt.Println(res) Iinfos, _ := json.Marshal(res.Output.Iinfo) Idetinfos, _ := json.Marshal(res.Output.Idetinfo) infoStr := string(Iinfos) idetinfoStr := string(Idetinfos) psn := &models.HisPsn{ PsnNo: res.Output.Baseinfo.PsnNo, PatientId: patient.ID, Certno: res.Output.Baseinfo.Certno, Gend: res.Output.Baseinfo.Gend, Naty: res.Output.Baseinfo.Naty, PsnCertType: res.Output.Baseinfo.PsnCertType, PsnName: res.Output.Baseinfo.PsnName, Idetinfo: idetinfoStr, Insuinfo: infoStr, UserOrgId: c.GetAdminUserInfo().CurrentOrgId, CardInfo: outPutInfo, VerifyNumber: token, InsuplcAdmdvs: ele.Data.InsuOrg, } service.CreateHisPsn(psn) var rf []*ResultFive json.Unmarshal([]byte(infoStr), &rf) var insutypes []*ResultFive var insutype string var is390 int = 0 var is310 int = 0 for _, item := range rf { if (item.Insutype == "390" && item.PsnInsuStas == "1") || (item.Insutype == "310" && item.PsnInsuStas == "1") { insutypes = append(insutypes, item) } } if len(insutypes) == 1 { insutype = insutypes[0].Insutype //insuplc_admdvs = insutypes[0].InsuplcAdmdvs } else { for _, i := range insutypes { if i.Insutype == "390" { is390 = 1 } if i.Insutype == "310" { is310 = 1 } } } if is390 == 1 { insutype = "390" } if is310 == 1 { insutype = "310" } if len(insutypes) == 0 { insutype = "310" } c.ServeSuccessJSON(map[string]interface{}{ "patient": patient, "number": token, "insutype": insutype, }) } } else { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisFailedException) return } } //fmt.Println(result) // //if initFlag == 0 { // c.TestGetBasBaseInit() //} //token := c.GetEleBaseInfo() // //token = Remove0000(token) // //result2, requestLog2 := service.Gdyb1101ForEleCert(miConfig.OrgName, roles.UserName, miConfig.Code, insuplc_admdvs_str, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, token, "", "") //saveLog(result2, requestLog2, "1101", "获取人员信息") //// //var res ResultTwo //if err := json.Unmarshal([]byte(result2), &res); err != nil { // utils.ErrorLog("解析失败:%v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return //} // //if res.Infcode == 0 { // patient, err := service.GetPatientByNumber(res.Output.Baseinfo.Certno, c.GetAdminUserInfo().CurrentOrgId) // if err == gorm.ErrRecordNotFound { // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeNoPateintException) // return // } else if err != nil { // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError) // return // // } else { // Iinfos, _ := json.Marshal(res.Output.Iinfo) // Idetinfos, _ := json.Marshal(res.Output.Idetinfo) // infoStr := string(Iinfos) // idetinfoStr := string(Idetinfos) // // // // // var rf []*ResultFive // json.Unmarshal([]byte(infoStr), &rf) // // var insutypes []*ResultFive // var insutype string // var is390 int = 0 // var is310 int = 0 // var insuplc_admdvs string // // for _, item := range rf { // if (item.Insutype == "390" && item.PsnInsuStas == "1") || (item.Insutype == "310" && item.PsnInsuStas == "1") { // insutypes = append(insutypes, item) // } // } // // if len(insutypes) == 1 { // insutype = insutypes[0].Insutype // //insuplc_admdvs = insutypes[0].InsuplcAdmdvs // } else { // for _, i := range insutypes { // if i.Insutype == "390" { // is390 = 1 // } // // if i.Insutype == "310" { // is310 = 1 // } // } // } // if is390 == 1 { // insutype = "390" // } // // if is310 == 1 { // insutype = "310" // } // if len(insutypes) == 0 { // insutype = "310" // } // for _, item := range rf { // if item.Insutype == insutype { // insuplc_admdvs = item.InsuplcAdmdvs // } // } // psn := &models.HisPsn{ // PsnNo: res.Output.Baseinfo.PsnNo, // Age: res.Output.Baseinfo.Age, // PatientId: patient.ID, // Certno: res.Output.Baseinfo.Certno, // Brdy: res.Output.Baseinfo.Brdy, // Gend: res.Output.Baseinfo.Gend, // Naty: res.Output.Baseinfo.Naty, // PsnCertType: res.Output.Baseinfo.PsnCertType, // PsnName: res.Output.Baseinfo.PsnName, // Idetinfo: idetinfoStr, // Insuinfo: infoStr, // UserOrgId: c.GetAdminUserInfo().CurrentOrgId, // CardInfo: "", // VerifyNumber: token, // InsuplcAdmdvs: insuplc_admdvs, // } // service.CreateHisPsn(psn) // // c.ServeSuccessJSON(map[string]interface{}{ // "patient": patient, // "number": token, // }) // } //} else { // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisFailedException) // return //} } break case 5: if miConfig.MdtrtareaAdmvs == "320921" || miConfig.MdtrtareaAdmvs == "320982" { var api string if miConfig.MdtrtareaAdmvs == "320921" { api = "http://192.168.2.3:9532/" + "jsyb/readcard?" + "fixmedins_code=" + miConfig.Code + "&secret_key=" + miConfig.SecretKey + "&ak=" + miConfig.AccessKey + "&org_name=" + miConfig.OrgName + "&doctor=" + roles.UserName + "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&url=" + miConfig.Url + "&cainfo=" + miConfig.Cainfo + "&id_card_type=" + strconv.FormatInt(id_card_type, 10) + "&operator_id=" + strconv.FormatInt(admin_user_id, 10) + "&operator=" + roles.UserName fmt.Println(api) } else { api = "http://192.168.5.251:9532/" + "jsyb/readcard?" + "fixmedins_code=" + miConfig.Code + "&secret_key=" + miConfig.SecretKey + "&ak=" + miConfig.AccessKey + "&org_name=" + miConfig.OrgName + "&doctor=" + roles.UserName + "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&url=" + miConfig.Url + "&cainfo=" + miConfig.Cainfo + "&id_card_type=" + strconv.FormatInt(id_card_type, 10) } resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var status string status = respJSON["data"].(map[string]interface{})["status"].(string) //card_type := respJSON["data"].(map[string]interface{})["type"].(string) var token string var res ResultTwo //1101结果 var res10265 ResultTwo10265 //1101结果 if status == "0" { //读卡成功 var card_info string //卡信息 //var busi_card_info string var auth_info string token = respJSON["data"].(map[string]interface{})["token"].(string) //busi_card_info = respJSON["data"].(map[string]interface{})["busi_card_info"].(string) card_info = respJSON["data"].(map[string]interface{})["card_info"].(string) auth_info = respJSON["data"].(map[string]interface{})["eletwo"].(string) respJSON = respJSON["data"].(map[string]interface{})["result"].(map[string]interface{}) result, _ := json.Marshal(respJSON) if err := json.Unmarshal([]byte(result), &res10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res.ErrMsg = res10265.ErrMsg infocode, _ := strconv.ParseInt(res10265.Infcode, 10, 64) res.Infcode = infocode res.Output = res10265.Output res.InfRefmsgid = res10265.InfRefmsgid if res.Infcode == 0 { patient, err := service.GetPatientByIDCard(res.Output.Baseinfo.Certno, c.GetAdminUserInfo().CurrentOrgId) if err == gorm.ErrRecordNotFound { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeNoPateintException) return } else if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError) return } else { Iinfos, _ := json.Marshal(res.Output.Iinfo) Idetinfos, _ := json.Marshal(res.Output.Idetinfo) infoStr := string(Iinfos) idetinfoStr := string(Idetinfos) b, age, _ := getBirthdateAndAge(res.Output.Baseinfo.Certno) psn := &models.HisPsn{ PsnNo: res.Output.Baseinfo.PsnNo, PatientId: patient.ID, Certno: res.Output.Baseinfo.Certno, Gend: res.Output.Baseinfo.Gend, Brdy: b, Age: float64(age), Naty: res.Output.Baseinfo.Naty, PsnCertType: res.Output.Baseinfo.PsnCertType, PsnName: res.Output.Baseinfo.PsnName, Idetinfo: idetinfoStr, Insuinfo: infoStr, UserOrgId: c.GetAdminUserInfo().CurrentOrgId, CardInfo: card_info, VerifyNumber: token, AuthInfo: auth_info, } var rf []*ResultFive json.Unmarshal([]byte(infoStr), &rf) var insutypes []*ResultFive var insutype string var is390 int = 0 var is310 int = 0 for _, item := range rf { if (item.Insutype == "390" && item.PsnInsuStas == "1") || (item.Insutype == "310" && item.PsnInsuStas == "1") { insutypes = append(insutypes, item) } } if len(insutypes) == 1 { insutype = insutypes[0].Insutype //insuplc_admdvs = insutypes[0].InsuplcAdmdvs } else { for _, i := range insutypes { if i.Insutype == "390" { is390 = 1 } if i.Insutype == "310" { is310 = 1 } } } if is390 == 1 { insutype = "390" } if is310 == 1 { insutype = "310" } if len(insutypes) == 0 { insutype = "310" } service.CreateHisPsn(psn) c.ServeSuccessJSON(map[string]interface{}{ "patient": patient, "number": token, "insutype": insutype, }) } } else { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisFailedException) return } } else { //读卡失败 c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisFailedException) return } } break } } var initFlag int64 = 0 var initEleFlag int64 = 0 func (c *HisApiController) TestGetBasBaseInit() { DllDef := syscall.MustLoadDLL("SSCard.dll") Iinit := DllDef.MustFindProc("Init") miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId) fmt.Println("http://hosp-sz.gd.hsip.gov.cn/gdyb_api/prd/api/card/initDll") ret, _, err := Iinit.Call(StrPtr("http://hosp-sz.gd.hsip.gov.cn/gdyb_api/prd/api/card/initDll"), StrPtr(miConfig.InsuplcAdmdvs)) if ret != 0 { fmt.Println("SSCard的报错原因:", err) fmt.Println("SSCard的运算结果为:", ret) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeReadCardException) return } result := int(ret) fmt.Println("SSCard的运算结果为1:", result) initFlag = 1 return } func (c *HisApiController) HandleJiangXiReadCard() { fmt.Println("~~~~~~") miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId) admin_user_id, _ := c.GetInt64("admin_user_id") id_card_type, _ := c.GetInt64("id_card_type") //certificates, _ := c.GetInt64("certificates") roles, _ := service.GetAdminUserInfoByID(c.GetAdminUserInfo().CurrentOrgId, admin_user_id) if initFlag == 0 { c.TestGetJiangXiBasBaseInit() } basStr := c.GetBasBaseInfo() if len(basStr) == 0 { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeReadCardException) return } fmt.Println(basStr) bas := strings.Split(basStr, "|") basNumber := bas[1] fmt.Println(basNumber) card_sn := bas[3] fmt.Println(card_sn) result, _ := service.Jxyb1101(basNumber, miConfig.OrgName, roles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, id_card_type, card_sn, "1", miConfig.Url, miConfig.AccessKey, "") //result := service.Jxyb1101(basNumber, miConfig.OrgName, roles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, id_card_type, card_sn, certificates) var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } userJSONBytes, _ := json.Marshal(dat) var res ResultTwo if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if res.Infcode == 0 { patient, err := service.GetPatientByNumber(basNumber, c.GetAdminUserInfo().CurrentOrgId) if err == gorm.ErrRecordNotFound { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeNoPateintException) return } else if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError) return } else { Iinfos, _ := json.Marshal(res.Output.Iinfo) Idetinfos, _ := json.Marshal(res.Output.Idetinfo) infoStr := string(Iinfos) idetinfoStr := string(Idetinfos) psn := &models.HisPsn{ PsnNo: res.Output.Baseinfo.PsnNo, PatientId: patient.ID, Certno: res.Output.Baseinfo.Certno, Gend: res.Output.Baseinfo.Gend, Naty: res.Output.Baseinfo.Naty, PsnCertType: res.Output.Baseinfo.PsnCertType, PsnName: res.Output.Baseinfo.PsnName, Idetinfo: idetinfoStr, Insuinfo: infoStr, UserOrgId: c.GetAdminUserInfo().CurrentOrgId, CardInfo: basStr, VerifyNumber: "", } service.CreateHisPsn(psn) c.ServeSuccessJSON(map[string]interface{}{ "patient": patient, "number": basNumber, }) } } else { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisFailedException) return } } func (c *HisApiController) TestGetHnBasBaseInit() { DllDef := syscall.MustLoadDLL("SSCard.dll") Iinit := DllDef.MustFindProc("Init") //miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId) //http://10.77.211.236/CSB/hsa-fsi-1303 //ret, _, err := Iinit.Call(StrPtr("https://10.93.32.89:20001/hsa-hgs-adapt/api/card/initDll"), StrPtr("430100|10.93.32.89:20001")) //ret, _, err := Iinit.Call(StrPtr("https://scr.hun.hsip.gov.cn/hsa-hgs-adapt/api/card/initDll"), StrPtr("430100|scr.hun.hsip.gov.cn")) // 调用 Init 函数 ret, _, err := Iinit.Call(uintptr(unsafe.Pointer(StrPtr("https://scr.hun.hsip.gov.cn/hsa-hgs-adapt/api/card/initDll"))), uintptr(unsafe.Pointer(StrPtr("430800|scr.hun.hsip.gov.cn")))) //if ret != 0 { fmt.Println("SSCard的报错原因:", err) fmt.Println("SSCard的运算结果为:", ret) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeReadCardException) // return //} result := int(ret) fmt.Println("SSCard的运算结果为1:", result) initFlag = 1 return } func (c *HisApiController) TestGetJiangXiBasBaseInit() { DllDef := syscall.MustLoadDLL("SSCard.dll") Iinit := DllDef.MustFindProc("Init") //miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId) //http://10.77.211.236/CSB/hsa-fsi-1303 ret, _, err := Iinit.Call(StrPtr("http://10.77.211.236/1.0.0/agent-card-init"), StrPtr("360302")) if ret != 0 { fmt.Println("SSCard的报错原因:", err) fmt.Println("SSCard的运算结果为:", ret) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeReadCardException) return } result := int(ret) fmt.Println("SSCard的运算结果为1:", result) initFlag = 1 return } func (c *HisApiController) TestGetJiangXiBasBaseInittwo() { DllDef := syscall.MustLoadDLL("SSCard.dll") Iinit := DllDef.MustFindProc("Init") //miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId) //http://10.77.211.236/CSB/hsa-fsi-1303 ret, _, err := Iinit.Call(StrPtr("http://10.77.211.236/1.0.0/agent-card-init"), StrPtr("360100")) if ret != 0 { fmt.Println("SSCard的报错原因:", err) fmt.Println("SSCard的运算结果为:", ret) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeReadCardException) return } result := int(ret) fmt.Println("SSCard的运算结果为1:", result) initFlag = 1 return } func (c *HisApiController) GetSFZBaseInfo() string { DllDef := syscall.MustLoadDLL("SSCard.dll") readCard := DllDef.MustFindProc("ReadSFZ") if readCard == nil { fmt.Println("readcard is nil") readCard = DllDef.MustFindProc("ReadSFZ") } str := make([]byte, 8096) str1 := make([]byte, 8096) r, _, _ := readCard.Call((uintptr)(unsafe.Pointer(&str[0])), IntPtr(8096), (uintptr)(unsafe.Pointer(&str1[0])), IntPtr(8096)) fmt.Println(r) return Remove0000(string(str)) } func (c *HisApiController) GetEleBaseInfo() string { DllDef := syscall.MustLoadDLL("SSCard.dll") readCard := DllDef.MustFindProc("GetQRBase") fmt.Println(readCard) if readCard == nil { fmt.Println("readcard is nil") readCard = DllDef.MustFindProc("GetQRBase") } str := make([]byte, 1024) str1 := make([]byte, 1024) ret2, _, _ := readCard.Call(uintptr(180), (uintptr)(unsafe.Pointer(&str[0])), uintptr(1024), (uintptr)(unsafe.Pointer(&str1[0])), uintptr(1024)) fmt.Println(ret2) fmt.Println(string(str1)) fmt.Println(string(str)) fmt.Println(":", ConvertToString(string(str1), "gbk", "utf-8")) fmt.Println(":", ConvertToString(string(str), "gbk", "utf-8")) if ret2 != 0 { return "" } return string(str) } func GetHnEleBaseInfo(code string, operator_id int64, operator_name string) (string, string) { DllDef := syscall.MustLoadDLL("NationECCode.dll") readCard := DllDef.MustFindProc("NationEcTrans") fmt.Println(readCard) fmt.Println("!!!!!") pBusiCardInfo := make([]byte, 2048) input := make(map[string]interface{}) inputData := make(map[string]interface{}) inputData["orgId"] = code inputData["businessType"] = "01101" inputData["operatorId"] = "1" inputData["operatorName"] = "admin" inputData["officeId"] = "001" inputData["officeName"] = "血透室" inputData["deviceType"] = "" input["data"] = inputData input["orgId"] = code input["transType"] = "ec.query" bytesData, _ := json.Marshal(input) ret2, _, _ := readCard.Call(StrPtr("https://10.93.32.89:20001/localcfc/api/hsecfc/localQrCodeQuery"), StrPtr(string(bytesData)), (uintptr)(unsafe.Pointer(&pBusiCardInfo[0]))) fmt.Println(ret2) fmt.Println(DeleteExtraSpace(string(pBusiCardInfo))) fmt.Println(":", ConvertToString(DeleteExtraSpace(string(pBusiCardInfo)), "gbk", "utf-8")) return DeleteExtraSpace(""), DeleteExtraSpace(string(pBusiCardInfo)) } func GetgdEleBaseInfo(code string, operator_id int64, operator_name string) (string, string) { DllDef := syscall.MustLoadDLL("NationECCode.dll") readCard := DllDef.MustFindProc("NationEcTrans") fmt.Println(readCard) fmt.Println("!!!!!") pBusiCardInfo := make([]byte, 2048) input := make(map[string]interface{}) inputData := make(map[string]interface{}) inputData["orgId"] = code inputData["businessType"] = "01101" inputData["operatorId"] = "9" inputData["operatorName"] = "admin" inputData["officeId"] = "001" inputData["officeName"] = "血透室" inputData["deviceType"] = "" input["data"] = inputData input["orgId"] = code input["transType"] = "ec.query" bytesData, _ := json.Marshal(input) ret2, _, _ := readCard.Call(StrPtr("http://igb.hsa.gdgov.cn/prd_nation_eccode/prd_eccode/localcfc/api/hsecfc/localQrCodeQuery"), StrPtr(string(bytesData)), (uintptr)(unsafe.Pointer(&pBusiCardInfo[0]))) fmt.Println(ret2) fmt.Println(DeleteExtraSpace(string(pBusiCardInfo))) fmt.Println(":", ConvertToString(DeleteExtraSpace(string(pBusiCardInfo)), "gbk", "utf-8")) return DeleteExtraSpace(""), ConvertToString(DeleteExtraSpace(string(pBusiCardInfo)), "gbk", "utf-8") } func GetgdEleBaseInfoTwo(code string, operator_id int64, operator_name string) (string, string) { DllDef := syscall.MustLoadDLL("NationECCode.dll") readCard := DllDef.MustFindProc("NationEcTrans") fmt.Println(readCard) fmt.Println("!!!!!") pBusiCardInfo := make([]byte, 2048) input := make(map[string]interface{}) inputData := make(map[string]interface{}) inputData["orgId"] = code inputData["businessType"] = "01301" inputData["operatorId"] = "9" inputData["operatorName"] = "admin" inputData["officeId"] = "001" inputData["officeName"] = "血透室" inputData["deviceType"] = "" input["data"] = inputData input["orgId"] = code input["transType"] = "ec.query" bytesData, _ := json.Marshal(input) ret2, _, _ := readCard.Call(StrPtr("http://igb.hsa.gdgov.cn/prd_nation_eccode/prd_eccode/localcfc/api/hsecfc/localQrCodeQuery"), StrPtr(string(bytesData)), (uintptr)(unsafe.Pointer(&pBusiCardInfo[0]))) fmt.Println(ret2) fmt.Println(DeleteExtraSpace(string(pBusiCardInfo))) fmt.Println(":", ConvertToString(DeleteExtraSpace(string(pBusiCardInfo)), "gbk", "utf-8")) return DeleteExtraSpace(""), ConvertToString(DeleteExtraSpace(string(pBusiCardInfo)), "gbk", "utf-8") } func GetJxEleBaseInfo(org_id int64) string { DllDef := syscall.MustLoadDLL("SSCard.dll") readCard := DllDef.MustFindProc("NationEcTrans") miConfig, _ := service.FindMedicalInsuranceInfo(org_id) if readCard == nil { fmt.Println("readcard is nil") readCard = DllDef.MustFindProc("NationEcTrans") } str1 := make([]byte, 1024) data := make(map[string]interface{}) inputData := make(map[string]interface{}) inputData["orgId"] = miConfig.Code inputData["businessType"] = "01101" inputData["operatorId"] = "test001" inputData["operatorName"] = "cn" inputData["officeId"] = "32760" inputData["officeName"] = "waike" inputData["deviceType"] = "" data["data"] = inputData data["transType"] = "ec.query" data["extra "] = "" data["orgId"] = miConfig.Code bytesData, _ := json.Marshal(data) //bytesData, _ := json.Marshal(data) //bytesData = []byte(ConvertToString(string(bytesData), "utf-8", "gbk")) ret2, _, _ := readCard.Call(StrPtr("http://10.77.224.18:9001/1.0.0/localQrCodeQuery"), (uintptr)(unsafe.Pointer(&bytesData[0])), (uintptr)(unsafe.Pointer(&str1[0]))) fmt.Println(ret2) fmt.Println(string(str1)) fmt.Println(":", ConvertToString(string(str1), "gbk", "utf-8")) if ret2 != 0 { return "" } return Remove0000(ConvertToString(string(str1), "gbk", "utf-8")) } //func GetJxEleBaseInfoTWO(org_id int64) string { // DllDef := syscall.MustLoadDLL("SSCard.dll") // readCard := DllDef.MustFindProc("NationEcTrans") // miConfig, _ := service.FindMedicalInsuranceInfo(org_id) // // if readCard == nil { // fmt.Println("readcard is nil") // readCard = DllDef.MustFindProc("NationEcTrans") // } // str1 := make([]byte, 1024) // // data := make(map[string]interface{}) // // inputData := make(map[string]interface{}) // inputData["orgId"] = miConfig.Code // inputData["businessType"] = "01101" // inputData["operatorId"] = "test001" // inputData["operatorName"] = "cn" // inputData["officeId"] = "32760" // inputData["officeName"] = "waike" // inputData["deviceType"] = "" // // data["data"] = inputData // data["transType"] = "ec.query" // data["extra "] = "" // data["orgId"] = miConfig.Code // bytesData, _ := json.Marshal(data) // //bytesData, _ := json.Marshal(data) // // //bytesData = []byte(ConvertToString(string(bytesData), "utf-8", "gbk")) // // ret2, _, _ := readCard.Call(StrPtr("http://10.77.224.18:9001/1.0.0/localQrCodeQuery"), (uintptr)(unsafe.Pointer(&bytesData[0])), (uintptr)(unsafe.Pointer(&str1[0]))) // fmt.Println(ret2) // fmt.Println(string(str1)) // fmt.Println(":", ConvertToString(string(str1), "gbk", "utf-8")) // // if ret2 != 0 { // return "" // } // return Remove0000(ConvertToString(string(str1), "gbk", "utf-8")) //} func GetJxEleBaseInitInfo(org_id int64) string { DllDef := syscall.MustLoadDLL("SSCard.dll") readCard := DllDef.MustFindProc("NationEcTrans") miConfig, _ := service.FindMedicalInsuranceInfo(org_id) if readCard == nil { fmt.Println("readcard is nil") readCard = DllDef.MustFindProc("NationEcTrans") } str1 := make([]byte, 2048) data := make(map[string]interface{}) inputData := make(map[string]interface{}) inputData["orgId"] = miConfig.Code inputData["businessType"] = "01101" inputData["operatorId"] = "1" inputData["operatorName"] = "huangchuang" inputData["officeId"] = "101" inputData["officeName"] = "xuetou" inputData["deviceType"] = "" data["data"] = inputData data["transType"] = "ec.query" data["orgId"] = miConfig.Code bytesData, _ := json.Marshal(data) bytesData = []byte(ConvertToString(string(bytesData), "utf-8", "gbk")) ret2, _, _ := readCard.Call(StrPtr("http://10.77.224.18:9001/1.0.0/getEncDynamicKey"), (uintptr)(unsafe.Pointer(&bytesData[0])), (uintptr)(unsafe.Pointer(&str1[0]))) fmt.Println("http://10.77.224.18:9001/1.0.0/getEncDynamicKey") fmt.Println(ret2) fmt.Println(string(str1)) fmt.Println(":", ConvertToString(string(str1), "gbk", "utf-8")) if ret2 != 0 { return "" } if len(Remove0000(ConvertToString(string(str1), "gbk", "utf-8"))) > 0 { initEleFlag = 1 } return Remove0000(ConvertToString(string(str1), "gbk", "utf-8")) } //func (c *HisApiController)GetgxBasBaseInfotwo() { // // 构建命令 // cmd := exec.Command("python", "b.py") // // // 执行命令并等待完成 // output, err := cmd.CombinedOutput() // if err != nil { // fmt.Println("Error executing Python script:", err) // return // } // // // 打印Python脚本的输出 // fmt.Println(string(output)) //} func (c *HisApiController) GetgxBasBaseInfo(code string) string { DllDef := syscall.MustLoadDLL("yh_interface_xyb.dll") readCard := DllDef.MustFindProc("gxyb_call") if readCard == nil { fmt.Println("readcard is nil") readCard = DllDef.MustFindProc("gxyb_call") } str := make([]byte, 1024) str1 := make([]byte, 1024) //data := make(map[string]interface{}) currentTime := time.Now() // 格式化时间为 "YYYYMMDDHH24MISS" formattedTime := currentTime.Format("20060102150405") inputData := make(map[string]interface{}) inputData2 := make(map[string]interface{}) inputData["transNo"] = "1401" inputData["transType"] = "passwordCheck" inputData["timestamp"] = formattedTime inputData2["fixmedinsCode"] = code inputData2["psnNo"] = "" inputData["data"] = inputData2 jsonBytes, err := json.Marshal(inputData) if err != nil { fmt.Println("Error encoding map to JSON:", err) } ret2, _, _ := readCard.Call(StrPtr("1401"), (uintptr)(unsafe.Pointer(&jsonBytes[0])), (uintptr)(unsafe.Pointer(&str1[0]))) fmt.Println(string(str1)) fmt.Println(string(str)) fmt.Println(":", ConvertToString(string(str1), "gbk", "utf-8")) fmt.Println(":", ConvertToString(string(str), "gbk", "utf-8")) if ret2 != 0 { return "" } return string(str) } func (c *HisApiController) GetoleInfo() Response { ole.CoInitializeEx(0, ole.COINIT_MULTITHREADED) defer ole.CoUninitialize() // Replace with the ProgID or CLSID of your COM object progID := "YinHai.XJ.Actual.Interface.New" // Create COM object unknown, err := oleutil.CreateObject(progID) if err != nil { fmt.Println("Unable to create COM object:", err) } defer unknown.Release() // Query for the IDispatch interface dispatch, err := unknown.QueryInterface(ole.IID_IDispatch) if err != nil { fmt.Println("Unable to get IDispatch interface:", err) } defer dispatch.Release() // Prepare parameters transNo := "1401" transType := "passwordCheck" timestamp := time.Now().Unix() fixmedinsCode := "H45072101171" psnNo := "" data := fmt.Sprintf(`{"transNo":"%s","transType":"%s","timestamp":"%s","data":{"fixmedinsCode":"%s","psnNo":"%s"}}`, transNo, transType, timestamp, fixmedinsCode, psnNo) result2 := "" // Call COM object's method using the IDispatch interface resulr, err := oleutil.CallMethod(dispatch, "gxyb_call", "1401", data, &result2) fmt.Println(resulr) fmt.Println(result2) if err != nil { fmt.Println("调用COM对象方法失败:", err) } var response Response err2 := json.Unmarshal([]byte(result2), &response) if err2 != nil { fmt.Println("解析JSON失败:", err) } return response } func (c *HisApiController) GetBasBaseInfo() string { DllDef := syscall.MustLoadDLL("SSCard.dll") readCard := DllDef.MustFindProc("ReadCardBas") if readCard == nil { fmt.Println("readcard is nil") readCard = DllDef.MustFindProc("ReadCardBas") } str := make([]byte, 1024) str1 := make([]byte, 1024) ret2, _, _ := readCard.Call((uintptr)(unsafe.Pointer(&str[0])), uintptr(1024), (uintptr)(unsafe.Pointer(&str1[0])), uintptr(1024)) fmt.Println(string(str1)) fmt.Println(string(str)) fmt.Println(":", ConvertToString(string(str1), "gbk", "utf-8")) fmt.Println(":", ConvertToString(string(str), "gbk", "utf-8")) if ret2 != 0 { return "" } return string(str) } type Program struct { FunctionID string `xml:"function_id"` CardInfo string `xml:"cardinfo"` User string `xml:"user"` } func (c *HisApiController) GetBasBaseInfo1111() string { DllDef := syscall.MustLoadDLL("HealthyCarder.dll") readCard := DllDef.MustFindProc("ReadSICardInfo") readCard2 := DllDef.MustFindProc("ReadCardInfo") if readCard == nil { fmt.Println("readcard is nil") readCard = DllDef.MustFindProc("ReadSICardInfo") } if readCard2 == nil { fmt.Println("readcard is nil") readCard2 = DllDef.MustFindProc("ReadCardInfo") } str := make([]byte, 1024) str1 := make([]byte, 1024) readCard.Call((uintptr)(unsafe.Pointer(&str[0])), (uintptr)(unsafe.Pointer(&str1[0]))) str3 := make([]byte, 1024) str4 := make([]byte, 1024) readCard.Call((uintptr)(unsafe.Pointer(&str[3])), (uintptr)(unsafe.Pointer(&str1[4]))) //file, err := os.Open("C:\\Users\\Administrator\\Desktop\\11\\Power-Card\\SSCardDriver\\api.log") //if err != nil { // fmt.Println("Error opening file:", err) //} //defer file.Close() // //var lastProgram Program //scanner := bufio.NewScanner(file) //inProgram := false // //for scanner.Scan() { // line := scanner.Text() // if strings.Contains(line, "") { // inProgram = true // programXML := "" // for scanner.Scan() { // line = scanner.Text() // programXML += line // if strings.Contains(line, "") { // programXML += "" // break // } // } // if err := xml.Unmarshal([]byte(programXML), &lastProgram); err == nil { // // 解析成功,更新最后的 Program // } // inProgram = false // } //} // // fmt.Println("Error reading file:", inProgram) // //if err := scanner.Err(); err != nil { // fmt.Println("Error reading file:", err) //} // 输出最后一次的 Program //fmt.Printf("最后一次的 :\n") //fmt.Printf("\n") //fmt.Printf(" %s\n", lastProgram.FunctionID) //fmt.Printf(" %s\n", lastProgram.CardInfo) //fmt.Printf(" %s\n", lastProgram.User) //fmt.Printf("\n") fmt.Println(":", ConvertToString(string(str1), "gbk", "utf-8")) fmt.Println(":", ConvertToString(string(str), "gbk", "utf-8")) fmt.Println(":", ConvertToString(string(str3), "gbk", "utf-8")) fmt.Println(":", ConvertToString(string(str4), "gbk", "utf-8")) return ConvertToString(string(str), "gbk", "utf-8") } func (c *HisApiController) GetBasBaseInfo22222() string { DllDef := syscall.MustLoadDLL("SSCardDriver.dll") readCard := DllDef.MustFindProc("iReadCardUnclassifiedBas") if readCard == nil { fmt.Println("readcard is nil") readCard = DllDef.MustFindProc("iReadCardUnclassifiedBas") } str := make([]byte, 1024) str1 := make([]byte, 1024) readCard.Call(uintptr(1), (uintptr)(unsafe.Pointer(&str1[0]))) //ret2, _, _ := readCard.Call(uintptr(3), (uintptr)(unsafe.Pointer(&str1[0]))) //file, err := os.Open("C:\\Users\\Administrator\\Desktop\\11\\Power-Card\\SSCardDriver\\api.log") //if err != nil { // fmt.Println("Error opening file:", err) //} //defer file.Close() // //var lastProgram Program //scanner := bufio.NewScanner(file) //inProgram := false // //for scanner.Scan() { // line := scanner.Text() // if strings.Contains(line, "") { // inProgram = true // programXML := "" // for scanner.Scan() { // line = scanner.Text() // programXML += line // if strings.Contains(line, "") { // programXML += "" // break // } // } // if err := xml.Unmarshal([]byte(programXML), &lastProgram); err == nil { // // 解析成功,更新最后的 Program // } // inProgram = false // } //} // // fmt.Println("Error reading file:", inProgram) // //if err := scanner.Err(); err != nil { // fmt.Println("Error reading file:", err) //} // 输出最后一次的 Program //fmt.Printf("最后一次的 :\n") //fmt.Printf("\n") //fmt.Printf(" %s\n", lastProgram.FunctionID) //fmt.Printf(" %s\n", lastProgram.CardInfo) //fmt.Printf(" %s\n", lastProgram.User) //fmt.Printf("\n") fmt.Println(":", ConvertToString(string(str1), "gbk", "utf-8")) fmt.Println(":", ConvertToString(string(str), "gbk", "utf-8")) return ConvertToString(string(str1), "gbk", "utf-8") } func (c *HisApiController) GetahBasBaseInfo() string { DllDef := syscall.MustLoadDLL("SSCardDriver.dll") readCard := DllDef.MustFindProc("iReadCardBas") if readCard == nil { fmt.Println("readcard is nil") readCard = DllDef.MustFindProc("iReadCardBas") } //str := make([]byte, 1024) str1 := make([]byte, 1024) ret2, _, _ := readCard.Call(uintptr(3), (uintptr)(unsafe.Pointer(&str1[0]))) //file, err := os.Open("C:\\Users\\Administrator\\Desktop\\11\\Power-Card\\SSCardDriver\\api.log") //if err != nil { // fmt.Println("Error opening file:", err) //} //defer file.Close() // //var lastProgram Program //scanner := bufio.NewScanner(file) //inProgram := false // //for scanner.Scan() { // line := scanner.Text() // if strings.Contains(line, "") { // inProgram = true // programXML := "" // for scanner.Scan() { // line = scanner.Text() // programXML += line // if strings.Contains(line, "") { // programXML += "" // break // } // } // if err := xml.Unmarshal([]byte(programXML), &lastProgram); err == nil { // // 解析成功,更新最后的 Program // } // inProgram = false // } //} // // fmt.Println("Error reading file:", inProgram) // //if err := scanner.Err(); err != nil { // fmt.Println("Error reading file:", err) //} // 输出最后一次的 Program //fmt.Printf("最后一次的 :\n") //fmt.Printf("\n") //fmt.Printf(" %s\n", lastProgram.FunctionID) //fmt.Printf(" %s\n", lastProgram.CardInfo) //fmt.Printf(" %s\n", lastProgram.User) //fmt.Printf("\n") fmt.Println(string(str1)) fmt.Println(":", ConvertToString(string(str1), "gbk", "utf-8")) if ret2 != 0 { return "" } return string(str1) } func (c *HisApiController) GetFjBasBaseInfo() (string, string, string, string, string) { DllDef := syscall.MustLoadDLL("chs_fjs_standard.dll") readCard := DllDef.MustFindProc("read_cardinfo") if readCard == nil { fmt.Println("readcard is nil") readCard = DllDef.MustFindProc("read_cardinfo") } str := make([]byte, 1024) //卡号 str1 := make([]byte, 1024) //卡识别码 str2 := make([]byte, 1024) //身份证号 str3 := make([]byte, 1024) //姓名 str4 := make([]byte, 1024) //错误信息 ret2, _, _ := readCard.Call((uintptr)(unsafe.Pointer(&str[0])), (uintptr)(unsafe.Pointer(&str1[0])), (uintptr)(unsafe.Pointer(&str2[0])), (uintptr)(unsafe.Pointer(&str3[0])), (uintptr)(unsafe.Pointer(&str4[0]))) fmt.Println(string(str1)) fmt.Println(string(str)) fmt.Println(string(str2)) fmt.Println(string(str3)) fmt.Println(string(str4)) fmt.Println(":", ConvertToString(string(str1), "gbk", "utf-8")) fmt.Println(":", ConvertToString(string(str), "gbk", "utf-8")) fmt.Println(":", ConvertToString(string(str2), "gbk", "utf-8")) fmt.Println(":", ConvertToString(string(str3), "gbk", "utf-8")) fmt.Println(":", ConvertToString(string(str4), "gbk", "utf-8")) if ret2 != 0 { return "", "", "", "", "" } return string(str), string(str1), string(str2), string(str3), string(str4) } type CustomFundPay struct { FundPayType string `json:"fund_pay_type"` FundPayamt float64 `json:"fund_payamt"` InscpScpAmt float64 `json:"inscp_scp_amt"` } //func (c *HisApiController) GetBatchSettleList() { // start_time_str := c.GetString("start_time") // //end_time_str := c.GetString("end_time") // admin_user_id, _ := c.GetInt64("admin_user_id") // // orders,_ := service.GetHisOrderByIDThree(start_time_str) // // for _, item := range orders { // order, _ := service.GetHisOrderByIDTwo(item.ID) // roles, _ := service.GetDoctorListTwo(c.GetAdminUserInfo().CurrentOrgId) // his, _ := service.GetHisPatientByNumber(order.MdtrtId) // admin, _ := service.GetAdminUserByUserID(roles[0].AdminUserId) // curRoles, _ := service.GetAdminUserInfoByID(c.GetAdminUserInfo().CurrentOrgId, admin_user_id) // //depart, _ := service.GetDepartMentDetail(curRoles.DepartmentId) // miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId) // pre, _ := service.GetNewHisPrescriptionByNumber(order.Number) // doctor, _ := service.GetAdminUserInfoByID(c.GetAdminUserInfo().CurrentOrgId, pre.Creator) // // if order.ID == 0 { // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisOrderNoExistParamWrong) // return // } // // //last_order, _ := service.GetLastHisOrder(c.GetAdminUserInfo().CurrentOrgId) // //max_order, _ := service.GetLastHisOrderTwo(c.GetAdminUserInfo().CurrentOrgId) // //count, _ := strconv.ParseInt(max_order.FaPiaoNumber, 10, 64) // //fmt.Println(count) // //var zero string // //number := count + 1 // //if number >= 1000 { // // zero = "0000" + strconv.FormatInt(number, 10) // //} else if number >= 10000 { // // zero = "000" + strconv.FormatInt(number, 10) // //} else if number >= 100000 { // // zero = "00" + strconv.FormatInt(number, 10) // //} else if number >= 1000000 { // // zero = "0" + strconv.FormatInt(number, 10) // //} else { // // zero = strconv.FormatInt(number, 10) // //} // //fmt.Println(zero) // // struct4101 := service.Struct4101{ // PsnNo: order.PsnNo, // MdtrtId: order.MdtrtId, // SetlId: order.SetlId, // PsnName: order.PsnName, // Gend: order.Gend, // Brdy: his.Brdy, // Age: his.Age, // Naty: order.Naty, // PatnCertType: "01", // Certno: order.Certno, // Prfs: "90", // ConerName: roles[0].UserName, // PatnRlts: "99", // ConerAddr: miConfig.OrgName, // ConerTel: admin.Mobile, // HiType: order.Insutype, // Insuplc: miConfig.InsuplcAdmdvs, // MaindiagFlag: "1", // BillCode: order.SetlId, // BillNo: order.SetlId, // BizSn: order.Number, // PsnSelfPay: order.PsnPartAmt, // PsnOwnPay: order.PsnPartAmt, // AcctPay: order.AcctPay, // PsnCashpay: order.PsnCashPay, // HiPaymtd: "1", // Hsorg: miConfig.InsuplcAdmdvs, // HsorgOpter: miConfig.InsuplcAdmdvs, // MedinsFillPsn: curRoles.UserName, // MedinsFillDept: miConfig.OrgName, // IptMedType: "2", // } // struct4101.SetlBegnDate = order.SetlTime // struct4101.SetlEndDate = order.SetlTime // time_arr := strings.Split(order.SetlTime, " ") // struct4101.AdmTime = time_arr[0] // struct4101.AdmEndTime = time_arr[0] // // var rf []CustomFundPay // json.Unmarshal([]byte(order.SetlDetail), &rf) // // var tempFunPays []service.CustomStruct // for _, item := range rf { // var tempFunPay service.CustomStruct // tempFunPay.FundPayamt = item.FundPayamt // tempFunPay.FundPayType = item.FundPayType // tempFunPays = append(tempFunPays, tempFunPay) // } // struct4101.CustomStruct = tempFunPays // // var tempDiaginfos []service.DiaginfoStructTwo // var tempOpspdiseinfo2 service.OpspdiseinfoStruct // var tempOpspdiseinfos []service.OpspdiseinfoStruct // // diagnosis_ids := strings.Split(his.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 { // if index == 0 { // var tempDiaginfo service.DiaginfoStructTwo // tempDiaginfo.DiagCode = item.CountryCode // tempDiaginfo.DiagName = item.CountryContentName // tempDiaginfo.DiagType = "1" // tempDiaginfo.MaindiagFlag = "1" // tempDiaginfos = append(tempDiaginfos, tempDiaginfo) // } else { // var tempDiaginfo service.DiaginfoStructTwo // tempDiaginfo.DiagCode = item.CountryCode // tempDiaginfo.DiagName = item.CountryContentName // tempDiaginfo.DiagType = "1" // tempDiaginfo.MaindiagFlag = "0" // tempDiaginfos = append(tempDiaginfos, tempDiaginfo) // } // } // struct4101.Diseinfo = tempDiaginfos // // sickConfigTwo, _ := service.FindSickById(his.SickType) // tempOpspdiseinfo2.DiagCode = sickConfigTwo.ContentCode // tempOpspdiseinfo2.DiagName = sickConfigTwo.CountryContentName // tempOpspdiseinfo2.OprnOprtCode = sickConfigTwo.ContentCode // tempOpspdiseinfo2.OprnOprtName = sickConfigTwo.CountryContentName // tempOpspdiseinfos = append(tempOpspdiseinfos, tempOpspdiseinfo2) // struct4101.OpspdiseinfoStruct = tempOpspdiseinfos // // var iteminfo service.IteminfoStruct // // var bedCostTotal float64 = 0 //床位总费 // var bedCostSelfTotal float64 = 0 //床位自费 // var bedCostPartSelfTotal float64 = 0 //床位部分项目自费 // // var operationCostTotal float64 = 0 //手术费 // var operationCostSelfTotal float64 = 0 //手术费 // var operationCostPartSelfTotal float64 = 0 //手术费 // // var otherCostTotal float64 = 0 //其他费用 // var otherCostSelfTotal float64 = 0 //其他费用 // var otherCostPartSelfTotal float64 = 0 //其他费用 // // var materialCostTotal float64 = 0 //材料费 // var materialCostSelfTotal float64 = 0 //材料费 // var materialCostPartSelfTotal float64 = 0 //材料费 // // var westernMedicineCostTotal float64 = 0 //西药费 // var westernMedicineCostSelfTotal float64 = 0 //西药费 // var westernMedicineCostPartSelfTotal float64 = 0 //西药费 // // var chineseTraditionalMedicineCostTotal float64 = 0 //中成药 // var chineseTraditionalMedicineCostSelfTotal float64 = 0 //中成药 // var chineseTraditionalMedicineCostPartSelfTotal float64 = 0 //中成药 // // var checkCostTotal float64 = 0 //检查费 // var checkCostSelfTotal float64 = 0 //检查费 // var checkCostPartSelfTotal float64 = 0 //检查费 // // var laboratoryCostTotal float64 = 0 //化验费 // var laboratoryCostSelfTotal float64 = 0 //化验费 // var laboratoryCostPartSelfTotal float64 = 0 //化验费 // // var treatCostTotal float64 = 0 //治疗费用 // var treatCostSelfTotal float64 = 0 //治疗费用 // var treatCostPartSelfTotal float64 = 0 //治疗费用 // // decimal.DivisionPrecision = 2 // // var bed_fulamt_ownpay_amt float64 = 0 // var operation_fulamt_ownpay_amt float64 = 0 // var other_fulamt_ownpay_amt float64 = 0 // var westernMedicine_fulamt_ownpay_amt float64 = 0 // var chineseTraditional_fulamt_ownpay_amt float64 = 0 // var check_fulamt_ownpay_amt float64 = 0 // var material_fulamt_ownpay_amt float64 = 0 // var laboratory_fulamt_ownpay_amt float64 = 0 // var treat_fulamt_ownpay_amt float64 = 0 // // var bed_claa_sunmfee float64 = 0 // var bed_clab_amt float64 = 0 // var bed_other_amt float64 = 0 // // var operation_claa_sunmfee float64 = 0 // var operation_clab_amt float64 = 0 // var operation_other_amt float64 = 0 // // var other_claa_sunmfee float64 = 0 // var other_clab_amt float64 = 0 // var other_other_amt float64 = 0 // // var westernMedicine_claa_sunmfee float64 = 0 // var westernMedicine_clab_amt float64 = 0 // var westernMedicine_other_amt float64 = 0 // // var chineseTraditional_claa_sunmfee float64 = 0 // var chineseTraditional_clab_amt float64 = 0 // var chineseTraditional_other_amt float64 = 0 // // var check_claa_sunmfee float64 = 0 // var check_clab_amt float64 = 0 // var check_other_amt float64 = 0 // // var material_claa_sunmfee float64 = 0 // var material_clab_amt float64 = 0 // var material_other_amt float64 = 0 // // var laboratory_claa_sunmfee float64 = 0 // var laboratory_clab_amt float64 = 0 // var laboratory_other_amt float64 = 0 // // var treat_claa_sunmfee float64 = 0 // var treat_clab_amt float64 = 0 // var treat_other_amt float64 = 0 // // for _, item := range order.HisOrderInfo { // if item.MedChrgitmType == "01" { //床位费 // bedCostTotal, _ = decimal.NewFromFloat(bedCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() // bedCostSelfTotal, _ = decimal.NewFromFloat(bedCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() // bedCostPartSelfTotal, _ = decimal.NewFromFloat(bedCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() // bed_fulamt_ownpay_amt, _ = decimal.NewFromFloat(bed_fulamt_ownpay_amt).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64() // if item.ChrgitmLv == "1" { // bed_claa_sunmfee, _ = decimal.NewFromFloat(bed_claa_sunmfee).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() // } // if item.ChrgitmLv == "2" { // bed_clab_amt, _ = decimal.NewFromFloat(bed_clab_amt).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() // // } // if item.ChrgitmLv == "3" { // bed_other_amt, _ = decimal.NewFromFloat(bed_other_amt).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() // } // // } // // if item.MedChrgitmType == "03" { //检查费 // checkCostTotal, _ = decimal.NewFromFloat(checkCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() // checkCostSelfTotal, _ = decimal.NewFromFloat(checkCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() // checkCostPartSelfTotal, _ = decimal.NewFromFloat(checkCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() // check_fulamt_ownpay_amt, _ = decimal.NewFromFloat(check_fulamt_ownpay_amt).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64() // if item.ChrgitmLv == "1" { // // check_claa_sunmfee, _ = decimal.NewFromFloat(check_claa_sunmfee).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() // // } // if item.ChrgitmLv == "2" { // check_clab_amt, _ = decimal.NewFromFloat(check_clab_amt).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() // // } // if item.ChrgitmLv == "3" { // check_other_amt, _ = decimal.NewFromFloat(check_other_amt).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() // } // } // // if item.MedChrgitmType == "04" { //化验费 // laboratoryCostTotal, _ = decimal.NewFromFloat(laboratoryCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() // laboratoryCostSelfTotal, _ = decimal.NewFromFloat(laboratoryCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() // laboratoryCostPartSelfTotal, _ = decimal.NewFromFloat(laboratoryCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() // laboratory_fulamt_ownpay_amt, _ = decimal.NewFromFloat(laboratory_fulamt_ownpay_amt).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64() // if item.ChrgitmLv == "1" { // // laboratory_claa_sunmfee, _ = decimal.NewFromFloat(laboratory_claa_sunmfee).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() // // } // if item.ChrgitmLv == "2" { // laboratory_clab_amt, _ = decimal.NewFromFloat(laboratory_clab_amt).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() // // } // if item.ChrgitmLv == "3" { // laboratory_other_amt, _ = decimal.NewFromFloat(laboratory_other_amt).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() // } // } // // if item.MedChrgitmType == "05" { //治疗费 // treatCostTotal, _ = decimal.NewFromFloat(treatCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() // treatCostSelfTotal, _ = decimal.NewFromFloat(treatCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() // treatCostPartSelfTotal, _ = decimal.NewFromFloat(treatCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() // treat_fulamt_ownpay_amt, _ = decimal.NewFromFloat(treat_fulamt_ownpay_amt).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64() // if item.ChrgitmLv == "1" { // // treat_claa_sunmfee, _ = decimal.NewFromFloat(treat_claa_sunmfee).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() // // } // if item.ChrgitmLv == "2" { // treat_clab_amt, _ = decimal.NewFromFloat(treat_clab_amt).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() // // } // if item.ChrgitmLv == "3" { // treat_other_amt, _ = decimal.NewFromFloat(treat_other_amt).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() // } // } // // if item.MedChrgitmType == "06" { //手术费 // operationCostTotal, _ = decimal.NewFromFloat(operationCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() // operationCostSelfTotal, _ = decimal.NewFromFloat(operationCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() // operationCostPartSelfTotal, _ = decimal.NewFromFloat(operationCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() // operation_fulamt_ownpay_amt, _ = decimal.NewFromFloat(operation_fulamt_ownpay_amt).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64() // // if item.ChrgitmLv == "1" { // // operation_claa_sunmfee, _ = decimal.NewFromFloat(operation_claa_sunmfee).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() // // } // if item.ChrgitmLv == "2" { // operation_clab_amt, _ = decimal.NewFromFloat(operation_clab_amt).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() // // } // if item.ChrgitmLv == "3" { // operation_other_amt, _ = decimal.NewFromFloat(operation_other_amt).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() // } // } // // if item.MedChrgitmType == "08" { //材料费 // materialCostTotal, _ = decimal.NewFromFloat(materialCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() // materialCostSelfTotal, _ = decimal.NewFromFloat(materialCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() // materialCostPartSelfTotal, _ = decimal.NewFromFloat(materialCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() // material_fulamt_ownpay_amt, _ = decimal.NewFromFloat(material_fulamt_ownpay_amt).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64() // if item.ChrgitmLv == "1" { // // material_claa_sunmfee, _ = decimal.NewFromFloat(material_claa_sunmfee).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() // // } // if item.ChrgitmLv == "2" { // material_clab_amt, _ = decimal.NewFromFloat(material_clab_amt).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() // // } // if item.ChrgitmLv == "3" { // material_other_amt, _ = decimal.NewFromFloat(material_other_amt).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() // } // } // // if item.MedChrgitmType == "09" { //西药费 // westernMedicineCostTotal, _ = decimal.NewFromFloat(westernMedicineCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() // westernMedicineCostSelfTotal, _ = decimal.NewFromFloat(westernMedicineCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() // westernMedicineCostPartSelfTotal, _ = decimal.NewFromFloat(westernMedicineCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() // westernMedicine_fulamt_ownpay_amt, _ = decimal.NewFromFloat(westernMedicine_fulamt_ownpay_amt).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64() // if item.ChrgitmLv == "1" { // // westernMedicine_claa_sunmfee, _ = decimal.NewFromFloat(westernMedicine_claa_sunmfee).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() // // } // if item.ChrgitmLv == "2" { // westernMedicine_clab_amt, _ = decimal.NewFromFloat(westernMedicine_clab_amt).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() // // } // if item.ChrgitmLv == "3" { // westernMedicine_other_amt, _ = decimal.NewFromFloat(westernMedicine_other_amt).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() // } // } // // if item.MedChrgitmType == "11" { //中成费 // chineseTraditionalMedicineCostTotal, _ = decimal.NewFromFloat(chineseTraditionalMedicineCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() // chineseTraditionalMedicineCostSelfTotal, _ = decimal.NewFromFloat(chineseTraditionalMedicineCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() // chineseTraditionalMedicineCostPartSelfTotal, _ = decimal.NewFromFloat(chineseTraditionalMedicineCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() // chineseTraditional_fulamt_ownpay_amt, _ = decimal.NewFromFloat(chineseTraditional_fulamt_ownpay_amt).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64() // if item.ChrgitmLv == "1" { // // chineseTraditional_claa_sunmfee, _ = decimal.NewFromFloat(chineseTraditional_claa_sunmfee).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() // // } // if item.ChrgitmLv == "2" { // chineseTraditional_clab_amt, _ = decimal.NewFromFloat(chineseTraditional_clab_amt).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() // // } // if item.ChrgitmLv == "3" { // chineseTraditional_other_amt, _ = decimal.NewFromFloat(chineseTraditional_other_amt).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() // } // } // // if item.MedChrgitmType == "14" { //其他费 // otherCostTotal, _ = decimal.NewFromFloat(otherCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() // otherCostSelfTotal, _ = decimal.NewFromFloat(otherCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() // otherCostPartSelfTotal, _ = decimal.NewFromFloat(otherCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() // other_fulamt_ownpay_amt, _ = decimal.NewFromFloat(other_fulamt_ownpay_amt).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64() // if item.ChrgitmLv == "1" { // other_claa_sunmfee, _ = decimal.NewFromFloat(other_claa_sunmfee).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() // // } // if item.ChrgitmLv == "2" { // other_clab_amt, _ = decimal.NewFromFloat(other_clab_amt).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() // // } // if item.ChrgitmLv == "3" { // other_other_amt, _ = decimal.NewFromFloat(other_other_amt).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() // } // } // // } // // var iteminfoStructs []service.IteminfoStruct // // if bedCostTotal != 0 { // iteminfo.MedChrgitm = "01" // iteminfo.FulamtOwnpayAmt = bed_fulamt_ownpay_amt // iteminfo.Amt = bedCostTotal // iteminfo.ClaaSumfee = bed_claa_sunmfee // iteminfo.ClabAmt = bed_clab_amt // iteminfo.OthAmt = bed_other_amt // iteminfoStructs = append(iteminfoStructs, iteminfo) // } // // if checkCostTotal != 0 { // iteminfo.MedChrgitm = "03" // iteminfo.FulamtOwnpayAmt = check_fulamt_ownpay_amt // iteminfo.Amt = checkCostTotal // iteminfo.ClaaSumfee = check_claa_sunmfee // iteminfo.ClabAmt = check_clab_amt // iteminfo.OthAmt = check_other_amt // iteminfoStructs = append(iteminfoStructs, iteminfo) // // } // // if laboratoryCostTotal != 0 { // iteminfo.MedChrgitm = "04" // iteminfo.FulamtOwnpayAmt = laboratory_fulamt_ownpay_amt // iteminfo.Amt = laboratoryCostTotal // iteminfo.ClaaSumfee = laboratory_claa_sunmfee // iteminfo.ClabAmt = laboratory_clab_amt // iteminfo.OthAmt = laboratory_other_amt // iteminfoStructs = append(iteminfoStructs, iteminfo) // // //struct4101.IteminfoStruct = append(struct4101.IteminfoStruct, iteminfo) // // } // // if treatCostTotal != 0 { // iteminfo.MedChrgitm = "05" // iteminfo.FulamtOwnpayAmt = treat_fulamt_ownpay_amt // iteminfo.Amt = treatCostTotal // iteminfo.ClaaSumfee = treat_claa_sunmfee // iteminfo.ClabAmt = treat_clab_amt // iteminfo.OthAmt = treat_other_amt // iteminfoStructs = append(iteminfoStructs, iteminfo) // //(struct4101.IteminfoStruct, iteminfo) // //struct4101.IteminfoStruct = append(struct4101.IteminfoStruct, iteminfo) // } // // if operationCostTotal != 0 { // iteminfo.MedChrgitm = "06" // iteminfo.FulamtOwnpayAmt = bed_fulamt_ownpay_amt // iteminfo.Amt = operationCostTotal // iteminfo.ClaaSumfee = operation_claa_sunmfee // iteminfo.ClabAmt = operation_clab_amt // iteminfo.OthAmt = operation_other_amt // //struct4101.IteminfoStruct = append(struct4101.IteminfoStruct, iteminfo) // iteminfoStructs = append(iteminfoStructs, iteminfo) // } // // if materialCostTotal != 0 { // iteminfo.MedChrgitm = "08" // iteminfo.FulamtOwnpayAmt = material_fulamt_ownpay_amt // iteminfo.Amt = materialCostTotal // iteminfo.ClaaSumfee = material_claa_sunmfee // iteminfo.ClabAmt = material_clab_amt // iteminfo.OthAmt = material_other_amt // //struct4101.IteminfoStruct = append(struct4101.IteminfoStruct, iteminfo) // iteminfoStructs = append(iteminfoStructs, iteminfo) // } // // if westernMedicineCostTotal != 0 { // iteminfo.MedChrgitm = "09" // iteminfo.FulamtOwnpayAmt = westernMedicine_fulamt_ownpay_amt // iteminfo.Amt = westernMedicineCostTotal // iteminfo.ClaaSumfee = westernMedicine_claa_sunmfee // iteminfo.ClabAmt = westernMedicine_clab_amt // iteminfo.OthAmt = westernMedicine_other_amt // //struct4101.IteminfoStruct = append(struct4101.IteminfoStruct, iteminfo) // iteminfoStructs = append(iteminfoStructs, iteminfo) // // } // if chineseTraditionalMedicineCostTotal != 0 { // iteminfo.MedChrgitm = "11" // iteminfo.FulamtOwnpayAmt = westernMedicine_fulamt_ownpay_amt // iteminfo.Amt = westernMedicineCostTotal // iteminfo.ClaaSumfee = westernMedicine_claa_sunmfee // iteminfo.ClabAmt = westernMedicine_clab_amt // iteminfo.OthAmt = westernMedicine_other_amt // //struct4101.IteminfoStruct = append(struct4101.IteminfoStruct, iteminfo) // iteminfoStructs = append(iteminfoStructs, iteminfo) // // } // if otherCostTotal != 0 { // iteminfo.MedChrgitm = "14" // iteminfo.FulamtOwnpayAmt = other_fulamt_ownpay_amt // iteminfo.Amt = otherCostTotal // iteminfo.ClaaSumfee = other_claa_sunmfee // iteminfo.ClabAmt = other_clab_amt // iteminfo.OthAmt = other_other_amt // //struct4101.IteminfoStruct = append(struct4101.IteminfoStruct, iteminfo) // iteminfoStructs = append(iteminfoStructs, iteminfo) // // } // struct4101.IteminfoStruct = iteminfoStructs // struct4101.Ntly = "中国" // struct4101.AdmCaty = "A03.06" // // struct4101.DoctorName = doctor.UserName // struct4101.DoctorCode = doctor.DoctorNumber // // var res ResultSeventeen // // if miConfig.MdtrtareaAdmvs == "320921" || miConfig.MdtrtareaAdmvs == "320982" { // struct4101.BillCode = order.Number // struct4101.BillNo = order.SetlId // var resOther ResultSeventeenOther // var pp models.PublicParams // pp.InsuplcAdmdvs = miConfig.InsuplcAdmdvs // pp.MdtrtareaAdmvs = miConfig.MdtrtareaAdmvs // pp.FixmedinsName = miConfig.OrgName // pp.FixmedinsCode = miConfig.Code // pp.RequestUrl = miConfig.Url // pp.Cainfo = miConfig.Cainfo // pp.SecretKey = miConfig.SecretKey // pp.AccessKey = miConfig.AccessKey // pp.OpterName = curRoles.UserName // // client := &http.Client{} // var req *http.Request // data := make(map[string]interface{}) // data["struct4101"] = struct4101 // data["pp"] = pp // bytesData, _ := json.Marshal(data) // if miConfig.MdtrtareaAdmvs == "320921" { // req, _ = http.NewRequest("POST", "http://192.168.2.3:9532/"+"jsyb/4101", bytes.NewReader(bytesData)) // } else { // req, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/4101", 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{})["request_log"].(map[string]interface{}) // userJSONBytes, _ := json.Marshal(respJSON) // fmt.Println("log") // fmt.Println(string(userJSONBytes)) // if err := json.Unmarshal(userJSONBytes, &resOther); err != nil { // utils.ErrorLog("解析失败:%v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // res.InfRefmsgid = resOther.InfRefmsgid // res.Output = resOther.Output // res.ErrMsg = resOther.ErrMsg // infocode, _ := strconv.ParseInt(resOther.Infcode, 10, 64) // res.Infcode = infocode // } else if miConfig.MdtrtareaAdmvs == "360302" { // // var pp models.PublicParams // pp.InsuplcAdmdvs = miConfig.InsuplcAdmdvs // pp.MdtrtareaAdmvs = miConfig.MdtrtareaAdmvs // pp.FixmedinsName = miConfig.OrgName // pp.FixmedinsCode = miConfig.Code // pp.RequestUrl = miConfig.Url // pp.Cainfo = miConfig.Cainfo // pp.SecretKey = miConfig.SecretKey // pp.AccessKey = miConfig.AccessKey // pp.OpterName = curRoles.UserName // result, _ := service.Jxyb4101(struct4101, pp) // var dat map[string]interface{} // if err := json.Unmarshal([]byte(result), &dat); err == nil { // fmt.Println(dat) // } else { // fmt.Println(err) // } // userJSONBytes, _ := json.Marshal(dat) // if err := json.Unmarshal(userJSONBytes, &res); err != nil { // utils.ErrorLog("解析失败:%v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // // } else if miConfig.MdtrtareaAdmvs == "430800" { // var pp models.PublicParams // pp.InsuplcAdmdvs = miConfig.InsuplcAdmdvs // pp.MdtrtareaAdmvs = miConfig.MdtrtareaAdmvs // pp.FixmedinsName = miConfig.OrgName // pp.FixmedinsCode = miConfig.Code // pp.RequestUrl = miConfig.Url // pp.Cainfo = miConfig.Cainfo // pp.SecretKey = miConfig.SecretKey // pp.AccessKey = miConfig.AccessKey // pp.OpterName = curRoles.UserName // result, _ := service.Hnyb4101(struct4101, pp) // var dat map[string]interface{} // if err := json.Unmarshal([]byte(result), &dat); err == nil { // fmt.Println(dat) // } else { // fmt.Println(err) // } // userJSONBytes, _ := json.Marshal(dat) // if err := json.Unmarshal(userJSONBytes, &res); err != nil { // utils.ErrorLog("解析失败:%v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // // } else if miConfig.MdtrtareaAdmvs == "150499" { // var resOther ResultSeventeenOther // // var pp models.PublicParams // pp.InsuplcAdmdvs = miConfig.InsuplcAdmdvs // pp.MdtrtareaAdmvs = miConfig.MdtrtareaAdmvs // pp.FixmedinsName = miConfig.OrgName // pp.FixmedinsCode = miConfig.Code // pp.RequestUrl = miConfig.Url // pp.Cainfo = miConfig.Cainfo // pp.SecretKey = miConfig.SecretKey // pp.AccessKey = miConfig.AccessKey // pp.OpterName = curRoles.UserName // client := &http.Client{} // var req *http.Request // data := make(map[string]interface{}) // data["struct4101"] = struct4101 // data["pp"] = pp // bytesData, _ := json.Marshal(data) // req, _ = http.NewRequest("POST", "http://172.16.13.254:9532/"+"nmyb/4101", bytes.NewReader(bytesData)) // resp, _ := client.Do(req) // defer resp.Body.Close() // body, ioErr := ioutil.ReadAll(resp.Body) // if ioErr != nil { // utils.ErrorLog("接口返回数据读取失败: %v", ioErr) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // var respJSON map[string]interface{} // if err := json.Unmarshal([]byte(body), &respJSON); err != nil { // utils.ErrorLog("接口返回数据解析JSON失败: %v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // // respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) // userJSONBytes, _ := json.Marshal(respJSON) // if err := json.Unmarshal(userJSONBytes, &resOther); err != nil { // utils.ErrorLog("解析失败:%v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // res.InfRefmsgid = resOther.InfRefmsgid // res.Output = resOther.Output // res.ErrMsg = resOther.ErrMsg // infocode, _ := strconv.ParseInt(resOther.Infcode, 10, 64) // res.Infcode = infocode // // } else if miConfig.MdtrtareaAdmvs == "350500" { // var pp models.PublicParams // pp.InsuplcAdmdvs = miConfig.InsuplcAdmdvs // pp.MdtrtareaAdmvs = miConfig.MdtrtareaAdmvs // pp.FixmedinsName = miConfig.OrgName // pp.FixmedinsCode = miConfig.Code // pp.RequestUrl = miConfig.Url // pp.Cainfo = miConfig.Cainfo // pp.SecretKey = miConfig.SecretKey // pp.AccessKey = miConfig.AccessKey // pp.OpterName = curRoles.UserName // result, requestLog, errMsgLog := service.Fjyb4101(struct4101, pp) // fmt.Println(requestLog) // fmt.Println(errMsgLog) // // saveLog(result, requestLog, "4101a", "上传清单") // // var dat map[string]interface{} // if err := json.Unmarshal([]byte(result), &dat); err == nil { // fmt.Println(dat) // } else { // fmt.Println(err) // } // userJSONBytes, _ := json.Marshal(dat) // if err := json.Unmarshal(userJSONBytes, &res); err != nil { // utils.ErrorLog("解析失败:%v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // // } else { // // result, _ := service.Gdyb4101(struct4101, miConfig.SecretKey, miConfig.OrgName, curRoles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.UserOrgId) // var dat map[string]interface{} // if err := json.Unmarshal([]byte(result), &dat); err == nil { // fmt.Println(dat) // } else { // fmt.Println(err) // } // userJSONBytes, _ := json.Marshal(dat) // if err := json.Unmarshal(userJSONBytes, &res); err != nil { // utils.ErrorLog("解析失败:%v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // } // // if res.Infcode != 0 { // adminUser := c.GetAdminUserInfo() // errlog := &models.HisOrderError{ // UserOrgId: adminUser.CurrentOrgId, // Ctime: time.Now().Unix(), // Mtime: time.Now().Unix(), // ErrMsg: res.ErrMsg, // Status: 1, // PatientId: order.ID, // Stage: 10265, // } // service.CreateErrMsgLog(errlog) // continue // } else { // //order.FaPiaoNumber = zero // //order.FaPiaoCode = last_order.FaPiaoCode // //service.UpdateOrder(order) // hisFundSettleListResult := &models.HisFundSettleListResult{ // Number: res.Output.SetlListId, // Status: 1, // Ctime: time.Now().Unix(), // Mtime: time.Now().Unix(), // UserOrgId: c.GetAdminUserInfo().CurrentOrgId, // IsUpload: 1, // OrderId: order.ID, // } // service.CreateUploadRecord(hisFundSettleListResult) // c.ServeSuccessJSON(map[string]interface{}{ // "msg": "上传成功", // "result": hisFundSettleListResult, // }) // continue // } // } //} func (c *HisApiController) GetbatchSettleList() { //order_id, _ := c.GetInt64("order_id") admin_user_id, _ := c.GetInt64("admin_user_id") orders, _ := service.GetAllHisOrderTwo10485() for _, item := range orders { order, _ := service.GetHisOrderByIDTwo(item.ID) roles, _ := service.GetDoctorListTwo(c.GetAdminUserInfo().CurrentOrgId) his, _ := service.GetHisPatientByNumber(order.MdtrtId) admin, _ := service.GetAdminUserByUserID(roles[0].AdminUserId) curRoles, _ := service.GetAdminUserInfoByID(c.GetAdminUserInfo().CurrentOrgId, admin_user_id) //depart, _ := service.GetDepartMentDetail(curRoles.DepartmentId) miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId) pre, _ := service.GetNewHisPrescriptionByNumber(order.Number) doctor, _ := service.GetAdminUserInfoByID(c.GetAdminUserInfo().CurrentOrgId, pre.Creator) //last_order, _ := service.GetLastHisOrder(c.GetAdminUserInfo().CurrentOrgId) //max_order, _ := service.GetLastHisOrderTwo(c.GetAdminUserInfo().CurrentOrgId) //count, _ := strconv.ParseInt(max_order.FaPiaoNumber, 10, 64) //fmt.Println(count) //var zero string //number := count + 1 //if number >= 1000 { // zero = "0000" + strconv.FormatInt(number, 10) //} else if number >= 10000 { // zero = "000" + strconv.FormatInt(number, 10) //} else if number >= 100000 { // zero = "00" + strconv.FormatInt(number, 10) //} else if number >= 1000000 { // zero = "0" + strconv.FormatInt(number, 10) //} else { // zero = strconv.FormatInt(number, 10) //} //fmt.Println(zero) struct4101 := service.Struct4101{ PsnNo: order.PsnNo, MdtrtId: order.MdtrtId, SetlId: order.SetlId, PsnName: order.PsnName, Gend: order.Gend, Brdy: his.Brdy, Age: his.Age, Naty: order.Naty, PatnCertType: "01", Certno: order.Certno, Prfs: "90", ConerName: roles[0].UserName, PatnRlts: "99", ConerAddr: miConfig.OrgName, ConerTel: admin.Mobile, HiType: order.Insutype, Insuplc: miConfig.InsuplcAdmdvs, MaindiagFlag: "1", BillCode: order.SetlId, BillNo: order.SetlId, BizSn: order.Number, PsnSelfPay: order.PsnPartAmt, PsnOwnPay: order.PsnPartAmt, AcctPay: order.AcctPay, PsnCashpay: order.PsnCashPay, HiPaymtd: "1", Hsorg: miConfig.InsuplcAdmdvs, HsorgOpter: miConfig.InsuplcAdmdvs, MedinsFillPsn: curRoles.UserName, MedinsFillDept: miConfig.OrgName, IptMedType: "2", } struct4101.SetlBegnDate = order.SetlTime struct4101.SetlEndDate = order.SetlTime time_arr := strings.Split(order.SetlTime, " ") struct4101.AdmTime = time_arr[0] struct4101.AdmEndTime = time_arr[0] //var rf []CustomFundPay //json.Unmarshal([]byte(order.SetlDetail), &rf) // //var tempFunPays []service.CustomStruct //for _, item := range rf { // var tempFunPay service.CustomStruct // tempFunPay.FundPayamt = item.FundPayamt // tempFunPay.FundPayType = item.FundPayType // tempFunPays = append(tempFunPays, tempFunPay) //} //struct4101.CustomStruct = tempFunPays var tempDiaginfos []service.DiaginfoStructTwo var tempOpspdiseinfo2 service.OpspdiseinfoStruct var tempOpspdiseinfos []service.OpspdiseinfoStruct diagnosis_ids := strings.Split(his.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 { if index == 0 { var tempDiaginfo service.DiaginfoStructTwo tempDiaginfo.DiagCode = item.CountryCode tempDiaginfo.DiagName = item.CountryContentName tempDiaginfo.DiagType = "1" tempDiaginfo.MaindiagFlag = "1" tempDiaginfos = append(tempDiaginfos, tempDiaginfo) } else { var tempDiaginfo service.DiaginfoStructTwo tempDiaginfo.DiagCode = item.CountryCode tempDiaginfo.DiagName = item.CountryContentName tempDiaginfo.DiagType = "1" tempDiaginfo.MaindiagFlag = "0" tempDiaginfos = append(tempDiaginfos, tempDiaginfo) } } struct4101.Diseinfo = tempDiaginfos sickConfigTwo, _ := service.FindSickById(his.SickType) tempOpspdiseinfo2.DiagCode = sickConfigTwo.ContentCode tempOpspdiseinfo2.DiagName = sickConfigTwo.CountryContentName tempOpspdiseinfo2.OprnOprtCode = sickConfigTwo.ContentCode tempOpspdiseinfo2.OprnOprtName = sickConfigTwo.CountryContentName tempOpspdiseinfos = append(tempOpspdiseinfos, tempOpspdiseinfo2) struct4101.OpspdiseinfoStruct = tempOpspdiseinfos var iteminfo service.IteminfoStruct var bedCostTotal float64 = 0 //床位总费 var bedCostSelfTotal float64 = 0 //床位自费 var bedCostPartSelfTotal float64 = 0 //床位部分项目自费 var operationCostTotal float64 = 0 //手术费 var operationCostSelfTotal float64 = 0 //手术费 var operationCostPartSelfTotal float64 = 0 //手术费 var otherCostTotal float64 = 0 //其他费用 var otherCostSelfTotal float64 = 0 //其他费用 var otherCostPartSelfTotal float64 = 0 //其他费用 var materialCostTotal float64 = 0 //材料费 var materialCostSelfTotal float64 = 0 //材料费 var materialCostPartSelfTotal float64 = 0 //材料费 var westernMedicineCostTotal float64 = 0 //西药费 var westernMedicineCostSelfTotal float64 = 0 //西药费 var westernMedicineCostPartSelfTotal float64 = 0 //西药费 var chineseTraditionalMedicineCostTotal float64 = 0 //中成药 var chineseTraditionalMedicineCostSelfTotal float64 = 0 //中成药 var chineseTraditionalMedicineCostPartSelfTotal float64 = 0 //中成药 var checkCostTotal float64 = 0 //检查费 var checkCostSelfTotal float64 = 0 //检查费 var checkCostPartSelfTotal float64 = 0 //检查费 var laboratoryCostTotal float64 = 0 //化验费 var laboratoryCostSelfTotal float64 = 0 //化验费 var laboratoryCostPartSelfTotal float64 = 0 //化验费 var treatCostTotal float64 = 0 //治疗费用 var treatCostSelfTotal float64 = 0 //治疗费用 var treatCostPartSelfTotal float64 = 0 //治疗费用 decimal.DivisionPrecision = 2 var bed_fulamt_ownpay_amt float64 = 0 var operation_fulamt_ownpay_amt float64 = 0 var other_fulamt_ownpay_amt float64 = 0 var westernMedicine_fulamt_ownpay_amt float64 = 0 var chineseTraditional_fulamt_ownpay_amt float64 = 0 var check_fulamt_ownpay_amt float64 = 0 var material_fulamt_ownpay_amt float64 = 0 var laboratory_fulamt_ownpay_amt float64 = 0 var treat_fulamt_ownpay_amt float64 = 0 var bed_claa_sunmfee float64 = 0 var bed_clab_amt float64 = 0 var bed_other_amt float64 = 0 var operation_claa_sunmfee float64 = 0 var operation_clab_amt float64 = 0 var operation_other_amt float64 = 0 var other_claa_sunmfee float64 = 0 var other_clab_amt float64 = 0 var other_other_amt float64 = 0 var westernMedicine_claa_sunmfee float64 = 0 var westernMedicine_clab_amt float64 = 0 var westernMedicine_other_amt float64 = 0 var chineseTraditional_claa_sunmfee float64 = 0 var chineseTraditional_clab_amt float64 = 0 var chineseTraditional_other_amt float64 = 0 var check_claa_sunmfee float64 = 0 var check_clab_amt float64 = 0 var check_other_amt float64 = 0 var material_claa_sunmfee float64 = 0 var material_clab_amt float64 = 0 var material_other_amt float64 = 0 var laboratory_claa_sunmfee float64 = 0 var laboratory_clab_amt float64 = 0 var laboratory_other_amt float64 = 0 var treat_claa_sunmfee float64 = 0 var treat_clab_amt float64 = 0 var treat_other_amt float64 = 0 for _, item := range order.HisOrderInfo { if item.MedChrgitmType == "01" { //床位费 bedCostTotal, _ = decimal.NewFromFloat(bedCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() bedCostSelfTotal, _ = decimal.NewFromFloat(bedCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() bedCostPartSelfTotal, _ = decimal.NewFromFloat(bedCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() bed_fulamt_ownpay_amt, _ = decimal.NewFromFloat(bed_fulamt_ownpay_amt).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64() if item.ChrgitmLv == "1" { bed_claa_sunmfee, _ = decimal.NewFromFloat(bed_claa_sunmfee).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() } if item.ChrgitmLv == "2" { bed_clab_amt, _ = decimal.NewFromFloat(bed_clab_amt).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() } if item.ChrgitmLv == "3" { bed_other_amt, _ = decimal.NewFromFloat(bed_other_amt).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() } } if item.MedChrgitmType == "03" { //检查费 checkCostTotal, _ = decimal.NewFromFloat(checkCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() checkCostSelfTotal, _ = decimal.NewFromFloat(checkCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() checkCostPartSelfTotal, _ = decimal.NewFromFloat(checkCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() check_fulamt_ownpay_amt, _ = decimal.NewFromFloat(check_fulamt_ownpay_amt).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64() if item.ChrgitmLv == "1" { check_claa_sunmfee, _ = decimal.NewFromFloat(check_claa_sunmfee).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() } if item.ChrgitmLv == "2" { check_clab_amt, _ = decimal.NewFromFloat(check_clab_amt).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() } if item.ChrgitmLv == "3" { check_other_amt, _ = decimal.NewFromFloat(check_other_amt).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() } } if item.MedChrgitmType == "04" { //化验费 laboratoryCostTotal, _ = decimal.NewFromFloat(laboratoryCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() laboratoryCostSelfTotal, _ = decimal.NewFromFloat(laboratoryCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() laboratoryCostPartSelfTotal, _ = decimal.NewFromFloat(laboratoryCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() laboratory_fulamt_ownpay_amt, _ = decimal.NewFromFloat(laboratory_fulamt_ownpay_amt).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64() if item.ChrgitmLv == "1" { laboratory_claa_sunmfee, _ = decimal.NewFromFloat(laboratory_claa_sunmfee).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() } if item.ChrgitmLv == "2" { laboratory_clab_amt, _ = decimal.NewFromFloat(laboratory_clab_amt).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() } if item.ChrgitmLv == "3" { laboratory_other_amt, _ = decimal.NewFromFloat(laboratory_other_amt).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() } } if item.MedChrgitmType == "05" { //治疗费 treatCostTotal, _ = decimal.NewFromFloat(treatCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() treatCostSelfTotal, _ = decimal.NewFromFloat(treatCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() treatCostPartSelfTotal, _ = decimal.NewFromFloat(treatCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() treat_fulamt_ownpay_amt, _ = decimal.NewFromFloat(treat_fulamt_ownpay_amt).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64() if item.ChrgitmLv == "1" { treat_claa_sunmfee, _ = decimal.NewFromFloat(treat_claa_sunmfee).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() } if item.ChrgitmLv == "2" { treat_clab_amt, _ = decimal.NewFromFloat(treat_clab_amt).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() } if item.ChrgitmLv == "3" { treat_other_amt, _ = decimal.NewFromFloat(treat_other_amt).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() } } if item.MedChrgitmType == "06" { //手术费 operationCostTotal, _ = decimal.NewFromFloat(operationCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() operationCostSelfTotal, _ = decimal.NewFromFloat(operationCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() operationCostPartSelfTotal, _ = decimal.NewFromFloat(operationCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() operation_fulamt_ownpay_amt, _ = decimal.NewFromFloat(operation_fulamt_ownpay_amt).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64() if item.ChrgitmLv == "1" { operation_claa_sunmfee, _ = decimal.NewFromFloat(operation_claa_sunmfee).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() } if item.ChrgitmLv == "2" { operation_clab_amt, _ = decimal.NewFromFloat(operation_clab_amt).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() } if item.ChrgitmLv == "3" { operation_other_amt, _ = decimal.NewFromFloat(operation_other_amt).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() } } if item.MedChrgitmType == "08" { //材料费 materialCostTotal, _ = decimal.NewFromFloat(materialCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() materialCostSelfTotal, _ = decimal.NewFromFloat(materialCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() materialCostPartSelfTotal, _ = decimal.NewFromFloat(materialCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() material_fulamt_ownpay_amt, _ = decimal.NewFromFloat(material_fulamt_ownpay_amt).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64() if item.ChrgitmLv == "1" { material_claa_sunmfee, _ = decimal.NewFromFloat(material_claa_sunmfee).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() } if item.ChrgitmLv == "2" { material_clab_amt, _ = decimal.NewFromFloat(material_clab_amt).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() } if item.ChrgitmLv == "3" { material_other_amt, _ = decimal.NewFromFloat(material_other_amt).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() } } if item.MedChrgitmType == "09" { //西药费 westernMedicineCostTotal, _ = decimal.NewFromFloat(westernMedicineCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() westernMedicineCostSelfTotal, _ = decimal.NewFromFloat(westernMedicineCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() westernMedicineCostPartSelfTotal, _ = decimal.NewFromFloat(westernMedicineCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() westernMedicine_fulamt_ownpay_amt, _ = decimal.NewFromFloat(westernMedicine_fulamt_ownpay_amt).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64() if item.ChrgitmLv == "1" { westernMedicine_claa_sunmfee, _ = decimal.NewFromFloat(westernMedicine_claa_sunmfee).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() } if item.ChrgitmLv == "2" { westernMedicine_clab_amt, _ = decimal.NewFromFloat(westernMedicine_clab_amt).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() } if item.ChrgitmLv == "3" { westernMedicine_other_amt, _ = decimal.NewFromFloat(westernMedicine_other_amt).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() } } if item.MedChrgitmType == "11" { //中成费 chineseTraditionalMedicineCostTotal, _ = decimal.NewFromFloat(chineseTraditionalMedicineCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() chineseTraditionalMedicineCostSelfTotal, _ = decimal.NewFromFloat(chineseTraditionalMedicineCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() chineseTraditionalMedicineCostPartSelfTotal, _ = decimal.NewFromFloat(chineseTraditionalMedicineCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() chineseTraditional_fulamt_ownpay_amt, _ = decimal.NewFromFloat(chineseTraditional_fulamt_ownpay_amt).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64() if item.ChrgitmLv == "1" { chineseTraditional_claa_sunmfee, _ = decimal.NewFromFloat(chineseTraditional_claa_sunmfee).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() } if item.ChrgitmLv == "2" { chineseTraditional_clab_amt, _ = decimal.NewFromFloat(chineseTraditional_clab_amt).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() } if item.ChrgitmLv == "3" { chineseTraditional_other_amt, _ = decimal.NewFromFloat(chineseTraditional_other_amt).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() } } if item.MedChrgitmType == "14" { //其他费 otherCostTotal, _ = decimal.NewFromFloat(otherCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() otherCostSelfTotal, _ = decimal.NewFromFloat(otherCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() otherCostPartSelfTotal, _ = decimal.NewFromFloat(otherCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() other_fulamt_ownpay_amt, _ = decimal.NewFromFloat(other_fulamt_ownpay_amt).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64() if item.ChrgitmLv == "1" { other_claa_sunmfee, _ = decimal.NewFromFloat(other_claa_sunmfee).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() } if item.ChrgitmLv == "2" { other_clab_amt, _ = decimal.NewFromFloat(other_clab_amt).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() } if item.ChrgitmLv == "3" { other_other_amt, _ = decimal.NewFromFloat(other_other_amt).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() } } } var iteminfoStructs []service.IteminfoStruct if bedCostTotal != 0 { iteminfo.MedChrgitm = "01" iteminfo.FulamtOwnpayAmt = bed_fulamt_ownpay_amt iteminfo.Amt = bedCostTotal iteminfo.ClaaSumfee = bed_claa_sunmfee iteminfo.ClabAmt = bed_clab_amt iteminfo.OthAmt = bed_other_amt iteminfoStructs = append(iteminfoStructs, iteminfo) } if checkCostTotal != 0 { iteminfo.MedChrgitm = "03" iteminfo.FulamtOwnpayAmt = check_fulamt_ownpay_amt iteminfo.Amt = checkCostTotal iteminfo.ClaaSumfee = check_claa_sunmfee iteminfo.ClabAmt = check_clab_amt iteminfo.OthAmt = check_other_amt iteminfoStructs = append(iteminfoStructs, iteminfo) } if laboratoryCostTotal != 0 { iteminfo.MedChrgitm = "04" iteminfo.FulamtOwnpayAmt = laboratory_fulamt_ownpay_amt iteminfo.Amt = laboratoryCostTotal iteminfo.ClaaSumfee = laboratory_claa_sunmfee iteminfo.ClabAmt = laboratory_clab_amt iteminfo.OthAmt = laboratory_other_amt iteminfoStructs = append(iteminfoStructs, iteminfo) //struct4101.IteminfoStruct = append(struct4101.IteminfoStruct, iteminfo) } if treatCostTotal != 0 { iteminfo.MedChrgitm = "05" iteminfo.FulamtOwnpayAmt = treat_fulamt_ownpay_amt iteminfo.Amt = treatCostTotal iteminfo.ClaaSumfee = treat_claa_sunmfee iteminfo.ClabAmt = treat_clab_amt iteminfo.OthAmt = treat_other_amt iteminfoStructs = append(iteminfoStructs, iteminfo) //(struct4101.IteminfoStruct, iteminfo) //struct4101.IteminfoStruct = append(struct4101.IteminfoStruct, iteminfo) } if operationCostTotal != 0 { iteminfo.MedChrgitm = "06" iteminfo.FulamtOwnpayAmt = bed_fulamt_ownpay_amt iteminfo.Amt = operationCostTotal iteminfo.ClaaSumfee = operation_claa_sunmfee iteminfo.ClabAmt = operation_clab_amt iteminfo.OthAmt = operation_other_amt //struct4101.IteminfoStruct = append(struct4101.IteminfoStruct, iteminfo) iteminfoStructs = append(iteminfoStructs, iteminfo) } if materialCostTotal != 0 { iteminfo.MedChrgitm = "08" iteminfo.FulamtOwnpayAmt = material_fulamt_ownpay_amt iteminfo.Amt = materialCostTotal iteminfo.ClaaSumfee = material_claa_sunmfee iteminfo.ClabAmt = material_clab_amt iteminfo.OthAmt = material_other_amt //struct4101.IteminfoStruct = append(struct4101.IteminfoStruct, iteminfo) iteminfoStructs = append(iteminfoStructs, iteminfo) } if westernMedicineCostTotal != 0 { iteminfo.MedChrgitm = "09" iteminfo.FulamtOwnpayAmt = westernMedicine_fulamt_ownpay_amt iteminfo.Amt = westernMedicineCostTotal iteminfo.ClaaSumfee = westernMedicine_claa_sunmfee iteminfo.ClabAmt = westernMedicine_clab_amt iteminfo.OthAmt = westernMedicine_other_amt //struct4101.IteminfoStruct = append(struct4101.IteminfoStruct, iteminfo) iteminfoStructs = append(iteminfoStructs, iteminfo) } if chineseTraditionalMedicineCostTotal != 0 { iteminfo.MedChrgitm = "11" iteminfo.FulamtOwnpayAmt = westernMedicine_fulamt_ownpay_amt iteminfo.Amt = westernMedicineCostTotal iteminfo.ClaaSumfee = westernMedicine_claa_sunmfee iteminfo.ClabAmt = westernMedicine_clab_amt iteminfo.OthAmt = westernMedicine_other_amt //struct4101.IteminfoStruct = append(struct4101.IteminfoStruct, iteminfo) iteminfoStructs = append(iteminfoStructs, iteminfo) } if otherCostTotal != 0 { iteminfo.MedChrgitm = "14" iteminfo.FulamtOwnpayAmt = other_fulamt_ownpay_amt iteminfo.Amt = otherCostTotal iteminfo.ClaaSumfee = other_claa_sunmfee iteminfo.ClabAmt = other_clab_amt iteminfo.OthAmt = other_other_amt //struct4101.IteminfoStruct = append(struct4101.IteminfoStruct, iteminfo) iteminfoStructs = append(iteminfoStructs, iteminfo) } struct4101.IteminfoStruct = iteminfoStructs struct4101.Ntly = "中国" struct4101.AdmCaty = "A03.06" struct4101.DoctorName = doctor.UserName struct4101.DoctorCode = doctor.DoctorNumber var res ResultSeventeen if miConfig.MdtrtareaAdmvs == "320921" || miConfig.MdtrtareaAdmvs == "320982" { struct4101.BillCode = order.Number struct4101.BillNo = order.SetlId var resOther ResultSeventeenOther var pp models.PublicParams pp.InsuplcAdmdvs = miConfig.InsuplcAdmdvs pp.MdtrtareaAdmvs = miConfig.MdtrtareaAdmvs pp.FixmedinsName = miConfig.OrgName pp.FixmedinsCode = miConfig.Code pp.RequestUrl = miConfig.Url pp.Cainfo = miConfig.Cainfo pp.SecretKey = miConfig.SecretKey pp.AccessKey = miConfig.AccessKey pp.OpterName = curRoles.UserName client := &http.Client{} var req *http.Request data := make(map[string]interface{}) data["struct4101"] = struct4101 data["pp"] = pp bytesData, _ := json.Marshal(data) if miConfig.MdtrtareaAdmvs == "320921" { req, _ = http.NewRequest("POST", "http://192.168.2.3:9532/"+"jsyb/4101", bytes.NewReader(bytesData)) } else { req, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/4101", 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{})["request_log"].(map[string]interface{}) userJSONBytes, _ := json.Marshal(respJSON) fmt.Println("log") fmt.Println(string(userJSONBytes)) if err := json.Unmarshal(userJSONBytes, &resOther); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res.InfRefmsgid = resOther.InfRefmsgid res.Output = resOther.Output res.ErrMsg = resOther.ErrMsg infocode, _ := strconv.ParseInt(resOther.Infcode, 10, 64) res.Infcode = infocode } else if miConfig.MdtrtareaAdmvs == "360302" { var pp models.PublicParams pp.InsuplcAdmdvs = his.InsuplcAdmdvs pp.MdtrtareaAdmvs = miConfig.MdtrtareaAdmvs pp.FixmedinsName = miConfig.OrgName pp.FixmedinsCode = miConfig.Code pp.RequestUrl = miConfig.Url pp.Cainfo = miConfig.Cainfo pp.SecretKey = miConfig.SecretKey pp.AccessKey = miConfig.AccessKey pp.OpterName = curRoles.UserName utils.ErrorLog("解析失败:%v", his.InsuplcAdmdvs) result, _ := service.Jxyb4101(struct4101, pp) var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } userJSONBytes, _ := json.Marshal(dat) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "361025" { var pp models.PublicParams pp.InsuplcAdmdvs = his.InsuplcAdmdvs pp.MdtrtareaAdmvs = miConfig.MdtrtareaAdmvs pp.FixmedinsName = miConfig.OrgName pp.FixmedinsCode = miConfig.Code pp.RequestUrl = miConfig.Url pp.Cainfo = miConfig.Cainfo pp.SecretKey = miConfig.SecretKey pp.AccessKey = miConfig.AccessKey pp.OpterName = curRoles.UserName utils.ErrorLog("解析失败:%v", his.InsuplcAdmdvs) result, _ := service.Jxyb4101(struct4101, pp) var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } userJSONBytes, _ := json.Marshal(dat) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "360100" { var pp models.PublicParams pp.InsuplcAdmdvs = his.InsuplcAdmdvs pp.MdtrtareaAdmvs = miConfig.MdtrtareaAdmvs pp.FixmedinsName = miConfig.OrgName pp.FixmedinsCode = miConfig.Code pp.RequestUrl = miConfig.Url pp.Cainfo = miConfig.Cainfo pp.SecretKey = miConfig.SecretKey pp.AccessKey = miConfig.AccessKey pp.OpterName = curRoles.UserName utils.ErrorLog("解析失败:%v", his.InsuplcAdmdvs) result, _ := service.Jxyb4101(struct4101, pp) var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } userJSONBytes, _ := json.Marshal(dat) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "430800" { var pp models.PublicParams pp.InsuplcAdmdvs = miConfig.InsuplcAdmdvs pp.MdtrtareaAdmvs = miConfig.MdtrtareaAdmvs pp.FixmedinsName = miConfig.OrgName pp.FixmedinsCode = miConfig.Code pp.RequestUrl = miConfig.Url pp.Cainfo = miConfig.Cainfo pp.SecretKey = miConfig.SecretKey pp.AccessKey = miConfig.AccessKey pp.OpterName = curRoles.UserName result, _ := service.Hnyb4101(struct4101, pp) var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } userJSONBytes, _ := json.Marshal(dat) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "150499" { var resOther ResultSeventeenOther var pp models.PublicParams pp.InsuplcAdmdvs = miConfig.InsuplcAdmdvs pp.MdtrtareaAdmvs = miConfig.MdtrtareaAdmvs pp.FixmedinsName = miConfig.OrgName pp.FixmedinsCode = miConfig.Code pp.RequestUrl = miConfig.Url pp.Cainfo = miConfig.Cainfo pp.SecretKey = miConfig.SecretKey pp.AccessKey = miConfig.AccessKey pp.OpterName = curRoles.UserName client := &http.Client{} var req *http.Request data := make(map[string]interface{}) data["struct4101"] = struct4101 data["pp"] = pp bytesData, _ := json.Marshal(data) req, _ = http.NewRequest("POST", "http://172.16.13.254:9532/"+"nmyb/4101", bytes.NewReader(bytesData)) resp, _ := client.Do(req) defer resp.Body.Close() body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) userJSONBytes, _ := json.Marshal(respJSON) if err := json.Unmarshal(userJSONBytes, &resOther); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res.InfRefmsgid = resOther.InfRefmsgid res.Output = resOther.Output res.ErrMsg = resOther.ErrMsg infocode, _ := strconv.ParseInt(resOther.Infcode, 10, 64) res.Infcode = infocode } else if miConfig.MdtrtareaAdmvs == "350500" { var pp models.PublicParams pp.InsuplcAdmdvs = miConfig.InsuplcAdmdvs pp.MdtrtareaAdmvs = miConfig.MdtrtareaAdmvs pp.FixmedinsName = miConfig.OrgName pp.FixmedinsCode = miConfig.Code pp.RequestUrl = miConfig.Url pp.Cainfo = miConfig.Cainfo pp.SecretKey = miConfig.SecretKey pp.AccessKey = miConfig.AccessKey pp.OpterName = curRoles.UserName result, requestLog, errMsgLog := service.Fjyb4101(struct4101, pp) fmt.Println(requestLog) fmt.Println(errMsgLog) saveLog(result, requestLog, "4101a", "上传清单") var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } userJSONBytes, _ := json.Marshal(dat) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "441799" { var pp models.PublicParams pp.InsuplcAdmdvs = miConfig.InsuplcAdmdvs pp.MdtrtareaAdmvs = miConfig.MdtrtareaAdmvs pp.FixmedinsName = miConfig.OrgName pp.FixmedinsCode = miConfig.Code pp.RequestUrl = miConfig.Url pp.Cainfo = miConfig.Cainfo pp.SecretKey = miConfig.SecretKey pp.AccessKey = miConfig.AccessKey pp.OpterName = curRoles.UserName client := &http.Client{} var req *http.Request data := make(map[string]interface{}) data["struct4101"] = struct4101 data["pp"] = pp bytesData, _ := json.Marshal(data) req, _ = http.NewRequest("POST", miConfig.Url+"gdyb/4101", bytes.NewReader(bytesData)) resp, _ := client.Do(req) defer resp.Body.Close() body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) userJSONBytes, _ := json.Marshal(respJSON) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else { result, _ := service.Gdyb4101(struct4101, miConfig.SecretKey, miConfig.OrgName, curRoles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.UserOrgId, admin_user_id) var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } userJSONBytes, _ := json.Marshal(dat) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } if res.Infcode != 0 { errlog := &models.HisOrderError{ UserOrgId: order.UserOrgId, Ctime: time.Now().Unix(), Mtime: time.Now().Unix(), ErrMsg: res.ErrMsg + "解析失败", Status: 1, PatientId: order.ID, Stage: 10485, } service.CreateErrMsgLog(errlog) continue //c.ServeSuccessJSON(map[string]interface{}{ // "failed_code": -10, // "msg": res.ErrMsg, //}) } else { //order.FaPiaoNumber = zero //order.FaPiaoCode = last_order.FaPiaoCode //service.UpdateOrder(order) hisFundSettleListResult := &models.HisFundSettleListResult{ Number: res.Output.SetlListId, Status: 1, Ctime: time.Now().Unix(), Mtime: time.Now().Unix(), UserOrgId: c.GetAdminUserInfo().CurrentOrgId, IsUpload: 1, OrderId: order.ID, } service.CreateUploadRecord(hisFundSettleListResult) continue } } } func (c *HisApiController) GetSettleList() { order_id, _ := c.GetInt64("order_id") admin_user_id, _ := c.GetInt64("admin_user_id") order, _ := service.GetHisOrderByIDTwo(order_id) roles, _ := service.GetDoctorListTwo(c.GetAdminUserInfo().CurrentOrgId) his, _ := service.GetHisPatientByNumber(order.MdtrtId) admin, _ := service.GetAdminUserByUserID(roles[0].AdminUserId) curRoles, _ := service.GetAdminUserInfoByID(c.GetAdminUserInfo().CurrentOrgId, admin_user_id) //depart, _ := service.GetDepartMentDetail(curRoles.DepartmentId) miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId) pre, _ := service.GetNewHisPrescriptionByNumber(order.Number) doctor, _ := service.GetAdminUserInfoByID(c.GetAdminUserInfo().CurrentOrgId, pre.Creator) if order.ID == 0 { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisOrderNoExistParamWrong) return } //last_order, _ := service.GetLastHisOrder(c.GetAdminUserInfo().CurrentOrgId) //max_order, _ := service.GetLastHisOrderTwo(c.GetAdminUserInfo().CurrentOrgId) //count, _ := strconv.ParseInt(max_order.FaPiaoNumber, 10, 64) //fmt.Println(count) //var zero string //number := count + 1 //if number >= 1000 { // zero = "0000" + strconv.FormatInt(number, 10) //} else if number >= 10000 { // zero = "000" + strconv.FormatInt(number, 10) //} else if number >= 100000 { // zero = "00" + strconv.FormatInt(number, 10) //} else if number >= 1000000 { // zero = "0" + strconv.FormatInt(number, 10) //} else { // zero = strconv.FormatInt(number, 10) //} //fmt.Println(zero) struct4101 := service.Struct4101{ PsnNo: order.PsnNo, MdtrtId: order.MdtrtId, SetlId: order.SetlId, PsnName: order.PsnName, Gend: order.Gend, Brdy: his.Brdy, Age: his.Age, Naty: order.Naty, PatnCertType: "01", Certno: order.Certno, Prfs: "90", ConerName: roles[0].UserName, PatnRlts: "99", ConerAddr: miConfig.OrgName, ConerTel: admin.Mobile, HiType: order.Insutype, Insuplc: miConfig.InsuplcAdmdvs, MaindiagFlag: "1", BillCode: order.SetlId, BillNo: order.SetlId, BizSn: order.Number, PsnSelfPay: order.PsnPartAmt, PsnOwnPay: order.PsnPartAmt, AcctPay: order.AcctPay, PsnCashpay: order.PsnCashPay, HiPaymtd: "1", Hsorg: miConfig.InsuplcAdmdvs, HsorgOpter: miConfig.InsuplcAdmdvs, MedinsFillPsn: curRoles.UserName, MedinsFillDept: miConfig.OrgName, IptMedType: "2", } struct4101.SetlBegnDate = order.SetlTime struct4101.SetlEndDate = order.SetlTime time_arr := strings.Split(order.SetlTime, " ") struct4101.AdmTime = time_arr[0] struct4101.AdmEndTime = time_arr[0] // //var rf []CustomFundPay //json.Unmarshal([]byte(order.SetlDetail), &rf) // //var tempFunPays []service.CustomStruct //for _, item := range rf { // var tempFunPay service.CustomStruct // tempFunPay.FundPayamt = item.FundPayamt // tempFunPay.FundPayType = item.FundPayType // tempFunPays = append(tempFunPays, tempFunPay) //} //struct4101.CustomStruct = tempFunPays var tempDiaginfos []service.DiaginfoStructTwo var tempOpspdiseinfo2 service.OpspdiseinfoStruct var tempOpspdiseinfos []service.OpspdiseinfoStruct diagnosis_ids := strings.Split(order.Diagnosis, ",") var config []*models.HisXtDiagnoseConfig for _, item := range diagnosis_ids { id, _ := strconv.ParseInt(item, 10, 64) diagnosisConfig, _ := service.FindDiagnoseById(id) config = append(config, &diagnosisConfig) } if miConfig.Code == "H15049901371" { //for _, item := range config { // if item.ID == 138 { diagnosisConfig, _ := service.FindDiagnoseById(138) var tempDiaginfo service.DiaginfoStructTwo tempDiaginfo.DiagCode = diagnosisConfig.CountryCode tempDiaginfo.DiagName = diagnosisConfig.CountryContentName tempDiaginfo.DiagType = "1" tempDiaginfo.MaindiagFlag = "1" tempDiaginfos = append(tempDiaginfos, tempDiaginfo) //} //} for _, item := range config { if item.ID != 138 { var tempDiaginfo service.DiaginfoStructTwo tempDiaginfo.DiagCode = item.CountryCode tempDiaginfo.DiagName = item.CountryContentName tempDiaginfo.DiagType = "1" tempDiaginfo.MaindiagFlag = "0" tempDiaginfos = append(tempDiaginfos, tempDiaginfo) } } } else { for index, item := range config { if index == 0 { var tempDiaginfo service.DiaginfoStructTwo tempDiaginfo.DiagCode = item.CountryCode tempDiaginfo.DiagName = item.CountryContentName tempDiaginfo.DiagType = "1" tempDiaginfo.MaindiagFlag = "1" tempDiaginfos = append(tempDiaginfos, tempDiaginfo) } else { var tempDiaginfo service.DiaginfoStructTwo tempDiaginfo.DiagCode = item.CountryCode tempDiaginfo.DiagName = item.CountryContentName tempDiaginfo.DiagType = "1" tempDiaginfo.MaindiagFlag = "0" tempDiaginfos = append(tempDiaginfos, tempDiaginfo) } } } struct4101.Diseinfo = tempDiaginfos sickConfigTwo, _ := service.FindSickById(his.SickType) tempOpspdiseinfo2.DiagCode = sickConfigTwo.ContentCode tempOpspdiseinfo2.DiagName = sickConfigTwo.CountryContentName tempOpspdiseinfo2.OprnOprtCode = sickConfigTwo.ContentCode tempOpspdiseinfo2.OprnOprtName = sickConfigTwo.CountryContentName tempOpspdiseinfos = append(tempOpspdiseinfos, tempOpspdiseinfo2) struct4101.OpspdiseinfoStruct = tempOpspdiseinfos var iteminfo service.IteminfoStruct var bedCostTotal float64 = 0 //床位总费 var bedCostSelfTotal float64 = 0 //床位自费 var bedCostPartSelfTotal float64 = 0 //床位部分项目自费 var operationCostTotal float64 = 0 //手术费 var operationCostSelfTotal float64 = 0 //手术费 var operationCostPartSelfTotal float64 = 0 //手术费 var otherCostTotal float64 = 0 //其他费用 var otherCostSelfTotal float64 = 0 //其他费用 var otherCostPartSelfTotal float64 = 0 //其他费用 var materialCostTotal float64 = 0 //材料费 var materialCostSelfTotal float64 = 0 //材料费 var materialCostPartSelfTotal float64 = 0 //材料费 var westernMedicineCostTotal float64 = 0 //西药费 var westernMedicineCostSelfTotal float64 = 0 //西药费 var westernMedicineCostPartSelfTotal float64 = 0 //西药费 var chineseTraditionalMedicineCostTotal float64 = 0 //中成药 var chineseTraditionalMedicineCostSelfTotal float64 = 0 //中成药 var chineseTraditionalMedicineCostPartSelfTotal float64 = 0 //中成药 var checkCostTotal float64 = 0 //检查费 var checkCostSelfTotal float64 = 0 //检查费 var checkCostPartSelfTotal float64 = 0 //检查费 var laboratoryCostTotal float64 = 0 //化验费 var laboratoryCostSelfTotal float64 = 0 //化验费 var laboratoryCostPartSelfTotal float64 = 0 //化验费 var treatCostTotal float64 = 0 //治疗费用 var treatCostSelfTotal float64 = 0 //治疗费用 var treatCostPartSelfTotal float64 = 0 //治疗费用 decimal.DivisionPrecision = 2 var bed_fulamt_ownpay_amt float64 = 0 var operation_fulamt_ownpay_amt float64 = 0 var other_fulamt_ownpay_amt float64 = 0 var westernMedicine_fulamt_ownpay_amt float64 = 0 var chineseTraditional_fulamt_ownpay_amt float64 = 0 var check_fulamt_ownpay_amt float64 = 0 var material_fulamt_ownpay_amt float64 = 0 var laboratory_fulamt_ownpay_amt float64 = 0 var treat_fulamt_ownpay_amt float64 = 0 var bed_claa_sunmfee float64 = 0 var bed_clab_amt float64 = 0 var bed_other_amt float64 = 0 var operation_claa_sunmfee float64 = 0 var operation_clab_amt float64 = 0 var operation_other_amt float64 = 0 var other_claa_sunmfee float64 = 0 var other_clab_amt float64 = 0 var other_other_amt float64 = 0 var westernMedicine_claa_sunmfee float64 = 0 var westernMedicine_clab_amt float64 = 0 var westernMedicine_other_amt float64 = 0 var chineseTraditional_claa_sunmfee float64 = 0 var chineseTraditional_clab_amt float64 = 0 var chineseTraditional_other_amt float64 = 0 var check_claa_sunmfee float64 = 0 var check_clab_amt float64 = 0 var check_other_amt float64 = 0 var material_claa_sunmfee float64 = 0 var material_clab_amt float64 = 0 var material_other_amt float64 = 0 var laboratory_claa_sunmfee float64 = 0 var laboratory_clab_amt float64 = 0 var laboratory_other_amt float64 = 0 var treat_claa_sunmfee float64 = 0 var treat_clab_amt float64 = 0 var treat_other_amt float64 = 0 for _, item := range order.HisOrderInfo { if item.MedChrgitmType == "01" { //床位费 bedCostTotal, _ = decimal.NewFromFloat(bedCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() bedCostSelfTotal, _ = decimal.NewFromFloat(bedCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() bedCostPartSelfTotal, _ = decimal.NewFromFloat(bedCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() bed_fulamt_ownpay_amt, _ = decimal.NewFromFloat(bed_fulamt_ownpay_amt).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64() if item.ChrgitmLv == "1" { bed_claa_sunmfee, _ = decimal.NewFromFloat(bed_claa_sunmfee).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() } if item.ChrgitmLv == "2" { bed_clab_amt, _ = decimal.NewFromFloat(bed_clab_amt).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() } if item.ChrgitmLv == "3" { bed_other_amt, _ = decimal.NewFromFloat(bed_other_amt).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() } } if item.MedChrgitmType == "03" { //检查费 checkCostTotal, _ = decimal.NewFromFloat(checkCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() checkCostSelfTotal, _ = decimal.NewFromFloat(checkCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() checkCostPartSelfTotal, _ = decimal.NewFromFloat(checkCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() check_fulamt_ownpay_amt, _ = decimal.NewFromFloat(check_fulamt_ownpay_amt).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64() if item.ChrgitmLv == "1" { check_claa_sunmfee, _ = decimal.NewFromFloat(check_claa_sunmfee).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() } if item.ChrgitmLv == "2" { check_clab_amt, _ = decimal.NewFromFloat(check_clab_amt).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() } if item.ChrgitmLv == "3" { check_other_amt, _ = decimal.NewFromFloat(check_other_amt).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() } } if item.MedChrgitmType == "04" { //化验费 laboratoryCostTotal, _ = decimal.NewFromFloat(laboratoryCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() laboratoryCostSelfTotal, _ = decimal.NewFromFloat(laboratoryCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() laboratoryCostPartSelfTotal, _ = decimal.NewFromFloat(laboratoryCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() laboratory_fulamt_ownpay_amt, _ = decimal.NewFromFloat(laboratory_fulamt_ownpay_amt).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64() if item.ChrgitmLv == "1" { laboratory_claa_sunmfee, _ = decimal.NewFromFloat(laboratory_claa_sunmfee).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() } if item.ChrgitmLv == "2" { laboratory_clab_amt, _ = decimal.NewFromFloat(laboratory_clab_amt).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() } if item.ChrgitmLv == "3" { laboratory_other_amt, _ = decimal.NewFromFloat(laboratory_other_amt).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() } } if item.MedChrgitmType == "05" { //治疗费 treatCostTotal, _ = decimal.NewFromFloat(treatCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() treatCostSelfTotal, _ = decimal.NewFromFloat(treatCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() treatCostPartSelfTotal, _ = decimal.NewFromFloat(treatCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() treat_fulamt_ownpay_amt, _ = decimal.NewFromFloat(treat_fulamt_ownpay_amt).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64() if item.ChrgitmLv == "1" { treat_claa_sunmfee, _ = decimal.NewFromFloat(treat_claa_sunmfee).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() } if item.ChrgitmLv == "2" { treat_clab_amt, _ = decimal.NewFromFloat(treat_clab_amt).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() } if item.ChrgitmLv == "3" { treat_other_amt, _ = decimal.NewFromFloat(treat_other_amt).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() } } if item.MedChrgitmType == "06" { //手术费 operationCostTotal, _ = decimal.NewFromFloat(operationCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() operationCostSelfTotal, _ = decimal.NewFromFloat(operationCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() operationCostPartSelfTotal, _ = decimal.NewFromFloat(operationCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() operation_fulamt_ownpay_amt, _ = decimal.NewFromFloat(operation_fulamt_ownpay_amt).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64() if item.ChrgitmLv == "1" { operation_claa_sunmfee, _ = decimal.NewFromFloat(operation_claa_sunmfee).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() } if item.ChrgitmLv == "2" { operation_clab_amt, _ = decimal.NewFromFloat(operation_clab_amt).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() } if item.ChrgitmLv == "3" { operation_other_amt, _ = decimal.NewFromFloat(operation_other_amt).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() } } if item.MedChrgitmType == "08" { //材料费 materialCostTotal, _ = decimal.NewFromFloat(materialCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() materialCostSelfTotal, _ = decimal.NewFromFloat(materialCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() materialCostPartSelfTotal, _ = decimal.NewFromFloat(materialCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() material_fulamt_ownpay_amt, _ = decimal.NewFromFloat(material_fulamt_ownpay_amt).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64() if item.ChrgitmLv == "1" { material_claa_sunmfee, _ = decimal.NewFromFloat(material_claa_sunmfee).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() } if item.ChrgitmLv == "2" { material_clab_amt, _ = decimal.NewFromFloat(material_clab_amt).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() } if item.ChrgitmLv == "3" { material_other_amt, _ = decimal.NewFromFloat(material_other_amt).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() } } if item.MedChrgitmType == "09" { //西药费 westernMedicineCostTotal, _ = decimal.NewFromFloat(westernMedicineCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() westernMedicineCostSelfTotal, _ = decimal.NewFromFloat(westernMedicineCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() westernMedicineCostPartSelfTotal, _ = decimal.NewFromFloat(westernMedicineCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() westernMedicine_fulamt_ownpay_amt, _ = decimal.NewFromFloat(westernMedicine_fulamt_ownpay_amt).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64() if item.ChrgitmLv == "1" { westernMedicine_claa_sunmfee, _ = decimal.NewFromFloat(westernMedicine_claa_sunmfee).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() } if item.ChrgitmLv == "2" { westernMedicine_clab_amt, _ = decimal.NewFromFloat(westernMedicine_clab_amt).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() } if item.ChrgitmLv == "3" { westernMedicine_other_amt, _ = decimal.NewFromFloat(westernMedicine_other_amt).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() } } if item.MedChrgitmType == "11" { //中成费 chineseTraditionalMedicineCostTotal, _ = decimal.NewFromFloat(chineseTraditionalMedicineCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() chineseTraditionalMedicineCostSelfTotal, _ = decimal.NewFromFloat(chineseTraditionalMedicineCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() chineseTraditionalMedicineCostPartSelfTotal, _ = decimal.NewFromFloat(chineseTraditionalMedicineCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() chineseTraditional_fulamt_ownpay_amt, _ = decimal.NewFromFloat(chineseTraditional_fulamt_ownpay_amt).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64() if item.ChrgitmLv == "1" { chineseTraditional_claa_sunmfee, _ = decimal.NewFromFloat(chineseTraditional_claa_sunmfee).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() } if item.ChrgitmLv == "2" { chineseTraditional_clab_amt, _ = decimal.NewFromFloat(chineseTraditional_clab_amt).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() } if item.ChrgitmLv == "3" { chineseTraditional_other_amt, _ = decimal.NewFromFloat(chineseTraditional_other_amt).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() } } if item.MedChrgitmType == "14" { //其他费 otherCostTotal, _ = decimal.NewFromFloat(otherCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() otherCostSelfTotal, _ = decimal.NewFromFloat(otherCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() otherCostPartSelfTotal, _ = decimal.NewFromFloat(otherCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() other_fulamt_ownpay_amt, _ = decimal.NewFromFloat(other_fulamt_ownpay_amt).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64() if item.ChrgitmLv == "1" { other_claa_sunmfee, _ = decimal.NewFromFloat(other_claa_sunmfee).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() } if item.ChrgitmLv == "2" { other_clab_amt, _ = decimal.NewFromFloat(other_clab_amt).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() } if item.ChrgitmLv == "3" { other_other_amt, _ = decimal.NewFromFloat(other_other_amt).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() } } } var iteminfoStructs []service.IteminfoStruct if bedCostTotal != 0 { iteminfo.MedChrgitm = "01" iteminfo.FulamtOwnpayAmt = bed_fulamt_ownpay_amt iteminfo.Amt = bedCostTotal iteminfo.ClaaSumfee = bed_claa_sunmfee iteminfo.ClabAmt = bed_clab_amt iteminfo.OthAmt = bed_other_amt iteminfoStructs = append(iteminfoStructs, iteminfo) } if checkCostTotal != 0 { iteminfo.MedChrgitm = "03" iteminfo.FulamtOwnpayAmt = check_fulamt_ownpay_amt iteminfo.Amt = checkCostTotal iteminfo.ClaaSumfee = check_claa_sunmfee iteminfo.ClabAmt = check_clab_amt iteminfo.OthAmt = check_other_amt iteminfoStructs = append(iteminfoStructs, iteminfo) } if laboratoryCostTotal != 0 { iteminfo.MedChrgitm = "04" iteminfo.FulamtOwnpayAmt = laboratory_fulamt_ownpay_amt iteminfo.Amt = laboratoryCostTotal iteminfo.ClaaSumfee = laboratory_claa_sunmfee iteminfo.ClabAmt = laboratory_clab_amt iteminfo.OthAmt = laboratory_other_amt iteminfoStructs = append(iteminfoStructs, iteminfo) //struct4101.IteminfoStruct = append(struct4101.IteminfoStruct, iteminfo) } if treatCostTotal != 0 { iteminfo.MedChrgitm = "05" iteminfo.FulamtOwnpayAmt = treat_fulamt_ownpay_amt iteminfo.Amt = treatCostTotal iteminfo.ClaaSumfee = treat_claa_sunmfee iteminfo.ClabAmt = treat_clab_amt iteminfo.OthAmt = treat_other_amt iteminfoStructs = append(iteminfoStructs, iteminfo) //(struct4101.IteminfoStruct, iteminfo) //struct4101.IteminfoStruct = append(struct4101.IteminfoStruct, iteminfo) } if operationCostTotal != 0 { iteminfo.MedChrgitm = "06" iteminfo.FulamtOwnpayAmt = bed_fulamt_ownpay_amt iteminfo.Amt = operationCostTotal iteminfo.ClaaSumfee = operation_claa_sunmfee iteminfo.ClabAmt = operation_clab_amt iteminfo.OthAmt = operation_other_amt //struct4101.IteminfoStruct = append(struct4101.IteminfoStruct, iteminfo) iteminfoStructs = append(iteminfoStructs, iteminfo) } if materialCostTotal != 0 { iteminfo.MedChrgitm = "08" iteminfo.FulamtOwnpayAmt = material_fulamt_ownpay_amt iteminfo.Amt = materialCostTotal iteminfo.ClaaSumfee = material_claa_sunmfee iteminfo.ClabAmt = material_clab_amt iteminfo.OthAmt = material_other_amt //struct4101.IteminfoStruct = append(struct4101.IteminfoStruct, iteminfo) iteminfoStructs = append(iteminfoStructs, iteminfo) } if westernMedicineCostTotal != 0 { iteminfo.MedChrgitm = "09" iteminfo.FulamtOwnpayAmt = westernMedicine_fulamt_ownpay_amt iteminfo.Amt = westernMedicineCostTotal iteminfo.ClaaSumfee = westernMedicine_claa_sunmfee iteminfo.ClabAmt = westernMedicine_clab_amt iteminfo.OthAmt = westernMedicine_other_amt //struct4101.IteminfoStruct = append(struct4101.IteminfoStruct, iteminfo) iteminfoStructs = append(iteminfoStructs, iteminfo) } if chineseTraditionalMedicineCostTotal != 0 { iteminfo.MedChrgitm = "11" iteminfo.FulamtOwnpayAmt = westernMedicine_fulamt_ownpay_amt iteminfo.Amt = westernMedicineCostTotal iteminfo.ClaaSumfee = westernMedicine_claa_sunmfee iteminfo.ClabAmt = westernMedicine_clab_amt iteminfo.OthAmt = westernMedicine_other_amt //struct4101.IteminfoStruct = append(struct4101.IteminfoStruct, iteminfo) iteminfoStructs = append(iteminfoStructs, iteminfo) } if otherCostTotal != 0 { iteminfo.MedChrgitm = "14" iteminfo.FulamtOwnpayAmt = other_fulamt_ownpay_amt iteminfo.Amt = otherCostTotal iteminfo.ClaaSumfee = other_claa_sunmfee iteminfo.ClabAmt = other_clab_amt iteminfo.OthAmt = other_other_amt //struct4101.IteminfoStruct = append(struct4101.IteminfoStruct, iteminfo) iteminfoStructs = append(iteminfoStructs, iteminfo) } struct4101.IteminfoStruct = iteminfoStructs struct4101.Ntly = "中国" struct4101.AdmCaty = "A03.06" struct4101.DoctorName = doctor.UserName struct4101.DoctorCode = doctor.DoctorNumber var res ResultSeventeen if miConfig.MdtrtareaAdmvs == "320921" || miConfig.MdtrtareaAdmvs == "320982" { struct4101.BillCode = order.Number struct4101.BillNo = order.SetlId var resOther ResultSeventeenOther var pp models.PublicParams pp.InsuplcAdmdvs = miConfig.InsuplcAdmdvs pp.MdtrtareaAdmvs = miConfig.MdtrtareaAdmvs pp.FixmedinsName = miConfig.OrgName pp.FixmedinsCode = miConfig.Code pp.RequestUrl = miConfig.Url pp.Cainfo = miConfig.Cainfo pp.SecretKey = miConfig.SecretKey pp.AccessKey = miConfig.AccessKey pp.OpterName = curRoles.UserName client := &http.Client{} var req *http.Request data := make(map[string]interface{}) data["struct4101"] = struct4101 data["pp"] = pp bytesData, _ := json.Marshal(data) if miConfig.MdtrtareaAdmvs == "320921" { req, _ = http.NewRequest("POST", "http://192.168.2.3:9532/"+"jsyb/4101", bytes.NewReader(bytesData)) } else { req, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/4101", 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{})["request_log"].(map[string]interface{}) userJSONBytes, _ := json.Marshal(respJSON) fmt.Println("log") fmt.Println(string(userJSONBytes)) if err := json.Unmarshal(userJSONBytes, &resOther); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res.InfRefmsgid = resOther.InfRefmsgid res.Output = resOther.Output res.ErrMsg = resOther.ErrMsg infocode, _ := strconv.ParseInt(resOther.Infcode, 10, 64) res.Infcode = infocode } else if miConfig.MdtrtareaAdmvs == "360302" { var pp models.PublicParams pp.InsuplcAdmdvs = his.InsuplcAdmdvs pp.MdtrtareaAdmvs = miConfig.MdtrtareaAdmvs pp.FixmedinsName = miConfig.OrgName pp.FixmedinsCode = miConfig.Code pp.RequestUrl = miConfig.Url pp.Cainfo = miConfig.Cainfo pp.SecretKey = miConfig.SecretKey pp.AccessKey = miConfig.AccessKey pp.OpterName = curRoles.UserName result, _ := service.Jxyb4101(struct4101, pp) var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } userJSONBytes, _ := json.Marshal(dat) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "361025" { var pp models.PublicParams pp.InsuplcAdmdvs = his.InsuplcAdmdvs pp.MdtrtareaAdmvs = miConfig.MdtrtareaAdmvs pp.FixmedinsName = miConfig.OrgName pp.FixmedinsCode = miConfig.Code pp.RequestUrl = miConfig.Url pp.Cainfo = miConfig.Cainfo pp.SecretKey = miConfig.SecretKey pp.AccessKey = miConfig.AccessKey pp.OpterName = curRoles.UserName result, _ := service.Jxyb4101(struct4101, pp) var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } userJSONBytes, _ := json.Marshal(dat) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "360100" { var pp models.PublicParams pp.InsuplcAdmdvs = his.InsuplcAdmdvs pp.MdtrtareaAdmvs = miConfig.MdtrtareaAdmvs pp.FixmedinsName = miConfig.OrgName pp.FixmedinsCode = miConfig.Code pp.RequestUrl = miConfig.Url pp.Cainfo = miConfig.Cainfo pp.SecretKey = miConfig.SecretKey pp.AccessKey = miConfig.AccessKey pp.OpterName = curRoles.UserName result, _ := service.Jxyb4101(struct4101, pp) var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } userJSONBytes, _ := json.Marshal(dat) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "430800" { var pp models.PublicParams pp.InsuplcAdmdvs = miConfig.InsuplcAdmdvs pp.MdtrtareaAdmvs = miConfig.MdtrtareaAdmvs pp.FixmedinsName = miConfig.OrgName pp.FixmedinsCode = miConfig.Code pp.RequestUrl = miConfig.Url pp.Cainfo = miConfig.Cainfo pp.SecretKey = miConfig.SecretKey pp.AccessKey = miConfig.AccessKey pp.OpterName = curRoles.UserName result, _ := service.Hnyb4101(struct4101, pp) var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } userJSONBytes, _ := json.Marshal(dat) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "150499" { var resOther ResultSeventeenOther var pp models.PublicParams pp.InsuplcAdmdvs = miConfig.InsuplcAdmdvs pp.MdtrtareaAdmvs = miConfig.MdtrtareaAdmvs pp.FixmedinsName = miConfig.OrgName pp.FixmedinsCode = miConfig.Code pp.RequestUrl = miConfig.Url pp.Cainfo = miConfig.Cainfo pp.SecretKey = miConfig.SecretKey pp.AccessKey = miConfig.AccessKey pp.OpterName = curRoles.UserName client := &http.Client{} var req *http.Request data := make(map[string]interface{}) data["struct4101"] = struct4101 data["pp"] = pp bytesData, _ := json.Marshal(data) req, _ = http.NewRequest("POST", "http://172.16.13.254:9532/"+"nmyb/4101", bytes.NewReader(bytesData)) resp, _ := client.Do(req) defer resp.Body.Close() body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) userJSONBytes, _ := json.Marshal(respJSON) if err := json.Unmarshal(userJSONBytes, &resOther); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res.InfRefmsgid = resOther.InfRefmsgid res.Output = resOther.Output res.ErrMsg = resOther.ErrMsg infocode, _ := strconv.ParseInt(resOther.Infcode, 10, 64) res.Infcode = infocode } else if miConfig.MdtrtareaAdmvs == "350500" { var pp models.PublicParams pp.InsuplcAdmdvs = miConfig.InsuplcAdmdvs pp.MdtrtareaAdmvs = miConfig.MdtrtareaAdmvs pp.FixmedinsName = miConfig.OrgName pp.FixmedinsCode = miConfig.Code pp.RequestUrl = miConfig.Url pp.Cainfo = miConfig.Cainfo pp.SecretKey = miConfig.SecretKey pp.AccessKey = miConfig.AccessKey pp.OpterName = curRoles.UserName result, requestLog, errMsgLog := service.Fjyb4101(struct4101, pp) fmt.Println(requestLog) fmt.Println(errMsgLog) saveLog(result, requestLog, "4101a", "上传清单") var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } userJSONBytes, _ := json.Marshal(dat) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "441799" { var pp models.PublicParams pp.InsuplcAdmdvs = miConfig.InsuplcAdmdvs pp.MdtrtareaAdmvs = miConfig.MdtrtareaAdmvs pp.FixmedinsName = miConfig.OrgName pp.FixmedinsCode = miConfig.Code pp.RequestUrl = miConfig.Url pp.Cainfo = miConfig.Cainfo pp.SecretKey = miConfig.SecretKey pp.AccessKey = miConfig.AccessKey pp.OpterName = curRoles.UserName client := &http.Client{} var req *http.Request data := make(map[string]interface{}) data["struct4101"] = struct4101 data["pp"] = pp bytesData, _ := json.Marshal(data) req, _ = http.NewRequest("POST", miConfig.Url+"gdyb/4101", bytes.NewReader(bytesData)) resp, _ := client.Do(req) defer resp.Body.Close() body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) userJSONBytes, _ := json.Marshal(respJSON) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else { result, _ := service.Gdyb4101(struct4101, miConfig.SecretKey, miConfig.OrgName, curRoles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.UserOrgId, admin_user_id) var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } userJSONBytes, _ := json.Marshal(dat) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } if res.Infcode != 0 { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res.ErrMsg, }) return } else { //order.FaPiaoNumber = zero //order.FaPiaoCode = last_order.FaPiaoCode //service.UpdateOrder(order) hisFundSettleListResult := &models.HisFundSettleListResult{ Number: res.Output.SetlListId, Status: 1, Ctime: time.Now().Unix(), Mtime: time.Now().Unix(), UserOrgId: c.GetAdminUserInfo().CurrentOrgId, IsUpload: 1, OrderId: order_id, } service.CreateUploadRecord(hisFundSettleListResult) c.ServeSuccessJSON(map[string]interface{}{ "msg": "上传成功", "result": hisFundSettleListResult, }) return } } func (c *HisApiController) GetSettleListHospital() { order_id, _ := c.GetInt64("order_id") admin_user_id, _ := c.GetInt64("admin_user_id") order, _ := service.GetHisOrderByIDTwo(order_id) roles, _ := service.GetDoctorListTwo(c.GetAdminUserInfo().CurrentOrgId) his, _ := service.GetInHospitalRecordByNumber(order.MdtrtId) admin, _ := service.GetAdminUserByUserID(roles[0].AdminUserId) curRoles, _ := service.GetAdminUserInfoByID(c.GetAdminUserInfo().CurrentOrgId, admin_user_id) depart, _ := service.GetDepartMentDetail(curRoles.DepartmentId) miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId) if order.ID == 0 { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisOrderNoExistParamWrong) return } last_order, _ := service.GetLastHisOrder(c.GetAdminUserInfo().CurrentOrgId) max_order, _ := service.GetLastHisOrderTwo(c.GetAdminUserInfo().CurrentOrgId) count, _ := strconv.ParseInt(max_order.FaPiaoNumber, 10, 64) fmt.Println(count) var zero string number := count + 1 if number >= 1000 { zero = "0000" + strconv.FormatInt(number, 10) } else if number >= 10000 { zero = "000" + strconv.FormatInt(number, 10) } else if number >= 100000 { zero = "00" + strconv.FormatInt(number, 10) } else if number >= 1000000 { zero = "0" + strconv.FormatInt(number, 10) } else { zero = strconv.FormatInt(number, 10) } fmt.Println(zero) struct4101 := service.Struct4101{ PsnNo: order.PsnNo, MdtrtId: order.MdtrtId, SetlId: order.SetlId, PsnName: order.PsnName, Gend: order.Gend, Brdy: his.Brdy, Age: int64(order.Age), Naty: order.Naty, PatnCertType: "01", Certno: order.Certno, Prfs: "90", ConerName: roles[0].UserName, PatnRlts: "99", ConerAddr: miConfig.OrgName, ConerTel: admin.Mobile, HiType: order.Insutype, Insuplc: miConfig.InsuplcAdmdvs, MaindiagFlag: "1", BillCode: order.SetlId, BillNo: order.SetlId, BizSn: order.Number, PsnSelfPay: order.PsnPartAmt, PsnOwnPay: order.PsnPartAmt, AcctPay: order.AcctPay, PsnCashpay: order.PsnCashPay, HiPaymtd: "1", Hsorg: miConfig.InsuplcAdmdvs, HsorgOpter: miConfig.InsuplcAdmdvs, MedinsFillPsn: curRoles.UserName, MedinsFillDept: depart.Name, IptMedType: "2", AdmTime: his.InHosptialTime, AdmEndTime: his.OutHosptialTime, } struct4101.SetlBegnDate = order.SetlTime struct4101.SetlEndDate = order.SetlTime //var rf []CustomFundPay //json.Unmarshal([]byte(order.SetlDetail), &rf) // //var tempFunPays []service.CustomStruct //for _, item := range rf { // var tempFunPay service.CustomStruct // tempFunPay.FundPayamt = item.FundPayamt // tempFunPay.FundPayType = item.FundPayType // tempFunPays = append(tempFunPays, tempFunPay) //} //struct4101.CustomStruct = tempFunPays var tempDiaginfos []service.DiaginfoStructTwo var tempOpspdiseinfo2 service.OpspdiseinfoStruct var tempOpspdiseinfos []service.OpspdiseinfoStruct //infos, _ := service.FindLastPatientPrescriptionInfoTwo2(c.GetAdminUserInfo().CurrentOrgId, his.PatientId, strings.Split(his.InHosptialTime, " ")[0], strings.Split(his.OutHosptialTime, " ")[0]) //for _, item := range infos { // his.Diagnosis = his.Diagnosis + "," + item.Diagnosis //} diagnosis_ids_arr := strings.Split(his.Diagnosis, ",") diagnosis_ids_arr = RemoveRepeatedPurviewElement2(diagnosis_ids_arr) //diagnosis_ids := strings.Split(his.Diagnosis, ",") fmt.Println(diagnosis_ids_arr) if order.UserOrgId == 10210 { var diagnosis_ids_arr_two []int64 diagnosis_ids_arr_two = append(diagnosis_ids_arr_two, 704) var config []*models.HisXtDiagnoseConfig for _, id := range diagnosis_ids_arr_two { //id, _ := strconv.ParseInt(item, 10, 64) diagnosisConfig, _ := service.FindDiagnoseById(id) if diagnosisConfig.ID > 0 { config = append(config, &diagnosisConfig) } } for index, item := range config { if item.ID > 0 { if index == 0 { var tempDiaginfo service.DiaginfoStructTwo tempDiaginfo.DiagCode = item.CountryCode tempDiaginfo.DiagName = item.CountryContentName tempDiaginfo.DiagType = "1" tempDiaginfo.MaindiagFlag = "1" tempDiaginfos = append(tempDiaginfos, tempDiaginfo) } else { var tempDiaginfo service.DiaginfoStructTwo tempDiaginfo.DiagCode = item.CountryCode tempDiaginfo.DiagName = item.CountryContentName tempDiaginfo.DiagType = "1" tempDiaginfo.MaindiagFlag = "0" tempDiaginfos = append(tempDiaginfos, tempDiaginfo) } } } struct4101.Diseinfo = tempDiaginfos } else { var config []*models.HisXtDiagnoseConfig for _, item := range diagnosis_ids_arr { id, _ := strconv.ParseInt(item, 10, 64) diagnosisConfig, _ := service.FindDiagnoseById(id) if diagnosisConfig.ID > 0 { config = append(config, &diagnosisConfig) } } for index, item := range config { if item.ID > 0 { if index == 0 { var tempDiaginfo service.DiaginfoStructTwo tempDiaginfo.DiagCode = item.CountryCode tempDiaginfo.DiagName = item.CountryContentName tempDiaginfo.DiagType = "1" tempDiaginfo.MaindiagFlag = "1" tempDiaginfos = append(tempDiaginfos, tempDiaginfo) } else { var tempDiaginfo service.DiaginfoStructTwo tempDiaginfo.DiagCode = item.CountryCode tempDiaginfo.DiagName = item.CountryContentName tempDiaginfo.DiagType = "1" tempDiaginfo.MaindiagFlag = "0" tempDiaginfos = append(tempDiaginfos, tempDiaginfo) } } } struct4101.Diseinfo = tempDiaginfos } sickConfigTwo, _ := service.FindSickById(his.SickType) tempOpspdiseinfo2.DiagCode = sickConfigTwo.ContentCode tempOpspdiseinfo2.DiagName = sickConfigTwo.CountryContentName tempOpspdiseinfo2.OprnOprtCode = "" tempOpspdiseinfo2.OprnOprtName = "" tempOpspdiseinfos = append(tempOpspdiseinfos, tempOpspdiseinfo2) struct4101.OpspdiseinfoStruct = tempOpspdiseinfos var iteminfo service.IteminfoStruct var bedCostTotal float64 = 0 //床位总费 var bedCostSelfTotal float64 = 0 //床位自费 var bedCostPartSelfTotal float64 = 0 //床位部分项目自费 var operationCostTotal float64 = 0 //手术费 var operationCostSelfTotal float64 = 0 //手术费 var operationCostPartSelfTotal float64 = 0 //手术费 var otherCostTotal float64 = 0 //其他费用 var otherCostSelfTotal float64 = 0 //其他费用 var otherCostPartSelfTotal float64 = 0 //其他费用 var materialCostTotal float64 = 0 //材料费 var materialCostSelfTotal float64 = 0 //材料费 var materialCostPartSelfTotal float64 = 0 //材料费 var westernMedicineCostTotal float64 = 0 //西药费 var westernMedicineCostSelfTotal float64 = 0 //西药费 var westernMedicineCostPartSelfTotal float64 = 0 //西药费 var chineseTraditionalMedicineCostTotal float64 = 0 //中成药 var chineseTraditionalMedicineCostSelfTotal float64 = 0 //中成药 var chineseTraditionalMedicineCostPartSelfTotal float64 = 0 //中成药 var checkCostTotal float64 = 0 //检查费 var checkCostSelfTotal float64 = 0 //检查费 var checkCostPartSelfTotal float64 = 0 //检查费 var laboratoryCostTotal float64 = 0 //化验费 var laboratoryCostSelfTotal float64 = 0 //化验费 var laboratoryCostPartSelfTotal float64 = 0 //化验费 var treatCostTotal float64 = 0 //治疗费用 var treatCostSelfTotal float64 = 0 //治疗费用 var treatCostPartSelfTotal float64 = 0 //治疗费用 decimal.DivisionPrecision = 2 var bed_fulamt_ownpay_amt float64 = 0 var operation_fulamt_ownpay_amt float64 = 0 var other_fulamt_ownpay_amt float64 = 0 var westernMedicine_fulamt_ownpay_amt float64 = 0 var chineseTraditional_fulamt_ownpay_amt float64 = 0 var check_fulamt_ownpay_amt float64 = 0 var material_fulamt_ownpay_amt float64 = 0 var laboratory_fulamt_ownpay_amt float64 = 0 var treat_fulamt_ownpay_amt float64 = 0 var bed_claa_sunmfee float64 = 0 var bed_clab_amt float64 = 0 var bed_other_amt float64 = 0 var operation_claa_sunmfee float64 = 0 var operation_clab_amt float64 = 0 var operation_other_amt float64 = 0 var other_claa_sunmfee float64 = 0 var other_clab_amt float64 = 0 var other_other_amt float64 = 0 var westernMedicine_claa_sunmfee float64 = 0 var westernMedicine_clab_amt float64 = 0 var westernMedicine_other_amt float64 = 0 var chineseTraditional_claa_sunmfee float64 = 0 var chineseTraditional_clab_amt float64 = 0 var chineseTraditional_other_amt float64 = 0 var check_claa_sunmfee float64 = 0 var check_clab_amt float64 = 0 var check_other_amt float64 = 0 var material_claa_sunmfee float64 = 0 var material_clab_amt float64 = 0 var material_other_amt float64 = 0 var laboratory_claa_sunmfee float64 = 0 var laboratory_clab_amt float64 = 0 var laboratory_other_amt float64 = 0 var treat_claa_sunmfee float64 = 0 var treat_clab_amt float64 = 0 var treat_other_amt float64 = 0 for _, item := range order.HisOrderInfo { if item.MedChrgitmType == "01" { //床位费 bedCostTotal, _ = decimal.NewFromFloat(bedCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() bedCostSelfTotal, _ = decimal.NewFromFloat(bedCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() bedCostPartSelfTotal, _ = decimal.NewFromFloat(bedCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() bed_fulamt_ownpay_amt, _ = decimal.NewFromFloat(bed_fulamt_ownpay_amt).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64() if item.ChrgitmLv == "1" { bed_claa_sunmfee, _ = decimal.NewFromFloat(bed_claa_sunmfee).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() } if item.ChrgitmLv == "2" { bed_clab_amt, _ = decimal.NewFromFloat(bed_clab_amt).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() } if item.ChrgitmLv == "3" { bed_other_amt, _ = decimal.NewFromFloat(bed_other_amt).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() } } if item.MedChrgitmType == "03" { //检查费 checkCostTotal, _ = decimal.NewFromFloat(checkCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() checkCostSelfTotal, _ = decimal.NewFromFloat(checkCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() checkCostPartSelfTotal, _ = decimal.NewFromFloat(checkCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() check_fulamt_ownpay_amt, _ = decimal.NewFromFloat(check_fulamt_ownpay_amt).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64() if item.ChrgitmLv == "1" { check_claa_sunmfee, _ = decimal.NewFromFloat(check_claa_sunmfee).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() } if item.ChrgitmLv == "2" { check_clab_amt, _ = decimal.NewFromFloat(check_clab_amt).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() } if item.ChrgitmLv == "3" { check_other_amt, _ = decimal.NewFromFloat(check_other_amt).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() } } if item.MedChrgitmType == "04" { //化验费 laboratoryCostTotal, _ = decimal.NewFromFloat(laboratoryCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() laboratoryCostSelfTotal, _ = decimal.NewFromFloat(laboratoryCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() laboratoryCostPartSelfTotal, _ = decimal.NewFromFloat(laboratoryCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() laboratory_fulamt_ownpay_amt, _ = decimal.NewFromFloat(laboratory_fulamt_ownpay_amt).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64() if item.ChrgitmLv == "1" { laboratory_claa_sunmfee, _ = decimal.NewFromFloat(laboratory_claa_sunmfee).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() } if item.ChrgitmLv == "2" { laboratory_clab_amt, _ = decimal.NewFromFloat(laboratory_clab_amt).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() } if item.ChrgitmLv == "3" { laboratory_other_amt, _ = decimal.NewFromFloat(laboratory_other_amt).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() } } if item.MedChrgitmType == "05" { //治疗费 treatCostTotal, _ = decimal.NewFromFloat(treatCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() treatCostSelfTotal, _ = decimal.NewFromFloat(treatCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() treatCostPartSelfTotal, _ = decimal.NewFromFloat(treatCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() treat_fulamt_ownpay_amt, _ = decimal.NewFromFloat(treat_fulamt_ownpay_amt).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64() if item.ChrgitmLv == "1" { treat_claa_sunmfee, _ = decimal.NewFromFloat(treat_claa_sunmfee).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() } if item.ChrgitmLv == "2" { treat_clab_amt, _ = decimal.NewFromFloat(treat_clab_amt).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() } if item.ChrgitmLv == "3" { treat_other_amt, _ = decimal.NewFromFloat(treat_other_amt).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() } } if item.MedChrgitmType == "06" { //手术费 operationCostTotal, _ = decimal.NewFromFloat(operationCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() operationCostSelfTotal, _ = decimal.NewFromFloat(operationCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() operationCostPartSelfTotal, _ = decimal.NewFromFloat(operationCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() operation_fulamt_ownpay_amt, _ = decimal.NewFromFloat(operation_fulamt_ownpay_amt).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64() if item.ChrgitmLv == "1" { operation_claa_sunmfee, _ = decimal.NewFromFloat(operation_claa_sunmfee).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() } if item.ChrgitmLv == "2" { operation_clab_amt, _ = decimal.NewFromFloat(operation_clab_amt).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() } if item.ChrgitmLv == "3" { operation_other_amt, _ = decimal.NewFromFloat(operation_other_amt).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() } } if item.MedChrgitmType == "08" { //材料费 materialCostTotal, _ = decimal.NewFromFloat(materialCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() materialCostSelfTotal, _ = decimal.NewFromFloat(materialCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() materialCostPartSelfTotal, _ = decimal.NewFromFloat(materialCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() material_fulamt_ownpay_amt, _ = decimal.NewFromFloat(material_fulamt_ownpay_amt).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64() if item.ChrgitmLv == "1" { material_claa_sunmfee, _ = decimal.NewFromFloat(material_claa_sunmfee).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() } if item.ChrgitmLv == "2" { material_clab_amt, _ = decimal.NewFromFloat(material_clab_amt).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() } if item.ChrgitmLv == "3" { material_other_amt, _ = decimal.NewFromFloat(material_other_amt).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() } } if item.MedChrgitmType == "09" { //西药费 westernMedicineCostTotal, _ = decimal.NewFromFloat(westernMedicineCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() westernMedicineCostSelfTotal, _ = decimal.NewFromFloat(westernMedicineCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() westernMedicineCostPartSelfTotal, _ = decimal.NewFromFloat(westernMedicineCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() westernMedicine_fulamt_ownpay_amt, _ = decimal.NewFromFloat(westernMedicine_fulamt_ownpay_amt).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64() if item.ChrgitmLv == "1" { westernMedicine_claa_sunmfee, _ = decimal.NewFromFloat(westernMedicine_claa_sunmfee).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() } if item.ChrgitmLv == "2" { westernMedicine_clab_amt, _ = decimal.NewFromFloat(westernMedicine_clab_amt).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() } if item.ChrgitmLv == "3" { westernMedicine_other_amt, _ = decimal.NewFromFloat(westernMedicine_other_amt).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() } } if item.MedChrgitmType == "11" { //中成费 chineseTraditionalMedicineCostTotal, _ = decimal.NewFromFloat(chineseTraditionalMedicineCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() chineseTraditionalMedicineCostSelfTotal, _ = decimal.NewFromFloat(chineseTraditionalMedicineCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() chineseTraditionalMedicineCostPartSelfTotal, _ = decimal.NewFromFloat(chineseTraditionalMedicineCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() chineseTraditional_fulamt_ownpay_amt, _ = decimal.NewFromFloat(chineseTraditional_fulamt_ownpay_amt).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64() if item.ChrgitmLv == "1" { chineseTraditional_claa_sunmfee, _ = decimal.NewFromFloat(chineseTraditional_claa_sunmfee).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() } if item.ChrgitmLv == "2" { chineseTraditional_clab_amt, _ = decimal.NewFromFloat(chineseTraditional_clab_amt).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() } if item.ChrgitmLv == "3" { chineseTraditional_other_amt, _ = decimal.NewFromFloat(chineseTraditional_other_amt).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() } } if item.MedChrgitmType == "14" { //其他费 otherCostTotal, _ = decimal.NewFromFloat(otherCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() otherCostSelfTotal, _ = decimal.NewFromFloat(otherCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() otherCostPartSelfTotal, _ = decimal.NewFromFloat(otherCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() other_fulamt_ownpay_amt, _ = decimal.NewFromFloat(other_fulamt_ownpay_amt).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64() if item.ChrgitmLv == "1" { other_claa_sunmfee, _ = decimal.NewFromFloat(other_claa_sunmfee).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() } if item.ChrgitmLv == "2" { other_clab_amt, _ = decimal.NewFromFloat(other_clab_amt).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() } if item.ChrgitmLv == "3" { other_other_amt, _ = decimal.NewFromFloat(other_other_amt).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() } } } var iteminfoStructs []service.IteminfoStruct if bedCostTotal != 0 { iteminfo.MedChrgitm = "01" iteminfo.FulamtOwnpayAmt = bed_fulamt_ownpay_amt iteminfo.Amt = bedCostTotal iteminfo.ClaaSumfee = bed_claa_sunmfee iteminfo.ClabAmt = bed_clab_amt iteminfo.OthAmt = bed_other_amt iteminfoStructs = append(iteminfoStructs, iteminfo) } if checkCostTotal != 0 { iteminfo.MedChrgitm = "03" iteminfo.FulamtOwnpayAmt = check_fulamt_ownpay_amt iteminfo.Amt = checkCostTotal iteminfo.ClaaSumfee = check_claa_sunmfee iteminfo.ClabAmt = check_clab_amt iteminfo.OthAmt = check_other_amt iteminfoStructs = append(iteminfoStructs, iteminfo) } if laboratoryCostTotal != 0 { iteminfo.MedChrgitm = "04" iteminfo.FulamtOwnpayAmt = laboratory_fulamt_ownpay_amt iteminfo.Amt = laboratoryCostTotal iteminfo.ClaaSumfee = laboratory_claa_sunmfee iteminfo.ClabAmt = laboratory_clab_amt iteminfo.OthAmt = laboratory_other_amt iteminfoStructs = append(iteminfoStructs, iteminfo) //struct4101.IteminfoStruct = append(struct4101.IteminfoStruct, iteminfo) } if treatCostTotal != 0 { iteminfo.MedChrgitm = "05" iteminfo.FulamtOwnpayAmt = treat_fulamt_ownpay_amt iteminfo.Amt = treatCostTotal iteminfo.ClaaSumfee = treat_claa_sunmfee iteminfo.ClabAmt = treat_clab_amt iteminfo.OthAmt = treat_other_amt iteminfoStructs = append(iteminfoStructs, iteminfo) //(struct4101.IteminfoStruct, iteminfo) //struct4101.IteminfoStruct = append(struct4101.IteminfoStruct, iteminfo) } if operationCostTotal != 0 { iteminfo.MedChrgitm = "06" iteminfo.FulamtOwnpayAmt = bed_fulamt_ownpay_amt iteminfo.Amt = operationCostTotal iteminfo.ClaaSumfee = operation_claa_sunmfee iteminfo.ClabAmt = operation_clab_amt iteminfo.OthAmt = operation_other_amt //struct4101.IteminfoStruct = append(struct4101.IteminfoStruct, iteminfo) iteminfoStructs = append(iteminfoStructs, iteminfo) } if materialCostTotal != 0 { iteminfo.MedChrgitm = "08" iteminfo.FulamtOwnpayAmt = material_fulamt_ownpay_amt iteminfo.Amt = materialCostTotal iteminfo.ClaaSumfee = material_claa_sunmfee iteminfo.ClabAmt = material_clab_amt iteminfo.OthAmt = material_other_amt //struct4101.IteminfoStruct = append(struct4101.IteminfoStruct, iteminfo) iteminfoStructs = append(iteminfoStructs, iteminfo) } if westernMedicineCostTotal != 0 { iteminfo.MedChrgitm = "09" iteminfo.FulamtOwnpayAmt = westernMedicine_fulamt_ownpay_amt iteminfo.Amt = westernMedicineCostTotal iteminfo.ClaaSumfee = westernMedicine_claa_sunmfee iteminfo.ClabAmt = westernMedicine_clab_amt iteminfo.OthAmt = westernMedicine_other_amt //struct4101.IteminfoStruct = append(struct4101.IteminfoStruct, iteminfo) iteminfoStructs = append(iteminfoStructs, iteminfo) } if chineseTraditionalMedicineCostTotal != 0 { iteminfo.MedChrgitm = "11" iteminfo.FulamtOwnpayAmt = westernMedicine_fulamt_ownpay_amt iteminfo.Amt = westernMedicineCostTotal iteminfo.ClaaSumfee = westernMedicine_claa_sunmfee iteminfo.ClabAmt = westernMedicine_clab_amt iteminfo.OthAmt = westernMedicine_other_amt //struct4101.IteminfoStruct = append(struct4101.IteminfoStruct, iteminfo) iteminfoStructs = append(iteminfoStructs, iteminfo) } if otherCostTotal != 0 { iteminfo.MedChrgitm = "14" iteminfo.FulamtOwnpayAmt = other_fulamt_ownpay_amt iteminfo.Amt = otherCostTotal iteminfo.ClaaSumfee = other_claa_sunmfee iteminfo.ClabAmt = other_clab_amt iteminfo.OthAmt = other_other_amt //struct4101.IteminfoStruct = append(struct4101.IteminfoStruct, iteminfo) iteminfoStructs = append(iteminfoStructs, iteminfo) } struct4101.IteminfoStruct = iteminfoStructs struct4101.Ntly = "中国" struct4101.AdmCaty = "A03.06" var resOther ResultSeventeenOther var res ResultSeventeen if miConfig.MdtrtareaAdmvs == "150499" { var pp models.PublicParams pp.InsuplcAdmdvs = miConfig.InsuplcAdmdvs pp.MdtrtareaAdmvs = miConfig.MdtrtareaAdmvs pp.FixmedinsName = miConfig.OrgName pp.FixmedinsCode = miConfig.Code pp.RequestUrl = miConfig.Url pp.Cainfo = miConfig.Cainfo pp.SecretKey = miConfig.SecretKey pp.AccessKey = miConfig.AccessKey pp.OpterName = curRoles.UserName client := &http.Client{} var req *http.Request data := make(map[string]interface{}) data["struct4101"] = struct4101 data["pp"] = pp bytesData, _ := json.Marshal(data) req, _ = http.NewRequest("POST", "http://172.16.13.254:9532/"+"nmyb/4101", bytes.NewReader(bytesData)) resp, _ := client.Do(req) defer resp.Body.Close() body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) userJSONBytes, _ := json.Marshal(respJSON) if err := json.Unmarshal(userJSONBytes, &resOther); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res.InfRefmsgid = resOther.InfRefmsgid res.Output = resOther.Output res.ErrMsg = resOther.ErrMsg infocode, _ := strconv.ParseInt(resOther.Infcode, 10, 64) res.Infcode = infocode } else if miConfig.MdtrtareaAdmvs == "360302" { var pp models.PublicParams pp.InsuplcAdmdvs = his.InsuplcAdmdvs pp.MdtrtareaAdmvs = miConfig.MdtrtareaAdmvs pp.FixmedinsName = miConfig.OrgName pp.FixmedinsCode = miConfig.Code pp.RequestUrl = miConfig.Url pp.Cainfo = miConfig.Cainfo pp.SecretKey = miConfig.SecretKey pp.AccessKey = miConfig.AccessKey pp.OpterName = curRoles.UserName result, _ := service.Jxyb4101(struct4101, pp) var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } userJSONBytes, _ := json.Marshal(dat) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "361025" { var pp models.PublicParams pp.InsuplcAdmdvs = his.InsuplcAdmdvs pp.MdtrtareaAdmvs = miConfig.MdtrtareaAdmvs pp.FixmedinsName = miConfig.OrgName pp.FixmedinsCode = miConfig.Code pp.RequestUrl = miConfig.Url pp.Cainfo = miConfig.Cainfo pp.SecretKey = miConfig.SecretKey pp.AccessKey = miConfig.AccessKey pp.OpterName = curRoles.UserName result, _ := service.Jxyb4101(struct4101, pp) var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } userJSONBytes, _ := json.Marshal(dat) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "360100" { var pp models.PublicParams pp.InsuplcAdmdvs = his.InsuplcAdmdvs pp.MdtrtareaAdmvs = miConfig.MdtrtareaAdmvs pp.FixmedinsName = miConfig.OrgName pp.FixmedinsCode = miConfig.Code pp.RequestUrl = miConfig.Url pp.Cainfo = miConfig.Cainfo pp.SecretKey = miConfig.SecretKey pp.AccessKey = miConfig.AccessKey pp.OpterName = curRoles.UserName result, _ := service.Jxyb4101(struct4101, pp) var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } userJSONBytes, _ := json.Marshal(dat) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else { result, _ := service.Gdyb4101(struct4101, miConfig.SecretKey, miConfig.OrgName, curRoles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.UserOrgId, admin_user_id) var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } userJSONBytes, _ := json.Marshal(dat) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } if res.Infcode != 0 { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res.ErrMsg, }) return } else { if miConfig.MdtrtareaAdmvs != "150499" { order.FaPiaoNumber = zero order.FaPiaoCode = last_order.FaPiaoCode service.UpdateOrder(order) } hisFundSettleListResult := &models.HisFundSettleListResult{ Number: res.Output.SetlListId, Status: 1, Ctime: time.Now().Unix(), Mtime: time.Now().Unix(), UserOrgId: c.GetAdminUserInfo().CurrentOrgId, IsUpload: 1, OrderId: order_id, } service.CreateUploadRecord(hisFundSettleListResult) c.ServeSuccessJSON(map[string]interface{}{ "msg": "上传成功", "result": hisFundSettleListResult, }) return } } //func (c *HisApiController) GetBatchSettleList() { // orders, _ := service.GetAllHisOrder(10106) // for _, item := range orders { // order_id := item.ID // order, _ := service.GetHisOrderByIDTwo(order_id) // roles, _ := service.GetDoctorListTwo(c.GetAdminUserInfo().CurrentOrgId) // his, _ := service.GetHisPatientByNumber(order.MdtrtId) // admin, _ := service.GetAdminUserByUserID(roles[0].AdminUserId) // curRoles, _ := service.GetAdminUserInfoByID(c.GetAdminUserInfo().CurrentOrgId, 2495) // depart, _ := service.GetDepartMentDetail(curRoles.DepartmentId) // miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId) // // pre, _ := service.GetNewHisPrescriptionByNumber(order.Number) // // doctor, _ := service.GetAdminUserInfoByID(c.GetAdminUserInfo().CurrentOrgId, pre.Creator) // // if order.ID == 0 { // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisOrderNoExistParamWrong) // return // } // if his.BalanceAccountsType == 2 { // continue // } // struct4101 := service.Struct4101{ // PsnNo: order.PsnNo, // MdtrtId: order.MdtrtId, // SetlId: order.SetlId, // PsnName: order.PsnName, // Gend: order.Gend, // Brdy: his.Brdy, // Age: his.Age, // Naty: order.Naty, // PatnCertType: "01", // Certno: order.Certno, // Prfs: "90", // ConerName: roles[0].UserName, // PatnRlts: "99", // ConerAddr: miConfig.OrgName, // ConerTel: admin.Mobile, // HiType: order.Insutype, // Insuplc: his.InsuplcAdmdvs, // MaindiagFlag: "1", // BillCode: order.SetlId, // BillNo: order.SetlId, // BizSn: order.Number, // PsnSelfPay: order.PsnPartAmt, // PsnOwnPay: order.PsnPartAmt, // AcctPay: order.AcctPay, // PsnCashpay: order.PsnCashPay, // HiPaymtd: "1", // Hsorg: his.InsuplcAdmdvs, // HsorgOpter: his.InsuplcAdmdvs, // MedinsFillPsn: curRoles.UserName, // MedinsFillDept: depart.Name, // IptMedType: "2", // } // struct4101.SetlBegnDate = order.SetlTime // struct4101.SetlEndDate = order.SetlTime // //if order.SettleType == 1 { // // t := time.Unix(int64(order.SettleAccountsDate), 0) // // dateStr := t.Format("2006-01-02") // // struct4101.SetlBegnDate = dateStr // // struct4101.SetlEndDate = dateStr // //} else { // // t := time.Unix(int64(order.SettleStartTime), 0) // // t2 := time.Unix(int64(order.SettleEndTime), 0) // // dateStartStr := t.Format("2006-01-02") // // dateEndStr := t2.Format("2006-01-02") // // struct4101.SetlBegnDate = dateStartStr // // struct4101.SetlEndDate = dateEndStr // //} // // var rf []CustomFundPay // json.Unmarshal([]byte(order.SetlDetail), &rf) // // var tempFunPays []service.CustomStruct // var tempFunPay610100 service.CustomStruct // // for _, item := range rf { // if item.FundPayType == "610100" { // tempFunPay610100.FundPayamt, _ = decimal.NewFromFloat(tempFunPay610100.FundPayamt).Add(decimal.NewFromFloat(item.FundPayamt)).Float64() // tempFunPay610100.FundPayType = item.FundPayType // } else { // var tempFunPay service.CustomStruct // tempFunPay.FundPayamt = item.FundPayamt // tempFunPay.FundPayType = item.FundPayType // tempFunPays = append(tempFunPays, tempFunPay) // } // } // tempFunPays = append(tempFunPays, tempFunPay610100) // struct4101.CustomStruct = tempFunPays // // var tempDiaginfos []service.DiaginfoStructTwo // var tempOpspdiseinfo2 service.OpspdiseinfoStruct // var tempOpspdiseinfos []service.OpspdiseinfoStruct // // diagnosis_ids := strings.Split(his.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 { // if index == 0 { // var tempDiaginfo service.DiaginfoStructTwo // tempDiaginfo.DiagCode = item.CountryCode // tempDiaginfo.DiagName = item.CountryContentName // tempDiaginfo.DiagType = "1" // tempDiaginfo.MaindiagFlag = "1" // tempDiaginfos = append(tempDiaginfos, tempDiaginfo) // } else { // // var tempDiaginfo service.DiaginfoStructTwo // tempDiaginfo.DiagCode = item.CountryCode // tempDiaginfo.DiagName = item.CountryContentName // tempDiaginfo.DiagType = "2" // tempDiaginfo.MaindiagFlag = "0" // tempDiaginfos = append(tempDiaginfos, tempDiaginfo) // } // } // struct4101.Diseinfo = tempDiaginfos // // sickConfigTwo, _ := service.FindSickById(his.SickType) // tempOpspdiseinfo2.DiagCode = sickConfigTwo.ContentCode // tempOpspdiseinfo2.DiagName = sickConfigTwo.CountryContentName // tempOpspdiseinfo2.OprnOprtCode = "" // tempOpspdiseinfo2.OprnOprtName = "" // tempOpspdiseinfos = append(tempOpspdiseinfos, tempOpspdiseinfo2) // struct4101.OpspdiseinfoStruct = tempOpspdiseinfos // // var iteminfo service.IteminfoStruct // // var bedCostTotal float64 = 0 //床位总费 // var bedCostSelfTotal float64 = 0 //床位自费 // var bedCostPartSelfTotal float64 = 0 //床位部分项目自费 // // var examineCostTotal float64 = 0 //诊查总费 // var examineCostSelfTotal float64 = 0 //诊查自费 // var examineCostPartSelfTotal float64 = 0 //诊查部分项目自费 // // var nursingCostTotal float64 = 0 //护理总费 // var nursingCostSelfTotal float64 = 0 //护理自费 // var nursingCostPartSelfTotal float64 = 0 //护理部分项目自费 // // var chineseMedicineCostTotal float64 = 0 //中成药 // var chineseMedicineCostSelfTotal float64 = 0 //中成药 // var chineseMedicineCostPartSelfTotal float64 = 0 //中成药 // // var commonlyTreatmentCostTotal float64 = 0 //一般诊疗费 // var commonlyTreatmentCostSelfTotal float64 = 0 //一般诊疗费 // var commonlyTreatmentCostPartSelfTotal float64 = 0 //一般诊疗费 // // var registerCostTotal float64 = 0 //一般诊疗费 // var registerCostSelfTotal float64 = 0 //一般诊疗费 // var registerPartSelfTotal float64 = 0 //一般诊疗费 // // var operationCostTotal float64 = 0 //手术费 // var operationCostSelfTotal float64 = 0 //手术费 // var operationCostPartSelfTotal float64 = 0 //手术费 // // var otherCostTotal float64 = 0 //其他费用 // var otherCostSelfTotal float64 = 0 //其他费用 // var otherCostPartSelfTotal float64 = 0 //其他费用 // // var materialCostTotal float64 = 0 //材料费 // var materialCostSelfTotal float64 = 0 //材料费 // var materialCostPartSelfTotal float64 = 0 //材料费 // // var westernMedicineCostTotal float64 = 0 //西药费 // var westernMedicineCostSelfTotal float64 = 0 //西药费 // var westernMedicineCostPartSelfTotal float64 = 0 //西药费 // // var chineseTraditionalMedicineCostTotal float64 = 0 //中成药 // var chineseTraditionalMedicineCostSelfTotal float64 = 0 //中成药 // var chineseTraditionalMedicineCostPartSelfTotal float64 = 0 //中成药 // // var checkCostTotal float64 = 0 //检查费 // var checkCostSelfTotal float64 = 0 //检查费 // var checkCostPartSelfTotal float64 = 0 //检查费 // // var laboratoryCostTotal float64 = 0 //化验费 // var laboratoryCostSelfTotal float64 = 0 //化验费 // var laboratoryCostPartSelfTotal float64 = 0 //化验费 // // var treatCostTotal float64 = 0 //治疗费用 // var treatCostSelfTotal float64 = 0 //治疗费用 // var treatCostPartSelfTotal float64 = 0 //治疗费用 // // decimal.DivisionPrecision = 2 // // var bed_fulamt_ownpay_amt float64 = 0 // // var examine_fulamt_ownpay_amt float64 = 0 // // var nursing_fulamt_ownpay_amt float64 = 0 // // var chinese_medicine_fulamt_ownpay_amt float64 = 0 // // var commonly_treatment_fulamt_ownpay_amt float64 = 0 // // var register_fulamt_ownpay_amt float64 = 0 // // var operation_fulamt_ownpay_amt float64 = 0 // var other_fulamt_ownpay_amt float64 = 0 // var westernMedicine_fulamt_ownpay_amt float64 = 0 // var chineseTraditional_fulamt_ownpay_amt float64 = 0 // var check_fulamt_ownpay_amt float64 = 0 // var material_fulamt_ownpay_amt float64 = 0 // var laboratory_fulamt_ownpay_amt float64 = 0 // var treat_fulamt_ownpay_amt float64 = 0 // // var bed_claa_sunmfee float64 = 0 // var bed_clab_amt float64 = 0 // var bed_other_amt float64 = 0 // // var examine_claa_sunmfee float64 = 0 // var examine_clab_amt float64 = 0 // var examine_other_amt float64 = 0 // // var nursing_claa_sunmfee float64 = 0 // var nursing_clab_amt float64 = 0 // var nursing_other_amt float64 = 0 // // var chinese_medicine_claa_sunmfee float64 = 0 // var chinese_medicine_clab_amt float64 = 0 // var chinese_medicine_other_amt float64 = 0 // // var commonly_treatment_claa_sunmfee float64 = 0 // var commonly_treatment_clab_amt float64 = 0 // var commonly_treatment_other_amt float64 = 0 // // var operation_claa_sunmfee float64 = 0 // var operation_clab_amt float64 = 0 // var operation_other_amt float64 = 0 // // var other_claa_sunmfee float64 = 0 // var other_clab_amt float64 = 0 // var other_other_amt float64 = 0 // // var westernMedicine_claa_sunmfee float64 = 0 // var westernMedicine_clab_amt float64 = 0 // var westernMedicine_other_amt float64 = 0 // // var chineseTraditional_claa_sunmfee float64 = 0 // var chineseTraditional_clab_amt float64 = 0 // var chineseTraditional_other_amt float64 = 0 // // var check_claa_sunmfee float64 = 0 // var check_clab_amt float64 = 0 // var check_other_amt float64 = 0 // // var material_claa_sunmfee float64 = 0 // var material_clab_amt float64 = 0 // var material_other_amt float64 = 0 // // var laboratory_claa_sunmfee float64 = 0 // var laboratory_clab_amt float64 = 0 // var laboratory_other_amt float64 = 0 // // var treat_claa_sunmfee float64 = 0 // var treat_clab_amt float64 = 0 // var treat_other_amt float64 = 0 // // var register_claa_sunmfee float64 = 0 // var register_clab_amt float64 = 0 // var register_other_amt float64 = 0 // // for _, item := range order.HisOrderInfo { // if item.MedChrgitmType == "01" { //床位费 // bedCostTotal, _ = decimal.NewFromFloat(bedCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() // bedCostSelfTotal, _ = decimal.NewFromFloat(bedCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() // bedCostPartSelfTotal, _ = decimal.NewFromFloat(bedCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() // bed_fulamt_ownpay_amt, _ = decimal.NewFromFloat(bed_fulamt_ownpay_amt).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64() // if item.ChrgitmLv == "1" { // bed_claa_sunmfee, _ = decimal.NewFromFloat(bed_claa_sunmfee).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() // } // if item.ChrgitmLv == "2" { // bed_clab_amt, _ = decimal.NewFromFloat(bed_clab_amt).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() // // } // if item.ChrgitmLv == "3" { // bed_other_amt, _ = decimal.NewFromFloat(bed_other_amt).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() // } // // } // // if item.MedChrgitmType == "02" { //诊查 // examineCostTotal, _ = decimal.NewFromFloat(examineCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() // examineCostSelfTotal, _ = decimal.NewFromFloat(examineCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() // examineCostPartSelfTotal, _ = decimal.NewFromFloat(examineCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() // examine_fulamt_ownpay_amt, _ = decimal.NewFromFloat(examine_fulamt_ownpay_amt).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64() // if item.ChrgitmLv == "1" { // examine_claa_sunmfee, _ = decimal.NewFromFloat(examine_claa_sunmfee).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() // } // if item.ChrgitmLv == "2" { // examine_clab_amt, _ = decimal.NewFromFloat(examine_clab_amt).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() // // } // if item.ChrgitmLv == "3" { // examine_other_amt, _ = decimal.NewFromFloat(examine_other_amt).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() // } // // } // // if item.MedChrgitmType == "03" { //检查费 // checkCostTotal, _ = decimal.NewFromFloat(checkCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() // checkCostSelfTotal, _ = decimal.NewFromFloat(checkCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() // checkCostPartSelfTotal, _ = decimal.NewFromFloat(checkCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() // check_fulamt_ownpay_amt, _ = decimal.NewFromFloat(check_fulamt_ownpay_amt).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64() // if item.ChrgitmLv == "1" { // // check_claa_sunmfee, _ = decimal.NewFromFloat(check_claa_sunmfee).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() // // } // if item.ChrgitmLv == "2" { // check_clab_amt, _ = decimal.NewFromFloat(check_clab_amt).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() // // } // if item.ChrgitmLv == "3" { // check_other_amt, _ = decimal.NewFromFloat(check_other_amt).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() // } // } // // if item.MedChrgitmType == "04" { //化验费 // laboratoryCostTotal, _ = decimal.NewFromFloat(laboratoryCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() // laboratoryCostSelfTotal, _ = decimal.NewFromFloat(laboratoryCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() // laboratoryCostPartSelfTotal, _ = decimal.NewFromFloat(laboratoryCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() // laboratory_fulamt_ownpay_amt, _ = decimal.NewFromFloat(laboratory_fulamt_ownpay_amt).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64() // if item.ChrgitmLv == "1" { // // laboratory_claa_sunmfee, _ = decimal.NewFromFloat(laboratory_claa_sunmfee).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() // // } // if item.ChrgitmLv == "2" { // laboratory_clab_amt, _ = decimal.NewFromFloat(laboratory_clab_amt).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() // // } // if item.ChrgitmLv == "3" { // laboratory_other_amt, _ = decimal.NewFromFloat(laboratory_other_amt).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() // } // } // // if item.MedChrgitmType == "05" { //治疗费 // treatCostTotal, _ = decimal.NewFromFloat(treatCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() // treatCostSelfTotal, _ = decimal.NewFromFloat(treatCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() // treatCostPartSelfTotal, _ = decimal.NewFromFloat(treatCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() // treat_fulamt_ownpay_amt, _ = decimal.NewFromFloat(treat_fulamt_ownpay_amt).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64() // if item.ChrgitmLv == "1" { // // treat_claa_sunmfee, _ = decimal.NewFromFloat(treat_claa_sunmfee).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() // // } // if item.ChrgitmLv == "2" { // treat_clab_amt, _ = decimal.NewFromFloat(treat_clab_amt).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() // // } // if item.ChrgitmLv == "3" { // treat_other_amt, _ = decimal.NewFromFloat(treat_other_amt).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() // } // } // // if item.MedChrgitmType == "06" { //手术费 // operationCostTotal, _ = decimal.NewFromFloat(operationCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() // operationCostSelfTotal, _ = decimal.NewFromFloat(operationCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() // operationCostPartSelfTotal, _ = decimal.NewFromFloat(operationCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() // operation_fulamt_ownpay_amt, _ = decimal.NewFromFloat(operation_fulamt_ownpay_amt).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64() // // if item.ChrgitmLv == "1" { // // operation_claa_sunmfee, _ = decimal.NewFromFloat(operation_claa_sunmfee).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() // // } // if item.ChrgitmLv == "2" { // operation_clab_amt, _ = decimal.NewFromFloat(operation_clab_amt).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() // // } // if item.ChrgitmLv == "3" { // operation_other_amt, _ = decimal.NewFromFloat(operation_other_amt).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() // } // } // // if item.MedChrgitmType == "07" { //手术费 // nursingCostTotal, _ = decimal.NewFromFloat(nursingCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() // nursingCostSelfTotal, _ = decimal.NewFromFloat(nursingCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() // nursingCostPartSelfTotal, _ = decimal.NewFromFloat(nursingCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() // nursing_fulamt_ownpay_amt, _ = decimal.NewFromFloat(nursing_fulamt_ownpay_amt).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64() // // if item.ChrgitmLv == "1" { // // nursing_claa_sunmfee, _ = decimal.NewFromFloat(nursing_claa_sunmfee).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() // // } // if item.ChrgitmLv == "2" { // nursing_clab_amt, _ = decimal.NewFromFloat(nursing_clab_amt).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() // // } // if item.ChrgitmLv == "3" { // nursing_other_amt, _ = decimal.NewFromFloat(nursing_other_amt).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() // } // } // // if item.MedChrgitmType == "08" { //材料费 // materialCostTotal, _ = decimal.NewFromFloat(materialCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() // materialCostSelfTotal, _ = decimal.NewFromFloat(materialCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() // materialCostPartSelfTotal, _ = decimal.NewFromFloat(materialCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() // material_fulamt_ownpay_amt, _ = decimal.NewFromFloat(material_fulamt_ownpay_amt).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64() // if item.ChrgitmLv == "1" { // // material_claa_sunmfee, _ = decimal.NewFromFloat(material_claa_sunmfee).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() // // } // if item.ChrgitmLv == "2" { // material_clab_amt, _ = decimal.NewFromFloat(material_clab_amt).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() // // } // if item.ChrgitmLv == "3" { // material_other_amt, _ = decimal.NewFromFloat(material_other_amt).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() // } // } // if item.MedChrgitmType == "09" { //西药费 // westernMedicineCostTotal, _ = decimal.NewFromFloat(westernMedicineCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() // westernMedicineCostSelfTotal, _ = decimal.NewFromFloat(westernMedicineCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() // westernMedicineCostPartSelfTotal, _ = decimal.NewFromFloat(westernMedicineCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() // westernMedicine_fulamt_ownpay_amt, _ = decimal.NewFromFloat(westernMedicine_fulamt_ownpay_amt).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64() // if item.ChrgitmLv == "1" { // westernMedicine_claa_sunmfee, _ = decimal.NewFromFloat(westernMedicine_claa_sunmfee).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() // } // if item.ChrgitmLv == "2" { // westernMedicine_clab_amt, _ = decimal.NewFromFloat(westernMedicine_clab_amt).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() // } // if item.ChrgitmLv == "3" { // westernMedicine_other_amt, _ = decimal.NewFromFloat(westernMedicine_other_amt).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() // } // } // if item.MedChrgitmType == "10" { //中药饮片 // chineseMedicineCostTotal, _ = decimal.NewFromFloat(chineseMedicineCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() // chineseMedicineCostSelfTotal, _ = decimal.NewFromFloat(chineseMedicineCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() // chineseMedicineCostPartSelfTotal, _ = decimal.NewFromFloat(chineseMedicineCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() // chinese_medicine_fulamt_ownpay_amt, _ = decimal.NewFromFloat(chinese_medicine_fulamt_ownpay_amt).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64() // if item.ChrgitmLv == "1" { // chinese_medicine_claa_sunmfee, _ = decimal.NewFromFloat(chinese_medicine_claa_sunmfee).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() // } // if item.ChrgitmLv == "2" { // chinese_medicine_clab_amt, _ = decimal.NewFromFloat(chinese_medicine_clab_amt).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() // } // if item.ChrgitmLv == "3" { // chinese_medicine_other_amt, _ = decimal.NewFromFloat(chinese_medicine_other_amt).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() // } // } // // if item.MedChrgitmType == "11" { //中成费 // chineseTraditionalMedicineCostTotal, _ = decimal.NewFromFloat(chineseTraditionalMedicineCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() // chineseTraditionalMedicineCostSelfTotal, _ = decimal.NewFromFloat(chineseTraditionalMedicineCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() // chineseTraditionalMedicineCostPartSelfTotal, _ = decimal.NewFromFloat(chineseTraditionalMedicineCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() // chineseTraditional_fulamt_ownpay_amt, _ = decimal.NewFromFloat(chineseTraditional_fulamt_ownpay_amt).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64() // if item.ChrgitmLv == "1" { // // chineseTraditional_claa_sunmfee, _ = decimal.NewFromFloat(chineseTraditional_claa_sunmfee).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() // // } // if item.ChrgitmLv == "2" { // chineseTraditional_clab_amt, _ = decimal.NewFromFloat(chineseTraditional_clab_amt).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() // // } // if item.ChrgitmLv == "3" { // chineseTraditional_other_amt, _ = decimal.NewFromFloat(chineseTraditional_other_amt).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() // } // } // // if item.MedChrgitmType == "12" { //中成费 // commonlyTreatmentCostTotal, _ = decimal.NewFromFloat(commonlyTreatmentCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() // commonlyTreatmentCostSelfTotal, _ = decimal.NewFromFloat(commonlyTreatmentCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() // commonlyTreatmentCostPartSelfTotal, _ = decimal.NewFromFloat(commonlyTreatmentCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() // commonly_treatment_fulamt_ownpay_amt, _ = decimal.NewFromFloat(commonly_treatment_fulamt_ownpay_amt).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64() // if item.ChrgitmLv == "1" { // // commonly_treatment_claa_sunmfee, _ = decimal.NewFromFloat(commonly_treatment_claa_sunmfee).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() // // } // if item.ChrgitmLv == "2" { // commonly_treatment_clab_amt, _ = decimal.NewFromFloat(commonly_treatment_clab_amt).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() // // } // if item.ChrgitmLv == "3" { // commonly_treatment_other_amt, _ = decimal.NewFromFloat(commonly_treatment_other_amt).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() // } // } // // if item.MedChrgitmType == "13" { //中成费 // registerCostTotal, _ = decimal.NewFromFloat(registerCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() // registerCostSelfTotal, _ = decimal.NewFromFloat(registerCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() // registerPartSelfTotal, _ = decimal.NewFromFloat(registerPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() // register_fulamt_ownpay_amt, _ = decimal.NewFromFloat(register_fulamt_ownpay_amt).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64() // if item.ChrgitmLv == "1" { // // register_claa_sunmfee, _ = decimal.NewFromFloat(register_claa_sunmfee).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() // // } // if item.ChrgitmLv == "2" { // register_clab_amt, _ = decimal.NewFromFloat(register_clab_amt).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() // // } // if item.ChrgitmLv == "3" { // register_other_amt, _ = decimal.NewFromFloat(register_other_amt).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() // } // } // // if item.MedChrgitmType == "14" { //其他费 // otherCostTotal, _ = decimal.NewFromFloat(otherCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() // otherCostSelfTotal, _ = decimal.NewFromFloat(otherCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() // otherCostPartSelfTotal, _ = decimal.NewFromFloat(otherCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() // other_fulamt_ownpay_amt, _ = decimal.NewFromFloat(other_fulamt_ownpay_amt).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64() // if item.ChrgitmLv == "1" { // other_claa_sunmfee, _ = decimal.NewFromFloat(other_claa_sunmfee).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() // // } // if item.ChrgitmLv == "2" { // other_clab_amt, _ = decimal.NewFromFloat(other_clab_amt).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() // // } // if item.ChrgitmLv == "3" { // other_other_amt, _ = decimal.NewFromFloat(other_other_amt).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() // } // } // // } // // var iteminfoStructs []service.IteminfoStruct // // if bedCostTotal != 0 { // iteminfo.MedChrgitm = "01" // iteminfo.FulamtOwnpayAmt = bed_fulamt_ownpay_amt // iteminfo.Amt = bedCostTotal // iteminfo.ClaaSumfee = bed_claa_sunmfee // iteminfo.ClabAmt = bed_clab_amt // iteminfo.OthAmt = bed_other_amt // iteminfoStructs = append(iteminfoStructs, iteminfo) // } // // if examineCostTotal != 0 { // iteminfo.MedChrgitm = "02" // iteminfo.FulamtOwnpayAmt = examine_fulamt_ownpay_amt // iteminfo.Amt = examineCostTotal // iteminfo.ClaaSumfee = examine_claa_sunmfee // iteminfo.ClabAmt = examine_clab_amt // iteminfo.OthAmt = examine_other_amt // //struct4101.IteminfoStruct = append(struct4101.IteminfoStruct, iteminfo) // iteminfoStructs = append(iteminfoStructs, iteminfo) // } // // if checkCostTotal != 0 { // iteminfo.MedChrgitm = "03" // iteminfo.FulamtOwnpayAmt = check_fulamt_ownpay_amt // iteminfo.Amt = checkCostTotal // iteminfo.ClaaSumfee = check_claa_sunmfee // iteminfo.ClabAmt = check_clab_amt // iteminfo.OthAmt = check_other_amt // iteminfoStructs = append(iteminfoStructs, iteminfo) // // } // // if laboratoryCostTotal != 0 { // iteminfo.MedChrgitm = "04" // iteminfo.FulamtOwnpayAmt = laboratory_fulamt_ownpay_amt // iteminfo.Amt = laboratoryCostTotal // iteminfo.ClaaSumfee = laboratory_claa_sunmfee // iteminfo.ClabAmt = laboratory_clab_amt // iteminfo.OthAmt = laboratory_other_amt // iteminfoStructs = append(iteminfoStructs, iteminfo) // // //struct4101.IteminfoStruct = append(struct4101.IteminfoStruct, iteminfo) // // } // // if treatCostTotal != 0 { // iteminfo.MedChrgitm = "05" // iteminfo.FulamtOwnpayAmt = treat_fulamt_ownpay_amt // iteminfo.Amt = treatCostTotal // iteminfo.ClaaSumfee = treat_claa_sunmfee // iteminfo.ClabAmt = treat_clab_amt // iteminfo.OthAmt = treat_other_amt // iteminfoStructs = append(iteminfoStructs, iteminfo) // //(struct4101.IteminfoStruct, iteminfo) // //struct4101.IteminfoStruct = append(struct4101.IteminfoStruct, iteminfo) // } // // if operationCostTotal != 0 { // iteminfo.MedChrgitm = "06" // iteminfo.FulamtOwnpayAmt = bed_fulamt_ownpay_amt // iteminfo.Amt = operationCostTotal // iteminfo.ClaaSumfee = operation_claa_sunmfee // iteminfo.ClabAmt = operation_clab_amt // iteminfo.OthAmt = operation_other_amt // //struct4101.IteminfoStruct = append(struct4101.IteminfoStruct, iteminfo) // iteminfoStructs = append(iteminfoStructs, iteminfo) // } // // if nursingCostTotal != 0 { // iteminfo.MedChrgitm = "07" // iteminfo.FulamtOwnpayAmt = nursing_fulamt_ownpay_amt // iteminfo.Amt = nursingCostTotal // iteminfo.ClaaSumfee = nursing_claa_sunmfee // iteminfo.ClabAmt = nursing_clab_amt // iteminfo.OthAmt = nursing_other_amt // iteminfoStructs = append(iteminfoStructs, iteminfo) // } // // if materialCostTotal != 0 { // iteminfo.MedChrgitm = "08" // iteminfo.FulamtOwnpayAmt = material_fulamt_ownpay_amt // iteminfo.Amt = materialCostTotal // iteminfo.ClaaSumfee = material_claa_sunmfee // iteminfo.ClabAmt = material_clab_amt // iteminfo.OthAmt = material_other_amt // //struct4101.IteminfoStruct = append(struct4101.IteminfoStruct, iteminfo) // iteminfoStructs = append(iteminfoStructs, iteminfo) // } // // if westernMedicineCostTotal != 0 { // iteminfo.MedChrgitm = "09" // iteminfo.FulamtOwnpayAmt = westernMedicine_fulamt_ownpay_amt // iteminfo.Amt = westernMedicineCostTotal // iteminfo.ClaaSumfee = westernMedicine_claa_sunmfee // iteminfo.ClabAmt = westernMedicine_clab_amt // iteminfo.OthAmt = westernMedicine_other_amt // //struct4101.IteminfoStruct = append(struct4101.IteminfoStruct, iteminfo) // iteminfoStructs = append(iteminfoStructs, iteminfo) // // } // // if chineseMedicineCostTotal != 0 { // iteminfo.MedChrgitm = "10" // iteminfo.FulamtOwnpayAmt = chinese_medicine_fulamt_ownpay_amt // iteminfo.Amt = chineseMedicineCostTotal // iteminfo.ClaaSumfee = chinese_medicine_claa_sunmfee // iteminfo.ClabAmt = chinese_medicine_clab_amt // iteminfo.OthAmt = chinese_medicine_other_amt // //struct4101.IteminfoStruct = append(struct4101.IteminfoStruct, iteminfo) // iteminfoStructs = append(iteminfoStructs, iteminfo) // // } // // if chineseTraditionalMedicineCostTotal != 0 { // iteminfo.MedChrgitm = "11" // iteminfo.FulamtOwnpayAmt = westernMedicine_fulamt_ownpay_amt // iteminfo.Amt = westernMedicineCostTotal // iteminfo.ClaaSumfee = westernMedicine_claa_sunmfee // iteminfo.ClabAmt = westernMedicine_clab_amt // iteminfo.OthAmt = westernMedicine_other_amt // //struct4101.IteminfoStruct = append(struct4101.IteminfoStruct, iteminfo) // iteminfoStructs = append(iteminfoStructs, iteminfo) // // } // // if commonlyTreatmentCostTotal != 0 { // iteminfo.MedChrgitm = "12" // iteminfo.FulamtOwnpayAmt = commonly_treatment_fulamt_ownpay_amt // iteminfo.Amt = commonlyTreatmentCostTotal // iteminfo.ClaaSumfee = commonly_treatment_claa_sunmfee // iteminfo.ClabAmt = commonly_treatment_clab_amt // iteminfo.OthAmt = commonly_treatment_other_amt // //struct4101.IteminfoStruct = append(struct4101.IteminfoStruct, iteminfo) // iteminfoStructs = append(iteminfoStructs, iteminfo) // // } // // if registerCostTotal != 0 { // iteminfo.MedChrgitm = "13" // iteminfo.FulamtOwnpayAmt = register_fulamt_ownpay_amt // iteminfo.Amt = registerCostTotal // iteminfo.ClaaSumfee = register_claa_sunmfee // iteminfo.ClabAmt = register_clab_amt // iteminfo.OthAmt = register_other_amt // //struct4101.IteminfoStruct = append(struct4101.IteminfoStruct, iteminfo) // iteminfoStructs = append(iteminfoStructs, iteminfo) // // } // // if otherCostTotal != 0 { // iteminfo.MedChrgitm = "14" // iteminfo.FulamtOwnpayAmt = other_fulamt_ownpay_amt // iteminfo.Amt = otherCostTotal // iteminfo.ClaaSumfee = other_claa_sunmfee // iteminfo.ClabAmt = other_clab_amt // iteminfo.OthAmt = other_other_amt // //struct4101.IteminfoStruct = append(struct4101.IteminfoStruct, iteminfo) // iteminfoStructs = append(iteminfoStructs, iteminfo) // // } // struct4101.IteminfoStruct = iteminfoStructs // time_arr := strings.Split(order.SetlTime, " ") // struct4101.AdmTime = time_arr[0] // struct4101.AdmEndTime = time_arr[0] // // struct4101.DoctorName = doctor.UserName // struct4101.DoctorCode = doctor.DoctorNumber // // struct4101.Ntly = "中国" // struct4101.AdmCaty = "A03.06" // var res ResultSeventeen // if miConfig.MdtrtareaAdmvs == "421300" { // data := make(map[string]interface{}) // data["struct4101"] = struct4101 // data["secret_key"] = miConfig.SecretKey // data["org_name"] = miConfig.OrgName // data["opera"] = curRoles.UserName // data["code"] = miConfig.Code // data["insuplc_admdvs"] = miConfig.InsuplcAdmdvs // data["mdtrtarea_admvs"] = miConfig.MdtrtareaAdmvs // // client := &http.Client{} // bytesData, _ := json.Marshal(data) // req, _ := http.NewRequest("POST", "http://192.168.124.4:9532/"+"hbyb/4101", bytes.NewReader(bytesData)) // resp, _ := client.Do(req) // defer resp.Body.Close() // body, ioErr := ioutil.ReadAll(resp.Body) // if ioErr != nil { // utils.ErrorLog("接口返回数据读取失败: %v", ioErr) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // var respJSON map[string]interface{} // if err := json.Unmarshal([]byte(body), &respJSON); err != nil { // utils.ErrorLog("接口返回数据解析JSON失败: %v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // // respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) // userJSONBytes, _ := json.Marshal(respJSON) // if err := json.Unmarshal(userJSONBytes, &res); err != nil { // utils.ErrorLog("解析失败:%v", err) // //c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // adminUser := c.GetAdminUserInfo() // errlog := &models.HisOrderError{ // UserOrgId: adminUser.CurrentOrgId, // Ctime: time.Now().Unix(), // Mtime: time.Now().Unix(), // ErrMsg: res.ErrMsg + "解析失败", // Status: 1, // PatientId: order_id, // Stage: 10088, // } // service.CreateErrMsgLog(errlog) // continue // } // // } else if miConfig.MdtrtareaAdmvs == "420200" { // data := make(map[string]interface{}) // data["struct4101"] = struct4101 // data["secret_key"] = miConfig.SecretKey // data["org_name"] = miConfig.OrgName // data["opera"] = curRoles.UserName // data["code"] = miConfig.Code // data["insuplc_admdvs"] = miConfig.InsuplcAdmdvs // data["mdtrtarea_admvs"] = miConfig.MdtrtareaAdmvs // // client := &http.Client{} // bytesData, _ := json.Marshal(data) // req, _ := http.NewRequest("POST", "http://192.168.0.197:9532/"+"hbyb/4101", bytes.NewReader(bytesData)) // resp, _ := client.Do(req) // defer resp.Body.Close() // body, ioErr := ioutil.ReadAll(resp.Body) // if ioErr != nil { // utils.ErrorLog("接口返回数据读取失败: %v", ioErr) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // var respJSON map[string]interface{} // if err := json.Unmarshal([]byte(body), &respJSON); err != nil { // utils.ErrorLog("接口返回数据解析JSON失败: %v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // // respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) // userJSONBytes, _ := json.Marshal(respJSON) // if err := json.Unmarshal(userJSONBytes, &res); err != nil { // utils.ErrorLog("解析失败:%v", err) // //c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // adminUser := c.GetAdminUserInfo() // errlog := &models.HisOrderError{ // UserOrgId: adminUser.CurrentOrgId, // Ctime: time.Now().Unix(), // Mtime: time.Now().Unix(), // ErrMsg: res.ErrMsg + "解析失败", // Status: 1, // PatientId: order_id, // Stage: 10088, // } // service.CreateErrMsgLog(errlog) // continue // } // // } else { // result, _ := service.Gdyb4101(struct4101, miConfig.SecretKey, miConfig.OrgName, curRoles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, c.GetAdminUserInfo().CurrentOrgId) // fmt.Println(result) // // var dat map[string]interface{} // if err := json.Unmarshal([]byte(result), &dat); err == nil { // fmt.Println(dat) // } else { // fmt.Println(err) // } // userJSONBytes, _ := json.Marshal(dat) // if err := json.Unmarshal(userJSONBytes, &res); err != nil { // utils.ErrorLog("解析失败:%v", err) // //c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // adminUser := c.GetAdminUserInfo() // errlog := &models.HisOrderError{ // UserOrgId: adminUser.CurrentOrgId, // Ctime: time.Now().Unix(), // Mtime: time.Now().Unix(), // ErrMsg: res.ErrMsg + "解析失败", // Status: 1, // PatientId: order_id, // Stage: 10106, // } // service.CreateErrMsgLog(errlog) // continue // } // } // // if res.Infcode != 0 { // adminUser := c.GetAdminUserInfo() // errlog := &models.HisOrderError{ // UserOrgId: adminUser.CurrentOrgId, // Ctime: time.Now().Unix(), // Mtime: time.Now().Unix(), // ErrMsg: res.ErrMsg, // Status: 1, // PatientId: order_id, // Stage: 10106, // } // service.CreateErrMsgLog(errlog) // continue // } else { // hisFundSettleListResult := &models.HisFundSettleListResult{ // Number: res.Output.SetlListId, // Status: 1, // Ctime: time.Now().Unix(), // Mtime: time.Now().Unix(), // UserOrgId: c.GetAdminUserInfo().CurrentOrgId, // IsUpload: 1, // OrderId: order_id, // } // service.CreateUploadRecord(hisFundSettleListResult) // continue // } // } //} func (c *HisApiController) GetOrgInfo() { miConfig, _ := service.FindMedicalInsuranceInfo(4) service.Gdyb1201("", miConfig.OrgName, "1122", miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, 1, "") } func (c *HisApiController) GetHisPatientInfo() { medical_insurance_card := c.GetString("medical_insurance_card") id_card_type, _ := c.GetInt64("id_card_type") id_card := c.GetString("id_card") adminInfo := c.GetAdminUserInfo() config, _ := service.GetMedicalInsuranceConfig(adminInfo.CurrentOrgId) miConfig, _ := service.FindMedicalInsuranceInfo(adminInfo.CurrentOrgId) appRole, _ := service.GetAppRole(adminInfo.CurrentOrgId) IdCardNo := "" if id_card_type == 1 { IdCardNo = medical_insurance_card } else if id_card_type == 2 { IdCardNo = id_card } if config.IsOpen == 1 { api := "http://127.0.0.1:9532/" + "gdyb/one?cert_no=" + IdCardNo + "&org_name=" + miConfig.OrgName + "&doctor=" + appRole.UserName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } defer resp.Body.Close() body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } userJSON := respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) userJSONBytes, _ := json.Marshal(userJSON) var res ResultTwo if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } Iinfos, _ := json.Marshal(res.Output.Iinfo) Idetinfos, _ := json.Marshal(res.Output.Idetinfo) infoStr := string(Iinfos) idetinfoStr := string(Idetinfos) if res.Infcode == 0 { his := models.VMHisPatient{ Status: 1, Ctime: time.Now().Unix(), Mtime: time.Now().Unix(), PsnNo: res.Output.Baseinfo.PsnNo, PsnCertType: res.Output.Baseinfo.PsnCertType, Certno: res.Output.Baseinfo.Certno, PsnName: res.Output.Baseinfo.PsnName, Gend: res.Output.Baseinfo.Gend, Naty: res.Output.Baseinfo.Naty, Iinfo: infoStr, Idetinfo: idetinfoStr, UserOrgId: adminInfo.CurrentOrgId, IsReturn: 1, IdCardType: id_card_type, } c.ServeSuccessJSON(map[string]interface{}{ "info": his, }) } else { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisFailedException) return } } } //func GetBasBaseInfo() (jsonStr string, err error) { // // handle := syscall.NewLazyDLL("SSCard.dll") // add := handle.NewProc("ReadCardBas") // str := make([]byte, 1024) // str1 := make([]byte, 1024) // ret, _, _ := add.Call((uintptr)(unsafe.Pointer(&str[0])), IntPtr(1024), (uintptr)(unsafe.Pointer(&str1[0])), IntPtr(1024)) // fmt.Println(ConvertToString(string(str), "gbk", "utf-8")) // // fmt.Println(ConvertToString(string(str1), "gbk", "utf-8")) // // fmt.Println("> Add(4,5)的结果为:", ret) // handle.Release() // // return "", nil // //} //func GetQRBaseInfo() (jsonStr string, err error) { // handle := syscall.LoadDLL("SSCard.dll") // ReadCardBas := handle.FindProc("GetQRBase") // // str := make([]byte, 256) // str1 := make([]byte, 256) // r, _, _ := ReadCardBas.Call((uintptr)(unsafe.Pointer(&str[0])), IntPtr(1024), (uintptr)(unsafe.Pointer(&str1[0])), IntPtr(1024)) // // fmt.Println(string(str)) // fmt.Println(r) // return string(str), nil //} //func CardInit() int { // DllTestDef := syscall.MustLoadDLL("SSCard.dll") // add := DllTestDef.MustFindProc("Init") // ret, _, err := add.Call(StrPtr("http://igb.hsa.gdgov.cn/gdyb_inf/poc/api/card/initDll"), StrPtr("440200")) // if err != nil { // fmt.Println("SSCard的运算结果为:", ret) // } // result := int(ret) // return result //} //func CardInit() int { // ret, _, err := add.Call(StrPtr("http://igb.hsa.gdgov.cn/gdyb_inf/poc/api/card/initDll"), StrPtr("440200")) // if err != nil { // fmt.Println("SSCard的运算结果为:", ret) // } // fmt.Println(err) // result := int(ret) // return result //} func IntPtr(n int) uintptr { return uintptr(n) } func StrPtr(s string) uintptr { return uintptr(unsafe.Pointer(syscall.StringBytePtr(s))) } type Result2001 struct { Cainfo interface{} `json:"cainfo"` ErrMsg string `json:"err_msg"` InfRefmsgid string `json:"inf_refmsgid"` Infcode int64 `json:"infcode"` Output struct { Trtinfo struct { PsnNo string `json:"psn_no"` TrtChkType string `json:"trt_chk_type"` FundPayType string `json:"fund_pay_type"` TrtEnjymntFlag string `json:"trt_enjymnt_flag"` Begndate string `json:"begndate"` Enddate string `json:"enddate"` TrtChkRslt string `json:"trt_chk_rslt"` } `json:"trtinfo"` } `json:"output"` RefmsgTime string `json:"refmsg_time"` RespondTime string `json:"respond_time"` Signtype interface{} `json:"signtype"` WarnMsg interface{} `json:"warn_msg"` } type Result2001Org10265 struct { Cainfo interface{} `json:"cainfo"` ErrMsg string `json:"err_msg"` InfRefmsgid string `json:"inf_refmsgid"` Infcode string `json:"infcode"` Output struct { Trtinfo struct { PsnNo string `json:"psn_no"` TrtChkType string `json:"trt_chk_type"` FundPayType string `json:"fund_pay_type"` TrtEnjymntFlag string `json:"trt_enjymnt_flag"` Begndate string `json:"begndate"` Enddate string `json:"enddate"` TrtChkRslt string `json:"trt_chk_rslt"` } `json:"trtinfo"` } `json:"output"` RefmsgTime string `json:"refmsg_time"` RespondTime string `json:"respond_time"` Signtype interface{} `json:"signtype"` WarnMsg interface{} `json:"warn_msg"` } type ResultTwo struct { ErrMsg string `json:"err_msg"` InfRefmsgid string `json:"inf_refmsgid"` Infcode int64 `json:"infcode"` Output struct { Baseinfo struct { //Brdy string `json:"brdy"` Certno string `json:"certno"` Gend string `json:"gend"` Naty string `json:"naty"` PsnCertType string `json:"psn_cert_type"` PsnName string `json:"psn_name"` PsnNo string `json:"psn_no"` } `json:"baseinfo"` Idetinfo []interface{} `json:"idetinfo"` Iinfo []struct { Balc float64 `json:"balc"` CvlservFlag string `json:"cvlserv_flag"` EmpName string `json:"emp_name"` InsuplcAdmdvs string `json:"insuplc_admdvs"` Insutype string `json:"insutype"` PausInsuDansuplcAdmdvs string `json:"paus_insu_dansuplc_admdvs"` //PausInsuDate string `json:"paus_insu_date"` //PsnInsuDate string `json:"psn_insu_date"` PsnInsuStas string `json:"psn_insu_stas"` PsnType string `json:"psn_type"` } `json:"insuinfo"` } `json:"output"` RefmsgTime string `json:"refmsg_time"` RespondTime string `json:"respond_time"` Signtype interface{} `json:"signtype"` WarnInfo interface{} `json:"warn_info"` } type ResultTwo10265 struct { ErrMsg string `json:"err_msg"` InfRefmsgid string `json:"inf_refmsgid"` Infcode string `json:"infcode"` Output struct { Baseinfo struct { //Brdy string `json:"brdy"` Certno string `json:"certno"` Gend string `json:"gend"` Naty string `json:"naty"` PsnCertType string `json:"psn_cert_type"` PsnName string `json:"psn_name"` PsnNo string `json:"psn_no"` } `json:"baseinfo"` Idetinfo []interface{} `json:"idetinfo"` Iinfo []struct { Balc float64 `json:"balc"` CvlservFlag string `json:"cvlserv_flag"` EmpName string `json:"emp_name"` InsuplcAdmdvs string `json:"insuplc_admdvs"` Insutype string `json:"insutype"` PausInsuDansuplcAdmdvs string `json:"paus_insu_dansuplc_admdvs"` PsnInsuStas string `json:"psn_insu_stas"` PsnType string `json:"psn_type"` } `json:"insuinfo"` } `json:"output"` RefmsgTime string `json:"refmsg_time"` RespondTime string `json:"respond_time"` Signtype interface{} `json:"signtype"` WarnInfo interface{} `json:"warn_info"` } type ResultThree struct { Cainfo interface{} `json:"cainfo"` ErrMsg string `json:"err_msg"` InfRefmsgid string `json:"inf_refmsgid"` Infcode int64 `json:"infcode"` Output struct { Data struct { IptOtpNo string `json:"ipt_otp_no"` MdtrtID string `json:"mdtrt_id"` PsnNo string `json:"psn_no"` } `json:"data"` } `json:"output"` RefmsgTime string `json:"refmsg_time"` RespondTime string `json:"respond_time"` Signtype interface{} `json:"signtype"` WarnMsg interface{} `json:"warn_msg"` } type ResultThree10265 struct { Cainfo interface{} `json:"cainfo"` ErrMsg string `json:"err_msg"` InfRefmsgid string `json:"inf_refmsgid"` Infcode string `json:"infcode"` Output struct { Data struct { IptOtpNo string `json:"ipt_otp_no"` MdtrtID string `json:"mdtrt_id"` PsnNo string `json:"psn_no"` } `json:"data"` } `json:"output"` RefmsgTime string `json:"refmsg_time"` RespondTime string `json:"respond_time"` Signtype interface{} `json:"signtype"` WarnMsg interface{} `json:"warn_msg"` } type ResultFour struct { Cainfo string `json:"cainfo"` ErrMsg string `json:"err_msg"` InfRefmsgid string `json:"inf_refmsgid"` Infcode int64 `json:"infcode"` Output struct { Result []struct { BasMednFlag string `json:"bas_medn_flag"` ChldMedcFlag string `json:"chld_medc_flag"` ChrgitmLv string `json:"chrgitm_lv"` Cnt float64 `json:"cnt"` DetItemFeeSumamt float64 `json:"det_item_fee_sumamt"` DrtReimFlag string `json:"drt_reim_flag"` FeedetlSn string `json:"feedetl_sn"` FulamtOwnpayAmt float64 `json:"fulamt_ownpay_amt"` HiNegoDrugFlag string `json:"hi_nego_drug_flag"` InscpScpAmt float64 `json:"inscp_scp_amt"` ListSpItemFlag string `json:"list_sp_item_flag"` LmtUsedFlag string `json:"lmt_used_flag"` MedChrgitmType string `json:"med_chrgitm_type"` Memo string `json:"memo"` OverlmtAmt float64 `json:"overlmt_amt"` PreselfpayAmt float64 `json:"preselfpay_amt"` Pric float64 `json:"pric"` PricUplmtAmt float64 `json:"pric_uplmt_amt"` SelfpayProp float64 `json:"selfpay_prop"` } `json:"result"` } `json:"output"` RefmsgTime string `json:"refmsg_time"` RespondTime string `json:"respond_time"` Signtype string `json:"signtype"` WarnMsg string `json:"warn_msg"` } type ResultFour10265 struct { Cainfo string `json:"cainfo"` ErrMsg string `json:"err_msg"` InfRefmsgid string `json:"inf_refmsgid"` Infcode string `json:"infcode"` Output struct { Result []struct { BasMednFlag string `json:"bas_medn_flag"` ChldMedcFlag string `json:"chld_medc_flag"` ChrgitmLv string `json:"chrgitm_lv"` Cnt float64 `json:"cnt"` DetItemFeeSumamt float64 `json:"det_item_fee_sumamt"` DrtReimFlag string `json:"drt_reim_flag"` FeedetlSn string `json:"feedetl_sn"` FulamtOwnpayAmt float64 `json:"fulamt_ownpay_amt"` HiNegoDrugFlag string `json:"hi_nego_drug_flag"` InscpScpAmt float64 `json:"inscp_scp_amt"` ListSpItemFlag string `json:"list_sp_item_flag"` LmtUsedFlag string `json:"lmt_used_flag"` MedChrgitmType string `json:"med_chrgitm_type"` Memo string `json:"memo"` OverlmtAmt float64 `json:"overlmt_amt"` PreselfpayAmt float64 `json:"preselfpay_amt"` Pric float64 `json:"pric"` PricUplmtAmt float64 `json:"pric_uplmt_amt"` SelfpayProp float64 `json:"selfpay_prop"` } `json:"result"` } `json:"output"` RefmsgTime string `json:"refmsg_time"` RespondTime string `json:"respond_time"` Signtype string `json:"signtype"` WarnMsg string `json:"warn_msg"` } type ResultMemo struct { InsuAdmdvs string `json:"insuAdmdvs"` } // [{"begntime":"2022-01-01 00:00:00","endtime":"2022-12-31 00:00:00","memo":"{\"matIdetCode\":\"20\",\"insuAdmdvs\":\"350481\"}","psn_idet_type":"23","psn_type_lv":null}] type ResultIDInfo struct { Begntime string `json:"begntime"` Endtime string `json:"endtime"` Memo string `json:"memo"` } type ResultFive struct { Balc float64 `json:"balc"` CvlservFlag string `json:"cvlserv_flag"` EmpName string `json:"emp_name"` InsuplcAdmdvs string `json:"insuplc_admdvs"` Insutype string `json:"insutype"` PausInsuDansuplcAdmdvs string `json:"paus_insu_dansuplc_admdvs"` PausInsuDate string `json:"paus_insu_date"` PsnInsuDate string `json:"psn_insu_date"` PsnInsuStas string `json:"psn_insu_stas"` PsnType string `json:"psn_type"` } type ResultSix struct { Cainfo interface{} `json:"cainfo"` ErrMsg string `json:"err_msg"` InfRefmsgid string `json:"inf_refmsgid"` Infcode int64 `json:"infcode"` Output struct { } `json:"output"` RefmsgTime string `json:"refmsg_time"` RespondTime string `json:"respond_time"` Signtype interface{} `json:"signtype"` WarnMsg interface{} `json:"warn_msg"` } type FJ3507Result struct { Cainfo interface{} `json:"cainfo"` ErrMsg string `json:"err_msg"` InfRefmsgid string `json:"inf_refmsgid"` Infcode int64 `json:"infcode"` Output struct { retRslt string `json:"retRslt"` msgRslt string `json:"msgRslt"` } `json:"output"` RefmsgTime string `json:"refmsg_time"` RespondTime string `json:"respond_time"` Signtype interface{} `json:"signtype"` WarnMsg interface{} `json:"warn_msg"` } type FJ3507ResultFor10188 struct { Cainfo interface{} `json:"cainfo"` ErrMsg string `json:"err_msg"` InfRefmsgid string `json:"inf_refmsgid"` Infcode string `json:"infcode"` RefmsgTime string `json:"refmsg_time"` RespondTime string `json:"respond_time"` Signtype interface{} `json:"signtype"` WarnMsg interface{} `json:"warn_msg"` } type Result2406 struct { Cainfo interface{} `json:"cainfo"` ErrMsg string `json:"err_msg"` InfRefmsgid string `json:"inf_refmsgid"` Infcode int64 `json:"infcode"` Output struct { Result struct { IptPsnSpFlagDetlId string `json:"ipt_psn_sp_flag_detl_id"` } `json:"result"` } `json:"output"` RefmsgTime string `json:"refmsg_time"` RespondTime string `json:"respond_time"` Signtype interface{} `json:"signtype"` WarnMsg interface{} `json:"warn_msg"` } type GZResultSix struct { Cainfo interface{} `json:"cainfo"` ErrMsg string `json:"err_msg"` InfRefmsgid string `json:"inf_refmsgid"` Infcode int64 `json:"infcode"` Output string `json:"output"` RefmsgTime string `json:"refmsg_time"` RespondTime string `json:"respond_time"` Signtype interface{} `json:"signtype"` WarnMsg interface{} `json:"warn_msg"` } type ResultSix10265 struct { Cainfo interface{} `json:"cainfo"` ErrMsg string `json:"err_msg"` InfRefmsgid string `json:"inf_refmsgid"` Infcode string `json:"infcode"` Output struct { } `json:"output"` RefmsgTime string `json:"refmsg_time"` RespondTime string `json:"respond_time"` Signtype interface{} `json:"signtype"` WarnMsg interface{} `json:"warn_msg"` } type ResultSeven struct { Cainfo string `json:"cainfo"` ErrMsg string `json:"err_msg"` InfRefmsgid string `json:"inf_refmsgid"` Infcode int64 `json:"infcode"` Output struct { Setlinfo struct { AcctMulaidPay float64 `json:"acct_mulaid_pay"` AcctPay float64 `json:"acct_pay"` ActPayDedc float64 `json:"act_pay_dedc"` Age float64 `json:"age"` Balc float64 `json:"balc"` Certno string `json:"certno"` ClrOptins string `json:"clr_optins"` ClrType string `json:"clr_type"` ClrWay string `json:"clr_way"` CvlservFlag string `json:"cvlserv_flag"` CvlservPay float64 `json:"cvlserv_pay"` FulamtOwnpayAmt float64 `json:"fulamt_ownpay_amt"` FundPaySumamt float64 `json:"fund_pay_sumamt"` Gend string `json:"gend"` HifesPay float64 `json:"hifes_pay"` HifmiPay float64 `json:"hifmi_pay"` HifpPay float64 `json:"hifp_pay"` HospPartAmt float64 `json:"hosp_part_amt"` InscpScpAmt float64 `json:"inscp_scp_amt"` Insutype string `json:"insutype"` MafPay float64 `json:"maf_pay"` MdtrtCertType string `json:"mdtrt_cert_type"` HifobPay float64 `json:"hifob_pay"` MdtrtID string `json:"mdtrt_id"` MedType string `json:"med_type"` MedfeeSumamt float64 `json:"medfee_sumamt"` MedinsSetlID string `json:"medins_setl_id"` Naty string `json:"naty"` OthPay float64 `json:"oth_pay"` OverlmtSelfpay float64 `json:"overlmt_selfpay"` PoolPropSelfpay float64 `json:"pool_prop_selfpay"` PreselfpayAmt float64 `json:"preselfpay_amt"` PsnCashPay float64 `json:"psn_cash_pay"` PsnCertType string `json:"psn_cert_type"` PsnName string `json:"psn_name"` PsnNo string `json:"psn_no"` PsnPartAmt float64 `json:"psn_part_amt"` PsnType string `json:"psn_type"` SetlID string `json:"setl_id"` SetlTime string `json:"setl_time"` } `json:"setlinfo"` Setldetail interface{} `json:"setldetail"` } `json:"output"` RefmsgTime string `json:"refmsg_time"` RespondTime string `json:"respond_time"` Signtype interface{} `json:"signtype"` WarnMsg interface{} `json:"warn_msg"` } type ResultSevenAH struct { Cainfo string `json:"cainfo"` ErrMsg string `json:"err_msg"` InfRefmsgid string `json:"inf_refmsgid"` Infcode int64 `json:"infcode"` Output struct { Setlinfo struct { AcctMulaidPay float64 `json:"acct_mulaid_pay"` AcctPay float64 `json:"acct_pay"` ActPayDedc float64 `json:"act_pay_dedc"` Age float64 `json:"age"` Balc float64 `json:"balc"` Certno string `json:"certno"` ClrOptins string `json:"clr_optins"` ClrType string `json:"clr_type"` ClrWay string `json:"clr_way"` CvlservFlag string `json:"cvlserv_flag"` CvlservPay float64 `json:"cvlserv_pay"` FulamtOwnpayAmt float64 `json:"fulamt_ownpay_amt"` FundPaySumamt float64 `json:"fund_pay_sumamt"` Gend string `json:"gend"` HifesPay float64 `json:"hifes_pay"` HifmiPay float64 `json:"hifmi_pay"` HifpPay float64 `json:"hifp_pay"` HospPartAmt float64 `json:"hosp_part_amt"` InscpScpAmt float64 `json:"inscp_scp_amt"` Insutype string `json:"insutype"` MafPay float64 `json:"maf_pay"` MdtrtCertType string `json:"mdtrt_cert_type"` HifobPay float64 `json:"hifob_pay"` MdtrtID string `json:"mdtrt_id"` MedType string `json:"med_type"` MedfeeSumamt float64 `json:"medfee_sumamt"` MedinsSetlID string `json:"medins_setl_id"` Naty string `json:"naty"` OthPay float64 `json:"oth_pay"` OverlmtSelfpay float64 `json:"overlmt_selfpay"` PoolPropSelfpay float64 `json:"pool_prop_selfpay"` PreselfpayAmt float64 `json:"preselfpay_amt"` PsnCashPay float64 `json:"psn_cash_pay"` PsnCertType string `json:"psn_cert_type"` PsnName string `json:"psn_name"` PsnNo string `json:"psn_no"` PsnPartAmt float64 `json:"psn_part_amt"` PsnType string `json:"psn_type"` SetlID string `json:"setl_id"` SetlTime int64 `json:"setl_time"` } `json:"setlinfo"` Setldetail interface{} `json:"setldetail"` } `json:"output"` RefmsgTime string `json:"refmsg_time"` RespondTime string `json:"respond_time"` Signtype interface{} `json:"signtype"` WarnMsg interface{} `json:"warn_msg"` } type ResultSeven10265 struct { Cainfo string `json:"cainfo"` ErrMsg string `json:"err_msg"` InfRefmsgid string `json:"inf_refmsgid"` Infcode string `json:"infcode"` Output struct { Setlinfo struct { AcctMulaidPay float64 `json:"acct_mulaid_pay"` AcctPay float64 `json:"acct_pay"` ActPayDedc float64 `json:"act_pay_dedc"` Age float64 `json:"age"` Balc float64 `json:"balc"` Certno string `json:"certno"` ClrOptins string `json:"clr_optins"` ClrType string `json:"clr_type"` ClrWay string `json:"clr_way"` CvlservFlag string `json:"cvlserv_flag"` CvlservPay float64 `json:"cvlserv_pay"` FulamtOwnpayAmt float64 `json:"fulamt_ownpay_amt"` FundPaySumamt float64 `json:"fund_pay_sumamt"` Gend string `json:"gend"` HifesPay float64 `json:"hifes_pay"` HifmiPay float64 `json:"hifmi_pay"` HifpPay float64 `json:"hifp_pay"` HospPartAmt float64 `json:"hosp_part_amt"` InscpScpAmt float64 `json:"inscp_scp_amt"` Insutype string `json:"insutype"` MafPay float64 `json:"maf_pay"` MdtrtCertType string `json:"mdtrt_cert_type"` HifobPay float64 `json:"hifob_pay"` MdtrtID string `json:"mdtrt_id"` MedType string `json:"med_type"` MedfeeSumamt float64 `json:"medfee_sumamt"` MedinsSetlID string `json:"medins_setl_id"` Naty string `json:"naty"` OthPay float64 `json:"oth_pay"` OverlmtSelfpay float64 `json:"overlmt_selfpay"` PoolPropSelfpay float64 `json:"pool_prop_selfpay"` PreselfpayAmt float64 `json:"preselfpay_amt"` PsnCashPay float64 `json:"psn_cash_pay"` PsnCertType string `json:"psn_cert_type"` PsnName string `json:"psn_name"` PsnNo string `json:"psn_no"` PsnPartAmt float64 `json:"psn_part_amt"` PsnType string `json:"psn_type"` SetlID string `json:"setl_id"` SetlTime string `json:"setl_time"` } `json:"setlinfo"` Setldetail interface{} `json:"setldetail"` } `json:"output"` RefmsgTime string `json:"refmsg_time"` RespondTime string `json:"respond_time"` Signtype interface{} `json:"signtype"` WarnMsg interface{} `json:"warn_msg"` } type ResultSeven10265Two struct { Cainfo string `json:"cainfo"` ErrMsg string `json:"err_msg"` InfRefmsgid string `json:"inf_refmsgid"` Infcode string `json:"infcode"` Output struct { Setlinfo struct { AcctMulaidPay string `json:"acct_mulaid_pay"` AcctPay float64 `json:"acct_pay"` ActPayDedc float64 `json:"act_pay_dedc"` Age float64 `json:"age"` Balc float64 `json:"balc"` Certno string `json:"certno"` ClrOptins string `json:"clr_optins"` ClrType string `json:"clr_type"` ClrWay string `json:"clr_way"` CvlservFlag string `json:"cvlserv_flag"` CvlservPay float64 `json:"cvlserv_pay"` FulamtOwnpayAmt float64 `json:"fulamt_ownpay_amt"` FundPaySumamt float64 `json:"fund_pay_sumamt"` Gend string `json:"gend"` HifesPay float64 `json:"hifes_pay"` HifmiPay float64 `json:"hifmi_pay"` HifpPay float64 `json:"hifp_pay"` HospPartAmt string `json:"hosp_part_amt"` InscpScpAmt float64 `json:"inscp_scp_amt"` Insutype string `json:"insutype"` MafPay float64 `json:"maf_pay"` MdtrtCertType string `json:"mdtrt_cert_type"` HifobPay float64 `json:"hifob_pay"` MdtrtID string `json:"mdtrt_id"` MedType string `json:"med_type"` MedfeeSumamt float64 `json:"medfee_sumamt"` MedinsSetlID string `json:"medins_setl_id"` Naty string `json:"naty"` OthPay float64 `json:"oth_pay"` OverlmtSelfpay float64 `json:"overlmt_selfpay"` PoolPropSelfpay string `json:"pool_prop_selfpay"` PreselfpayAmt float64 `json:"preselfpay_amt"` PsnCashPay float64 `json:"psn_cash_pay"` PsnCertType string `json:"psn_cert_type"` PsnName string `json:"psn_name"` PsnNo string `json:"psn_no"` PsnPartAmt float64 `json:"psn_part_amt"` PsnType string `json:"psn_type"` SetlID string `json:"setl_id"` SetlTime string `json:"setl_time"` } `json:"setlinfo"` Setldetail interface{} `json:"setldetail"` } `json:"output"` RefmsgTime string `json:"refmsg_time"` RespondTime string `json:"respond_time"` Signtype interface{} `json:"signtype"` WarnMsg interface{} `json:"warn_msg"` } type GZResultSeven10265Two struct { Cainfo string `json:"cainfo"` ErrMsg string `json:"err_msg"` InfRefmsgid string `json:"inf_refmsgid"` Infcode int64 `json:"infcode"` Output struct { Setlinfo struct { AcctMulaidPay float64 `json:"acct_mulaid_pay"` AcctPay float64 `json:"acct_pay"` ActPayDedc float64 `json:"act_pay_dedc"` Age float64 `json:"age"` Balc float64 `json:"balc"` Certno string `json:"certno"` ClrOptins string `json:"clr_optins"` ClrType string `json:"clr_type"` ClrWay string `json:"clr_way"` CvlservFlag string `json:"cvlserv_flag"` CvlservPay float64 `json:"cvlserv_pay"` FulamtOwnpayAmt float64 `json:"fulamt_ownpay_amt"` FundPaySumamt float64 `json:"fund_pay_sumamt"` Gend string `json:"gend"` HifesPay float64 `json:"hifes_pay"` HifmiPay float64 `json:"hifmi_pay"` HifpPay float64 `json:"hifp_pay"` HospPartAmt float64 `json:"hosp_part_amt"` InscpScpAmt float64 `json:"inscp_scp_amt"` Insutype string `json:"insutype"` MafPay float64 `json:"maf_pay"` MdtrtCertType string `json:"mdtrt_cert_type"` HifobPay float64 `json:"hifob_pay"` MdtrtID string `json:"mdtrt_id"` MedType string `json:"med_type"` MedfeeSumamt float64 `json:"medfee_sumamt"` MedinsSetlID string `json:"medins_setl_id"` Naty string `json:"naty"` OthPay float64 `json:"oth_pay"` OverlmtSelfpay float64 `json:"overlmt_selfpay"` PoolPropSelfpay string `json:"pool_prop_selfpay"` PreselfpayAmt float64 `json:"preselfpay_amt"` PsnCashPay float64 `json:"psn_cash_pay"` PsnCertType string `json:"psn_cert_type"` PsnName string `json:"psn_name"` PsnNo string `json:"psn_no"` PsnPartAmt float64 `json:"psn_part_amt"` PsnType string `json:"psn_type"` SetlID string `json:"setl_id"` SetlTime string `json:"setl_time"` } `json:"setlinfo"` Setldetail interface{} `json:"setldetail"` } `json:"output"` RefmsgTime string `json:"refmsg_time"` RespondTime string `json:"respond_time"` Signtype interface{} `json:"signtype"` WarnMsg interface{} `json:"warn_msg"` } type ResultEight struct { Cainfo string `json:"cainfo"` ErrMsg string `json:"err_msg"` InfRefmsgid string `json:"inf_refmsgid"` Infcode int64 `json:"infcode"` Output struct { Stmtinfo struct { SetlOptins string `json:"setl_optins"` StmtRslt string `json:"stmt_rslt"` StmtRsltDscr string `json:"stmt_rslt_dscr"` } `json:"stmtinfo"` } `json:"output"` RefmsgTime string `json:"refmsg_time"` RespondTime string `json:"respond_time"` Signtype interface{} `json:"signtype"` WarnMsg interface{} `json:"warn_msg"` } type ResultEightFor10188 struct { Cainfo string `json:"cainfo"` ErrMsg string `json:"err_msg"` InfRefmsgid string `json:"inf_refmsgid"` Infcode string `json:"infcode"` Output struct { Stmtinfo struct { SetlOptins string `json:"setl_optins"` StmtRslt string `json:"stmt_rslt"` StmtRsltDscr string `json:"stmt_rslt_dscr"` } `json:"stmtinfo"` } `json:"output"` RefmsgTime string `json:"refmsg_time"` RespondTime string `json:"respond_time"` Signtype interface{} `json:"signtype"` WarnMsg interface{} `json:"warn_msg"` } type ResultNine struct { Cainfo string `json:"cainfo"` ErrMsg string `json:"err_msg"` InfRefmsgid string `json:"inf_refmsgid"` Infcode int64 `json:"infcode"` Output struct { FileQuryNo string `json:"file_qury_no"` } `json:"output"` RefmsgTime string `json:"refmsg_time"` RespondTime string `json:"respond_time"` Signtype interface{} `json:"signtype"` WarnMsg interface{} `json:"warn_msg"` } type ResultTen struct { Cainfo string `json:"cainfo"` ErrMsg string `json:"err_msg"` InfRefmsgid string `json:"inf_refmsgid"` Infcode int64 `json:"infcode"` Output struct { Fileinfo struct { DldEndtime string `json:"dld_endtime"` FileQuryNo string `json:"file_qury_no"` Filename string `json:"filename"` } `json:"fileinfo"` } `json:"output"` RefmsgTime string `json:"refmsg_time"` RespondTime string `json:"respond_time"` Signtype interface{} `json:"signtype"` WarnMsg interface{} `json:"warn_msg"` } type Result5262 struct { ErrMsg string `json:"err_msg"` InfRefmsgid string `json:"inf_refmsgid"` Infcode int64 `json:"infcode"` Output struct { PageInfo struct { Size int `json:"size"` RecordCounts int `json:"record_counts"` } `json:"page_info"` Idetinfo []interface{} `json:"idetinfo"` Result []struct { SetlID string `json:"setl_id"` MedinsSetlID string `json:"medins_setl_id,omitempty"` MdtrtID string `json:"mdtrt_id"` InitSetlID string `json:"init_setl_id,omitempty"` PsnNo string `json:"psn_no"` PsnInsuRltsID string `json:"psn_insu_rlts_id,omitempty"` PsnName string `json:"psn_name"` PsnCertType string `json:"psn_cert_type"` Certno string `json:"certno"` Gend string `json:"gend,omitempty"` Naty string `json:"naty,omitempty"` Brdy string `json:"brdy,omitempty"` Age float64 `json:"age,omitempty"` Insutype string `json:"insutype,omitempty"` PsnType string `json:"psn_type"` CvlservFlag string `json:"cvlserv_flag"` CvlservLv string `json:"cvlserv_lv,omitempty"` SpPsnType string `json:"sp_psn_type,omitempty"` SpPsnTypeLv string `json:"sp_psn_type_lv,omitempty"` ClctGrde string `json:"clct_grde,omitempty"` FlxempeFlag string `json:"flxempe_flag,omitempty"` NwbFlag string `json:"nwb_flag,omitempty"` InsuAdmdvs string `json:"insu_admdvs"` EmpNo string `json:"emp_no,omitempty"` EmpName string `json:"emp_name,omitempty"` EmpType string `json:"emp_type,omitempty"` EconType string `json:"econ_type,omitempty"` AfilIndu string `json:"afil_indu,omitempty"` AfilRlts string `json:"afil_rlts,omitempty"` EmpMgtType string `json:"emp_mgt_type,omitempty"` PayLoc string `json:"pay_loc,omitempty"` FixmedinsCode string `json:"fixmedins_code"` FixmedinsName string `json:"fixmedins_name"` HospLv string `json:"hosp_lv,omitempty"` FixBlngAdmdvs string `json:"fix_blng_admdvs,omitempty"` LmtpricHospLv string `json:"lmtpric_hosp_lv,omitempty"` DedcHospLv string `json:"dedc_hosp_lv,omitempty"` Begndate string `json:"begndate"` Enddate string `json:"enddate"` SetlTime string `json:"setl_time"` MdtrtCertType string `json:"mdtrt_cert_type,omitempty"` MdtrtCertNo string `json:"mdtrt_cert_no,omitempty"` MedType string `json:"med_type"` SetlType string `json:"setl_type,omitempty"` ClrType string `json:"clr_type,omitempty"` ClrWay string `json:"clr_way,omitempty"` PsnSetlway string `json:"psn_setlway,omitempty"` ClrOptins string `json:"clr_optins,omitempty"` MedfeeSumamt float64 `json:"medfee_sumamt,omitempty"` FulamtOwnpayAmt float64 `json:"fulamt_ownpay_amt,omitempty"` OverlmtSelfpay float64 `json:"overlmt_selfpay,omitempty"` PreselfpayAmt float64 `json:"preselfpay_amt,omitempty"` InscpAmt float64 `json:"inscp_amt,omitempty"` DedcStd float64 `json:"dedc_std,omitempty"` CrtDedc float64 `json:"crt_dedc,omitempty"` ActPayDedc float64 `json:"act_pay_dedc,omitempty"` HifpPay float64 `json:"hifp_pay,omitempty"` PoolPropSelfpay float64 `json:"pool_prop_selfpay,omitempty"` HiAgreSumfee float64 `json:"hi_agre_sumfee,omitempty"` CvlservPay float64 `json:"cvlserv_pay,omitempty"` HifesPay float64 `json:"hifes_pay,omitempty"` HifmiPay float64 `json:"hifmi_pay,omitempty"` HifobPay float64 `json:"hifob_pay,omitempty"` HifdmPay float64 `json:"hifdm_pay,omitempty"` MafPay float64 `json:"maf_pay,omitempty"` OthfundPay float64 `json:"othfund_pay,omitempty"` FundPaySumamt float64 `json:"fund_pay_sumamt,omitempty"` PsnPay float64 `json:"psn_pay,omitempty"` AcctPay float64 `json:"acct_pay,omitempty"` CashPayamt float64 `json:"cash_payamt,omitempty"` OwnpayHospPart float64 `json:"ownpay_hosp_part,omitempty"` Balc float64 `json:"balc,omitempty"` AcctMulaidPay float64 `json:"acct_mulaid_pay,omitempty"` RefdSetlFlag string `json:"refd_setl_flag,omitempty"` CalIptCnt string `json:"cal_ipt_cnt,omitempty"` SetlCashpayWay string `json:"setl_cashpay_way,omitempty"` Year string `json:"year,omitempty"` DiseNo string `json:"dise_no,omitempty"` DiseName string `json:"dise_name,omitempty"` Invono string `json:"invono,omitempty"` ManlReimRea string `json:"manl_reim_rea,omitempty"` ValiFlag string `json:"vali_flag,omitempty"` Memo string `json:"memo,omitempty"` Rid string `json:"rid"` UpdtTime string `json:"updt_time,omitempty"` CrterID string `json:"crter_id,omitempty"` CrterName string `json:"crter_name,omitempty"` CrteTime string `json:"crte_time,omitempty"` CrteOptinsNo string `json:"crte_optins_no,omitempty"` OpterID string `json:"opter_id,omitempty"` OpterName string `json:"opter_name,omitempty"` OptTime string `json:"opt_time,omitempty"` OptinsNo string `json:"optins_no,omitempty"` PoolareaNo string `json:"poolarea_no,omitempty"` } `json:"result"` } `json:"output"` RefmsgTime string `json:"refmsg_time"` RespondTime string `json:"respond_time"` Signtype interface{} `json:"signtype"` WarnInfo interface{} `json:"warn_info"` } type Result5267 struct { ErrMsg string `json:"err_msg"` InfRefmsgid string `json:"inf_refmsgid"` Infcode int64 `json:"infcode"` Output struct { PageInfo struct { Size int `json:"size"` RecordCounts int `json:"record_counts"` } `json:"pageinfo"` Result []struct { SetlID string `json:"setl_id"` ClrOptins string `json:"clr_optins"` MedinsSetlID string `json:"medins_setl_id,omitempty"` MdtrtID string `json:"mdtrt_id"` InitSetlID string `json:"init_setl_id,omitempty"` PsnNo string `json:"psn_no"` PsnInsuRltsID string `json:"psn_insu_rlts_id,omitempty"` PsnName string `json:"psn_name"` PsnCertType string `json:"psn_cert_type"` Certno string `json:"certno"` Gend string `json:"gend,omitempty"` Naty string `json:"naty,omitempty"` Brdy string `json:"brdy,omitempty"` Age float64 `json:"age,omitempty"` Insutype string `json:"insutype,omitempty"` PsnType string `json:"psn_type"` CvlservFlag string `json:"cvlserv_flag"` CvlservLv string `json:"cvlserv_lv,omitempty"` SpPsnType string `json:"sp_psn_type,omitempty"` SpPsnTypeLv string `json:"sp_psn_type_lv,omitempty"` ClctGrde string `json:"clct_grde,omitempty"` FlxempeFlag string `json:"flxempe_flag,omitempty"` NwbFlag string `json:"nwb_flag,omitempty"` InsuAdmdvs string `json:"insu_admdvs"` EmpNo string `json:"emp_no,omitempty"` EmpName string `json:"emp_name,omitempty"` EmpType string `json:"emp_type,omitempty"` EconType string `json:"econ_type,omitempty"` AfilIndu string `json:"afil_indu,omitempty"` AfilRlts string `json:"afil_rlts,omitempty"` EmpMgtType string `json:"emp_mgt_type,omitempty"` PayLoc string `json:"pay_loc,omitempty"` FixmedinsCode string `json:"fixmedins_code"` FixmedinsName string `json:"fixmedins_name"` HospLv string `json:"hosp_lv,omitempty"` FixBlngAdmdvs string `json:"fix_blng_admdvs,omitempty"` LmtpricHospLv string `json:"lmtpric_hosp_lv,omitempty"` DedcHospLv string `json:"dedc_hosp_lv,omitempty"` Begndate string `json:"begndate,omitempty"` Enddate string `json:"enddate,omitempty"` SetlTime string `json:"setl_time,omitempty"` MdtrtCertType string `json:"mdtrt_cert_type,omitempty"` MdtrtCertNo string `json:"mdtrt_cert_no,omitempty"` MedType string `json:"med_type"` SetlType string `json:"setl_type,omitempty"` ClrType string `json:"clr_type,omitempty"` ClrWay string `json:"clr_way,omitempty"` PsnSetlway string `json:"psn_setlway,omitempty"` MedfeeSumamt float64 `json:"medfee_sumamt,omitempty"` FulamtOwnpayAmt float64 `json:"fulamt_ownpay_amt,omitempty"` OverlmtSelfpay float64 `json:"overlmt_selfpay,omitempty"` PreselfpayAmt float64 `json:"preselfpay_amt,omitempty"` InscpAmt float64 `json:"inscp_amt,omitempty"` DedcStd float64 `json:"dedc_std,omitempty"` CrtDedc float64 `json:"crt_dedc,omitempty"` ActPayDedc float64 `json:"act_pay_dedc,omitempty"` HifpPay float64 `json:"hifp_pay,omitempty"` PoolPropSelfpay float64 `json:"pool_prop_selfpay,omitempty"` HiAgreSumfee float64 `json:"hi_agre_sumfee,omitempty"` CvlservPay float64 `json:"cvlserv_pay,omitempty"` HifesPay float64 `json:"hifes_pay,omitempty"` HifmiPay float64 `json:"hifmi_pay,omitempty"` HifobPay float64 `json:"hifob_pay,omitempty"` HifdmPay float64 `json:"hifdm_pay,omitempty"` MafPay float64 `json:"maf_pay,omitempty"` OthfundPay float64 `json:"othfund_pay,omitempty"` FundPaySumamt float64 `json:"fund_pay_sumamt,omitempty"` PsnPay float64 `json:"psn_pay,omitempty"` AcctPay float64 `json:"acct_pay,omitempty"` CashPayamt float64 `json:"cash_payamt,omitempty"` OwnpayHospPart float64 `json:"ownpay_hosp_part,omitempty"` Balc float64 `json:"balc,omitempty"` AcctMulaidPay float64 `json:"acct_mulaid_pay,omitempty"` RefdSetlFlag string `json:"refd_setl_flag,omitempty"` CalIptCnt string `json:"cal_ipt_cnt,omitempty"` SetlCashpayWay string `json:"setl_cashpay_way,omitempty"` Year string `json:"year,omitempty"` DiseNo string `json:"dise_no,omitempty"` DiseName string `json:"dise_name,omitempty"` Invono string `json:"invono,omitempty"` ManlReimRea string `json:"manl_reim_rea,omitempty"` Memo string `json:"memo,omitempty"` UpdtTime string `json:"updt_time,omitempty"` OpterID string `json:"opter_id,omitempty"` OpterName string `json:"opter_name,omitempty"` OptTime string `json:"opt_time,omitempty"` OptinsNo string `json:"optins_no,omitempty"` PoolareaNo string `json:"poolarea_no,omitempty"` } `json:"result"` } `json:"output"` RefmsgTime string `json:"refmsg_time"` RespondTime string `json:"respond_time"` Signtype interface{} `json:"signtype"` WarnInfo interface{} `json:"warn_info"` } // type Autogenerated struct { // Output struct { // Setlinfo struct { // SetlTime string `json:"setl_time"` // CvlservPay float64 `json:"cvlserv_pay"` // Year string `json:"year"` // MedType string `json:"med_type"` // PsnPay float64 `json:"psn_pay"` // OpterID string `json:"opter_id"` // Begndate string `json:"begndate"` // FlxempeFlag string `json:"flxempe_flag"` // HifmiPay float64 `json:"hifmi_pay"` // PsnNo string `json:"psn_no"` // ActPayDedc float64 `json:"act_pay_dedc"` // MedinsSetlID interface{} `json:"medins_setl_id"` // AcctMulaidPay interface{} `json:"acct_mulaid_pay"` // ClrWay string `json:"clr_way"` // OthPay float64 `json:"oth_pay"` // Gend string `json:"gend"` // MdtrtID string `json:"mdtrt_id"` // AcctPay float64 `json:"acct_pay"` // InscpScpAmt float64 `json:"inscp_scp_amt"` // Insutype string `json:"insutype"` // Invono interface{} `json:"invono"` // Enddate string `json:"enddate"` // CashPayamt float64 `json:"cash_payamt"` // PsnType string `json:"psn_type"` // FixmedinsName string `json:"fixmedins_name"` // HifpPay float64 `json:"hifp_pay"` // NewFlag interface{} `json:"new_flag"` // OverlmtSelfpay float64 `json:"overlmt_selfpay"` // PreselfpayAmt float64 `json:"preselfpay_amt"` // PayLoc string `json:"pay_loc"` // ClrType string `json:"clr_type"` // RefdSetlFlag string `json:"refd_setl_flag"` // CvlservFlag string `json:"cvlserv_flag"` // EmpName string `json:"emp_name"` // Brdy string `json:"brdy"` // Naty string `json:"naty"` // Certno string `json:"certno"` // DiseCode string `json:"dise_code"` // FixmedinsCode string `json:"fixmedins_code"` // DedcHospLv string `json:"dedc_hosp_lv"` // OpterName string `json:"opter_name"` // Balc float64 `json:"balc"` // FixmedinsPoolarea string `json:"fixmedins_poolarea"` // PsnCertType string `json:"psn_cert_type"` // HifobPay float64 `json:"hifob_pay"` // MedfeeSumamt float64 `json:"medfee_sumamt"` // HifesPay float64 `json:"hifes_pay"` // FundPaySumamt float64 `json:"fund_pay_sumamt"` // OptTime string `json:"opt_time"` // FulamtOwnpayAmt float64 `json:"fulamt_ownpay_amt"` // SetlID string `json:"setl_id"` // MafPay float64 `json:"maf_pay"` // PsnName string `json:"psn_name"` // InsuOptins interface{} `json:"insu_optins"` // PrefFundPay interface{} `json:"pref_fund_pay"` // ClrOptins string `json:"clr_optins"` // PoolPropSelfpay float64 `json:"pool_prop_selfpay"` // DiseName string `json:"dise_name"` // LmtpricHospLv string `json:"lmtpric_hosp_lv"` // Age float64 `json:"age"` // DtrtCertType string `json:"dtrt_cert_type"` // HospLv string `json:"hosp_lv"` // } `json:"setlinfo"` // Setldetail []struct { // FundPayType string `json:"fund_pay_type"` // FundPayamt float64 `json:"fund_payamt"` // SetlProcInfo interface{} `json:"setl_proc_info"` // CrtPaybLmtAmt interface{} `json:"crt_payb_lmt_amt"` // InscpScpAmt interface{} `json:"inscp_scp_amt"` // FundPayTypeName interface{} `json:"fund_pay_type_name"` // PrefFundPay interface{} `json:"pref_fund_pay"` // } `json:"setldetail"` // } `json:"output"` // Infcode int `json:"infcode"` // WarnMsg interface{} `json:"warn_msg"` // Cainfo interface{} `json:"cainfo"` // ErrMsg interface{} `json:"err_msg"` // RefmsgTime string `json:"refmsg_time"` // Signtype interface{} `json:"signtype"` // RespondTime string `json:"respond_time"` // InfRefmsgid string `json:"inf_refmsgid"` // } type Result002 struct { Cainfo interface{} `json:"cainfo"` ErrMsg string `json:"err_msg"` InfRefmsgid string `json:"inf_refmsgid"` Infcode int64 `json:"infcode"` Output struct { RxFile string `json:"rx_file"` SignDigest string `json:"sign_digest"` SignCertSn string `json:"sign_cert_sn"` SignCertDn string `json:"sign_cert_dn"` } `json:"output"` RefmsgTime string `json:"refmsg_time"` RespondTime string `json:"respond_time"` Signtype interface{} `json:"signtype"` WarnMsg interface{} `json:"warn_msg"` } type Result003 struct { Cainfo interface{} `json:"cainfo"` ErrMsg string `json:"err_msg"` InfRefmsgid string `json:"inf_refmsgid"` Infcode int64 `json:"infcode"` Output struct { HiRxno string `json:"hi_rxno"` RxStasCodg string `json:"rx_stas_codg"` RxStasName string `json:"rx_stas_name"` } `json:"output"` RefmsgTime string `json:"refmsg_time"` RespondTime string `json:"respond_time"` Signtype interface{} `json:"signtype"` WarnMsg interface{} `json:"warn_msg"` } type ResultEleven struct { Cainfo string `json:"cainfo"` ErrMsg string `json:"err_msg"` InfRefmsgid string `json:"inf_refmsgid"` Infcode int64 `json:"infcode"` Output struct { Setlinfo struct { SetlTime string `json:"setl_time"` CvlservPay float64 `json:"cvlserv_pay"` Year string `json:"year"` MedType string `json:"med_type"` PsnPay float64 `json:"psn_pay"` OpterID string `json:"opter_id"` Begndate string `json:"begndate"` FlxempeFlag string `json:"flxempe_flag"` HifmiPay float64 `json:"hifmi_pay"` PsnNo string `json:"psn_no"` ActPayDedc float64 `json:"act_pay_dedc"` MedinsSetlID interface{} `json:"medins_setl_id"` AcctMulaidPay interface{} `json:"acct_mulaid_pay"` ClrWay string `json:"clr_way"` OthPay float64 `json:"oth_pay"` Gend string `json:"gend"` MdtrtID string `json:"mdtrt_id"` AcctPay float64 `json:"acct_pay"` InscpScpAmt float64 `json:"inscp_scp_amt"` Insutype string `json:"insutype"` Invono interface{} `json:"invono"` Enddate string `json:"enddate"` CashPayamt float64 `json:"cash_payamt"` PsnType string `json:"psn_type"` FixmedinsName string `json:"fixmedins_name"` HifpPay float64 `json:"hifp_pay"` NewFlag interface{} `json:"new_flag"` OverlmtSelfpay float64 `json:"overlmt_selfpay"` PreselfpayAmt float64 `json:"preselfpay_amt"` PayLoc string `json:"pay_loc"` ClrType string `json:"clr_type"` RefdSetlFlag string `json:"refd_setl_flag"` CvlservFlag string `json:"cvlserv_flag"` EmpName string `json:"emp_name"` Brdy string `json:"brdy"` Naty string `json:"naty"` Certno string `json:"certno"` DiseCode string `json:"dise_code"` FixmedinsCode string `json:"fixmedins_code"` DedcHospLv string `json:"dedc_hosp_lv"` OpterName string `json:"opter_name"` Balc float64 `json:"balc"` FixmedinsPoolarea string `json:"fixmedins_poolarea"` PsnCertType string `json:"psn_cert_type"` HifobPay float64 `json:"hifob_pay"` MedfeeSumamt float64 `json:"medfee_sumamt"` HifesPay float64 `json:"hifes_pay"` FundPaySumamt float64 `json:"fund_pay_sumamt"` OptTime string `json:"opt_time"` FulamtOwnpayAmt float64 `json:"fulamt_ownpay_amt"` SetlID string `json:"setl_id"` MafPay float64 `json:"maf_pay"` PsnName string `json:"psn_name"` InsuOptins interface{} `json:"insu_optins"` PrefFundPay interface{} `json:"pref_fund_pay"` ClrOptins string `json:"clr_optins"` PoolPropSelfpay float64 `json:"pool_prop_selfpay"` DiseName string `json:"dise_name"` LmtpricHospLv string `json:"lmtpric_hosp_lv"` Age float64 `json:"age"` DtrtCertType string `json:"dtrt_cert_type"` HospLv string `json:"hosp_lv"` PsnCashPay float64 `json:"psn_cash_pay"` } `json:"setlinfo"` } `json:"output"` RefmsgTime string `json:"refmsg_time"` RespondTime string `json:"respond_time"` Signtype interface{} `json:"signtype"` WarnMsg interface{} `json:"warn_msg"` } type ResultElevenah struct { Cainfo string `json:"cainfo"` ErrMsg string `json:"err_msg"` InfRefmsgid string `json:"inf_refmsgid"` Infcode int64 `json:"infcode"` Output struct { Setlinfo struct { SetlTime int64 `json:"setl_time"` CvlservPay float64 `json:"cvlserv_pay"` Year string `json:"year"` MedType string `json:"med_type"` PsnPay float64 `json:"psn_pay"` OpterID string `json:"opter_id"` Begndate int64 `json:"begndate"` FlxempeFlag string `json:"flxempe_flag"` HifmiPay float64 `json:"hifmi_pay"` PsnNo string `json:"psn_no"` ActPayDedc float64 `json:"act_pay_dedc"` MedinsSetlID interface{} `json:"medins_setl_id"` AcctMulaidPay interface{} `json:"acct_mulaid_pay"` ClrWay string `json:"clr_way"` OthPay float64 `json:"oth_pay"` Gend string `json:"gend"` MdtrtID string `json:"mdtrt_id"` AcctPay float64 `json:"acct_pay"` InscpScpAmt float64 `json:"inscp_scp_amt"` Insutype string `json:"insutype"` Invono interface{} `json:"invono"` Enddate int64 `json:"enddate"` CashPayamt float64 `json:"cash_payamt"` PsnType string `json:"psn_type"` FixmedinsName string `json:"fixmedins_name"` HifpPay float64 `json:"hifp_pay"` NewFlag interface{} `json:"new_flag"` OverlmtSelfpay float64 `json:"overlmt_selfpay"` PreselfpayAmt float64 `json:"preselfpay_amt"` PayLoc string `json:"pay_loc"` ClrType string `json:"clr_type"` RefdSetlFlag string `json:"refd_setl_flag"` CvlservFlag string `json:"cvlserv_flag"` EmpName string `json:"emp_name"` Brdy int64 `json:"brdy"` Naty string `json:"naty"` Certno string `json:"certno"` DiseCode string `json:"dise_code"` FixmedinsCode string `json:"fixmedins_code"` DedcHospLv string `json:"dedc_hosp_lv"` OpterName string `json:"opter_name"` Balc float64 `json:"balc"` FixmedinsPoolarea string `json:"fixmedins_poolarea"` PsnCertType string `json:"psn_cert_type"` HifobPay float64 `json:"hifob_pay"` MedfeeSumamt float64 `json:"medfee_sumamt"` HifesPay float64 `json:"hifes_pay"` FundPaySumamt float64 `json:"fund_pay_sumamt"` OptTime int64 `json:"opt_time"` FulamtOwnpayAmt float64 `json:"fulamt_ownpay_amt"` SetlID string `json:"setl_id"` MafPay float64 `json:"maf_pay"` PsnName string `json:"psn_name"` InsuOptins interface{} `json:"insu_optins"` PrefFundPay interface{} `json:"pref_fund_pay"` ClrOptins string `json:"clr_optins"` PoolPropSelfpay float64 `json:"pool_prop_selfpay"` DiseName string `json:"dise_name"` LmtpricHospLv string `json:"lmtpric_hosp_lv"` Age float64 `json:"age"` DtrtCertType string `json:"dtrt_cert_type"` HospLv string `json:"hosp_lv"` PsnCashPay float64 `json:"psn_cash_pay"` } `json:"setlinfo"` } `json:"output"` RefmsgTime string `json:"refmsg_time"` RespondTime string `json:"respond_time"` Signtype interface{} `json:"signtype"` WarnMsg interface{} `json:"warn_msg"` } type ResultEleven10265 struct { Cainfo string `json:"cainfo"` ErrMsg string `json:"err_msg"` InfRefmsgid string `json:"inf_refmsgid"` Infcode string `json:"infcode"` Output struct { Setlinfo struct { SetlTime string `json:"setl_time"` CvlservPay float64 `json:"cvlserv_pay"` Year string `json:"year"` MedType string `json:"med_type"` PsnPay float64 `json:"psn_pay"` OpterID string `json:"opter_id"` Begndate string `json:"begndate"` FlxempeFlag string `json:"flxempe_flag"` HifmiPay float64 `json:"hifmi_pay"` PsnNo string `json:"psn_no"` ActPayDedc float64 `json:"act_pay_dedc"` MedinsSetlID interface{} `json:"medins_setl_id"` AcctMulaidPay interface{} `json:"acct_mulaid_pay"` ClrWay string `json:"clr_way"` OthPay float64 `json:"oth_pay"` Gend string `json:"gend"` MdtrtID string `json:"mdtrt_id"` AcctPay float64 `json:"acct_pay"` InscpScpAmt float64 `json:"inscp_scp_amt"` Insutype string `json:"insutype"` Invono interface{} `json:"invono"` Enddate string `json:"enddate"` CashPayamt float64 `json:"cash_payamt"` PsnType string `json:"psn_type"` FixmedinsName string `json:"fixmedins_name"` HifpPay float64 `json:"hifp_pay"` NewFlag interface{} `json:"new_flag"` OverlmtSelfpay float64 `json:"overlmt_selfpay"` PreselfpayAmt float64 `json:"preselfpay_amt"` PayLoc string `json:"pay_loc"` ClrType string `json:"clr_type"` RefdSetlFlag string `json:"refd_setl_flag"` CvlservFlag string `json:"cvlserv_flag"` EmpName string `json:"emp_name"` Brdy string `json:"brdy"` Naty string `json:"naty"` Certno string `json:"certno"` DiseCode string `json:"dise_code"` FixmedinsCode string `json:"fixmedins_code"` DedcHospLv string `json:"dedc_hosp_lv"` OpterName string `json:"opter_name"` Balc float64 `json:"balc"` FixmedinsPoolarea string `json:"fixmedins_poolarea"` PsnCertType string `json:"psn_cert_type"` HifobPay float64 `json:"hifob_pay"` MedfeeSumamt float64 `json:"medfee_sumamt"` HifesPay float64 `json:"hifes_pay"` FundPaySumamt float64 `json:"fund_pay_sumamt"` OptTime string `json:"opt_time"` FulamtOwnpayAmt float64 `json:"fulamt_ownpay_amt"` SetlID string `json:"setl_id"` MafPay float64 `json:"maf_pay"` PsnName string `json:"psn_name"` InsuOptins interface{} `json:"insu_optins"` PrefFundPay interface{} `json:"pref_fund_pay"` ClrOptins string `json:"clr_optins"` PoolPropSelfpay float64 `json:"pool_prop_selfpay"` DiseName string `json:"dise_name"` LmtpricHospLv string `json:"lmtpric_hosp_lv"` Age float64 `json:"age"` DtrtCertType string `json:"dtrt_cert_type"` HospLv string `json:"hosp_lv"` PsnCashPay float64 `json:"psn_cash_pay"` } `json:"setlinfo"` } `json:"output"` RefmsgTime string `json:"refmsg_time"` RespondTime string `json:"respond_time"` Signtype interface{} `json:"signtype"` WarnMsg interface{} `json:"warn_msg"` } type ResultTwelve struct { Cainfo string `json:"cainfo"` ErrMsg string `json:"err_msg"` InfRefmsgid string `json:"inf_refmsgid"` Infcode int64 `json:"infcode"` Output struct { MdtrtId string `json:"mdtrt_id"` ChrgBchno string `json:"chrg_bchno"` PsnNo string `json:"psn_no"` } `json:"output"` RefmsgTime string `json:"refmsg_time"` RespondTime string `json:"respond_time"` Signtype interface{} `json:"signtype"` WarnMsg interface{} `json:"warn_msg"` } type ResultThirteen struct { ErrMsg string `json:"err_msg"` InfRefmsgid string `json:"inf_refmsgid"` Infcode int64 `json:"infcode"` Output struct { Result struct { TrtDclaDetlSn string `json:"trt_dcla_detl_sn"` } `json:"result"` } `json:"output"` RefmsgTime string `json:"refmsg_time"` RespondTime string `json:"respond_time"` Signtype interface{} `json:"signtype"` WarnInfo interface{} `json:"warn_info"` } type ResultThirteen10265 struct { ErrMsg string `json:"err_msg"` InfRefmsgid string `json:"inf_refmsgid"` Infcode string `json:"infcode"` Output struct { Result struct { TrtDclaDetlSn string `json:"trt_dcla_detl_sn"` } `json:"result"` } `json:"output"` RefmsgTime string `json:"refmsg_time"` RespondTime string `json:"respond_time"` Signtype interface{} `json:"signtype"` WarnInfo interface{} `json:"warn_info"` } type ResultFourteen struct { ErrMsg string `json:"err_msg"` InfRefmsgid string `json:"inf_refmsgid"` Infcode int64 `json:"infcode"` Output struct { } `json:"output"` RefmsgTime string `json:"refmsg_time"` RespondTime string `json:"respond_time"` Signtype interface{} `json:"signtype"` WarnInfo interface{} `json:"warn_info"` } type ResultCFYLJG001 struct { ErrMsg string `json:"err_msg"` InfRefmsgid string `json:"inf_refmsgid"` Infcode int64 `json:"infcode"` Output struct { RxTraceCode string `json:"rx_trace_code"` HiRxno string `json:"hi_rxno"` } `json:"output"` RefmsgTime string `json:"refmsg_time"` RespondTime string `json:"respond_time"` Signtype interface{} `json:"signtype"` WarnInfo interface{} `json:"warn_info"` } type ResultCFYLJG007 struct { ErrMsg string `json:"err_msg"` InfRefmsgid string `json:"inf_refmsgid"` Infcode int64 `json:"infcode"` Output struct { HiRxno string `json:"hi_rxno"` RxStasName string `json:"rx_stas_name"` RxUsedStasCodg string `json:"rx_used_stas_codg"` Seltdelts []interface{} `json:"seltdelts"` RxUsedStasName string `json:"rx_used_stas_name"` RxStasCodg string `json:"rx_stas_codg"` } `json:"output"` RefmsgTime string `json:"refmsg_time"` RespondTime string `json:"respond_time"` Signtype interface{} `json:"signtype"` WarnInfo interface{} `json:"warn_info"` } type ResultCFYLJG002 struct { ErrMsg string `json:"err_msg"` InfRefmsgid string `json:"inf_refmsgid"` Infcode int64 `json:"infcode"` Output struct { RxFile string `json:"rx_file"` SignDigest string `json:"sign_digest"` SignCertSn string `json:"sign_cert_sn"` SignCertDn string `json:"sign_cert_dn"` } `json:"output"` RefmsgTime string `json:"refmsg_time"` RespondTime string `json:"respond_time"` Signtype interface{} `json:"signtype"` WarnInfo interface{} `json:"warn_info"` } type ResultCFYLJG003 struct { ErrMsg string `json:"err_msg"` InfRefmsgid string `json:"inf_refmsgid"` Infcode int64 `json:"infcode"` Output struct { HiRxno string `json:"hi_rxno"` RxStasCodg string `json:"rx_stas_codg"` RxStasName string `json:"rx_stas_name"` } `json:"output"` RefmsgTime string `json:"refmsg_time"` RespondTime string `json:"respond_time"` Signtype interface{} `json:"signtype"` WarnInfo interface{} `json:"warn_info"` } type ResultCFYLJG004 struct { ErrMsg string `json:"err_msg"` InfRefmsgid string `json:"inf_refmsgid"` Infcode int64 `json:"infcode"` Output struct { HiRxno string `json:"hi_rxno"` RxStasCodg string `json:"rx_stas_codg"` RxStasName string `json:"rx_stas_name"` } `json:"output"` RefmsgTime string `json:"refmsg_time"` RespondTime string `json:"respond_time"` Signtype interface{} `json:"signtype"` WarnInfo interface{} `json:"warn_info"` } type ResultCFYLJG008 struct { ErrMsg string `json:"err_msg"` InfRefmsgid string `json:"inf_refmsgid"` Infcode int64 `json:"infcode"` Output struct { PoolareaNo string `json:"poolareaNo"` AdmdvsName string `json:"admdvsName"` Count string `json:"count"` } `json:"output"` RefmsgTime string `json:"refmsg_time"` RespondTime string `json:"respond_time"` Signtype interface{} `json:"signtype"` WarnInfo interface{} `json:"warn_info"` } type ResultCFYLJG005 struct { ErrMsg string `json:"err_msg"` InfRefmsgid string `json:"inf_refmsgid"` Infcode int64 `json:"infcode"` Output struct { HiRxNo string `json:"hi_rxno"` FixMedinsCode string `json:"fixmedins_code"` FixMedinsName string `json:"fixmedins_name"` RxStasCodg string `json:"rx_stas_codg"` RxStasName string `json:"rx_stas_name"` RxUserdStasCog string `json:"rx_userd_stas_cog"` RxUserdStasName string `json:"rx_userd_stas_name"` PrscTime string `json:"prsc_time"` RxDrugCnt float64 `json:"rx_drug_cnt"` RxUsedWayCodg string `json:"rx_used_way_codg"` RxUsedWayName string `json:"rx_used_way_name"` RxFrquCodg string `json:"rx_frqu_codg"` RxFrquName string `json:"rx_frqu_name"` RxDosunt string `json:"rx_dosunt"` RxDoscnt float64 `json:"rx_doscnt"` RxDrordDscr string `json:"rx_drord_dscr"` ValiDays int64 `json:"vali_days"` ValiEndTime string `json:"vali_end_time"` ReptFlag string `json:"rept_flag"` MaxReptCnt int64 `json:"max_rept_cnt"` ReptdCnt int64 `json:"reptd_cnt"` MinInrvDays int64 `json:"min_inrv_days"` RxTypeCode string `json:"rx_type_code"` RxTypeName string `json:"rx_type_name"` LongRxFlag string `json:"long_rx_flag"` RxDetlList []struct { MedListCodg string `json:"med_list_codg"` MedinsListCodg string `json:"medins_list_codg"` HospPrepFlag string `json:"hosp_prep_flag"` RxItemTypeCode string `json:"rx_item_type_code"` RxItemTypeName string `json:"rx_item_type_name"` TcmDrugTypeName string `json:"tcmdrug_type_name"` TcmDrugTypeCode string `json:"tcmdrug_type_code"` TcmHerbFoote string `json:"tcmherb_foote"` MednTypeCode string `json:"medn_type_code"` MednTypeName string `json:"medn_type_name"` MainMedcFlag string `json:"main_medc_flag"` UrgtFlag string `json:"urgt_flag"` BasMednFlag string `json:"bas_medn_flag"` ImpDrugFlag string `json:"imp_drug_flag"` ProdBarc string `json:"prod_barc"` DrugProdname string `json:"drug_prodname"` GennameCodg string `json:"genname_codg"` DrugGenname string `json:"drug_genname"` DrugDosform string `json:"drug_dosform"` DrugSpec string `json:"drug_spec"` PrdrName string `json:"prdr_name"` MedcWayCodg string `json:"medc_way_codg"` MedcWayDscr string `json:"medc_way_dscr"` MedcBegntime string `json:"medc_begntime"` MedcEndtime string `json:"medc_endtime"` MedcDays float64 `json:"medc_days"` DrugPric float64 `json:"drug_pric"` DrugSumamt float64 `json:"drug_sumamt"` DrugCnt float64 `json:"drug_cnt"` DrugDosunt string `json:"drug_dosunt"` SinDoscnt float64 `json:"sin_doscnt"` SinDosunt string `json:"sin_dosunt"` UsedFrquCodg string `json:"used_frqu_codg"` UsedFrquName string `json:"used_frqu_name"` DrugTotlcnt string `json:"drug_totlcnt"` DrugTotlcntEmp string `json:"drug_totlcnt_emp"` DiseCodg string `json:"dise_codg"` HospApprFlag string `json:"hosp_appr_flag"` } `json:"rx_detl_list"` RxOtpinfo struct { MedType string `json:"med_type"` IptOtpNo string `json:"ipt_otp_no"` OtpIptFlag string `json:"otp_ipt_flag"` PatnName string `json:"patn_name"` PatnAge float64 `json:"patn_age"` PatnHgt float64 `json:"patn_hgt"` PatnWt float64 `json:"patn_wt"` Gend string `json:"gend"` GesoVal float64 `json:"geso_val"` NwbFlag string `json:"nwb_flag"` NwbAge string `json:"nwb_age"` SuckPrdFlag string `json:"suck_prd_flag"` AlgsHis string `json:"algs_his"` Insutype string `json:"insutype"` PrscDeptName string `json:"prsc_dept_name"` PrscDrName string `json:"prsc_dr_name"` PharName string `json:"phar_name"` PharChkTime string `json:"phar_chk_time"` MdtrtTime string `json:"mdtrt_time"` DiseCodg string `json:"dise_codg"` DiseName string `json:"dise_name"` SpDiseFlag string `json:"sp_dise_flag"` MaindiagCode string `json:"maindiag_code"` MaindiagName string `json:"maindiag_name"` DiseCondDscr string `json:"dise_cond_dscr"` FstdiagFlag string `json:"fstdiag_flag"` } `json:"rx_otpinfo"` RxDiseList []struct { DiagType string `json:"diag_type"` MaindiagFlag string `json:"maindiag_flag"` DiagSrtNo string `json:"diag_srt_no"` DiagCode string `json:"diag_code"` DiagName string `json:"diag_name"` DiagDept string `json:"diag_dept"` DiagDrNo string `json:"diag_dr_no"` DiagDrName string `json:"diag_dr_name"` DiagTime string `json:"diag_time"` TcmDiseCode string `json:"tcm_dise_code"` TcmDiseName string `json:"tcm_dise_name"` TcmSympCode string `json:"tcmsymp_code"` TcmSymp string `json:"tcmsymp"` } `json:"rx_dise_list"` } `json:"output"` RefmsgTime string `json:"refmsg_time"` RespondTime string `json:"respond_time"` Signtype interface{} `json:"signtype"` WarnInfo interface{} `json:"warn_info"` } type ResultCFYLJG006 struct { ErrMsg string `json:"err_msg"` InfRefmsgid string `json:"inf_refmsgid"` Infcode int64 `json:"infcode"` Output struct { HiRxNo string `json:"hi_rxno"` PharCode string `json:"phar_code"` PharName string `json:"phar_name"` RxChkOpnn string `json:"rx_chk_opnn"` RxChkTime string `json:"rx_chk_time"` RxChkStasCodg string `json:"rx_chk_stas_codg"` RxChkStasName string `json:"rx_chk_stas_name"` RxStasCodg string `json:"rx_stas_codg"` RxStasName string `json:"rx_stas_name"` } `json:"output"` RefmsgTime string `json:"refmsg_time"` RespondTime string `json:"respond_time"` Signtype interface{} `json:"signtype"` WarnInfo interface{} `json:"warn_info"` } type ResultFourteen10265 struct { ErrMsg string `json:"err_msg"` InfRefmsgid string `json:"inf_refmsgid"` Infcode string `json:"infcode"` Output struct { } `json:"output"` RefmsgTime string `json:"refmsg_time"` RespondTime string `json:"respond_time"` Signtype interface{} `json:"signtype"` WarnInfo interface{} `json:"warn_info"` } type ResultSixteen struct { Cainfo string `json:"cainfo"` ErrMsg string `json:"err_msg"` InfRefmsgid string `json:"inf_refmsgid"` Infcode int64 `json:"infcode"` Output struct { Setlinfo struct { MdtrtID string `json:"mdtrt_id"` SetlID string `json:"setl_id"` ClrOptins string `json:"clr_optins"` SetlTime string `json:"setl_time"` MedfeeSumamt float64 `json:"medfee_sumamt"` FulamtOwnpayAmt float64 `json:"fulamt_ownpay_amt"` OverlmtSelfpay float64 `json:"overlmt_selfpay"` PreselfpayAmt float64 `json:"preselfpay_amt"` InscpScpAmt float64 `json:"inscp_scp_amt"` ActPayDedc float64 `json:"act_pay_dedc"` HifpPay float64 `json:"hifp_pay"` PoolPropSe float64 `json:"pool_prop_selfpay"` Lfpay float64 `json:"selfpay"` CvlservPay float64 `json:"cvlserv_pay"` HifesPay float64 `json:"hifes_pay"` HifmiPay float64 `json:"hifmi_pay"` HifobPay float64 `json:"hifob_pay"` MafPay float64 `json:"maf_pay"` OthPay float64 `json:"oth_pay"` FundPaySumamt float64 `json:"fund_pay_sumamt"` PsnPartAmt float64 `json:"psn_part_amt"` AcctPay float64 `json:"acct_pay"` Balc float64 `json:"balc"` AcctMulaidPay float64 `json:"acct_mulaid_pay"` HospPartAmt float64 `json:"hosp_part_amt"` MedinsSetlID string `json:"medins_setl_id"` PdnCashPay string `json:"pdn_cash_pay"` } `json:"setlinfo"` } `json:"output"` RefmsgTime string `json:"refmsg_time"` RespondTime string `json:"respond_time"` Signtype interface{} `json:"signtype"` WarnMsg interface{} `json:"warn_msg"` } type ResultSixteen10265 struct { Cainfo string `json:"cainfo"` ErrMsg string `json:"err_msg"` InfRefmsgid string `json:"inf_refmsgid"` Infcode string `json:"infcode"` Output struct { Setlinfo struct { MdtrtID string `json:"mdtrt_id"` SetlID string `json:"setl_id"` ClrOptins string `json:"clr_optins"` SetlTime string `json:"setl_time"` MedfeeSumamt float64 `json:"medfee_sumamt"` FulamtOwnpayAmt float64 `json:"fulamt_ownpay_amt"` OverlmtSelfpay float64 `json:"overlmt_selfpay"` PreselfpayAmt float64 `json:"preselfpay_amt"` InscpScpAmt float64 `json:"inscp_scp_amt"` ActPayDedc float64 `json:"act_pay_dedc"` HifpPay float64 `json:"hifp_pay"` PoolPropSe float64 `json:"pool_prop_selfpay"` Lfpay float64 `json:"selfpay"` CvlservPay float64 `json:"cvlserv_pay"` HifesPay float64 `json:"hifes_pay"` HifmiPay float64 `json:"hifmi_pay"` HifobPay float64 `json:"hifob_pay"` MafPay float64 `json:"maf_pay"` OthPay float64 `json:"oth_pay"` FundPaySumamt float64 `json:"fund_pay_sumamt"` PsnPartAmt float64 `json:"psn_part_amt"` AcctPay float64 `json:"acct_pay"` Balc float64 `json:"balc"` AcctMulaidPay float64 `json:"acct_mulaid_pay"` HospPartAmt float64 `json:"hosp_part_amt"` MedinsSetlID string `json:"medins_setl_id"` PdnCashPay string `json:"pdn_cash_pay"` } `json:"setlinfo"` } `json:"output"` RefmsgTime string `json:"refmsg_time"` RespondTime string `json:"respond_time"` Signtype interface{} `json:"signtype"` WarnMsg interface{} `json:"warn_msg"` } type ResultSixteen10265Two struct { Cainfo string `json:"cainfo"` ErrMsg string `json:"err_msg"` InfRefmsgid string `json:"inf_refmsgid"` Infcode string `json:"infcode"` Output struct { Setlinfo interface{} `json:"setlinfo"` } `json:"output"` RefmsgTime string `json:"refmsg_time"` RespondTime string `json:"respond_time"` Signtype interface{} `json:"signtype"` WarnMsg interface{} `json:"warn_msg"` } type ResultgzSixteen10265Two struct { Cainfo string `json:"cainfo"` ErrMsg string `json:"err_msg"` InfRefmsgid string `json:"inf_refmsgid"` Infcode int64 `json:"infcode"` Output struct { Setlinfo interface{} `json:"setlinfo"` } `json:"output"` RefmsgTime string `json:"refmsg_time"` RespondTime string `json:"respond_time"` Signtype interface{} `json:"signtype"` WarnMsg interface{} `json:"warn_msg"` } type ResultSeventeen struct { ErrMsg string `json:"err_msg"` InfRefmsgid string `json:"inf_refmsgid"` Infcode int64 `json:"infcode"` Output struct { SetlListId string `json:"setl_list_id"` } `json:"output"` RefmsgTime string `json:"refmsg_time"` RespondTime string `json:"respond_time"` Signtype string `json:"signtype"` WarnInfo string `json:"warn_info"` } type ResultSeventeenOther struct { ErrMsg string `json:"err_msg"` InfRefmsgid string `json:"inf_refmsgid"` Infcode string `json:"infcode"` Output struct { SetlListId string `json:"setl_list_id"` } `json:"output"` RefmsgTime string `json:"refmsg_time"` RespondTime string `json:"respond_time"` Signtype string `json:"signtype"` WarnInfo string `json:"warn_info"` } type Result90991 struct { ErrMsg string `json:"err_msg"` InfRefmsgid string `json:"inf_refmsgid"` Infcode int64 `json:"infcode"` Output struct { Result struct { PsnNo string `json:"psn_no"` CardStat string `json:"card_stat"` Certno string `json:"certno"` PsnName string `json:"psn_name"` CheckStat string `json:"check_stat"` SscnoCheckStat string `json:"sscno_check_stat"` } `json:"result"` } `json:"output"` RefmsgTime string `json:"refmsg_time"` RespondTime string `json:"respond_time"` Signtype interface{} `json:"signtype"` WarnInfo interface{} `json:"warn_info"` } type Result90100 struct { ErrMsg string `json:"err_msg"` InfRefmsgid string `json:"inf_refmsgid"` Infcode int64 `json:"infcode"` Output struct { PoolareaNo string `json:"poolarea_no"` PoolareaNoName string `json:"poolarea_no_name"` Insutype string `json:"insutype"` InsutypeName string `json:"insutype_name"` ClctType string `json:"clct_type"` ClctTypeName string `json:"clct_type_name"` ClctFlag string `json:"clct_flag"` ClctFlagName string `json:"clct_flag_name"` AccrymBegn string `json:"accrym_begn"` AccrymEnd string `json:"accrym_end"` ClctTime string `json:"clct_time"` ClctstdCrtfRuleCodg string `json:"clctstd_crtf_rule_codg"` } `json:"output"` RefmsgTime string `json:"refmsg_time"` RespondTime string `json:"respond_time"` Signtype interface{} `json:"signtype"` WarnInfo interface{} `json:"warn_info"` } type Custom struct { DetItemFeeSumamt string Cut string FeedetlSn string Price string MedListCodg string Type int64 AdviceId int64 ProjectId int64 ItemId int64 } type Result5301 struct { ErrMsg string `json:"err_msg"` InfRefmsgid string `json:"inf_refmsgid"` Infcode int64 `json:"infcode"` Output struct { Result []struct { OpspDiseCode string `json:"opsp_dise_code"` OpspDiseName string `json:"opsp_dise_name"` Begndate string `json:"begndate"` Enddate string `json:"enddate"` } `json:"feedetail"` } `json:"output"` RefmsgTime string `json:"refmsg_time"` RespondTime string `json:"respond_time"` Signtype interface{} `json:"signtype"` WarnInfo interface{} `json:"warn_info"` } type Result5301For10265 struct { ErrMsg string `json:"err_msg"` InfRefmsgid string `json:"inf_refmsgid"` Infcode string `json:"infcode"` Output struct { Result []struct { OpspDiseCode string `json:"opsp_dise_code"` OpspDiseName string `json:"opsp_dise_name"` Begndate string `json:"begndate"` Enddate string `json:"enddate"` } `json:"feedetail"` } `json:"output"` RefmsgTime string `json:"refmsg_time"` RespondTime string `json:"respond_time"` Signtype interface{} `json:"signtype"` WarnInfo interface{} `json:"warn_info"` } //获取个人信息----挂号-----上传就诊信息 func (c *HisApiController) GetRegisterInfo() { id, _ := c.GetInt64("id") record_time := c.GetString("record_time") settlementValue, _ := c.GetInt64("settlement_value") medical_insurance_card := c.GetString("medical_insurance_card") name := c.GetString("name") id_card_type, _ := c.GetInt64("id_card_type") certificates, _ := c.GetInt64("certificates") medical_care, _ := c.GetInt64("medical_care") birthday := c.GetString("birthday") id_card := c.GetString("id_card") register_type, _ := c.GetInt64("register") doctor, _ := c.GetInt64("doctor") department, _ := c.GetInt64("department") gender, _ := c.GetInt64("sex") registration_fee, _ := c.GetFloat("registration_fee") medical_expenses, _ := c.GetFloat("medical_expenses") social_type, _ := c.GetInt64("social_type") admin_user_id, _ := c.GetInt64("admin_user_id") insuplc_admdvs := c.GetString("insuplc_admdvs") mdtrt_type := c.GetString("mdtrt_type") if id_card_type == 5 { id_card_type = 4 } timeLayout := "2006-01-02" loc, _ := time.LoadLocation("Local") birthdays, _ := time.ParseInLocation(timeLayout+" 15:04:05", birthday+" 00:00:00", loc) birthUnix := birthdays.Unix() theTime, err := time.ParseInLocation(timeLayout+" 15:04:05", record_time+" 00:00:00", loc) if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } recordDateTime := theTime.Unix() adminInfo := c.GetAdminUserInfo() var patient service.Patients if id == 0 { patient, _ = service.GetPatientByIDCard(id_card, adminInfo.CurrentOrgId) } else { patient, _ = service.GetPatientByIDTwo(adminInfo.CurrentOrgId, id) } patientPrescription, _ := service.FindPatientPrescriptionInfo(adminInfo.CurrentOrgId, id, recordDateTime) if patientPrescription.ID == 0 { patientPrescription, _ = service.FindLastPatientPrescriptionInfo(adminInfo.CurrentOrgId, id, recordDateTime) } miConfig, _ := service.FindMedicalInsuranceInfo(adminInfo.CurrentOrgId) if patient.ID == 0 { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodePatientNoExist) return } if len(patient.IdCardNo) == 0 { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeIDCartNo) return } config, _ := service.GetMedicalInsuranceConfig(adminInfo.CurrentOrgId) roles, _ := service.GetAdminUserInfoByID(adminInfo.CurrentOrgId, admin_user_id) doctor_info, _ := service.GetAdminUserInfoByID(adminInfo.CurrentOrgId, doctor) //就诊结算未完成,不能进行二次挂号 his, _ := service.GetHisPatientInfoTwo(adminInfo.CurrentOrgId, patient.ID, recordDateTime) if len(his) >= 1 { order, _ := service.GetNewHisOrderTwo(adminInfo.CurrentOrgId, his[len(his)-1].Number, his[len(his)-1].PatientId, recordDateTime) if len(his) >= 1 && order.ID == 0 { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisPatientParamWrong) return } } //var register_log string if config.IsOpen == 1 { var res ResultTwo var res10265 ResultTwo10265 var PsnNo string var PsnCertType string var Certno string var PsnName string var Gend string var Naty string var Brdy string var Age float64 var infoStr string var idetinfoStr string var infocode int64 var verify_number string fmt.Println(verify_number) if miConfig.MdtrtareaAdmvs == "421300" || miConfig.MdtrtareaAdmvs == "420200" || miConfig.MdtrtareaAdmvs == "421182" || miConfig.MdtrtareaAdmvs == "420902" { psn_info, _ := service.GetPsnByPatientId(id) PsnNo = psn_info.PsnNo PsnCertType = psn_info.PsnCertType Certno = psn_info.Certno PsnName = psn_info.PsnName Gend = psn_info.Gend Naty = psn_info.Naty Brdy = psn_info.Brdy Age = psn_info.Age infoStr = psn_info.Insuinfo idetinfoStr = psn_info.Idetinfo infocode = 0 } else if miConfig.MdtrtareaAdmvs == "320921" || miConfig.MdtrtareaAdmvs == "320982" { psn_info, _ := service.GetPsnByPatientId(id) PsnNo = psn_info.PsnNo PsnCertType = psn_info.PsnCertType Certno = psn_info.Certno PsnName = psn_info.PsnName Gend = psn_info.Gend Naty = psn_info.Naty Brdy = psn_info.Brdy Age = psn_info.Age infoStr = psn_info.Insuinfo idetinfoStr = psn_info.Idetinfo infocode = 0 verify_number = psn_info.VerifyNumber } else if miConfig.MdtrtareaAdmvs == "150499" { if id_card_type == 2 { //请求内网数据 api := "http://172.16.13.254:9532/" + "nmyb/1101?cert_no=" + patient.IdCardNo + "&org_name=" + miConfig.OrgName + "&doctor=" + roles.UserName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + insuplc_admdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&id_card_type=" + strconv.FormatInt(2, 10) + "&card_sn=" + "" + "&certificates=" + strconv.FormatInt(1, 10) + "&name=" + patient.Name resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) result_byte, _ := json.Marshal(respJSON) result := string(result_byte) var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } userJSONBytes, _ := json.Marshal(dat) var res ResultTwo var resTwo10265 ResultTwo10265 if miConfig.Code == "H15049901371" { if err := json.Unmarshal(userJSONBytes, &resTwo10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } Infcode, _ := strconv.ParseInt(resTwo10265.Infcode, 10, 64) res.Infcode = Infcode res.ErrMsg = resTwo10265.ErrMsg res.Output = resTwo10265.Output res.InfRefmsgid = resTwo10265.InfRefmsgid res.RespondTime = resTwo10265.RespondTime res.WarnInfo = resTwo10265.WarnInfo } else { if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } //var insutypes []string //var insutype string //var is390 int = 0 //var is310 int = 0 //for _, item := range res.Output.Iinfo { // if (item.Insutype == "390" && item.PsnInsuStas == "1") || (item.Insutype == "310" && item.PsnInsuStas == "1") { // insutypes = append(insutypes, item.Insutype) // } //} //if len(insutypes) == 1 { // insutype = insutypes[0] //} else { // for _, i := range insutypes { // if i == "390" { // is390 = 1 // } // // if i == "310" { // is310 = 1 // } // } //} //if is390 == 1 { // insutype = "390" //} //if is310 == 1 { // insutype = "310" //} //if len(insutypes) == 0 { // insutype = "310" //} PsnNo = res.Output.Baseinfo.PsnNo PsnCertType = res.Output.Baseinfo.PsnCertType Certno = res.Output.Baseinfo.Certno PsnName = res.Output.Baseinfo.PsnName Gend = res.Output.Baseinfo.Gend Naty = res.Output.Baseinfo.Naty Iinfos, _ := json.Marshal(res.Output.Iinfo) Idetinfos, _ := json.Marshal(res.Output.Idetinfo) infoStr = string(Iinfos) idetinfoStr = string(Idetinfos) infocode = res.Infcode //infocode = 0 //verify_number = psn_info.VerifyNumber } else { psn_info, _ := service.GetPsnByPatientId(id) PsnNo = psn_info.PsnNo PsnCertType = psn_info.PsnCertType Certno = psn_info.Certno PsnName = psn_info.PsnName Gend = psn_info.Gend Naty = psn_info.Naty Brdy = psn_info.Brdy Age = psn_info.Age infoStr = psn_info.Insuinfo idetinfoStr = psn_info.Idetinfo infocode = 0 verify_number = psn_info.VerifyNumber } } else if miConfig.MdtrtareaAdmvs == "350500" { if id_card_type == 1 { psn_info, _ := service.GetPsnByPatientId(id) PsnNo = psn_info.PsnNo PsnCertType = psn_info.PsnCertType Certno = psn_info.Certno PsnName = psn_info.PsnName Gend = psn_info.Gend Naty = psn_info.Naty Brdy = psn_info.Brdy Age = psn_info.Age infoStr = psn_info.Insuinfo idetinfoStr = psn_info.Idetinfo infocode = 0 verify_number = psn_info.VerifyNumber } else if id_card_type == 2 { result, requestLog, errMsgLog := service.FJyb1101(patient.IdCardNo, miConfig.OrgName, roles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, id_card_type, patient.IdCardNo, certificates, miConfig.Url, miConfig.Cainfo, miConfig.AppSecret, miConfig.SignKey, miConfig.EncKey, "", id_card) fmt.Println(errMsgLog) saveLog(result, requestLog, "1101", "人员基本信息获取") if err := json.Unmarshal([]byte(result), &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } PsnNo = res.Output.Baseinfo.PsnNo PsnCertType = res.Output.Baseinfo.PsnCertType Certno = res.Output.Baseinfo.Certno PsnName = res.Output.Baseinfo.PsnName Gend = res.Output.Baseinfo.Gend Naty = res.Output.Baseinfo.Naty Iinfos, _ := json.Marshal(res.Output.Iinfo) Idetinfos, _ := json.Marshal(res.Output.Idetinfo) infoStr = string(Iinfos) idetinfoStr = string(Idetinfos) infocode = res.Infcode } } else if miConfig.MdtrtareaAdmvs == "360302" { if id_card_type == 1 { psn_info, _ := service.GetPsnByPatientId(id) PsnNo = psn_info.PsnNo PsnCertType = psn_info.PsnCertType Certno = psn_info.Certno PsnName = psn_info.PsnName Gend = psn_info.Gend Naty = psn_info.Naty Brdy = psn_info.Brdy Age = psn_info.Age infoStr = psn_info.Insuinfo idetinfoStr = psn_info.Idetinfo infocode = 0 verify_number = psn_info.VerifyNumber } else if id_card_type == 2 { result, requestLog := service.Jxyb1101(patient.IdCardNo, miConfig.OrgName, roles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, id_card_type, "", "1", miConfig.Url, miConfig.AccessKey, "") saveLog(result, requestLog, "1101", "人员基本信息获取") if err := json.Unmarshal([]byte(result), &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } PsnNo = res.Output.Baseinfo.PsnNo PsnCertType = res.Output.Baseinfo.PsnCertType Certno = res.Output.Baseinfo.Certno PsnName = res.Output.Baseinfo.PsnName Gend = res.Output.Baseinfo.Gend Naty = res.Output.Baseinfo.Naty Iinfos, _ := json.Marshal(res.Output.Iinfo) Idetinfos, _ := json.Marshal(res.Output.Idetinfo) infoStr = string(Iinfos) idetinfoStr = string(Idetinfos) infocode = res.Infcode } else { psn_info, _ := service.GetPsnByPatientId(id) PsnNo = psn_info.PsnNo PsnCertType = psn_info.PsnCertType Certno = psn_info.Certno PsnName = psn_info.PsnName Gend = psn_info.Gend Naty = psn_info.Naty Brdy = psn_info.Brdy Age = psn_info.Age infoStr = psn_info.Insuinfo idetinfoStr = psn_info.Idetinfo infocode = 0 verify_number = psn_info.VerifyNumber } } else if miConfig.MdtrtareaAdmvs == "361025" { if id_card_type == 1 { psn_info, _ := service.GetPsnByPatientId(id) PsnNo = psn_info.PsnNo PsnCertType = psn_info.PsnCertType Certno = psn_info.Certno PsnName = psn_info.PsnName Gend = psn_info.Gend Naty = psn_info.Naty Brdy = psn_info.Brdy Age = psn_info.Age infoStr = psn_info.Insuinfo idetinfoStr = psn_info.Idetinfo infocode = 0 verify_number = psn_info.VerifyNumber } else if id_card_type == 2 { psn_info, _ := service.GetPsnByPatientId(id) PsnNo = psn_info.PsnNo PsnCertType = psn_info.PsnCertType Certno = psn_info.Certno PsnName = psn_info.PsnName Gend = psn_info.Gend Naty = psn_info.Naty Brdy = psn_info.Brdy Age = psn_info.Age infoStr = psn_info.Insuinfo idetinfoStr = psn_info.Idetinfo infocode = 0 verify_number = psn_info.VerifyNumber } else { psn_info, _ := service.GetPsnByPatientId(id) PsnNo = psn_info.PsnNo PsnCertType = psn_info.PsnCertType Certno = psn_info.Certno PsnName = psn_info.PsnName Gend = psn_info.Gend Naty = psn_info.Naty Brdy = psn_info.Brdy Age = psn_info.Age infoStr = psn_info.Insuinfo idetinfoStr = psn_info.Idetinfo infocode = 0 verify_number = psn_info.VerifyNumber } } else if miConfig.MdtrtareaAdmvs == "360100" { if id_card_type == 1 { psn_info, _ := service.GetPsnByPatientId(id) PsnNo = psn_info.PsnNo PsnCertType = psn_info.PsnCertType Certno = psn_info.Certno PsnName = psn_info.PsnName Gend = psn_info.Gend Naty = psn_info.Naty Brdy = psn_info.Brdy Age = psn_info.Age infoStr = psn_info.Insuinfo idetinfoStr = psn_info.Idetinfo infocode = 0 verify_number = psn_info.VerifyNumber } else if id_card_type == 2 { psn_info, _ := service.GetPsnByPatientId(id) PsnNo = psn_info.PsnNo PsnCertType = psn_info.PsnCertType Certno = psn_info.Certno PsnName = psn_info.PsnName Gend = psn_info.Gend Naty = psn_info.Naty Brdy = psn_info.Brdy Age = psn_info.Age infoStr = psn_info.Insuinfo idetinfoStr = psn_info.Idetinfo infocode = 0 verify_number = psn_info.VerifyNumber } else { psn_info, _ := service.GetPsnByPatientId(id) PsnNo = psn_info.PsnNo PsnCertType = psn_info.PsnCertType Certno = psn_info.Certno PsnName = psn_info.PsnName Gend = psn_info.Gend Naty = psn_info.Naty Brdy = psn_info.Brdy Age = psn_info.Age infoStr = psn_info.Insuinfo idetinfoStr = psn_info.Idetinfo infocode = 0 verify_number = psn_info.VerifyNumber } } else if miConfig.MdtrtareaAdmvs == "341203" || miConfig.MdtrtareaAdmvs == "340699" { psn_info, _ := service.GetPsnByPatientId(id) PsnNo = psn_info.PsnNo PsnCertType = psn_info.PsnCertType Certno = psn_info.Certno PsnName = psn_info.PsnName Gend = psn_info.Gend Naty = psn_info.Naty Brdy = psn_info.Brdy Age = psn_info.Age infoStr = psn_info.Insuinfo idetinfoStr = psn_info.Idetinfo infocode = 0 verify_number = psn_info.VerifyNumber idetinfoStr = psn_info.Idetinfo } else if miConfig.MdtrtareaAdmvs == "430800" { if id_card_type == 1 { psn_info, _ := service.GetPsnByPatientId(id) PsnNo = psn_info.PsnNo PsnCertType = psn_info.PsnCertType Certno = psn_info.Certno PsnName = psn_info.PsnName Gend = psn_info.Gend Naty = psn_info.Naty Brdy = psn_info.Brdy Age = psn_info.Age infoStr = psn_info.Insuinfo idetinfoStr = psn_info.Idetinfo infocode = 0 verify_number = psn_info.VerifyNumber } else if id_card_type == 2 { result, requestLog := service.Hnyb1101(patient.IdCardNo, miConfig.OrgName, roles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, id_card_type, "", "1", miConfig.Url, miConfig.AccessKey, "", "", Certno) saveLog(result, requestLog, "1101", "人员基本信息获取") if err := json.Unmarshal([]byte(result), &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } PsnNo = res.Output.Baseinfo.PsnNo PsnCertType = res.Output.Baseinfo.PsnCertType Certno = res.Output.Baseinfo.Certno PsnName = res.Output.Baseinfo.PsnName Gend = res.Output.Baseinfo.Gend Naty = res.Output.Baseinfo.Naty Iinfos, _ := json.Marshal(res.Output.Iinfo) Idetinfos, _ := json.Marshal(res.Output.Idetinfo) infoStr = string(Iinfos) idetinfoStr = string(Idetinfos) infocode = res.Infcode } else if id_card_type == 4 { psn_info, _ := service.GetPsnByPatientId(id) PsnNo = psn_info.PsnNo PsnCertType = psn_info.PsnCertType Certno = psn_info.Certno PsnName = psn_info.PsnName Gend = psn_info.Gend Naty = psn_info.Naty Brdy = psn_info.Brdy Age = psn_info.Age infoStr = psn_info.Insuinfo idetinfoStr = psn_info.Idetinfo infocode = 0 verify_number = psn_info.VerifyNumber } } else if miConfig.MdtrtareaAdmvs == "131023" { var result string var requestLog string result, requestLog = service.HeBeiyb1101(patient.IdCardNo, miConfig.OrgName, roles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, id_card_type, "", strconv.FormatInt(certificates, 10), "") if id_card_type == 4 { psn_info, _ := service.GetPsnByPatientId(id) PsnNo = psn_info.PsnNo PsnCertType = psn_info.PsnCertType Certno = psn_info.Certno PsnName = psn_info.PsnName Gend = psn_info.Gend Naty = psn_info.Naty Brdy = psn_info.Brdy Age = psn_info.Age infoStr = psn_info.Insuinfo idetinfoStr = psn_info.Idetinfo infocode = 0 verify_number = psn_info.VerifyNumber } else { saveLog(result, requestLog, "1101", "人员基本信息获取") if miConfig.Code == "H15049901371" { if err := json.Unmarshal([]byte(result), &res10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res.ErrMsg = res10265.ErrMsg res.Output = res10265.Output res.InfRefmsgid = res10265.InfRefmsgid } else { if err := json.Unmarshal([]byte(result), &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } PsnNo = res.Output.Baseinfo.PsnNo PsnCertType = res.Output.Baseinfo.PsnCertType Certno = res.Output.Baseinfo.Certno PsnName = res.Output.Baseinfo.PsnName Gend = res.Output.Baseinfo.Gend Naty = res.Output.Baseinfo.Naty Iinfos, _ := json.Marshal(res.Output.Iinfo) Idetinfos, _ := json.Marshal(res.Output.Idetinfo) infoStr = string(Iinfos) idetinfoStr = string(Idetinfos) if miConfig.Code == "H15049901371" { infocode, _ = strconv.ParseInt(res10265.Infcode, 10, 64) } else { infocode = res.Infcode } } } else if miConfig.MdtrtareaAdmvs == "441799" { psn_info, _ := service.GetPsnByPatientId(id) PsnNo = psn_info.PsnNo PsnCertType = psn_info.PsnCertType Certno = psn_info.Certno PsnName = psn_info.PsnName Gend = psn_info.Gend Naty = psn_info.Naty Brdy = psn_info.Brdy Age = psn_info.Age infoStr = psn_info.Insuinfo idetinfoStr = psn_info.Idetinfo infocode = 0 verify_number = psn_info.VerifyNumber } else if miConfig.MdtrtareaAdmvs == "450721" { psn_info, _ := service.GetPsnByPatientId(id) PsnNo = psn_info.PsnNo PsnCertType = psn_info.PsnCertType Certno = psn_info.Certno PsnName = psn_info.PsnName Gend = psn_info.Gend Naty = psn_info.Naty Brdy = psn_info.Brdy Age = psn_info.Age infoStr = psn_info.Insuinfo idetinfoStr = psn_info.Idetinfo infocode = 0 verify_number = psn_info.VerifyNumber } else { var result string var requestLog string //if miConfig.UserOrgId == 10138 { if id_card_type != 4 || id_card_type != 1 { var insa string if len(patient.InsuplcAdmdvs) > 0 { insa = patient.InsuplcAdmdvs } else { insa = miConfig.InsuplcAdmdvs } //psn_info, _ := service.GetPsnByPatientId(id) //result, requestLog = service.Gdyb1101ForEleCert(miConfig.OrgName, roles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, psn_info.VerifyNumber) result, requestLog = service.Gdyb1101D(patient.IdCardNo, miConfig.OrgName, roles.UserName, miConfig.Code, insa, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, id_card_type, "", strconv.FormatInt(certificates, 10), name, record_time, admin_user_id) } //} //else { // var insa string // if len(patient.InsuplcAdmdvs) > 0 { // insa = patient.InsuplcAdmdvs // } else { // insa = miConfig.InsuplcAdmdvs // } // result, requestLog = service.Gdyb1101(patient.IdCardNo, miConfig.OrgName, roles.UserName, miConfig.Code, insa, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, id_card_type, "", strconv.FormatInt(certificates, 10), name) //} if id_card_type == 4 || id_card_type == 1 { psn_info, _ := service.GetPsnByPatientId(id) PsnNo = psn_info.PsnNo PsnCertType = psn_info.PsnCertType Certno = psn_info.Certno PsnName = psn_info.PsnName Gend = psn_info.Gend Naty = psn_info.Naty Brdy = psn_info.Brdy Age = psn_info.Age infoStr = psn_info.Insuinfo idetinfoStr = psn_info.Idetinfo infocode = 0 verify_number = psn_info.VerifyNumber } else { saveLog(result, requestLog, "1101", "人员基本信息获取") if miConfig.Code == "H15049901371" { if err := json.Unmarshal([]byte(result), &res10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res.ErrMsg = res10265.ErrMsg res.Output = res10265.Output res.InfRefmsgid = res10265.InfRefmsgid } else { if err := json.Unmarshal([]byte(result), &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } PsnNo = res.Output.Baseinfo.PsnNo PsnCertType = res.Output.Baseinfo.PsnCertType Certno = res.Output.Baseinfo.Certno PsnName = res.Output.Baseinfo.PsnName Gend = res.Output.Baseinfo.Gend Naty = res.Output.Baseinfo.Naty Iinfos, _ := json.Marshal(res.Output.Iinfo) Idetinfos, _ := json.Marshal(res.Output.Idetinfo) infoStr = string(Iinfos) idetinfoStr = string(Idetinfos) if miConfig.Code == "H15049901371" { infocode, _ = strconv.ParseInt(res10265.Infcode, 10, 64) } else { infocode = res.Infcode } } } if infocode == 0 { his := models.VMHisPatient{ Name: name, Gender: gender, Birthday: birthUnix, MedicalTreatmentType: medical_care, IdType: certificates, IdCardNo: id_card, BalanceAccountsType: settlementValue, SocialType: social_type, MedicalInsuranceNumber: medical_insurance_card, RegisterType: register_type, RegisterCost: registration_fee, TreatmentCost: medical_expenses, Status: 1, Ctime: time.Now().Unix(), Mtime: time.Now().Unix(), PsnNo: PsnNo, PsnCertType: PsnCertType, Certno: Certno, PsnName: PsnName, Gend: Gend, Naty: Naty, Brdy: Brdy, Age: Age, Iinfo: infoStr, Idetinfo: idetinfoStr, PatientId: patient.ID, RecordDate: theTime.Unix(), UserOrgId: adminInfo.CurrentOrgId, AdminUserId: admin_user_id, IsReturn: 1, IdCardType: id_card_type, Doctor: doctor, Departments: department, MdtrtGrpType: mdtrt_type, } timestamp := time.Now().Unix() tempTime := time.Unix(timestamp, 0) timeFormat := tempTime.Format("20060102150405") chrgBchno := rand.Intn(100000) + 10000 ipt_otp_no := timeFormat + strconv.FormatInt(int64(chrgBchno), 10) + strconv.FormatInt(his.PatientId, 10) his.Number = ipt_otp_no //count, _ := service.FindHisRegisterRecord(theTime.Unix(), patient.ID, adminInfo.CurrentOrgId) department, _ := service.GetDepartMentDetail(department) //doctor_id := strconv.FormatInt(patientPrescription., 10) IdCardNo := "" if id_card_type == 1 { // IdCardNo = medical_insurance_card IdCardNo = patient.IdCardNo } else { IdCardNo = patient.IdCardNo } var rf []*ResultFive json.Unmarshal([]byte(his.Iinfo), &rf) var insutypes []*ResultFive var insutype string var insuplc_admdvs_temp string var is390 int = 0 var is310 int = 0 for _, item := range rf { if (item.Insutype == "390" && item.PsnInsuStas == "1") || (item.Insutype == "310" && item.PsnInsuStas == "1") { insutypes = append(insutypes, item) } } if len(insutypes) == 1 { insutype = insutypes[0].Insutype insuplc_admdvs = insutypes[0].InsuplcAdmdvs if insutype == "390" { is390 = 1 } if insutype == "310" { is310 = 1 } } else { for _, i := range insutypes { if i.Insutype == "390" { is390 = 1 } if i.Insutype == "310" { is310 = 1 } } } if is390 == 1 { insutype = "390" } if is310 == 1 { insutype = "310" } fmt.Println(social_type) if social_type > 0 { insutype = strconv.FormatInt(social_type, 10) } var infocode int64 var resThree ResultThree var resThree10265 ResultThree10265 if len(insuplc_admdvs) == 0 { psn_info, _ := service.GetPsnByPatientId(id) //if len(psn_info.InsuplcAdmdvs) > 0 { insuplc_admdvs_temp = psn_info.InsuplcAdmdvs //} } else { insuplc_admdvs_temp = insuplc_admdvs } if miConfig.MdtrtareaAdmvs == "421300" { hb_doctor_info, _ := service.GetAdminUserInfoByID(adminInfo.CurrentOrgId, patientPrescription.DoctorId) psn_info, _ := service.GetPsnByPatientId(id) api := "http://192.168.124.4:9532/" + "hbyb/2201?psn_no=" + PsnNo + "&insutype=" + insutype + "&cert_no=" + Certno + "&ipt_otp_no=" + ipt_otp_no + "&org_name=" + miConfig.OrgName + "&doctor=" + hb_doctor_info.UserName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + psn_info.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&id_card_type=" + strconv.FormatInt(id_card_type, 10) + "&dept_code=" + department.Number + "&dept=" + department.Name + "&doctor_id=" + hb_doctor_info.DoctorNumber + "&doctor_name=" + hb_doctor_info.UserName + "&opter=" + roles.UserName resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) result, _ := json.Marshal(respJSON) if err := json.Unmarshal([]byte(result), &resThree); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } infocode = resThree.Infcode } else if miConfig.MdtrtareaAdmvs == "420200" { hb_doctor_info, _ := service.GetAdminUserInfoByID(adminInfo.CurrentOrgId, patientPrescription.DoctorId) //if strings.Contains(insuplc_admdvs_temp, "4202") { // insuplc_admdvs_temp = //} //if strings.Contains(insuplc_admdvs_temp, "4413") { // insuplc_admdvs_temp = miConfig.MdtrtareaAdmvs //} api := "http://192.168.0.197:9532/" + "hbyb/2201?psn_no=" + PsnNo + "&insutype=" + insutype + "&cert_no=" + Certno + "&ipt_otp_no=" + ipt_otp_no + "&org_name=" + miConfig.OrgName + "&doctor=" + hb_doctor_info.UserName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + insuplc_admdvs_temp + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&id_card_type=" + strconv.FormatInt(id_card_type, 10) + "&dept_code=" + department.Number + "&dept=" + department.Name + "&doctor_id=" + hb_doctor_info.DoctorNumber + "&doctor_name=" + hb_doctor_info.UserName + "&opter=" + roles.UserName resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) result, _ := json.Marshal(respJSON) if err := json.Unmarshal([]byte(result), &resThree); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } infocode = resThree.Infcode } else if miConfig.MdtrtareaAdmvs == "420902" { hb_doctor_info, _ := service.GetAdminUserInfoByID(adminInfo.CurrentOrgId, patientPrescription.DoctorId) //if strings.Contains(insuplc_admdvs_temp, "4202") { // insuplc_admdvs_temp = //} //if strings.Contains(insuplc_admdvs_temp, "4413") { // insuplc_admdvs_temp = miConfig.MdtrtareaAdmvs //} utils.ErrorLog("解析失败:%v", insutype) utils.ErrorLog("解析失败:%v", PsnNo) utils.ErrorLog("解析失败:%v", Certno) utils.ErrorLog("解析失败:%v", ipt_otp_no) utils.ErrorLog("解析失败:%v", hb_doctor_info.UserName) utils.ErrorLog("解析失败:%v", insuplc_admdvs_temp) utils.ErrorLog("解析失败:%v", hb_doctor_info.DoctorNumber) utils.ErrorLog("解析失败:%v", PsnNo) utils.ErrorLog("解析失败:%v", department.Number) utils.ErrorLog("解析失败:%v", department.Name) utils.ErrorLog("解析失败:%v", roles.UserName) api := miConfig.Url + "hbyb/2201?psn_no=" + PsnNo + "&insutype=" + insutype + "&cert_no=" + Certno + "&ipt_otp_no=" + ipt_otp_no + "&org_name=" + miConfig.OrgName + "&doctor=" + hb_doctor_info.UserName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + insuplc_admdvs_temp + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&id_card_type=" + strconv.FormatInt(id_card_type, 10) + "&dept_code=" + department.Number + "&dept=" + department.Name + "&doctor_id=" + hb_doctor_info.DoctorNumber + "&doctor_name=" + hb_doctor_info.UserName + "&opter=" + roles.UserName resp, requestErr := http.Get(api) if requestErr != nil { utils.ErrorLog("解析失败:%v", requestErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) result, _ := json.Marshal(respJSON) if err := json.Unmarshal([]byte(result), &resThree); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } infocode = resThree.Infcode } else if miConfig.MdtrtareaAdmvs == "421182" { hb_doctor_info, _ := service.GetAdminUserInfoByID(adminInfo.CurrentOrgId, patientPrescription.DoctorId) //if strings.Contains(insuplc_admdvs_temp, "4202") { // insuplc_admdvs_temp = //} //if strings.Contains(insuplc_admdvs_temp, "4413") { // insuplc_admdvs_temp = miConfig.MdtrtareaAdmvs //} api := miConfig.Url + "hbyb/2201?psn_no=" + PsnNo + "&insutype=" + insutype + "&cert_no=" + Certno + "&ipt_otp_no=" + ipt_otp_no + "&org_name=" + miConfig.OrgName + "&doctor=" + hb_doctor_info.UserName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + insuplc_admdvs_temp + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&id_card_type=" + strconv.FormatInt(id_card_type, 10) + "&dept_code=" + department.Number + "&dept=" + department.Name + "&doctor_id=" + hb_doctor_info.DoctorNumber + "&doctor_name=" + hb_doctor_info.UserName + "&opter=" + roles.UserName resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) result, _ := json.Marshal(respJSON) if err := json.Unmarshal([]byte(result), &resThree); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } infocode = resThree.Infcode } else if miConfig.MdtrtareaAdmvs == "150499" { hb_doctor_info, _ := service.GetAdminUserInfoByID(adminInfo.CurrentOrgId, patientPrescription.DoctorId) psn_info, _ := service.GetPsnByPatientId(id) var verify_number string if id_card_type == 4 { verify_number = psn_info.VerifyNumber } else if id_card_type == 1 { bas := strings.Split(psn_info.CardInfo, "|") cardNumber := bas[2] verify_number = cardNumber } api := "http://172.16.13.254:9532/" + "nmyb/2201?psn_no=" + PsnNo + "&insutype=" + insutype + "&cert_no=" + Certno + "&ipt_otp_no=" + ipt_otp_no + "&org_name=" + miConfig.OrgName + "&doctor=" + hb_doctor_info.UserName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + insuplc_admdvs_temp + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&id_card_type=" + strconv.FormatInt(id_card_type, 10) + "&dept_code=" + department.Number + "&dept=" + department.Name + "&doctor_id=" + hb_doctor_info.DoctorNumber + "&doctor_name=" + hb_doctor_info.UserName + "&opter=" + roles.UserName + "&verify_number=" + verify_number resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) result, _ := json.Marshal(respJSON) //if err := json.Unmarshal([]byte(result), &resThree); err != nil { // utils.ErrorLog("解析失败:%v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return //} //infocode = resThree.Infcode //result, _ := json.Marshal(respJSON) if err := json.Unmarshal([]byte(result), &resThree10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } resThree.ErrMsg = resThree10265.ErrMsg resThree.Output = resThree10265.Output resThree.InfRefmsgid = resThree10265.InfRefmsgid infocode, _ = strconv.ParseInt(resThree10265.Infcode, 10, 64) } else if miConfig.MdtrtareaAdmvs == "320921" || miConfig.MdtrtareaAdmvs == "320982" { psn_info, _ := service.GetPsnByPatientId(id) his.PsnNo = psn_info.PsnNo psn_info.VerifyNumber = strings.Replace(psn_info.VerifyNumber, "+", "%2B", -1) var cert_no string if id_card_type == 3 { psn_info.VerifyNumber = IdCardNo + "|" + psn_info.VerifyNumber cert_no = IdCardNo } else if id_card_type == 4 { cert_no = IdCardNo psn_info.VerifyNumber = psn_info.VerifyNumber } else { bas := strings.Split(psn_info.CardInfo, "|") cert_no = bas[2] } var hisPrescription []*models.HisPrescription for _, item := range rf { if item.Insutype == insutype { //insuplc_admdvs = item.InsuplcAdmdvs his.InsuplcAdmdvs = insuplc_admdvs } } his.Insutype = insutype res3101 := Check3101ForOne(c, patient.ID, his, admin_user_id, "1", record_time, hisPrescription, department) fmt.Println(res3101) fmt.Println(res3101.Infcode) if res3101.Infcode == "0" { fmt.Println("33333333") if len(res3101.Output.Result) > 0 { fmt.Println("222222") for _, item := range res3101.Output.Result { if len(res3101.ErrMsg) == 0 { res3101.ErrMsg = item.VolaCont } else { res3101.ErrMsg = res3101.ErrMsg + "\n" + item.VolaCont } } c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res3101.ErrMsg, }) return } else { fmt.Println("11111") var api string if miConfig.MdtrtareaAdmvs == "320921" { ipt_otp_no = timeFormat api = "http://192.168.2.3:9532/" + "jsyb/2201?psn_no=" + PsnNo + "&insutype=" + insutype + "&cert_no=" + cert_no + "&ipt_otp_no=" + ipt_otp_no + "&org_name=" + miConfig.OrgName + "&doctor=" + roles.UserName + "&doctor_name=" + doctor_info.UserName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + insuplc_admdvs_temp + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&id_card_type=" + strconv.FormatInt(id_card_type, 10) + "&dept_code=" + department.Number + "&dept=" + department.Name + "&doctor_id=" + doctor_info.DoctorNumber + "&url=" + miConfig.Url + "&ak=" + miConfig.AccessKey + "&verify_number=" + psn_info.VerifyNumber + "&cainfo=" + miConfig.Cainfo } else { ipt_otp_no = timeFormat api = "http://192.168.5.251:9532/" + "jsyb/2201?psn_no=" + PsnNo + "&insutype=" + insutype + "&cert_no=" + cert_no + "&ipt_otp_no=" + ipt_otp_no + "&org_name=" + miConfig.OrgName + "&doctor=" + roles.UserName + "&doctor_name=" + doctor_info.UserName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + insuplc_admdvs_temp + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&id_card_type=" + strconv.FormatInt(id_card_type, 10) + "&dept_code=" + department.Number + "&dept=" + department.Name + "&doctor_id=" + doctor_info.DoctorNumber + "&url=" + miConfig.Url + "&ak=" + miConfig.AccessKey + "&verify_number=" + psn_info.VerifyNumber + "&cainfo=" + miConfig.Cainfo } resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) result, _ := json.Marshal(respJSON) if err := json.Unmarshal([]byte(result), &resThree10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } resThree.ErrMsg = resThree10265.ErrMsg resThree.Output = resThree10265.Output resThree.InfRefmsgid = resThree10265.InfRefmsgid infocode, _ = strconv.ParseInt(resThree10265.Infcode, 10, 64) } } else if res3101.Infcode != "0" { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res3101.ErrMsg, }) return } } else if miConfig.MdtrtareaAdmvs == "350500" { psn_info, _ := service.GetPsnByPatientId(id) var cert_no string if id_card_type == 1 { cert_no = strings.Split(psn_info.CardInfo, "|")[0] insuplc_admdvs_temp = psn_info.InsuplcAdmdvs } else if id_card_type == 4 { cert_no = psn_info.VerifyNumber insuplc_admdvs_temp = psn_info.InsuplcAdmdvs } else { insuplc_admdvs_temp = psn_info.InsuplcAdmdvs cert_no = psn_info.VerifyNumber } result, requestLog, _ := service.FJyb2201(psn_info.PsnNo, insutype, IdCardNo, miConfig.OrgName, doctor_info.UserName, ipt_otp_no, department.Name, miConfig.Code, department.Number, doctor_info.DoctorNumber, insuplc_admdvs_temp, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, id_card_type, roles.UserName, doctor_info.UserName, miConfig.Url, miConfig.Code, miConfig.AppSecret, miConfig.SignKey, miConfig.EncKey, cert_no, record_time) saveLog(result, requestLog, "2201", "挂号") if miConfig.Code == "H15049901371" { if err := json.Unmarshal([]byte(result), &resThree10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } resThree.ErrMsg = resThree10265.ErrMsg resThree.Output = resThree10265.Output resThree.InfRefmsgid = resThree10265.InfRefmsgid } else { if err := json.Unmarshal([]byte(result), &resThree); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } infocode, _ = strconv.ParseInt(resThree10265.Infcode, 10, 64) } else if miConfig.MdtrtareaAdmvs == "360302" { //江西萍乡 psn_info, _ := service.GetPsnByPatientId(id) var result string var requestLog string if id_card_type == 1 { bas := strings.Split(psn_info.CardInfo, "|") basNumber := bas[2] card_sn := bas[3] result, requestLog = service.Jxyb2201(PsnNo, insutype, IdCardNo, miConfig.OrgName, roles.UserName, ipt_otp_no, department.Name, miConfig.Code, department.Number, doctor_info.DoctorNumber, insuplc_admdvs_temp, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, id_card_type, doctor_info.UserName, miConfig.Url, miConfig.AccessKey, basNumber, "", card_sn, "01", IdCardNo, "15", psn_info.PsnName) saveLog(result, requestLog, "2201A", "挂号") } else if id_card_type == 2 { result, requestLog = service.Jxyb2201(PsnNo, insutype, IdCardNo, miConfig.OrgName, roles.UserName, ipt_otp_no, department.Name, miConfig.Code, department.Number, doctor_info.DoctorNumber, insuplc_admdvs_temp, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, id_card_type, doctor_info.UserName, miConfig.Url, miConfig.AccessKey, IdCardNo, "", "", "", "", "", "") saveLog(result, requestLog, "2201A", "挂号") } else { result, requestLog = service.Jxyb2201(PsnNo, insutype, IdCardNo, miConfig.OrgName, roles.UserName, ipt_otp_no, department.Name, miConfig.Code, department.Number, doctor_info.DoctorNumber, psn_info.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, id_card_type, doctor_info.UserName, miConfig.Url, miConfig.AccessKey, psn_info.VerifyNumber, "", "", "01", IdCardNo, "15", psn_info.PsnName) saveLog(result, requestLog, "2201A", "挂号") } if err := json.Unmarshal([]byte(result), &resThree); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } infocode = resThree.Infcode } else if miConfig.MdtrtareaAdmvs == "361025" { //江西萍乡 psn_info, _ := service.GetPsnByPatientId(id) var result string var requestLog string if id_card_type == 1 { bas := strings.Split(psn_info.CardInfo, "|") basNumber := bas[2] card_sn := "" result, requestLog = service.Jxyb2201(PsnNo, insutype, IdCardNo, miConfig.OrgName, roles.UserName, ipt_otp_no, department.Name, miConfig.Code, department.Number, doctor_info.DoctorNumber, insuplc_admdvs_temp, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, id_card_type, doctor_info.UserName, miConfig.Url, miConfig.AccessKey, basNumber, "", card_sn, "01", IdCardNo, "15", psn_info.PsnName) saveLog(result, requestLog, "2201A", "挂号") } else if id_card_type == 2 { result, requestLog = service.Jxyb2201(PsnNo, insutype, IdCardNo, miConfig.OrgName, roles.UserName, ipt_otp_no, department.Name, miConfig.Code, department.Number, doctor_info.DoctorNumber, insuplc_admdvs_temp, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, id_card_type, doctor_info.UserName, miConfig.Url, miConfig.AccessKey, IdCardNo, "", "", "", "", "", "") saveLog(result, requestLog, "2201A", "挂号") } else { result, requestLog = service.Jxyb2201(PsnNo, insutype, IdCardNo, miConfig.OrgName, roles.UserName, ipt_otp_no, department.Name, miConfig.Code, department.Number, doctor_info.DoctorNumber, psn_info.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, id_card_type, doctor_info.UserName, miConfig.Url, miConfig.AccessKey, psn_info.VerifyNumber, "", "", "01", IdCardNo, "15", psn_info.PsnName) saveLog(result, requestLog, "2201A", "挂号") } if err := json.Unmarshal([]byte(result), &resThree); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } infocode = resThree.Infcode } else if miConfig.MdtrtareaAdmvs == "360100" { //江西萍乡 psn_info, _ := service.GetPsnByPatientId(id) var result string var requestLog string if id_card_type == 1 { bas := strings.Split(psn_info.CardInfo, "|") basNumber := bas[2] card_sn := "" result, requestLog = service.Jxyb2201(PsnNo, insutype, IdCardNo, miConfig.OrgName, roles.UserName, ipt_otp_no, department.Name, miConfig.Code, department.Number, doctor_info.DoctorNumber, insuplc_admdvs_temp, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, id_card_type, doctor_info.UserName, miConfig.Url, miConfig.AccessKey, basNumber, "", card_sn, "01", IdCardNo, "15", psn_info.PsnName) saveLog(result, requestLog, "2201A", "挂号") } else if id_card_type == 2 { result, requestLog = service.Jxyb2201(PsnNo, insutype, IdCardNo, miConfig.OrgName, roles.UserName, ipt_otp_no, department.Name, miConfig.Code, department.Number, doctor_info.DoctorNumber, insuplc_admdvs_temp, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, id_card_type, doctor_info.UserName, miConfig.Url, miConfig.AccessKey, IdCardNo, "", "", "", "", "", "") saveLog(result, requestLog, "2201A", "挂号") } else { result, requestLog = service.Jxyb2201(PsnNo, insutype, IdCardNo, miConfig.OrgName, roles.UserName, ipt_otp_no, department.Name, miConfig.Code, department.Number, doctor_info.DoctorNumber, psn_info.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, id_card_type, doctor_info.UserName, miConfig.Url, miConfig.AccessKey, psn_info.VerifyNumber, "", "", "01", IdCardNo, "15", psn_info.PsnName) saveLog(result, requestLog, "2201A", "挂号") } if err := json.Unmarshal([]byte(result), &resThree); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } infocode = resThree.Infcode } else if miConfig.MdtrtareaAdmvs == "341203" { psn_info, _ := service.GetPsnByPatientId(id) his.PsnNo = psn_info.PsnNo psn_info.VerifyNumber = strings.Replace(psn_info.VerifyNumber, "+", "%2B", -1) var cert_no string if id_card_type == 1 { bas := strings.Split(psn_info.CardInfo, "|") cert_no = bas[2] } else if id_card_type == 4 { cert_no = psn_info.VerifyNumber psn_info.VerifyNumber = psn_info.VerifyNumber IdCardNo = psn_info.VerifyNumber } else { cert_no = IdCardNo psn_info.VerifyNumber = cert_no } for _, item := range rf { if item.Insutype == insutype { his.InsuplcAdmdvs = insuplc_admdvs } } his.Insutype = insutype var api string ipt_otp_no = timeFormat api = miConfig.SecretKey + "ahyb/2201?verify_number=" + cert_no + "&cert_no=" + IdCardNo + "&psn_no=" + PsnNo + "&insutype=" + insutype + "&cert_no=" + cert_no + "&ipt_otp_no=" + ipt_otp_no + "&org_name=" + miConfig.OrgName + "&opera=" + roles.UserName + "&doctor_name=" + doctor_info.UserName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + insuplc_admdvs_temp + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&id_card_type=" + strconv.FormatInt(id_card_type, 10) + "&dept_code=" + department.Number + "&dept=" + department.Name + "&doctor_id=" + doctor_info.DoctorNumber + "&url=" + miConfig.Url + "&ak=" + miConfig.AccessKey + "&verify_number=" + psn_info.VerifyNumber + "&cainfo=" + miConfig.Cainfo resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } status := respJSON["data"].(map[string]interface{})["status"].(string) if status == "0" { err_msg := respJSON["data"].(map[string]interface{})["msg"].(string) c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": err_msg, }) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) result, _ := json.Marshal(respJSON) if err := json.Unmarshal([]byte(result), &resThree); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } infocode = resThree.Infcode } else if miConfig.MdtrtareaAdmvs == "340699" { psn_info, _ := service.GetPsnByPatientId(id) his.PsnNo = psn_info.PsnNo psn_info.VerifyNumber = strings.Replace(psn_info.VerifyNumber, "+", "%2B", -1) var cert_no string if id_card_type == 1 { bas := strings.Split(psn_info.CardInfo, "|") cert_no = bas[2] } else if id_card_type == 4 { cert_no = psn_info.VerifyNumber psn_info.VerifyNumber = psn_info.VerifyNumber IdCardNo = psn_info.VerifyNumber } else { cert_no = IdCardNo psn_info.VerifyNumber = cert_no } for _, item := range rf { if item.Insutype == insutype { his.InsuplcAdmdvs = insuplc_admdvs patient.InsuplcAdmdvs = insuplc_admdvs } } his.Insutype = insutype var api string ipt_otp_no = timeFormat api = miConfig.SecretKey + "ahyb/2201?psn_no=" + PsnNo + "&verify_number=" + cert_no + "&cert_no=" + IdCardNo + "&insutype=" + insutype + "&cert_no=" + cert_no + "&ipt_otp_no=" + ipt_otp_no + "&org_name=" + miConfig.OrgName + "&opera=" + roles.UserName + "&doctor_name=" + doctor_info.UserName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + insuplc_admdvs_temp + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&id_card_type=" + strconv.FormatInt(id_card_type, 10) + "&dept_code=" + department.Number + "&dept=" + department.Name + "&doctor_id=" + doctor_info.DoctorNumber + "&url=" + miConfig.Url + "&ak=" + miConfig.AccessKey + "&verify_number=" + psn_info.VerifyNumber + "&cainfo=" + miConfig.Cainfo resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } status := respJSON["data"].(map[string]interface{})["status"].(string) if status == "0" { err_msg := respJSON["data"].(map[string]interface{})["msg"].(string) c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": err_msg, }) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) result, _ := json.Marshal(respJSON) if err := json.Unmarshal([]byte(result), &resThree); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } infocode = resThree.Infcode } else if miConfig.MdtrtareaAdmvs == "430800" { psn_info, _ := service.GetPsnByPatientId(id) var result string var requestLog string if id_card_type == 1 { bas := strings.Split(psn_info.CardInfo, "|") basNumber := bas[2] card_sn := bas[3] result, requestLog = service.Hnyb2201(PsnNo, insutype, IdCardNo, miConfig.OrgName, roles.UserName, ipt_otp_no, department.Name, miConfig.Code, department.Number, doctor_info.DoctorNumber, miConfig.MdtrtareaAdmvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, id_card_type, doctor_info.UserName, miConfig.Url, miConfig.AccessKey, basNumber, "", card_sn) saveLog(result, requestLog, "2201A", "挂号") } else if id_card_type == 2 { result, requestLog = service.Hnyb2201(PsnNo, insutype, IdCardNo, miConfig.OrgName, roles.UserName, ipt_otp_no, department.Name, miConfig.Code, department.Number, doctor_info.DoctorNumber, psn_info.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, id_card_type, doctor_info.UserName, miConfig.Url, miConfig.AccessKey, IdCardNo, "", "") saveLog(result, requestLog, "2201A", "挂号") } else { result, requestLog = service.Hnyb2201(PsnNo, insutype, IdCardNo, miConfig.OrgName, roles.UserName, ipt_otp_no, department.Name, miConfig.Code, department.Number, doctor_info.DoctorNumber, insuplc_admdvs_temp, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, id_card_type, doctor_info.UserName, miConfig.Url, miConfig.AccessKey, psn_info.VerifyNumber, "", "") saveLog(result, requestLog, "2201A", "挂号") } if err := json.Unmarshal([]byte(result), &resThree); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } infocode = resThree.Infcode } else if miConfig.MdtrtareaAdmvs == "131023" { psn_info, _ := service.GetPsnByPatientId(id) result, requestLog := service.HeBeiyb2201A(PsnNo, insutype, IdCardNo, miConfig.OrgName, roles.UserName, ipt_otp_no, department.Name, miConfig.Code, department.Number, doctor_info.DoctorNumber, insuplc_admdvs_temp, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, id_card_type, doctor_info.UserName, record_time, psn_info.VerifyNumber) saveLog(result, requestLog, "2201A", "挂号") if miConfig.Code == "H15049901371" { if err := json.Unmarshal([]byte(result), &resThree10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } resThree.ErrMsg = resThree10265.ErrMsg resThree.Output = resThree10265.Output resThree.InfRefmsgid = resThree10265.InfRefmsgid } else { if err := json.Unmarshal([]byte(result), &resThree); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } if miConfig.Code == "H15049901371" { infocode, _ = strconv.ParseInt(resThree10265.Infcode, 10, 64) } else { infocode = resThree.Infcode } } else { psn_info, _ := service.GetPsnByPatientId(id) if id_card_type == 4 || id_card_type == 1 { insuplc_admdvs_temp = psn_info.InsuplcAdmdvs } var rf []*ResultFive json.Unmarshal([]byte(psn_info.Insuinfo), &rf) var insutypes []*ResultFive var insutype string var is390 int = 0 var is310 int = 0 for _, item := range rf { if (item.Insutype == "390" && item.PsnInsuStas == "1") || (item.Insutype == "310" && item.PsnInsuStas == "1") { insutypes = append(insutypes, item) } } if len(insutypes) == 1 { insutype = insutypes[0].Insutype insuplc_admdvs = insutypes[0].InsuplcAdmdvs } else { for _, i := range insutypes { if i.Insutype == "390" { is390 = 1 } if i.Insutype == "310" { is310 = 1 } } } if is390 == 1 { insutype = "390" } if is310 == 1 { insutype = "310" } fmt.Println(len(insutypes)) if len(insutypes) == 0 { for index, item := range rf { if index == 0 { insutype = item.Insutype insuplc_admdvs = item.InsuplcAdmdvs } } fmt.Println(insutype) fmt.Println(insuplc_admdvs) } if social_type > 0 { insutype = strconv.FormatInt(social_type, 10) } fmt.Println("--------") fmt.Println(psn_info) fmt.Println(psn_info.PsnNo) if miConfig.MdtrtareaAdmvs == "441202" { var hisPrescription []*models.HisPrescription res3101 := Checkgd3101ForOne(c, patient.ID, his, admin_user_id, "1", record_time, hisPrescription, department) if res3101.Infcode == 0 { fmt.Println("33333333") if len(res3101.Output.Result) > 0 { fmt.Println("222222") for _, item := range res3101.Output.Result { if len(res3101.ErrMsg) == 0 { res3101.ErrMsg = item.VolaCont } else { res3101.ErrMsg = res3101.ErrMsg + "\n" + item.VolaCont } } c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res3101.ErrMsg, }) return } else { hour := time.Now().Format("15") min := time.Now().Format("04") sec := time.Now().Format("05") record_time_two := record_time + " " + hour + ":" + min + ":" + sec fmt.Println(record_time_two) result, requestLog := service.Gdyb2201A(psn_info.PsnNo, insutype, IdCardNo, miConfig.OrgName, roles.UserName, ipt_otp_no, department.Name, miConfig.Code, department.Number, doctor_info.DoctorNumber, insuplc_admdvs_temp, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, id_card_type, doctor_info.UserName, record_time_two, psn_info.VerifyNumber, admin_user_id) saveLog(result, requestLog, "2201A", "挂号") if miConfig.Code == "H15049901371" { if err := json.Unmarshal([]byte(result), &resThree10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } resThree.ErrMsg = resThree10265.ErrMsg resThree.Output = resThree10265.Output resThree.InfRefmsgid = resThree10265.InfRefmsgid } else { if err := json.Unmarshal([]byte(result), &resThree); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } if miConfig.Code == "H15049901371" { infocode, _ = strconv.ParseInt(resThree10265.Infcode, 10, 64) } else { infocode = resThree.Infcode } } } else if res3101.Infcode != 0 { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res3101.ErrMsg, }) return } } else if miConfig.MdtrtareaAdmvs == "440205" { var hisPrescription []*models.HisPrescription res3101 := Checkgd3101ForOne(c, patient.ID, his, admin_user_id, "1", record_time, hisPrescription, department) if res3101.Infcode == 0 { fmt.Println("33333333") if len(res3101.Output.Result) > 0 { fmt.Println("222222") for _, item := range res3101.Output.Result { if len(res3101.ErrMsg) == 0 { res3101.ErrMsg = item.VolaCont } else { res3101.ErrMsg = res3101.ErrMsg + "\n" + item.VolaCont } } c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res3101.ErrMsg, }) return } else { hour := time.Now().Format("15") min := time.Now().Format("04") sec := time.Now().Format("05") record_time_two := record_time + " " + hour + ":" + min + ":" + sec fmt.Println(record_time_two) result, requestLog := service.Gdyb2201A(psn_info.PsnNo, insutype, IdCardNo, miConfig.OrgName, roles.UserName, ipt_otp_no, department.Name, miConfig.Code, department.Number, doctor_info.DoctorNumber, insuplc_admdvs_temp, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, id_card_type, doctor_info.UserName, record_time_two, psn_info.VerifyNumber, admin_user_id) saveLog(result, requestLog, "2201A", "挂号") if miConfig.Code == "H15049901371" { if err := json.Unmarshal([]byte(result), &resThree10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } resThree.ErrMsg = resThree10265.ErrMsg resThree.Output = resThree10265.Output resThree.InfRefmsgid = resThree10265.InfRefmsgid } else { if err := json.Unmarshal([]byte(result), &resThree); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } if miConfig.Code == "H15049901371" { infocode, _ = strconv.ParseInt(resThree10265.Infcode, 10, 64) } else { infocode = resThree.Infcode } } } else if res3101.Infcode != 0 { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res3101.ErrMsg, }) return } } else if miConfig.MdtrtareaAdmvs == "441799" { doctor_info, _ := service.GetAdminUserInfoByID(adminInfo.CurrentOrgId, patientPrescription.DoctorId) psn_info, _ := service.GetPsnByPatientId(id) var verify_number string if id_card_type == 4 { verify_number = psn_info.VerifyNumber } else if id_card_type == 1 { bas := strings.Split(psn_info.CardInfo, "|") cardNumber := bas[2] verify_number = cardNumber } else { verify_number = psn_info.Certno } api := miConfig.Url + "gdyb/2201?psn_no=" + PsnNo + "&insutype=" + insutype + "&cert_no=" + Certno + "&ipt_otp_no=" + ipt_otp_no + "&org_name=" + miConfig.OrgName + "&operator=" + roles.UserName + "&doctor=" + doctor_info.UserName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + insuplc_admdvs_temp + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&id_card_type=" + strconv.FormatInt(id_card_type, 10) + "&dept_code=" + department.Number + "&dept=" + department.Name + "&doctor_id=" + doctor_info.DoctorNumber + "&doctor_name=" + doctor_info.UserName + "&verify_number=" + verify_number + "&record_time=" + record_time resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) result, _ := json.Marshal(respJSON) if err := json.Unmarshal([]byte(result), &resThree); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } infocode = resThree.Infcode } else { hour := time.Now().Format("15") min := time.Now().Format("04") sec := time.Now().Format("05") record_time_two := record_time + " " + hour + ":" + min + ":" + sec if id_card_type == 1 { for _, item := range rf { if item.Insutype == strconv.FormatInt(social_type, 10) { if strconv.FormatInt(social_type, 10) == "310" && item.PsnInsuStas == "1" { insuplc_admdvs_temp = item.InsuplcAdmdvs } else if strconv.FormatInt(social_type, 10) == "390" { insuplc_admdvs_temp = miConfig.MdtrtareaAdmvs } else { insuplc_admdvs_temp = miConfig.MdtrtareaAdmvs } } } } if miConfig.MdtrtareaAdmvs == "440205" && strconv.FormatInt(social_type, 10) == "390" { insuplc_admdvs_temp = miConfig.MdtrtareaAdmvs } if id_card_type == 1 { utils.ErrorLog("解析失败:%v", psn_info.CardInfo) bas := strings.Split(psn_info.CardInfo, "|") basNumber := bas[1] IdCardNo = basNumber } if miConfig.MdtrtareaAdmvs == "450721" && id_card_type == 1 { IdCardNo = psn_info.VerifyNumber } if len(insuplc_admdvs_temp) == 0 { insuplc_admdvs_temp = miConfig.MdtrtareaAdmvs } var result string var requestLog string if miConfig.Code == "H44030501364" || miConfig.Code == "H44030903432" || miConfig.Code == "H44030500255" { var hisPrescription []*models.HisPrescription res3101 := Checkgd3101ForOne(c, patient.ID, his, admin_user_id, "1", record_time, hisPrescription, department) if res3101.Infcode == 0 { if len(res3101.Output.Result) > 0 { if len(res3101.Output.Result) > 0 { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "failed_type": 100, "warm_type": 1, "msg": res3101.Output.Result, }) return } else { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res3101.ErrMsg, }) return } } else { hour := time.Now().Format("15") min := time.Now().Format("04") sec := time.Now().Format("05") record_time_two := record_time + " " + hour + ":" + min + ":" + sec fmt.Println(record_time_two) if his.IdCardType == 2 { IdCardNo = psn_info.Certno psn_info.VerifyNumber = psn_info.Certno } else if his.IdCardType == 4 { IdCardNo = psn_info.Certno } else { bas := strings.Split(psn_info.CardInfo, "|") IdCardNo = bas[2] } result, requestLog = service.Gdyb2201A(psn_info.PsnNo, insutype, IdCardNo, miConfig.OrgName, roles.UserName, ipt_otp_no, department.Name, miConfig.Code, department.Number, doctor_info.DoctorNumber, insuplc_admdvs_temp, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, id_card_type, doctor_info.UserName, record_time_two, psn_info.VerifyNumber, admin_user_id) saveLog(result, requestLog, "2201A", "挂号") if miConfig.Code == "H15049901371" { if err := json.Unmarshal([]byte(result), &resThree10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } resThree.ErrMsg = resThree10265.ErrMsg resThree.Output = resThree10265.Output resThree.InfRefmsgid = resThree10265.InfRefmsgid } else { if err := json.Unmarshal([]byte(result), &resThree); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } if miConfig.Code == "H15049901371" { infocode, _ = strconv.ParseInt(resThree10265.Infcode, 10, 64) } else { infocode = resThree.Infcode } } } else if res3101.Infcode != 0 { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res3101.ErrMsg, }) return } } else { psn_info, _ := service.GetPsnByPatientId(id) var rf []*ResultFive json.Unmarshal([]byte(psn_info.Insuinfo), &rf) //var insutypes []*ResultFive var insutype string var insutypes []*ResultFive var is390 int = 0 var is310 int = 0 for _, item := range rf { if (item.Insutype == "390" && item.PsnInsuStas == "1") || (item.Insutype == "310" && item.PsnInsuStas == "1") { insutypes = append(insutypes, item) } } if len(insutypes) == 1 { insutype = insutypes[0].Insutype //insuplc_admdvs = insutypes[0].InsuplcAdmdvs } else { for _, i := range insutypes { if i.Insutype == "390" { is390 = 1 } if i.Insutype == "310" { is310 = 1 } } } if is390 == 1 { insutype = "390" } if is310 == 1 { insutype = "310" } if len(insutypes) == 0 { insutype = "310" } if social_type > 0 { insutype = strconv.FormatInt(social_type, 10) } for _, item := range rf { utils.ErrorLog("解析失败:%v", item.Insutype) utils.ErrorLog("解析失败:%v", insutype) if item.Insutype == insutype { insuplc_admdvs_temp = item.InsuplcAdmdvs utils.ErrorLog("解析失败:%v", insuplc_admdvs_temp) } } result, requestLog = service.Gdyb2201A(psn_info.PsnNo, insutype, IdCardNo, miConfig.OrgName, roles.UserName, ipt_otp_no, department.Name, miConfig.Code, department.Number, doctor_info.DoctorNumber, insuplc_admdvs_temp, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, id_card_type, doctor_info.UserName, record_time_two, psn_info.VerifyNumber, admin_user_id) saveLog(result, requestLog, "2201A", "挂号") } if miConfig.Code == "H15049901371" { if err := json.Unmarshal([]byte(result), &resThree10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } resThree.ErrMsg = resThree10265.ErrMsg resThree.Output = resThree10265.Output resThree.InfRefmsgid = resThree10265.InfRefmsgid } else { if err := json.Unmarshal([]byte(result), &resThree); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } if miConfig.Code == "H15049901371" { infocode, _ = strconv.ParseInt(resThree10265.Infcode, 10, 64) } else { infocode = resThree.Infcode } } } if infocode == -1 { adminUser := c.GetAdminUserInfo() errlog := &models.HisOrderError{ UserOrgId: adminUser.CurrentOrgId, Ctime: time.Now().Unix(), Mtime: time.Now().Unix(), ErrMsg: resThree.ErrMsg, Status: 1, PatientId: id, RecordTime: recordDateTime, Stage: 2, } service.CreateErrMsgLog(errlog) c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": resThree.ErrMsg, }) return } his.Number = resThree.Output.Data.MdtrtID his.PsnNo = resThree.Output.Data.PsnNo his.IptOtpNo = resThree.Output.Data.IptOtpNo his.IdCardNo = patient.IdCardNo his.PhoneNumber = patient.Phone his.UserOrgId = adminInfo.CurrentOrgId his.Insutype = insutype his.Ctime = time.Now().Unix() his.Mtime = time.Now().Unix() his.InsuplcAdmdvs = insuplc_admdvs_temp if miConfig.MdtrtareaAdmvs == "421300" && strings.Contains(insuplc_admdvs_temp, "4213") { his.InsuplcAdmdvs = miConfig.MdtrtareaAdmvs } if miConfig.MdtrtareaAdmvs == "420200" && strings.Contains(insuplc_admdvs_temp, "4202") { his.InsuplcAdmdvs = miConfig.MdtrtareaAdmvs } if miConfig.MdtrtareaAdmvs == "421182" && strings.Contains(insuplc_admdvs_temp, "4211") { his.InsuplcAdmdvs = miConfig.MdtrtareaAdmvs } his.Status = 1 his.MdtrtGrpType = mdtrt_type service.UpdateHisPatientStatus(&his) service.UpdateHisPatient123(&patient) service.UpdateHisPrescriptionHisID(his.ID, patient.ID, recordDateTime, adminInfo.CurrentOrgId) c.ServeSuccessJSON(map[string]interface{}{ "his_info": his, }) } else { adminUser := c.GetAdminUserInfo() errlog := &models.HisOrderError{ UserOrgId: adminUser.CurrentOrgId, Ctime: time.Now().Unix(), Mtime: time.Now().Unix(), ErrMsg: res.ErrMsg, Status: 1, PatientId: id, RecordTime: recordDateTime, Stage: 1, } service.CreateErrMsgLog(errlog) c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res.ErrMsg, }) return //c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeGdybOneException) } } } func (c *HisApiController) GetUploadInfo() { id, _ := c.GetInt64("id") record_time := c.GetString("record_time") his_patient_id, _ := c.GetInt64("his_patient_id") order_id, _ := c.GetInt64("order_id") pay_way, _ := c.GetInt64("pay_way") pay_ways := c.GetString("pay_ways") oth_desc := c.GetString("oth_desc") pay_price, _ := c.GetFloat("pay_price") pay_card_no := c.GetString("pay_card_no") discount_price, _ := c.GetFloat("discount_price") preferential_price, _ := c.GetFloat("preferential_price") reality_price, _ := c.GetFloat("reality_price") found_price, _ := c.GetFloat("found_price") medical_insurance_price, _ := c.GetFloat("medical_insurance_price") private_price, _ := c.GetFloat("private_price") settle_accounts_type, _ := c.GetInt64("settle_accounts_type") admin_user_id, _ := c.GetInt64("admin_user_id") 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") begin_time := c.GetString("begin_time") acct_used_flag_num, _ := c.GetInt64("acct_used_flag") cash_pay := c.GetString("cash_pay") band_card_pay := c.GetString("band_card_pay") wechat_pay := c.GetString("wechat_pay") ali_pay := c.GetString("ali_pay") jifen_pay := c.GetString("jifen_pay") acct_used_flag := strconv.FormatInt(acct_used_flag_num, 10) fmt.Println(acct_used_flag) id_str := c.GetString("ids") ids_arr := strings.Split(id_str, ",") timeLayout := "2006-01-02" loc, _ := time.LoadLocation("Local") theTime, err := time.ParseInLocation(timeLayout+" 15:04:05", record_time+" 00:00:00", loc) if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } recordDateTime := theTime.Unix() adminUser := c.GetAdminUserInfo() var tempOrder models.HisOrder tempOrder, _ = service.GetHisOrderByID(order_id) var prescriptions []*models.HisPrescription var start_time int64 var end_time int64 //押金模块 dec_way := c.GetString("dec_way") //是否使用押金支付bool类型 tmp_decimal := c.GetString("tmp_decimal") var decimal float64 //本次使用的押金 var errmsg error if dec_way == "true" && tmp_decimal == "0" || dec_way == "true" && tmp_decimal == "" { c.ServeFailJsonSend(enums.ErrorCodeParamWrong, "押金不能为0") return } if len(tmp_decimal) > 0 { if tmp_decimal[0] == 45 { c.ServeFailJsonSend(enums.ErrorCodeParamWrong, "押金不能为负数") return } } tt, errs := strconv.ParseFloat(tmp_decimal, 64) fmt.Println(errs) decimal = tt //if adminUser.CurrentOrgId == 10106{ // if len(fapiao_code) == 0{ // fapiao_code = "144072080589" // } // if len(fapiao_number) == 0{ // order, _ := service.GetLastHisOrder(adminUser.CurrentOrgId) // if order.ID == 0{ // fapiao_number = "00001520" // }else{ // //fapiao_code = "00001520" // fpNumber, _ := strconv.Atoi(order.FaPiaoNumber) // var zero string // if fpNumber >= 1000{ // zero = "0000" + strconv.Itoa(fpNumber) // }else if fpNumber >= 10000{ // zero = "000" + strconv.Itoa(fpNumber) // } else if fpNumber >= 100000{ // zero = "00" + strconv.Itoa(fpNumber) // } else if fpNumber >= 1000000{ // zero = "0" + strconv.Itoa(fpNumber) // }else { // zero = strconv.Itoa(fpNumber) // } // fapiao_number = zero // } // } //} roles, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, admin_user_id) his, _ := service.GetNewHisPatientInfo(adminUser.CurrentOrgId, his_patient_id, recordDateTime) var patientPrescription models.HisPrescriptionInfo patientPrescription, _ = service.FindHisPatientPrescriptionInfo(adminUser.CurrentOrgId, his_patient_id, recordDateTime) if patientPrescription.ID == 0 { patientPrescription, _ = service.FindLastPatientPrescriptionInfo(adminUser.CurrentOrgId, id, recordDateTime) } //if patientPrescription.Do miConfig, _ := service.FindMedicalInsuranceInfo(adminUser.CurrentOrgId) department, _ := service.GetDepartMentDetail(patientPrescription.Departments) doctor_info, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, patientPrescription.DoctorId) diagnosis_ids := strings.Split(diagnosis_id, ",") var config []*models.HisXtDiagnoseConfig for _, item := range diagnosis_ids { id, _ := strconv.ParseInt(item, 10, 64) diagnosisConfig, _ := service.FindDiagnoseById(id) config = append(config, &diagnosisConfig) } sickConfig, _ := service.FindSickById(sick_type) //if tempOrder.ID == 0 { // tempOrder, _ = service.GetTodayHisOrder(adminUser.CurrentOrgId, id, recordDateTime, his.Number) //} if tempOrder.ID == 0 { var result string var requestLog string var res2 ResultSix var res3 GZResultSix var ressix10265 ResultSix10265 if miConfig.MdtrtareaAdmvs == "421300" { data := make(map[string]interface{}) client := &http.Client{} data["psn_no"] = his.PsnNo data["mdtrt_id"] = his.Number data["opter"] = roles.UserName data["org_name"] = miConfig.OrgName data["med_type"] = strconv.FormatInt(reg_type, 10) data["doctor_id"] = doctor_info.DoctorNumber data["doctor_name"] = doctor_info.UserName data["department"] = department.Name data["fixmedins_code"] = miConfig.Code data["insuplc_admdvs"] = his.InsuplcAdmdvs data["mdtrtarea_admvs"] = miConfig.MdtrtareaAdmvs data["secret_key"] = miConfig.SecretKey data["sick_code"] = sickConfig.CountryCode data["sick_name"] = sickConfig.ClassName data["dept"] = strconv.FormatInt(department.ID, 10) data["config"] = config data["begin_time"] = begin_time bytesData, _ := json.Marshal(data) req, _ := http.NewRequest("POST", "http://192.168.124.4:9532/"+"hbyb/2203", bytes.NewReader(bytesData)) resp, _ := client.Do(req) defer resp.Body.Close() body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) userJSONBytes, _ := json.Marshal(respJSON) fmt.Println("log") fmt.Println(string(userJSONBytes)) if err := json.Unmarshal(userJSONBytes, &res2); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "420200" { data := make(map[string]interface{}) client := &http.Client{} data["psn_no"] = his.PsnNo data["mdtrt_id"] = his.Number data["opter"] = roles.UserName data["org_name"] = miConfig.OrgName if reg_type == 11 && his.Insutype == "390" { data["med_type"] = "110104" } else { data["med_type"] = strconv.FormatInt(reg_type, 10) } data["doctor_id"] = doctor_info.DoctorNumber data["doctor_name"] = doctor_info.UserName data["department"] = department.Name data["fixmedins_code"] = miConfig.Code data["insuplc_admdvs"] = his.InsuplcAdmdvs data["mdtrtarea_admvs"] = miConfig.MdtrtareaAdmvs data["secret_key"] = miConfig.SecretKey data["sick_code"] = sickConfig.CountryCode data["sick_name"] = sickConfig.ClassName data["dept"] = strconv.FormatInt(department.ID, 10) data["config"] = config data["begin_time"] = begin_time bytesData, _ := json.Marshal(data) req, _ := http.NewRequest("POST", "http://192.168.0.197:9532/"+"hbyb/2203", bytes.NewReader(bytesData)) resp, _ := client.Do(req) defer resp.Body.Close() body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) userJSONBytes, _ := json.Marshal(respJSON) fmt.Println("log") fmt.Println(string(userJSONBytes)) if err := json.Unmarshal(userJSONBytes, &res2); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "420902" { data := make(map[string]interface{}) client := &http.Client{} data["psn_no"] = his.PsnNo data["mdtrt_id"] = his.Number data["opter"] = roles.UserName data["org_name"] = miConfig.OrgName if reg_type == 11 && his.Insutype == "390" { data["med_type"] = "110104" } else { data["med_type"] = strconv.FormatInt(reg_type, 10) } data["doctor_id"] = doctor_info.DoctorNumber data["doctor_name"] = doctor_info.UserName data["department"] = department.Name data["fixmedins_code"] = miConfig.Code data["insuplc_admdvs"] = his.InsuplcAdmdvs data["mdtrtarea_admvs"] = miConfig.MdtrtareaAdmvs data["secret_key"] = miConfig.SecretKey data["sick_code"] = sickConfig.CountryCode data["sick_name"] = sickConfig.ClassName data["dept"] = strconv.FormatInt(department.ID, 10) data["config"] = config data["begin_time"] = begin_time bytesData, _ := json.Marshal(data) req, _ := http.NewRequest("POST", miConfig.Url+"hbyb/2203", bytes.NewReader(bytesData)) resp, _ := client.Do(req) defer resp.Body.Close() body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) userJSONBytes, _ := json.Marshal(respJSON) fmt.Println("log") fmt.Println(string(userJSONBytes)) if err := json.Unmarshal(userJSONBytes, &res2); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "421182" { data := make(map[string]interface{}) client := &http.Client{} data["psn_no"] = his.PsnNo data["mdtrt_id"] = his.Number data["opter"] = roles.UserName data["org_name"] = miConfig.OrgName if reg_type == 11 && his.Insutype == "390" { data["med_type"] = "110104" } else { data["med_type"] = strconv.FormatInt(reg_type, 10) } data["doctor_id"] = doctor_info.DoctorNumber data["doctor_name"] = doctor_info.UserName data["department"] = department.Name data["fixmedins_code"] = miConfig.Code data["insuplc_admdvs"] = his.InsuplcAdmdvs data["mdtrtarea_admvs"] = miConfig.MdtrtareaAdmvs data["secret_key"] = miConfig.SecretKey data["sick_code"] = sickConfig.CountryCode data["sick_name"] = sickConfig.ClassName data["dept"] = strconv.FormatInt(department.ID, 10) data["config"] = config data["begin_time"] = begin_time bytesData, _ := json.Marshal(data) req, _ := http.NewRequest("POST", miConfig.Url+"hbyb/2203", bytes.NewReader(bytesData)) resp, _ := client.Do(req) defer resp.Body.Close() body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) userJSONBytes, _ := json.Marshal(respJSON) fmt.Println("log") fmt.Println(string(userJSONBytes)) if err := json.Unmarshal(userJSONBytes, &res2); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "320921" || miConfig.MdtrtareaAdmvs == "320982" { data := make(map[string]interface{}) client := &http.Client{} data["psn_no"] = his.PsnNo data["mdtrt_id"] = his.Number data["doctor"] = roles.UserName data["department"] = department.Name data["org_name"] = miConfig.OrgName data["med_type"] = strconv.FormatInt(reg_type, 10) data["doctor_id"] = doctor_info.DoctorNumber data["new_doctor_name"] = doctor_info.UserName data["fixmedins_code"] = miConfig.Code data["insuplc_admdvs"] = his.InsuplcAdmdvs data["mdtrtarea_admvs"] = miConfig.MdtrtareaAdmvs data["secret_key"] = miConfig.SecretKey data["sick_code"] = sickConfig.CountryCode data["sick_name"] = sickConfig.ClassName data["url"] = miConfig.Url data["ak"] = miConfig.AccessKey data["begin_time"] = begin_time data["cainfo"] = miConfig.Cainfo data["dept"] = strconv.FormatInt(department.ID, 10) data["config"] = config bytesData, _ := json.Marshal(data) var req *http.Request if miConfig.MdtrtareaAdmvs == "320921" { req, _ = http.NewRequest("POST", "http://192.168.2.3:9532/"+"jsyb/2203", bytes.NewReader(bytesData)) //api = "http://192.168.2.110:9532/" + "jsyb/readcard?" + "fixmedins_code=" + miConfig.Code + "&secret_key=" + miConfig.SecretKey + "&ak=" + miConfig.AccessKey + "&org_name=" + miConfig.OrgName + "&doctor=" + roles.UserName + // "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&url=" + miConfig.Url + "&cainfo=" + miConfig.Cainfo } else { req, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/2203", bytes.NewReader(bytesData)) } resp, _ := client.Do(req) defer resp.Body.Close() body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) userJSONBytes, _ := json.Marshal(respJSON) fmt.Println("log") fmt.Println(string(userJSONBytes)) if err := json.Unmarshal(userJSONBytes, &ressix10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res2.InfRefmsgid = ressix10265.InfRefmsgid res2.Output = ressix10265.Output res2.ErrMsg = ressix10265.ErrMsg res2.Cainfo = ressix10265.Cainfo res2.WarnMsg = ressix10265.WarnMsg infocode, _ := strconv.ParseInt(ressix10265.Infcode, 10, 64) res2.Infcode = infocode } else if miConfig.MdtrtareaAdmvs == "150499" { data := make(map[string]interface{}) client := &http.Client{} data["psn_no"] = his.PsnNo data["mdtrt_id"] = his.Number data["doctor"] = roles.UserName data["department"] = department.Name data["org_name"] = miConfig.OrgName data["med_type"] = strconv.FormatInt(reg_type, 10) data["doctor_id"] = doctor_info.DoctorNumber data["new_doctor_name"] = doctor_info.UserName data["fixmedins_code"] = miConfig.Code data["insuplc_admdvs"] = his.InsuplcAdmdvs data["mdtrtarea_admvs"] = miConfig.MdtrtareaAdmvs data["secret_key"] = miConfig.SecretKey data["sick_code"] = sickConfig.CountryCode data["sick_name"] = sickConfig.ClassName data["url"] = miConfig.Url data["ak"] = miConfig.AccessKey data["begin_time"] = begin_time data["cainfo"] = miConfig.Cainfo data["dept"] = strconv.FormatInt(department.ID, 10) data["config"] = config bytesData, _ := json.Marshal(data) var req *http.Request req, _ = http.NewRequest("POST", "http://172.16.13.254:9532/"+"nmyb/2203", bytes.NewReader(bytesData)) resp, _ := client.Do(req) defer resp.Body.Close() body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) userJSONBytes, _ := json.Marshal(respJSON) fmt.Println("log") fmt.Println(string(userJSONBytes)) if err := json.Unmarshal(userJSONBytes, &ressix10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res2.InfRefmsgid = ressix10265.InfRefmsgid res2.Output = ressix10265.Output res2.ErrMsg = ressix10265.ErrMsg res2.Cainfo = ressix10265.Cainfo res2.WarnMsg = ressix10265.WarnMsg infocode, _ := strconv.ParseInt(ressix10265.Infcode, 10, 64) res2.Infcode = infocode } else if miConfig.MdtrtareaAdmvs == "350500" { result, requestLog, _ = service.FJyb2203(his.PsnNo, his.Number, doctor_info.UserName, department.Name, miConfig.OrgName, strconv.FormatInt(reg_type, 10), doctor_info.DoctorNumber, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, sickConfig.ContentCode, sickConfig.ClassName, roles.UserName, config, begin_time, doctor_info.UserName, roles.UserName, miConfig.Url, miConfig.Code, miConfig.AppSecret, miConfig.SignKey, miConfig.EncKey) saveLog(result, requestLog, "2203", "上传就诊信息") var respJSON2 map[string]interface{} if err := json.Unmarshal([]byte(string(result)), &respJSON2); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } userJSONBytes2, _ := json.Marshal(respJSON2) if err := json.Unmarshal(userJSONBytes2, &res2); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } result2, src_request, _ := service.FJyb2205(his.PsnNo, his.Number, "0000", miConfig.OrgName, roles.UserName, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, miConfig.Code, miConfig.Url, miConfig.Code, miConfig.AppSecret, miConfig.SignKey, miConfig.EncKey) fmt.Println(result2) fmt.Println(src_request) } else if miConfig.MdtrtareaAdmvs == "441799" { data := make(map[string]interface{}) client := &http.Client{} data["psn_no"] = his.PsnNo data["mdtrt_id"] = his.Number data["doctor"] = roles.UserName data["department"] = department.Name data["org_name"] = miConfig.OrgName data["med_type"] = strconv.FormatInt(reg_type, 10) data["doctor_id"] = doctor_info.DoctorNumber data["new_doctor_name"] = doctor_info.UserName data["fixmedins_code"] = miConfig.Code data["insuplc_admdvs"] = his.InsuplcAdmdvs data["mdtrtarea_admvs"] = miConfig.MdtrtareaAdmvs data["secret_key"] = miConfig.SecretKey data["sick_code"] = sickConfig.CountryCode data["sick_name"] = sickConfig.ClassName data["url"] = miConfig.Url data["ak"] = miConfig.AccessKey data["begin_time"] = begin_time data["cainfo"] = miConfig.Cainfo data["dept"] = strconv.FormatInt(department.ID, 10) data["config"] = config bytesData, _ := json.Marshal(data) var req *http.Request req, _ = http.NewRequest("POST", "http://172.20.10.81:9532/"+"gdyb/2203", bytes.NewReader(bytesData)) resp, _ := client.Do(req) defer resp.Body.Close() body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) userJSONBytes, _ := json.Marshal(respJSON) fmt.Println("log") fmt.Println(string(userJSONBytes)) if err := json.Unmarshal(userJSONBytes, &res2); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else { if miConfig.MdtrtareaAdmvs == "440781" { // result, requestLog = service.Gdyb2203A(his.PsnNo, his.Number, doctor_info.UserName, department.Name, miConfig.OrgName, strconv.FormatInt(reg_type, 10), doctor_info.DoctorNumber, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, sickConfig.ContentCode, sickConfig.ClassName, roles.UserName, config, begin_time) } else { if miConfig.Code == "H15049901371" { //赤峰地区国家医保医疗类别 //职工透析:医疗类别选特殊情况门诊990502 //居民定额血透门慢: 医疗类别选门诊慢病140104 var med_type string if his.Insutype == "390" { if reg_type == 14 { med_type = "9933" } else if reg_type == 11 { med_type = "11" } } else if his.Insutype == "310" { if reg_type == 14 { med_type = "990502" } else if reg_type == 11 { med_type = "11" } } result, requestLog = service.Gdyb2203A(his.PsnNo, his.Number, doctor_info.UserName, department.Name, miConfig.OrgName, med_type, doctor_info.DoctorNumber, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, sickConfig.ContentCode, sickConfig.ClassName, roles.UserName, config, begin_time) } else { result, requestLog = service.Gdyb2203(his.PsnNo, his.Number, doctor_info.UserName, department.Name, miConfig.OrgName, strconv.FormatInt(reg_type, 10), doctor_info.DoctorNumber, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, sickConfig.ContentCode, sickConfig.ClassName, roles.UserName, config, begin_time, doctor_info.UserName, admin_user_id, roles.UserName) } } saveLog(result, requestLog, "2203", "上传就诊信息") var respJSON2 map[string]interface{} if err := json.Unmarshal([]byte(string(result)), &respJSON2); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } userJSONBytes2, _ := json.Marshal(respJSON2) if miConfig.Code == "H15049901371" { if err := json.Unmarshal(userJSONBytes2, &ressix10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res2.InfRefmsgid = ressix10265.InfRefmsgid res2.Output = ressix10265.Output res2.ErrMsg = ressix10265.ErrMsg res2.Cainfo = ressix10265.Cainfo res2.WarnMsg = ressix10265.WarnMsg infocode, _ := strconv.ParseInt(ressix10265.Infcode, 10, 64) res2.Infcode = infocode } else { if strings.Contains(his.InsuplcAdmdvs, "4401") { if err := json.Unmarshal(userJSONBytes2, &res3); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res2.Infcode = res3.Infcode } else { if err := json.Unmarshal(userJSONBytes2, &res2); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } } } if res2.Infcode == -1 { adminUser := c.GetAdminUserInfo() errlog := &models.HisOrderError{ UserOrgId: adminUser.CurrentOrgId, Ctime: time.Now().Unix(), Mtime: time.Now().Unix(), ErrMsg: res2.ErrMsg, Status: 1, PatientId: id, RecordTime: recordDateTime, Stage: 3, } service.CreateErrMsgLog(errlog) c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res2.ErrMsg, }) return } else { his.Diagnosis = diagnosis_id his.SickType = sickConfig.ID //var p_type int64 //if reg_type == 1111 || reg_type == 1112 { // p_type = 11 // //} his.PType = fmt.Sprintf("%d", reg_type) service.UpdateHisPatientThree(&his) data := make(map[string]interface{}) if settle_accounts_type == 1 { //日结 if reg_type == 11 || reg_type == 1111 || reg_type == 1112 { prescriptions, _ = service.GetPrescriptionByIds(ids_arr, adminUser.CurrentOrgId) } else { prescriptions, _ = service.GetNewHisPrescription(adminUser.CurrentOrgId, his_patient_id, recordDateTime, strconv.Itoa(int(reg_type))) } //prescriptions, _ = service.GetNewHisPrescriptionTwo(adminUser.CurrentOrgId, his_patient_id, recordDateTime, reg_type) data["pre"] = prescriptions } 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.GetMonthHisPrescriptionTwo(adminUser.CurrentOrgId, id, recordStartTime, recordEndTime, reg_type) data["pre"] = prescriptions } timestamp := time.Now().Unix() tempTime := time.Unix(timestamp, 0) timeFormat := tempTime.Format("20060102150405") chrgBchno := rand.Intn(100000) + 10000 new_chrg_bchno := "" chrg_bchno := timeFormat + strconv.FormatInt(int64(chrgBchno), 10) + strconv.FormatInt(his.PatientId, 10) new_chrg_bchno = chrg_bchno strconv.FormatInt(his.PatientId, 10) client := &http.Client{} if adminUser.CurrentOrgId == 10265 { if !strings.Contains(his.InsuplcAdmdvs, "1504") { new_chrg_bchno = "0000" } } data["psn_no"] = his.PsnNo data["mdtrt_id"] = his.Number data["chrg_bchno"] = new_chrg_bchno data["org_name"] = miConfig.OrgName data["doctor"] = doctor_info.UserName data["doctor_id"] = doctor_info.DoctorNumber data["dept"] = strconv.FormatInt(patientPrescription.Departments, 10) data["fixmedins_code"] = miConfig.Code data["dept_code"] = department.Number data["insuplc_admdvs"] = his.InsuplcAdmdvs data["mdtrtarea_admvs"] = miConfig.MdtrtareaAdmvs data["secret_key"] = miConfig.SecretKey data["balance_accounts_type"] = strconv.FormatInt(his.BalanceAccountsType, 10) data["url"] = miConfig.Url data["ak"] = miConfig.AccessKey data["new_doctor_name"] = patientPrescription.Doctor data["diag_code"] = sickConfig.CountryCode data["cainfo"] = miConfig.Cainfo data["opter"] = roles.UserName var ids []int64 for _, item := range prescriptions { ids = append(ids, item.ID) } config, _ := service.GetMedicalInsuranceConfig(adminUser.CurrentOrgId) if config.IsOpen == 1 { //对接了医保,走医保流程 var res ResultFour var resFour10265 ResultFour10265 if miConfig.MdtrtareaAdmvs == "421300" { bytesData, _ := json.Marshal(data) req, _ := http.NewRequest("POST", "http://192.168.124.4:9532/"+"hbyb/2204", bytes.NewReader(bytesData)) resp, _ := client.Do(req) defer resp.Body.Close() body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) userJSONBytes, _ := json.Marshal(respJSON) fmt.Println("log") fmt.Println(string(userJSONBytes)) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "420200" { bytesData, _ := json.Marshal(data) req, _ := http.NewRequest("POST", "http://192.168.0.197:9532/"+"hbyb/2204", bytes.NewReader(bytesData)) resp, _ := client.Do(req) defer resp.Body.Close() body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) userJSONBytes, _ := json.Marshal(respJSON) fmt.Println("log") fmt.Println(string(userJSONBytes)) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "420902" { bytesData, _ := json.Marshal(data) req, _ := http.NewRequest("POST", miConfig.Url+"hbyb/2204", bytes.NewReader(bytesData)) resp, _ := client.Do(req) defer resp.Body.Close() body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) userJSONBytes, _ := json.Marshal(respJSON) fmt.Println("log") fmt.Println(string(userJSONBytes)) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "421182" { bytesData, _ := json.Marshal(data) req, _ := http.NewRequest("POST", miConfig.Url+"hbyb/2204", bytes.NewReader(bytesData)) resp, _ := client.Do(req) defer resp.Body.Close() body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) userJSONBytes, _ := json.Marshal(respJSON) fmt.Println("log") fmt.Println(string(userJSONBytes)) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "320921" || miConfig.MdtrtareaAdmvs == "320982" { result3101 := Check3101(c, id, his_patient_id, admin_user_id, "2", record_time, prescriptions) if result3101.Infcode == "0" { if len(result3101.Output.Result) > 0 { var errMsgs []string for _, item := range result3101.Output.Result { errMsgs = append(errMsgs, item.VolaCont) } c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": errMsgs, }) return } } bytesData, _ := json.Marshal(data) var req *http.Request if miConfig.MdtrtareaAdmvs == "320921" { data["diag_code"] = sickConfig.CountryCode fmt.Println(data) req, _ = http.NewRequest("POST", "http://192.168.2.3:9532/"+"jsyb/2204", bytes.NewReader(bytesData)) } else { data["diag_code"] = sickConfig.CountryCode fmt.Println(data) req, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/2204", bytes.NewReader(bytesData)) } resp, _ := client.Do(req) defer resp.Body.Close() body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) userJSONBytes, _ := json.Marshal(respJSON) fmt.Println("log") fmt.Println(string(userJSONBytes)) if err := json.Unmarshal(userJSONBytes, &resFour10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res.InfRefmsgid = resFour10265.InfRefmsgid res.Output = resFour10265.Output res.ErrMsg = resFour10265.ErrMsg res.Cainfo = resFour10265.Cainfo res.WarnMsg = resFour10265.WarnMsg infocode, _ := strconv.ParseInt(resFour10265.Infcode, 10, 64) res.Infcode = infocode } else if miConfig.MdtrtareaAdmvs == "150499" { var pagesize int = 2 var start int = 1 var stop int var pagecount int var curpage int var isSuccess bool = true data["doctor_id"] = doctor_info.DoctorNumber //总页数,向上取整,注意除之前要先转换类型为float64 pagecount = int(math.Ceil(float64(len(prescriptions)) / float64(pagesize))) for curpage = 1; curpage <= pagecount; curpage++ { if curpage == 1 { start = 1 } else { start = (curpage-1)*pagesize + 1 } stop = curpage * pagesize if stop > len(prescriptions) { stop = len(prescriptions) } //var requestLog string data["pre"] = prescriptions[start-1 : stop] fmt.Println(data["pre"]) bytesData, _ := json.Marshal(data) var req *http.Request req, _ = http.NewRequest("POST", "http://172.16.13.254:9532/"+"nmyb/2204", bytes.NewReader(bytesData)) resp, _ := client.Do(req) defer resp.Body.Close() body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) userJSONBytes, _ := json.Marshal(respJSON) fmt.Println("log") fmt.Println(string(userJSONBytes)) if err := json.Unmarshal(userJSONBytes, &resFour10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res.InfRefmsgid = resFour10265.InfRefmsgid res.Output = resFour10265.Output res.ErrMsg = resFour10265.ErrMsg res.Cainfo = resFour10265.Cainfo res.WarnMsg = resFour10265.WarnMsg infocode, _ := strconv.ParseInt(resFour10265.Infcode, 10, 64) res.Infcode = infocode if infocode == 0 { res.Output.Result = append(res.Output.Result, res.Output.Result...) } else { isSuccess = false errlog := &models.HisOrderError{ UserOrgId: adminUser.CurrentOrgId, Ctime: time.Now().Unix(), Mtime: time.Now().Unix(), Number: chrg_bchno, ErrMsg: "", Status: 1, PatientId: id, RecordTime: recordDateTime, Stage: 4, } service.CreateErrMsgLog(errlog) c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res.ErrMsg, }) return } } if isSuccess { res.Infcode = 0 } } else if miConfig.MdtrtareaAdmvs == "350500" { result, request_log, _ := service.FJyb2204(his.PsnNo, his.Number, prescriptions, chrg_bchno, miConfig.OrgName, roles.UserName, strconv.FormatInt(patientPrescription.Departments, 10), miConfig.Code, department.Number, doctor_info.DoctorNumber, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, strconv.FormatInt(his.BalanceAccountsType, 10), roles.UserName, miConfig.Url, miConfig.Code, miConfig.AppSecret, miConfig.SignKey, miConfig.EncKey, sickConfig.CountryCode, doctor_info.DoctorNumber) var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } saveLog(result, request_log, "2204", "上传费用明细") userJSONBytes, _ := json.Marshal(dat) if err := json.Unmarshal(userJSONBytes, &resFour10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res.InfRefmsgid = resFour10265.InfRefmsgid res.Output = resFour10265.Output res.ErrMsg = resFour10265.ErrMsg res.Cainfo = resFour10265.Cainfo res.WarnMsg = resFour10265.WarnMsg infocode, _ := strconv.ParseInt(resFour10265.Infcode, 10, 64) res.Infcode = infocode } else if miConfig.MdtrtareaAdmvs == "441799" { bytesData, _ := json.Marshal(data) req, _ := http.NewRequest("POST", miConfig.Url+"gdyb/2204", bytes.NewReader(bytesData)) resp, _ := client.Do(req) defer resp.Body.Close() body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) userJSONBytes, _ := json.Marshal(respJSON) fmt.Println("log") fmt.Println(string(userJSONBytes)) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else { if miConfig.Code == "H15049901371" { result, request_log := service.Gdyb2204(his.PsnNo, his.Number, prescriptions, chrg_bchno, miConfig.OrgName, roles.UserName, strconv.FormatInt(patientPrescription.Departments, 10), miConfig.Code, department.Number, doctor_info.DoctorNumber, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, strconv.FormatInt(his.BalanceAccountsType, 10), patientPrescription.DoctorId, sickConfig.CountryCode, admin_user_id) var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } saveLog(result, request_log, "2204", "上传费用明细") userJSONBytes, _ := json.Marshal(dat) if err := json.Unmarshal(userJSONBytes, &resFour10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res.InfRefmsgid = resFour10265.InfRefmsgid res.Output = resFour10265.Output res.ErrMsg = resFour10265.ErrMsg res.Cainfo = resFour10265.Cainfo res.WarnMsg = resFour10265.WarnMsg infocode, _ := strconv.ParseInt(resFour10265.Infcode, 10, 64) res.Infcode = infocode } else { result, request_log := service.Gdyb2204(his.PsnNo, his.Number, prescriptions, chrg_bchno, miConfig.OrgName, roles.UserName, strconv.FormatInt(patientPrescription.Departments, 10), miConfig.Code, department.Number, strconv.FormatInt(roles.AdminUserId, 10), his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, strconv.FormatInt(his.BalanceAccountsType, 10), patientPrescription.DoctorId, sickConfig.CountryCode, admin_user_id) var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } saveLog(result, request_log, "2204", "上传费用明细") userJSONBytes, _ := json.Marshal(dat) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } } if res.Infcode == 0 { order := &models.HisOrder{ UserOrgId: adminUser.CurrentOrgId, HisPatientId: his.ID, PatientId: his.PatientId, SettleAccountsDate: recordDateTime, MdtrtId: his.Number, PsnNo: his.PsnNo, MedType: strconv.FormatInt(reg_type, 10), Ctime: time.Now().Unix(), Mtime: time.Now().Unix(), Status: 1, Number: chrg_bchno, Infcode: res.Infcode, WarnMsg: res.WarnMsg, Cainfo: res.Cainfo, ErrMsg: res.ErrMsg, RespondTime: res.RefmsgTime, InfRefmsgid: res.InfRefmsgid, OrderStatus: 1, PayWay: pay_way, PayWays: pay_ways, OthDesc: oth_desc, PayPrice: pay_price, PayCardNo: pay_card_no, DiscountPrice: discount_price, PreferentialPrice: preferential_price, RealityPrice: reality_price, FoundPrice: found_price, MedicalInsurancePrice: medical_insurance_price, PrivatePrice: private_price, IsMedicineInsurance: 1, SettleType: settle_accounts_type, SettleStartTime: start_time, SettleEndTime: end_time, Creator: roles.AdminUserId, Modify: roles.AdminUserId, FaPiaoNumber: fapiao_number, FaPiaoCode: fapiao_code, PType: 2, Diagnosis: diagnosis_id, CashPay: cash_pay, WechatPay: wechat_pay, AliPay: ali_pay, JifenPay: jifen_pay, BandCardPay: band_card_pay, } err = service.CreateOrder(order) if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeCreatePreOrderException) return } for _, item := range res.Output.Result { temp := strings.Split(item.FeedetlSn, "-") var advice_id int64 = 0 var project_id int64 = 0 var types int64 = 0 id, _ := strconv.ParseInt(temp[2], 10, 64) types, _ = strconv.ParseInt(temp[1], 10, 64) if temp[1] == "1" { advice_id = id project_id = 0 } else if temp[1] == "2" { advice_id = 0 project_id = id } if item.MedChrgitmType == "9" { item.MedChrgitmType = "09" } info := &models.HisOrderInfo{ OrderNumber: order.Number, FeedetlSn: item.FeedetlSn, UploadDate: time.Now().Unix(), AdviceId: advice_id, DetItemFeeSumamt: item.DetItemFeeSumamt, Cnt: item.Cnt, Pric: float64(item.Pric), PatientId: his.PatientId, PricUplmtAmt: item.PricUplmtAmt, SelfpayProp: item.SelfpayProp, FulamtOwnpayAmt: item.FulamtOwnpayAmt, OverlmtAmt: item.OverlmtAmt, PreselfpayAmt: item.PreselfpayAmt, BasMednFlag: item.BasMednFlag, MedChrgitmType: item.MedChrgitmType, HiNegoDrugFlag: item.HiNegoDrugFlag, Status: 1, Memo: item.Memo, Mtime: time.Now().Unix(), InscpScpAmt: item.InscpScpAmt, DrtReimFlag: item.DrtReimFlag, Ctime: time.Now().Unix(), ListSpItemFlag: item.ListSpItemFlag, ChldMedcFlag: item.ChldMedcFlag, LmtUsedFlag: item.LmtUsedFlag, ChrgitmLv: item.ChrgitmLv, UserOrgId: adminUser.CurrentOrgId, HisPatientId: his.ID, OrderId: order.ID, ProjectId: project_id, Type: types, } service.CreateOrderInfo(info) } service.UpDatePrescriptionNumber(adminUser.CurrentOrgId, ids, chrg_bchno) service.UpDateHisPrescriptionInfoNumber(adminUser.CurrentOrgId, his_patient_id, chrg_bchno, recordDateTime) var total float64 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) //if adminUser.CurrentOrgId == 9919 { // // allTotal = fmt.Sprintf("%.2f", total) // //} else { // // allTotal = fmt.Sprintf("%.2f", total) // //} if res.Infcode == 0 { var rf []*ResultFive json.Unmarshal([]byte(his.Iinfo), &rf) chrg_bchno := chrg_bchno cert_no := his.Certno var insutypes []string var insutype string var is390 int = 0 var is310 int = 0 for _, item := range rf { if (item.Insutype == "390" && item.PsnInsuStas == "1") || (item.Insutype == "310" && item.PsnInsuStas == "1") { insutypes = append(insutypes, item.Insutype) } } if len(insutypes) == 1 { insutype = insutypes[0] } else { for _, i := range insutypes { if i == "390" { is390 = 1 } if i == "310" { is310 = 1 } } } if is390 == 1 { insutype = "390" } if is310 == 1 { insutype = "310" } if len(insutypes) == 0 { insutype = "310" } if len(insutypes) == 2 { insutype = strconv.FormatInt(his.SocialType, 10) } insutype = strconv.FormatInt(his.SocialType, 10) //insutype = "390" if his.IdCardType == 1 { // cert_no = his.MedicalInsuranceNumber cert_no = his.Certno } else { cert_no = his.Certno } var res ResultSeven var resSeven10265 ResultSeven10265 var gzresSeven10265Two GZResultSeven10265Two var src_resquest string var result2 string if miConfig.MdtrtareaAdmvs == "421300" { api := "http://192.168.124.4:9532/" + "hbyb/2207?psn_no=" + his.PsnNo + "&mdtrt_id=" + his.Number + "&chrg_bchno=" + chrg_bchno + "&org_name=" + miConfig.OrgName + "&doctor=" + roles.UserName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + his.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&id_card_type=" + strconv.FormatInt(his.IdCardType, 10) + "&certificates=" + strconv.FormatInt(his.IdType, 10) + "&cert_no=" + cert_no + "&insutype=" + insutype + "&total=" + allTotal + "&med_type=" + strconv.FormatInt(reg_type, 10) + "&acct_used_flag=" + acct_used_flag resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) result, _ := json.Marshal(respJSON) if miConfig.Code == "H15049901371" { if err := json.Unmarshal([]byte(result), &resSeven10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res.InfRefmsgid = resSeven10265.InfRefmsgid res.Output = resSeven10265.Output res.ErrMsg = resSeven10265.ErrMsg res.Cainfo = resSeven10265.Cainfo res.WarnMsg = resSeven10265.WarnMsg infocode, _ := strconv.ParseInt(resSeven10265.Infcode, 10, 64) res.Infcode = infocode } else { if err := json.Unmarshal([]byte(result), &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } } else if miConfig.MdtrtareaAdmvs == "420200" { if reg_type == 11 && his.Insutype == "390" { reg_type = 110104 } api := "http://192.168.0.197:9532/" + "hbyb/2207?psn_no=" + his.PsnNo + "&mdtrt_id=" + his.Number + "&chrg_bchno=" + chrg_bchno + "&org_name=" + miConfig.OrgName + "&doctor=" + roles.UserName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + his.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&id_card_type=" + strconv.FormatInt(his.IdCardType, 10) + "&certificates=" + strconv.FormatInt(his.IdType, 10) + "&cert_no=" + cert_no + "&insutype=" + insutype + "&total=" + allTotal + "&med_type=" + strconv.FormatInt(reg_type, 10) + "&acct_used_flag=" + acct_used_flag resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) result, _ := json.Marshal(respJSON) if miConfig.Code == "H15049901371" { if err := json.Unmarshal([]byte(result), &resSeven10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res.InfRefmsgid = resSeven10265.InfRefmsgid res.Output = resSeven10265.Output res.ErrMsg = resSeven10265.ErrMsg res.Cainfo = resSeven10265.Cainfo res.WarnMsg = resSeven10265.WarnMsg infocode, _ := strconv.ParseInt(resSeven10265.Infcode, 10, 64) res.Infcode = infocode } else { if err := json.Unmarshal([]byte(result), &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } } else if miConfig.MdtrtareaAdmvs == "420902" { if reg_type == 11 && his.Insutype == "390" { reg_type = 110104 } api := miConfig.Url + "hbyb/2207?psn_no=" + his.PsnNo + "&mdtrt_id=" + his.Number + "&chrg_bchno=" + chrg_bchno + "&org_name=" + miConfig.OrgName + "&doctor=" + roles.UserName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + his.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&id_card_type=" + strconv.FormatInt(his.IdCardType, 10) + "&certificates=" + strconv.FormatInt(his.IdType, 10) + "&cert_no=" + cert_no + "&insutype=" + insutype + "&total=" + allTotal + "&med_type=" + strconv.FormatInt(reg_type, 10) + "&acct_used_flag=" + acct_used_flag resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) result, _ := json.Marshal(respJSON) if miConfig.Code == "H15049901371" { if err := json.Unmarshal([]byte(result), &resSeven10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res.InfRefmsgid = resSeven10265.InfRefmsgid res.Output = resSeven10265.Output res.ErrMsg = resSeven10265.ErrMsg res.Cainfo = resSeven10265.Cainfo res.WarnMsg = resSeven10265.WarnMsg infocode, _ := strconv.ParseInt(resSeven10265.Infcode, 10, 64) res.Infcode = infocode } else { if err := json.Unmarshal([]byte(result), &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } } else if miConfig.MdtrtareaAdmvs == "421182" { if reg_type == 11 && his.Insutype == "390" { reg_type = 110104 } api := miConfig.Url + "hbyb/2207?psn_no=" + his.PsnNo + "&mdtrt_id=" + his.Number + "&chrg_bchno=" + chrg_bchno + "&org_name=" + miConfig.OrgName + "&doctor=" + roles.UserName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + his.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&id_card_type=" + strconv.FormatInt(his.IdCardType, 10) + "&certificates=" + strconv.FormatInt(his.IdType, 10) + "&cert_no=" + cert_no + "&insutype=" + insutype + "&total=" + allTotal + "&med_type=" + strconv.FormatInt(reg_type, 10) + "&acct_used_flag=" + acct_used_flag resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) result, _ := json.Marshal(respJSON) if miConfig.Code == "H15049901371" { if err := json.Unmarshal([]byte(result), &resSeven10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res.InfRefmsgid = resSeven10265.InfRefmsgid res.Output = resSeven10265.Output res.ErrMsg = resSeven10265.ErrMsg res.Cainfo = resSeven10265.Cainfo res.WarnMsg = resSeven10265.WarnMsg infocode, _ := strconv.ParseInt(resSeven10265.Infcode, 10, 64) res.Infcode = infocode } else { if err := json.Unmarshal([]byte(result), &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } } else if miConfig.MdtrtareaAdmvs == "320921" || miConfig.MdtrtareaAdmvs == "320982" { result3101 := Check3102(c, id, his_patient_id, admin_user_id, "7", order.ID) if result3101.Infcode == "0" { if len(result3101.Output.Result) > 0 { var errMsgs []string for _, item := range result3101.Output.Result { errMsgs = append(errMsgs, item.VolaCont) } c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": errMsgs, }) return } else { psn_info, _ := service.GetPsnByPatientId(his.PatientId) psn_info.VerifyNumber = strings.Replace(psn_info.VerifyNumber, "+", "%2B", -1) bas := strings.Split(psn_info.CardInfo, "|") if his.IdCardType == 1 { cert_no = bas[2] } else if his.IdCardType == 3 { cert_no = his.Certno psn_info.VerifyNumber = his.Certno + "|" + psn_info.VerifyNumber } else if his.IdCardType == 4 { cert_no = his.Certno psn_info.VerifyNumber = psn_info.VerifyNumber } var api string if miConfig.MdtrtareaAdmvs == "320921" { api = "http://192.168.2.3:9532/" + "jsyb/2207?psn_no=" + his.PsnNo + "&mdtrt_id=" + his.Number + "&chrg_bchno=" + chrg_bchno + "&org_name=" + miConfig.OrgName + "&doctor=" + roles.UserName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + his.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&id_card_type=" + strconv.FormatInt(his.IdCardType, 10) + "&certificates=" + strconv.FormatInt(his.IdType, 10) + "&cert_no=" + cert_no + "&insutype=" + insutype + "&total=" + allTotal + "&med_type=" + strconv.FormatInt(reg_type, 10) + "&acct_used_flag=" + acct_used_flag + "&url=" + miConfig.Url + "&ak=" + miConfig.AccessKey + "&verify_number=" + psn_info.VerifyNumber + "&cainfo=" + miConfig.Cainfo + "&mdtrt_grp_type=" + his.MdtrtGrpType } else { api = "http://192.168.5.251:9532/" + "jsyb/2207?psn_no=" + his.PsnNo + "&mdtrt_id=" + his.Number + "&chrg_bchno=" + chrg_bchno + "&org_name=" + miConfig.OrgName + "&doctor=" + roles.UserName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + his.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&id_card_type=" + strconv.FormatInt(his.IdCardType, 10) + "&certificates=" + strconv.FormatInt(his.IdType, 10) + "&cert_no=" + cert_no + "&insutype=" + insutype + "&total=" + allTotal + "&med_type=" + strconv.FormatInt(reg_type, 10) + "&acct_used_flag=" + acct_used_flag + "&url=" + miConfig.Url + "&ak=" + miConfig.AccessKey + "&verify_number=" + psn_info.VerifyNumber + "&cainfo=" + miConfig.Cainfo + "&mdtrt_grp_type=" + his.MdtrtGrpType } resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) result, _ := json.Marshal(respJSON) if err := json.Unmarshal([]byte(result), &resSeven10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res.InfRefmsgid = resSeven10265.InfRefmsgid res.Output = resSeven10265.Output res.ErrMsg = resSeven10265.ErrMsg res.Cainfo = resSeven10265.Cainfo res.WarnMsg = resSeven10265.WarnMsg infocode, _ := strconv.ParseInt(resSeven10265.Infcode, 10, 64) res.Infcode = infocode } } } else if miConfig.MdtrtareaAdmvs == "150499" { psn_info, _ := service.GetPsnByPatientId(id) var verify_number string if psn_info.IdCardType == 4 { verify_number = psn_info.VerifyNumber } else if psn_info.IdCardType == 1 { bas := strings.Split(psn_info.CardInfo, "|") cardNumber := bas[2] verify_number = cardNumber } else { psn_info.IdCardType = 2 verify_number = psn_info.Certno } var api string api = "http://172.16.13.254:9532/" + "nmyb/2207?psn_no=" + his.PsnNo + "&mdtrt_id=" + his.Number + "&chrg_bchno=" + chrg_bchno + "&org_name=" + miConfig.OrgName + "&doctor=" + roles.UserName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + his.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&id_card_type=" + strconv.FormatInt(his.IdCardType, 10) + "&certificates=" + strconv.FormatInt(his.IdType, 10) + "&cert_no=" + cert_no + "&insutype=" + insutype + "&total=" + allTotal + "&med_type=" + strconv.FormatInt(reg_type, 10) + "&acct_used_flag=" + acct_used_flag + "&url=" + miConfig.Url + "&ak=" + miConfig.AccessKey + "&cainfo=" + miConfig.Cainfo + "&mdtrt_grp_type=" + his.MdtrtGrpType + "&verify_number=" + verify_number resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) result, _ := json.Marshal(respJSON) if err := json.Unmarshal([]byte(result), &resSeven10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res.InfRefmsgid = resSeven10265.InfRefmsgid res.Output = resSeven10265.Output res.ErrMsg = resSeven10265.ErrMsg res.Cainfo = resSeven10265.Cainfo res.WarnMsg = resSeven10265.WarnMsg infocode, _ := strconv.ParseInt(resSeven10265.Infcode, 10, 64) res.Infcode = infocode } else if miConfig.MdtrtareaAdmvs == "350500" { var cert_no string if his.IdCardType == 4 { psn_info, _ := service.GetPsnByPatientId(his.PatientId) cert_no = psn_info.VerifyNumber result2, src_resquest, _ = service.FJyb2207ForToken(his.PsnNo, his.Number, chrg_bchno, cert_no, insutype, allTotal, miConfig.OrgName, roles.UserName, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, strconv.FormatInt(reg_type, 10), his.IdCardType, tempOrder.FulamtOwnpayAmt, tempOrder.OverlmtSelfPay, tempOrder.PreselfpayAmt, tempOrder.InscpScpAmt, his.IdType, acct_used_flag, miConfig.Url, miConfig.Code, miConfig.AppSecret, miConfig.SignKey, miConfig.EncKey) } else if his.IdCardType == 1 { psn_info, _ := service.GetPsnByPatientId(his.PatientId) cert_no = strings.Split(psn_info.CardInfo, "|")[0] result2, src_resquest, _ = service.FJyb2207(his.PsnNo, his.Number, chrg_bchno, cert_no, insutype, allTotal, miConfig.OrgName, roles.UserName, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, strconv.FormatInt(reg_type, 10), his.IdCardType, tempOrder.FulamtOwnpayAmt, tempOrder.OverlmtSelfPay, tempOrder.PreselfpayAmt, tempOrder.InscpScpAmt, his.IdType, acct_used_flag, miConfig.Url, miConfig.Code, miConfig.AppSecret, miConfig.SignKey, miConfig.EncKey) } //result2, src_resquest = service.Gdyb2207(his.PsnNo, his.Number, chrg_bchno, cert_no, insutype, allTotal, miConfig.OrgName, roles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, strconv.FormatInt(reg_type, 10), his.IdCardType, 0, 0, 0, 0, his.IdType, acct_used_flag) var dat map[string]interface{} if err := json.Unmarshal([]byte(result2), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } saveLog(result2, src_resquest, "2207", "结算") userJSONBytes, _ := json.Marshal(dat) if err := json.Unmarshal(userJSONBytes, &resSeven10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res.InfRefmsgid = resSeven10265.InfRefmsgid res.Output = resSeven10265.Output res.ErrMsg = resSeven10265.ErrMsg res.Cainfo = resSeven10265.Cainfo res.WarnMsg = resSeven10265.WarnMsg infocode, _ := strconv.ParseInt(resSeven10265.Infcode, 10, 64) res.Infcode = infocode } else if miConfig.MdtrtareaAdmvs == "450721" { res2 := c.GetoleInfo() if res2.Infcode == 0 { var result string var request_log string var result_log string if res2.Output.MdtrtCertType == "02" { result, request_log, result_log = service.ZHGdyb1101(res2.Output.CertNo, miConfig.OrgName, roles.UserName, miConfig.Code, res2.Output.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, 2, "", 1, res2.Output.PsnName, admin_user_id) saveLog(result_log, request_log, "1101", "人员基本信息获取") } else if res2.Output.MdtrtCertType == "01" { result, request_log, result_log = service.ZHGdyb1101d(res2.Output.CertNo, miConfig.OrgName, roles.UserName, miConfig.Code, res2.Output.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, 4, "", 1, res2.Output.PsnName, admin_user_id, res2.Output.EcToken) saveLog(result_log, request_log, "1101", "人员基本信息获取") } else { result, request_log, result_log = service.ZHGdyb1101d(res2.Output.CertNo, miConfig.OrgName, roles.UserName, miConfig.Code, res2.Output.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, 1, res2.Output.CardSN, 1, res2.Output.PsnName, admin_user_id, res2.Output.CardNo) saveLog(result_log, request_log, "1101", "人员基本信息获取") } var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } userJSONBytes, _ := json.Marshal(dat) var res5 ResultTwo //var resTwo10265 ResultTwo10265 if err := json.Unmarshal(userJSONBytes, &res5); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if res5.Infcode == -1 { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res5.ErrMsg, }) return } var insutypes []string var insutype string var is390 int = 0 var is310 int = 0 for _, item := range res5.Output.Iinfo { if (item.Insutype == "390" && item.PsnInsuStas == "1") || (item.Insutype == "310" && item.PsnInsuStas == "1") { insutypes = append(insutypes, item.Insutype) } } if len(insutypes) == 1 { insutype = insutypes[0] } else { for _, i := range insutypes { if i == "390" { is390 = 1 } if i == "310" { is310 = 1 } } } if is390 == 1 { insutype = "390" } if is310 == 1 { insutype = "310" } if len(insutypes) == 0 { insutype = "310" } Iinfos, _ := json.Marshal(res5.Output.Iinfo) Idetinfos, _ := json.Marshal(res5.Output.Idetinfo) infoStr := string(Iinfos) idetinfoStr := string(Idetinfos) psn := &models.HisPsn{ PsnNo: res5.Output.Baseinfo.PsnNo, PatientId: id, Certno: res5.Output.Baseinfo.Certno, Gend: res5.Output.Baseinfo.Gend, Naty: res5.Output.Baseinfo.Naty, PsnCertType: res5.Output.Baseinfo.PsnCertType, PsnName: res5.Output.Baseinfo.PsnName, Idetinfo: idetinfoStr, Insuinfo: infoStr, CardInfo: res2.Output.CardNo + "|" + res2.Output.CardSN, UserOrgId: c.GetAdminUserInfo().CurrentOrgId, VerifyNumber: res2.Output.EcToken, } if res2.Output.MdtrtCertType == "01" { //psn_info, _ := service.GetPsnByPatientId(his.PatientId) psn.VerifyNumber = res2.Output.EcToken } else if res2.Output.MdtrtCertType == "02" { psn.VerifyNumber = res2.Output.CardNo } else { psn.VerifyNumber = res2.Output.MdtrtCertNo } service.CreateHisPsn(psn) if res2.Output.MdtrtCertType == "01" { //psn_info, _ := service.GetPsnByPatientId(his.PatientId) token := res2.Output.EcToken result2, src_resquest = service.Gdyb2207(his.PsnNo, his.Number, chrg_bchno, cert_no, insutype, allTotal, miConfig.OrgName, roles.UserName, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, strconv.FormatInt(reg_type, 10), his.IdCardType, tempOrder.FulamtOwnpayAmt, tempOrder.OverlmtSelfPay, tempOrder.PreselfpayAmt, tempOrder.InscpScpAmt, 4, acct_used_flag, token, admin_user_id) } else if res2.Output.MdtrtCertType == "02" { result2, src_resquest = service.Gdyb2207(his.PsnNo, his.Number, chrg_bchno, cert_no, insutype, allTotal, miConfig.OrgName, roles.UserName, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, strconv.FormatInt(reg_type, 10), his.IdCardType, tempOrder.FulamtOwnpayAmt, tempOrder.OverlmtSelfPay, tempOrder.PreselfpayAmt, tempOrder.InscpScpAmt, 2, acct_used_flag, "", admin_user_id) } else { result2, src_resquest = service.Gdyb2207(his.PsnNo, his.Number, chrg_bchno, cert_no, insutype, allTotal, miConfig.OrgName, roles.UserName, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, strconv.FormatInt(reg_type, 10), his.IdCardType, tempOrder.FulamtOwnpayAmt, tempOrder.OverlmtSelfPay, tempOrder.PreselfpayAmt, tempOrder.InscpScpAmt, 1, acct_used_flag, "", admin_user_id) } var dat2 map[string]interface{} if err := json.Unmarshal([]byte(result2), &dat2); err == nil { fmt.Println(dat2) } else { fmt.Println(err) } userJSONBytes3, _ := json.Marshal(dat2) if err := json.Unmarshal(userJSONBytes3, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } saveLog(result2, src_resquest, "2207", "结算") } else { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res2.ErrMsg, }) return } } else { if miConfig.Code == "H15049901371" { //赤峰地区国家医保医疗类别 //职工透析:医疗类别选特殊情况门诊990502 //居民定额血透门慢: 医疗类别选门诊慢病140104 var med_type string if his.Insutype == "390" { if reg_type == 14 { med_type = "9933" } else if reg_type == 11 { med_type = "11" } } else if his.Insutype == "310" { if reg_type == 14 { med_type = "990502" } else if reg_type == 11 { med_type = "11" } } result2, src_resquest = service.Gdyb2207(his.PsnNo, his.Number, chrg_bchno, cert_no, insutype, allTotal, miConfig.OrgName, roles.UserName, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, med_type, his.IdCardType, tempOrder.FulamtOwnpayAmt, tempOrder.OverlmtSelfPay, tempOrder.PreselfpayAmt, tempOrder.InscpScpAmt, his.IdType, acct_used_flag, "", admin_user_id) } else { if his.IdCardType == 4 { psn_info, _ := service.GetPsnByPatientId(his.PatientId) var token string token = psn_info.VerifyNumber result2, src_resquest = service.Gdyb2207(his.PsnNo, his.Number, chrg_bchno, cert_no, insutype, allTotal, miConfig.OrgName, roles.UserName, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, strconv.FormatInt(reg_type, 10), his.IdCardType, tempOrder.FulamtOwnpayAmt, tempOrder.OverlmtSelfPay, tempOrder.PreselfpayAmt, tempOrder.InscpScpAmt, his.IdType, acct_used_flag, token, admin_user_id) } else { if his.IdCardType == 1 { psn_info, _ := service.GetPsnByPatientId(his.PatientId) bas := strings.Split(psn_info.CardInfo, "|") basNumber := bas[2] cert_no = basNumber } result2, src_resquest = service.Gdyb2207(his.PsnNo, his.Number, chrg_bchno, cert_no, insutype, allTotal, miConfig.OrgName, roles.UserName, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, strconv.FormatInt(reg_type, 10), his.IdCardType, tempOrder.FulamtOwnpayAmt, tempOrder.OverlmtSelfPay, tempOrder.PreselfpayAmt, tempOrder.InscpScpAmt, his.IdType, acct_used_flag, "", admin_user_id) } } //result2, src_resquest = service.Gdyb2207(his.PsnNo, his.Number, chrg_bchno, cert_no, insutype, allTotal, miConfig.OrgName, roles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, strconv.FormatInt(reg_type, 10), his.IdCardType, 0, 0, 0, 0, his.IdType, acct_used_flag) var dat map[string]interface{} if err := json.Unmarshal([]byte(result2), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } saveLog(result2, src_resquest, "2207", "结算") userJSONBytes, _ := json.Marshal(dat) if miConfig.Code == "H15049901371" { if err := json.Unmarshal(userJSONBytes, &resSeven10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res.InfRefmsgid = resSeven10265.InfRefmsgid res.Output = resSeven10265.Output res.ErrMsg = resSeven10265.ErrMsg res.Cainfo = resSeven10265.Cainfo res.WarnMsg = resSeven10265.WarnMsg infocode, _ := strconv.ParseInt(resSeven10265.Infcode, 10, 64) res.Infcode = infocode } else { if strings.Contains(his.InsuplcAdmdvs, "4401") { if err := json.Unmarshal(userJSONBytes, &gzresSeven10265Two); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res.InfRefmsgid = gzresSeven10265Two.InfRefmsgid res.Output.Setlinfo.AcctMulaidPay = gzresSeven10265Two.Output.Setlinfo.AcctMulaidPay res.Output.Setlinfo.AcctPay = gzresSeven10265Two.Output.Setlinfo.AcctPay res.Output.Setlinfo.CvlservPay = gzresSeven10265Two.Output.Setlinfo.CvlservPay res.Output.Setlinfo.ActPayDedc = gzresSeven10265Two.Output.Setlinfo.ActPayDedc res.Output.Setlinfo.Age = gzresSeven10265Two.Output.Setlinfo.Age res.Output.Setlinfo.Balc = gzresSeven10265Two.Output.Setlinfo.Balc //res.Output.Setlinfo.Brdy = gzresSeven10265Two.Output.Setlinfo.Brdy res.Output.Setlinfo.Certno = gzresSeven10265Two.Output.Setlinfo.Certno res.Output.Setlinfo.ClrOptins = gzresSeven10265Two.Output.Setlinfo.ClrOptins res.Output.Setlinfo.ClrType = gzresSeven10265Two.Output.Setlinfo.ClrOptins res.Output.Setlinfo.ClrWay = gzresSeven10265Two.Output.Setlinfo.ClrOptins res.Output.Setlinfo.CvlservFlag = gzresSeven10265Two.Output.Setlinfo.ClrOptins res.Output.Setlinfo.CvlservPay = gzresSeven10265Two.Output.Setlinfo.CvlservPay res.Output.Setlinfo.FulamtOwnpayAmt = gzresSeven10265Two.Output.Setlinfo.FulamtOwnpayAmt res.Output.Setlinfo.FundPaySumamt = gzresSeven10265Two.Output.Setlinfo.FundPaySumamt res.Output.Setlinfo.Gend = gzresSeven10265Two.Output.Setlinfo.Gend res.Output.Setlinfo.HifesPay = gzresSeven10265Two.Output.Setlinfo.HifesPay res.Output.Setlinfo.HifmiPay = gzresSeven10265Two.Output.Setlinfo.HifmiPay res.Output.Setlinfo.HifpPay = gzresSeven10265Two.Output.Setlinfo.HifpPay //HospPartAmt, _ := strconv.ParseFloat(gzresSeven10265Two.Output.Setlinfo.HospPartAmt, 64) res.Output.Setlinfo.HospPartAmt = gzresSeven10265Two.Output.Setlinfo.HospPartAmt res.Output.Setlinfo.InscpScpAmt = gzresSeven10265Two.Output.Setlinfo.InscpScpAmt res.Output.Setlinfo.Insutype = gzresSeven10265Two.Output.Setlinfo.Insutype res.Output.Setlinfo.MafPay = gzresSeven10265Two.Output.Setlinfo.MafPay res.Output.Setlinfo.MdtrtCertType = gzresSeven10265Two.Output.Setlinfo.MdtrtCertType res.Output.Setlinfo.HifobPay = gzresSeven10265Two.Output.Setlinfo.HifobPay res.Output.Setlinfo.MdtrtID = gzresSeven10265Two.Output.Setlinfo.MdtrtID res.Output.Setlinfo.MedType = gzresSeven10265Two.Output.Setlinfo.MedType res.Output.Setlinfo.MedfeeSumamt = gzresSeven10265Two.Output.Setlinfo.MedfeeSumamt res.Output.Setlinfo.MedinsSetlID = gzresSeven10265Two.Output.Setlinfo.MedinsSetlID res.Output.Setlinfo.Naty = gzresSeven10265Two.Output.Setlinfo.Naty res.Output.Setlinfo.OthPay = gzresSeven10265Two.Output.Setlinfo.OthPay res.Output.Setlinfo.OverlmtSelfpay = gzresSeven10265Two.Output.Setlinfo.OverlmtSelfpay PoolPropSelfpay, _ := strconv.ParseFloat(gzresSeven10265Two.Output.Setlinfo.PoolPropSelfpay, 64) res.Output.Setlinfo.PoolPropSelfpay = PoolPropSelfpay res.Output.Setlinfo.PreselfpayAmt = gzresSeven10265Two.Output.Setlinfo.PreselfpayAmt res.Output.Setlinfo.PsnCashPay = gzresSeven10265Two.Output.Setlinfo.PsnCashPay res.Output.Setlinfo.PsnCertType = gzresSeven10265Two.Output.Setlinfo.ClrOptins res.Output.Setlinfo.PsnName = gzresSeven10265Two.Output.Setlinfo.PsnName res.Output.Setlinfo.PsnNo = gzresSeven10265Two.Output.Setlinfo.PsnNo res.Output.Setlinfo.PsnPartAmt = gzresSeven10265Two.Output.Setlinfo.PsnPartAmt res.Output.Setlinfo.PsnType = gzresSeven10265Two.Output.Setlinfo.PsnType res.Output.Setlinfo.SetlID = gzresSeven10265Two.Output.Setlinfo.SetlID res.Output.Setlinfo.SetlTime = gzresSeven10265Two.Output.Setlinfo.SetlTime //res.Output.Setldetail = gzresSeven10265Two.Output.Setldetail res.ErrMsg = gzresSeven10265Two.ErrMsg res.Cainfo = gzresSeven10265Two.Cainfo res.WarnMsg = gzresSeven10265Two.WarnMsg //infocode, _ := strconv.ParseInt(resSeven10265Two.Infcode, 10, 64) //res.Infcode = infocode } else { if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } } } if res.Infcode == -1 { errlog := &models.HisOrderError{ UserOrgId: adminUser.CurrentOrgId, Ctime: time.Now().Unix(), Mtime: time.Now().Unix(), Number: chrg_bchno, ErrMsg: res.ErrMsg, Status: 1, PatientId: id, RecordTime: recordDateTime, Stage: 6, } service.CreateErrMsgLog(errlog) c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res.ErrMsg, }) return } else { sickConfig, _ := service.FindSickById(his.SickType) order, _ := service.GetHisOrderTwo(adminUser.CurrentOrgId, chrg_bchno, id) order.OrderStatus = 2 order.Status = 1 order.MdtrtId = res.Output.Setlinfo.MdtrtID order.SetlId = res.Output.Setlinfo.SetlID order.PsnNo = res.Output.Setlinfo.PsnNo order.PsnName = res.Output.Setlinfo.PsnName order.PsnCertType = res.Output.Setlinfo.PsnCertType order.Certno = res.Output.Setlinfo.Certno order.Gend = res.Output.Setlinfo.Gend order.Naty = res.Output.Setlinfo.Naty order.Age = res.Output.Setlinfo.Age order.Insutype = res.Output.Setlinfo.Insutype order.PsnType = res.Output.Setlinfo.PsnType order.CvlservFlag = res.Output.Setlinfo.CvlservFlag order.SetlTime = res.Output.Setlinfo.SetlTime order.MdtrtCertType = res.Output.Setlinfo.MdtrtCertType if res.Output.Setlinfo.MedType == "140101" { order.MedType = "14" } else { if res.Output.Setlinfo.MedType == "110104" { order.MedType = "11" } else { order.MedType = res.Output.Setlinfo.MedType } } if reg_type == 1112 { order.MedType = "1112" } if reg_type == 1111 { order.MedType = "1111" } order.ClrType = res.Output.Setlinfo.ClrType if adminUser.CurrentOrgId == 10480 { if strings.Contains(his.InsuplcAdmdvs, "3412") { order.ClrType = "11" } else { order.ClrType = "9903" } } if adminUser.CurrentOrgId == 10721 { if strings.Contains(his.InsuplcAdmdvs, "3406") { order.ClrType = "11" } else { order.ClrType = "9903" } } order.MedfeeSumamt = res.Output.Setlinfo.MedfeeSumamt order.FulamtOwnpayAmt = res.Output.Setlinfo.FulamtOwnpayAmt order.OverlmtSelfPay = res.Output.Setlinfo.OverlmtSelfpay order.PreselfpayAmt = res.Output.Setlinfo.PreselfpayAmt order.InscpScpAmt = res.Output.Setlinfo.InscpScpAmt order.ActPayDedc = res.Output.Setlinfo.ActPayDedc order.HifpPay = res.Output.Setlinfo.HifpPay order.CvlservPay = res.Output.Setlinfo.CvlservPay order.PoolPropSelfpay = res.Output.Setlinfo.PoolPropSelfpay order.HifesPay = res.Output.Setlinfo.HifesPay order.HifobPay = res.Output.Setlinfo.HifobPay order.MafPay = res.Output.Setlinfo.MafPay order.HifmiPay = res.Output.Setlinfo.HifmiPay order.OthPay = res.Output.Setlinfo.OthPay order.FundPaySumamt = res.Output.Setlinfo.FundPaySumamt order.PsnPartAmt = res.Output.Setlinfo.PsnPartAmt order.AcctPay = res.Output.Setlinfo.AcctPay order.PsnCashPay = res.Output.Setlinfo.PsnCashPay order.HospPartAmt = res.Output.Setlinfo.HospPartAmt order.Balc = res.Output.Setlinfo.Balc order.AcctMulaidPay = res.Output.Setlinfo.AcctMulaidPay order.MedinsSetlId = res.Output.Setlinfo.MedinsSetlID order.ClrOptins = res.Output.Setlinfo.ClrOptins //order.ClrType = res.Output.Setlinfo.ClrType order.ClrWay = res.Output.Setlinfo.ClrWay order.Creator = order.Creator order.Modify = roles.AdminUserId order.RequestLog = src_resquest order.FaPiaoNumber = fapiao_number order.FaPiaoCode = fapiao_code order.SickName = sickConfig.ClassName //setlDetail, _ := json.Marshal(res.Output.Setldetail) //detailStr := string(setlDetail) //order.SetlDetail = detailStr err := service.UpdataOrderStatusTwo(chrg_bchno, adminUser.CurrentOrgId) err = service.UpDateOrder(order) if err == nil { //判断是否使用了押金 if dec_way == "true" { tmpstring := strconv.FormatInt(order.ID, 10) order.Decimal = decimal service.UpDateOrder(order) //扣押金 errmsg = service.SpendDeposit(c.GetAdminUserInfo().CurrentOrgId, id, c.GetAdminUserInfo().AdminUser.Id, tmpstring, decimal) if errmsg != nil { c.ServeFailJsonSend(enums.ErrorCodeParamWrong, errmsg.Error()) return } } c.ServeSuccessJSON(map[string]interface{}{ "msg": "结算成功", }) } else { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeAmountAccountException) return } } } else { adminUser := c.GetAdminUserInfo() errlog := &models.HisOrderError{ UserOrgId: adminUser.CurrentOrgId, Ctime: time.Now().Unix(), Mtime: time.Now().Unix(), ErrMsg: res.ErrMsg, Status: 1, PatientId: id, RecordTime: recordDateTime, Stage: 4, } service.CreateErrMsgLog(errlog) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeRegisterRepeatException) return } } else { adminUser := c.GetAdminUserInfo() errlog := &models.HisOrderError{ UserOrgId: adminUser.CurrentOrgId, Ctime: time.Now().Unix(), Mtime: time.Now().Unix(), ErrMsg: res.ErrMsg, Status: 1, PatientId: id, RecordTime: recordDateTime, Stage: 4, } service.CreateErrMsgLog(errlog) c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res.ErrMsg, }) return //c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeCalOrderException) //return } } } } else if tempOrder.ID > 0 { if tempOrder.IsPre == 1 { allTotal := fmt.Sprintf("%.2f", tempOrder.MedfeeSumamt) var rf []*ResultFive json.Unmarshal([]byte(his.Iinfo), &rf) chrg_bchno := tempOrder.Number cert_no := his.Certno var insutypes []string var insutype string var is390 int = 0 var is310 int = 0 for _, item := range rf { if (item.Insutype == "390" && item.PsnInsuStas == "1") || (item.Insutype == "310" && item.PsnInsuStas == "1") { insutypes = append(insutypes, item.Insutype) } } if len(insutypes) == 1 { insutype = insutypes[0] } else { for _, i := range insutypes { if i == "390" { is390 = 1 } if i == "310" { is310 = 1 } } } if is390 == 1 { insutype = "390" } if is310 == 1 { insutype = "310" } if len(insutypes) == 0 { insutype = "310" } if len(insutypes) == 2 { insutype = strconv.FormatInt(his.SocialType, 10) } //insutype = "390" if his.IdCardType == 1 { // cert_no = his.MedicalInsuranceNumber cert_no = his.Certno } else { cert_no = his.Certno } var res ResultSeven var ahres ResultSevenAH var resSeven10265 ResultSeven10265 var gzresSeven10265Two GZResultSeven10265Two var src_resquest string var result2 string if miConfig.MdtrtareaAdmvs == "450721" { res2 := c.GetoleInfo() if res2.Infcode == 0 { var result string var request_log string var result_log string if res2.Output.MdtrtCertType == "02" { result, request_log, result_log = service.ZHGdyb1101(res2.Output.CertNo, miConfig.OrgName, roles.UserName, miConfig.Code, res2.Output.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, 2, "", 1, res2.Output.PsnName, admin_user_id) saveLog(result_log, request_log, "1101", "人员基本信息获取") } else if res2.Output.MdtrtCertType == "01" { result, request_log, result_log = service.ZHGdyb1101d(res2.Output.CertNo, miConfig.OrgName, roles.UserName, miConfig.Code, res2.Output.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, 4, "", 1, res2.Output.PsnName, admin_user_id, res2.Output.EcToken) saveLog(result_log, request_log, "1101", "人员基本信息获取") } else { result, request_log, result_log = service.ZHGdyb1101d(res2.Output.CertNo, miConfig.OrgName, roles.UserName, miConfig.Code, res2.Output.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, 1, res2.Output.CardSN, 1, res2.Output.PsnName, admin_user_id, res2.Output.CardNo) saveLog(result_log, request_log, "1101", "人员基本信息获取") } var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } userJSONBytes, _ := json.Marshal(dat) var res5 ResultTwo //var resTwo10265 ResultTwo10265 if err := json.Unmarshal(userJSONBytes, &res5); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } //utils.ErrorLog("解析失败:%v", res5.Infcode) if res5.Infcode == -1 { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res5.ErrMsg, }) return } var insutypes []string var insutype string var is390 int = 0 var is310 int = 0 for _, item := range res5.Output.Iinfo { if (item.Insutype == "390" && item.PsnInsuStas == "1") || (item.Insutype == "310" && item.PsnInsuStas == "1") { insutypes = append(insutypes, item.Insutype) } } if len(insutypes) == 1 { insutype = insutypes[0] } else { for _, i := range insutypes { if i == "390" { is390 = 1 } if i == "310" { is310 = 1 } } } if is390 == 1 { insutype = "390" } if is310 == 1 { insutype = "310" } if len(insutypes) == 0 { insutype = "310" } Iinfos, _ := json.Marshal(res5.Output.Iinfo) Idetinfos, _ := json.Marshal(res5.Output.Idetinfo) infoStr := string(Iinfos) idetinfoStr := string(Idetinfos) psn := &models.HisPsn{ PsnNo: res5.Output.Baseinfo.PsnNo, PatientId: id, Certno: res5.Output.Baseinfo.Certno, Gend: res5.Output.Baseinfo.Gend, Naty: res5.Output.Baseinfo.Naty, PsnCertType: res5.Output.Baseinfo.PsnCertType, PsnName: res5.Output.Baseinfo.PsnName, Idetinfo: idetinfoStr, Insuinfo: infoStr, CardInfo: res2.Output.CardNo + "|" + res2.Output.CardSN, UserOrgId: c.GetAdminUserInfo().CurrentOrgId, VerifyNumber: res2.Output.EcToken, } service.CreateHisPsn(psn) if res2.Output.MdtrtCertType == "01" { //psn_info, _ := service.GetPsnByPatientId(his.PatientId) token := res2.Output.EcToken result2, src_resquest = service.Gxyb2207(his.PsnNo, his.Number, chrg_bchno, cert_no, insutype, allTotal, miConfig.OrgName, roles.UserName, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, strconv.FormatInt(reg_type, 10), 4, tempOrder.FulamtOwnpayAmt, tempOrder.OverlmtSelfPay, tempOrder.PreselfpayAmt, tempOrder.InscpScpAmt, 4, acct_used_flag, token, admin_user_id) } else if res2.Output.MdtrtCertType == "02" { result2, src_resquest = service.Gxyb2207(his.PsnNo, his.Number, chrg_bchno, cert_no, insutype, allTotal, miConfig.OrgName, roles.UserName, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, strconv.FormatInt(reg_type, 10), 2, tempOrder.FulamtOwnpayAmt, tempOrder.OverlmtSelfPay, tempOrder.PreselfpayAmt, tempOrder.InscpScpAmt, 2, acct_used_flag, "", admin_user_id) } else { result2, src_resquest = service.Gxyb2207(his.PsnNo, his.Number, chrg_bchno, cert_no, insutype, allTotal, miConfig.OrgName, roles.UserName, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, strconv.FormatInt(reg_type, 10), 1, tempOrder.FulamtOwnpayAmt, tempOrder.OverlmtSelfPay, tempOrder.PreselfpayAmt, tempOrder.InscpScpAmt, 1, acct_used_flag, res2.Output.CardNo, admin_user_id) } var dat2 map[string]interface{} if err := json.Unmarshal([]byte(result2), &dat2); err == nil { fmt.Println(dat2) } else { fmt.Println(err) } userJSONBytes3, _ := json.Marshal(dat2) if err := json.Unmarshal(userJSONBytes3, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } saveLog(result2, src_resquest, "2207", "结算") } else { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res2.ErrMsg, }) return } } else if miConfig.MdtrtareaAdmvs == "421300" { api := "http://192.168.124.4:9532/" + "hbyb/2207?psn_no=" + his.PsnNo + "&mdtrt_id=" + his.Number + "&chrg_bchno=" + chrg_bchno + "&org_name=" + miConfig.OrgName + "&doctor=" + roles.UserName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + his.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&id_card_type=" + strconv.FormatInt(his.IdCardType, 10) + "&certificates=" + strconv.FormatInt(his.IdType, 10) + "&cert_no=" + cert_no + "&insutype=" + insutype + "&total=" + allTotal + "&med_type=" + strconv.FormatInt(reg_type, 10) + "&acct_used_flag=" + acct_used_flag resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) result, _ := json.Marshal(respJSON) fmt.Println("log") fmt.Println(string(result)) if err := json.Unmarshal([]byte(result), &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "420200" { if reg_type == 11 && his.Insutype == "390" { reg_type = 110104 } api := "http://192.168.0.197:9532/" + "hbyb/2207?psn_no=" + his.PsnNo + "&mdtrt_id=" + his.Number + "&chrg_bchno=" + chrg_bchno + "&org_name=" + miConfig.OrgName + "&doctor=" + roles.UserName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + his.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&id_card_type=" + strconv.FormatInt(his.IdCardType, 10) + "&certificates=" + strconv.FormatInt(his.IdType, 10) + "&cert_no=" + cert_no + "&insutype=" + insutype + "&total=" + allTotal + "&med_type=" + strconv.FormatInt(reg_type, 10) + "&acct_used_flag=" + acct_used_flag resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) result, _ := json.Marshal(respJSON) fmt.Println("log") fmt.Println(string(result)) if err := json.Unmarshal([]byte(result), &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "420902" { if reg_type == 11 && his.Insutype == "390" { reg_type = 110104 } api := miConfig.Url + "hbyb/2207?psn_no=" + his.PsnNo + "&mdtrt_id=" + his.Number + "&chrg_bchno=" + chrg_bchno + "&org_name=" + miConfig.OrgName + "&doctor=" + roles.UserName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + his.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&id_card_type=" + strconv.FormatInt(his.IdCardType, 10) + "&certificates=" + strconv.FormatInt(his.IdType, 10) + "&cert_no=" + cert_no + "&insutype=" + insutype + "&total=" + allTotal + "&med_type=" + strconv.FormatInt(reg_type, 10) + "&acct_used_flag=" + acct_used_flag resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) result, _ := json.Marshal(respJSON) fmt.Println("log") fmt.Println(string(result)) if err := json.Unmarshal([]byte(result), &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "421182" { if reg_type == 11 && his.Insutype == "390" { reg_type = 110104 } api := miConfig.Url + "hbyb/2207?psn_no=" + his.PsnNo + "&mdtrt_id=" + his.Number + "&chrg_bchno=" + chrg_bchno + "&org_name=" + miConfig.OrgName + "&doctor=" + roles.UserName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + his.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&id_card_type=" + strconv.FormatInt(his.IdCardType, 10) + "&certificates=" + strconv.FormatInt(his.IdType, 10) + "&cert_no=" + cert_no + "&insutype=" + insutype + "&total=" + allTotal + "&med_type=" + strconv.FormatInt(reg_type, 10) + "&acct_used_flag=" + acct_used_flag resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) result, _ := json.Marshal(respJSON) fmt.Println("log") fmt.Println(string(result)) if err := json.Unmarshal([]byte(result), &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "320921" || miConfig.MdtrtareaAdmvs == "320982" { result3101 := Check3102(c, id, his_patient_id, admin_user_id, "7", tempOrder.ID) if result3101.Infcode == "0" { if len(result3101.Output.Result) > 0 { var errMsgs []string for _, item := range result3101.Output.Result { errMsgs = append(errMsgs, item.VolaCont) } c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": errMsgs, }) return } else { psn_info, _ := service.GetPsnByPatientId(his.PatientId) psn_info.VerifyNumber = strings.Replace(psn_info.VerifyNumber, "+", "%2B", -1) bas := strings.Split(psn_info.CardInfo, "|") if his.IdCardType == 1 { cert_no = bas[2] } else if his.IdCardType == 3 { cert_no = his.Certno psn_info.VerifyNumber = his.Certno + "|" + psn_info.VerifyNumber } else if his.IdCardType == 4 { cert_no = his.Certno psn_info.VerifyNumber = psn_info.VerifyNumber } //江苏地区国家医保医疗类别 //职工透析:医疗类别选特殊情况门诊9933 //居民血透门慢: 医疗类别选门诊慢病1402 //var med_type string //if his.Insutype == "310" { // if reg_type == 14 { // med_type = "9933" // } else if reg_type == 11 { // med_type = "11" // // } //} else if his.Insutype == "390" { // if reg_type == 14 { // med_type = "1402" // } else if reg_type == 11 { // med_type = "11" // } //} var api string if miConfig.MdtrtareaAdmvs == "320921" { api = "http://192.168.2.3:9532/" + "jsyb/2207?psn_no=" + his.PsnNo + "&mdtrt_id=" + his.Number + "&chrg_bchno=" + chrg_bchno + "&org_name=" + miConfig.OrgName + "&doctor=" + roles.UserName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + his.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&id_card_type=" + strconv.FormatInt(his.IdCardType, 10) + "&certificates=" + strconv.FormatInt(his.IdType, 10) + "&cert_no=" + cert_no + "&insutype=" + insutype + "&total=" + allTotal + "&med_type=" + tempOrder.MedType + "&acct_used_flag=" + acct_used_flag + "&url=" + miConfig.Url + "&ak=" + miConfig.AccessKey + "&verify_number=" + psn_info.VerifyNumber + "&cainfo=" + miConfig.Cainfo + "&mdtrt_grp_type=" + his.MdtrtGrpType //req, _ = http.NewRequest("POST", "http://192.168.2.110:9532/"+"jsyb/2204", bytes.NewReader(bytesData)) } else { //req, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/2204", bytes.NewReader(bytesData)) api = "http://192.168.5.251:9532/" + "jsyb/2207?psn_no=" + his.PsnNo + "&mdtrt_id=" + his.Number + "&chrg_bchno=" + chrg_bchno + "&org_name=" + miConfig.OrgName + "&doctor=" + roles.UserName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + his.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&id_card_type=" + strconv.FormatInt(his.IdCardType, 10) + "&certificates=" + strconv.FormatInt(his.IdType, 10) + "&cert_no=" + cert_no + "&insutype=" + insutype + "&total=" + allTotal + "&med_type=" + tempOrder.MedType + "&acct_used_flag=" + acct_used_flag + "&url=" + miConfig.Url + "&ak=" + miConfig.AccessKey + "&verify_number=" + psn_info.VerifyNumber + "&cainfo=" + miConfig.Cainfo + "&mdtrt_grp_type=" + his.MdtrtGrpType } resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) result, _ := json.Marshal(respJSON) fmt.Println("log") fmt.Println(string(result)) if err := json.Unmarshal([]byte(result), &resSeven10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res.InfRefmsgid = resSeven10265.InfRefmsgid res.Output = resSeven10265.Output res.InfRefmsgid = resSeven10265.InfRefmsgid res.ErrMsg = resSeven10265.ErrMsg res.Cainfo = resSeven10265.Cainfo res.WarnMsg = resSeven10265.WarnMsg infocode, _ := strconv.ParseInt(resSeven10265.Infcode, 10, 64) res.Infcode = infocode } } } else if miConfig.MdtrtareaAdmvs == "150499" { psn_info, _ := service.GetPsnByPatientId(id) var verify_number string if psn_info.IdCardType == 4 { verify_number = psn_info.VerifyNumber } else if psn_info.IdCardType == 1 { bas := strings.Split(psn_info.CardInfo, "|") cardNumber := bas[2] verify_number = cardNumber } else { verify_number = psn_info.Certno psn_info.IdCardType = 2 } var api string new_chrg_bchno := chrg_bchno if adminUser.CurrentOrgId == 10265 { if !strings.Contains(his.InsuplcAdmdvs, "1504") { new_chrg_bchno = "0000" } } api = "http://172.16.13.254:9532/" + "nmyb/2207?psn_no=" + his.PsnNo + "&mdtrt_id=" + his.Number + "&chrg_bchno=" + new_chrg_bchno + "&org_name=" + miConfig.OrgName + "&doctor=" + roles.UserName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + his.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&id_card_type=" + strconv.FormatInt(psn_info.IdCardType, 10) + "&certificates=" + strconv.FormatInt(his.IdType, 10) + "&cert_no=" + cert_no + "&insutype=" + insutype + "&total=" + allTotal + "&med_type=" + tempOrder.MedType + "&acct_used_flag=" + acct_used_flag + "&url=" + miConfig.Url + "&ak=" + miConfig.AccessKey + "&cainfo=" + miConfig.Cainfo + "&mdtrt_grp_type=" + his.MdtrtGrpType + "&verify_number=" + verify_number resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) result, _ := json.Marshal(respJSON) fmt.Println("log") fmt.Println(string(result)) if err := json.Unmarshal([]byte(result), &resSeven10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res.InfRefmsgid = resSeven10265.InfRefmsgid res.Output = resSeven10265.Output res.InfRefmsgid = resSeven10265.InfRefmsgid res.ErrMsg = resSeven10265.ErrMsg res.Cainfo = resSeven10265.Cainfo res.WarnMsg = resSeven10265.WarnMsg infocode, _ := strconv.ParseInt(resSeven10265.Infcode, 10, 64) res.Infcode = infocode } else if miConfig.MdtrtareaAdmvs == "350500" { psn_info, _ := service.GetPsnByPatientId(his.PatientId) var cert_no string if his.IdCardType == 1 { cert_no = strings.Split(psn_info.CardInfo, "|")[0] } else { cert_no = psn_info.VerifyNumber } result2, src_resquest, _ = service.FJyb2207(his.PsnNo, his.Number, chrg_bchno, cert_no, insutype, allTotal, miConfig.OrgName, roles.UserName, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, strconv.FormatInt(reg_type, 10), his.IdCardType, tempOrder.FulamtOwnpayAmt, tempOrder.OverlmtSelfPay, tempOrder.PreselfpayAmt, tempOrder.InscpScpAmt, his.IdType, acct_used_flag, miConfig.Url, miConfig.Code, miConfig.AppSecret, miConfig.SignKey, miConfig.EncKey) var dat map[string]interface{} if err := json.Unmarshal([]byte(result2), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } saveLog(result2, src_resquest, "2207", "结算") userJSONBytes, _ := json.Marshal(dat) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "360302" { psn_info, _ := service.GetPsnByPatientId(his.PatientId) var cert_no string var card_sn string if his.IdCardType == 1 { cert_no = strings.Split(psn_info.CardInfo, "|")[0] psn_info, _ := service.GetPsnByPatientId(his.PatientId) bas := strings.Split(psn_info.CardInfo, "|") card_sn = bas[3] } else if his.IdCardType == 2 { cert_no = his.IdCardNo } else { cert_no = psn_info.VerifyNumber } var rf []*ResultFive json.Unmarshal([]byte(his.Iinfo), &rf) var psn_type string for _, item := range rf { if item.InsuplcAdmdvs == his.InsuplcAdmdvs { psn_type = item.PsnType } } result2, src_resquest := service.Jxyb2207(his.PsnNo, his.Number, chrg_bchno, cert_no, insutype, allTotal, miConfig.OrgName, roles.UserName, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, strconv.FormatInt(reg_type, 10), his.IdCardType, tempOrder.FulamtOwnpayAmt, tempOrder.OverlmtSelfPay, tempOrder.PreselfpayAmt, tempOrder.InscpScpAmt, his.IdCardType, acct_used_flag, miConfig.Url, miConfig.AccessKey, cert_no, "", card_sn, his.PsnCertType, his.Certno, psn_type, his.PsnName) var dat map[string]interface{} if err := json.Unmarshal([]byte(result2), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } saveLog(result2, src_resquest, "2207", "结算") userJSONBytes, _ := json.Marshal(dat) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "361025" { psn_info, _ := service.GetPsnByPatientId(his.PatientId) var cert_no string var card_sn string if his.IdCardType == 1 { cert_no = strings.Split(psn_info.CardInfo, "|")[0] //psn_info, _ := service.GetPsnByPatientId(his.PatientId) //bas := strings.Split(psn_info.CardInfo, "|") card_sn = "" } else if his.IdCardType == 2 { cert_no = his.IdCardNo } else { cert_no = psn_info.VerifyNumber } var rf []*ResultFive json.Unmarshal([]byte(his.Iinfo), &rf) var psn_type string for _, item := range rf { if item.InsuplcAdmdvs == his.InsuplcAdmdvs { psn_type = item.PsnType } } result2, src_resquest := service.Jxyb2207(his.PsnNo, his.Number, chrg_bchno, cert_no, insutype, allTotal, miConfig.OrgName, roles.UserName, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, strconv.FormatInt(reg_type, 10), his.IdCardType, tempOrder.FulamtOwnpayAmt, tempOrder.OverlmtSelfPay, tempOrder.PreselfpayAmt, tempOrder.InscpScpAmt, his.IdCardType, acct_used_flag, miConfig.Url, miConfig.AccessKey, cert_no, "", card_sn, his.PsnCertType, his.Certno, psn_type, his.PsnName) var dat map[string]interface{} if err := json.Unmarshal([]byte(result2), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } saveLog(result2, src_resquest, "2207", "结算") userJSONBytes, _ := json.Marshal(dat) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "360100" { psn_info, _ := service.GetPsnByPatientId(his.PatientId) var cert_no string var card_sn string if his.IdCardType == 1 { cert_no = strings.Split(psn_info.CardInfo, "|")[0] //psn_info, _ := service.GetPsnByPatientId(his.PatientId) //bas := strings.Split(psn_info.CardInfo, "|") card_sn = "" } else if his.IdCardType == 2 { cert_no = his.IdCardNo } else { cert_no = psn_info.VerifyNumber } var rf []*ResultFive json.Unmarshal([]byte(his.Iinfo), &rf) var psn_type string for _, item := range rf { if item.InsuplcAdmdvs == his.InsuplcAdmdvs { psn_type = item.PsnType } } result2, src_resquest := service.Jxyb2207(his.PsnNo, his.Number, chrg_bchno, cert_no, insutype, allTotal, miConfig.OrgName, roles.UserName, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, strconv.FormatInt(reg_type, 10), his.IdCardType, tempOrder.FulamtOwnpayAmt, tempOrder.OverlmtSelfPay, tempOrder.PreselfpayAmt, tempOrder.InscpScpAmt, his.IdCardType, acct_used_flag, miConfig.Url, miConfig.AccessKey, cert_no, "", card_sn, his.PsnCertType, his.Certno, psn_type, his.PsnName) var dat map[string]interface{} if err := json.Unmarshal([]byte(result2), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } saveLog(result2, src_resquest, "2207", "结算") userJSONBytes, _ := json.Marshal(dat) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "341203" { psn_info, _ := service.GetPsnByPatientId(his.PatientId) if his.IdCardType == 1 { psn_info.VerifyNumber = strings.Replace(psn_info.VerifyNumber, "+", "%2B", -1) bas := strings.Split(psn_info.CardInfo, "|") cert_no = bas[2] } else if his.IdCardType == 3 { cert_no = his.Certno psn_info.VerifyNumber = his.Certno + "|" + psn_info.VerifyNumber } else if his.IdCardType == 4 { psn_info.VerifyNumber = strings.Replace(psn_info.VerifyNumber, "+", "%2B", -1) cert_no = psn_info.VerifyNumber psn_info.VerifyNumber = psn_info.VerifyNumber } else { cert_no = his.Certno psn_info.VerifyNumber = his.Certno } var api string var med_type string if his.Insutype == "390" { if reg_type == 992102 { med_type = "992102" } if reg_type == 140104 { med_type = "140104" } if reg_type == 140201 { med_type = "140201" } if reg_type == 14 { med_type = "14" } } else if his.Insutype == "310" { if reg_type == 992102 { med_type = "992102" } if reg_type == 140104 { med_type = "140104" } if reg_type == 140201 { med_type = "140201" } if reg_type == 14 { med_type = "14" } } api = miConfig.SecretKey + "ahyb/2207?psn_no=" + his.PsnNo + "&mdtrt_id=" + his.Number + "&chrg_bchno=" + chrg_bchno + "&org_name=" + miConfig.OrgName + "&doctor=" + roles.UserName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + his.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&id_card_type=" + strconv.FormatInt(his.IdCardType, 10) + "&certificates=" + strconv.FormatInt(his.IdType, 10) + "&cert_no=" + cert_no + "&insutype=" + insutype + "&total=" + allTotal + "&med_type=" + med_type + "&acct_used_flag=" + acct_used_flag + "&url=" + miConfig.Url + "&ak=" + miConfig.AccessKey + "&verify_number=" + psn_info.VerifyNumber + "&cainfo=" + miConfig.Cainfo + "&mdtrt_grp_type=" + his.MdtrtGrpType resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } status := respJSON["data"].(map[string]interface{})["status"].(string) if status == "0" { err_msg := respJSON["data"].(map[string]interface{})["msg"].(string) c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": err_msg, }) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) result, _ := json.Marshal(respJSON) fmt.Println("log") fmt.Println(string(result)) if err := json.Unmarshal(result, &ahres); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res.InfRefmsgid = ahres.InfRefmsgid timestamp := int64(ahres.Output.Setlinfo.SetlTime) // 输入要转换的时间戳(这里仅作示例) // 创建对应的Time类型 t := time.UnixMilli(timestamp) // 格式化成指定的日期字符串 str := t.Format("2006-01-02 15:04:05") res.Output.Setlinfo.SetlTime = str res.Output.Setlinfo.AcctMulaidPay = ahres.Output.Setlinfo.AcctMulaidPay res.Output.Setlinfo.AcctPay = ahres.Output.Setlinfo.AcctPay res.Output.Setlinfo.CvlservPay = ahres.Output.Setlinfo.CvlservPay res.Output.Setlinfo.ActPayDedc = ahres.Output.Setlinfo.ActPayDedc res.Output.Setlinfo.Age = ahres.Output.Setlinfo.Age res.Output.Setlinfo.Balc = ahres.Output.Setlinfo.Balc //res.Output.Setlinfo.Brdy = gzresSeven10265Two.Output.Setlinfo.Brdy res.Output.Setlinfo.Certno = ahres.Output.Setlinfo.Certno res.Output.Setlinfo.ClrOptins = ahres.Output.Setlinfo.ClrOptins res.Output.Setlinfo.ClrWay = ahres.Output.Setlinfo.ClrOptins res.Output.Setlinfo.CvlservFlag = ahres.Output.Setlinfo.ClrOptins res.Output.Setlinfo.CvlservPay = ahres.Output.Setlinfo.CvlservPay res.Output.Setlinfo.FulamtOwnpayAmt = ahres.Output.Setlinfo.FulamtOwnpayAmt res.Output.Setlinfo.FundPaySumamt = ahres.Output.Setlinfo.FundPaySumamt res.Output.Setlinfo.Gend = ahres.Output.Setlinfo.Gend res.Output.Setlinfo.HifesPay = ahres.Output.Setlinfo.HifesPay res.Output.Setlinfo.HifmiPay = ahres.Output.Setlinfo.HifmiPay res.Output.Setlinfo.HifpPay = ahres.Output.Setlinfo.HifpPay //HospPartAmt, _ := strconv.ParseFloat(gzresSeven10265Two.Output.Setlinfo.HospPartAmt, 64) res.Output.Setlinfo.HospPartAmt = ahres.Output.Setlinfo.HospPartAmt res.Output.Setlinfo.InscpScpAmt = ahres.Output.Setlinfo.InscpScpAmt res.Output.Setlinfo.Insutype = ahres.Output.Setlinfo.Insutype res.Output.Setlinfo.MafPay = ahres.Output.Setlinfo.MafPay res.Output.Setlinfo.MdtrtCertType = ahres.Output.Setlinfo.MdtrtCertType res.Output.Setlinfo.HifobPay = ahres.Output.Setlinfo.HifobPay res.Output.Setlinfo.MdtrtID = ahres.Output.Setlinfo.MdtrtID res.Output.Setlinfo.MedType = ahres.Output.Setlinfo.MedType res.Output.Setlinfo.MedfeeSumamt = ahres.Output.Setlinfo.MedfeeSumamt res.Output.Setlinfo.MedinsSetlID = ahres.Output.Setlinfo.MedinsSetlID res.Output.Setlinfo.Naty = ahres.Output.Setlinfo.Naty res.Output.Setlinfo.OthPay = ahres.Output.Setlinfo.OthPay res.Output.Setlinfo.OverlmtSelfpay = ahres.Output.Setlinfo.OverlmtSelfpay res.Output.Setlinfo.PoolPropSelfpay = ahres.Output.Setlinfo.PoolPropSelfpay res.Output.Setlinfo.PreselfpayAmt = ahres.Output.Setlinfo.PreselfpayAmt res.Output.Setlinfo.PsnCashPay = ahres.Output.Setlinfo.PsnCashPay res.Output.Setlinfo.PsnCertType = ahres.Output.Setlinfo.ClrOptins res.Output.Setlinfo.ClrType = ahres.Output.Setlinfo.ClrType res.Output.Setlinfo.PsnName = ahres.Output.Setlinfo.PsnName res.Output.Setlinfo.PsnNo = ahres.Output.Setlinfo.PsnNo res.Output.Setlinfo.PsnPartAmt = ahres.Output.Setlinfo.PsnPartAmt res.Output.Setlinfo.PsnType = ahres.Output.Setlinfo.PsnType res.Output.Setlinfo.SetlID = ahres.Output.Setlinfo.SetlID res.Output.Setldetail = ahres.Output.Setldetail res.ErrMsg = ahres.ErrMsg res.Cainfo = ahres.Cainfo res.WarnMsg = ahres.WarnMsg res.Infcode = ahres.Infcode if strings.Contains(his.InsuplcAdmdvs, "3412") { res.Output.Setlinfo.ClrType = "11" } else { res.Output.Setlinfo.ClrType = "9903" } } else if miConfig.MdtrtareaAdmvs == "340699" { psn_info, _ := service.GetPsnByPatientId(his.PatientId) if his.IdCardType == 1 { psn_info.VerifyNumber = strings.Replace(psn_info.VerifyNumber, "+", "%2B", -1) bas := strings.Split(psn_info.CardInfo, "|") cert_no = bas[2] } else if his.IdCardType == 3 { cert_no = his.Certno psn_info.VerifyNumber = his.Certno + "|" + psn_info.VerifyNumber } else if his.IdCardType == 4 { psn_info.VerifyNumber = strings.Replace(psn_info.VerifyNumber, "+", "%2B", -1) cert_no = his.Certno psn_info.VerifyNumber = psn_info.VerifyNumber } else { cert_no = his.Certno psn_info.VerifyNumber = his.Certno } var api string var med_type string if his.Insutype == "390" { if reg_type == 992102 { med_type = "992102" } if reg_type == 140104 { med_type = "140104" } if reg_type == 14 { med_type = "14" } if reg_type == 140201 { med_type = "140201" } } else if his.Insutype == "310" { if reg_type == 992102 { med_type = "992102" } if reg_type == 14 { med_type = "14" } if reg_type == 140104 { med_type = "140104" } if reg_type == 140201 { med_type = "140201" } } api = miConfig.SecretKey + "ahyb/2207?psn_no=" + his.PsnNo + "&mdtrt_id=" + his.Number + "&chrg_bchno=" + chrg_bchno + "&org_name=" + miConfig.OrgName + "&doctor=" + roles.UserName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + his.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&id_card_type=" + strconv.FormatInt(his.IdCardType, 10) + "&certificates=" + strconv.FormatInt(his.IdType, 10) + "&cert_no=" + cert_no + "&insutype=" + insutype + "&total=" + allTotal + "&med_type=" + med_type + "&acct_used_flag=" + acct_used_flag + "&url=" + miConfig.Url + "&ak=" + miConfig.AccessKey + "&verify_number=" + psn_info.VerifyNumber + "&cainfo=" + miConfig.Cainfo + "&mdtrt_grp_type=" + his.MdtrtGrpType resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } status := respJSON["data"].(map[string]interface{})["status"].(string) if status == "0" { err_msg := respJSON["data"].(map[string]interface{})["msg"].(string) c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": err_msg, }) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) result, _ := json.Marshal(respJSON) fmt.Println("log") fmt.Println(string(result)) if err := json.Unmarshal(result, &ahres); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res.InfRefmsgid = ahres.InfRefmsgid timestamp := int64(ahres.Output.Setlinfo.SetlTime) // 输入要转换的时间戳(这里仅作示例) // 创建对应的Time类型 t := time.UnixMilli(timestamp) // 格式化成指定的日期字符串 str := t.Format("2006-01-02 15:04:05") res.Output.Setlinfo.SetlTime = str res.Output.Setlinfo.AcctMulaidPay = ahres.Output.Setlinfo.AcctMulaidPay res.Output.Setlinfo.AcctPay = ahres.Output.Setlinfo.AcctPay res.Output.Setlinfo.CvlservPay = ahres.Output.Setlinfo.CvlservPay res.Output.Setlinfo.ActPayDedc = ahres.Output.Setlinfo.ActPayDedc res.Output.Setlinfo.Age = ahres.Output.Setlinfo.Age res.Output.Setlinfo.Balc = ahres.Output.Setlinfo.Balc //res.Output.Setlinfo.Brdy = gzresSeven10265Two.Output.Setlinfo.Brdy res.Output.Setlinfo.Certno = ahres.Output.Setlinfo.Certno res.Output.Setlinfo.ClrOptins = ahres.Output.Setlinfo.ClrOptins res.Output.Setlinfo.ClrWay = ahres.Output.Setlinfo.ClrOptins res.Output.Setlinfo.CvlservFlag = ahres.Output.Setlinfo.ClrOptins res.Output.Setlinfo.CvlservPay = ahres.Output.Setlinfo.CvlservPay res.Output.Setlinfo.FulamtOwnpayAmt = ahres.Output.Setlinfo.FulamtOwnpayAmt res.Output.Setlinfo.FundPaySumamt = ahres.Output.Setlinfo.FundPaySumamt res.Output.Setlinfo.Gend = ahres.Output.Setlinfo.Gend res.Output.Setlinfo.HifesPay = ahres.Output.Setlinfo.HifesPay res.Output.Setlinfo.HifmiPay = ahres.Output.Setlinfo.HifmiPay res.Output.Setlinfo.HifpPay = ahres.Output.Setlinfo.HifpPay //HospPartAmt, _ := strconv.ParseFloat(gzresSeven10265Two.Output.Setlinfo.HospPartAmt, 64) res.Output.Setlinfo.HospPartAmt = ahres.Output.Setlinfo.HospPartAmt res.Output.Setlinfo.InscpScpAmt = ahres.Output.Setlinfo.InscpScpAmt res.Output.Setlinfo.Insutype = ahres.Output.Setlinfo.Insutype res.Output.Setlinfo.MafPay = ahres.Output.Setlinfo.MafPay res.Output.Setlinfo.MdtrtCertType = ahres.Output.Setlinfo.MdtrtCertType res.Output.Setlinfo.HifobPay = ahres.Output.Setlinfo.HifobPay res.Output.Setlinfo.MdtrtID = ahres.Output.Setlinfo.MdtrtID res.Output.Setlinfo.MedType = ahres.Output.Setlinfo.MedType res.Output.Setlinfo.MedfeeSumamt = ahres.Output.Setlinfo.MedfeeSumamt res.Output.Setlinfo.MedinsSetlID = ahres.Output.Setlinfo.MedinsSetlID res.Output.Setlinfo.Naty = ahres.Output.Setlinfo.Naty res.Output.Setlinfo.OthPay = ahres.Output.Setlinfo.OthPay res.Output.Setlinfo.OverlmtSelfpay = ahres.Output.Setlinfo.OverlmtSelfpay res.Output.Setlinfo.PoolPropSelfpay = ahres.Output.Setlinfo.PoolPropSelfpay res.Output.Setlinfo.PreselfpayAmt = ahres.Output.Setlinfo.PreselfpayAmt res.Output.Setlinfo.PsnCashPay = ahres.Output.Setlinfo.PsnCashPay res.Output.Setlinfo.PsnCertType = ahres.Output.Setlinfo.ClrOptins res.Output.Setlinfo.ClrType = ahres.Output.Setlinfo.ClrType res.Output.Setlinfo.PsnName = ahres.Output.Setlinfo.PsnName res.Output.Setlinfo.PsnNo = ahres.Output.Setlinfo.PsnNo res.Output.Setlinfo.PsnPartAmt = ahres.Output.Setlinfo.PsnPartAmt res.Output.Setlinfo.PsnType = ahres.Output.Setlinfo.PsnType res.Output.Setlinfo.SetlID = ahres.Output.Setlinfo.SetlID res.Output.Setldetail = ahres.Output.Setldetail res.ErrMsg = ahres.ErrMsg res.Cainfo = ahres.Cainfo res.WarnMsg = ahres.WarnMsg res.Infcode = ahres.Infcode if strings.Contains(his.InsuplcAdmdvs, "3406") { res.Output.Setlinfo.ClrType = "11" } else { res.Output.Setlinfo.ClrType = "9903" } } else if miConfig.MdtrtareaAdmvs == "430800" { psn_info, _ := service.GetPsnByPatientId(his.PatientId) var cert_no string if his.IdCardType == 1 { cert_no = strings.Split(psn_info.CardInfo, "|")[0] } else if his.IdCardType == 2 { cert_no = his.IdCardNo } else { cert_no = psn_info.VerifyNumber } result2, src_resquest := service.Hnyb2207(his.PsnNo, his.Number, chrg_bchno, cert_no, insutype, allTotal, miConfig.OrgName, roles.UserName, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, strconv.FormatInt(reg_type, 10), his.IdCardType, tempOrder.FulamtOwnpayAmt, tempOrder.OverlmtSelfPay, tempOrder.PreselfpayAmt, tempOrder.InscpScpAmt, his.IdCardType, acct_used_flag, miConfig.Url, miConfig.AccessKey, cert_no, "") var dat map[string]interface{} if err := json.Unmarshal([]byte(result2), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } saveLog(result2, src_resquest, "2207", "结算") userJSONBytes, _ := json.Marshal(dat) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "441799" { psn_info, _ := service.GetPsnByPatientId(id) var verify_number string if psn_info.IdCardType == 4 { verify_number = psn_info.VerifyNumber } else if psn_info.IdCardType == 1 { bas := strings.Split(psn_info.CardInfo, "|") cardNumber := bas[2] verify_number = cardNumber } else { verify_number = psn_info.Certno psn_info.IdCardType = 2 } var api string api = miConfig.Url + "gdyb/2207?psn_no=" + his.PsnNo + "&mdtrt_id=" + his.Number + "&chrg_bchno=" + chrg_bchno + "&org_name=" + miConfig.OrgName + "&operator=" + roles.UserName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + his.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&id_card_type=" + strconv.FormatInt(psn_info.IdCardType, 10) + "&certificates=" + strconv.FormatInt(his.IdType, 10) + "&cert_no=" + cert_no + "&insutype=" + insutype + "&total=" + allTotal + "&med_type=" + tempOrder.MedType + "&acct_used_flag=" + acct_used_flag + "&verify_number=" + verify_number resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) result, _ := json.Marshal(respJSON) if err := json.Unmarshal([]byte(result), &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else { var src_resquest string if miConfig.Code == "H15049901371" { //赤峰地区国家医保医疗类别 //职工透析:医疗类别选特殊情况门诊990502 //居民定额血透门慢: 医疗类别选门诊慢病140104 var med_type string if his.Insutype == "390" { if reg_type == 14 { med_type = "9933" } else if reg_type == 11 { med_type = "11" } } else if his.Insutype == "310" { if reg_type == 14 { med_type = "990502" } else if reg_type == 11 { med_type = "11" } } result2, src_resquest = service.Gdyb2207(his.PsnNo, his.Number, chrg_bchno, cert_no, insutype, allTotal, miConfig.OrgName, roles.UserName, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, med_type, his.IdCardType, tempOrder.FulamtOwnpayAmt, tempOrder.OverlmtSelfPay, tempOrder.PreselfpayAmt, tempOrder.InscpScpAmt, his.IdType, acct_used_flag, "", admin_user_id) } else { if miConfig.Code == "H44030501364" || miConfig.Code == "H44030903432" || miConfig.Code == "H44030500255" { result3101 := Checkgd3102(c, id, his_patient_id, admin_user_id, "7", tempOrder.ID) if result3101.Infcode == 0 { if len(result3101.Output.Result) > 0 { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "failed_type": 100, "warm_type": 2, "msg": result3101.Output.Result, }) return } } else { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": result3101.ErrMsg, }) return } } if his.IdCardType == 4 { psn_info, _ := service.GetPsnByPatientId(his.PatientId) token := psn_info.VerifyNumber result2, src_resquest = service.Gdyb2207(his.PsnNo, his.Number, chrg_bchno, cert_no, insutype, allTotal, miConfig.OrgName, roles.UserName, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, strconv.FormatInt(reg_type, 10), his.IdCardType, tempOrder.FulamtOwnpayAmt, tempOrder.OverlmtSelfPay, tempOrder.PreselfpayAmt, tempOrder.InscpScpAmt, his.IdType, acct_used_flag, token, admin_user_id) } else { result2, src_resquest = service.Gdyb2207(his.PsnNo, his.Number, chrg_bchno, cert_no, insutype, allTotal, miConfig.OrgName, roles.UserName, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, strconv.FormatInt(reg_type, 10), his.IdCardType, tempOrder.FulamtOwnpayAmt, tempOrder.OverlmtSelfPay, tempOrder.PreselfpayAmt, tempOrder.InscpScpAmt, his.IdType, acct_used_flag, "", admin_user_id) } } var dat map[string]interface{} if err := json.Unmarshal([]byte(result2), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } saveLog(result2, src_resquest, "2207", "结算") userJSONBytes, _ := json.Marshal(dat) if miConfig.Code == "H15049901371" { if err := json.Unmarshal(userJSONBytes, &resSeven10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res.InfRefmsgid = resSeven10265.InfRefmsgid res.Output = resSeven10265.Output res.ErrMsg = resSeven10265.ErrMsg res.Cainfo = resSeven10265.Cainfo res.WarnMsg = resSeven10265.WarnMsg infocode, _ := strconv.ParseInt(resSeven10265.Infcode, 10, 64) res.Infcode = infocode } else { if strings.Contains(his.InsuplcAdmdvs, "4401") { if err := json.Unmarshal(userJSONBytes, &gzresSeven10265Two); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res.InfRefmsgid = gzresSeven10265Two.InfRefmsgid res.Output.Setlinfo.AcctMulaidPay = gzresSeven10265Two.Output.Setlinfo.AcctMulaidPay res.Output.Setlinfo.AcctPay = gzresSeven10265Two.Output.Setlinfo.AcctPay res.Output.Setlinfo.CvlservPay = gzresSeven10265Two.Output.Setlinfo.CvlservPay res.Output.Setlinfo.ActPayDedc = gzresSeven10265Two.Output.Setlinfo.ActPayDedc res.Output.Setlinfo.Age = gzresSeven10265Two.Output.Setlinfo.Age res.Output.Setlinfo.Balc = gzresSeven10265Two.Output.Setlinfo.Balc //res.Output.Setlinfo.Brdy = gzresSeven10265Two.Output.Setlinfo.Brdy res.Output.Setlinfo.Certno = gzresSeven10265Two.Output.Setlinfo.Certno res.Output.Setlinfo.ClrOptins = gzresSeven10265Two.Output.Setlinfo.ClrOptins res.Output.Setlinfo.ClrType = gzresSeven10265Two.Output.Setlinfo.ClrOptins res.Output.Setlinfo.ClrWay = gzresSeven10265Two.Output.Setlinfo.ClrOptins res.Output.Setlinfo.CvlservFlag = gzresSeven10265Two.Output.Setlinfo.ClrOptins res.Output.Setlinfo.CvlservPay = gzresSeven10265Two.Output.Setlinfo.CvlservPay res.Output.Setlinfo.FulamtOwnpayAmt = gzresSeven10265Two.Output.Setlinfo.FulamtOwnpayAmt res.Output.Setlinfo.FundPaySumamt = gzresSeven10265Two.Output.Setlinfo.FundPaySumamt res.Output.Setlinfo.Gend = gzresSeven10265Two.Output.Setlinfo.Gend res.Output.Setlinfo.HifesPay = gzresSeven10265Two.Output.Setlinfo.HifesPay res.Output.Setlinfo.HifmiPay = gzresSeven10265Two.Output.Setlinfo.HifmiPay res.Output.Setlinfo.HifpPay = gzresSeven10265Two.Output.Setlinfo.HifpPay //HospPartAmt, _ := strconv.ParseFloat(gzresSeven10265Two.Output.Setlinfo.HospPartAmt, 64) res.Output.Setlinfo.HospPartAmt = gzresSeven10265Two.Output.Setlinfo.HospPartAmt res.Output.Setlinfo.InscpScpAmt = gzresSeven10265Two.Output.Setlinfo.InscpScpAmt res.Output.Setlinfo.Insutype = gzresSeven10265Two.Output.Setlinfo.Insutype res.Output.Setlinfo.MafPay = gzresSeven10265Two.Output.Setlinfo.MafPay res.Output.Setlinfo.MdtrtCertType = gzresSeven10265Two.Output.Setlinfo.MdtrtCertType res.Output.Setlinfo.HifobPay = gzresSeven10265Two.Output.Setlinfo.HifobPay res.Output.Setlinfo.MdtrtID = gzresSeven10265Two.Output.Setlinfo.MdtrtID res.Output.Setlinfo.MedType = gzresSeven10265Two.Output.Setlinfo.MedType res.Output.Setlinfo.MedfeeSumamt = gzresSeven10265Two.Output.Setlinfo.MedfeeSumamt res.Output.Setlinfo.MedinsSetlID = gzresSeven10265Two.Output.Setlinfo.MedinsSetlID res.Output.Setlinfo.Naty = gzresSeven10265Two.Output.Setlinfo.Naty res.Output.Setlinfo.OthPay = gzresSeven10265Two.Output.Setlinfo.OthPay res.Output.Setlinfo.OverlmtSelfpay = gzresSeven10265Two.Output.Setlinfo.OverlmtSelfpay PoolPropSelfpay, _ := strconv.ParseFloat(gzresSeven10265Two.Output.Setlinfo.PoolPropSelfpay, 64) res.Output.Setlinfo.PoolPropSelfpay = PoolPropSelfpay res.Output.Setlinfo.PreselfpayAmt = gzresSeven10265Two.Output.Setlinfo.PreselfpayAmt res.Output.Setlinfo.PsnCashPay = gzresSeven10265Two.Output.Setlinfo.PsnCashPay res.Output.Setlinfo.PsnCertType = gzresSeven10265Two.Output.Setlinfo.ClrOptins res.Output.Setlinfo.PsnName = gzresSeven10265Two.Output.Setlinfo.PsnName res.Output.Setlinfo.PsnNo = gzresSeven10265Two.Output.Setlinfo.PsnNo res.Output.Setlinfo.PsnPartAmt = gzresSeven10265Two.Output.Setlinfo.PsnPartAmt res.Output.Setlinfo.PsnType = gzresSeven10265Two.Output.Setlinfo.PsnType res.Output.Setlinfo.SetlID = gzresSeven10265Two.Output.Setlinfo.SetlID res.Output.Setlinfo.SetlTime = gzresSeven10265Two.Output.Setlinfo.SetlTime //res.Output.Setldetail = gzresSeven10265Two.Output.Setldetail res.ErrMsg = gzresSeven10265Two.ErrMsg res.Cainfo = gzresSeven10265Two.Cainfo res.WarnMsg = gzresSeven10265Two.WarnMsg //infocode, _ := strconv.ParseInt(resSeven10265Two.Infcode, 10, 64) //res.Infcode = infocode } else { if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } } } if res.Infcode == -1 { errlog := &models.HisOrderError{ UserOrgId: adminUser.CurrentOrgId, Ctime: time.Now().Unix(), Mtime: time.Now().Unix(), Number: chrg_bchno, ErrMsg: res.ErrMsg, Status: 1, PatientId: id, RecordTime: recordDateTime, Stage: 6, } service.CreateErrMsgLog(errlog) c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res.ErrMsg, }) return } else { order, _ := service.GetHisOrderTwo(adminUser.CurrentOrgId, chrg_bchno, id) order.OrderStatus = 2 order.MdtrtId = res.Output.Setlinfo.MdtrtID order.SetlId = res.Output.Setlinfo.SetlID order.PsnNo = res.Output.Setlinfo.PsnNo order.PsnName = res.Output.Setlinfo.PsnName order.PsnCertType = res.Output.Setlinfo.PsnCertType order.Certno = res.Output.Setlinfo.Certno order.Gend = res.Output.Setlinfo.Gend order.Naty = res.Output.Setlinfo.Naty order.Age = res.Output.Setlinfo.Age order.Insutype = res.Output.Setlinfo.Insutype order.PsnType = res.Output.Setlinfo.PsnType order.CvlservFlag = res.Output.Setlinfo.CvlservFlag order.SetlTime = res.Output.Setlinfo.SetlTime order.MdtrtCertType = res.Output.Setlinfo.MdtrtCertType order.PayWays = pay_ways order.AcctUsedFlag = acct_used_flag order.WechatPay = wechat_pay order.AliPay = ali_pay order.JifenPay = jifen_pay order.BandCardPay = band_card_pay order.CashPay = cash_pay order.OthDesc = oth_desc //order.MedType = res.Output.Setlinfo.MedType if reg_type == 1112 { order.MedType = "1112" } if reg_type == 1111 { order.MedType = "1111" } order.ClrType = res.Output.Setlinfo.ClrType if adminUser.CurrentOrgId == 10480 { if strings.Contains(his.InsuplcAdmdvs, "3412") { order.ClrType = "11" } else { order.ClrType = "9903" } } order.MedfeeSumamt = res.Output.Setlinfo.MedfeeSumamt order.FulamtOwnpayAmt = res.Output.Setlinfo.FulamtOwnpayAmt order.OverlmtSelfPay = res.Output.Setlinfo.OverlmtSelfpay order.PreselfpayAmt = res.Output.Setlinfo.PreselfpayAmt order.InscpScpAmt = res.Output.Setlinfo.InscpScpAmt order.ActPayDedc = res.Output.Setlinfo.ActPayDedc order.HifpPay = res.Output.Setlinfo.HifpPay order.CvlservPay = res.Output.Setlinfo.CvlservPay order.PoolPropSelfpay = res.Output.Setlinfo.PoolPropSelfpay order.HifesPay = res.Output.Setlinfo.HifesPay order.HifobPay = res.Output.Setlinfo.HifobPay order.MafPay = res.Output.Setlinfo.MafPay order.HifmiPay = res.Output.Setlinfo.HifmiPay order.OthPay = res.Output.Setlinfo.OthPay order.FundPaySumamt = res.Output.Setlinfo.FundPaySumamt order.PsnPartAmt = res.Output.Setlinfo.PsnPartAmt order.AcctPay = res.Output.Setlinfo.AcctPay order.PsnCashPay = res.Output.Setlinfo.PsnCashPay order.HospPartAmt = res.Output.Setlinfo.HospPartAmt order.Balc = res.Output.Setlinfo.Balc order.AcctMulaidPay = res.Output.Setlinfo.AcctMulaidPay order.MedinsSetlId = res.Output.Setlinfo.MedinsSetlID order.ClrOptins = res.Output.Setlinfo.ClrOptins order.ClrWay = res.Output.Setlinfo.ClrWay order.Creator = order.Creator order.Modify = roles.AdminUserId order.RequestLog = src_resquest order.Diagnosis = diagnosis_id order.FaPiaoNumber = fapiao_number order.FaPiaoCode = fapiao_code setlDetail, _ := json.Marshal(res.Output.Setldetail) detailStr := string(setlDetail) order.SetlDetail = detailStr err := service.UpdataOrderStatusTwo(chrg_bchno, adminUser.CurrentOrgId) err = service.UpDateOrder(order) if err == nil { //判断是否使用了押金 if dec_way == "true" { tmpstring := strconv.FormatInt(order.ID, 10) //扣押金 order.Decimal = decimal service.UpDateOrder(order) errmsg = service.SpendDeposit(c.GetAdminUserInfo().CurrentOrgId, id, c.GetAdminUserInfo().AdminUser.Id, tmpstring, decimal) if errmsg != nil { c.ServeFailJsonSend(enums.ErrorCodeParamWrong, errmsg.Error()) return } } c.ServeSuccessJSON(map[string]interface{}{ "msg": "结算成功", }) } else { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeAmountAccountException) return } } } } } // 上传明细-预结算- func (c *HisApiController) GetPreUploadInfo() { id, _ := c.GetInt64("id") record_time := c.GetString("record_time") his_patient_id, _ := c.GetInt64("his_patient_id") settle_accounts_type, _ := c.GetInt64("settle_accounts_type") 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") begin_time := c.GetString("begin_time") acct_used_flag := c.GetString("acct_used_flag") id_str := c.GetString("ids") ids_arr := strings.Split(id_str, ",") timeLayout := "2006-01-02" loc, _ := time.LoadLocation("Local") theTime, err := time.ParseInLocation(timeLayout+" 15:04:05", record_time+" 00:00:00", loc) if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } recordDateTime := theTime.Unix() adminUser := c.GetAdminUserInfo() diagnosis_ids := strings.Split(diagnosis_id, ",") var config []*models.HisXtDiagnoseConfig for _, item := range diagnosis_ids { id, _ := strconv.ParseInt(item, 10, 64) if id > 0 { diagnosisConfig, _ := service.FindDiagnoseById(id) config = append(config, &diagnosisConfig) } } //diagnosisConfig, _ := service.FindDiagnoseById(diagnosis_id) sickConfig, _ := service.FindSickById(sick_type) var prescriptions []*models.HisPrescription var start_time int64 var end_time int64 var isSuccess bool = true roles, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, admin_user_id) fmt.Println(his_patient_id) his, _ := service.GetNewHisPatientInfo(adminUser.CurrentOrgId, his_patient_id, recordDateTime) timestamp := time.Now().Unix() tempTime := time.Unix(timestamp, 0) timeFormat := tempTime.Format("20060102150405") chrgBchno := rand.Intn(100000) + 10000 new_chrg_bchno := "" chrg_bchno := timeFormat + strconv.FormatInt(int64(chrgBchno), 10) new_chrg_bchno = chrg_bchno if adminUser.CurrentOrgId == 10265 { if !strings.Contains(his.InsuplcAdmdvs, "1504") { new_chrg_bchno = "0000" } } miConfig, _ := service.FindMedicalInsuranceInfo(adminUser.CurrentOrgId) var patientPrescription models.HisPrescriptionInfo patientPrescription, _ = service.FindHisPatientPrescriptionInfo(adminUser.CurrentOrgId, his_patient_id, recordDateTime) if patientPrescription.ID == 0 { patientPrescription, _ = service.FindLastPatientPrescriptionInfo(adminUser.CurrentOrgId, id, recordDateTime) } //miConfig, _ := service.FindMedicalInsuranceInfo(adminUser.CurrentOrgId) department, _ := service.GetDepartMentDetail(patientPrescription.Departments) doctor_info, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, patientPrescription.DoctorId) strconv.FormatInt(his.PatientId, 10) var res2406 Result2406 //安徽单病种处理 if miConfig.MdtrtareaAdmvs == "341203" && reg_type == 992102 { data := make(map[string]interface{}) client := &http.Client{} data["psn_no"] = his.PsnNo data["mdtrt_id"] = his.Number data["operator"] = roles.UserName data["cert_no"] = his.IdCardNo data["org_name"] = miConfig.OrgName data["psn_name"] = his.Name data["ipt_otp_no"] = his.IptOtpNo data["ipt_psn_sp_flag_type"] = "0901" data["ipt_psn_sp_flag"] = "1" data["fixmedins_code"] = miConfig.Code data["insuplc_admdvs"] = his.InsuplcAdmdvs data["mdtrtarea_admvs"] = miConfig.MdtrtareaAdmvs data["url"] = miConfig.Url utils.ErrorLog("接口返回数据解析JSON失败: %v", data) bytesData, _ := json.Marshal(data) var req *http.Request utils.ErrorLog("接口返回数据解析JSON失败: %v", miConfig.SecretKey) req, _ = http.NewRequest("POST", miConfig.SecretKey+"ahyb/2406", 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 } status := respJSON["data"].(map[string]interface{})["status"].(string) if status == "0" { err_msg := respJSON["data"].(map[string]interface{})["msg"].(string) c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": err_msg, }) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) userJSONBytes, _ := json.Marshal(respJSON) fmt.Println("log") fmt.Println(string(userJSONBytes)) if err := json.Unmarshal(userJSONBytes, &res2406); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "340699" && reg_type == 992102 { data := make(map[string]interface{}) client := &http.Client{} data["psn_no"] = his.PsnNo data["mdtrt_id"] = his.Number data["operator"] = roles.UserName data["cert_no"] = his.IdCardNo data["org_name"] = miConfig.OrgName data["psn_name"] = his.Name data["ipt_otp_no"] = his.IptOtpNo data["ipt_psn_sp_flag_type"] = "0901" data["ipt_psn_sp_flag"] = "1" data["fixmedins_code"] = miConfig.Code data["insuplc_admdvs"] = his.InsuplcAdmdvs data["mdtrtarea_admvs"] = miConfig.MdtrtareaAdmvs data["url"] = miConfig.Url utils.ErrorLog("接口返回数据解析JSON失败: %v", data) bytesData, _ := json.Marshal(data) var req *http.Request utils.ErrorLog("接口返回数据解析JSON失败: %v", miConfig.SecretKey) req, _ = http.NewRequest("POST", miConfig.SecretKey+"ahyb/2406", 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 } status := respJSON["data"].(map[string]interface{})["status"].(string) if status == "0" { err_msg := respJSON["data"].(map[string]interface{})["msg"].(string) c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": err_msg, }) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) userJSONBytes, _ := json.Marshal(respJSON) fmt.Println("log") fmt.Println(string(userJSONBytes)) if err := json.Unmarshal(userJSONBytes, &res2406); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } if res2406.Infcode != 0 { adminUser := c.GetAdminUserInfo() errlog := &models.HisOrderError{ UserOrgId: adminUser.CurrentOrgId, Ctime: time.Now().Unix(), Mtime: time.Now().Unix(), ErrMsg: res2406.ErrMsg, Status: 1, PatientId: id, RecordTime: recordDateTime, Stage: 3, } service.CreateErrMsgLog(errlog) c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res2406.ErrMsg, }) return } var res2 ResultSix var res3 GZResultSix var resSix10265 ResultSix10265 //var time_stamp string if miConfig.MdtrtareaAdmvs == "421300" { data := make(map[string]interface{}) client := &http.Client{} data["psn_no"] = his.PsnNo data["mdtrt_id"] = his.Number data["department"] = department.Name data["org_name"] = miConfig.OrgName data["med_type"] = strconv.FormatInt(reg_type, 10) data["doctor_id"] = doctor_info.DoctorNumber data["doctor_name"] = roles.UserName data["fixmedins_code"] = miConfig.Code data["insuplc_admdvs"] = his.InsuplcAdmdvs data["mdtrtarea_admvs"] = miConfig.MdtrtareaAdmvs data["secret_key"] = miConfig.SecretKey data["sick_code"] = sickConfig.CountryCode data["sick_name"] = sickConfig.ClassName data["begin_time"] = begin_time data["dept"] = strconv.FormatInt(department.ID, 10) data["config"] = config data["opter"] = roles.UserName fmt.Println(data) bytesData, _ := json.Marshal(data) req, _ := http.NewRequest("POST", "http://192.168.124.4:9532/"+"hbyb/2203", bytes.NewReader(bytesData)) resp, _ := client.Do(req) defer resp.Body.Close() body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) userJSONBytes, _ := json.Marshal(respJSON) fmt.Println("log") fmt.Println(string(userJSONBytes)) if err := json.Unmarshal(userJSONBytes, &res2); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "420200" { data := make(map[string]interface{}) client := &http.Client{} data["psn_no"] = his.PsnNo data["mdtrt_id"] = his.Number data["department"] = department.Name data["org_name"] = miConfig.OrgName if reg_type == 11 && his.Insutype == "390" { data["med_type"] = "110104" } else { data["med_type"] = strconv.FormatInt(reg_type, 10) } data["doctor_id"] = doctor_info.DoctorNumber data["doctor_name"] = roles.UserName data["fixmedins_code"] = miConfig.Code data["insuplc_admdvs"] = his.InsuplcAdmdvs data["mdtrtarea_admvs"] = miConfig.MdtrtareaAdmvs data["secret_key"] = miConfig.SecretKey data["sick_code"] = sickConfig.CountryCode data["sick_name"] = sickConfig.ClassName data["begin_time"] = begin_time data["dept"] = strconv.FormatInt(department.ID, 10) data["config"] = config data["opter"] = roles.UserName fmt.Println(data) bytesData, _ := json.Marshal(data) req, _ := http.NewRequest("POST", "http://192.168.0.197:9532/"+"hbyb/2203", bytes.NewReader(bytesData)) resp, _ := client.Do(req) defer resp.Body.Close() body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) userJSONBytes, _ := json.Marshal(respJSON) fmt.Println("log") fmt.Println(string(userJSONBytes)) if err := json.Unmarshal(userJSONBytes, &res2); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "420902" { data := make(map[string]interface{}) client := &http.Client{} data["psn_no"] = his.PsnNo data["mdtrt_id"] = his.Number data["department"] = department.Name data["org_name"] = miConfig.OrgName if reg_type == 11 && his.Insutype == "390" { data["med_type"] = "110104" } else { data["med_type"] = strconv.FormatInt(reg_type, 10) } data["doctor_id"] = doctor_info.DoctorNumber data["doctor_name"] = roles.UserName data["fixmedins_code"] = miConfig.Code data["insuplc_admdvs"] = his.InsuplcAdmdvs data["mdtrtarea_admvs"] = miConfig.MdtrtareaAdmvs data["secret_key"] = miConfig.SecretKey data["sick_code"] = sickConfig.CountryCode data["sick_name"] = sickConfig.ClassName data["begin_time"] = begin_time data["dept"] = strconv.FormatInt(department.ID, 10) data["config"] = config data["opter"] = roles.UserName fmt.Println(data) bytesData, _ := json.Marshal(data) req, _ := http.NewRequest("POST", miConfig.Url+"hbyb/2203", bytes.NewReader(bytesData)) resp, _ := client.Do(req) defer resp.Body.Close() body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) userJSONBytes, _ := json.Marshal(respJSON) fmt.Println("log") fmt.Println(string(userJSONBytes)) if err := json.Unmarshal(userJSONBytes, &res2); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "421182" { data := make(map[string]interface{}) client := &http.Client{} data["psn_no"] = his.PsnNo data["mdtrt_id"] = his.Number data["department"] = department.Name data["org_name"] = miConfig.OrgName if reg_type == 11 && his.Insutype == "390" { data["med_type"] = "110104" } else { data["med_type"] = strconv.FormatInt(reg_type, 10) } data["doctor_id"] = doctor_info.DoctorNumber data["doctor_name"] = roles.UserName data["fixmedins_code"] = miConfig.Code data["insuplc_admdvs"] = his.InsuplcAdmdvs data["mdtrtarea_admvs"] = miConfig.MdtrtareaAdmvs data["secret_key"] = miConfig.SecretKey data["sick_code"] = sickConfig.CountryCode data["sick_name"] = sickConfig.ClassName data["begin_time"] = begin_time data["dept"] = strconv.FormatInt(department.ID, 10) data["config"] = config data["opter"] = roles.UserName fmt.Println(data) bytesData, _ := json.Marshal(data) req, _ := http.NewRequest("POST", miConfig.Url+"hbyb/2203", bytes.NewReader(bytesData)) resp, _ := client.Do(req) defer resp.Body.Close() body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) userJSONBytes, _ := json.Marshal(respJSON) fmt.Println("log") fmt.Println(string(userJSONBytes)) if err := json.Unmarshal(userJSONBytes, &res2); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "320921" || miConfig.MdtrtareaAdmvs == "320982" { data := make(map[string]interface{}) client := &http.Client{} data["psn_no"] = his.PsnNo data["mdtrt_id"] = his.Number data["doctor"] = roles.UserName data["department"] = department.Name data["org_name"] = miConfig.OrgName data["med_type"] = strconv.FormatInt(reg_type, 10) data["doctor_id"] = strconv.FormatInt(doctor_info.AdminUserId, 10) data["fixmedins_code"] = miConfig.Code data["insuplc_admdvs"] = his.InsuplcAdmdvs data["mdtrtarea_admvs"] = miConfig.MdtrtareaAdmvs data["secret_key"] = miConfig.SecretKey data["sick_code"] = sickConfig.CountryCode data["sick_name"] = sickConfig.ClassName data["begin_time"] = begin_time data["dept"] = strconv.FormatInt(department.ID, 10) data["config"] = config data["url"] = miConfig.Url data["ak"] = miConfig.AccessKey data["cainfo"] = miConfig.Cainfo bytesData, _ := json.Marshal(data) var req *http.Request if miConfig.MdtrtareaAdmvs == "320921" { req, _ = http.NewRequest("POST", "http://192.168.2.3:9532/"+"jsyb/2203", bytes.NewReader(bytesData)) } else { req, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/2203", 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 } //time_stamp := strconv.FormatInt(int64(respJSON["data"].(map[string]interface{})["time_stamp"].(float64)), 10) //fmt.Println(respJSON["data"].(map[string]interface{})["time_stamp"].(string)) //time_stamp = respJSON["data"].(map[string]interface{})["time_stamp"].(string) respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) userJSONBytes, _ := json.Marshal(respJSON) fmt.Println("log") fmt.Println(string(userJSONBytes)) if err := json.Unmarshal(userJSONBytes, &resSix10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res2.InfRefmsgid = resSix10265.InfRefmsgid res2.Output = resSix10265.Output res2.ErrMsg = resSix10265.ErrMsg res2.Cainfo = resSix10265.Cainfo res2.WarnMsg = resSix10265.WarnMsg infocode, _ := strconv.ParseInt(resSix10265.Infcode, 10, 64) res2.Infcode = infocode } else if miConfig.MdtrtareaAdmvs == "150499" { data := make(map[string]interface{}) client := &http.Client{} data["psn_no"] = his.PsnNo data["mdtrt_id"] = his.Number data["doctor"] = roles.UserName data["department"] = department.Name data["org_name"] = miConfig.OrgName data["med_type"] = strconv.FormatInt(reg_type, 10) data["doctor_id"] = strconv.FormatInt(doctor_info.AdminUserId, 10) data["fixmedins_code"] = miConfig.Code data["insuplc_admdvs"] = his.InsuplcAdmdvs data["mdtrtarea_admvs"] = miConfig.MdtrtareaAdmvs data["secret_key"] = miConfig.SecretKey data["sick_code"] = sickConfig.CountryCode data["sick_name"] = sickConfig.ClassName data["begin_time"] = begin_time data["dept"] = strconv.FormatInt(department.ID, 10) data["config"] = config //data["url"] = miConfig.Url //data["ak"] = miConfig.AccessKey data["cainfo"] = miConfig.Cainfo fmt.Println(data) bytesData, _ := json.Marshal(data) var req *http.Request req, _ = http.NewRequest("POST", "http://172.16.13.254:9532/"+"nmyb/2203", 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 } //time_stamp := strconv.FormatInt(int64(respJSON["data"].(map[string]interface{})["time_stamp"].(float64)), 10) //fmt.Println(respJSON["data"].(map[string]interface{})["time_stamp"].(string)) //time_stamp = respJSON["data"].(map[string]interface{})["time_stamp"].(string) respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) userJSONBytes, _ := json.Marshal(respJSON) fmt.Println("log") fmt.Println(string(userJSONBytes)) if err := json.Unmarshal(userJSONBytes, &resSix10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res2.InfRefmsgid = resSix10265.InfRefmsgid res2.Output = resSix10265.Output res2.ErrMsg = resSix10265.ErrMsg res2.Cainfo = resSix10265.Cainfo res2.WarnMsg = resSix10265.WarnMsg infocode, _ := strconv.ParseInt(resSix10265.Infcode, 10, 64) res2.Infcode = infocode } else if miConfig.MdtrtareaAdmvs == "350500" { result, requestLog, _ := service.FJyb2203(his.PsnNo, his.Number, doctor_info.UserName, department.Name, miConfig.OrgName, strconv.FormatInt(reg_type, 10), doctor_info.DoctorNumber, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, sickConfig.ContentCode, sickConfig.ClassName, roles.UserName, config, begin_time, doctor_info.UserName, roles.UserName, miConfig.Url, miConfig.Code, miConfig.AppSecret, miConfig.SignKey, miConfig.EncKey) saveLog(result, requestLog, "2203", "上传就诊信息") var respJSON2 map[string]interface{} if err := json.Unmarshal([]byte(string(result)), &respJSON2); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } userJSONBytes2, _ := json.Marshal(respJSON2) if err := json.Unmarshal(userJSONBytes2, &res2); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "360302" { var result string var requestLog string result, requestLog = service.Jxyb2203A(his.PsnNo, his.Number, doctor_info.UserName, department.Name, miConfig.OrgName, strconv.FormatInt(reg_type, 10), doctor_info.DoctorNumber, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, sickConfig.ContentCode, sickConfig.ClassName, roles.UserName, config, miConfig.Url, miConfig.AccessKey, "") saveLog(result, requestLog, "2203", "上传就诊信息") var respJSON2 map[string]interface{} if err := json.Unmarshal([]byte(string(result)), &respJSON2); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } userJSONBytes2, _ := json.Marshal(respJSON2) if err := json.Unmarshal(userJSONBytes2, &res2); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "361025" { var result string var requestLog string result, requestLog = service.Jxyb2203A(his.PsnNo, his.Number, doctor_info.UserName, department.Name, miConfig.OrgName, strconv.FormatInt(reg_type, 10), doctor_info.DoctorNumber, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, sickConfig.ContentCode, sickConfig.ClassName, roles.UserName, config, miConfig.Url, miConfig.AccessKey, "") saveLog(result, requestLog, "2203", "上传就诊信息") var respJSON2 map[string]interface{} if err := json.Unmarshal([]byte(string(result)), &respJSON2); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } userJSONBytes2, _ := json.Marshal(respJSON2) if err := json.Unmarshal(userJSONBytes2, &res2); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "360100" { var result string var requestLog string result, requestLog = service.Jxyb2203A(his.PsnNo, his.Number, doctor_info.UserName, department.Name, miConfig.OrgName, strconv.FormatInt(reg_type, 10), doctor_info.DoctorNumber, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, sickConfig.ContentCode, sickConfig.ClassName, roles.UserName, config, miConfig.Url, miConfig.AccessKey, "") saveLog(result, requestLog, "2203", "上传就诊信息") var respJSON2 map[string]interface{} if err := json.Unmarshal([]byte(string(result)), &respJSON2); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } userJSONBytes2, _ := json.Marshal(respJSON2) if err := json.Unmarshal(userJSONBytes2, &res2); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "341203" { data := make(map[string]interface{}) client := &http.Client{} data["psn_no"] = his.PsnNo data["mdtrt_id"] = his.Number data["operator"] = roles.UserName data["department"] = department.Name data["org_name"] = miConfig.OrgName var med_type string if his.Insutype == "390" { if reg_type == 992102 { med_type = "992102" data["sick_code"] = "ZDZ940" data["sick_name"] = "慢性肾衰竭" } if reg_type == 140104 { med_type = "140104" data["sick_code"] = sickConfig.CountryCode data["sick_name"] = sickConfig.ClassName } if reg_type == 14 { med_type = "140104" data["sick_code"] = sickConfig.CountryCode data["sick_name"] = sickConfig.ClassName } } else if his.Insutype == "310" { if reg_type == 992102 { med_type = "992102" data["sick_code"] = "ZDZ940" data["sick_name"] = "慢性肾衰竭" } if reg_type == 140104 { med_type = "140104" data["sick_code"] = sickConfig.CountryCode data["sick_name"] = sickConfig.ClassName } if reg_type == 14 { med_type = "14" data["sick_code"] = sickConfig.CountryCode data["sick_name"] = sickConfig.ClassName } } data["med_type"] = med_type data["doctor_number"] = doctor_info.DoctorNumber data["doctor_name"] = doctor_info.UserName data["fixmedins_code"] = miConfig.Code data["insuplc_admdvs"] = his.InsuplcAdmdvs data["mdtrtarea_admvs"] = miConfig.MdtrtareaAdmvs data["secret_key"] = miConfig.SecretKey data["begin_time"] = begin_time data["dept"] = strconv.FormatInt(department.ID, 10) data["config"] = config data["url"] = miConfig.Url data["ak"] = miConfig.AccessKey data["cainfo"] = miConfig.Cainfo bytesData, _ := json.Marshal(data) var req *http.Request req, _ = http.NewRequest("POST", miConfig.SecretKey+"ahyb/2203", 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 } status := respJSON["data"].(map[string]interface{})["status"].(string) if status == "0" { err_msg := respJSON["data"].(map[string]interface{})["msg"].(string) c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": err_msg, }) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) userJSONBytes, _ := json.Marshal(respJSON) fmt.Println("log") fmt.Println(string(userJSONBytes)) if err := json.Unmarshal(userJSONBytes, &res2); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "340699" { data := make(map[string]interface{}) client := &http.Client{} data["psn_no"] = his.PsnNo data["mdtrt_id"] = his.Number data["operator"] = roles.UserName data["department"] = department.Name data["org_name"] = miConfig.OrgName var med_type string if his.Insutype == "390" { if reg_type == 992102 { med_type = "992102" data["sick_code"] = sickConfig.CountryCode data["sick_name"] = sickConfig.ClassName } if reg_type == 140104 { med_type = "140104" data["sick_code"] = sickConfig.CountryCode data["sick_name"] = sickConfig.ClassName } if reg_type == 140201 { med_type = "140201" data["sick_code"] = sickConfig.CountryCode data["sick_name"] = sickConfig.ClassName } if reg_type == 14 { med_type = "14" data["sick_code"] = sickConfig.CountryCode data["sick_name"] = sickConfig.ClassName } } else if his.Insutype == "310" { if reg_type == 992102 { med_type = "992102" data["sick_code"] = sickConfig.CountryCode data["sick_name"] = sickConfig.ClassName } if reg_type == 140104 { med_type = "140104" data["sick_code"] = sickConfig.CountryCode data["sick_name"] = sickConfig.ClassName } if reg_type == 140201 { med_type = "140201" data["sick_code"] = sickConfig.CountryCode data["sick_name"] = sickConfig.ClassName } if reg_type == 14 { med_type = "14" data["sick_code"] = sickConfig.CountryCode data["sick_name"] = sickConfig.ClassName } } data["med_type"] = med_type data["doctor_number"] = doctor_info.DoctorNumber data["doctor_name"] = doctor_info.UserName data["fixmedins_code"] = miConfig.Code data["insuplc_admdvs"] = his.InsuplcAdmdvs data["mdtrtarea_admvs"] = miConfig.MdtrtareaAdmvs data["secret_key"] = miConfig.SecretKey data["begin_time"] = begin_time data["dept"] = strconv.FormatInt(department.ID, 10) data["config"] = config data["url"] = miConfig.Url data["ak"] = miConfig.AccessKey data["cainfo"] = miConfig.Cainfo bytesData, _ := json.Marshal(data) var req *http.Request req, _ = http.NewRequest("POST", miConfig.SecretKey+"ahyb/2203", 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 } status := respJSON["data"].(map[string]interface{})["status"].(string) if status == "0" { err_msg := respJSON["data"].(map[string]interface{})["msg"].(string) c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": err_msg, }) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) userJSONBytes, _ := json.Marshal(respJSON) fmt.Println("log") fmt.Println(string(userJSONBytes)) if err := json.Unmarshal(userJSONBytes, &res2); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "430800" { var result string var requestLog string result, requestLog = service.Hnyb2203A(his.PsnNo, his.Number, doctor_info.UserName, department.Name, miConfig.OrgName, strconv.FormatInt(reg_type, 10), doctor_info.DoctorNumber, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, sickConfig.ContentCode, sickConfig.ClassName, roles.UserName, config, miConfig.Url, miConfig.AccessKey, "") saveLog(result, requestLog, "2203", "上传就诊信息") var respJSON2 map[string]interface{} if err := json.Unmarshal([]byte(string(result)), &respJSON2); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } userJSONBytes2, _ := json.Marshal(respJSON2) if err := json.Unmarshal(userJSONBytes2, &res2); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "441799" { data := make(map[string]interface{}) client := &http.Client{} data["psn_no"] = his.PsnNo data["mdtrt_id"] = his.Number data["doctor"] = roles.UserName data["department"] = department.Name data["org_name"] = miConfig.OrgName data["med_type"] = strconv.FormatInt(reg_type, 10) data["doctor_id"] = doctor_info.DoctorNumber data["fixmedins_code"] = miConfig.Code data["insuplc_admdvs"] = his.InsuplcAdmdvs data["mdtrtarea_admvs"] = miConfig.MdtrtareaAdmvs data["secret_key"] = miConfig.SecretKey data["sick_code"] = sickConfig.CountryCode data["sick_name"] = sickConfig.ClassName data["begin_time"] = begin_time data["new_doctor_name"] = doctor_info.UserName data["dept"] = strconv.FormatInt(department.ID, 10) data["config"] = config bytesData, _ := json.Marshal(data) var req *http.Request req, _ = http.NewRequest("POST", miConfig.Url+"gdyb/2203", bytes.NewReader(bytesData)) resp, _ := client.Do(req) defer resp.Body.Close() body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) userJSONBytes, _ := json.Marshal(respJSON) fmt.Println("log") fmt.Println(string(userJSONBytes)) if err := json.Unmarshal(userJSONBytes, &res2); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else { var result string var requestLog string if miConfig.MdtrtareaAdmvs == "440781" { // result, requestLog = service.Gdyb2203A(his.PsnNo, his.Number, doctor_info.UserName, department.Name, miConfig.OrgName, strconv.FormatInt(reg_type, 10), doctor_info.DoctorNumber, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, sickConfig.ContentCode, sickConfig.ClassName, roles.UserName, config, begin_time) } else { if miConfig.Code == "H15049901371" { //赤峰地区国家医保医疗类别 //职工透析:医疗类别选特殊情况门诊990502 //居民定额血透门慢: 医疗类别选门诊慢病140104 var med_type string if his.Insutype == "390" { if reg_type == 14 { med_type = "9933" } else if reg_type == 11 { med_type = "11" } } else if his.Insutype == "310" { if reg_type == 14 { med_type = "990502" } else if reg_type == 11 { med_type = "11" } } result, requestLog = service.Gdyb2203A(his.PsnNo, his.Number, doctor_info.UserName, department.Name, miConfig.OrgName, med_type, doctor_info.DoctorNumber, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, sickConfig.ContentCode, sickConfig.ClassName, roles.UserName, config, begin_time) } else { result, requestLog = service.Gdyb2203(his.PsnNo, his.Number, doctor_info.UserName, department.Name, miConfig.OrgName, strconv.FormatInt(reg_type, 10), doctor_info.DoctorNumber, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, sickConfig.ContentCode, sickConfig.ClassName, roles.UserName, config, begin_time, doctor_info.UserName, admin_user_id, roles.UserName) } saveLog(result, requestLog, "2203", "上传就诊信息") var respJSON2 map[string]interface{} if err := json.Unmarshal([]byte(string(result)), &respJSON2); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } userJSONBytes2, _ := json.Marshal(respJSON2) if miConfig.Code == "H15049901371" { if err := json.Unmarshal(userJSONBytes2, &resSix10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res2.InfRefmsgid = resSix10265.InfRefmsgid res2.Output = resSix10265.Output res2.ErrMsg = resSix10265.ErrMsg res2.Cainfo = resSix10265.Cainfo res2.WarnMsg = resSix10265.WarnMsg infocode, _ := strconv.ParseInt(resSix10265.Infcode, 10, 64) res2.Infcode = infocode } else { if strings.Contains(his.InsuplcAdmdvs, "4401") { if err := json.Unmarshal(userJSONBytes2, &res3); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res2.Infcode = res3.Infcode } else { if err := json.Unmarshal(userJSONBytes2, &res2); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } } } } if res2.Infcode == -1 { adminUser := c.GetAdminUserInfo() errlog := &models.HisOrderError{ UserOrgId: adminUser.CurrentOrgId, Ctime: time.Now().Unix(), Mtime: time.Now().Unix(), ErrMsg: res2.ErrMsg, Status: 1, PatientId: id, RecordTime: recordDateTime, Stage: 3, } service.CreateErrMsgLog(errlog) c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res2.ErrMsg, }) return } if res2.Infcode != 0 { adminUser := c.GetAdminUserInfo() errlog := &models.HisOrderError{ UserOrgId: adminUser.CurrentOrgId, Ctime: time.Now().Unix(), Mtime: time.Now().Unix(), ErrMsg: res2.ErrMsg, Status: 1, PatientId: id, RecordTime: recordDateTime, Stage: 3, } service.CreateErrMsgLog(errlog) c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res2.ErrMsg, }) return } else { his.Diagnosis = diagnosis_id his.SickType = sickConfig.ID his.PType = fmt.Sprintf("%d", reg_type) service.UpdateHisPatientThree(&his) data := make(map[string]interface{}) if settle_accounts_type == 1 { //日结 if reg_type == 11 || reg_type == 1111 || reg_type == 1112 { prescriptions, _ = service.GetPrescriptionByIds(ids_arr, adminUser.CurrentOrgId) } else { prescriptions, _ = service.GetNewHisPrescription(adminUser.CurrentOrgId, his_patient_id, recordDateTime, strconv.Itoa(int(reg_type))) } data["pre"] = prescriptions } 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.GetMonthHisPrescriptionTwo(adminUser.CurrentOrgId, id, recordStartTime, recordEndTime, reg_type) data["pre"] = prescriptions } client := &http.Client{} data["psn_no"] = his.PsnNo data["mdtrt_id"] = his.Number data["chrg_bchno"] = new_chrg_bchno data["org_name"] = miConfig.OrgName data["doctor"] = doctor_info.UserName data["doctor_id"] = doctor_info.DoctorNumber data["dept"] = department.Name data["fixmedins_code"] = miConfig.Code data["opter"] = roles.UserName data["dept_code"] = department.Number data["insuplc_admdvs"] = his.InsuplcAdmdvs data["mdtrtarea_admvs"] = miConfig.MdtrtareaAdmvs data["secret_key"] = miConfig.SecretKey data["balance_accounts_type"] = strconv.FormatInt(his.BalanceAccountsType, 10) data["url"] = miConfig.Url data["ak"] = miConfig.AccessKey data["new_doctor_name"] = patientPrescription.Doctor if his.Insutype == "390" { if reg_type == 992102 { data["diag_code"] = "ZDZ940" } if reg_type == 140104 { data["diag_code"] = sickConfig.CountryCode } if reg_type == 140201 { data["diag_code"] = sickConfig.CountryCode } if reg_type == 14 { data["diag_code"] = sickConfig.CountryCode } } else if his.Insutype == "310" { if miConfig.MdtrtareaAdmvs == "341203" { if reg_type == 992102 { data["diag_code"] = "ZDZ940" } if reg_type != 992102 { data["diag_code"] = sickConfig.CountryCode } } else { data["diag_code"] = sickConfig.CountryCode } } data["cainfo"] = miConfig.Cainfo data["opter"] = roles.UserName var ids []int64 for _, item := range prescriptions { ids = append(ids, item.ID) } config, _ := service.GetMedicalInsuranceConfig(adminUser.CurrentOrgId) if config.IsOpen == 1 { //对接了医保,走医保流程 var res ResultFour var resFour10265 ResultFour10265 if miConfig.MdtrtareaAdmvs == "421300" { bytesData, _ := json.Marshal(data) req, _ := http.NewRequest("POST", "http://192.168.124.13:9532/"+"hbyb/2204", bytes.NewReader(bytesData)) resp, _ := client.Do(req) defer resp.Body.Close() body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) userJSONBytes, _ := json.Marshal(respJSON) fmt.Println("log") fmt.Println(string(userJSONBytes)) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "420200" { bytesData, _ := json.Marshal(data) req, _ := http.NewRequest("POST", "http://192.168.0.197:9532/"+"hbyb/2204", bytes.NewReader(bytesData)) resp, _ := client.Do(req) defer resp.Body.Close() body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) userJSONBytes, _ := json.Marshal(respJSON) fmt.Println("log") fmt.Println(string(userJSONBytes)) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "420902" { bytesData, _ := json.Marshal(data) req, _ := http.NewRequest("POST", miConfig.Url+"hbyb/2204", bytes.NewReader(bytesData)) resp, _ := client.Do(req) defer resp.Body.Close() body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) userJSONBytes, _ := json.Marshal(respJSON) fmt.Println("log") fmt.Println(string(userJSONBytes)) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "421182" { bytesData, _ := json.Marshal(data) req, _ := http.NewRequest("POST", miConfig.Url+"hbyb/2204", bytes.NewReader(bytesData)) resp, _ := client.Do(req) defer resp.Body.Close() body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) userJSONBytes, _ := json.Marshal(respJSON) fmt.Println("log") fmt.Println(string(userJSONBytes)) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "320921" || miConfig.MdtrtareaAdmvs == "320982" { result3101 := Check3101(c, id, his_patient_id, admin_user_id, "2", record_time, prescriptions) if result3101.Infcode == "0" { if len(result3101.Output.Result) > 0 { var errMsgs []string for _, item := range result3101.Output.Result { errMsgs = append(errMsgs, item.VolaCont) } c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": errMsgs, }) return } else { if miConfig.MdtrtareaAdmvs == "320921" { data["doctor_id"] = "D320923012139" } else { data["doctor_id"] = "D371621008686" } bytesData, _ := json.Marshal(data) var req *http.Request if miConfig.MdtrtareaAdmvs == "320921" { req, _ = http.NewRequest("POST", "http://192.168.2.3:9532/"+"jsyb/2204", bytes.NewReader(bytesData)) } else { req, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/2204", bytes.NewReader(bytesData)) } resp, _ := client.Do(req) defer resp.Body.Close() body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) userJSONBytes, _ := json.Marshal(respJSON) fmt.Println("log") fmt.Println(string(userJSONBytes)) if err := json.Unmarshal(userJSONBytes, &resFour10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res.InfRefmsgid = resFour10265.InfRefmsgid res.Output = resFour10265.Output res.ErrMsg = resFour10265.ErrMsg res.Cainfo = resFour10265.Cainfo res.WarnMsg = resFour10265.WarnMsg infocode, _ := strconv.ParseInt(resFour10265.Infcode, 10, 64) res.Infcode = infocode } } } else if miConfig.MdtrtareaAdmvs == "150499" { var pagesize int = 5 var start int = 1 var stop int var pagecount int var curpage int data["doctor_id"] = doctor_info.DoctorNumber var res2 ResultFour //var result res. //总页数,向上取整,注意除之前要先转换类型为float64 pagecount = int(math.Ceil(float64(len(prescriptions)) / float64(pagesize))) for curpage = 1; curpage <= pagecount; curpage++ { if curpage == 1 { start = 1 } else { start = (curpage-1)*pagesize + 1 } stop = curpage * pagesize if stop > len(prescriptions) { stop = len(prescriptions) } //var requestLog string data["pre"] = prescriptions[start-1 : stop] fmt.Println(data["pre"]) bytesData, _ := json.Marshal(data) var req *http.Request req, _ = http.NewRequest("POST", "http://172.16.13.254:9532/"+"nmyb/2204", bytes.NewReader(bytesData)) resp, _ := client.Do(req) defer resp.Body.Close() body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) userJSONBytes, _ := json.Marshal(respJSON) fmt.Println("log") fmt.Println(string(userJSONBytes)) if err := json.Unmarshal(userJSONBytes, &resFour10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res.InfRefmsgid = resFour10265.InfRefmsgid res.Output = resFour10265.Output res.ErrMsg = resFour10265.ErrMsg res.Cainfo = resFour10265.Cainfo res.WarnMsg = resFour10265.WarnMsg infocode, _ := strconv.ParseInt(resFour10265.Infcode, 10, 64) res.Infcode = infocode if infocode == 0 { res2.Output.Result = append(res2.Output.Result, res.Output.Result...) } else { isSuccess = false res2.ErrMsg = res2.ErrMsg + "," + res.ErrMsg res.Infcode = -1 res.ErrMsg = resFour10265.ErrMsg errlog := &models.HisOrderError{ UserOrgId: adminUser.CurrentOrgId, Ctime: time.Now().Unix(), Mtime: time.Now().Unix(), Number: chrg_bchno, ErrMsg: "", Status: 1, PatientId: id, RecordTime: recordDateTime, Stage: 4, } service.CreateErrMsgLog(errlog) } } if isSuccess { res.Infcode = 0 res.Output.Result = res2.Output.Result } else { order := &models.HisOrder{ UserOrgId: adminUser.CurrentOrgId, HisPatientId: his.ID, PatientId: his.PatientId, SettleAccountsDate: recordDateTime, Ctime: time.Now().Unix(), Mtime: time.Now().Unix(), MdtrtId: his.Number, PsnNo: his.PsnNo, MedType: strconv.FormatInt(reg_type, 10), Status: 1, Number: chrg_bchno, Infcode: res.Infcode, WarnMsg: res.WarnMsg, Cainfo: res.Cainfo, ErrMsg: res.ErrMsg, RespondTime: res.RefmsgTime, InfRefmsgid: res.InfRefmsgid, OrderStatus: 1, IsMedicineInsurance: 1, SettleType: settle_accounts_type, SettleStartTime: start_time, SettleEndTime: end_time, Creator: roles.AdminUserId, Modify: roles.AdminUserId, PType: 2, Diagnosis: diagnosis_id, } err = service.CreateOrder(order) if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeCreatePreOrderException) return } c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res2.ErrMsg, }) return } } else if miConfig.MdtrtareaAdmvs == "350500" { result, request_log, _ := service.FJyb2204(his.PsnNo, his.Number, prescriptions, chrg_bchno, miConfig.OrgName, roles.UserName, strconv.FormatInt(patientPrescription.Departments, 10), miConfig.Code, department.Number, strconv.FormatInt(roles.AdminUserId, 10), his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, strconv.FormatInt(his.BalanceAccountsType, 10), roles.UserName, miConfig.Url, miConfig.Code, miConfig.AppSecret, miConfig.SignKey, miConfig.EncKey, sickConfig.CountryCode, doctor_info.DoctorNumber) var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } saveLog(result, request_log, "2204", "上传费用明细") userJSONBytes, _ := json.Marshal(dat) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "360302" { result, request_log := service.Jxyb2204(his.PsnNo, his.Number, prescriptions, chrg_bchno, miConfig.OrgName, roles.UserName, data["dept"].(string), data["fixmedins_code"].(string), data["dept_code"].(string), data["doctor_id"].(string), his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, data["balance_accounts_type"].(string), sickConfig.CountryCode, miConfig.Url, miConfig.AccessKey, doctor_info.UserName, "", "") var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } saveLog(result, request_log, "2204", "上传费用明细") userJSONBytes, _ := json.Marshal(dat) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "361025" { result, request_log := service.Jxyb2204(his.PsnNo, his.Number, prescriptions, chrg_bchno, miConfig.OrgName, roles.UserName, data["dept"].(string), data["fixmedins_code"].(string), data["dept_code"].(string), data["doctor_id"].(string), his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, data["balance_accounts_type"].(string), sickConfig.CountryCode, miConfig.Url, miConfig.AccessKey, doctor_info.UserName, "", "") var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } saveLog(result, request_log, "2204", "上传费用明细") userJSONBytes, _ := json.Marshal(dat) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "360100" { result, request_log := service.Jxyb2204(his.PsnNo, his.Number, prescriptions, chrg_bchno, miConfig.OrgName, roles.UserName, data["dept"].(string), data["fixmedins_code"].(string), data["dept_code"].(string), data["doctor_id"].(string), his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, data["balance_accounts_type"].(string), sickConfig.CountryCode, miConfig.Url, miConfig.AccessKey, doctor_info.UserName, "", "") var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } saveLog(result, request_log, "2204", "上传费用明细") userJSONBytes, _ := json.Marshal(dat) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "341203" { bytesData, _ := json.Marshal(data) var req *http.Request req, _ = http.NewRequest("POST", miConfig.SecretKey+"ahyb/2204", 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 } status := respJSON["data"].(map[string]interface{})["status"].(string) if status == "0" { err_msg := respJSON["data"].(map[string]interface{})["msg"].(string) c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": err_msg, }) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) userJSONBytes, _ := json.Marshal(respJSON) fmt.Println("log") fmt.Println(string(userJSONBytes)) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "340699" { bytesData, _ := json.Marshal(data) var req *http.Request req, _ = http.NewRequest("POST", miConfig.SecretKey+"ahyb/2204", 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 } status := respJSON["data"].(map[string]interface{})["status"].(string) if status == "0" { err_msg := respJSON["data"].(map[string]interface{})["msg"].(string) c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": err_msg, }) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) userJSONBytes, _ := json.Marshal(respJSON) fmt.Println("log") fmt.Println(string(userJSONBytes)) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "430800" { result, request_log := service.Hnyb2204(his.PsnNo, his.Number, prescriptions, chrg_bchno, miConfig.OrgName, roles.UserName, data["dept"].(string), data["fixmedins_code"].(string), data["dept_code"].(string), data["doctor_id"].(string), his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, data["balance_accounts_type"].(string), sickConfig.CountryCode, miConfig.Url, miConfig.AccessKey, doctor_info.UserName, "", "") var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } saveLog(result, request_log, "2204", "上传费用明细") userJSONBytes, _ := json.Marshal(dat) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "441799" { bytesData, _ := json.Marshal(data) req, _ := http.NewRequest("POST", miConfig.Url+"gdyb/2204", bytes.NewReader(bytesData)) resp, _ := client.Do(req) defer resp.Body.Close() body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) userJSONBytes, _ := json.Marshal(respJSON) fmt.Println("log") fmt.Println(string(userJSONBytes)) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else { if miConfig.MdtrtareaAdmvs == "441202" { result3101 := Checkgd3101(c, id, his_patient_id, admin_user_id, "2", record_time, prescriptions) if result3101.Infcode == 0 { if len(result3101.Output.Result) > 0 { var errMsgs []string for _, item := range result3101.Output.Result { errMsgs = append(errMsgs, item.VolaCont) } c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": errMsgs, }) return } else { result, request_log := service.Gdyb2204(his.PsnNo, his.Number, prescriptions, chrg_bchno, miConfig.OrgName, roles.UserName, data["dept"].(string), data["fixmedins_code"].(string), data["dept_code"].(string), data["doctor_id"].(string), his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, data["balance_accounts_type"].(string), patientPrescription.DoctorId, sickConfig.CountryCode, admin_user_id) var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } saveLog(result, request_log, "2204", "上传费用明细") userJSONBytes, _ := json.Marshal(dat) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } } else { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": result3101.ErrMsg, }) return } } else if miConfig.MdtrtareaAdmvs == "440205" { result3101 := Checkgd3101(c, id, his_patient_id, admin_user_id, "2", record_time, prescriptions) if result3101.Infcode == 0 { if len(result3101.Output.Result) > 0 { var errMsgs []string for _, item := range result3101.Output.Result { errMsgs = append(errMsgs, item.VolaCont) } c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": errMsgs, }) return } else { result, request_log := service.Gdyb2204(his.PsnNo, his.Number, prescriptions, chrg_bchno, miConfig.OrgName, roles.UserName, data["dept"].(string), data["fixmedins_code"].(string), data["dept_code"].(string), data["doctor_id"].(string), his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, data["balance_accounts_type"].(string), patientPrescription.DoctorId, sickConfig.CountryCode, admin_user_id) var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } saveLog(result, request_log, "2204", "上传费用明细") userJSONBytes, _ := json.Marshal(dat) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } } else { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": result3101.ErrMsg, }) return } } else { if miConfig.Code == "H15049901371" { result, request_log := service.Gdyb2204(his.PsnNo, his.Number, prescriptions, chrg_bchno, miConfig.OrgName, roles.UserName, data["dept"].(string), data["fixmedins_code"].(string), data["dept_code"].(string), data["doctor_id"].(string), his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, data["balance_accounts_type"].(string), patientPrescription.DoctorId, sickConfig.CountryCode, admin_user_id) var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } saveLog(result, request_log, "2204", "上传费用明细") userJSONBytes, _ := json.Marshal(dat) if err := json.Unmarshal(userJSONBytes, &resFour10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res.InfRefmsgid = resFour10265.InfRefmsgid res.Output = resFour10265.Output res.ErrMsg = resFour10265.ErrMsg res.Cainfo = resFour10265.Cainfo res.WarnMsg = resFour10265.WarnMsg infocode, _ := strconv.ParseInt(resFour10265.Infcode, 10, 64) res.Infcode = infocode } else { if miConfig.Code == "H44030903432" || miConfig.Code == "H44030501364" || miConfig.Code == "H44030500255" { result3101 := Checkgd3101(c, id, his_patient_id, admin_user_id, "2", record_time, prescriptions) if result3101.Infcode == 0 { if len(result3101.Output.Result) > 0 { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "failed_type": 100, "warm_type": 1, "msg": result3101.Output.Result, }) return } else { result, request_log := service.Gdyb2204(his.PsnNo, his.Number, prescriptions, chrg_bchno, miConfig.OrgName, roles.UserName, data["dept"].(string), data["fixmedins_code"].(string), data["dept_code"].(string), data["doctor_id"].(string), his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, data["balance_accounts_type"].(string), patientPrescription.DoctorId, sickConfig.CountryCode, admin_user_id) var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } saveLog(result, request_log, "2204", "上传费用明细") userJSONBytes, _ := json.Marshal(dat) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } } else { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": result3101.ErrMsg, }) return } } else { result, request_log := service.Gdyb2204(his.PsnNo, his.Number, prescriptions, chrg_bchno, miConfig.OrgName, roles.UserName, data["dept"].(string), data["fixmedins_code"].(string), data["dept_code"].(string), data["doctor_id"].(string), his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, data["balance_accounts_type"].(string), patientPrescription.DoctorId, sickConfig.CountryCode, admin_user_id) var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } saveLog(result, request_log, "2204", "上传费用明细") userJSONBytes, _ := json.Marshal(dat) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } } } } var total_two float64 if res.Infcode == -1 { errlog := &models.HisOrderError{ UserOrgId: adminUser.CurrentOrgId, Ctime: time.Now().Unix(), Mtime: time.Now().Unix(), Number: chrg_bchno, ErrMsg: res.ErrMsg, Status: 1, PatientId: id, RecordTime: recordDateTime, Stage: 4, } service.CreateErrMsgLog(errlog) c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res.ErrMsg, }) return } if res.Infcode == 0 { order := &models.HisOrder{ UserOrgId: adminUser.CurrentOrgId, HisPatientId: his.ID, PatientId: his.PatientId, SettleAccountsDate: recordDateTime, Ctime: time.Now().Unix(), Mtime: time.Now().Unix(), MdtrtId: his.Number, PsnNo: his.PsnNo, MedType: strconv.FormatInt(reg_type, 10), Status: 1, Number: chrg_bchno, Infcode: res.Infcode, WarnMsg: res.WarnMsg, Cainfo: res.Cainfo, ErrMsg: res.ErrMsg, RespondTime: res.RefmsgTime, InfRefmsgid: res.InfRefmsgid, OrderStatus: 1, IsMedicineInsurance: 1, SettleType: settle_accounts_type, SettleStartTime: start_time, SettleEndTime: end_time, Creator: roles.AdminUserId, Modify: roles.AdminUserId, PType: 2, Diagnosis: diagnosis_id, } err = service.CreateOrder(order) if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeCreatePreOrderException) return } for _, item := range res.Output.Result { temp := strings.Split(item.FeedetlSn, "-") var advice_id int64 = 0 var project_id int64 = 0 var types int64 = 0 id, _ := strconv.ParseInt(temp[2], 10, 64) types, _ = strconv.ParseInt(temp[1], 10, 64) if temp[1] == "1" { advice_id = id project_id = 0 } else if temp[1] == "2" { advice_id = 0 project_id = id } total_two = total_two + item.DetItemFeeSumamt info := &models.HisOrderInfo{ OrderNumber: order.Number, FeedetlSn: item.FeedetlSn, UploadDate: time.Now().Unix(), AdviceId: advice_id, DetItemFeeSumamt: item.DetItemFeeSumamt, Cnt: item.Cnt, Pric: float64(item.Pric), PatientId: his.PatientId, PricUplmtAmt: item.PricUplmtAmt, SelfpayProp: item.SelfpayProp, FulamtOwnpayAmt: item.FulamtOwnpayAmt, OverlmtAmt: item.OverlmtAmt, PreselfpayAmt: item.PreselfpayAmt, BasMednFlag: item.BasMednFlag, MedChrgitmType: item.MedChrgitmType, HiNegoDrugFlag: item.HiNegoDrugFlag, Status: 1, Memo: item.Memo, Mtime: time.Now().Unix(), InscpScpAmt: item.InscpScpAmt, DrtReimFlag: item.DrtReimFlag, Ctime: time.Now().Unix(), ListSpItemFlag: item.ListSpItemFlag, ChldMedcFlag: item.ChldMedcFlag, LmtUsedFlag: item.LmtUsedFlag, ChrgitmLv: item.ChrgitmLv, UserOrgId: adminUser.CurrentOrgId, HisPatientId: his.ID, OrderId: order.ID, ProjectId: project_id, Type: types, } service.CreateOrderInfo(info) } service.UpDatePrescriptionNumber(adminUser.CurrentOrgId, ids, chrg_bchno) service.UpDateHisPrescriptionInfoNumber(adminUser.CurrentOrgId, his_patient_id, chrg_bchno, recordDateTime) var total float64 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) if res.Infcode == 0 { var rf []*ResultFive json.Unmarshal([]byte(his.Iinfo), &rf) chrg_bchno := chrg_bchno cert_no := his.Certno var insutypes []string var insutype string var is390 int = 0 var is310 int = 0 for _, item := range rf { if (item.Insutype == "390" && item.PsnInsuStas == "1") || (item.Insutype == "310" && item.PsnInsuStas == "1") { insutypes = append(insutypes, item.Insutype) } } if len(insutypes) == 1 { insutype = insutypes[0] } else { for _, i := range insutypes { if i == "390" { is390 = 1 } if i == "310" { is310 = 1 } } } if is390 == 1 { insutype = "390" } if is310 == 1 { insutype = "310" } if len(insutypes) == 0 { insutype = "390" } if len(insutypes) == 2 { insutype = strconv.FormatInt(his.SocialType, 10) } //insutype = "390" if his.IdCardType == 1 { cert_no = his.MedicalInsuranceNumber } else { cert_no = his.Certno } var res ResultSeven var ahres ResultSevenAH var resSeven10265 ResultSeven10265 var resSeven10265Two ResultSeven10265Two var gzresSeven10265Two GZResultSeven10265Two if miConfig.MdtrtareaAdmvs == "421300" { formattedString := strconv.FormatFloat(total, 'f', 2, 64) api := "http://192.168.124.4:9532/" + "hbyb/2206?psn_no=" + his.PsnNo + "&mdtrt_id=" + his.Number + "&chrg_bchno=" + chrg_bchno + "&org_name=" + miConfig.OrgName + "&doctor=" + roles.UserName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + his.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&id_card_type=" + strconv.FormatInt(his.IdCardType, 10) + "&certificates=" + strconv.FormatInt(his.IdType, 10) + "&cert_no=" + cert_no + "&insutype=" + insutype + "&total=" + formattedString + "&med_type=" + strconv.FormatInt(reg_type, 10) resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) result, _ := json.Marshal(respJSON) fmt.Println("log") fmt.Println(string(result)) if err := json.Unmarshal([]byte(result), &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "420200" { if reg_type == 11 && his.Insutype == "390" { reg_type = 110104 } api := "http://192.168.0.197:9532/" + "hbyb/2206?psn_no=" + his.PsnNo + "&mdtrt_id=" + his.Number + "&chrg_bchno=" + chrg_bchno + "&org_name=" + miConfig.OrgName + "&doctor=" + roles.UserName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + his.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&id_card_type=" + strconv.FormatInt(his.IdCardType, 10) + "&certificates=" + strconv.FormatInt(his.IdType, 10) + "&cert_no=" + cert_no + "&insutype=" + insutype + "&total=" + allTotal + "&med_type=" + strconv.FormatInt(reg_type, 10) resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) result, _ := json.Marshal(respJSON) fmt.Println("log") fmt.Println(string(result)) if err := json.Unmarshal([]byte(result), &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "420902" { if reg_type == 11 && his.Insutype == "390" { reg_type = 110104 } api := miConfig.Url + "hbyb/2206?psn_no=" + his.PsnNo + "&mdtrt_id=" + his.Number + "&chrg_bchno=" + chrg_bchno + "&org_name=" + miConfig.OrgName + "&doctor=" + roles.UserName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + his.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&id_card_type=" + strconv.FormatInt(his.IdCardType, 10) + "&certificates=" + strconv.FormatInt(his.IdType, 10) + "&cert_no=" + cert_no + "&insutype=" + insutype + "&total=" + allTotal + "&med_type=" + strconv.FormatInt(reg_type, 10) resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) result, _ := json.Marshal(respJSON) fmt.Println("log") fmt.Println(string(result)) if err := json.Unmarshal([]byte(result), &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "421182" { if reg_type == 11 && his.Insutype == "390" { reg_type = 110104 } api := miConfig.Url + "hbyb/2206?psn_no=" + his.PsnNo + "&mdtrt_id=" + his.Number + "&chrg_bchno=" + chrg_bchno + "&org_name=" + miConfig.OrgName + "&doctor=" + roles.UserName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + his.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&id_card_type=" + strconv.FormatInt(his.IdCardType, 10) + "&certificates=" + strconv.FormatInt(his.IdType, 10) + "&cert_no=" + cert_no + "&insutype=" + insutype + "&total=" + allTotal + "&med_type=" + strconv.FormatInt(reg_type, 10) resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) result, _ := json.Marshal(respJSON) fmt.Println("log") fmt.Println(string(result)) if err := json.Unmarshal([]byte(result), &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "320921" || miConfig.MdtrtareaAdmvs == "320982" { result3101 := Check3102(c, id, his_patient_id, admin_user_id, "6", order.ID) if result3101.Infcode == "0" { if len(result3101.Output.Result) > 0 { var errMsgs []string for _, item := range result3101.Output.Result { errMsgs = append(errMsgs, item.VolaCont) } c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": errMsgs, }) return } else { psn_info, _ := service.GetPsnByPatientId(his.PatientId) if his.IdCardType != 4 { psn_info.VerifyNumber = strings.Replace(psn_info.VerifyNumber, "+", "%2B", -1) bas := strings.Split(psn_info.CardInfo, "|") if his.IdCardType == 1 { cert_no = bas[2] } else { cert_no = bas[1] } } else { cert_no = his.Certno } //江苏地区国家医保医疗类别 //职工透析:医疗类别选特殊情况门诊9933 //居民血透门慢: 医疗类别选门诊慢病1402 //var med_type string //if his.Insutype == "310" { // if reg_type == 14 { // med_type = "9933" // } else if reg_type == 11 { // med_type = "11" // // } //} else if his.Insutype == "390" { // if reg_type == 14 { // med_type = "1402" // } else if reg_type == 11 { // med_type = "11" // } //} var api string if miConfig.MdtrtareaAdmvs == "320921" { api = "http://192.168.2.3:9532/" + "jsyb/2206?psn_no=" + his.PsnNo + "&mdtrt_id=" + his.Number + "&chrg_bchno=" + chrg_bchno + "&org_name=" + miConfig.OrgName + "&doctor=" + roles.UserName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + his.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&id_card_type=" + strconv.FormatInt(his.IdCardType, 10) + "&certificates=" + strconv.FormatInt(his.IdType, 10) + "&cert_no=" + cert_no + "&insutype=" + insutype + "&total=" + allTotal + "&med_type=" + strconv.FormatInt(reg_type, 10) + "&verify_number=" + psn_info.VerifyNumber + "&url=" + miConfig.Url + "&ak=" + miConfig.AccessKey + "&cainfo=" + miConfig.Cainfo + "&mdtrt_grp_type=" + his.MdtrtGrpType //req, _ = http.NewRequest("POST", "http://192.168.2.110:9532/"+"jsyb/2204", bytes.NewReader(bytesData)) } else { //req, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/2204", bytes.NewReader(bytesData)) api = "http://192.168.5.251:9532/" + "jsyb/2206?psn_no=" + his.PsnNo + "&mdtrt_id=" + his.Number + "&chrg_bchno=" + chrg_bchno + "&org_name=" + miConfig.OrgName + "&doctor=" + roles.UserName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + his.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&id_card_type=" + strconv.FormatInt(his.IdCardType, 10) + "&certificates=" + strconv.FormatInt(his.IdType, 10) + "&cert_no=" + cert_no + "&insutype=" + insutype + "&total=" + allTotal + "&med_type=" + strconv.FormatInt(reg_type, 10) + "&verify_number=" + psn_info.VerifyNumber + "&url=" + miConfig.Url + "&ak=" + miConfig.AccessKey + "&cainfo=" + miConfig.Cainfo + "&mdtrt_grp_type=" + his.MdtrtGrpType } resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) result, _ := json.Marshal(respJSON) fmt.Println("log") fmt.Println(string(result)) if strings.Contains(miConfig.MdtrtareaAdmvs, "3209") { if err := json.Unmarshal([]byte(result), &resSeven10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res.InfRefmsgid = resSeven10265.InfRefmsgid res.Output = resSeven10265.Output res.ErrMsg = resSeven10265.ErrMsg res.Cainfo = resSeven10265.Cainfo res.WarnMsg = resSeven10265.WarnMsg infocode, _ := strconv.ParseInt(resSeven10265.Infcode, 10, 64) res.Infcode = infocode } else { if err := json.Unmarshal([]byte(result), &resSeven10265Two); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res.InfRefmsgid = resSeven10265Two.InfRefmsgid //AcctMulaidPay, _ := strconv.ParseFloat(resSeven10265Two.Output.Setlinfo.AcctMulaidPay, 64) //res.Output.Setlinfo.AcctMulaidPay = AcctMulaidPay res.Output.Setlinfo.AcctPay = resSeven10265Two.Output.Setlinfo.AcctPay res.Output.Setlinfo.CvlservPay = resSeven10265Two.Output.Setlinfo.CvlservPay res.Output.Setlinfo.ActPayDedc = resSeven10265Two.Output.Setlinfo.ActPayDedc res.Output.Setlinfo.Age = resSeven10265Two.Output.Setlinfo.Age res.Output.Setlinfo.Balc = resSeven10265Two.Output.Setlinfo.Balc //res.Output.Setlinfo.Brdy = resSeven10265Two.Output.Setlinfo.Brdy res.Output.Setlinfo.Certno = resSeven10265Two.Output.Setlinfo.Certno res.Output.Setlinfo.ClrOptins = resSeven10265Two.Output.Setlinfo.ClrOptins res.Output.Setlinfo.ClrType = resSeven10265Two.Output.Setlinfo.ClrOptins res.Output.Setlinfo.ClrWay = resSeven10265Two.Output.Setlinfo.ClrOptins res.Output.Setlinfo.CvlservFlag = resSeven10265Two.Output.Setlinfo.ClrOptins res.Output.Setlinfo.CvlservPay = resSeven10265Two.Output.Setlinfo.CvlservPay res.Output.Setlinfo.FulamtOwnpayAmt = resSeven10265Two.Output.Setlinfo.FulamtOwnpayAmt res.Output.Setlinfo.FundPaySumamt = resSeven10265Two.Output.Setlinfo.FundPaySumamt res.Output.Setlinfo.Gend = resSeven10265Two.Output.Setlinfo.Gend res.Output.Setlinfo.HifesPay = resSeven10265Two.Output.Setlinfo.HifesPay res.Output.Setlinfo.HifmiPay = resSeven10265Two.Output.Setlinfo.HifmiPay res.Output.Setlinfo.HifpPay = resSeven10265Two.Output.Setlinfo.HifpPay HospPartAmt, _ := strconv.ParseFloat(resSeven10265Two.Output.Setlinfo.HospPartAmt, 64) res.Output.Setlinfo.HospPartAmt = HospPartAmt res.Output.Setlinfo.InscpScpAmt = resSeven10265Two.Output.Setlinfo.InscpScpAmt res.Output.Setlinfo.Insutype = resSeven10265Two.Output.Setlinfo.Insutype res.Output.Setlinfo.MafPay = resSeven10265Two.Output.Setlinfo.MafPay res.Output.Setlinfo.MdtrtCertType = resSeven10265Two.Output.Setlinfo.MdtrtCertType res.Output.Setlinfo.HifobPay = resSeven10265Two.Output.Setlinfo.HifobPay res.Output.Setlinfo.MdtrtID = resSeven10265Two.Output.Setlinfo.MdtrtID res.Output.Setlinfo.MedType = resSeven10265Two.Output.Setlinfo.MedType res.Output.Setlinfo.MedfeeSumamt = resSeven10265Two.Output.Setlinfo.MedfeeSumamt res.Output.Setlinfo.MedinsSetlID = resSeven10265Two.Output.Setlinfo.MedinsSetlID res.Output.Setlinfo.Naty = resSeven10265Two.Output.Setlinfo.Naty res.Output.Setlinfo.OthPay = resSeven10265Two.Output.Setlinfo.OthPay res.Output.Setlinfo.OverlmtSelfpay = resSeven10265Two.Output.Setlinfo.OverlmtSelfpay PoolPropSelfpay, _ := strconv.ParseFloat(resSeven10265Two.Output.Setlinfo.PoolPropSelfpay, 64) res.Output.Setlinfo.PoolPropSelfpay = PoolPropSelfpay res.Output.Setlinfo.PreselfpayAmt = resSeven10265Two.Output.Setlinfo.PreselfpayAmt res.Output.Setlinfo.PsnCashPay = resSeven10265Two.Output.Setlinfo.PsnCashPay res.Output.Setlinfo.PsnCertType = resSeven10265Two.Output.Setlinfo.ClrOptins res.Output.Setlinfo.PsnName = resSeven10265Two.Output.Setlinfo.PsnName res.Output.Setlinfo.PsnNo = resSeven10265Two.Output.Setlinfo.PsnNo res.Output.Setlinfo.PsnPartAmt = resSeven10265Two.Output.Setlinfo.PsnPartAmt res.Output.Setlinfo.PsnType = resSeven10265Two.Output.Setlinfo.PsnType res.Output.Setlinfo.SetlID = resSeven10265Two.Output.Setlinfo.SetlID res.Output.Setlinfo.SetlTime = resSeven10265Two.Output.Setlinfo.SetlTime //res.Output.Setldetail = resSeven10265Two.Output.Setldetail res.ErrMsg = resSeven10265Two.ErrMsg res.Cainfo = resSeven10265Two.Cainfo res.WarnMsg = resSeven10265Two.WarnMsg infocode, _ := strconv.ParseInt(resSeven10265Two.Infcode, 10, 64) res.Infcode = infocode } } } } else if miConfig.MdtrtareaAdmvs == "150499" { psn_info, _ := service.GetPsnByPatientId(id) var verify_number string if psn_info.IdCardType == 4 { verify_number = psn_info.VerifyNumber } else if psn_info.IdCardType == 1 { bas := strings.Split(psn_info.CardInfo, "|") cardNumber := bas[2] verify_number = cardNumber } else { psn_info.IdCardType = 2 verify_number = psn_info.Certno } var api string api = "http://172.16.13.254:9532/" + "nmyb/2206?psn_no=" + his.PsnNo + "&mdtrt_id=" + his.Number + "&chrg_bchno=" + new_chrg_bchno + "&org_name=" + miConfig.OrgName + "&doctor=" + roles.UserName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + his.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&id_card_type=" + strconv.FormatInt(psn_info.IdCardType, 10) + "&certificates=" + strconv.FormatInt(his.IdType, 10) + "&cert_no=" + cert_no + "&insutype=" + insutype + "&total=" + allTotal + "&med_type=" + strconv.FormatInt(reg_type, 10) + "&verify_number=" + verify_number + "&url=" + miConfig.Url + "&ak=" + miConfig.AccessKey + "&cainfo=" + miConfig.Cainfo + "&mdtrt_grp_type=" + his.MdtrtGrpType resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) result, _ := json.Marshal(respJSON) if err := json.Unmarshal([]byte(result), &resSeven10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res.InfRefmsgid = resSeven10265.InfRefmsgid res.Output.Setlinfo.AcctMulaidPay = resSeven10265.Output.Setlinfo.AcctMulaidPay res.Output.Setlinfo.AcctPay = resSeven10265.Output.Setlinfo.AcctPay res.Output.Setlinfo.CvlservPay = resSeven10265.Output.Setlinfo.CvlservPay res.Output.Setlinfo.ActPayDedc = resSeven10265.Output.Setlinfo.ActPayDedc res.Output.Setlinfo.Age = resSeven10265.Output.Setlinfo.Age res.Output.Setlinfo.Balc = resSeven10265.Output.Setlinfo.Balc //res.Output.Setlinfo.Brdy = resSeven10265.Output.Setlinfo.Brdy res.Output.Setlinfo.Certno = resSeven10265.Output.Setlinfo.Certno res.Output.Setlinfo.ClrOptins = resSeven10265.Output.Setlinfo.ClrOptins res.Output.Setlinfo.ClrType = resSeven10265.Output.Setlinfo.ClrOptins res.Output.Setlinfo.ClrWay = resSeven10265.Output.Setlinfo.ClrOptins res.Output.Setlinfo.CvlservFlag = resSeven10265.Output.Setlinfo.ClrOptins res.Output.Setlinfo.CvlservPay = resSeven10265.Output.Setlinfo.CvlservPay res.Output.Setlinfo.FulamtOwnpayAmt = resSeven10265.Output.Setlinfo.FulamtOwnpayAmt res.Output.Setlinfo.FundPaySumamt = resSeven10265.Output.Setlinfo.FundPaySumamt res.Output.Setlinfo.Gend = resSeven10265.Output.Setlinfo.Gend res.Output.Setlinfo.HifesPay = resSeven10265.Output.Setlinfo.HifesPay res.Output.Setlinfo.HifmiPay = resSeven10265.Output.Setlinfo.HifmiPay res.Output.Setlinfo.HifpPay = resSeven10265.Output.Setlinfo.HifpPay //HospPartAmt, _ := strconv.ParseFloat(resSeven10265Two.Output.Setlinfo.HospPartAmt, 64) res.Output.Setlinfo.HospPartAmt = resSeven10265.Output.Setlinfo.HospPartAmt res.Output.Setlinfo.InscpScpAmt = resSeven10265.Output.Setlinfo.InscpScpAmt res.Output.Setlinfo.Insutype = resSeven10265.Output.Setlinfo.Insutype res.Output.Setlinfo.MafPay = resSeven10265.Output.Setlinfo.MafPay res.Output.Setlinfo.MdtrtCertType = resSeven10265.Output.Setlinfo.MdtrtCertType res.Output.Setlinfo.HifobPay = resSeven10265.Output.Setlinfo.HifobPay res.Output.Setlinfo.MdtrtID = resSeven10265.Output.Setlinfo.MdtrtID res.Output.Setlinfo.MedType = resSeven10265.Output.Setlinfo.MedType res.Output.Setlinfo.MedfeeSumamt = resSeven10265.Output.Setlinfo.MedfeeSumamt res.Output.Setlinfo.MedinsSetlID = resSeven10265.Output.Setlinfo.MedinsSetlID res.Output.Setlinfo.Naty = resSeven10265.Output.Setlinfo.Naty res.Output.Setlinfo.OthPay = resSeven10265.Output.Setlinfo.OthPay res.Output.Setlinfo.OverlmtSelfpay = resSeven10265.Output.Setlinfo.OverlmtSelfpay //PoolPropSelfpay, _ := strconv.ParseFloat(resSeven10265Two.Output.Setlinfo.PoolPropSelfpay, 64) res.Output.Setlinfo.PoolPropSelfpay = resSeven10265.Output.Setlinfo.PoolPropSelfpay res.Output.Setlinfo.PreselfpayAmt = resSeven10265.Output.Setlinfo.PreselfpayAmt res.Output.Setlinfo.PsnCashPay = resSeven10265.Output.Setlinfo.PsnCashPay res.Output.Setlinfo.PsnCertType = resSeven10265.Output.Setlinfo.ClrOptins res.Output.Setlinfo.PsnName = resSeven10265.Output.Setlinfo.PsnName res.Output.Setlinfo.PsnNo = resSeven10265.Output.Setlinfo.PsnNo res.Output.Setlinfo.PsnPartAmt = resSeven10265.Output.Setlinfo.PsnPartAmt res.Output.Setlinfo.PsnType = resSeven10265.Output.Setlinfo.PsnType res.Output.Setlinfo.SetlID = resSeven10265.Output.Setlinfo.SetlID res.Output.Setlinfo.SetlTime = resSeven10265.Output.Setlinfo.SetlTime //res.Output.Setldetail = resSeven10265.Output.Setldetail res.ErrMsg = resSeven10265.ErrMsg res.Cainfo = resSeven10265.Cainfo res.WarnMsg = resSeven10265.WarnMsg infocode, _ := strconv.ParseInt(resSeven10265.Infcode, 10, 64) res.Infcode = infocode } else if miConfig.MdtrtareaAdmvs == "350500" { acct_used_flag := "1" psn_info, _ := service.GetPsnByPatientIdTwo(his.PatientId) var result string var request_log string if his.IdCardType == 4 && len(psn_info.VerifyNumber) > 0 { result, request_log, _ = service.FJyb2206ForToken(his.PsnNo, his.Number, chrg_bchno, psn_info.VerifyNumber, insutype, allTotal, miConfig.OrgName, roles.UserName, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, strconv.FormatInt(reg_type, 10), his.IdCardType, 0, 0, 0, 0, his.IdType, miConfig.Url, miConfig.Code, miConfig.AppSecret, miConfig.SignKey, miConfig.EncKey, acct_used_flag) } else { result, request_log, _ = service.FJyb2206(his.PsnNo, his.Number, chrg_bchno, cert_no, insutype, allTotal, miConfig.OrgName, roles.UserName, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, strconv.FormatInt(reg_type, 10), his.IdCardType, 0, 0, 0, 0, his.IdType, miConfig.Url, miConfig.Code, miConfig.AppSecret, miConfig.SignKey, miConfig.EncKey, acct_used_flag) } var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } saveLog(result, request_log, "2206", "预结算") userJSONBytes, _ := json.Marshal(dat) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "360302" { var result string var request_log string if his.IdCardType == 2 { insutype = strconv.FormatInt(his.SocialType, 10) result, request_log = service.Jxyb2206(his.PsnNo, his.Number, chrg_bchno, his.IdCardNo, insutype, allTotal, miConfig.OrgName, roles.UserName, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, strconv.FormatInt(reg_type, 10), his.IdCardType, 0, 0, 0, 0, his.IdType, miConfig.Url, miConfig.AccessKey, his.IdCardNo, "") } else if his.IdCardType == 1 { psn_info, _ := service.GetPsnByPatientId(his.PatientId) bas := strings.Split(psn_info.CardInfo, "|") basNumber := bas[2] card_sn := bas[3] var rf []*ResultFive json.Unmarshal([]byte(his.Iinfo), &rf) var psn_type string for _, item := range rf { if item.InsuplcAdmdvs == his.InsuplcAdmdvs { psn_type = item.PsnType } } insutype = strconv.FormatInt(his.SocialType, 10) result, request_log = service.Jxyb2206Two(his.PsnNo, his.Number, chrg_bchno, psn_info.VerifyNumber, insutype, allTotal, miConfig.OrgName, roles.UserName, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, strconv.FormatInt(reg_type, 10), his.IdCardType, 0, 0, 0, 0, his.IdType, miConfig.Url, miConfig.AccessKey, basNumber, "", card_sn, his.PsnCertType, his.Certno, psn_type, his.PsnName) } else { psn_info, _ := service.GetPsnByPatientId(his.PatientId) //bas := strings.Split(psn_info.CardInfo, "|") //basNumber := bas[2] //card_sn := bas[3] var rf []*ResultFive json.Unmarshal([]byte(his.Iinfo), &rf) var psn_type string for _, item := range rf { if item.InsuplcAdmdvs == his.InsuplcAdmdvs { psn_type = item.PsnType } } insutype = strconv.FormatInt(his.SocialType, 10) //psn_info, _ := service.GetPsnByPatientId(his.PatientId) result, request_log = service.Jxyb2206Two(his.PsnNo, his.Number, chrg_bchno, psn_info.VerifyNumber, insutype, allTotal, miConfig.OrgName, roles.UserName, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, strconv.FormatInt(reg_type, 10), his.IdCardType, 0, 0, 0, 0, his.IdType, miConfig.Url, miConfig.AccessKey, psn_info.VerifyNumber, "", "", his.PsnCertType, his.Certno, psn_type, his.PsnName) } var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } saveLog(result, request_log, "2206", "预结算") userJSONBytes, _ := json.Marshal(dat) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "361025" { var result string var request_log string if his.IdCardType == 2 { insutype = strconv.FormatInt(his.SocialType, 10) result, request_log = service.Jxyb2206(his.PsnNo, his.Number, chrg_bchno, his.IdCardNo, insutype, allTotal, miConfig.OrgName, roles.UserName, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, strconv.FormatInt(reg_type, 10), his.IdCardType, 0, 0, 0, 0, his.IdType, miConfig.Url, miConfig.AccessKey, his.IdCardNo, "") } else if his.IdCardType == 1 { psn_info, _ := service.GetPsnByPatientId(his.PatientId) bas := strings.Split(psn_info.CardInfo, "|") basNumber := bas[0] card_sn := "" var rf []*ResultFive json.Unmarshal([]byte(his.Iinfo), &rf) var psn_type string for _, item := range rf { if item.InsuplcAdmdvs == his.InsuplcAdmdvs { psn_type = item.PsnType } } insutype = strconv.FormatInt(his.SocialType, 10) result, request_log = service.Jxyb2206Two(his.PsnNo, his.Number, chrg_bchno, psn_info.VerifyNumber, insutype, allTotal, miConfig.OrgName, roles.UserName, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, strconv.FormatInt(reg_type, 10), his.IdCardType, 0, 0, 0, 0, his.IdType, miConfig.Url, miConfig.AccessKey, basNumber, "", card_sn, his.PsnCertType, his.Certno, psn_type, his.PsnName) } else { psn_info, _ := service.GetPsnByPatientId(his.PatientId) //bas := strings.Split(psn_info.CardInfo, "|") //basNumber := bas[2] //card_sn := bas[3] var rf []*ResultFive json.Unmarshal([]byte(his.Iinfo), &rf) var psn_type string for _, item := range rf { if item.InsuplcAdmdvs == his.InsuplcAdmdvs { psn_type = item.PsnType } } //psn_info, _ := service.GetPsnByPatientId(his.PatientId) result, request_log = service.Jxyb2206Two(his.PsnNo, his.Number, chrg_bchno, psn_info.VerifyNumber, insutype, allTotal, miConfig.OrgName, roles.UserName, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, strconv.FormatInt(reg_type, 10), his.IdCardType, 0, 0, 0, 0, his.IdType, miConfig.Url, miConfig.AccessKey, psn_info.VerifyNumber, "", "", his.PsnCertType, his.Certno, psn_type, his.PsnName) } var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } saveLog(result, request_log, "2206", "预结算") userJSONBytes, _ := json.Marshal(dat) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "360100" { var result string var request_log string if his.IdCardType == 2 { insutype = strconv.FormatInt(his.SocialType, 10) result, request_log = service.Jxyb2206(his.PsnNo, his.Number, chrg_bchno, his.IdCardNo, insutype, allTotal, miConfig.OrgName, roles.UserName, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, strconv.FormatInt(reg_type, 10), his.IdCardType, 0, 0, 0, 0, his.IdType, miConfig.Url, miConfig.AccessKey, his.IdCardNo, "") } else if his.IdCardType == 1 { psn_info, _ := service.GetPsnByPatientId(his.PatientId) bas := strings.Split(psn_info.CardInfo, "|") basNumber := bas[0] card_sn := "" var rf []*ResultFive json.Unmarshal([]byte(his.Iinfo), &rf) var psn_type string for _, item := range rf { if item.InsuplcAdmdvs == his.InsuplcAdmdvs { psn_type = item.PsnType } } insutype = strconv.FormatInt(his.SocialType, 10) result, request_log = service.Jxyb2206Two(his.PsnNo, his.Number, chrg_bchno, psn_info.VerifyNumber, insutype, allTotal, miConfig.OrgName, roles.UserName, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, strconv.FormatInt(reg_type, 10), his.IdCardType, 0, 0, 0, 0, his.IdType, miConfig.Url, miConfig.AccessKey, basNumber, "", card_sn, his.PsnCertType, his.Certno, psn_type, his.PsnName) } else { psn_info, _ := service.GetPsnByPatientId(his.PatientId) //bas := strings.Split(psn_info.CardInfo, "|") //basNumber := bas[2] //card_sn := bas[3] var rf []*ResultFive json.Unmarshal([]byte(his.Iinfo), &rf) var psn_type string for _, item := range rf { if item.InsuplcAdmdvs == his.InsuplcAdmdvs { psn_type = item.PsnType } } //psn_info, _ := service.GetPsnByPatientId(his.PatientId) result, request_log = service.Jxyb2206Two(his.PsnNo, his.Number, chrg_bchno, psn_info.VerifyNumber, insutype, allTotal, miConfig.OrgName, roles.UserName, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, strconv.FormatInt(reg_type, 10), his.IdCardType, 0, 0, 0, 0, his.IdType, miConfig.Url, miConfig.AccessKey, psn_info.VerifyNumber, "", "", his.PsnCertType, his.Certno, psn_type, his.PsnName) } var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } saveLog(result, request_log, "2206", "预结算") userJSONBytes, _ := json.Marshal(dat) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "341203" { psn_info, _ := service.GetPsnByPatientId(his.PatientId) if his.IdCardType == 4 { psn_info.VerifyNumber = psn_info.VerifyNumber cert_no = psn_info.VerifyNumber } else if his.IdCardType == 2 { cert_no = psn_info.Certno psn_info.VerifyNumber = psn_info.Certno } else { psn_info.VerifyNumber = strings.Replace(psn_info.VerifyNumber, "+", "%2B", -1) bas := strings.Split(psn_info.CardInfo, "|") if his.IdCardType == 1 { cert_no = bas[2] } else { cert_no = bas[1] } } var api string var med_type string if his.Insutype == "390" { if reg_type == 992102 { med_type = "992102" } if reg_type == 140104 { med_type = "140104" } if reg_type == 140201 { med_type = "140201" } if reg_type == 14 { med_type = "140104" } } else if his.Insutype == "310" { if reg_type == 992102 { med_type = "992102" } if reg_type == 140104 { med_type = "140104" } if reg_type == 140201 { med_type = "140201" } if reg_type == 14 { med_type = "140104" } } api = miConfig.SecretKey + "ahyb/2206?psn_no=" + his.PsnNo + "&mdtrt_id=" + his.Number + "&chrg_bchno=" + chrg_bchno + "&org_name=" + miConfig.OrgName + "&doctor=" + roles.UserName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + his.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&id_card_type=" + strconv.FormatInt(his.IdCardType, 10) + "&certificates=" + strconv.FormatInt(his.IdType, 10) + "&cert_no=" + cert_no + "&insutype=" + insutype + "&total=" + allTotal + "&med_type=" + med_type + "&verify_number=" + psn_info.VerifyNumber + "&url=" + miConfig.Url + "&ak=" + miConfig.AccessKey + "&cainfo=" + miConfig.Cainfo + "&mdtrt_grp_type=" + his.MdtrtGrpType //req, _ = http.NewRequest("POST", "http://192.168.2.110:9532/"+"jsyb/2204", bytes.NewReader(bytesData)) resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } status := respJSON["data"].(map[string]interface{})["status"].(string) if status == "0" { err_msg := respJSON["data"].(map[string]interface{})["msg"].(string) c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": err_msg, }) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) result, _ := json.Marshal(respJSON) fmt.Println("log") fmt.Println(string(result)) if err := json.Unmarshal([]byte(result), &ahres); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res.InfRefmsgid = ahres.InfRefmsgid timestamp := int64(ahres.Output.Setlinfo.SetlTime) // 输入要转换的时间戳(这里仅作示例) // 创建对应的Time类型 t := time.UnixMilli(timestamp) // 格式化成指定的日期字符串 str := t.Format("2006-01-02 15:04:05") res.Output.Setlinfo.SetlTime = str res.Output.Setlinfo.AcctMulaidPay = ahres.Output.Setlinfo.AcctMulaidPay res.Output.Setlinfo.AcctPay = ahres.Output.Setlinfo.AcctPay res.Output.Setlinfo.CvlservPay = ahres.Output.Setlinfo.CvlservPay res.Output.Setlinfo.ActPayDedc = ahres.Output.Setlinfo.ActPayDedc res.Output.Setlinfo.Age = ahres.Output.Setlinfo.Age res.Output.Setlinfo.Balc = ahres.Output.Setlinfo.Balc //res.Output.Setlinfo.Brdy = gzresSeven10265Two.Output.Setlinfo.Brdy res.Output.Setlinfo.Certno = ahres.Output.Setlinfo.Certno res.Output.Setlinfo.ClrOptins = ahres.Output.Setlinfo.ClrOptins res.Output.Setlinfo.ClrType = ahres.Output.Setlinfo.ClrOptins res.Output.Setlinfo.ClrWay = ahres.Output.Setlinfo.ClrOptins res.Output.Setlinfo.CvlservFlag = ahres.Output.Setlinfo.ClrOptins res.Output.Setlinfo.CvlservPay = ahres.Output.Setlinfo.CvlservPay res.Output.Setlinfo.FulamtOwnpayAmt = ahres.Output.Setlinfo.FulamtOwnpayAmt res.Output.Setlinfo.FundPaySumamt = ahres.Output.Setlinfo.FundPaySumamt res.Output.Setlinfo.Gend = ahres.Output.Setlinfo.Gend res.Output.Setlinfo.HifesPay = ahres.Output.Setlinfo.HifesPay res.Output.Setlinfo.HifmiPay = ahres.Output.Setlinfo.HifmiPay res.Output.Setlinfo.HifpPay = ahres.Output.Setlinfo.HifpPay //HospPartAmt, _ := strconv.ParseFloat(gzresSeven10265Two.Output.Setlinfo.HospPartAmt, 64) res.Output.Setlinfo.HospPartAmt = ahres.Output.Setlinfo.HospPartAmt res.Output.Setlinfo.InscpScpAmt = ahres.Output.Setlinfo.InscpScpAmt res.Output.Setlinfo.Insutype = ahres.Output.Setlinfo.Insutype res.Output.Setlinfo.MafPay = ahres.Output.Setlinfo.MafPay res.Output.Setlinfo.MdtrtCertType = ahres.Output.Setlinfo.MdtrtCertType res.Output.Setlinfo.HifobPay = ahres.Output.Setlinfo.HifobPay res.Output.Setlinfo.MdtrtID = ahres.Output.Setlinfo.MdtrtID res.Output.Setlinfo.MedType = ahres.Output.Setlinfo.MedType res.Output.Setlinfo.MedfeeSumamt = ahres.Output.Setlinfo.MedfeeSumamt res.Output.Setlinfo.MedinsSetlID = ahres.Output.Setlinfo.MedinsSetlID res.Output.Setlinfo.Naty = ahres.Output.Setlinfo.Naty res.Output.Setlinfo.OthPay = ahres.Output.Setlinfo.OthPay res.Output.Setlinfo.OverlmtSelfpay = ahres.Output.Setlinfo.OverlmtSelfpay res.Output.Setlinfo.PoolPropSelfpay = ahres.Output.Setlinfo.PoolPropSelfpay res.Output.Setlinfo.PreselfpayAmt = ahres.Output.Setlinfo.PreselfpayAmt res.Output.Setlinfo.PsnCashPay = ahres.Output.Setlinfo.PsnCashPay res.Output.Setlinfo.PsnCertType = ahres.Output.Setlinfo.ClrOptins res.Output.Setlinfo.PsnName = ahres.Output.Setlinfo.PsnName res.Output.Setlinfo.PsnNo = ahres.Output.Setlinfo.PsnNo res.Output.Setlinfo.PsnPartAmt = ahres.Output.Setlinfo.PsnPartAmt res.Output.Setlinfo.PsnType = ahres.Output.Setlinfo.PsnType res.Output.Setlinfo.SetlID = ahres.Output.Setlinfo.SetlID //res.Output.Setldetail = ahres.Output.Setldetail res.ErrMsg = ahres.ErrMsg res.Cainfo = ahres.Cainfo res.WarnMsg = ahres.WarnMsg res.Infcode = ahres.Infcode } else if miConfig.MdtrtareaAdmvs == "340699" { psn_info, _ := service.GetPsnByPatientId(his.PatientId) if his.IdCardType == 4 { psn_info.VerifyNumber = psn_info.VerifyNumber cert_no = psn_info.Certno } else if his.IdCardType == 2 { cert_no = psn_info.Certno psn_info.VerifyNumber = psn_info.Certno } else { psn_info.VerifyNumber = strings.Replace(psn_info.VerifyNumber, "+", "%2B", -1) bas := strings.Split(psn_info.CardInfo, "|") if his.IdCardType == 1 { cert_no = bas[2] } else { cert_no = bas[1] } } var api string var med_type string if his.Insutype == "390" { if reg_type == 992102 { med_type = "992102" } if reg_type == 140104 { med_type = "140104" } if reg_type == 140201 { med_type = "140201" } if reg_type == 14 { med_type = "14" } } else if his.Insutype == "310" { if reg_type == 992102 { med_type = "992102" } if reg_type == 140104 { med_type = "140104" } if reg_type == 140201 { med_type = "140201" } if reg_type == 14 { med_type = "14" } } api = miConfig.SecretKey + "ahyb/2206?psn_no=" + his.PsnNo + "&mdtrt_id=" + his.Number + "&chrg_bchno=" + chrg_bchno + "&org_name=" + miConfig.OrgName + "&doctor=" + roles.UserName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + his.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&id_card_type=" + strconv.FormatInt(his.IdCardType, 10) + "&certificates=" + strconv.FormatInt(his.IdType, 10) + "&cert_no=" + cert_no + "&insutype=" + insutype + "&total=" + allTotal + "&med_type=" + med_type + "&verify_number=" + psn_info.VerifyNumber + "&url=" + miConfig.Url + "&ak=" + miConfig.AccessKey + "&cainfo=" + miConfig.Cainfo + "&mdtrt_grp_type=" + his.MdtrtGrpType //req, _ = http.NewRequest("POST", "http://192.168.2.110:9532/"+"jsyb/2204", bytes.NewReader(bytesData)) resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } status := respJSON["data"].(map[string]interface{})["status"].(string) if status == "0" { err_msg := respJSON["data"].(map[string]interface{})["msg"].(string) c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": err_msg, }) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) result, _ := json.Marshal(respJSON) fmt.Println("log") fmt.Println(string(result)) if err := json.Unmarshal([]byte(result), &ahres); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res.InfRefmsgid = ahres.InfRefmsgid timestamp := int64(ahres.Output.Setlinfo.SetlTime) // 输入要转换的时间戳(这里仅作示例) // 创建对应的Time类型 t := time.UnixMilli(timestamp) // 格式化成指定的日期字符串 str := t.Format("2006-01-02 15:04:05") res.Output.Setlinfo.SetlTime = str res.Output.Setlinfo.AcctMulaidPay = ahres.Output.Setlinfo.AcctMulaidPay res.Output.Setlinfo.AcctPay = ahres.Output.Setlinfo.AcctPay res.Output.Setlinfo.CvlservPay = ahres.Output.Setlinfo.CvlservPay res.Output.Setlinfo.ActPayDedc = ahres.Output.Setlinfo.ActPayDedc res.Output.Setlinfo.Age = ahres.Output.Setlinfo.Age res.Output.Setlinfo.Balc = ahres.Output.Setlinfo.Balc //res.Output.Setlinfo.Brdy = gzresSeven10265Two.Output.Setlinfo.Brdy res.Output.Setlinfo.Certno = ahres.Output.Setlinfo.Certno res.Output.Setlinfo.ClrOptins = ahres.Output.Setlinfo.ClrOptins res.Output.Setlinfo.ClrType = ahres.Output.Setlinfo.ClrOptins res.Output.Setlinfo.ClrWay = ahres.Output.Setlinfo.ClrOptins res.Output.Setlinfo.CvlservFlag = ahres.Output.Setlinfo.ClrOptins res.Output.Setlinfo.CvlservPay = ahres.Output.Setlinfo.CvlservPay res.Output.Setlinfo.FulamtOwnpayAmt = ahres.Output.Setlinfo.FulamtOwnpayAmt res.Output.Setlinfo.FundPaySumamt = ahres.Output.Setlinfo.FundPaySumamt res.Output.Setlinfo.Gend = ahres.Output.Setlinfo.Gend res.Output.Setlinfo.HifesPay = ahres.Output.Setlinfo.HifesPay res.Output.Setlinfo.HifmiPay = ahres.Output.Setlinfo.HifmiPay res.Output.Setlinfo.HifpPay = ahres.Output.Setlinfo.HifpPay //HospPartAmt, _ := strconv.ParseFloat(gzresSeven10265Two.Output.Setlinfo.HospPartAmt, 64) res.Output.Setlinfo.HospPartAmt = ahres.Output.Setlinfo.HospPartAmt res.Output.Setlinfo.InscpScpAmt = ahres.Output.Setlinfo.InscpScpAmt res.Output.Setlinfo.Insutype = ahres.Output.Setlinfo.Insutype res.Output.Setlinfo.MafPay = ahres.Output.Setlinfo.MafPay res.Output.Setlinfo.MdtrtCertType = ahres.Output.Setlinfo.MdtrtCertType res.Output.Setlinfo.HifobPay = ahres.Output.Setlinfo.HifobPay res.Output.Setlinfo.MdtrtID = ahres.Output.Setlinfo.MdtrtID res.Output.Setlinfo.MedType = ahres.Output.Setlinfo.MedType res.Output.Setlinfo.MedfeeSumamt = ahres.Output.Setlinfo.MedfeeSumamt res.Output.Setlinfo.MedinsSetlID = ahres.Output.Setlinfo.MedinsSetlID res.Output.Setlinfo.Naty = ahres.Output.Setlinfo.Naty res.Output.Setlinfo.OthPay = ahres.Output.Setlinfo.OthPay res.Output.Setlinfo.OverlmtSelfpay = ahres.Output.Setlinfo.OverlmtSelfpay res.Output.Setlinfo.PoolPropSelfpay = ahres.Output.Setlinfo.PoolPropSelfpay res.Output.Setlinfo.PreselfpayAmt = ahres.Output.Setlinfo.PreselfpayAmt res.Output.Setlinfo.PsnCashPay = ahres.Output.Setlinfo.PsnCashPay res.Output.Setlinfo.PsnCertType = ahres.Output.Setlinfo.ClrOptins res.Output.Setlinfo.PsnName = ahres.Output.Setlinfo.PsnName res.Output.Setlinfo.PsnNo = ahres.Output.Setlinfo.PsnNo res.Output.Setlinfo.PsnPartAmt = ahres.Output.Setlinfo.PsnPartAmt res.Output.Setlinfo.PsnType = ahres.Output.Setlinfo.PsnType res.Output.Setlinfo.SetlID = ahres.Output.Setlinfo.SetlID //res.Output.Setldetail = ahres.Output.Setldetail res.ErrMsg = ahres.ErrMsg res.Cainfo = ahres.Cainfo res.WarnMsg = ahres.WarnMsg res.Infcode = ahres.Infcode } else if miConfig.MdtrtareaAdmvs == "430800" { var result string var request_log string if his.IdCardType == 2 { result, request_log = service.Hnyb2206(his.PsnNo, his.Number, chrg_bchno, his.IdCardNo, insutype, allTotal, miConfig.OrgName, roles.UserName, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, strconv.FormatInt(reg_type, 10), his.IdCardType, 0, 0, 0, 0, his.IdType, miConfig.Url, miConfig.AccessKey, his.IdCardNo, "", "1") } else if his.IdCardType == 1 { psn_info, _ := service.GetPsnByPatientId(his.PatientId) bas := strings.Split(psn_info.CardInfo, "|") basNumber := bas[2] card_sn := bas[3] result, request_log = service.Hnyb2206Two(his.PsnNo, his.Number, chrg_bchno, psn_info.VerifyNumber, insutype, allTotal, miConfig.OrgName, roles.UserName, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, strconv.FormatInt(reg_type, 10), his.IdCardType, 0, 0, 0, 0, his.IdType, miConfig.Url, miConfig.AccessKey, basNumber, "", card_sn, "1") } else { psn_info, _ := service.GetPsnByPatientId(his.PatientId) result, request_log = service.Hnyb2206(his.PsnNo, his.Number, chrg_bchno, psn_info.VerifyNumber, insutype, allTotal, miConfig.OrgName, roles.UserName, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, strconv.FormatInt(reg_type, 10), his.IdCardType, 0, 0, 0, 0, his.IdType, miConfig.Url, miConfig.AccessKey, psn_info.VerifyNumber, "", "1") } var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } saveLog(result, request_log, "2206", "预结算") userJSONBytes, _ := json.Marshal(dat) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "441799" { api := miConfig.Url + "gdyb/2206?psn_no=" + his.PsnNo + "&mdtrt_id=" + his.Number + "&chrg_bchno=" + chrg_bchno + "&org_name=" + miConfig.OrgName + "&operator=" + roles.UserName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + his.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&id_card_type=" + strconv.FormatInt(his.IdCardType, 10) + "&certificates=" + strconv.FormatInt(his.IdType, 10) + "&cert_no=" + cert_no + "&insutype=" + insutype + "&total=" + allTotal + "&med_type=" + strconv.FormatInt(reg_type, 10) resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) result, _ := json.Marshal(respJSON) fmt.Println("log") fmt.Println(string(result)) if err := json.Unmarshal([]byte(result), &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else { if miConfig.MdtrtareaAdmvs == "441202" { result3101 := Checkgd3102(c, id, his_patient_id, admin_user_id, "6", order.ID) if result3101.Infcode == 0 { if len(result3101.Output.Result) > 0 { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "failed_type": 100, "msg": result3101.Output.Result, }) return } else { var result string var request_log string psn_info, _ := service.GetPsnByPatientId(his.PatientId) allTotal = fmt.Sprintf("%.2f", total_two) if his.IdCardType == 4 { result, request_log = service.Gdyb2206(his.PsnNo, his.Number, chrg_bchno, psn_info.VerifyNumber, insutype, allTotal, miConfig.OrgName, roles.UserName, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, strconv.FormatInt(reg_type, 10), his.IdCardType, 0, 0, 0, 0, his.IdType, admin_user_id) } else { result, request_log = service.Gdyb2206(his.PsnNo, his.Number, chrg_bchno, cert_no, insutype, allTotal, miConfig.OrgName, roles.UserName, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, strconv.FormatInt(reg_type, 10), his.IdCardType, 0, 0, 0, 0, his.IdType, admin_user_id) } var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } saveLog(result, request_log, "2206", "预结算") //userJSONBytes, _ := json.Marshal(dat) // //if err := json.Unmarshal(userJSONBytes, &res); err != nil { // utils.ErrorLog("解析失败:%v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return //} userJSONBytes, _ := json.Marshal(dat) if miConfig.Code == "H15049901371" { if err := json.Unmarshal(userJSONBytes, &resSeven10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res.InfRefmsgid = resSeven10265.InfRefmsgid res.Output = resSeven10265.Output res.ErrMsg = resSeven10265.ErrMsg res.Cainfo = resSeven10265.Cainfo res.WarnMsg = resSeven10265.WarnMsg infocode, _ := strconv.ParseInt(resSeven10265.Infcode, 10, 64) res.Infcode = infocode } else { if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } } } else { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": result3101.ErrMsg, }) return } } else if miConfig.MdtrtareaAdmvs == "440205" { result3101 := Checkgd3102(c, id, his_patient_id, admin_user_id, "6", order.ID) if result3101.Infcode == 0 { if len(result3101.Output.Result) > 0 { var errMsgs []string for _, item := range result3101.Output.Result { errMsgs = append(errMsgs, item.VolaCont) } c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": errMsgs, }) return } else { var result string var request_log string psn_info, _ := service.GetPsnByPatientId(his.PatientId) allTotal = fmt.Sprintf("%.2f", total_two) if his.IdCardType == 4 { result, request_log = service.Gdyb2206(his.PsnNo, his.Number, chrg_bchno, psn_info.VerifyNumber, insutype, allTotal, miConfig.OrgName, roles.UserName, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, strconv.FormatInt(reg_type, 10), his.IdCardType, 0, 0, 0, 0, his.IdType, admin_user_id) } else { result, request_log = service.Gdyb2206(his.PsnNo, his.Number, chrg_bchno, cert_no, insutype, allTotal, miConfig.OrgName, roles.UserName, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, strconv.FormatInt(reg_type, 10), his.IdCardType, 0, 0, 0, 0, his.IdType, admin_user_id) } var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } saveLog(result, request_log, "2206", "预结算") //userJSONBytes, _ := json.Marshal(dat) // //if err := json.Unmarshal(userJSONBytes, &res); err != nil { // utils.ErrorLog("解析失败:%v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return //} userJSONBytes, _ := json.Marshal(dat) if miConfig.Code == "H15049901371" { if err := json.Unmarshal(userJSONBytes, &resSeven10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res.InfRefmsgid = resSeven10265.InfRefmsgid res.Output = resSeven10265.Output res.ErrMsg = resSeven10265.ErrMsg res.Cainfo = resSeven10265.Cainfo res.WarnMsg = resSeven10265.WarnMsg infocode, _ := strconv.ParseInt(resSeven10265.Infcode, 10, 64) res.Infcode = infocode } else { if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } } } else { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": result3101.ErrMsg, }) return } } else { var result string var request_log string var dat map[string]interface{} psn_info, _ := service.GetPsnByPatientId(his.PatientId) allTotal = fmt.Sprintf("%.2f", total_two) if miConfig.Code == "H44030501364" || miConfig.Code == "H44030903432" || miConfig.Code == "H44030500255" { result3101 := Checkgd3102(c, id, his_patient_id, admin_user_id, "6", order.ID) if result3101.Infcode == 0 { if len(result3101.Output.Result) > 0 { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "failed_type": 100, "warm_type": 2, "msg": result3101.Output.Result, }) return } else { var result string var request_log string psn_info, _ := service.GetPsnByPatientId(his.PatientId) allTotal = fmt.Sprintf("%.2f", total_two) if his.IdCardType == 4 { result, request_log = service.Gdyb2206(his.PsnNo, his.Number, chrg_bchno, psn_info.VerifyNumber, insutype, allTotal, miConfig.OrgName, roles.UserName, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, strconv.FormatInt(reg_type, 10), his.IdCardType, 0, 0, 0, 0, his.IdType, admin_user_id) } else { if his.IdCardType == 2 { cert_no = psn_info.Certno psn_info.VerifyNumber = psn_info.Certno } else { bas := strings.Split(psn_info.CardInfo, "|") cert_no = bas[2] } result, request_log = service.Gdyb2206(his.PsnNo, his.Number, chrg_bchno, cert_no, insutype, allTotal, miConfig.OrgName, roles.UserName, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, strconv.FormatInt(reg_type, 10), his.IdCardType, 0, 0, 0, 0, his.IdType, admin_user_id) } if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } saveLog(result, request_log, "2206", "预结算") } } else { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": result3101.ErrMsg, }) return } } else { if his.IdCardType == 4 { result, request_log = service.Gdyb2206(his.PsnNo, his.Number, chrg_bchno, psn_info.VerifyNumber, insutype, allTotal, miConfig.OrgName, roles.UserName, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, strconv.FormatInt(reg_type, 10), his.IdCardType, 0, 0, 0, 0, his.IdType, admin_user_id) } else { if his.IdCardType == 2 { cert_no = psn_info.Certno psn_info.VerifyNumber = psn_info.Certno } else { bas := strings.Split(psn_info.CardInfo, "|") cert_no = bas[2] } result, request_log = service.Gdyb2206(his.PsnNo, his.Number, chrg_bchno, cert_no, insutype, allTotal, miConfig.OrgName, roles.UserName, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, strconv.FormatInt(reg_type, 10), his.IdCardType, 0, 0, 0, 0, his.IdType, admin_user_id) } if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } saveLog(result, request_log, "2206", "预结算") } //userJSONBytes, _ := json.Marshal(dat) // //if err := json.Unmarshal(userJSONBytes, &res); err != nil { // utils.ErrorLog("解析失败:%v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return //} userJSONBytes, _ := json.Marshal(dat) if miConfig.Code == "H15049901371" { if err := json.Unmarshal(userJSONBytes, &resSeven10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res.InfRefmsgid = resSeven10265.InfRefmsgid res.Output = resSeven10265.Output res.ErrMsg = resSeven10265.ErrMsg res.Cainfo = resSeven10265.Cainfo res.WarnMsg = resSeven10265.WarnMsg infocode, _ := strconv.ParseInt(resSeven10265.Infcode, 10, 64) res.Infcode = infocode } else { if strings.Contains(his.InsuplcAdmdvs, "4401") { if err := json.Unmarshal(userJSONBytes, &gzresSeven10265Two); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res.InfRefmsgid = gzresSeven10265Two.InfRefmsgid res.Output.Setlinfo.AcctMulaidPay = gzresSeven10265Two.Output.Setlinfo.AcctMulaidPay res.Output.Setlinfo.AcctPay = gzresSeven10265Two.Output.Setlinfo.AcctPay res.Output.Setlinfo.CvlservPay = gzresSeven10265Two.Output.Setlinfo.CvlservPay res.Output.Setlinfo.ActPayDedc = gzresSeven10265Two.Output.Setlinfo.ActPayDedc res.Output.Setlinfo.Age = gzresSeven10265Two.Output.Setlinfo.Age res.Output.Setlinfo.Balc = gzresSeven10265Two.Output.Setlinfo.Balc //res.Output.Setlinfo.Brdy = gzresSeven10265Two.Output.Setlinfo.Brdy res.Output.Setlinfo.Certno = gzresSeven10265Two.Output.Setlinfo.Certno res.Output.Setlinfo.ClrOptins = gzresSeven10265Two.Output.Setlinfo.ClrOptins res.Output.Setlinfo.ClrType = gzresSeven10265Two.Output.Setlinfo.ClrOptins res.Output.Setlinfo.ClrWay = gzresSeven10265Two.Output.Setlinfo.ClrOptins res.Output.Setlinfo.CvlservFlag = gzresSeven10265Two.Output.Setlinfo.ClrOptins res.Output.Setlinfo.CvlservPay = gzresSeven10265Two.Output.Setlinfo.CvlservPay res.Output.Setlinfo.FulamtOwnpayAmt = gzresSeven10265Two.Output.Setlinfo.FulamtOwnpayAmt res.Output.Setlinfo.FundPaySumamt = gzresSeven10265Two.Output.Setlinfo.FundPaySumamt res.Output.Setlinfo.Gend = gzresSeven10265Two.Output.Setlinfo.Gend res.Output.Setlinfo.HifesPay = gzresSeven10265Two.Output.Setlinfo.HifesPay res.Output.Setlinfo.HifmiPay = gzresSeven10265Two.Output.Setlinfo.HifmiPay res.Output.Setlinfo.HifpPay = gzresSeven10265Two.Output.Setlinfo.HifpPay //HospPartAmt, _ := strconv.ParseFloat(gzresSeven10265Two.Output.Setlinfo.HospPartAmt, 64) res.Output.Setlinfo.HospPartAmt = gzresSeven10265Two.Output.Setlinfo.HospPartAmt res.Output.Setlinfo.InscpScpAmt = gzresSeven10265Two.Output.Setlinfo.InscpScpAmt res.Output.Setlinfo.Insutype = gzresSeven10265Two.Output.Setlinfo.Insutype res.Output.Setlinfo.MafPay = gzresSeven10265Two.Output.Setlinfo.MafPay res.Output.Setlinfo.MdtrtCertType = gzresSeven10265Two.Output.Setlinfo.MdtrtCertType res.Output.Setlinfo.HifobPay = gzresSeven10265Two.Output.Setlinfo.HifobPay res.Output.Setlinfo.MdtrtID = gzresSeven10265Two.Output.Setlinfo.MdtrtID res.Output.Setlinfo.MedType = gzresSeven10265Two.Output.Setlinfo.MedType res.Output.Setlinfo.MedfeeSumamt = gzresSeven10265Two.Output.Setlinfo.MedfeeSumamt res.Output.Setlinfo.MedinsSetlID = gzresSeven10265Two.Output.Setlinfo.MedinsSetlID res.Output.Setlinfo.Naty = gzresSeven10265Two.Output.Setlinfo.Naty res.Output.Setlinfo.OthPay = gzresSeven10265Two.Output.Setlinfo.OthPay res.Output.Setlinfo.OverlmtSelfpay = gzresSeven10265Two.Output.Setlinfo.OverlmtSelfpay PoolPropSelfpay, _ := strconv.ParseFloat(gzresSeven10265Two.Output.Setlinfo.PoolPropSelfpay, 64) res.Output.Setlinfo.PoolPropSelfpay = PoolPropSelfpay res.Output.Setlinfo.PreselfpayAmt = gzresSeven10265Two.Output.Setlinfo.PreselfpayAmt res.Output.Setlinfo.PsnCashPay = gzresSeven10265Two.Output.Setlinfo.PsnCashPay res.Output.Setlinfo.PsnCertType = gzresSeven10265Two.Output.Setlinfo.ClrOptins res.Output.Setlinfo.PsnName = gzresSeven10265Two.Output.Setlinfo.PsnName res.Output.Setlinfo.PsnNo = gzresSeven10265Two.Output.Setlinfo.PsnNo res.Output.Setlinfo.PsnPartAmt = gzresSeven10265Two.Output.Setlinfo.PsnPartAmt res.Output.Setlinfo.PsnType = gzresSeven10265Two.Output.Setlinfo.PsnType res.Output.Setlinfo.SetlID = gzresSeven10265Two.Output.Setlinfo.SetlID res.Output.Setlinfo.SetlTime = gzresSeven10265Two.Output.Setlinfo.SetlTime //res.Output.Setldetail = gzresSeven10265Two.Output.Setldetail res.ErrMsg = gzresSeven10265Two.ErrMsg res.Cainfo = gzresSeven10265Two.Cainfo res.WarnMsg = gzresSeven10265Two.WarnMsg //infocode, _ := strconv.ParseInt(resSeven10265Two.Infcode, 10, 64) //res.Infcode = infocode } else { if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } } } } utils.ErrorLog("解析失败:%v", res.Infcode) if res.Infcode == -1 { errlog := &models.HisOrderError{ UserOrgId: adminUser.CurrentOrgId, Ctime: time.Now().Unix(), Mtime: time.Now().Unix(), Number: chrg_bchno, ErrMsg: res.ErrMsg, Status: 1, PatientId: id, RecordTime: recordDateTime, Stage: 20, } service.CreateErrMsgLog(errlog) c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res.ErrMsg, }) return } if res.Infcode != 0 { errlog := &models.HisOrderError{ UserOrgId: adminUser.CurrentOrgId, Ctime: time.Now().Unix(), Mtime: time.Now().Unix(), Number: chrg_bchno, ErrMsg: res.ErrMsg, Status: 1, PatientId: id, RecordTime: recordDateTime, Stage: 20, } service.CreateErrMsgLog(errlog) c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res.ErrMsg, }) return } else { order, _ := service.GetHisOrderTwo(adminUser.CurrentOrgId, chrg_bchno, id) order.OrderStatus = 1 order.IsPre = 1 order.Status = 1 order.MdtrtId = res.Output.Setlinfo.MdtrtID order.SetlId = res.Output.Setlinfo.SetlID order.PsnNo = res.Output.Setlinfo.PsnNo order.PsnName = res.Output.Setlinfo.PsnName order.PsnCertType = res.Output.Setlinfo.PsnCertType order.Certno = res.Output.Setlinfo.Certno order.Gend = res.Output.Setlinfo.Gend order.Naty = res.Output.Setlinfo.Naty order.Age = res.Output.Setlinfo.Age order.Insutype = res.Output.Setlinfo.Insutype order.PsnType = res.Output.Setlinfo.PsnType order.CvlservFlag = res.Output.Setlinfo.CvlservFlag order.SetlTime = res.Output.Setlinfo.SetlTime order.AcctUsedFlag = acct_used_flag order.MdtrtCertType = res.Output.Setlinfo.MdtrtCertType if res.Output.Setlinfo.MedType == "140101" { order.MedType = "14" } else { if res.Output.Setlinfo.MedType == "110104" { order.MedType = "11" } else { order.MedType = res.Output.Setlinfo.MedType } } if res.Output.Setlinfo.MedType == "992102" { order.MedType = "992102" } if res.Output.Setlinfo.MedType == "140104" { order.MedType = "140104" } if res.Output.Setlinfo.MedType == "140201" { order.MedType = "140201" } if res.Output.Setlinfo.MedType == "14" { order.MedType = "14" } if reg_type == 1112 { order.MedType = "1112" } if reg_type == 1111 { order.MedType = "1111" } order.ClrType = res.Output.Setlinfo.ClrType if adminUser.CurrentOrgId == 10480 { if strings.Contains(his.InsuplcAdmdvs, "3412") { order.ClrType = "11" } else { order.ClrType = "9903" } } order.MedfeeSumamt = res.Output.Setlinfo.MedfeeSumamt order.FulamtOwnpayAmt = res.Output.Setlinfo.FulamtOwnpayAmt order.OverlmtSelfPay = res.Output.Setlinfo.OverlmtSelfpay order.PreselfpayAmt = res.Output.Setlinfo.PreselfpayAmt order.InscpScpAmt = res.Output.Setlinfo.InscpScpAmt order.ActPayDedc = res.Output.Setlinfo.ActPayDedc order.HifpPay = res.Output.Setlinfo.HifpPay order.CvlservPay = res.Output.Setlinfo.CvlservPay order.PoolPropSelfpay = res.Output.Setlinfo.PoolPropSelfpay order.HifesPay = res.Output.Setlinfo.HifesPay order.HifobPay = res.Output.Setlinfo.HifobPay order.MafPay = res.Output.Setlinfo.MafPay order.HifmiPay = res.Output.Setlinfo.HifmiPay order.OthPay = res.Output.Setlinfo.OthPay order.FundPaySumamt = res.Output.Setlinfo.FundPaySumamt order.PsnPartAmt = res.Output.Setlinfo.PsnPartAmt order.AcctPay = res.Output.Setlinfo.AcctPay order.PsnCashPay = res.Output.Setlinfo.PsnCashPay order.HospPartAmt = res.Output.Setlinfo.HospPartAmt order.Balc = res.Output.Setlinfo.Balc order.AcctMulaidPay = res.Output.Setlinfo.AcctMulaidPay order.MedinsSetlId = res.Output.Setlinfo.MedinsSetlID order.ClrOptins = res.Output.Setlinfo.ClrOptins order.ClrWay = res.Output.Setlinfo.ClrWay order.Creator = order.Creator order.Modify = roles.AdminUserId //setlDetail, _ := json.Marshal(res.Output.Setldetail) //detailStr := string(setlDetail) //order.SetlDetail = detailStr //err := service.UpdataOrderStatusTwo(chrg_bchno, adminUser.CurrentOrgId) err = service.UpDateOrder(order) if err == nil { c.ServeSuccessJSON(map[string]interface{}{ "msg": "预结算成功", }) } else { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeAmountAccountException) return } } } else { adminUser := c.GetAdminUserInfo() errlog := &models.HisOrderError{ UserOrgId: adminUser.CurrentOrgId, Ctime: time.Now().Unix(), Mtime: time.Now().Unix(), ErrMsg: res.ErrMsg, Status: 1, PatientId: id, RecordTime: recordDateTime, Stage: 4, } service.CreateErrMsgLog(errlog) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeRegisterRepeatException) return } } else { if miConfig.MdtrtareaAdmvs == "150499" { order := &models.HisOrder{ UserOrgId: adminUser.CurrentOrgId, HisPatientId: his.ID, PatientId: his.PatientId, SettleAccountsDate: recordDateTime, Ctime: time.Now().Unix(), Mtime: time.Now().Unix(), MdtrtId: his.Number, PsnNo: his.PsnNo, MedType: strconv.FormatInt(reg_type, 10), Status: 1, Number: chrg_bchno, Infcode: res.Infcode, WarnMsg: res.WarnMsg, Cainfo: res.Cainfo, ErrMsg: res.ErrMsg, RespondTime: res.RefmsgTime, InfRefmsgid: res.InfRefmsgid, OrderStatus: 1, IsMedicineInsurance: 1, SettleType: settle_accounts_type, SettleStartTime: start_time, SettleEndTime: end_time, Creator: roles.AdminUserId, Modify: roles.AdminUserId, PType: 2, Diagnosis: diagnosis_id, } err = service.CreateOrder(order) if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeCreatePreOrderException) return } } adminUser := c.GetAdminUserInfo() errlog := &models.HisOrderError{ UserOrgId: adminUser.CurrentOrgId, Ctime: time.Now().Unix(), Mtime: time.Now().Unix(), ErrMsg: res.ErrMsg, Status: 1, PatientId: id, RecordTime: recordDateTime, Stage: 4, } service.CreateErrMsgLog(errlog) c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res.ErrMsg, }) return } } } } // 退款 func (c *HisApiController) Refund() { order_id, _ := c.GetInt64("order_id") admin_user_id, _ := c.GetInt64("admin_user_id") adminUser := c.GetAdminUserInfo() var order models.HisOrder order, _ = service.GetHisOrderByID(order_id) fapiao, _ := service.GetFaPiaoHisOrderByID(order_id) if fapiao.ID > 0 { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": "该结算已经开具发票无法退费,请先红冲发票", }) return } roles, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, admin_user_id) if order.ID == 0 { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } his, _ := service.GetHisPatientByNumber(order.MdtrtId) miConfig, _ := service.FindMedicalInsuranceInfo(adminUser.CurrentOrgId) config, _ := service.GetMedicalInsuranceConfig(adminUser.CurrentOrgId) if config.IsOpen == 1 { //对接了医保,走医保流程 var res ResultSixteen var ahres ResultSevenAH var resSixteen10265 ResultSixteen10265 var resSixteen10265Two ResultSixteen10265Two var gz ResultgzSixteen10265Two var src_resquest string var result string if miConfig.MdtrtareaAdmvs == "421300" { api3 := "http://192.168.124.4:9532/" + "hbyb/2208?psn_no=" + order.PsnNo + "&mdtrt_id=" + order.MdtrtId + "&setl_id=" + order.SetlId + "&doctor=" + roles.UserName + "&org_name=" + miConfig.OrgName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey 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{})["pre"].(map[string]interface{}) userJSONBytes3, _ := json.Marshal(respJSON3) fmt.Println("log") fmt.Println(string(userJSONBytes3)) if err := json.Unmarshal(userJSONBytes3, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "420200" { api3 := "http://192.168.0.197:9532/" + "hbyb/2208?psn_no=" + order.PsnNo + "&mdtrt_id=" + order.MdtrtId + "&setl_id=" + order.SetlId + "&doctor=" + roles.UserName + "&org_name=" + miConfig.OrgName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey 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{})["pre"].(map[string]interface{}) userJSONBytes3, _ := json.Marshal(respJSON3) fmt.Println("log") fmt.Println(string(userJSONBytes3)) if err := json.Unmarshal(userJSONBytes3, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "420902" { api3 := miConfig.Url + "hbyb/2208?psn_no=" + order.PsnNo + "&mdtrt_id=" + order.MdtrtId + "&setl_id=" + order.SetlId + "&doctor=" + roles.UserName + "&org_name=" + miConfig.OrgName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey 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{})["pre"].(map[string]interface{}) userJSONBytes3, _ := json.Marshal(respJSON3) fmt.Println("log") fmt.Println(string(userJSONBytes3)) if err := json.Unmarshal(userJSONBytes3, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "421182" { api3 := miConfig.Url + "hbyb/2208?psn_no=" + order.PsnNo + "&mdtrt_id=" + order.MdtrtId + "&setl_id=" + order.SetlId + "&doctor=" + roles.UserName + "&org_name=" + miConfig.OrgName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey 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{})["pre"].(map[string]interface{}) userJSONBytes3, _ := json.Marshal(respJSON3) fmt.Println("log") fmt.Println(string(userJSONBytes3)) if err := json.Unmarshal(userJSONBytes3, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "320921" || miConfig.MdtrtareaAdmvs == "320982" { var api3 string if miConfig.MdtrtareaAdmvs == "320921" { api3 = "http://192.168.2.3:9532/" + "jsyb/2208?psn_no=" + order.PsnNo + "&mdtrt_id=" + order.MdtrtId + "&setl_id=" + order.SetlId + "&doctor=" + roles.UserName + "&org_name=" + miConfig.OrgName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&url=" + miConfig.Url + "&ak=" + miConfig.AccessKey + "&cainfo=" + miConfig.Cainfo //req, _ = http.NewRequest("POST", "http://192.168.2.110:9532/"+"jsyb/2204", bytes.NewReader(bytesData)) } else { //req, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/2204", bytes.NewReader(bytesData)) api3 = "http://192.168.5.251:9532/" + "jsyb/2208?psn_no=" + order.PsnNo + "&mdtrt_id=" + order.MdtrtId + "&setl_id=" + order.SetlId + "&doctor=" + roles.UserName + "&org_name=" + miConfig.OrgName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&url=" + miConfig.Url + "&ak=" + miConfig.AccessKey + "&cainfo=" + miConfig.Cainfo } 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{})["pre"].(map[string]interface{}) userJSONBytes3, _ := json.Marshal(respJSON3) if err := json.Unmarshal(userJSONBytes3, &resSixteen10265Two); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res.InfRefmsgid = resSixteen10265.InfRefmsgid res.Output = resSixteen10265.Output res.ErrMsg = resSixteen10265.ErrMsg res.Cainfo = resSixteen10265.Cainfo res.WarnMsg = resSixteen10265.WarnMsg infocode, _ := strconv.ParseInt(resSixteen10265.Infcode, 10, 64) res.Infcode = infocode } else if miConfig.MdtrtareaAdmvs == "150499" { var api3 string api3 = "http://172.16.13.254:9532/" + "nmyb/2208?psn_no=" + order.PsnNo + "&mdtrt_id=" + order.MdtrtId + "&setl_id=" + order.SetlId + "&doctor=" + roles.UserName + "&org_name=" + miConfig.OrgName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + his.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&url=" + miConfig.Url + "&ak=" + miConfig.AccessKey + "&cainfo=" + miConfig.Cainfo 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{})["pre"].(map[string]interface{}) userJSONBytes3, _ := json.Marshal(respJSON3) if err := json.Unmarshal(userJSONBytes3, &resSixteen10265Two); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res.InfRefmsgid = resSixteen10265.InfRefmsgid res.Output = resSixteen10265.Output res.ErrMsg = resSixteen10265.ErrMsg res.Cainfo = resSixteen10265.Cainfo res.WarnMsg = resSixteen10265.WarnMsg infocode, _ := strconv.ParseInt(resSixteen10265.Infcode, 10, 64) res.Infcode = infocode } else if miConfig.MdtrtareaAdmvs == "350500" { result, src_resquest, _ = service.FJyb2208(order.PsnNo, order.MdtrtId, order.SetlId, miConfig.OrgName, roles.UserName, miConfig.SecretKey, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.Url, miConfig.Code, miConfig.AppSecret, miConfig.SignKey, miConfig.EncKey) var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } saveLog(result, src_resquest, "2208", "退费") userJSONBytes, _ := json.Marshal(dat) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "360302" { result, src_resquest = service.Jxyb2208(order.PsnNo, order.MdtrtId, order.SetlId, miConfig.OrgName, roles.UserName, miConfig.SecretKey, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.Url, miConfig.AccessKey, "") var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } saveLog(result, src_resquest, "2208", "退费") userJSONBytes, _ := json.Marshal(dat) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "361025" { result, src_resquest = service.Jxyb2208(order.PsnNo, order.MdtrtId, order.SetlId, miConfig.OrgName, roles.UserName, miConfig.SecretKey, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.Url, miConfig.AccessKey, "") var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } saveLog(result, src_resquest, "2208", "退费") userJSONBytes, _ := json.Marshal(dat) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "360100" { result, src_resquest = service.Jxyb2208(order.PsnNo, order.MdtrtId, order.SetlId, miConfig.OrgName, roles.UserName, miConfig.SecretKey, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.Url, miConfig.AccessKey, "") var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } saveLog(result, src_resquest, "2208", "退费") userJSONBytes, _ := json.Marshal(dat) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "341203" { var api3 string api3 = miConfig.SecretKey + "ahyb/2208?psn_no=" + order.PsnNo + "&mdtrt_id=" + order.MdtrtId + "&setl_id=" + order.SetlId + "&doctor=" + roles.UserName + "&org_name=" + miConfig.OrgName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + his.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&url=" + miConfig.Url + "&ak=" + miConfig.AccessKey + "&cainfo=" + miConfig.Cainfo 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 } status := respJSON3["data"].(map[string]interface{})["status"].(string) if status == "0" { err_msg := respJSON3["data"].(map[string]interface{})["msg"].(string) c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": err_msg, }) return } respJSON3 = respJSON3["data"].(map[string]interface{})["pre"].(map[string]interface{}) userJSONBytes3, _ := json.Marshal(respJSON3) //if err := json.Unmarshal(userJSONBytes3, &res); err != nil { // utils.ErrorLog("解析失败:%v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return //} if err := json.Unmarshal(userJSONBytes3, &ahres); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res.InfRefmsgid = ahres.InfRefmsgid timestamp := int64(ahres.Output.Setlinfo.SetlTime) // 输入要转换的时间戳(这里仅作示例) // 创建对应的Time类型 t := time.UnixMilli(timestamp) // 格式化成指定的日期字符串 str := t.Format("2006-01-02 15:04:05") res.Output.Setlinfo.SetlTime = str res.Output.Setlinfo.AcctMulaidPay = ahres.Output.Setlinfo.AcctMulaidPay res.Output.Setlinfo.AcctPay = ahres.Output.Setlinfo.AcctPay res.Output.Setlinfo.CvlservPay = ahres.Output.Setlinfo.CvlservPay res.Output.Setlinfo.ActPayDedc = ahres.Output.Setlinfo.ActPayDedc //res.Output.Setlinfo.Age = ahres.Output.Setlinfo.Age res.Output.Setlinfo.Balc = ahres.Output.Setlinfo.Balc //res.Output.Setlinfo.Brdy = gzresSeven10265Two.Output.Setlinfo.Brdy //res.Output.Setlinfo.Certno = ahres.Output.Setlinfo.Certno res.Output.Setlinfo.ClrOptins = ahres.Output.Setlinfo.ClrOptins // //res.Output.Setlinfo.ClrType = ahres.Output.Setlinfo.ClrOptins //res.Output.Setlinfo.ClrWay = ahres.Output.Setlinfo.ClrOptins //res.Output.Setlinfo.CvlservFlag = ahres.Output.Setlinfo.ClrOptins res.Output.Setlinfo.CvlservPay = ahres.Output.Setlinfo.CvlservPay res.Output.Setlinfo.FulamtOwnpayAmt = ahres.Output.Setlinfo.FulamtOwnpayAmt res.Output.Setlinfo.FundPaySumamt = ahres.Output.Setlinfo.FundPaySumamt //res.Output.Setlinfo.Gend = ahres.Output.Setlinfo.Gend res.Output.Setlinfo.HifesPay = ahres.Output.Setlinfo.HifesPay res.Output.Setlinfo.HifmiPay = ahres.Output.Setlinfo.HifmiPay res.Output.Setlinfo.HifpPay = ahres.Output.Setlinfo.HifpPay //HospPartAmt, _ := strconv.ParseFloat(gzresSeven10265Two.Output.Setlinfo.HospPartAmt, 64) res.Output.Setlinfo.HospPartAmt = ahres.Output.Setlinfo.HospPartAmt res.Output.Setlinfo.InscpScpAmt = ahres.Output.Setlinfo.InscpScpAmt //res.Output.Setlinfo.Insutype = ahres.Output.Setlinfo.Insutype res.Output.Setlinfo.MafPay = ahres.Output.Setlinfo.MafPay //res.Output.Setlinfo.MdtrtCertType = ahres.Output.Setlinfo.MdtrtCertType res.Output.Setlinfo.HifobPay = ahres.Output.Setlinfo.HifobPay res.Output.Setlinfo.MdtrtID = ahres.Output.Setlinfo.MdtrtID //res.Output.Setlinfo.MedType = ahres.Output.Setlinfo.MedType res.Output.Setlinfo.MedfeeSumamt = ahres.Output.Setlinfo.MedfeeSumamt res.Output.Setlinfo.MedinsSetlID = ahres.Output.Setlinfo.MedinsSetlID //res.Output.Setlinfo.Naty = ahres.Output.Setlinfo.Naty res.Output.Setlinfo.OthPay = ahres.Output.Setlinfo.OthPay res.Output.Setlinfo.OverlmtSelfpay = ahres.Output.Setlinfo.OverlmtSelfpay res.Output.Setlinfo.PreselfpayAmt = ahres.Output.Setlinfo.PreselfpayAmt res.Output.Setlinfo.PsnPartAmt = ahres.Output.Setlinfo.PsnPartAmt res.Output.Setlinfo.SetlID = ahres.Output.Setlinfo.SetlID //res.Output.Setldetail = ahres.Output.Setldetail res.ErrMsg = ahres.ErrMsg res.Cainfo = ahres.Cainfo res.WarnMsg = ahres.WarnMsg res.Infcode = ahres.Infcode } else if miConfig.MdtrtareaAdmvs == "340699" { var api3 string api3 = miConfig.SecretKey + "ahyb/2208?psn_no=" + order.PsnNo + "&mdtrt_id=" + order.MdtrtId + "&setl_id=" + order.SetlId + "&doctor=" + roles.UserName + "&org_name=" + miConfig.OrgName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + his.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&url=" + miConfig.Url + "&ak=" + miConfig.AccessKey + "&cainfo=" + miConfig.Cainfo 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 } status := respJSON3["data"].(map[string]interface{})["status"].(string) if status == "0" { err_msg := respJSON3["data"].(map[string]interface{})["msg"].(string) c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": err_msg, }) return } respJSON3 = respJSON3["data"].(map[string]interface{})["pre"].(map[string]interface{}) userJSONBytes3, _ := json.Marshal(respJSON3) //if err := json.Unmarshal(userJSONBytes3, &res); err != nil { // utils.ErrorLog("解析失败:%v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return //} if err := json.Unmarshal(userJSONBytes3, &ahres); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res.InfRefmsgid = ahres.InfRefmsgid timestamp := int64(ahres.Output.Setlinfo.SetlTime) // 输入要转换的时间戳(这里仅作示例) // 创建对应的Time类型 t := time.UnixMilli(timestamp) // 格式化成指定的日期字符串 str := t.Format("2006-01-02 15:04:05") res.Output.Setlinfo.SetlTime = str res.Output.Setlinfo.AcctMulaidPay = ahres.Output.Setlinfo.AcctMulaidPay res.Output.Setlinfo.AcctPay = ahres.Output.Setlinfo.AcctPay res.Output.Setlinfo.CvlservPay = ahres.Output.Setlinfo.CvlservPay res.Output.Setlinfo.ActPayDedc = ahres.Output.Setlinfo.ActPayDedc //res.Output.Setlinfo.Age = ahres.Output.Setlinfo.Age res.Output.Setlinfo.Balc = ahres.Output.Setlinfo.Balc //res.Output.Setlinfo.Brdy = gzresSeven10265Two.Output.Setlinfo.Brdy //res.Output.Setlinfo.Certno = ahres.Output.Setlinfo.Certno res.Output.Setlinfo.ClrOptins = ahres.Output.Setlinfo.ClrOptins // //res.Output.Setlinfo.ClrType = ahres.Output.Setlinfo.ClrOptins //res.Output.Setlinfo.ClrWay = ahres.Output.Setlinfo.ClrOptins //res.Output.Setlinfo.CvlservFlag = ahres.Output.Setlinfo.ClrOptins res.Output.Setlinfo.CvlservPay = ahres.Output.Setlinfo.CvlservPay res.Output.Setlinfo.FulamtOwnpayAmt = ahres.Output.Setlinfo.FulamtOwnpayAmt res.Output.Setlinfo.FundPaySumamt = ahres.Output.Setlinfo.FundPaySumamt //res.Output.Setlinfo.Gend = ahres.Output.Setlinfo.Gend res.Output.Setlinfo.HifesPay = ahres.Output.Setlinfo.HifesPay res.Output.Setlinfo.HifmiPay = ahres.Output.Setlinfo.HifmiPay res.Output.Setlinfo.HifpPay = ahres.Output.Setlinfo.HifpPay //HospPartAmt, _ := strconv.ParseFloat(gzresSeven10265Two.Output.Setlinfo.HospPartAmt, 64) res.Output.Setlinfo.HospPartAmt = ahres.Output.Setlinfo.HospPartAmt res.Output.Setlinfo.InscpScpAmt = ahres.Output.Setlinfo.InscpScpAmt //res.Output.Setlinfo.Insutype = ahres.Output.Setlinfo.Insutype res.Output.Setlinfo.MafPay = ahres.Output.Setlinfo.MafPay //res.Output.Setlinfo.MdtrtCertType = ahres.Output.Setlinfo.MdtrtCertType res.Output.Setlinfo.HifobPay = ahres.Output.Setlinfo.HifobPay res.Output.Setlinfo.MdtrtID = ahres.Output.Setlinfo.MdtrtID //res.Output.Setlinfo.MedType = ahres.Output.Setlinfo.MedType res.Output.Setlinfo.MedfeeSumamt = ahres.Output.Setlinfo.MedfeeSumamt res.Output.Setlinfo.MedinsSetlID = ahres.Output.Setlinfo.MedinsSetlID //res.Output.Setlinfo.Naty = ahres.Output.Setlinfo.Naty res.Output.Setlinfo.OthPay = ahres.Output.Setlinfo.OthPay res.Output.Setlinfo.OverlmtSelfpay = ahres.Output.Setlinfo.OverlmtSelfpay res.Output.Setlinfo.PreselfpayAmt = ahres.Output.Setlinfo.PreselfpayAmt res.Output.Setlinfo.PsnPartAmt = ahres.Output.Setlinfo.PsnPartAmt res.Output.Setlinfo.SetlID = ahres.Output.Setlinfo.SetlID //res.Output.Setldetail = ahres.Output.Setldetail res.ErrMsg = ahres.ErrMsg res.Cainfo = ahres.Cainfo res.WarnMsg = ahres.WarnMsg res.Infcode = ahres.Infcode } else if miConfig.MdtrtareaAdmvs == "430800" { result, src_resquest = service.Hnyb2208(order.PsnNo, order.MdtrtId, order.SetlId, miConfig.OrgName, roles.UserName, miConfig.SecretKey, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.Url, miConfig.AccessKey, "") var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } saveLog(result, src_resquest, "2208", "退费") userJSONBytes, _ := json.Marshal(dat) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "441799" { api3 := miConfig.Url + "gdyb/2208?psn_no=" + order.PsnNo + "&mdtrt_id=" + order.MdtrtId + "&setl_id=" + order.SetlId + "&operator=" + roles.UserName + "&org_name=" + miConfig.OrgName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + his.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey 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{})["pre"].(map[string]interface{}) userJSONBytes3, _ := json.Marshal(respJSON3) fmt.Println("log") fmt.Println(string(userJSONBytes3)) if err := json.Unmarshal(userJSONBytes3, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else { if miConfig.Code == "H15049901371" { result, src_resquest = service.Gdyb2208(order.PsnNo, order.MdtrtId, order.SetlId, miConfig.OrgName, roles.UserName, miConfig.SecretKey, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, admin_user_id) var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } saveLog(result, src_resquest, "2208", "退费") if strings.Contains(result, "Post") { res.Infcode = -1 res.ErrMsg = result } userJSONBytes, _ := json.Marshal(dat) if err := json.Unmarshal(userJSONBytes, &resSixteen10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res.InfRefmsgid = resSixteen10265.InfRefmsgid res.Output = resSixteen10265.Output res.ErrMsg = resSixteen10265.ErrMsg res.Cainfo = resSixteen10265.Cainfo res.WarnMsg = resSixteen10265.WarnMsg infocode, _ := strconv.ParseInt(resSixteen10265.Infcode, 10, 64) res.Infcode = infocode } else { result, src_resquest = service.Gdyb2208(order.PsnNo, order.MdtrtId, order.SetlId, miConfig.OrgName, roles.UserName, miConfig.SecretKey, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, admin_user_id) var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } saveLog(result, src_resquest, "2208", "退费") userJSONBytes, _ := json.Marshal(dat) if strings.Contains(his.InsuplcAdmdvs, "4401") { if err := json.Unmarshal(userJSONBytes, &gz); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res.Infcode = gz.Infcode } else { if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } if strings.Contains(result, "Post") { res.Infcode = -1 res.ErrMsg = result } } } if res.Infcode == -1 { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res.ErrMsg, }) return } if res.Infcode != -1 { var res2 ResultSix var resSix10265 ResultSix10265 if miConfig.MdtrtareaAdmvs == "421300" { api3 := "http://192.168.124.4:9532/" + "hbyb/2205?psn_no=" + order.PsnNo + "&mdtrt_id=" + order.MdtrtId + "&chrg_bchno=" + order.Number + "&doctor=" + roles.UserName + "&org_name=" + miConfig.OrgName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + his.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey 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{})["pre"].(map[string]interface{}) userJSONBytes3, _ := json.Marshal(respJSON3) fmt.Println("log") fmt.Println(string(userJSONBytes3)) if err := json.Unmarshal(userJSONBytes3, &res2); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "420200" { api3 := "http://192.168.0.197:9532/" + "hbyb/2205?psn_no=" + order.PsnNo + "&mdtrt_id=" + order.MdtrtId + "&chrg_bchno=" + order.Number + "&doctor=" + roles.UserName + "&org_name=" + miConfig.OrgName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + his.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey 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{})["pre"].(map[string]interface{}) userJSONBytes3, _ := json.Marshal(respJSON3) fmt.Println("log") fmt.Println(string(userJSONBytes3)) if err := json.Unmarshal(userJSONBytes3, &res2); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "420902" { api3 := miConfig.Url + "hbyb/2205?psn_no=" + order.PsnNo + "&mdtrt_id=" + order.MdtrtId + "&chrg_bchno=" + order.Number + "&doctor=" + roles.UserName + "&org_name=" + miConfig.OrgName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + his.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey 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{})["pre"].(map[string]interface{}) userJSONBytes3, _ := json.Marshal(respJSON3) fmt.Println("log") fmt.Println(string(userJSONBytes3)) if err := json.Unmarshal(userJSONBytes3, &res2); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "421182" { api3 := miConfig.Url + "hbyb/2205?psn_no=" + order.PsnNo + "&mdtrt_id=" + order.MdtrtId + "&chrg_bchno=" + order.Number + "&doctor=" + roles.UserName + "&org_name=" + miConfig.OrgName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + his.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey 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{})["pre"].(map[string]interface{}) userJSONBytes3, _ := json.Marshal(respJSON3) fmt.Println("log") fmt.Println(string(userJSONBytes3)) if err := json.Unmarshal(userJSONBytes3, &res2); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "320921" || miConfig.MdtrtareaAdmvs == "320982" { var api3 string if miConfig.MdtrtareaAdmvs == "320921" { api3 = "http://192.168.2.3:9532/" + "jsyb/2205?psn_no=" + order.PsnNo + "&mdtrt_id=" + order.MdtrtId + "&chrg_bchno=" + order.Number + "&doctor=" + roles.UserName + "&org_name=" + miConfig.OrgName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + his.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&url=" + miConfig.Url + "&ak=" + miConfig.AccessKey + "&cainfo=" + miConfig.Cainfo //req, _ = http.NewRequest("POST", "http://192.168.2.110:9532/"+"jsyb/2204", bytes.NewReader(bytesData)) } else { //req, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/2204", bytes.NewReader(bytesData)) api3 = "http://192.168.5.251:9532/" + "jsyb/2205?psn_no=" + order.PsnNo + "&mdtrt_id=" + order.MdtrtId + "&chrg_bchno=" + order.Number + "&doctor=" + roles.UserName + "&org_name=" + miConfig.OrgName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + his.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&url=" + miConfig.Url + "&ak=" + miConfig.AccessKey + "&cainfo=" + miConfig.Cainfo } 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{})["pre"].(map[string]interface{}) userJSONBytes3, _ := json.Marshal(respJSON3) fmt.Println("log") fmt.Println(string(userJSONBytes3)) if err := json.Unmarshal(userJSONBytes3, &resSix10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res2.InfRefmsgid = resSix10265.InfRefmsgid res2.Output = resSix10265.Output res2.ErrMsg = resSix10265.ErrMsg res2.Cainfo = resSix10265.Cainfo res2.WarnMsg = resSix10265.WarnMsg infocode, _ := strconv.ParseInt(resSix10265.Infcode, 10, 64) res2.Infcode = infocode } else if miConfig.MdtrtareaAdmvs == "150499" { var api3 string new_chrg_bchno := order.Number if adminUser.CurrentOrgId == 10265 { if !strings.Contains(his.InsuplcAdmdvs, "1504") { new_chrg_bchno = "0000" } } api3 = "http://172.16.13.254:9532/" + "nmyb/2205?psn_no=" + order.PsnNo + "&mdtrt_id=" + order.MdtrtId + "&chrg_bchno=" + new_chrg_bchno + "&doctor=" + roles.UserName + "&org_name=" + miConfig.OrgName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + his.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&url=" + miConfig.Url + "&ak=" + miConfig.AccessKey + "&cainfo=" + miConfig.Cainfo 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{})["pre"].(map[string]interface{}) userJSONBytes3, _ := json.Marshal(respJSON3) fmt.Println("log") fmt.Println(string(userJSONBytes3)) if err := json.Unmarshal(userJSONBytes3, &resSix10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res2.InfRefmsgid = resSix10265.InfRefmsgid res2.Output = resSix10265.Output res2.ErrMsg = resSix10265.ErrMsg res2.Cainfo = resSix10265.Cainfo res2.WarnMsg = resSix10265.WarnMsg infocode, _ := strconv.ParseInt(resSix10265.Infcode, 10, 64) res2.Infcode = infocode } else if miConfig.MdtrtareaAdmvs == "350500" { result2, src_request, _ := service.FJyb2205(order.PsnNo, order.MdtrtId, "0000", miConfig.OrgName, roles.UserName, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, miConfig.Code, miConfig.Url, miConfig.Code, miConfig.AppSecret, miConfig.SignKey, miConfig.EncKey) var dat map[string]interface{} if err := json.Unmarshal([]byte(result2), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } saveLog(result2, src_request, "2205", "撤销明细") userJSONBytes, _ := json.Marshal(dat) if err := json.Unmarshal(userJSONBytes, &res2); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "360302" { result2, src_request := service.Jxyb2205(order.PsnNo, order.MdtrtId, order.Number, miConfig.OrgName, roles.UserName, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, miConfig.Code, miConfig.Url, miConfig.AccessKey, "") var dat map[string]interface{} if err := json.Unmarshal([]byte(result2), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } saveLog(result2, src_request, "2205", "撤销明细") userJSONBytes, _ := json.Marshal(dat) if err := json.Unmarshal(userJSONBytes, &res2); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "361025" { result2, src_request := service.Jxyb2205(order.PsnNo, order.MdtrtId, order.Number, miConfig.OrgName, roles.UserName, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, miConfig.Code, miConfig.Url, miConfig.AccessKey, "") var dat map[string]interface{} if err := json.Unmarshal([]byte(result2), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } saveLog(result2, src_request, "2205", "撤销明细") userJSONBytes, _ := json.Marshal(dat) if err := json.Unmarshal(userJSONBytes, &res2); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "360100" { result2, src_request := service.Jxyb2205(order.PsnNo, order.MdtrtId, order.Number, miConfig.OrgName, roles.UserName, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, miConfig.Code, miConfig.Url, miConfig.AccessKey, "") var dat map[string]interface{} if err := json.Unmarshal([]byte(result2), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } saveLog(result2, src_request, "2205", "撤销明细") userJSONBytes, _ := json.Marshal(dat) if err := json.Unmarshal(userJSONBytes, &res2); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "341203" { var api3 string api3 = miConfig.SecretKey + "ahyb/2205?psn_no=" + order.PsnNo + "&mdtrt_id=" + order.MdtrtId + "&chrg_bchno=" + order.Number + "&doctor=" + roles.UserName + "&org_name=" + miConfig.OrgName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + his.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&url=" + miConfig.Url + "&ak=" + miConfig.AccessKey + "&cainfo=" + miConfig.Cainfo 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 } status := respJSON3["data"].(map[string]interface{})["status"].(string) if status == "0" { err_msg := respJSON3["data"].(map[string]interface{})["msg"].(string) c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": err_msg, }) return } respJSON3 = respJSON3["data"].(map[string]interface{})["pre"].(map[string]interface{}) userJSONBytes3, _ := json.Marshal(respJSON3) fmt.Println("log") fmt.Println(string(userJSONBytes3)) if err := json.Unmarshal(userJSONBytes3, &res2); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "360302" { result2, src_request := service.Jxyb2205(order.PsnNo, order.MdtrtId, order.Number, miConfig.OrgName, roles.UserName, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, miConfig.Code, miConfig.Url, miConfig.AccessKey, "") var dat map[string]interface{} if err := json.Unmarshal([]byte(result2), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } saveLog(result2, src_request, "2205", "撤销明细") userJSONBytes, _ := json.Marshal(dat) if err := json.Unmarshal(userJSONBytes, &res2); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "361025" { result2, src_request := service.Jxyb2205(order.PsnNo, order.MdtrtId, order.Number, miConfig.OrgName, roles.UserName, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, miConfig.Code, miConfig.Url, miConfig.AccessKey, "") var dat map[string]interface{} if err := json.Unmarshal([]byte(result2), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } saveLog(result2, src_request, "2205", "撤销明细") userJSONBytes, _ := json.Marshal(dat) if err := json.Unmarshal(userJSONBytes, &res2); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "360100" { result2, src_request := service.Jxyb2205(order.PsnNo, order.MdtrtId, order.Number, miConfig.OrgName, roles.UserName, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, miConfig.Code, miConfig.Url, miConfig.AccessKey, "") var dat map[string]interface{} if err := json.Unmarshal([]byte(result2), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } saveLog(result2, src_request, "2205", "撤销明细") userJSONBytes, _ := json.Marshal(dat) if err := json.Unmarshal(userJSONBytes, &res2); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "340699" { var api3 string api3 = miConfig.SecretKey + "ahyb/2205?psn_no=" + order.PsnNo + "&mdtrt_id=" + order.MdtrtId + "&chrg_bchno=" + order.Number + "&doctor=" + roles.UserName + "&org_name=" + miConfig.OrgName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + his.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&url=" + miConfig.Url + "&ak=" + miConfig.AccessKey + "&cainfo=" + miConfig.Cainfo 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 } status := respJSON3["data"].(map[string]interface{})["status"].(string) if status == "0" { err_msg := respJSON3["data"].(map[string]interface{})["msg"].(string) c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": err_msg, }) return } respJSON3 = respJSON3["data"].(map[string]interface{})["pre"].(map[string]interface{}) userJSONBytes3, _ := json.Marshal(respJSON3) fmt.Println("log") fmt.Println(string(userJSONBytes3)) if err := json.Unmarshal(userJSONBytes3, &res2); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "430800" { result2, src_request := service.Hnyb2205(order.PsnNo, order.MdtrtId, order.Number, miConfig.OrgName, roles.UserName, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, miConfig.Code, miConfig.Url, miConfig.AccessKey, "") var dat map[string]interface{} if err := json.Unmarshal([]byte(result2), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } saveLog(result2, src_request, "2205", "撤销明细") userJSONBytes, _ := json.Marshal(dat) if err := json.Unmarshal(userJSONBytes, &res2); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "441799" { api3 := miConfig.Url + "gdyb/six?psn_no=" + order.PsnNo + "&mdtrt_id=" + order.MdtrtId + "&chrg_bchno=" + order.Number + "&doctor=" + roles.UserName + "&org_name=" + miConfig.OrgName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + his.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey 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{})["pre"].(map[string]interface{}) userJSONBytes3, _ := json.Marshal(respJSON3) fmt.Println("log") fmt.Println(string(userJSONBytes3)) if err := json.Unmarshal(userJSONBytes3, &res2); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else { if strings.Contains(his.InsuplcAdmdvs, "4401") { res2.Infcode = 0 } else { result2, src_request := service.Gdyb2205(order.PsnNo, order.MdtrtId, order.Number, miConfig.OrgName, roles.UserName, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, miConfig.Code, admin_user_id) var dat map[string]interface{} if err := json.Unmarshal([]byte(result2), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } saveLog(result2, src_request, "2205", "撤销明细") userJSONBytes, _ := json.Marshal(dat) if err := json.Unmarshal(userJSONBytes, &res2); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } } if res2.Infcode == -1 { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res2.ErrMsg, }) return } if res2.Infcode == 0 { err := service.UpdataOrderStatus(order_id, order.Number, adminUser.CurrentOrgId, src_resquest, result) if err == nil { //当押金不为零时产生退费记录 if order.Decimal != 0 { tmp := strconv.FormatInt(order.ID, 10) err = service.MoneyIncrease(adminUser.CurrentOrgId, order.PatientId, tmp, order.Decimal) if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } c.ServeSuccessJSON(map[string]interface{}{ "msg": "退费成功", }) } else { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res2.ErrMsg, }) } } else { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res.ErrMsg, }) } } } func (c *HisApiController) RefundNumber() { record_time := c.GetString("record_time") //patient_id, _ := c.GetInt64("patient_id") admin_user_id, _ := c.GetInt64("admin_user_id") his_patient_id, _ := c.GetInt64("id") timeLayout := "2006-01-02" loc, _ := time.LoadLocation("Local") adminUser := c.GetAdminUserInfo() theTime, err := time.ParseInLocation(timeLayout+" 15:04:05", record_time+" 00:00:00", loc) fmt.Println(err) if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } recordDateTime := theTime.Unix() //his, _ := service.GetVMHisPatientInfo(adminUser.CurrentOrgId, patient_id, recordDateTime) his, _ := service.GetHisPatientRecord(adminUser.CurrentOrgId, his_patient_id) //patientPrescription, _ := service.FindPatientPrescriptionInfo(adminUser.CurrentOrgId, patient_id, recordDateTime) //order, _ := service.GetHisOrderByID(order_id) miConfig, _ := service.FindMedicalInsuranceInfo(adminUser.CurrentOrgId) config, _ := service.GetMedicalInsuranceConfig(adminUser.CurrentOrgId) roles, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, admin_user_id) count, _ := service.GetOrderCountByNumber(adminUser.CurrentOrgId, his.PatientId, recordDateTime, his.Number) if count > 0 { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeOrderParamWrong) return } if config.IsOpen == 1 { //对接了医保,走医保流程 var res2 ResultSix var res3 GZResultSix var resSix10265 ResultSix10265 if miConfig.MdtrtareaAdmvs == "421300" { api3 := "http://192.168.124.4:9532/" + "hbyb/2202?psn_no=" + his.PsnNo + "&mdtrt_id=" + his.Number + "&ipt_otp_no=" + his.IptOtpNo + "&doctor=" + roles.UserName + "&org_name=" + miConfig.OrgName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + his.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey 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{})["pre"].(map[string]interface{}) userJSONBytes3, _ := json.Marshal(respJSON3) fmt.Println("log") fmt.Println(string(userJSONBytes3)) if err := json.Unmarshal(userJSONBytes3, &res2); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "420200" { api3 := "http://192.168.0.197:9532/" + "hbyb/2202?psn_no=" + his.PsnNo + "&mdtrt_id=" + his.Number + "&ipt_otp_no=" + his.IptOtpNo + "&doctor=" + roles.UserName + "&org_name=" + miConfig.OrgName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + his.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey 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{})["pre"].(map[string]interface{}) userJSONBytes3, _ := json.Marshal(respJSON3) fmt.Println("log") fmt.Println(string(userJSONBytes3)) if err := json.Unmarshal(userJSONBytes3, &res2); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "420902" { api3 := miConfig.Url + "hbyb/2202?psn_no=" + his.PsnNo + "&mdtrt_id=" + his.Number + "&ipt_otp_no=" + his.IptOtpNo + "&doctor=" + roles.UserName + "&org_name=" + miConfig.OrgName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + his.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey 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{})["pre"].(map[string]interface{}) userJSONBytes3, _ := json.Marshal(respJSON3) fmt.Println("log") fmt.Println(string(userJSONBytes3)) if err := json.Unmarshal(userJSONBytes3, &res2); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "421182" { api3 := miConfig.Url + "hbyb/2202?psn_no=" + his.PsnNo + "&mdtrt_id=" + his.Number + "&ipt_otp_no=" + his.IptOtpNo + "&doctor=" + roles.UserName + "&org_name=" + miConfig.OrgName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + his.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey 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{})["pre"].(map[string]interface{}) userJSONBytes3, _ := json.Marshal(respJSON3) fmt.Println("log") fmt.Println(string(userJSONBytes3)) if err := json.Unmarshal(userJSONBytes3, &res2); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "320921" || miConfig.MdtrtareaAdmvs == "320982" { var api3 string if miConfig.MdtrtareaAdmvs == "320921" { api3 = "http://192.168.2.3:9532/" + "jsyb/2202?psn_no=" + his.PsnNo + "&mdtrt_id=" + his.Number + "&ipt_otp_no=" + his.IptOtpNo + "&doctor=" + roles.UserName + "&org_name=" + miConfig.OrgName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + his.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&url=" + miConfig.Url + "&ak=" + miConfig.AccessKey + "&cainfo=" + miConfig.Cainfo //req, _ = http.NewRequest("POST", "http://192.168.2.110:9532/"+"jsyb/2204", bytes.NewReader(bytesData)) } else { //req, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/2204", bytes.NewReader(bytesData)) api3 = "http://192.168.5.251:9532/" + "jsyb/2202?psn_no=" + his.PsnNo + "&mdtrt_id=" + his.Number + "&ipt_otp_no=" + his.IptOtpNo + "&doctor=" + roles.UserName + "&org_name=" + miConfig.OrgName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + his.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&url=" + miConfig.Url + "&ak=" + miConfig.AccessKey + "&cainfo=" + miConfig.Cainfo } 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{})["pre"].(map[string]interface{}) userJSONBytes3, _ := json.Marshal(respJSON3) if err := json.Unmarshal(userJSONBytes3, &resSix10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res2.InfRefmsgid = resSix10265.InfRefmsgid res2.Output = resSix10265.Output res2.ErrMsg = resSix10265.ErrMsg res2.Cainfo = resSix10265.Cainfo res2.WarnMsg = resSix10265.WarnMsg infocode, _ := strconv.ParseInt(resSix10265.Infcode, 10, 64) res2.Infcode = infocode } else if miConfig.MdtrtareaAdmvs == "150499" { var api3 string api3 = "http://172.16.13.254:9532/" + "nmyb/2202?psn_no=" + his.PsnNo + "&mdtrt_id=" + his.Number + "&ipt_otp_no=" + his.IptOtpNo + "&doctor=" + roles.UserName + "&org_name=" + miConfig.OrgName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + his.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&url=" + miConfig.Url + "&ak=" + miConfig.AccessKey + "&cainfo=" + miConfig.Cainfo 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{})["pre"].(map[string]interface{}) userJSONBytes3, _ := json.Marshal(respJSON3) if err := json.Unmarshal(userJSONBytes3, &resSix10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res2.InfRefmsgid = resSix10265.InfRefmsgid res2.Output = resSix10265.Output res2.ErrMsg = resSix10265.ErrMsg res2.Cainfo = resSix10265.Cainfo res2.WarnMsg = resSix10265.WarnMsg infocode, _ := strconv.ParseInt(resSix10265.Infcode, 10, 64) res2.Infcode = infocode } else if miConfig.MdtrtareaAdmvs == "350500" { result, request, _ := service.FJyb2202(his.PsnNo, his.Number, his.IptOtpNo, miConfig.OrgName, roles.UserName, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, miConfig.Code, miConfig.Url, miConfig.Code, miConfig.AppSecret, miConfig.SignKey, miConfig.EncKey) var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } saveLog(result, request, "2202", "退号") userJSONBytes, _ := json.Marshal(dat) if err := json.Unmarshal(userJSONBytes, &res2); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "360302" { result, request := service.Jxyb2202(his.PsnNo, his.Number, his.IptOtpNo, miConfig.OrgName, roles.UserName, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, miConfig.Code, miConfig.Url, miConfig.AccessKey, "") var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } saveLog(result, request, "2202", "退号") userJSONBytes, _ := json.Marshal(dat) if err := json.Unmarshal(userJSONBytes, &res2); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "361025" { result, request := service.Jxyb2202(his.PsnNo, his.Number, his.IptOtpNo, miConfig.OrgName, roles.UserName, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, miConfig.Code, miConfig.Url, miConfig.AccessKey, "") var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } saveLog(result, request, "2202", "退号") userJSONBytes, _ := json.Marshal(dat) if err := json.Unmarshal(userJSONBytes, &res2); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "360100" { result, request := service.Jxyb2202(his.PsnNo, his.Number, his.IptOtpNo, miConfig.OrgName, roles.UserName, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, miConfig.Code, miConfig.Url, miConfig.AccessKey, "") var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } saveLog(result, request, "2202", "退号") userJSONBytes, _ := json.Marshal(dat) if err := json.Unmarshal(userJSONBytes, &res2); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "341203" { var api3 string api3 = miConfig.SecretKey + "ahyb/2202?psn_no=" + his.PsnNo + "&mdtrt_id=" + his.Number + "&ipt_otp_no=" + his.IptOtpNo + "&doctor=" + roles.UserName + "&org_name=" + miConfig.OrgName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + his.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&url=" + miConfig.Url + "&ak=" + miConfig.AccessKey + "&cainfo=" + miConfig.Cainfo //req, _ = http.NewRequest("POST", "http://192.168.2.110:9532/"+"jsyb/2204", bytes.NewReader(bytesData)) 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 } status := respJSON3["data"].(map[string]interface{})["status"].(string) if status == "0" { err_msg := respJSON3["data"].(map[string]interface{})["msg"].(string) c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": err_msg, }) return } respJSON3 = respJSON3["data"].(map[string]interface{})["pre"].(map[string]interface{}) userJSONBytes3, _ := json.Marshal(respJSON3) if err := json.Unmarshal(userJSONBytes3, &res2); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } utils.ErrorLog("接口返回数据解析JSON失败: %v", res2.Infcode) } else if miConfig.MdtrtareaAdmvs == "340699" { var api3 string api3 = miConfig.SecretKey + "ahyb/2202?psn_no=" + his.PsnNo + "&mdtrt_id=" + his.Number + "&ipt_otp_no=" + his.IptOtpNo + "&doctor=" + roles.UserName + "&org_name=" + miConfig.OrgName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + his.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&url=" + miConfig.Url + "&ak=" + miConfig.AccessKey + "&cainfo=" + miConfig.Cainfo //req, _ = http.NewRequest("POST", "http://192.168.2.110:9532/"+"jsyb/2204", bytes.NewReader(bytesData)) 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 } status := respJSON3["data"].(map[string]interface{})["status"].(string) if status == "0" { err_msg := respJSON3["data"].(map[string]interface{})["msg"].(string) c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": err_msg, }) return } respJSON3 = respJSON3["data"].(map[string]interface{})["pre"].(map[string]interface{}) userJSONBytes3, _ := json.Marshal(respJSON3) if err := json.Unmarshal(userJSONBytes3, &res2); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } utils.ErrorLog("接口返回数据解析JSON失败: %v", res2.Infcode) } else if miConfig.MdtrtareaAdmvs == "430800" { result, request := service.Hnyb2202(his.PsnNo, his.Number, his.IptOtpNo, miConfig.OrgName, roles.UserName, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, miConfig.Code, miConfig.Url, miConfig.AccessKey, "") var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } saveLog(result, request, "2202", "退号") userJSONBytes, _ := json.Marshal(dat) if err := json.Unmarshal(userJSONBytes, &res2); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "441799" { api3 := miConfig.Url + "gdyb/2202?psn_no=" + his.PsnNo + "&mdtrt_id=" + his.Number + "&ipt_otp_no=" + his.IptOtpNo + "&operator=" + roles.UserName + "&org_name=" + miConfig.OrgName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + his.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&admin_user_id=" + strconv.FormatInt(admin_user_id, 10) 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{})["pre"].(map[string]interface{}) userJSONBytes3, _ := json.Marshal(respJSON3) if err := json.Unmarshal(userJSONBytes3, &res2); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else { var api3 string if miConfig.Code == "H15049901371" { api3 = "http://127.0.0.1:9532/" + "gdyb/three?psn_no=" + his.PsnNo + "&mdtrt_id=" + his.Number + "&ipt_otp_no=" + his.IptOtpNo + "&doctor=" + roles.UserName + "&org_name=" + miConfig.OrgName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + his.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey } else { api3 = "http://127.0.0.1:9532/" + "gdyb/2202?psn_no=" + his.PsnNo + "&mdtrt_id=" + his.Number + "&ipt_otp_no=" + his.IptOtpNo + "&operator=" + roles.UserName + "&org_name=" + miConfig.OrgName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + his.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&admin_user_id=" + strconv.FormatInt(admin_user_id, 10) } 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{})["pre"].(map[string]interface{}) userJSONBytes3, _ := json.Marshal(respJSON3) if miConfig.Code == "H15049901371" { if err := json.Unmarshal(userJSONBytes3, &resSix10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res2.InfRefmsgid = resSix10265.InfRefmsgid res2.Output = resSix10265.Output res2.ErrMsg = resSix10265.ErrMsg res2.Cainfo = resSix10265.Cainfo res2.WarnMsg = resSix10265.WarnMsg infocode, _ := strconv.ParseInt(resSix10265.Infcode, 10, 64) res2.Infcode = infocode } else { if strings.Contains(his.InsuplcAdmdvs, "4401") { if err := json.Unmarshal(userJSONBytes3, &res3); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res2.Infcode = res3.Infcode } else { if err := json.Unmarshal(userJSONBytes3, &res2); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } } } if res2.Infcode == -1 { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res2.ErrMsg, }) return } if res2.Infcode == 0 { if err == nil { c.ServeSuccessJSON(map[string]interface{}{ "msg": "退号成功", }) service.UpdataRegStatusTwo(his_patient_id, recordDateTime, adminUser.CurrentOrgId) } else { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } } else { //err := service.UpdataOrderStatus(order_id, number, adminUser.CurrentOrgId) //if err == nil { // c.ServeSuccessJSON(map[string]interface{}{ // "msg": "退费成功", // }) //} else { // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return //} } } func (c *HisApiController) RefundDetail() { order_id, _ := c.GetInt64("order_id") admin_user_id, _ := c.GetInt64("admin_user_id") //his_patient_id, _ := c.GetInt64("his_patient_id") number := c.GetString("number") record_time := c.GetString("record_time") patient_id, _ := c.GetInt64("patient_id") //med_type, _ := c.GetInt64("med_type") timeLayout := "2006-01-02" loc, _ := time.LoadLocation("Local") adminUser := c.GetAdminUserInfo() roles, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, admin_user_id) theTime, err := time.ParseInLocation(timeLayout+" 15:04:05", record_time+" 00:00:00", loc) fmt.Println(err) if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } recordDateTime := theTime.Unix() //his, _ := service.GetNewVMHisPatientInfo(adminUser.CurrentOrgId, his_patient_id, recordDateTime) patientPrescription, _ := service.FindPatientPrescriptionInfo(adminUser.CurrentOrgId, patient_id, recordDateTime) miConfig, _ := service.FindMedicalInsuranceInfo(adminUser.CurrentOrgId) config, _ := service.GetMedicalInsuranceConfig(adminUser.CurrentOrgId) var order models.HisOrder order, _ = service.GetHisOrderByID(order_id) his, _ := service.GetHisPatientByNumber(order.MdtrtId) if config.IsOpen == 1 { //对接了医保,走医保流程 var res2 ResultSix if miConfig.MdtrtareaAdmvs == "421300" { api3 := "http://192.168.124.4:9532/" + "hbyb/2205?psn_no=" + order.PsnNo + "&mdtrt_id=" + order.MdtrtId + "&chrg_bchno=" + order.Number + "&doctor=" + patientPrescription.Doctor + "&org_name=" + miConfig.OrgName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + his.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey 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{})["pre"].(map[string]interface{}) userJSONBytes3, _ := json.Marshal(respJSON3) fmt.Println("log") fmt.Println(string(userJSONBytes3)) if err := json.Unmarshal(userJSONBytes3, &res2); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } err := service.UpdataOrderStatus(order_id, number, adminUser.CurrentOrgId, "", "") if err == nil { c.ServeSuccessJSON(map[string]interface{}{ "msg": "撤销明细成功", }) return } else { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "420200" { api3 := "http://192.168.0.197:9532/" + "hbyb/2205?psn_no=" + order.PsnNo + "&mdtrt_id=" + order.MdtrtId + "&chrg_bchno=" + order.Number + "&doctor=" + patientPrescription.Doctor + "&org_name=" + miConfig.OrgName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + his.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey 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{})["pre"].(map[string]interface{}) userJSONBytes3, _ := json.Marshal(respJSON3) fmt.Println("log") fmt.Println(string(userJSONBytes3)) if err := json.Unmarshal(userJSONBytes3, &res2); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } err := service.UpdataOrderStatus(order_id, number, adminUser.CurrentOrgId, "", "") if err == nil { c.ServeSuccessJSON(map[string]interface{}{ "msg": "撤销明细成功", }) return } else { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "420902" { api3 := miConfig.Url + "hbyb/2205?psn_no=" + order.PsnNo + "&mdtrt_id=" + order.MdtrtId + "&chrg_bchno=" + order.Number + "&doctor=" + patientPrescription.Doctor + "&org_name=" + miConfig.OrgName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + his.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey 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{})["pre"].(map[string]interface{}) userJSONBytes3, _ := json.Marshal(respJSON3) fmt.Println("log") fmt.Println(string(userJSONBytes3)) if err := json.Unmarshal(userJSONBytes3, &res2); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } err := service.UpdataOrderStatus(order_id, number, adminUser.CurrentOrgId, "", "") if err == nil { c.ServeSuccessJSON(map[string]interface{}{ "msg": "撤销明细成功", }) return } else { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "421182" { api3 := miConfig.Url + "hbyb/2205?psn_no=" + order.PsnNo + "&mdtrt_id=" + order.MdtrtId + "&chrg_bchno=" + order.Number + "&doctor=" + patientPrescription.Doctor + "&org_name=" + miConfig.OrgName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + his.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey 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{})["pre"].(map[string]interface{}) userJSONBytes3, _ := json.Marshal(respJSON3) fmt.Println("log") fmt.Println(string(userJSONBytes3)) if err := json.Unmarshal(userJSONBytes3, &res2); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } err := service.UpdataOrderStatus(order_id, number, adminUser.CurrentOrgId, "", "") if err == nil { c.ServeSuccessJSON(map[string]interface{}{ "msg": "撤销明细成功", }) return } else { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "320921" || miConfig.MdtrtareaAdmvs == "320982" { var resSix10265 ResultSix10265 var api3 string if miConfig.MdtrtareaAdmvs == "320921" { api3 = "http://192.168.2.3:9532/" + "jsyb/2205?psn_no=" + order.PsnNo + "&mdtrt_id=" + order.MdtrtId + "&chrg_bchno=" + order.Number + "&doctor=" + patientPrescription.Doctor + "&org_name=" + miConfig.OrgName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + his.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&url=" + miConfig.Url + "&ak=" + miConfig.AccessKey + "&cainfo=" + miConfig.Cainfo //req, _ = http.NewRequest("POST", "http://192.168.2.110:9532/"+"jsyb/2204", bytes.NewReader(bytesData)) } else { //req, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/2204", bytes.NewReader(bytesData)) api3 = "http://192.168.5.251:9532/" + "jsyb/2205?psn_no=" + order.PsnNo + "&mdtrt_id=" + order.MdtrtId + "&chrg_bchno=" + order.Number + "&doctor=" + patientPrescription.Doctor + "&org_name=" + miConfig.OrgName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + his.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&url=" + miConfig.Url + "&ak=" + miConfig.AccessKey + "&cainfo=" + miConfig.Cainfo } resp3, requestErr3 := http.Get(api3) utils.ErrorLog("接口: %v", requestErr3) 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{})["pre"].(map[string]interface{}) userJSONBytes3, _ := json.Marshal(respJSON3) fmt.Println("log") fmt.Println(string(userJSONBytes3)) if err := json.Unmarshal(userJSONBytes3, &resSix10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res2.InfRefmsgid = resSix10265.InfRefmsgid res2.Output = resSix10265.Output res2.ErrMsg = resSix10265.ErrMsg res2.Cainfo = resSix10265.Cainfo res2.WarnMsg = resSix10265.WarnMsg infocode, _ := strconv.ParseInt(resSix10265.Infcode, 10, 64) res2.Infcode = infocode err := service.UpdataOrderStatus(order_id, number, adminUser.CurrentOrgId, "", "") if err == nil { c.ServeSuccessJSON(map[string]interface{}{ "msg": "撤销明细成功", }) return } else { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "341203" { var api3 string api3 = miConfig.SecretKey + "ahyb/2205?psn_no=" + order.PsnNo + "&mdtrt_id=" + order.MdtrtId + "&chrg_bchno=" + order.Number + "&doctor=" + roles.UserName + "&org_name=" + miConfig.OrgName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + his.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&url=" + miConfig.Url + "&ak=" + miConfig.AccessKey + "&cainfo=" + miConfig.Cainfo //req, _ = http.NewRequest("POST", "http://192.168.2.110:9532/"+"jsyb/2204", bytes.NewReader(bytesData)) resp3, requestErr3 := http.Get(api3) utils.ErrorLog("接口: %v", requestErr3) 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 } status := respJSON3["data"].(map[string]interface{})["status"].(string) if status == "0" { err_msg := respJSON3["data"].(map[string]interface{})["msg"].(string) c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": err_msg, }) return } respJSON3 = respJSON3["data"].(map[string]interface{})["pre"].(map[string]interface{}) userJSONBytes3, _ := json.Marshal(respJSON3) fmt.Println("log") fmt.Println(string(userJSONBytes3)) if err := json.Unmarshal(userJSONBytes3, &res2); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } fmt.Println(res2.Infcode) if res2.Infcode == -1 { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res2.ErrMsg, }) return } if res2.Infcode == 0 { err := service.UpdataOrderStatus(order_id, number, adminUser.CurrentOrgId, "", "") if err == nil { c.ServeSuccessJSON(map[string]interface{}{ "msg": "撤销明细成功", }) return } else { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res2.ErrMsg, }) } err := service.UpdataOrderStatus(order_id, number, adminUser.CurrentOrgId, "", "") if err == nil { c.ServeSuccessJSON(map[string]interface{}{ "msg": "撤销明细成功", }) return } else { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "340699" { var api3 string api3 = miConfig.SecretKey + "ahyb/2205?psn_no=" + order.PsnNo + "&mdtrt_id=" + order.MdtrtId + "&chrg_bchno=" + order.Number + "&doctor=" + roles.UserName + "&org_name=" + miConfig.OrgName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + his.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&url=" + miConfig.Url + "&ak=" + miConfig.AccessKey + "&cainfo=" + miConfig.Cainfo //req, _ = http.NewRequest("POST", "http://192.168.2.110:9532/"+"jsyb/2204", bytes.NewReader(bytesData)) resp3, requestErr3 := http.Get(api3) utils.ErrorLog("接口: %v", requestErr3) 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 } status := respJSON3["data"].(map[string]interface{})["status"].(string) if status == "0" { err_msg := respJSON3["data"].(map[string]interface{})["msg"].(string) c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": err_msg, }) return } respJSON3 = respJSON3["data"].(map[string]interface{})["pre"].(map[string]interface{}) userJSONBytes3, _ := json.Marshal(respJSON3) fmt.Println("log") fmt.Println(string(userJSONBytes3)) if err := json.Unmarshal(userJSONBytes3, &res2); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } fmt.Println(res2.Infcode) if res2.Infcode == -1 { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res2.ErrMsg, }) return } if res2.Infcode == 0 { err := service.UpdataOrderStatus(order_id, number, adminUser.CurrentOrgId, "", "") if err == nil { c.ServeSuccessJSON(map[string]interface{}{ "msg": "撤销明细成功", }) return } else { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res2.ErrMsg, }) } err := service.UpdataOrderStatus(order_id, number, adminUser.CurrentOrgId, "", "") if err == nil { c.ServeSuccessJSON(map[string]interface{}{ "msg": "撤销明细成功", }) return } else { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "150499" { var resSix10265 ResultSix10265 new_chrg_bchno := order.Number if adminUser.CurrentOrgId == 10265 { if !strings.Contains(his.InsuplcAdmdvs, "1504") { new_chrg_bchno = "0000" } } var api3 string api3 = "http://172.16.13.254:9532/" + "nmyb/2205?psn_no=" + order.PsnNo + "&mdtrt_id=" + order.MdtrtId + "&chrg_bchno=" + new_chrg_bchno + "&doctor=" + patientPrescription.Doctor + "&org_name=" + miConfig.OrgName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + his.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&url=" + miConfig.Url + "&ak=" + miConfig.AccessKey + "&cainfo=" + miConfig.Cainfo 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{})["pre"].(map[string]interface{}) userJSONBytes3, _ := json.Marshal(respJSON3) fmt.Println("log") fmt.Println(string(userJSONBytes3)) if err := json.Unmarshal(userJSONBytes3, &resSix10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res2.InfRefmsgid = resSix10265.InfRefmsgid res2.Output = resSix10265.Output res2.ErrMsg = resSix10265.ErrMsg res2.Cainfo = resSix10265.Cainfo res2.WarnMsg = resSix10265.WarnMsg infocode, _ := strconv.ParseInt(resSix10265.Infcode, 10, 64) res2.Infcode = infocode err := service.UpdataOrderStatus(order_id, number, adminUser.CurrentOrgId, "", "") if err == nil { c.ServeSuccessJSON(map[string]interface{}{ "msg": "撤销明细成功", }) return } else { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "350500" { result2, src_request, _ := service.FJyb2205(his.PsnNo, his.Number, "0000", miConfig.OrgName, roles.UserName, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, miConfig.Code, miConfig.Url, miConfig.Code, miConfig.AppSecret, miConfig.SignKey, miConfig.EncKey) var dat map[string]interface{} if err := json.Unmarshal([]byte(result2), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } saveLog(result2, src_request, "2205", "撤销明细") userJSONBytes, _ := json.Marshal(dat) if err := json.Unmarshal(userJSONBytes, &res2); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if res2.Infcode == 0 { err := service.UpdataOrderStatus(order_id, number, adminUser.CurrentOrgId, "", "") if err == nil { c.ServeSuccessJSON(map[string]interface{}{ "msg": "撤销明细成功", }) return } else { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res2.ErrMsg, }) } } else if miConfig.MdtrtareaAdmvs == "360302" { result2, src_request := service.Jxyb2205(his.PsnNo, his.Number, order.Number, miConfig.OrgName, roles.UserName, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, miConfig.Code, miConfig.Url, miConfig.AccessKey, "") var dat map[string]interface{} if err := json.Unmarshal([]byte(result2), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } saveLog(result2, src_request, "2205", "撤销明细") userJSONBytes, _ := json.Marshal(dat) if err := json.Unmarshal(userJSONBytes, &res2); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if res2.Infcode == 0 { err := service.UpdataOrderStatus(order_id, number, adminUser.CurrentOrgId, "", "") if err == nil { c.ServeSuccessJSON(map[string]interface{}{ "msg": "撤销明细成功", }) return } else { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res2.ErrMsg, }) } } else if miConfig.MdtrtareaAdmvs == "361025" { result2, src_request := service.Jxyb2205(his.PsnNo, his.Number, order.Number, miConfig.OrgName, roles.UserName, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, miConfig.Code, miConfig.Url, miConfig.AccessKey, "") var dat map[string]interface{} if err := json.Unmarshal([]byte(result2), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } saveLog(result2, src_request, "2205", "撤销明细") userJSONBytes, _ := json.Marshal(dat) if err := json.Unmarshal(userJSONBytes, &res2); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if res2.Infcode == 0 { err := service.UpdataOrderStatus(order_id, number, adminUser.CurrentOrgId, "", "") if err == nil { c.ServeSuccessJSON(map[string]interface{}{ "msg": "撤销明细成功", }) return } else { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res2.ErrMsg, }) } } else if miConfig.MdtrtareaAdmvs == "360100" { result2, src_request := service.Jxyb2205(his.PsnNo, his.Number, order.Number, miConfig.OrgName, roles.UserName, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, miConfig.Code, miConfig.Url, miConfig.AccessKey, "") var dat map[string]interface{} if err := json.Unmarshal([]byte(result2), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } saveLog(result2, src_request, "2205", "撤销明细") userJSONBytes, _ := json.Marshal(dat) if err := json.Unmarshal(userJSONBytes, &res2); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if res2.Infcode == 0 { err := service.UpdataOrderStatus(order_id, number, adminUser.CurrentOrgId, "", "") if err == nil { c.ServeSuccessJSON(map[string]interface{}{ "msg": "撤销明细成功", }) return } else { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res2.ErrMsg, }) } } else if miConfig.MdtrtareaAdmvs == "430800" { result2, src_request := service.Hnyb2205(his.PsnNo, his.Number, order.Number, miConfig.OrgName, roles.UserName, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, miConfig.Code, miConfig.Url, miConfig.AccessKey, "") var dat map[string]interface{} if err := json.Unmarshal([]byte(result2), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } saveLog(result2, src_request, "2205", "撤销明细") userJSONBytes, _ := json.Marshal(dat) if err := json.Unmarshal(userJSONBytes, &res2); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if res2.Infcode == 0 { err := service.UpdataOrderStatus(order_id, number, adminUser.CurrentOrgId, "", "") if err == nil { c.ServeSuccessJSON(map[string]interface{}{ "msg": "撤销明细成功", }) return } else { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res2.ErrMsg, }) } } else if miConfig.MdtrtareaAdmvs == "441799" { api2 := miConfig.Url + "gdyb/six?psn_no=" + his.PsnNo + "&mdtrt_id=" + his.Number + "&chrg_bchno=" + order.Number + "&doctor=" + roles.UserName + "&org_name=" + miConfig.OrgName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + his.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey resp2, requestErr2 := http.Get(api2) if requestErr2 != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } body2, ioErr2 := ioutil.ReadAll(resp2.Body) if ioErr2 != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr2) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON2 map[string]interface{} if err := json.Unmarshal([]byte(string(body2)), &respJSON2); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON2 = respJSON2["data"].(map[string]interface{})["pre"].(map[string]interface{}) userJSONBytes3, _ := json.Marshal(respJSON2) fmt.Println("log") fmt.Println(string(userJSONBytes3)) if err := json.Unmarshal(userJSONBytes3, &res2); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if res2.Infcode == 0 { err := service.UpdataOrderStatus(order_id, number, adminUser.CurrentOrgId, "", "") if err == nil { c.ServeSuccessJSON(map[string]interface{}{ "msg": "撤销明细成功", }) return } else { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res2.ErrMsg, }) } } else { api2 := "http://127.0.0.1:9532/" + "gdyb/six?psn_no=" + his.PsnNo + "&mdtrt_id=" + his.Number + "&chrg_bchno=" + order.Number + "&doctor=" + roles.UserName + "&org_name=" + miConfig.OrgName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + his.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&admin_user_id=" + strconv.FormatInt(admin_user_id, 10) resp2, requestErr2 := http.Get(api2) if requestErr2 != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } body2, ioErr2 := ioutil.ReadAll(resp2.Body) if ioErr2 != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr2) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON2 map[string]interface{} if err := json.Unmarshal([]byte(string(body2)), &respJSON2); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON2 = respJSON2["data"].(map[string]interface{})["pre"].(map[string]interface{}) userJSONBytes3, _ := json.Marshal(respJSON2) if err := json.Unmarshal(userJSONBytes3, &res2); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if res2.Infcode == -1 { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res2.ErrMsg, }) return } else { err := service.UpdataOrderStatus(order_id, number, adminUser.CurrentOrgId, "", "") if err == nil { c.ServeSuccessJSON(map[string]interface{}{ "msg": "撤销明细成功", }) return } else { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } } } else { err := service.UpdataOrderStatus(order_id, number, adminUser.CurrentOrgId, "", "") if err == nil { c.ServeSuccessJSON(map[string]interface{}{ "msg": "退费成功", }) } else { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } } // 对账 func (c *HisApiController) GetCheckAccount() { start_time := c.GetString("start_time") end_time := c.GetString("end_time") insutype := c.GetString("insutype") clr_type := c.GetString("clr_type") clr_org := c.GetString("clr_optins") admin_user_id, _ := c.GetInt64("admin_user_id") adminUser := c.GetAdminUserInfo() miConfig, _ := service.FindMedicalInsuranceInfo(adminUser.CurrentOrgId) config, _ := service.GetMedicalInsuranceConfig(adminUser.CurrentOrgId) if len(clr_org) == 0 { clr_org = miConfig.InsuplcAdmdvs } timeLayout := "2006-01-02" loc, _ := time.LoadLocation("Local") startime, _ := time.ParseInLocation(timeLayout+" 15:04:05", start_time+" 00:00:00", loc) endtime, _ := time.ParseInLocation(timeLayout+" 15:04:05", end_time+" 23:59:59", loc) orders, _ := service.GetOrderByTime(startime.Unix(), endtime.Unix(), adminUser.CurrentOrgId, insutype, "", clr_type, miConfig.MdtrtareaAdmvs) orders_two, _ := service.GetOrderByTimeFive(startime.Unix(), endtime.Unix(), adminUser.CurrentOrgId, insutype, "", clr_type, miConfig.MdtrtareaAdmvs) fixmedins_setl_cnt := int64(len(orders)) var medfee_sumamt float64 var acct_pay float64 var fund_pay_sumamt float64 for _, item := range orders { medfee_sumamt = medfee_sumamt + item.MedfeeSumamt acct_pay = acct_pay + item.AcctPay if miConfig.MdtrtareaAdmvs == "361025" || miConfig.MdtrtareaAdmvs == "360100" { fund_pay_sumamt = fund_pay_sumamt + item.HifpPay + item.HifmiPay + item.MafPay + item.HifobPay + item.HifesPay } else { fund_pay_sumamt = fund_pay_sumamt + item.FundPaySumamt } } var user_name string role, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, admin_user_id) if role.ID == 0 { user_name = "xxx" } else { user_name = role.UserName } var res ResultEight var res10188 ResultEightFor10188 if config.IsOpen == 1 { if miConfig.MdtrtareaAdmvs == "320921" || miConfig.MdtrtareaAdmvs == "320982" { api := "http://192.168.2.3:9532/" + "jsyb/3201?" + "insutype=" + insutype + "&clr_type=" + clr_type + "&setl_optins=" + clr_org + "&stmt_begndate=" + start_time + "&stm_enddate=" + end_time + "&medfee_sumamt=" + fmt.Sprintf("%.4f", medfee_sumamt) + "&fund_pay_sumamt=" + fmt.Sprintf("%.4f", fund_pay_sumamt) + "&acct_pay=" + fmt.Sprintf("%.4f", acct_pay) + "&fixmedins_setl_cnt=" + strconv.FormatInt(fixmedins_setl_cnt+int64(len(orders_two)*2), 10) + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&org_name=" + miConfig.OrgName + "&doctor=" + user_name + "&url=" + miConfig.Url + "&ak=" + miConfig.AccessKey + "&cainfo=" + miConfig.Cainfo fmt.Println(api) resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } body, ioErr := ioutil.ReadAll(resp.Body) fmt.Println(body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) userJSONBytes, _ := json.Marshal(respJSON) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res.InfRefmsgid = res10188.InfRefmsgid res.Output = res10188.Output res.ErrMsg = res10188.ErrMsg res.Cainfo = res10188.Cainfo res.WarnMsg = res10188.WarnMsg infocode, _ := strconv.ParseInt(res10188.Infcode, 10, 64) res.Infcode = infocode } else if miConfig.MdtrtareaAdmvs == "150499" { if clr_type != "9903" { clr_type = "99" // 就诊 ID(来自2201接口返回) } if clr_type == "9903" { clr_type = "9910" // 就诊 ID(来自2201接口返回) } api := "http://172.16.13.254:9532/" + "nmyb/3201?" + "insutype=" + insutype + "&clr_type=" + clr_type + "&setl_optins=" + clr_org + "&stmt_begndate=" + start_time + "&stm_enddate=" + end_time + "&medfee_sumamt=" + fmt.Sprintf("%.4f", medfee_sumamt) + "&fund_pay_sumamt=" + fmt.Sprintf("%.4f", fund_pay_sumamt) + "&acct_pay=" + fmt.Sprintf("%.4f", acct_pay) + "&fixmedins_setl_cnt=" + strconv.FormatInt(fixmedins_setl_cnt+int64(len(orders_two)*2), 10) + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&org_name=" + miConfig.OrgName + "&doctor=" + user_name resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) result, _ := json.Marshal(respJSON) fmt.Println("log") fmt.Println(string(result)) if err := json.Unmarshal([]byte(result), &res10188); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res.InfRefmsgid = res10188.InfRefmsgid res.Output = res10188.Output res.ErrMsg = res10188.ErrMsg res.Cainfo = res10188.Cainfo res.WarnMsg = res10188.WarnMsg infocode, _ := strconv.ParseInt(res10188.Infcode, 10, 64) res.Infcode = infocode } else if miConfig.MdtrtareaAdmvs == "350500" { var baseParams models.BaseParams baseParams.InsuplcAdmdvs = miConfig.InsuplcAdmdvs baseParams.MdtrtareaAdmvs = miConfig.MdtrtareaAdmvs baseParams.SecretKey = miConfig.SecretKey baseParams.OrgName = miConfig.OrgName baseParams.FixmedinsCode = miConfig.Code baseParams.EncKey = miConfig.EncKey baseParams.AppSecret = miConfig.AppSecret baseParams.SignKey = miConfig.SignKey baseParams.AppID = miConfig.Code baseParams.Doctor = role.UserName baseParams.RequestUrl = miConfig.Url businessParams := models.BusinessParams{ Insutype: insutype, ClrType: clr_type, SetlOptins: clr_org, StmtBegndate: start_time, StmtEnddate: end_time, MedfeeSumamt: medfee_sumamt, FundPaySumamt: fund_pay_sumamt, AcctPay: acct_pay, FixmedinsSetlCnt: fixmedins_setl_cnt, } result, requestLog, err_msg := service.FJyb3201(baseParams, businessParams, fmt.Sprintf("%.4f", medfee_sumamt), fmt.Sprintf("%.4f", fund_pay_sumamt), fmt.Sprintf("%.4f", acct_pay)) fmt.Println(requestLog) fmt.Println(result) fmt.Println(err_msg) var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } userJSONBytes, _ := json.Marshal(dat) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "430800" { var baseParams models.BaseParams baseParams.InsuplcAdmdvs = miConfig.InsuplcAdmdvs baseParams.MdtrtareaAdmvs = miConfig.MdtrtareaAdmvs baseParams.SecretKey = miConfig.SecretKey baseParams.OrgName = miConfig.OrgName baseParams.FixmedinsCode = miConfig.Code baseParams.EncKey = miConfig.EncKey baseParams.AppSecret = miConfig.AppSecret baseParams.SignKey = miConfig.SignKey baseParams.AppID = miConfig.Code baseParams.Doctor = role.UserName baseParams.RequestUrl = miConfig.Url baseParams.AccessKey = miConfig.AccessKey businessParams := models.BusinessParams{ Insutype: insutype, ClrType: clr_type, SetlOptins: "430822", StmtBegndate: start_time, StmtEnddate: end_time, MedfeeSumamt: medfee_sumamt, FundPaySumamt: fund_pay_sumamt, AcctPay: acct_pay, FixmedinsSetlCnt: fixmedins_setl_cnt, } result, requestLog := service.Hnyb3201(businessParams.FixmedinsSetlCnt, businessParams.AcctPay, businessParams.FundPaySumamt, businessParams.MedfeeSumamt, businessParams.StmtBegndate, businessParams.StmtEnddate, businessParams.SetlOptins, businessParams.ClrType, businessParams.Insutype, baseParams.OrgName, baseParams.Doctor, baseParams.FixmedinsCode, baseParams.InsuplcAdmdvs, baseParams.MdtrtareaAdmvs, baseParams.RequestUrl, baseParams.AccessKey, baseParams.SecretKey, baseParams.Cainfo) fmt.Println(requestLog) fmt.Println(result) var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } userJSONBytes, _ := json.Marshal(dat) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "350500" { var baseParams models.BaseParams baseParams.InsuplcAdmdvs = miConfig.InsuplcAdmdvs baseParams.MdtrtareaAdmvs = miConfig.MdtrtareaAdmvs baseParams.SecretKey = miConfig.SecretKey baseParams.OrgName = miConfig.OrgName baseParams.FixmedinsCode = miConfig.Code baseParams.EncKey = miConfig.EncKey baseParams.AppSecret = miConfig.AppSecret baseParams.SignKey = miConfig.SignKey baseParams.AppID = miConfig.Code baseParams.Doctor = role.UserName baseParams.RequestUrl = miConfig.Url businessParams := models.BusinessParams{ Insutype: insutype, ClrType: clr_type, SetlOptins: clr_org, StmtBegndate: start_time, StmtEnddate: end_time, MedfeeSumamt: medfee_sumamt, FundPaySumamt: fund_pay_sumamt, AcctPay: acct_pay, FixmedinsSetlCnt: fixmedins_setl_cnt, } result, requestLog, err_msg := service.FJyb3201(baseParams, businessParams, fmt.Sprintf("%.4f", medfee_sumamt), fmt.Sprintf("%.4f", fund_pay_sumamt), fmt.Sprintf("%.4f", acct_pay)) fmt.Println(requestLog) fmt.Println(result) fmt.Println(err_msg) var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } userJSONBytes, _ := json.Marshal(dat) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "441799" { if len(clr_type) == 0 { clr_type = "11" } api := miConfig.Url + "gdyb/ten?" + "insutype=" + insutype + "&clr_type=" + clr_type + "&setl_optins=" + clr_org + "&stmt_begndate=" + start_time + "&stm_enddate=" + end_time + "&medfee_sumamt=" + fmt.Sprintf("%.4f", medfee_sumamt) + "&fund_pay_sumamt=" + fmt.Sprintf("%.4f", fund_pay_sumamt) + "&acct_pay=" + fmt.Sprintf("%.4f", acct_pay) + "&fixmedins_setl_cnt=" + strconv.FormatInt(fixmedins_setl_cnt, 10) + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&org_name=" + miConfig.OrgName + "&doctor=" + user_name fmt.Println(api) resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } body, ioErr := ioutil.ReadAll(resp.Body) fmt.Println(body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) userJSONBytes, _ := json.Marshal(respJSON) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "360302" { //orders_two, _ := service.GetOrderByTimeFive(startime.Unix(), endtime.Unix(), adminUser.CurrentOrgId, insutype, "", clr_type, miConfig.MdtrtareaAdmvs) //fixmedins_setl_cnt := int64(len(orders_two)) //var medfee_sumamt float64 //var acct_pay float64 //var fund_pay_sumamt float64 //for _, item := range orders_two { // medfee_sumamt = medfee_sumamt + item.MedfeeSumamt // acct_pay = acct_pay + item.AcctPay // fund_pay_sumamt = fund_pay_sumamt + item.FundPaySumamt //} var baseParams models.BaseParams baseParams.InsuplcAdmdvs = miConfig.InsuplcAdmdvs baseParams.MdtrtareaAdmvs = miConfig.MdtrtareaAdmvs baseParams.SecretKey = miConfig.SecretKey baseParams.OrgName = miConfig.OrgName baseParams.FixmedinsCode = miConfig.Code baseParams.EncKey = miConfig.EncKey baseParams.AppSecret = miConfig.AppSecret baseParams.SignKey = miConfig.SignKey baseParams.AppID = miConfig.Code baseParams.Doctor = role.UserName baseParams.RequestUrl = miConfig.Url if clr_type == "9903" { clr_type = "9994" } businessParams := models.BusinessParams{ Insutype: insutype, ClrType: clr_type, SetlOptins: "360302", StmtBegndate: start_time, StmtEnddate: end_time, MedfeeSumamt: 0, FundPaySumamt: 0, AcctPay: 0, FixmedinsSetlCnt: fixmedins_setl_cnt, } result, requestLog := service.Jxyb3201(businessParams.FixmedinsSetlCnt, businessParams.StmtBegndate, businessParams.StmtEnddate, businessParams.ClrType, businessParams.Insutype, baseParams.OrgName, baseParams.Doctor, baseParams.FixmedinsCode, baseParams.InsuplcAdmdvs, baseParams.MdtrtareaAdmvs, baseParams.RequestUrl, miConfig.AccessKey, miConfig.SecretKey, fmt.Sprintf("%.2f", medfee_sumamt), fmt.Sprintf("%.2f", fund_pay_sumamt), fmt.Sprintf("%.2f", acct_pay)) fmt.Println(requestLog) fmt.Println(result) var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } userJSONBytes, _ := json.Marshal(dat) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "361025" { //orders_two, _ := service.GetOrderByTimeFive(startime.Unix(), endtime.Unix(), adminUser.CurrentOrgId, insutype, "", clr_type, miConfig.MdtrtareaAdmvs) //fixmedins_setl_cnt := int64(len(orders_two)) //var medfee_sumamt float64 //var acct_pay float64 //var fund_pay_sumamt float64 //for _, item := range orders_two { // medfee_sumamt = medfee_sumamt + item.MedfeeSumamt // acct_pay = acct_pay + item.AcctPay // fund_pay_sumamt = fund_pay_sumamt + item.FundPaySumamt //} var baseParams models.BaseParams baseParams.InsuplcAdmdvs = miConfig.InsuplcAdmdvs baseParams.MdtrtareaAdmvs = miConfig.MdtrtareaAdmvs baseParams.SecretKey = miConfig.SecretKey baseParams.OrgName = miConfig.OrgName baseParams.FixmedinsCode = miConfig.Code baseParams.EncKey = miConfig.EncKey baseParams.AppSecret = miConfig.AppSecret baseParams.SignKey = miConfig.SignKey baseParams.AppID = miConfig.Code baseParams.Doctor = role.UserName baseParams.RequestUrl = miConfig.Url if clr_type == "9903" { clr_type = "9994" } businessParams := models.BusinessParams{ Insutype: insutype, ClrType: clr_type, SetlOptins: "361025", StmtBegndate: start_time, StmtEnddate: end_time, MedfeeSumamt: 0, FundPaySumamt: 0, AcctPay: 0, FixmedinsSetlCnt: fixmedins_setl_cnt, } result, requestLog := service.Jxyb32012(businessParams.FixmedinsSetlCnt, businessParams.StmtBegndate, businessParams.StmtEnddate, businessParams.ClrType, businessParams.Insutype, baseParams.OrgName, baseParams.Doctor, baseParams.FixmedinsCode, baseParams.InsuplcAdmdvs, baseParams.MdtrtareaAdmvs, baseParams.RequestUrl, miConfig.AccessKey, miConfig.SecretKey, fmt.Sprintf("%.2f", medfee_sumamt), fmt.Sprintf("%.2f", fund_pay_sumamt), fmt.Sprintf("%.2f", acct_pay)) fmt.Println(requestLog) fmt.Println(result) var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } userJSONBytes, _ := json.Marshal(dat) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "360100" { //orders_two, _ := service.GetOrderByTimeFive(startime.Unix(), endtime.Unix(), adminUser.CurrentOrgId, insutype, "", clr_type, miConfig.MdtrtareaAdmvs) //fixmedins_setl_cnt := int64(len(orders_two)) //var medfee_sumamt float64 //var acct_pay float64 //var fund_pay_sumamt float64 //for _, item := range orders_two { // medfee_sumamt = medfee_sumamt + item.MedfeeSumamt // acct_pay = acct_pay + item.AcctPay // fund_pay_sumamt = fund_pay_sumamt + item.FundPaySumamt //} var baseParams models.BaseParams baseParams.InsuplcAdmdvs = miConfig.InsuplcAdmdvs baseParams.MdtrtareaAdmvs = miConfig.MdtrtareaAdmvs baseParams.SecretKey = miConfig.SecretKey baseParams.OrgName = miConfig.OrgName baseParams.FixmedinsCode = miConfig.Code baseParams.EncKey = miConfig.EncKey baseParams.AppSecret = miConfig.AppSecret baseParams.SignKey = miConfig.SignKey baseParams.AppID = miConfig.Code baseParams.Doctor = role.UserName baseParams.RequestUrl = miConfig.Url if clr_type == "9903" { clr_type = "9994" } businessParams := models.BusinessParams{ Insutype: insutype, ClrType: clr_type, SetlOptins: "360100", StmtBegndate: start_time, StmtEnddate: end_time, MedfeeSumamt: 0, FundPaySumamt: 0, AcctPay: 0, FixmedinsSetlCnt: fixmedins_setl_cnt, } result, requestLog := service.Jxyb32012(businessParams.FixmedinsSetlCnt, businessParams.StmtBegndate, businessParams.StmtEnddate, businessParams.ClrType, businessParams.Insutype, baseParams.OrgName, baseParams.Doctor, baseParams.FixmedinsCode, baseParams.InsuplcAdmdvs, baseParams.MdtrtareaAdmvs, baseParams.RequestUrl, miConfig.AccessKey, miConfig.SecretKey, fmt.Sprintf("%.2f", medfee_sumamt), fmt.Sprintf("%.2f", fund_pay_sumamt), fmt.Sprintf("%.2f", acct_pay)) fmt.Println(requestLog) fmt.Println(result) var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } userJSONBytes, _ := json.Marshal(dat) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "341203" { var api string api = miConfig.SecretKey + "ahyb/3201?insutype=" + insutype + "&clr_type=" + clr_type + "&setl_optins=" + clr_org + "&stmt_begndate=" + start_time + "&stm_enddate=" + end_time + "&medfee_sumamt=" + fmt.Sprintf("%.4f", medfee_sumamt) + "&fund_pay_sumamt=" + fmt.Sprintf("%.4f", fund_pay_sumamt) + "&acct_pay=" + fmt.Sprintf("%.4f", acct_pay) + "&fixmedins_setl_cnt=" + strconv.FormatInt(fixmedins_setl_cnt+int64(len(orders_two)*2), 10) + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&org_name=" + miConfig.OrgName + "&doctor=" + user_name + "&url=" + miConfig.Url //req, _ = http.NewRequest("POST", "http://192.168.2.110:9532/"+"jsyb/2204", bytes.NewReader(bytesData)) //req, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/2204", bytes.NewReader(bytesData)) resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } status := respJSON["data"].(map[string]interface{})["status"].(string) if status == "0" { err_msg := respJSON["data"].(map[string]interface{})["msg"].(string) c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": err_msg, }) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) userJSONBytes, _ := json.Marshal(respJSON) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "340699" { var api string api = miConfig.SecretKey + "ahyb/3201?insutype=" + insutype + "&clr_type=" + clr_type + "&setl_optins=" + clr_org + "&stmt_begndate=" + start_time + "&stm_enddate=" + end_time + "&medfee_sumamt=" + fmt.Sprintf("%.4f", medfee_sumamt) + "&fund_pay_sumamt=" + fmt.Sprintf("%.4f", fund_pay_sumamt) + "&acct_pay=" + fmt.Sprintf("%.4f", acct_pay) + "&fixmedins_setl_cnt=" + strconv.FormatInt(fixmedins_setl_cnt+int64(len(orders_two)*2), 10) + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&org_name=" + miConfig.OrgName + "&doctor=" + user_name + "&url=" + miConfig.Url //req, _ = http.NewRequest("POST", "http://192.168.2.110:9532/"+"jsyb/2204", bytes.NewReader(bytesData)) //req, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/2204", bytes.NewReader(bytesData)) resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } status := respJSON["data"].(map[string]interface{})["status"].(string) if status == "0" { err_msg := respJSON["data"].(map[string]interface{})["msg"].(string) c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": err_msg, }) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) userJSONBytes, _ := json.Marshal(respJSON) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else { if len(clr_type) == 0 { clr_type = "11" } api := "http://127.0.0.1:9532/" + "gdyb/ten?" + "insutype=" + insutype + "&clr_type=" + clr_type + "&setl_optins=" + clr_org + "&stmt_begndate=" + start_time + "&stm_enddate=" + end_time + "&medfee_sumamt=" + fmt.Sprintf("%.4f", medfee_sumamt) + "&fund_pay_sumamt=" + fmt.Sprintf("%.4f", fund_pay_sumamt) + "&acct_pay=" + fmt.Sprintf("%.4f", acct_pay) + "&fixmedins_setl_cnt=" + strconv.FormatInt(fixmedins_setl_cnt, 10) + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&org_name=" + miConfig.OrgName + "&doctor=" + user_name + "&admin_user_id=" + strconv.FormatInt(admin_user_id, 10) fmt.Println(api) resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } body, ioErr := ioutil.ReadAll(resp.Body) fmt.Println(body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) userJSONBytes, _ := json.Marshal(respJSON) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } if res.Infcode == 0 { if res.Output.Stmtinfo.StmtRslt == "0" { micc := &models.MedicalInsuranceCostCompare{ StartTime: startime.Unix(), EndTime: endtime.Unix(), Insutype: insutype, CheckType: 1, Num: fixmedins_setl_cnt, Mtime: time.Now().Unix(), Status: 1, UserOrgId: adminUser.CurrentOrgId, CostTotal: medfee_sumamt, FuncTotal: fund_pay_sumamt, PsnPay: acct_pay, Creator: admin_user_id, Ctime: time.Now().Unix(), ClrType: clr_type, } err := service.CreateMedicalInsuranceCostCompareRecord(micc) if err == nil { c.ServeSuccessJSON(map[string]interface{}{ "stmt_rslt": res.Output.Stmtinfo.StmtRslt, "stmt_rslt_dscr": res.Output.Stmtinfo.StmtRsltDscr, }) } else { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) } } else { c.ServeSuccessJSON(map[string]interface{}{ "stmt_rslt": res.Output.Stmtinfo.StmtRslt, "stmt_rslt_dscr": res.Output.Stmtinfo.StmtRsltDscr, }) } } else { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res.ErrMsg, }) } } } func (c *HisApiController) Check310() { adminUser := c.GetAdminUserInfo() miConfig, _ := service.FindMedicalInsuranceInfo(adminUser.CurrentOrgId) var user_name string user_name = "高慧裕" api := "http://127.0.0.1:9532/" + "gdyb/ten?" + "insutype=" + "310" + "&clr_type=" + "" + "&setl_optins=" + "441202" + "&stmt_begndate=" + "2022-03-01" + "&stm_enddate=" + "2022-03-31" + "&medfee_sumamt=" + "194930.12" + "&fund_pay_sumamt=" + "188741.46" + "&acct_pay=" + "0" + "&fixmedins_setl_cnt=" + "452" + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&org_name=" + miConfig.OrgName + "&doctor=" + user_name fmt.Println(api) resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } body, ioErr := ioutil.ReadAll(resp.Body) fmt.Println(body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) userJSONBytes, _ := json.Marshal(respJSON) var res ResultEight if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } func (c *HisApiController) Check390() { adminUser := c.GetAdminUserInfo() miConfig, _ := service.FindMedicalInsuranceInfo(adminUser.CurrentOrgId) var user_name string user_name = "高慧裕" api := "http://127.0.0.1:9532/" + "gdyb/ten?" + "insutype=" + "390" + "&clr_type=" + "" + "&setl_optins=" + "441202" + "&stmt_begndate=" + "2022-03-01" + "&stm_enddate=" + "2022-03-31" + "&medfee_sumamt=" + "1068448.89" + "&fund_pay_sumamt=" + "1014677.62" + "&acct_pay=" + "0" + "&fixmedins_setl_cnt=" + "1950" + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&org_name=" + miConfig.OrgName + "&doctor=" + user_name fmt.Println(api) resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } body, ioErr := ioutil.ReadAll(resp.Body) fmt.Println(body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) userJSONBytes, _ := json.Marshal(respJSON) var res ResultEight if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } // 对账明细 func (c *HisApiController) GetCheckDetailAccount() { start_time := c.GetString("start_time") end_time := c.GetString("end_time") admin_user_id, _ := c.GetInt64("admin_user_id") adminUser := c.GetAdminUserInfo() miConfig, _ := service.FindMedicalInsuranceInfo(adminUser.CurrentOrgId) config, _ := service.GetMedicalInsuranceConfig(adminUser.CurrentOrgId) timeLayout := "2006-01-02" loc, _ := time.LoadLocation("Local") startime, _ := time.ParseInLocation(timeLayout+" 15:04:05", start_time+" 00:00:00", loc) endtime, _ := time.ParseInLocation(timeLayout+" 15:04:05", end_time+" 23:59:59", loc) orders, _ := service.GetOrderByTimeTwo(startime.Unix(), endtime.Unix(), adminUser.CurrentOrgId) rand.Seed(time.Now().UnixNano()) num := rand.Intn(30000) Mkdir(miConfig.OrgName) file := strconv.FormatInt(int64(num), 10) file_name := file + ".txt" zip_name := file + ".zip" zip_path := miConfig.OrgName + "/" + zip_name file_path := miConfig.OrgName + "/" + file_name decimal.DivisionPrecision = 2 var medfee_sumamt float64 var psn_cash_pay float64 var fund_pay_sumamt float64 fixmedins_setl_cnt := int64(len(orders)) for _, item := range orders { medfee_sumamt = medfee_sumamt + item.MedfeeSumamt psn_cash_pay = psn_cash_pay + item.PsnCashPay fund_pay_sumamt = fund_pay_sumamt + item.FundPaySumamt } f, err := os.Create(miConfig.OrgName + "/" + file_name) defer f.Close() if err != nil { fmt.Println(err.Error()) } else { for _, item := range orders { var refd_setl_flag string if item.OrderStatus == 2 { refd_setl_flag = "0" var str string str = item.SetlId + " " + item.MdtrtId + " " + item.PsnNo + " " + fmt.Sprintf("%.4f", item.MedfeeSumamt) + " " + fmt.Sprintf("%.4f", item.FundPaySumamt) + " " + fmt.Sprintf("%.4f", item.AcctPay) + " " + refd_setl_flag + "\r\n" _, err = f.Write([]byte(str)) } if item.OrderStatus == 3 { var str string str = item.SetlId + " " + item.MdtrtId + " " + item.PsnNo + " " + fmt.Sprintf("%.4f", item.MedfeeSumamt) + " " + fmt.Sprintf("%.4f", item.FundPaySumamt) + " " + fmt.Sprintf("%.4f", item.AcctPay) + " " + "1" + "\r\n" _, err = f.Write([]byte(str)) var str2 string str2 = item.SetlId + " " + item.MdtrtId + " " + item.PsnNo + " " + fmt.Sprintf("%.4f", 0-item.MedfeeSumamt) + " " + fmt.Sprintf("%.4f", 0-item.FundPaySumamt) + " " + fmt.Sprintf("%.4f", 0-item.AcctPay) + " " + "1" + "\r\n" _, err = f.Write([]byte(str2)) } } } Zip(file_path, zip_path) fmt.Println(ReadFile(zip_path)) fmt.Println(string(ReadFile(zip_path))) if config.IsOpen == 1 { var user_name string role, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, admin_user_id) if role.ID == 0 { user_name = "管理员" } else { user_name = role.UserName } baseParams := models.BaseParams{ SecretKey: miConfig.SecretKey, FixmedinsCode: miConfig.Code, InsuplcAdmdvs: miConfig.InsuplcAdmdvs, MdtrtareaAdmvs: miConfig.MdtrtareaAdmvs, OrgName: miConfig.OrgName, Doctor: user_name, } result := service.Gdyb9101(baseParams, file_name, ReadFile(file_path)) var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } userJSONBytes, _ := json.Marshal(dat) var res ResultNine if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if res.Infcode == 0 { fileNo := res.Output.FileQuryNo api := "http://127.0.0.1:9532/" + "gdyb/twelve?" + "file_qury_no=" + fileNo + "&setl_optins=" + "定点医保中心" + "&stmt_begndate=" + start_time + "&stm_enddate=" + end_time + "&medfee_sumamt=" + fmt.Sprintf("%.4f", medfee_sumamt) + "&fund_pay_sumamt=" + fmt.Sprintf("%.4f", fund_pay_sumamt) + "&cash_payamt=" + fmt.Sprintf("%.4f", psn_cash_pay) + "&fixmedins_setl_cnt=" + strconv.FormatInt(fixmedins_setl_cnt, 10) + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&org_name=" + miConfig.OrgName + "&doctor=" + user_name resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) userJSONBytes, _ := json.Marshal(respJSON) var res ResultTen if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if res.Infcode == 0 { service.Gdyb9102(baseParams, res.Output.Fileinfo.Filename, res.Output.Fileinfo.FileQuryNo) micc := &models.MedicalInsuranceCostCompare{ StartTime: startime.Unix(), EndTime: endtime.Unix(), Insutype: "0", CheckType: 2, Num: fixmedins_setl_cnt, Mtime: time.Now().Unix(), Status: 1, UserOrgId: adminUser.CurrentOrgId, CostTotal: medfee_sumamt, FuncTotal: fund_pay_sumamt, PsnPay: psn_cash_pay, Creator: admin_user_id, Ctime: time.Now().Unix(), } service.CreateMedicalInsuranceCostCompareRecord(micc) c.ServeSuccessJSON(map[string]interface{}{ "msg": "明细对账成功", }) } } else { } } } type CustomOrderInfo struct { Name string Spec string Unit string Count float64 Price float64 Total float64 } func (c *HisApiController) GetBatchSettleAccounts() { admin_user_id, _ := c.GetInt64("admin_user_id") order_ids := c.GetString("order_ids") order_ids_arr := strings.Split(order_ids, ",") data3 := []map[string]interface{}{} for _, item := range order_ids_arr { id, _ := strconv.ParseInt(item, 10, 64) order_id := id adminUser := c.GetAdminUserInfo() order, _ := service.GetHisOrderByID(order_id) his, _ := service.GetHisPatientByNumber(order.MdtrtId) orderInfos, _ := service.GetHisOrderInfoByNumber(order.Number) orderInfos_two, _ := service.GetHisOrderInfoByNumberTwo(order.Number) orderInfos = append(orderInfos, orderInfos_two...) his_hospital, _ := service.GetInHospitalRecordByNumber(order.MdtrtId) //diagnosisConfig, _ := service.FindDiagnoseById(his.Diagnosis) var diagnosis_ids []string if his.ID > 0 { diagnosis_ids = strings.Split(his.Diagnosis, ",") } else { diagnosis_ids = strings.Split(his_hospital.Diagnosis, ",") } patient, _ := service.GetPatientByIDTwo(adminUser.CurrentOrgId, order.PatientId) var dia_config []*models.HisXtDiagnoseConfig var name string for _, item := range diagnosis_ids { id, _ := strconv.ParseInt(item, 10, 64) diagnosisConfig, _ := service.FindDiagnoseById(id) dia_config = append(dia_config, &diagnosisConfig) if len(name) == 0 { name = diagnosisConfig.ClassName } //} else { // name = name + "," + diagnosisConfig.ClassName //} } var bedCostTotal float64 = 0 //床位总费 var bedCostSelfTotal float64 = 0 //床位自费 var bedCostPartSelfTotal float64 = 0 //床位部分项目自费 var bedSelfTotal float64 = 0 //床位部分项目自费 var bedInscpTotal float64 = 0 //床位部分项目自费 var operationCostTotal float64 = 0 //手术费 var operationCostSelfTotal float64 = 0 //手术费 var operationCostPartSelfTotal float64 = 0 //手术费 var operationSelfTotal float64 = 0 //床位部分项目自费 var operationInscpTotal float64 = 0 //床位部分项目自费 var otherCostTotal float64 = 0 //其他费用 var otherCostSelfTotal float64 = 0 //其他费用 var otherCostPartSelfTotal float64 = 0 //其他费用 var otherSelfTotal float64 = 0 //床位部分项目自费 var otherInscpTotal float64 = 0 //床位部分项目自费 var materialCostTotal float64 = 0 //材料费 var materialCostSelfTotal float64 = 0 //材料费 var materialCostPartSelfTotal float64 = 0 //材料费 var materialSelfTotal float64 = 0 //床位部分项目自费 var materialInscpTotal float64 = 0 //床位部分项目自费 var westernMedicineCostTotal float64 = 0 //西药费 var westernMedicineCostSelfTotal float64 = 0 //西药费 var westernMedicineCostPartSelfTotal float64 = 0 //西药费 var westernMedicineSelfTotal float64 = 0 //床位部分项目自费 var westernMedicineInscpTotal float64 = 0 //床位部分项目自费 var chineseTraditionalMedicineCostTotal float64 = 0 //中成药 var chineseTraditionalMedicineCostSelfTotal float64 = 0 //中成药 var chineseTraditionalMedicineCostPartSelfTotal float64 = 0 //中成药 var chineseTraditionalSelfTotal float64 = 0 //床位部分项目自费 var chineseTraditionalInscpTotal float64 = 0 //床位部分项目自费 var checkCostTotal float64 = 0 //检查费 var checkCostSelfTotal float64 = 0 //检查费 var checkCostPartSelfTotal float64 = 0 //检查费 var checkSelfTotal float64 = 0 //床位部分项目自费 var checkInscpTotal float64 = 0 //床位部分项目自费 var laboratoryCostTotal float64 = 0 //化验费 var laboratoryCostSelfTotal float64 = 0 //化验费 var laboratoryCostPartSelfTotal float64 = 0 //化验费 var laboratorySelfTotal float64 = 0 //床位部分项目自费 var laboratoryInscpTotal float64 = 0 //床位部分项目自费 var treatCostTotal float64 = 0 //治疗费用 var treatCostSelfTotal float64 = 0 //治疗费用 var treatCostPartSelfTotal float64 = 0 //治疗费用 var treatSelfTotal float64 = 0 //床位部分项目自费 var treatInscpTotal float64 = 0 //床位部分项目自费 decimal.DivisionPrecision = 2 for _, item := range orderInfos { if item.MedChrgitmType == "01" { //床位费 bedCostTotal, _ = decimal.NewFromFloat(bedCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() bedCostSelfTotal, _ = decimal.NewFromFloat(bedCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() bedCostPartSelfTotal, _ = decimal.NewFromFloat(bedCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() bedSelfTotal, _ = decimal.NewFromFloat(bedSelfTotal).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64() bedInscpTotal, _ = decimal.NewFromFloat(bedInscpTotal).Add(decimal.NewFromFloat(item.InscpScpAmt)).Float64() } if c.GetAdminUserInfo().CurrentOrgId == 10188 || c.GetAdminUserInfo().CurrentOrgId == 10217 { if item.MedChrgitmType == "03" { //检查费 laboratoryCostTotal, _ = decimal.NewFromFloat(laboratoryCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() laboratoryCostSelfTotal, _ = decimal.NewFromFloat(laboratoryCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() laboratoryCostPartSelfTotal, _ = decimal.NewFromFloat(laboratoryCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() laboratorySelfTotal, _ = decimal.NewFromFloat(laboratorySelfTotal).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64() laboratoryInscpTotal, _ = decimal.NewFromFloat(laboratoryInscpTotal).Add(decimal.NewFromFloat(item.InscpScpAmt)).Float64() } } else { if item.MedChrgitmType == "03" && adminUser.CurrentOrgId == 9504 { //手术费 fmt.Println("------------") treatCostTotal, _ = decimal.NewFromFloat(treatCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() treatCostSelfTotal, _ = decimal.NewFromFloat(treatCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() treatCostPartSelfTotal, _ = decimal.NewFromFloat(treatCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() } if item.MedChrgitmType == "03" && adminUser.CurrentOrgId != 9504 { //手术费 checkCostTotal, _ = decimal.NewFromFloat(checkCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() checkCostSelfTotal, _ = decimal.NewFromFloat(checkCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() checkCostPartSelfTotal, _ = decimal.NewFromFloat(checkCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() checkSelfTotal, _ = decimal.NewFromFloat(checkSelfTotal).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64() checkInscpTotal, _ = decimal.NewFromFloat(checkInscpTotal).Add(decimal.NewFromFloat(item.InscpScpAmt)).Float64() } } if item.MedChrgitmType == "04" { //化验费 laboratoryCostTotal, _ = decimal.NewFromFloat(laboratoryCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() laboratoryCostSelfTotal, _ = decimal.NewFromFloat(laboratoryCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() laboratoryCostPartSelfTotal, _ = decimal.NewFromFloat(laboratoryCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() laboratorySelfTotal, _ = decimal.NewFromFloat(laboratorySelfTotal).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64() laboratoryInscpTotal, _ = decimal.NewFromFloat(laboratoryInscpTotal).Add(decimal.NewFromFloat(item.InscpScpAmt)).Float64() } if item.MedChrgitmType == "05" { //治疗费 treatCostTotal, _ = decimal.NewFromFloat(treatCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() treatCostSelfTotal, _ = decimal.NewFromFloat(treatCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() treatCostPartSelfTotal, _ = decimal.NewFromFloat(treatCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() treatSelfTotal, _ = decimal.NewFromFloat(treatSelfTotal).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64() treatInscpTotal, _ = decimal.NewFromFloat(treatInscpTotal).Add(decimal.NewFromFloat(item.InscpScpAmt)).Float64() } if item.MedChrgitmType == "06" && adminUser.CurrentOrgId == 9504 { //手术费 fmt.Println("------------") treatCostTotal, _ = decimal.NewFromFloat(treatCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() treatCostSelfTotal, _ = decimal.NewFromFloat(treatCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() treatCostPartSelfTotal, _ = decimal.NewFromFloat(treatCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() } if item.MedChrgitmType == "06" && adminUser.CurrentOrgId != 9504 { //手术费 operationCostTotal, _ = decimal.NewFromFloat(operationCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() operationCostSelfTotal, _ = decimal.NewFromFloat(operationCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() operationCostPartSelfTotal, _ = decimal.NewFromFloat(operationCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() } //if item.MedChrgitmType == "06" { //手术费 // operationCostTotal, _ = decimal.NewFromFloat(operationCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() // operationCostSelfTotal, _ = decimal.NewFromFloat(operationCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() // operationCostPartSelfTotal, _ = decimal.NewFromFloat(operationCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() // operationSelfTotal, _ = decimal.NewFromFloat(operationSelfTotal).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64() // operationInscpTotal, _ = decimal.NewFromFloat(operationInscpTotal).Add(decimal.NewFromFloat(item.InscpScpAmt)).Float64() // //} if item.MedChrgitmType == "08" || item.MedChrgitmType == "1402" || item.MedChrgitmType == "1403" { //材料费 materialCostTotal, _ = decimal.NewFromFloat(materialCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() materialCostSelfTotal, _ = decimal.NewFromFloat(materialCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() materialCostPartSelfTotal, _ = decimal.NewFromFloat(materialCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() materialSelfTotal, _ = decimal.NewFromFloat(materialSelfTotal).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64() materialInscpTotal, _ = decimal.NewFromFloat(materialInscpTotal).Add(decimal.NewFromFloat(item.InscpScpAmt)).Float64() } if item.MedChrgitmType == "09" { //西药费 westernMedicineCostTotal, _ = decimal.NewFromFloat(westernMedicineCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() westernMedicineCostSelfTotal, _ = decimal.NewFromFloat(westernMedicineCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() westernMedicineCostPartSelfTotal, _ = decimal.NewFromFloat(westernMedicineCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() westernMedicineSelfTotal, _ = decimal.NewFromFloat(westernMedicineSelfTotal).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64() westernMedicineInscpTotal, _ = decimal.NewFromFloat(westernMedicineInscpTotal).Add(decimal.NewFromFloat(item.InscpScpAmt)).Float64() } if item.MedChrgitmType == "11" { //中成费 chineseTraditionalMedicineCostTotal, _ = decimal.NewFromFloat(chineseTraditionalMedicineCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() chineseTraditionalMedicineCostSelfTotal, _ = decimal.NewFromFloat(chineseTraditionalMedicineCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() chineseTraditionalMedicineCostPartSelfTotal, _ = decimal.NewFromFloat(chineseTraditionalMedicineCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() chineseTraditionalSelfTotal, _ = decimal.NewFromFloat(chineseTraditionalSelfTotal).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64() chineseTraditionalInscpTotal, _ = decimal.NewFromFloat(chineseTraditionalInscpTotal).Add(decimal.NewFromFloat(item.InscpScpAmt)).Float64() } if item.MedChrgitmType == "14" || item.MedChrgitmType == "0" || item.MedChrgitmType == "12" || item.MedChrgitmType == "02" { //其他费 otherCostTotal, _ = decimal.NewFromFloat(otherCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() otherCostSelfTotal, _ = decimal.NewFromFloat(otherCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() otherCostPartSelfTotal, _ = decimal.NewFromFloat(otherCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() otherSelfTotal, _ = decimal.NewFromFloat(otherSelfTotal).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64() otherInscpTotal, _ = decimal.NewFromFloat(otherInscpTotal).Add(decimal.NewFromFloat(item.InscpScpAmt)).Float64() } } miConfig, _ := service.FindMedicalInsuranceInfo(adminUser.CurrentOrgId) config, _ := service.GetMedicalInsuranceConfig(adminUser.CurrentOrgId) var user_name string role, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, admin_user_id) if role.ID == 0 { user_name = "管理员" } else { user_name = role.UserName } baseParams := models.BaseParams{ SecretKey: miConfig.SecretKey, FixmedinsCode: miConfig.Code, InsuplcAdmdvs: miConfig.InsuplcAdmdvs, MdtrtareaAdmvs: miConfig.MdtrtareaAdmvs, OrgName: miConfig.OrgName, Doctor: user_name, RequestUrl: miConfig.Url, AccessKey: miConfig.AccessKey, } businessParams := models.BusinessParams{ PsnNo: order.PsnNo, MdtrtId: order.MdtrtId, SetlId: order.SetlId, } var res ResultEleven var resEleven10265 ResultEleven10265 if config.IsOpen == 1 { baseParams.InsuplcAdmdvs = his.InsuplcAdmdvs result := service.Gdyb5203(baseParams, businessParams) service.Gdyb5204(baseParams, businessParams) //service.Gdyb5302(businessParams.PsnNo, baseParams.OrgName, baseParams.Doctor, baseParams.FixmedinsCode, baseParams.InsuplcAdmdvs, baseParams.MdtrtareaAdmvs, baseParams.SecretKey) var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } userJSONBytes, _ := json.Marshal(dat) if miConfig.Code == "H15049901371" { if err := json.Unmarshal(userJSONBytes, &resEleven10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res.InfRefmsgid = resEleven10265.InfRefmsgid res.Output = resEleven10265.Output res.ErrMsg = resEleven10265.ErrMsg res.Cainfo = resEleven10265.Cainfo res.WarnMsg = resEleven10265.WarnMsg infocode, _ := strconv.ParseInt(resEleven10265.Infcode, 10, 64) res.Infcode = infocode } else { if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } printor_admin, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, admin_user_id) charge_admin, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, order.Creator) patientPrescription, _ := service.FindPatientPrescriptionInfo(adminUser.CurrentOrgId, order.PatientId, order.SettleAccountsDate) adminRole_two, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, patientPrescription.DoctorId) doctor_info, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, his_hospital.Doctor) roles, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, admin_user_id) var doctor_name string if roles.ID == 0 { doctor_name = "管理员" } else { doctor_name = roles.UserName } yiliao_leibie := "" switch order.MedType { case "11": yiliao_leibie = "普通门诊" break case "12": yiliao_leibie = "门诊挂号" break case "13": yiliao_leibie = "急诊" break case "14": yiliao_leibie = "门诊特殊病" break case "15": yiliao_leibie = "门诊统筹" break case "16": yiliao_leibie = "门诊慢性病" break case "21": yiliao_leibie = "普通住院" break } departments, _ := service.GetDepartMentDetail(patientPrescription.Departments) res.Output.Setlinfo.PsnCashPay = res.Output.Setlinfo.CashPayamt if res.Infcode == 0 { data2 := map[string]interface{}{ "diagnosis": name, "order_infos": orderInfos, "number": order.MdtrtId, "date": order.SettleAccountsDate, "charge_admin": charge_admin, "printor_admin": printor_admin, "info": res.Output.Setlinfo, "order": order, "bedCostTotal": bedCostTotal, "bedCostSelfTotal": bedCostSelfTotal, "bedCostPartSelfTotal": bedCostPartSelfTotal, "bedSelfTotal": bedSelfTotal, "bedInscpTotal": bedInscpTotal, "operationCostTotal": operationCostTotal, "operationCostSelfTotal": operationCostSelfTotal, "operationCostPartSelfTotal": operationCostPartSelfTotal, "operationSelfTotal": operationSelfTotal, "operationInscpTotal": operationInscpTotal, "otherCostTotal": otherCostTotal, "otherCostSelfTotal": otherCostSelfTotal, "otherCostPartSelfTotal": otherCostPartSelfTotal, "otherSelfTotal": otherSelfTotal, "otherInscpTotal": otherInscpTotal, "materialCostTotal": materialCostTotal, "materialCostSelfTotal": materialCostSelfTotal, "materialCostPartSelfTotal": materialCostPartSelfTotal, "materialSelfTotal": materialSelfTotal, "materialInscpTotal": materialInscpTotal, "westernMedicineCostTotal": westernMedicineCostTotal, "westernMedicineCostSelfTotal": westernMedicineCostSelfTotal, "westernMedicineCostPartSelfTotal": westernMedicineCostPartSelfTotal, "westernMedicineSelfTotal": westernMedicineSelfTotal, "westernMedicineInscpTotal": westernMedicineInscpTotal, "chineseTraditionalMedicineCostTotal": chineseTraditionalMedicineCostTotal, "chineseTraditionalMedicineCostSelfTotal": chineseTraditionalMedicineCostSelfTotal, "chineseTraditionalMedicineCostPartSelfTotal": chineseTraditionalMedicineCostPartSelfTotal, "chineseTraditionalSelfTotal": chineseTraditionalSelfTotal, "chineseTraditionalInscpTotal": chineseTraditionalInscpTotal, "checkCostTotal": checkCostTotal, "checkCostSelfTotal": checkCostSelfTotal, "checkCostPartSelfTotal": checkCostPartSelfTotal, "checkSelfTotal": checkSelfTotal, "checkInscpTotal": checkInscpTotal, "laboratoryCostTotal": laboratoryCostTotal, "laboratoryCostSelfTotal": laboratoryCostSelfTotal, "laboratoryCostPartSelfTotal": laboratoryCostPartSelfTotal, "laboratorySelfTotal": laboratorySelfTotal, "laboratoryInscpTotal": laboratoryInscpTotal, "treatCostTotal": treatCostTotal, "treatCostSelfTotal": treatCostSelfTotal, "treatCostPartSelfTotal": treatCostPartSelfTotal, "treatSelfTotal": treatSelfTotal, "treatInscpTotal": treatInscpTotal, "doctor_info": doctor_info, "doctor_code": adminRole_two.DoctorCode, "doctor_name": doctor_name, "health_card_no": order.PsnNo, "department": departments.Name, "yiliao_leibie": yiliao_leibie, "after_money": order.AccountPrice, "patient": patient, "org_name": miConfig.OrgName, "org_code": miConfig.Code, "order_number": order.Number, "his_hospital": his_hospital, "his": his, "dia_config": dia_config, "psn_cash_pay": order.PsnCashPay, //"check_order_info": cus_slice, } data3 = append(data3, data2) } } } c.ServeSuccessJSON(map[string]interface{}{ "infos": data3, }) } func (c *HisApiController) GetSettleAccounts() { //id, _ := c.GetInt64("id") //record_time := c.GetString("record_time") order_id, _ := c.GetInt64("order_id") admin_user_id, _ := c.GetInt64("admin_user_id") //timeLayout := "2006-01-02" //loc, _ := time.LoadLocation("Local") // //theTime, err := time.ParseInLocation(timeLayout+" 15:04:05", record_time+" 00:00:00", loc) //if err != nil { // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) // return //}Hbyb5203 //recordDateTime := theTime.Unix() adminUser := c.GetAdminUserInfo() order, _ := service.GetHisOrderByID(order_id) his, _ := service.GetHisPatientByNumber(order.MdtrtId) orderInfos, _ := service.GetHisOrderInfoByNumber(order.Number) orderInfos_two, _ := service.GetHisOrderInfoByNumberTwo(order.Number) orderInfos = append(orderInfos, orderInfos_two...) his_hospital, _ := service.GetInHospitalRecordByNumber(order.MdtrtId) //diagnosisConfig, _ := service.FindDiagnoseById(his.Diagnosis) var diagnosis_ids []string if his.ID > 0 { diagnosis_ids = strings.Split(his.Diagnosis, ",") } else { diagnosis_ids = strings.Split(his_hospital.Diagnosis, ",") } patient, _ := service.GetPatientByIDTwo(adminUser.CurrentOrgId, order.PatientId) var dia_config []*models.HisXtDiagnoseConfig var name string for _, item := range diagnosis_ids { id, _ := strconv.ParseInt(item, 10, 64) diagnosisConfig, _ := service.FindDiagnoseById(id) dia_config = append(dia_config, &diagnosisConfig) if len(name) == 0 { name = diagnosisConfig.ClassName } else { name = name + "," + diagnosisConfig.ClassName } } if patient.UserOrgId == 10215 { name = "慢性肾功能不全(血透治疗)" } var bedCostTotal float64 = 0 //床位总费 var bedCostSelfTotal float64 = 0 //床位自费 var bedCostPartSelfTotal float64 = 0 //床位部分项目自费 var bedSelfTotal float64 = 0 //床位部分项目自费 var bedInscpTotal float64 = 0 //床位部分项目自费 var operationCostTotal float64 = 0 //手术费 var operationCostSelfTotal float64 = 0 //手术费 var operationCostPartSelfTotal float64 = 0 //手术费 var operationSelfTotal float64 = 0 //床位部分项目自费 var operationInscpTotal float64 = 0 //床位部分项目自费 var otherCostTotal float64 = 0 //其他费用 var otherCostSelfTotal float64 = 0 //其他费用 var otherCostPartSelfTotal float64 = 0 //其他费用 var otherSelfTotal float64 = 0 //床位部分项目自费 var otherInscpTotal float64 = 0 //床位部分项目自费 var materialCostTotal float64 = 0 //材料费 var materialCostSelfTotal float64 = 0 //材料费 var materialCostPartSelfTotal float64 = 0 //材料费 var materialSelfTotal float64 = 0 //床位部分项目自费 var materialInscpTotal float64 = 0 //床位部分项目自费 var westernMedicineCostTotal float64 = 0 //西药费 var westernMedicineCostSelfTotal float64 = 0 //西药费 var westernMedicineCostPartSelfTotal float64 = 0 //西药费 var westernMedicineSelfTotal float64 = 0 //床位部分项目自费 var westernMedicineInscpTotal float64 = 0 //床位部分项目自费 var chineseTraditionalMedicineCostTotal float64 = 0 //中成药 var chineseTraditionalMedicineCostSelfTotal float64 = 0 //中成药 var chineseTraditionalMedicineCostPartSelfTotal float64 = 0 //中成药 var chineseTraditionalSelfTotal float64 = 0 //床位部分项目自费 var chineseTraditionalInscpTotal float64 = 0 //床位部分项目自费 var checkCostTotal float64 = 0 //检查费 var checkCostSelfTotal float64 = 0 //检查费 var checkCostPartSelfTotal float64 = 0 //检查费 var checkSelfTotal float64 = 0 //床位部分项目自费 var checkInscpTotal float64 = 0 //床位部分项目自费 var laboratoryCostTotal float64 = 0 //化验费 var laboratoryCostSelfTotal float64 = 0 //化验费 var laboratoryCostPartSelfTotal float64 = 0 //化验费 var laboratorySelfTotal float64 = 0 //床位部分项目自费 var laboratoryInscpTotal float64 = 0 //床位部分项目自费 var treatCostTotal float64 = 0 //治疗费用 var treatCostSelfTotal float64 = 0 //治疗费用 var treatCostPartSelfTotal float64 = 0 //治疗费用 var treatSelfTotal float64 = 0 //床位部分项目自费 var treatInscpTotal float64 = 0 //床位部分项目自费 var zcCostTotal float64 = 0 //治疗费用 var zcCostSelfTotal float64 = 0 //治疗费用 var zcCostPartSelfTotal float64 = 0 //治疗费用 var zcSelfTotal float64 = 0 //床位部分项目自费 var zcInscpTotal float64 = 0 //床位部分项目自费 var huliCostTotal float64 = 0 //治疗费用 var huliCostSelfTotal float64 = 0 //治疗费用 var huliCostPartSelfTotal float64 = 0 //治疗费用 var huliSelfTotal float64 = 0 //床位部分项目自费 var huliInscpTotal float64 = 0 //床位部分项目自费 decimal.DivisionPrecision = 2 for _, item := range orderInfos { if item.MedChrgitmType == "01" { //床位费 bedCostTotal, _ = decimal.NewFromFloat(bedCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() bedCostSelfTotal, _ = decimal.NewFromFloat(bedCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() bedCostPartSelfTotal, _ = decimal.NewFromFloat(bedCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() bedSelfTotal, _ = decimal.NewFromFloat(bedSelfTotal).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64() bedInscpTotal, _ = decimal.NewFromFloat(bedInscpTotal).Add(decimal.NewFromFloat(item.InscpScpAmt)).Float64() } if c.GetAdminUserInfo().CurrentOrgId == 10188 || c.GetAdminUserInfo().CurrentOrgId == 10217 { if item.MedChrgitmType == "03" { //检查费 laboratoryCostTotal, _ = decimal.NewFromFloat(laboratoryCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() laboratoryCostSelfTotal, _ = decimal.NewFromFloat(laboratoryCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() laboratoryCostPartSelfTotal, _ = decimal.NewFromFloat(laboratoryCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() laboratorySelfTotal, _ = decimal.NewFromFloat(laboratorySelfTotal).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64() laboratoryInscpTotal, _ = decimal.NewFromFloat(laboratoryInscpTotal).Add(decimal.NewFromFloat(item.InscpScpAmt)).Float64() } } else { if item.MedChrgitmType == "03" && adminUser.CurrentOrgId == 9504 { //手术费 fmt.Println("------------") treatCostTotal, _ = decimal.NewFromFloat(treatCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() treatCostSelfTotal, _ = decimal.NewFromFloat(treatCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() treatCostPartSelfTotal, _ = decimal.NewFromFloat(treatCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() } if item.MedChrgitmType == "03" && adminUser.CurrentOrgId != 9504 { //手术费 checkCostTotal, _ = decimal.NewFromFloat(checkCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() checkCostSelfTotal, _ = decimal.NewFromFloat(checkCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() checkCostPartSelfTotal, _ = decimal.NewFromFloat(checkCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() checkSelfTotal, _ = decimal.NewFromFloat(checkSelfTotal).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64() checkInscpTotal, _ = decimal.NewFromFloat(checkInscpTotal).Add(decimal.NewFromFloat(item.InscpScpAmt)).Float64() } } if item.MedChrgitmType == "04" { //化验费 laboratoryCostTotal, _ = decimal.NewFromFloat(laboratoryCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() laboratoryCostSelfTotal, _ = decimal.NewFromFloat(laboratoryCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() laboratoryCostPartSelfTotal, _ = decimal.NewFromFloat(laboratoryCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() laboratorySelfTotal, _ = decimal.NewFromFloat(laboratorySelfTotal).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64() laboratoryInscpTotal, _ = decimal.NewFromFloat(laboratoryInscpTotal).Add(decimal.NewFromFloat(item.InscpScpAmt)).Float64() } if item.MedChrgitmType == "05" { //治疗费 treatCostTotal, _ = decimal.NewFromFloat(treatCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() treatCostSelfTotal, _ = decimal.NewFromFloat(treatCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() treatCostPartSelfTotal, _ = decimal.NewFromFloat(treatCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() treatSelfTotal, _ = decimal.NewFromFloat(treatSelfTotal).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64() treatInscpTotal, _ = decimal.NewFromFloat(treatInscpTotal).Add(decimal.NewFromFloat(item.InscpScpAmt)).Float64() } if item.MedChrgitmType == "06" && adminUser.CurrentOrgId == 9504 { //手术费 fmt.Println("------------") treatCostTotal, _ = decimal.NewFromFloat(treatCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() treatCostSelfTotal, _ = decimal.NewFromFloat(treatCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() treatCostPartSelfTotal, _ = decimal.NewFromFloat(treatCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() treatSelfTotal, _ = decimal.NewFromFloat(treatSelfTotal).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64() treatInscpTotal, _ = decimal.NewFromFloat(treatInscpTotal).Add(decimal.NewFromFloat(item.InscpScpAmt)).Float64() } if item.MedChrgitmType == "06" && adminUser.CurrentOrgId != 9504 { //手术费 operationCostTotal, _ = decimal.NewFromFloat(operationCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() operationCostSelfTotal, _ = decimal.NewFromFloat(operationCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() operationCostPartSelfTotal, _ = decimal.NewFromFloat(operationCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() operationSelfTotal, _ = decimal.NewFromFloat(operationSelfTotal).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64() operationInscpTotal, _ = decimal.NewFromFloat(operationInscpTotal).Add(decimal.NewFromFloat(item.InscpScpAmt)).Float64() } if item.MedChrgitmType == "08" || item.MedChrgitmType == "1402" || item.MedChrgitmType == "1403" { //材料费 materialCostTotal, _ = decimal.NewFromFloat(materialCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() materialCostSelfTotal, _ = decimal.NewFromFloat(materialCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() materialCostPartSelfTotal, _ = decimal.NewFromFloat(materialCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() materialSelfTotal, _ = decimal.NewFromFloat(materialSelfTotal).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64() materialInscpTotal, _ = decimal.NewFromFloat(materialInscpTotal).Add(decimal.NewFromFloat(item.InscpScpAmt)).Float64() } if item.MedChrgitmType == "09" { //西药费 westernMedicineCostTotal, _ = decimal.NewFromFloat(westernMedicineCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() westernMedicineCostSelfTotal, _ = decimal.NewFromFloat(westernMedicineCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() westernMedicineCostPartSelfTotal, _ = decimal.NewFromFloat(westernMedicineCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() westernMedicineSelfTotal, _ = decimal.NewFromFloat(westernMedicineSelfTotal).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64() westernMedicineInscpTotal, _ = decimal.NewFromFloat(westernMedicineInscpTotal).Add(decimal.NewFromFloat(item.InscpScpAmt)).Float64() } if item.MedChrgitmType == "11" { //中成费 chineseTraditionalMedicineCostTotal, _ = decimal.NewFromFloat(chineseTraditionalMedicineCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() chineseTraditionalMedicineCostSelfTotal, _ = decimal.NewFromFloat(chineseTraditionalMedicineCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() chineseTraditionalMedicineCostPartSelfTotal, _ = decimal.NewFromFloat(chineseTraditionalMedicineCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() chineseTraditionalSelfTotal, _ = decimal.NewFromFloat(chineseTraditionalSelfTotal).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64() chineseTraditionalInscpTotal, _ = decimal.NewFromFloat(chineseTraditionalInscpTotal).Add(decimal.NewFromFloat(item.InscpScpAmt)).Float64() } if item.MedChrgitmType == "14" || item.MedChrgitmType == "0" || item.MedChrgitmType == "12" { //其他费 otherCostTotal, _ = decimal.NewFromFloat(otherCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() otherCostSelfTotal, _ = decimal.NewFromFloat(otherCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() otherCostPartSelfTotal, _ = decimal.NewFromFloat(otherCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() otherSelfTotal, _ = decimal.NewFromFloat(otherSelfTotal).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64() otherInscpTotal, _ = decimal.NewFromFloat(otherInscpTotal).Add(decimal.NewFromFloat(item.InscpScpAmt)).Float64() } if item.MedChrgitmType == "02" { //其他费 zcCostTotal, _ = decimal.NewFromFloat(zcCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() zcCostSelfTotal, _ = decimal.NewFromFloat(zcCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() zcCostPartSelfTotal, _ = decimal.NewFromFloat(zcCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() zcSelfTotal, _ = decimal.NewFromFloat(zcSelfTotal).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64() zcInscpTotal, _ = decimal.NewFromFloat(zcInscpTotal).Add(decimal.NewFromFloat(item.InscpScpAmt)).Float64() } if item.MedChrgitmType == "07" { //其他费 huliCostTotal, _ = decimal.NewFromFloat(huliCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64() huliCostSelfTotal, _ = decimal.NewFromFloat(huliCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64() huliCostPartSelfTotal, _ = decimal.NewFromFloat(huliCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64() huliSelfTotal, _ = decimal.NewFromFloat(huliSelfTotal).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64() huliInscpTotal, _ = decimal.NewFromFloat(huliInscpTotal).Add(decimal.NewFromFloat(item.InscpScpAmt)).Float64() } } miConfig, _ := service.FindMedicalInsuranceInfo(adminUser.CurrentOrgId) config, _ := service.GetMedicalInsuranceConfig(adminUser.CurrentOrgId) var user_name string role, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, admin_user_id) if role.ID == 0 { user_name = "管理员" } else { user_name = role.UserName } baseParams := models.BaseParams{ SecretKey: miConfig.SecretKey, FixmedinsCode: miConfig.Code, InsuplcAdmdvs: miConfig.InsuplcAdmdvs, MdtrtareaAdmvs: miConfig.MdtrtareaAdmvs, OrgName: miConfig.OrgName, Doctor: user_name, RequestUrl: miConfig.Url, AccessKey: miConfig.AccessKey, } businessParams := models.BusinessParams{ PsnNo: order.PsnNo, MdtrtId: order.MdtrtId, SetlId: order.SetlId, } var res ResultEleven var resah ResultElevenah var resEleven10265 ResultEleven10265 if config.IsOpen == 1 { if miConfig.MdtrtareaAdmvs == "421300" { api := "http://192.168.124.4:9532/" + "hbyb/5203?psn_no=" + businessParams.PsnNo + "&mdtrt_id=" + businessParams.MdtrtId + "&setl_id=" + businessParams.SetlId + "&org_name=" + miConfig.OrgName + "&doctor=" + baseParams.Doctor + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) result, _ := json.Marshal(respJSON) fmt.Println("log") fmt.Println(string(result)) if err := json.Unmarshal([]byte(result), &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "420200" { api := "http://192.168.0.197:9532/" + "hbyb/5203?psn_no=" + businessParams.PsnNo + "&mdtrt_id=" + businessParams.MdtrtId + "&setl_id=" + businessParams.SetlId + "&org_name=" + miConfig.OrgName + "&doctor=" + baseParams.Doctor + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) result, _ := json.Marshal(respJSON) fmt.Println("log") fmt.Println(string(result)) if err := json.Unmarshal([]byte(result), &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "420902" { api := miConfig.Url + "hbyb/5203?psn_no=" + businessParams.PsnNo + "&mdtrt_id=" + businessParams.MdtrtId + "&setl_id=" + businessParams.SetlId + "&org_name=" + miConfig.OrgName + "&doctor=" + baseParams.Doctor + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) result, _ := json.Marshal(respJSON) fmt.Println("log") fmt.Println(string(result)) if err := json.Unmarshal([]byte(result), &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "421182" { api := miConfig.Url + "hbyb/5203?psn_no=" + businessParams.PsnNo + "&mdtrt_id=" + businessParams.MdtrtId + "&setl_id=" + businessParams.SetlId + "&org_name=" + miConfig.OrgName + "&doctor=" + baseParams.Doctor + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&med_type=" + order.MedType resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) result, _ := json.Marshal(respJSON) fmt.Println("log") fmt.Println(string(result)) if err := json.Unmarshal([]byte(result), &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "320921" || miConfig.MdtrtareaAdmvs == "320982" { var api string if miConfig.MdtrtareaAdmvs == "320921" { api = "http://192.168.2.3:9532/" + "jsyb/5203?psn_no=" + businessParams.PsnNo + "&mdtrt_id=" + businessParams.MdtrtId + "&setl_id=" + businessParams.SetlId + "&org_name=" + miConfig.OrgName + "&doctor=" + baseParams.Doctor + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&url=" + miConfig.Url + "&ak=" + miConfig.AccessKey + "&cainfo=" + miConfig.Cainfo //req, _ = http.NewRequest("POST", "http://192.168.2.110:9532/"+"jsyb/2204", bytes.NewReader(bytesData)) } else { //req, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/2204", bytes.NewReader(bytesData)) api = "http://192.168.5.251:9532/" + "jsyb/5203?psn_no=" + businessParams.PsnNo + "&mdtrt_id=" + businessParams.MdtrtId + "&setl_id=" + businessParams.SetlId + "&org_name=" + miConfig.OrgName + "&doctor=" + baseParams.Doctor + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&url=" + miConfig.Url + "&ak=" + miConfig.AccessKey + "&cainfo=" + miConfig.Cainfo } resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) result, _ := json.Marshal(respJSON) fmt.Println("log") fmt.Println(string(result)) if err := json.Unmarshal([]byte(result), &resEleven10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res.InfRefmsgid = resEleven10265.InfRefmsgid res.Output = resEleven10265.Output res.ErrMsg = resEleven10265.ErrMsg res.Cainfo = resEleven10265.Cainfo res.WarnMsg = resEleven10265.WarnMsg infocode, _ := strconv.ParseInt(resEleven10265.Infcode, 10, 64) res.Infcode = infocode } else if miConfig.MdtrtareaAdmvs == "350500" { result, requestLog, _ := service.FJyb5203(baseParams, businessParams, miConfig.Url, miConfig.Code, miConfig.AppSecret, miConfig.SignKey, miConfig.EncKey) saveLog(result, requestLog, "5203", "结算单") var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } userJSONBytes, _ := json.Marshal(dat) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "360302" { baseParams.InsuplcAdmdvs = his.InsuplcAdmdvs result, requestLog := service.Jxyb5203(baseParams, businessParams) saveLog(result, requestLog, "5203", "结算单") var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } userJSONBytes, _ := json.Marshal(dat) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "361025" { baseParams.InsuplcAdmdvs = his.InsuplcAdmdvs result, requestLog := service.Jxyb5203(baseParams, businessParams) saveLog(result, requestLog, "5203", "结算单") var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } userJSONBytes, _ := json.Marshal(dat) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "360100" { baseParams.InsuplcAdmdvs = his.InsuplcAdmdvs result, requestLog := service.Jxyb5203(baseParams, businessParams) saveLog(result, requestLog, "5203", "结算单") var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } userJSONBytes, _ := json.Marshal(dat) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "341203" { var api string api = miConfig.SecretKey + "ahyb/5203?psn_no=" + businessParams.PsnNo + "&mdtrt_id=" + businessParams.MdtrtId + "&setl_id=" + businessParams.SetlId + "&org_name=" + miConfig.OrgName + "&doctor=" + baseParams.Doctor + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&url=" + miConfig.Url + "&ak=" + miConfig.AccessKey + "&cainfo=" + miConfig.Cainfo //req, _ = http.NewRequest("POST", "http://192.168.2.110:9532/"+"jsyb/2204", bytes.NewReader(bytesData)) //req, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/2204", bytes.NewReader(bytesData)) resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } status := respJSON["data"].(map[string]interface{})["status"].(string) if status == "0" { err_msg := respJSON["data"].(map[string]interface{})["msg"].(string) c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": err_msg, }) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) result, _ := json.Marshal(respJSON) fmt.Println("log") fmt.Println(string(result)) if err := json.Unmarshal([]byte(result), &resah); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res.InfRefmsgid = resah.InfRefmsgid timestamp := int64(resah.Output.Setlinfo.SetlTime) // 输入要转换的时间戳(这里仅作示例) // 创建对应的Time类型 t := time.UnixMilli(timestamp) // 格式化成指定的日期字符串 str := t.Format("2006-01-02 15:04:05") timestamp2 := int64(resah.Output.Setlinfo.SetlTime) // 输入要转换的时间戳(这里仅作示例) // 创建对应的Time类型 t3 := time.UnixMilli(timestamp2) // 格式化成指定的日期字符串 str2 := t3.Format("2006-01-02 15:04:05") timestamp3 := int64(resah.Output.Setlinfo.Begndate) // 输入要转换的时间戳(这里仅作示例) // 创建对应的Time类型 t4 := time.UnixMilli(timestamp3) // 格式化成指定的日期字符串 str3 := t4.Format("2006-01-02 15:04:05") timestamp4 := int64(resah.Output.Setlinfo.Enddate) // 输入要转换的时间戳(这里仅作示例) // 创建对应的Time类型 t5 := time.UnixMilli(timestamp4) // 格式化成指定的日期字符串 str5 := t5.Format("2006-01-02 15:04:05") res.Output.Setlinfo.Brdy = str2 res.Output.Setlinfo.SetlTime = str res.Output.Setlinfo.Begndate = str3 res.Output.Setlinfo.Enddate = str5 res.Output.Setlinfo.Year = resah.Output.Setlinfo.Year res.Output.Setlinfo.PsnPay = resah.Output.Setlinfo.PsnPay res.Output.Setlinfo.OpterID = resah.Output.Setlinfo.OpterID res.Output.Setlinfo.FlxempeFlag = resah.Output.Setlinfo.FlxempeFlag res.Output.Setlinfo.Gend = resah.Output.Setlinfo.Gend res.Output.Setlinfo.MdtrtID = resah.Output.Setlinfo.MdtrtID res.Output.Setlinfo.AcctMulaidPay = resah.Output.Setlinfo.AcctMulaidPay res.Output.Setlinfo.AcctPay = resah.Output.Setlinfo.AcctPay res.Output.Setlinfo.CvlservPay = resah.Output.Setlinfo.CvlservPay res.Output.Setlinfo.ActPayDedc = resah.Output.Setlinfo.ActPayDedc res.Output.Setlinfo.Age = resah.Output.Setlinfo.Age res.Output.Setlinfo.Balc = resah.Output.Setlinfo.Balc //res.Output.Setlinfo.Brdy = gzresSeven10265Two.Output.Setlinfo.Brdy res.Output.Setlinfo.Certno = resah.Output.Setlinfo.Certno res.Output.Setlinfo.ClrOptins = resah.Output.Setlinfo.ClrOptins res.Output.Setlinfo.ClrType = resah.Output.Setlinfo.ClrOptins res.Output.Setlinfo.ClrWay = resah.Output.Setlinfo.ClrOptins res.Output.Setlinfo.CvlservFlag = resah.Output.Setlinfo.ClrOptins res.Output.Setlinfo.CvlservPay = resah.Output.Setlinfo.CvlservPay res.Output.Setlinfo.FulamtOwnpayAmt = resah.Output.Setlinfo.FulamtOwnpayAmt res.Output.Setlinfo.FundPaySumamt = resah.Output.Setlinfo.FundPaySumamt res.Output.Setlinfo.Gend = resah.Output.Setlinfo.Gend res.Output.Setlinfo.HifesPay = resah.Output.Setlinfo.HifesPay res.Output.Setlinfo.HifmiPay = resah.Output.Setlinfo.HifmiPay res.Output.Setlinfo.HifpPay = resah.Output.Setlinfo.HifpPay //HospPartAmt, _ := strconv.ParseFloat(gzresSeven10265Two.Output.Setlinfo.HospPartAmt, 64) //res.Output.Setlinfo.HospPartAmt = resah.Output.Setlinfo.HospPartAmt res.Output.Setlinfo.InscpScpAmt = resah.Output.Setlinfo.InscpScpAmt res.Output.Setlinfo.Insutype = resah.Output.Setlinfo.Insutype res.Output.Setlinfo.MafPay = resah.Output.Setlinfo.MafPay //res.Output.Setlinfo.MdtrtCertType = ahres.Output.Setlinfo.MdtrtCertType res.Output.Setlinfo.HifobPay = resah.Output.Setlinfo.HifobPay res.Output.Setlinfo.MdtrtID = resah.Output.Setlinfo.MdtrtID res.Output.Setlinfo.MedType = resah.Output.Setlinfo.MedType res.Output.Setlinfo.MedfeeSumamt = resah.Output.Setlinfo.MedfeeSumamt res.Output.Setlinfo.MedinsSetlID = resah.Output.Setlinfo.MedinsSetlID res.Output.Setlinfo.Naty = resah.Output.Setlinfo.Naty res.Output.Setlinfo.OthPay = resah.Output.Setlinfo.OthPay res.Output.Setlinfo.OverlmtSelfpay = resah.Output.Setlinfo.OverlmtSelfpay res.Output.Setlinfo.PoolPropSelfpay = resah.Output.Setlinfo.PoolPropSelfpay res.Output.Setlinfo.PreselfpayAmt = resah.Output.Setlinfo.PreselfpayAmt res.Output.Setlinfo.PsnCashPay = resah.Output.Setlinfo.PsnCashPay res.Output.Setlinfo.PsnCertType = resah.Output.Setlinfo.ClrOptins res.Output.Setlinfo.PsnName = resah.Output.Setlinfo.PsnName res.Output.Setlinfo.PsnNo = resah.Output.Setlinfo.PsnNo //res.Output.Setlinfo.PsnPartAmt = ahres.Output.Setlinfo.PsnPartAmt res.Output.Setlinfo.PsnType = resah.Output.Setlinfo.PsnType res.Output.Setlinfo.SetlID = resah.Output.Setlinfo.SetlID //res.Output.Setldetail = resah.Output.Setldetail res.ErrMsg = resah.ErrMsg res.Cainfo = resah.Cainfo res.WarnMsg = resah.WarnMsg } else if miConfig.MdtrtareaAdmvs == "340699" { var api string api = miConfig.SecretKey + "ahyb/5203?psn_no=" + businessParams.PsnNo + "&mdtrt_id=" + businessParams.MdtrtId + "&setl_id=" + businessParams.SetlId + "&org_name=" + miConfig.OrgName + "&doctor=" + baseParams.Doctor + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&url=" + miConfig.Url + "&ak=" + miConfig.AccessKey + "&cainfo=" + miConfig.Cainfo //req, _ = http.NewRequest("POST", "http://192.168.2.110:9532/"+"jsyb/2204", bytes.NewReader(bytesData)) //req, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/2204", bytes.NewReader(bytesData)) resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } status := respJSON["data"].(map[string]interface{})["status"].(string) if status == "0" { err_msg := respJSON["data"].(map[string]interface{})["msg"].(string) c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": err_msg, }) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) result, _ := json.Marshal(respJSON) fmt.Println("log") fmt.Println(string(result)) if err := json.Unmarshal([]byte(result), &resah); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res.InfRefmsgid = resah.InfRefmsgid timestamp := int64(resah.Output.Setlinfo.SetlTime) // 输入要转换的时间戳(这里仅作示例) // 创建对应的Time类型 t := time.UnixMilli(timestamp) // 格式化成指定的日期字符串 str := t.Format("2006-01-02 15:04:05") timestamp2 := int64(resah.Output.Setlinfo.SetlTime) // 输入要转换的时间戳(这里仅作示例) // 创建对应的Time类型 t3 := time.UnixMilli(timestamp2) // 格式化成指定的日期字符串 str2 := t3.Format("2006-01-02 15:04:05") timestamp3 := int64(resah.Output.Setlinfo.Begndate) // 输入要转换的时间戳(这里仅作示例) // 创建对应的Time类型 t4 := time.UnixMilli(timestamp3) // 格式化成指定的日期字符串 str3 := t4.Format("2006-01-02 15:04:05") timestamp4 := int64(resah.Output.Setlinfo.Enddate) // 输入要转换的时间戳(这里仅作示例) // 创建对应的Time类型 t5 := time.UnixMilli(timestamp4) // 格式化成指定的日期字符串 str5 := t5.Format("2006-01-02 15:04:05") res.Output.Setlinfo.Brdy = str2 res.Output.Setlinfo.SetlTime = str res.Output.Setlinfo.Begndate = str3 res.Output.Setlinfo.Enddate = str5 res.Output.Setlinfo.Year = resah.Output.Setlinfo.Year res.Output.Setlinfo.PsnPay = resah.Output.Setlinfo.PsnPay res.Output.Setlinfo.OpterID = resah.Output.Setlinfo.OpterID res.Output.Setlinfo.FlxempeFlag = resah.Output.Setlinfo.FlxempeFlag res.Output.Setlinfo.Gend = resah.Output.Setlinfo.Gend res.Output.Setlinfo.MdtrtID = resah.Output.Setlinfo.MdtrtID res.Output.Setlinfo.AcctMulaidPay = resah.Output.Setlinfo.AcctMulaidPay res.Output.Setlinfo.AcctPay = resah.Output.Setlinfo.AcctPay res.Output.Setlinfo.CvlservPay = resah.Output.Setlinfo.CvlservPay res.Output.Setlinfo.ActPayDedc = resah.Output.Setlinfo.ActPayDedc res.Output.Setlinfo.Age = resah.Output.Setlinfo.Age res.Output.Setlinfo.Balc = resah.Output.Setlinfo.Balc //res.Output.Setlinfo.Brdy = gzresSeven10265Two.Output.Setlinfo.Brdy res.Output.Setlinfo.Certno = resah.Output.Setlinfo.Certno res.Output.Setlinfo.ClrOptins = resah.Output.Setlinfo.ClrOptins res.Output.Setlinfo.ClrType = resah.Output.Setlinfo.ClrOptins res.Output.Setlinfo.ClrWay = resah.Output.Setlinfo.ClrOptins res.Output.Setlinfo.CvlservFlag = resah.Output.Setlinfo.ClrOptins res.Output.Setlinfo.CvlservPay = resah.Output.Setlinfo.CvlservPay res.Output.Setlinfo.FulamtOwnpayAmt = resah.Output.Setlinfo.FulamtOwnpayAmt res.Output.Setlinfo.FundPaySumamt = resah.Output.Setlinfo.FundPaySumamt res.Output.Setlinfo.Gend = resah.Output.Setlinfo.Gend res.Output.Setlinfo.HifesPay = resah.Output.Setlinfo.HifesPay res.Output.Setlinfo.HifmiPay = resah.Output.Setlinfo.HifmiPay res.Output.Setlinfo.HifpPay = resah.Output.Setlinfo.HifpPay //HospPartAmt, _ := strconv.ParseFloat(gzresSeven10265Two.Output.Setlinfo.HospPartAmt, 64) //res.Output.Setlinfo.HospPartAmt = resah.Output.Setlinfo.HospPartAmt res.Output.Setlinfo.InscpScpAmt = resah.Output.Setlinfo.InscpScpAmt res.Output.Setlinfo.Insutype = resah.Output.Setlinfo.Insutype res.Output.Setlinfo.MafPay = resah.Output.Setlinfo.MafPay //res.Output.Setlinfo.MdtrtCertType = ahres.Output.Setlinfo.MdtrtCertType res.Output.Setlinfo.HifobPay = resah.Output.Setlinfo.HifobPay res.Output.Setlinfo.MdtrtID = resah.Output.Setlinfo.MdtrtID res.Output.Setlinfo.MedType = resah.Output.Setlinfo.MedType res.Output.Setlinfo.MedfeeSumamt = resah.Output.Setlinfo.MedfeeSumamt res.Output.Setlinfo.MedinsSetlID = resah.Output.Setlinfo.MedinsSetlID res.Output.Setlinfo.Naty = resah.Output.Setlinfo.Naty res.Output.Setlinfo.OthPay = resah.Output.Setlinfo.OthPay res.Output.Setlinfo.OverlmtSelfpay = resah.Output.Setlinfo.OverlmtSelfpay res.Output.Setlinfo.PoolPropSelfpay = resah.Output.Setlinfo.PoolPropSelfpay res.Output.Setlinfo.PreselfpayAmt = resah.Output.Setlinfo.PreselfpayAmt res.Output.Setlinfo.PsnCashPay = resah.Output.Setlinfo.PsnCashPay res.Output.Setlinfo.PsnCertType = resah.Output.Setlinfo.ClrOptins res.Output.Setlinfo.PsnName = resah.Output.Setlinfo.PsnName res.Output.Setlinfo.PsnNo = resah.Output.Setlinfo.PsnNo //res.Output.Setlinfo.PsnPartAmt = ahres.Output.Setlinfo.PsnPartAmt res.Output.Setlinfo.PsnType = resah.Output.Setlinfo.PsnType res.Output.Setlinfo.SetlID = resah.Output.Setlinfo.SetlID //res.Output.Setldetail = resah.Output.Setldetail res.ErrMsg = resah.ErrMsg res.Cainfo = resah.Cainfo res.WarnMsg = resah.WarnMsg } else if miConfig.MdtrtareaAdmvs == "430800" { result, requestLog := service.Hnyb5203(baseParams, businessParams) saveLog(result, requestLog, "5203", "结算单") var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } userJSONBytes, _ := json.Marshal(dat) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "150499" { api := "http://172.16.13.254:9532/" + "nmyb/5203?psn_no=" + businessParams.PsnNo + "&mdtrt_id=" + businessParams.MdtrtId + "&setl_id=" + businessParams.SetlId + "&org_name=" + miConfig.OrgName + "&doctor=" + baseParams.Doctor + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) result, _ := json.Marshal(respJSON) fmt.Println("log") fmt.Println(string(result)) if err := json.Unmarshal([]byte(result), &resEleven10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res.InfRefmsgid = resEleven10265.InfRefmsgid res.Output = resEleven10265.Output res.ErrMsg = resEleven10265.ErrMsg res.Cainfo = resEleven10265.Cainfo res.WarnMsg = resEleven10265.WarnMsg infocode, _ := strconv.ParseInt(resEleven10265.Infcode, 10, 64) res.Infcode = infocode } else if miConfig.MdtrtareaAdmvs == "441799" { api := miConfig.Url + "gdyb/5203?psn_no=" + businessParams.PsnNo + "&mdtrt_id=" + businessParams.MdtrtId + "&setl_id=" + businessParams.SetlId + "&org_name=" + miConfig.OrgName + "&doctor=" + baseParams.Doctor + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + his.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) result, _ := json.Marshal(respJSON) if err := json.Unmarshal([]byte(result), &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else if miConfig.MdtrtareaAdmvs == "450721" { service.Gxyb9001(baseParams.OrgName, baseParams.Doctor, miConfig.Code, his.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, admin_user_id, order.SetlId, order.MdtrtId, order.PsnNo, order.MedinsSetlId) //return } else { his, _ := service.GetHisPatientByNumber(order.MdtrtId) if len(his.InsuplcAdmdvs) == 0 { baseParams.InsuplcAdmdvs = miConfig.InsuplcAdmdvs } else { baseParams.InsuplcAdmdvs = his.InsuplcAdmdvs } result := service.Gdyb5203(baseParams, businessParams) //service.Gdyb5204(baseParams, businessParams) //service.Gdyb5302(businessParams.PsnNo, baseParams.OrgName, baseParams.Doctor, baseParams.FixmedinsCode, baseParams.InsuplcAdmdvs, baseParams.MdtrtareaAdmvs, baseParams.SecretKey) var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } userJSONBytes, _ := json.Marshal(dat) if miConfig.Code == "H15049901371" { if err := json.Unmarshal(userJSONBytes, &resEleven10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res.InfRefmsgid = resEleven10265.InfRefmsgid res.Output = resEleven10265.Output res.ErrMsg = resEleven10265.ErrMsg res.Cainfo = resEleven10265.Cainfo res.WarnMsg = resEleven10265.WarnMsg infocode, _ := strconv.ParseInt(resEleven10265.Infcode, 10, 64) res.Infcode = infocode } else { if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } } printor_admin, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, admin_user_id) charge_admin, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, order.Creator) patientPrescription, _ := service.FindPatientPrescriptionInfo(adminUser.CurrentOrgId, order.PatientId, order.SettleAccountsDate) adminRole_two, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, patientPrescription.DoctorId) doctor_info, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, his_hospital.Doctor) roles, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, admin_user_id) var doctor_name string if roles.ID == 0 { doctor_name = "管理员" } else { doctor_name = roles.UserName } yiliao_leibie := "" switch order.MedType { case "11": yiliao_leibie = "普通门诊" break case "12": yiliao_leibie = "门诊挂号" break case "13": yiliao_leibie = "急诊" break case "14": yiliao_leibie = "门诊特殊病" break case "15": yiliao_leibie = "门诊统筹" break case "16": yiliao_leibie = "门诊慢性病" break case "21": yiliao_leibie = "普通住院" break } //var rf []CustomFundPay //json.Unmarshal([]byte(order.SetlDetail), &rf) departments, _ := service.GetDepartMentDetail(patientPrescription.Departments) res.Output.Setlinfo.PsnCashPay = order.PsnCashPay if res.Infcode == 0 { if adminUser.CurrentOrgId == 10215 || adminUser.CurrentOrgId == 10387 || adminUser.CurrentOrgId == 9919 || adminUser.CurrentOrgId == 10088 || adminUser.CurrentOrgId == 10150 || adminUser.CurrentOrgId == 10454 || adminUser.CurrentOrgId == 10644 || adminUser.CurrentOrgId == 10653 || adminUser.CurrentOrgId == 10210 { c.ServeSuccessJSON(map[string]interface{}{ "diagnosis": name, "order_infos": orderInfos, "number": order.MdtrtId, "date": order.SettleAccountsDate, "charge_admin": charge_admin, "printor_admin": printor_admin, "info": res.Output.Setlinfo, "order": order, "bedCostTotal": bedCostTotal, "bedCostSelfTotal": bedCostSelfTotal, "bedCostPartSelfTotal": bedCostPartSelfTotal, "bedSelfTotal": bedSelfTotal, "bedInscpTotal": bedInscpTotal, "operationCostTotal": operationCostTotal, "operationCostSelfTotal": operationCostSelfTotal, "operationCostPartSelfTotal": operationCostPartSelfTotal, "operationSelfTotal": operationSelfTotal, "operationInscpTotal": operationInscpTotal, "otherCostTotal": otherCostTotal, "otherCostSelfTotal": otherCostSelfTotal, "otherCostPartSelfTotal": otherCostPartSelfTotal, "otherSelfTotal": otherSelfTotal, "otherInscpTotal": otherInscpTotal, "materialCostTotal": materialCostTotal, "materialCostSelfTotal": materialCostSelfTotal, "materialCostPartSelfTotal": materialCostPartSelfTotal, "materialSelfTotal": materialSelfTotal, "materialInscpTotal": materialInscpTotal, "westernMedicineCostTotal": westernMedicineCostTotal, "westernMedicineCostSelfTotal": westernMedicineCostSelfTotal, "westernMedicineCostPartSelfTotal": westernMedicineCostPartSelfTotal, "westernMedicineSelfTotal": westernMedicineSelfTotal, "westernMedicineInscpTotal": westernMedicineInscpTotal, "chineseTraditionalMedicineCostTotal": chineseTraditionalMedicineCostTotal, "chineseTraditionalMedicineCostSelfTotal": chineseTraditionalMedicineCostSelfTotal, "chineseTraditionalMedicineCostPartSelfTotal": chineseTraditionalMedicineCostPartSelfTotal, "chineseTraditionalSelfTotal": chineseTraditionalSelfTotal, "chineseTraditionalInscpTotal": chineseTraditionalInscpTotal, "checkCostTotal": checkCostTotal, "checkCostSelfTotal": checkCostSelfTotal, "checkCostPartSelfTotal": checkCostPartSelfTotal, "checkSelfTotal": checkSelfTotal, "checkInscpTotal": checkInscpTotal, "laboratoryCostTotal": laboratoryCostTotal, "laboratoryCostSelfTotal": laboratoryCostSelfTotal, "laboratoryCostPartSelfTotal": laboratoryCostPartSelfTotal, "laboratorySelfTotal": laboratorySelfTotal, "laboratoryInscpTotal": laboratoryInscpTotal, "treatCostTotal": treatCostTotal, "treatCostSelfTotal": treatCostSelfTotal, "treatCostPartSelfTotal": treatCostPartSelfTotal, "treatSelfTotal": treatSelfTotal, "treatInscpTotal": treatInscpTotal, "doctor_info": doctor_info, "doctor_code": adminRole_two.DoctorCode, "doctor_name": doctor_name, "health_card_no": order.PsnNo, "department": departments.Name, "yiliao_leibie": yiliao_leibie, "after_money": order.AccountPrice, "patient": patient, "org_name": miConfig.OrgName, "org_code": miConfig.Code, "order_number": order.Number, "his_hospital": his_hospital, "his": his, "dia_config": dia_config, "psn_cash_pay": order.PsnCashPay, "zcCostTotal": zcCostTotal, "zcCostSelfTotal": zcCostSelfTotal, "zcCostPartSelfTotal": zcCostPartSelfTotal, "zcSelfTotal": zcSelfTotal, "zcInscpTotal": zcInscpTotal, "huliCostTotal": huliCostTotal, "huliCostSelfTotal": huliCostSelfTotal, "huliCostPartSelfTotal": huliCostPartSelfTotal, "huliSelfTotal": huliSelfTotal, "huliInscpTotal": huliInscpTotal, //"funds": rf, //"check_order_info": cus_slice, }) } else { c.ServeSuccessJSON(map[string]interface{}{ "diagnosis": name, "order_infos": orderInfos, "number": order.MdtrtId, "date": order.SettleAccountsDate, "charge_admin": charge_admin, "printor_admin": printor_admin, "info": order, "order": order, "bedCostTotal": bedCostTotal, "bedCostSelfTotal": bedCostSelfTotal, "bedCostPartSelfTotal": bedCostPartSelfTotal, "bedSelfTotal": bedSelfTotal, "bedInscpTotal": bedInscpTotal, "operationCostTotal": operationCostTotal, "operationCostSelfTotal": operationCostSelfTotal, "operationCostPartSelfTotal": operationCostPartSelfTotal, "operationSelfTotal": operationSelfTotal, "operationInscpTotal": operationInscpTotal, "otherCostTotal": otherCostTotal, "otherCostSelfTotal": otherCostSelfTotal, "otherCostPartSelfTotal": otherCostPartSelfTotal, "otherSelfTotal": otherSelfTotal, "otherInscpTotal": otherInscpTotal, "materialCostTotal": materialCostTotal, "materialCostSelfTotal": materialCostSelfTotal, "materialCostPartSelfTotal": materialCostPartSelfTotal, "materialSelfTotal": materialSelfTotal, "materialInscpTotal": materialInscpTotal, "westernMedicineCostTotal": westernMedicineCostTotal, "westernMedicineCostSelfTotal": westernMedicineCostSelfTotal, "westernMedicineCostPartSelfTotal": westernMedicineCostPartSelfTotal, "westernMedicineSelfTotal": westernMedicineSelfTotal, "westernMedicineInscpTotal": westernMedicineInscpTotal, "chineseTraditionalMedicineCostTotal": chineseTraditionalMedicineCostTotal, "chineseTraditionalMedicineCostSelfTotal": chineseTraditionalMedicineCostSelfTotal, "chineseTraditionalMedicineCostPartSelfTotal": chineseTraditionalMedicineCostPartSelfTotal, "chineseTraditionalSelfTotal": chineseTraditionalSelfTotal, "chineseTraditionalInscpTotal": chineseTraditionalInscpTotal, "checkCostTotal": checkCostTotal, "checkCostSelfTotal": checkCostSelfTotal, "checkCostPartSelfTotal": checkCostPartSelfTotal, "checkSelfTotal": checkSelfTotal, "checkInscpTotal": checkInscpTotal, "laboratoryCostTotal": laboratoryCostTotal, "laboratoryCostSelfTotal": laboratoryCostSelfTotal, "laboratoryCostPartSelfTotal": laboratoryCostPartSelfTotal, "laboratorySelfTotal": laboratorySelfTotal, "laboratoryInscpTotal": laboratoryInscpTotal, "treatCostTotal": treatCostTotal, "treatCostSelfTotal": treatCostSelfTotal, "treatCostPartSelfTotal": treatCostPartSelfTotal, "treatSelfTotal": treatSelfTotal, "treatInscpTotal": treatInscpTotal, "doctor_info": doctor_info, "doctor_code": adminRole_two.DoctorCode, "doctor_name": doctor_name, "health_card_no": order.PsnNo, "department": departments.Name, "yiliao_leibie": yiliao_leibie, "after_money": order.AccountPrice, "patient": patient, "org_name": miConfig.OrgName, "org_code": miConfig.Code, "order_number": order.Number, "his_hospital": his_hospital, "his": his, "dia_config": dia_config, "psn_cash_pay": order.PsnCashPay, "zcCostTotal": zcCostTotal, "zcCostSelfTotal": zcCostSelfTotal, "zcCostPartSelfTotal": zcCostPartSelfTotal, "zcSelfTotal": zcSelfTotal, "zcInscpTotal": zcInscpTotal, "huliCostTotal": huliCostTotal, "huliCostSelfTotal": huliCostSelfTotal, "huliCostPartSelfTotal": huliCostPartSelfTotal, "huliSelfTotal": huliSelfTotal, "huliInscpTotal": huliInscpTotal, //"funds": rf, //"check_order_info": cus_slice, }) } } } } //func (c *HisApiController) CheckTreatment() { // patient_id, _ := c.GetInt64("patient_id") // id_card_no := c.GetString("id_card_no") // insutype := c.GetString("insutype") // med_type := c.GetString("med_type") // admin_user_id, _ := c.GetInt64("admin_user_id") // // adminUser := c.GetAdminUserInfo() // patient, _ := service.GetPatientByID(adminUser.CurrentOrgId, patient_id) // // miConfig, _ := service.FindMedicalInsuranceInfo(adminUser.CurrentOrgId) // config, _ := service.GetMedicalInsuranceConfig(adminUser.CurrentOrgId) // roles, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, admin_user_id) // // if miConfig.MdtrtareaAdmvs == "421300" { // var res ResultTwo // api := "http://192.168.124.4:9532/" + "hbyb/1101?cert_no=" + "" + // "&org_name=" + miConfig.OrgName + "&doctor=" + roles.UserName + "&fixmedins_code=" + miConfig.Code + // "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&id_card_type=" + strconv.FormatInt(2, 10) + "&card_sn=" + "" + "&certificates=" + strconv.FormatInt(2, 10) // resp, requestErr := http.Get(api) // if requestErr != nil { // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // // body, ioErr := ioutil.ReadAll(resp.Body) // if ioErr != nil { // utils.ErrorLog("接口返回数据读取失败: %v", ioErr) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // var respJSON map[string]interface{} // if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { // utils.ErrorLog("接口返回数据解析JSON失败: %v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // // respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) // result, _ := json.Marshal(respJSON) // // if err := json.Unmarshal([]byte(result), &res); err != nil { // utils.ErrorLog("解析失败:%v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // // if res.Infcode == 0 { // // api := "http://192.168.124.4:9532/" + "hbyb/2001?cert_no=" + "" + // "&org_name=" + miConfig.OrgName + "&doctor=" + roles.UserName + "&fixmedins_code=" + miConfig.Code + // "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&psn_no=" + res.Output.Baseinfo.PsnNo + "&insutype=" + insutype + "&med_type=" + med_type // resp, requestErr := http.Get(api) // if requestErr != nil { // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // // body, ioErr := ioutil.ReadAll(resp.Body) // if ioErr != nil { // utils.ErrorLog("接口返回数据读取失败: %v", ioErr) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // var respJSON map[string]interface{} // if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { // utils.ErrorLog("接口返回数据解析JSON失败: %v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // var res Result2001 // // respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) // result2, _ := json.Marshal(respJSON) // // if err := json.Unmarshal([]byte(result2), &res); err != nil { // utils.ErrorLog("解析失败:%v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // // if res.Infcode == 0 { // c.ServeSuccessJSON(map[string]interface{}{ // "msg": res.Output.Trtinfo, // }) // } // // } else { // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisFailedException) // return // } // // } else { // // result := service.Gdyb1101A(id_card_no, miConfig.OrgName, roles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, patient.Name) // var dat map[string]interface{} // if err := json.Unmarshal([]byte(result), &dat); err == nil { // fmt.Println(dat) // } else { // fmt.Println(err) // } // userJSONBytes, _ := json.Marshal(dat) // var res ResultTwo // var res10265 ResultTwo10265 // if miConfig.Code == "H15049901371" { // if err := json.Unmarshal(userJSONBytes, &res10265); err != nil { // utils.ErrorLog("解析失败:%v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // res.ErrMsg = res10265.ErrMsg // infocode, _ := strconv.ParseInt(res10265.Infcode, 10, 64) // res.Infcode = infocode // res.Output = res10265.Output // res.InfRefmsgid = res10265.InfRefmsgid // } else { // if err := json.Unmarshal(userJSONBytes, &res); err != nil { // utils.ErrorLog("解析失败:%v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // } // // var user_name string // role, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, adminUser.AdminUser.Id) // if role.ID == 0 { // user_name = "xxx" // } else { // user_name = role.UserName // } // // baseParams := models.BaseParams{ // SecretKey: miConfig.SecretKey, // FixmedinsCode: miConfig.Code, // InsuplcAdmdvs: miConfig.InsuplcAdmdvs, // MdtrtareaAdmvs: miConfig.MdtrtareaAdmvs, // OrgName: miConfig.OrgName, // Doctor: user_name, // } // // if config.IsOpen == 1 { // if miConfig.Code == "H15049901371" { // if med_type == "14" { // if insutype == "390" { // med_type = "9933" // } else if insutype == "310" { // med_type = "990502" // } // } else if med_type == "11" { // med_type = "11" // } // } // result := service.Gdyb2001(baseParams, res.Output.Baseinfo.PsnNo, insutype, med_type) // var dat map[string]interface{} // if err := json.Unmarshal([]byte(result), &dat); err == nil { // fmt.Println(dat) // } else { // fmt.Println(err) // } // var res Result2001 // var res10265 Result2001Org10265 // if miConfig.Code == "H15049901371" { // if err := json.Unmarshal([]byte(result), &res10265); err != nil { // utils.ErrorLog("解析失败:%v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // res.ErrMsg = res10265.ErrMsg // res.Output = res10265.Output // res.InfRefmsgid = res10265.InfRefmsgid // infocode, _ := strconv.ParseInt(res10265.Infcode, 10, 64) // res.Infcode = infocode // } else { // if err := json.Unmarshal([]byte(result), &res); err != nil { // utils.ErrorLog("解析失败:%v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // } // if res.Infcode == 0 { // c.ServeSuccessJSON(map[string]interface{}{ // "msg": res.Output.Trtinfo, // }) // } // } // } //} //func (c *HisApiController) PutRecord() { // id, _ := c.GetInt64("id") // record_time := c.GetString("record_time") // timeLayout := "2006-01-02" // loc, _ := time.LoadLocation("Local") // theTime, err := time.ParseInLocation(timeLayout+" 15:04:05", record_time+" 00:00:00", loc) // if err != nil { // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) // return // } // recordDateTime := theTime.Unix() // // adminInfo := c.GetAdminUserInfo() // patient, _ := service.GetPatientByID(adminInfo.CurrentOrgId, id) // patientPrescription, _ := service.FindPatientPrescriptionInfo(adminInfo.CurrentOrgId, id, recordDateTime) // // miConfig, _ := service.FindMedicalInsuranceInfo(adminInfo.CurrentOrgId) // // fmt.Println(miConfig.SecretKey) // // if patient == nil { // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodePatientNoExist) // return // } // if len(patient.IdCardNo) == 0 { // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeIDCartNo) // return // } // config, _ := service.GetMedicalInsuranceConfig(adminInfo.CurrentOrgId) // if config.IsOpen == 1 { // api := "http://127.0.0.1:9532/" + "gdyb/one?cert_no=" + patient.IdCardNo + "&org_name=" + miConfig.OrgName + "&doctor=" + patientPrescription.Doctor + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey // resp, requestErr := http.Get(api) // if requestErr != nil { // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // defer resp.Body.Close() // body, ioErr := ioutil.ReadAll(resp.Body) // if ioErr != nil { // utils.ErrorLog("接口返回数据读取失败: %v", ioErr) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // var respJSON map[string]interface{} // // if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { // utils.ErrorLog("接口返回数据解析JSON失败: %v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // // userJSON := respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) // userJSONBytes, _ := json.Marshal(userJSON) // var res ResultTwo // if err := json.Unmarshal(userJSONBytes, &res); err != nil { // utils.ErrorLog("解析失败:%v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // Iinfos, _ := json.Marshal(res.Output.Iinfo) // Idetinfos, _ := json.Marshal(res.Output.Idetinfo) // infoStr := string(Iinfos) // idetinfoStr := string(Idetinfos) // // if res.Infcode == 0 { // his := models.VMHisPatient{ // Status: 1, // Ctime: time.Now().Unix(), // Mtime: time.Now().Unix(), // PsnNo: res.Output.Baseinfo.PsnNo, // PsnCertType: res.Output.Baseinfo.PsnCertType, // Certno: res.Output.Baseinfo.Certno, // PsnName: res.Output.Baseinfo.PsnName, // Gend: res.Output.Baseinfo.Gend, // Naty: res.Output.Baseinfo.Naty, // Brdy: res.Output.Baseinfo.Brdy, // Age: res.Output.Baseinfo.Age, // Iinfo: infoStr, // Idetinfo: idetinfoStr, // PatientId: patient.ID, // RecordDate: theTime.Unix(), // UserOrgId: adminInfo.CurrentOrgId, // AdminUserId: adminInfo.AdminUser.Id, // IsReturn: 1, // } // // //doctor_id := strconv.FormatInt(patientPrescription.DoctorId, 10) // //result := service.Gdyb2503(his.PsnNo, res.Output.Iinfo[0].Insutype, miConfig.OrgName, patientPrescription.Doctor, miConfig.Code, doctor_id, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, "重症尿毒症透析(血透)", "M07801") // //result2 := service.Gdyb5301(his.PsnNo, res.Output.Iinfo[0].Insutype, miConfig.OrgName, patientPrescription.Doctor, miConfig.Code, doctor_id, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, "重症尿毒症透析(血透)", "M07801") // // //var dat map[string]interface{} // //if err := json.Unmarshal([]byte(result), &dat); err == nil { // // fmt.Println(dat) // //} else { // // fmt.Println(err) // //} // // var dat2 map[string]interface{} // if err := json.Unmarshal([]byte(result2), &dat2); err == nil { // fmt.Println(dat2) // } else { // fmt.Println(err) // } // // } else { // adminUser := c.GetAdminUserInfo() // errlog := &models.HisOrderError{ // UserOrgId: adminUser.CurrentOrgId, // Ctime: time.Now().Unix(), // Mtime: time.Now().Unix(), // ErrMsg: res.ErrMsg, // Status: 1, // PatientId: id, // RecordTime: recordDateTime, // Stage: 1, // } // service.CreateErrMsgLog(errlog) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeGdybOneException) // return // } // } // //} //func (c *HisApiController) GetUploadDiag() { // id, _ := c.GetInt64("id") // record_time := c.GetString("record_time") // // diagnosis_id, _ := c.GetInt64("diagnosis") // sick_type, _ := c.GetInt64("sick_type") // reg_type, _ := c.GetInt64("reg_type") // // timeLayout := "2006-01-02" // loc, _ := time.LoadLocation("Local") // theTime, err := time.ParseInLocation(timeLayout+" 15:04:05", record_time+" 00:00:00", loc) // if err != nil { // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) // return // } // // var patientPrescription models.HisPrescriptionInfo // recordDateTime := theTime.Unix() // adminInfo := c.GetAdminUserInfo() // patientPrescription, _ = service.FindPatientPrescriptionInfo(adminInfo.CurrentOrgId, id, recordDateTime) // // if patientPrescription.ID == 0 { // patientPrescription, _ = service.FindLastPatientPrescriptionInfo(adminInfo.CurrentOrgId, id, recordDateTime) // } // // miConfig, _ := service.FindMedicalInsuranceInfo(adminInfo.CurrentOrgId) // diagnosisConfig, _ := service.FindDiagnoseById(diagnosis_id) // his, _ := service.GetVMHisPatientInfo(adminInfo.CurrentOrgId, id, recordDateTime) // sickConfig, _ := service.FindSickById(sick_type) // department, _ := service.GetDepartMentDetail(patientPrescription.Departments) // // api2 := "http://127.0.0.1:9532/" + "gdyb/four?psn_no=" + his.PsnNo + // "&mdtrt_id=" + his.Number + "&doctor=" + patientPrescription.Doctor + "&department=" + department.Name + // "&diag=" + diagnosisConfig.ClassName + "&org_name=" + miConfig.OrgName + "&med_type=" + strconv.FormatInt(reg_type, 10) + "&doctor_id=" + strconv.FormatInt(patientPrescription.DoctorId, 10) + "&fixmedins_code=" + miConfig.Code + "&diag_code=" + diagnosisConfig.CountryCode + // "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&sick_code=" + sickConfig.ContentCode + "&sick_name=" + sickConfig.ClassName // resp2, requestErr2 := http.Get(api2) // if requestErr2 != nil { // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // body2, ioErr2 := ioutil.ReadAll(resp2.Body) // if ioErr2 != nil { // utils.ErrorLog("接口返回数据读取失败: %v", ioErr2) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // var respJSON2 map[string]interface{} // if err := json.Unmarshal([]byte(string(body2)), &respJSON2); err != nil { // utils.ErrorLog("接口返回数据解析JSON失败: %v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // respJSON2 = respJSON2["data"].(map[string]interface{})["pre"].(map[string]interface{}) // userJSONBytes2, _ := json.Marshal(respJSON2) // // var res2 ResultSix // if err := json.Unmarshal(userJSONBytes2, &res2); err != nil { // utils.ErrorLog("解析失败:%v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // if res2.Infcode != 0 { // adminUser := c.GetAdminUserInfo() // errlog := &models.HisOrderError{ // UserOrgId: adminUser.CurrentOrgId, // Ctime: time.Now().Unix(), // Mtime: time.Now().Unix(), // ErrMsg: res2.ErrMsg, // Status: 1, // PatientId: id, // RecordTime: recordDateTime, // Stage: 3, // } // service.CreateErrMsgLog(errlog) // // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeRegisterThreeException) // return // } // // c.ServeSuccessJSON(map[string]interface{}{ // "msg": "上传成功", // }) // //} type QueryResult struct { ID int64 Name string Code string List_type_code string } func (c *HisApiController) GetCheckCode() { ids_str := c.GetString("ids") record_type, _ := c.GetInt64("record_type") //1.药品 2.耗材 3.项目 ids_arr := strings.Split(ids_str, ",") var queryResult []QueryResult ids := make([]int64, 0) for _, item := range ids_arr { id, _ := strconv.ParseInt(item, 10, 64) ids = append(ids, id) } if record_type == 1 { drugs, _ := service.GetBatchDrugList(ids) for _, item := range drugs { result := QueryResult{ ID: item.ID, Name: item.DrugName, Code: item.MedicalInsuranceNumber, List_type_code: "101", } queryResult = append(queryResult, result) } } else if record_type == 2 { goods, _ := service.GetBatchGoodInformationList(ids) fmt.Println(goods) for _, item := range goods { result := QueryResult{ ID: item.ID, Name: item.GoodName, Code: item.SocialSecurityDirectoryCode, List_type_code: "301", } queryResult = append(queryResult, result) } } else if record_type == 3 { projects, _ := service.GetBathchMyPorjecgList(ids) for _, item := range projects { result := QueryResult{ ID: item.ID, Name: item.ProjectName, Code: item.MedicalCode, List_type_code: "201", } queryResult = append(queryResult, result) } } admin_user_id, _ := c.GetInt64("admin_user_id") adminUser := c.GetAdminUserInfo() miConfig, _ := service.FindMedicalInsuranceInfo(adminUser.CurrentOrgId) //config, _ := /**/service.GetMedicalInsuranceConfig(adminUser.CurrentOrgId) var user_name string role, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, admin_user_id) if role.ID == 0 { user_name = "管理员" } else { user_name = role.UserName } baseParams := models.BaseParams{ SecretKey: miConfig.SecretKey, FixmedinsCode: miConfig.Code, InsuplcAdmdvs: miConfig.InsuplcAdmdvs, MdtrtareaAdmvs: miConfig.MdtrtareaAdmvs, OrgName: miConfig.OrgName, Doctor: user_name, } var result string if miConfig.MdtrtareaAdmvs == "430800" { for _, item := range queryResult { if record_type == 1 { result, _ = service.Hnyb3301(miConfig.OrgName, role.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.Cainfo, item.Name, item.Code, item.List_type_code, "2021-01-26", "2099-12-31", miConfig.Url, miConfig.AccessKey, miConfig.SecretKey) } else if record_type == 2 { fmt.Println(item.Code) result, _ = service.Hnyb3301(miConfig.OrgName, role.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.Cainfo, item.Name, item.Code, item.List_type_code, "2021-01-26", "2099-12-31", miConfig.Url, miConfig.AccessKey, miConfig.SecretKey) } else if record_type == 3 { result, _ = service.Hnyb3301(miConfig.OrgName, role.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.Cainfo, item.Name, item.Code, item.List_type_code, "2021-01-26", "2099-12-31", miConfig.Url, miConfig.AccessKey, miConfig.SecretKey) } var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } userJSONBytes, _ := json.Marshal(dat) var res ResultSix if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if res.Infcode == 0 { if record_type == 1 { service.UpdateBaseDrugById(item.ID) } else if record_type == 2 { service.UpdateGoodInformaitonByDetail(item.ID) } else if record_type == 3 { service.UpdateProjectById(item.ID) } c.ServeSuccessJSON(map[string]interface{}{ "failed_code": 0, "msg": "目录对照成功", }) } else { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res.ErrMsg, }) } } } else { for _, item := range queryResult { var result string if record_type == 1 { result = service.Gdyb3301(baseParams, item.Name, item.Code, item.List_type_code, "2023-04-26", "", item.List_type_code, admin_user_id) } else if record_type == 2 { result = service.Gdyb3301(baseParams, item.Name, item.Code, item.List_type_code, "2023-04-26", "", item.List_type_code, admin_user_id) } else if record_type == 3 { result = service.Gdyb3301(baseParams, item.Name, item.Code, item.List_type_code, "2023-04-26", "", item.List_type_code, admin_user_id) } var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } userJSONBytes, _ := json.Marshal(dat) var res ResultSix if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if res.Infcode == 0 { if record_type == 1 { service.UpdateBaseDrugById(item.ID) } else if record_type == 2 { service.UpdateGoodInformaitonByDetail(item.ID) } else if record_type == 3 { service.UpdateProjectById(item.ID) } c.ServeSuccessJSON(map[string]interface{}{ "failed_code": 0, "msg": "目录对照成功", }) } else { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res.ErrMsg, }) } } } } func (c *HisApiController) UnCheckCode() { ids_str := c.GetString("ids") record_type, _ := c.GetInt64("record_type") //1.药品 2.耗材 3.项目 admin_user_id, _ := c.GetInt64("admin_user_id") ids_arr := strings.Split(ids_str, ",") var queryResult []QueryResult ids := make([]int64, 0) for _, item := range ids_arr { id, _ := strconv.ParseInt(item, 10, 64) ids = append(ids, id) } if record_type == 1 { drugs, _ := service.GetBatchDrugList(ids) for _, item := range drugs { result := QueryResult{ ID: item.ID, Name: item.DrugName, Code: item.MedicalInsuranceNumber, List_type_code: "101", } queryResult = append(queryResult, result) } } else if record_type == 2 { goods, _ := service.GetBatchGoodInformationList(ids) for _, item := range goods { result := QueryResult{ ID: item.ID, Name: item.GoodName, Code: item.SocialSecurityDirectoryCode, List_type_code: "301", } queryResult = append(queryResult, result) } } else if record_type == 3 { projects, _ := service.GetBathchMyPorjecgList(ids) for _, item := range projects { result := QueryResult{ ID: item.ID, Name: item.ProjectName, Code: item.MedicalCode, List_type_code: "201", } queryResult = append(queryResult, result) } } adminUser := c.GetAdminUserInfo() miConfig, _ := service.FindMedicalInsuranceInfo(adminUser.CurrentOrgId) config, _ := service.GetMedicalInsuranceConfig(adminUser.CurrentOrgId) var user_name string role, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, admin_user_id) if role.ID == 0 { user_name = "xxx" } else { user_name = role.UserName } baseParams := &models.BaseParams{ SecretKey: miConfig.SecretKey, FixmedinsCode: miConfig.Code, InsuplcAdmdvs: miConfig.InsuplcAdmdvs, MdtrtareaAdmvs: miConfig.MdtrtareaAdmvs, OrgName: miConfig.OrgName, Doctor: user_name, } if config.IsOpen == 1 { if miConfig.MdtrtareaAdmvs == "430800" { for _, item := range queryResult { var result string if record_type == 1 { result, _ = service.Hnyb3302(miConfig.OrgName, role.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.Cainfo, item.Name, item.Code, item.List_type_code, "2023-08-26", "2099-12-31", miConfig.Url, miConfig.AccessKey, miConfig.SecretKey) } else if record_type == 2 { fmt.Println(item.Code) result, _ = service.Hnyb3302(miConfig.OrgName, role.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.Cainfo, item.Name, item.Code, item.List_type_code, "2023-08-26", "2099-12-31", miConfig.Url, miConfig.AccessKey, miConfig.SecretKey) } else if record_type == 3 { result, _ = service.Hnyb3302(miConfig.OrgName, role.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.Cainfo, item.Name, item.Code, item.List_type_code, "2023-08-26", "2099-12-31", miConfig.Url, miConfig.AccessKey, miConfig.SecretKey) } var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } userJSONBytes, _ := json.Marshal(dat) var res ResultSix if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if res.Infcode == 0 { if record_type == 1 { service.UpdateBaseDrugById(item.ID) } else if record_type == 2 { service.UpdateGoodInformaitonByDetail(item.ID) } else if record_type == 3 { service.UpdateProjectById(item.ID) } c.ServeSuccessJSON(map[string]interface{}{ "failed_code": 0, "msg": "目录对照成功", }) } else { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res.ErrMsg, }) } } } else { for _, item := range queryResult { var result string if record_type == 1 { result = service.Gdyb3302(baseParams, item.Name, item.Code, item.List_type_code) } else if record_type == 2 { result = service.Gdyb3302(baseParams, item.Name, item.Code, item.List_type_code) } else if record_type == 3 { result = service.Gdyb3302(baseParams, item.Name, item.Code, item.List_type_code) } var dat2 map[string]interface{} if err := json.Unmarshal([]byte(result), &dat2); err == nil { fmt.Println(dat2) } else { fmt.Println(err) } userJSONBytes, _ := json.Marshal(dat2) var res ResultSix if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if res.Infcode == 0 { if record_type == 1 { service.UpdateDrugByIdDetail(item.ID) } else if record_type == 2 { service.UpdateGoodInfoById(item.ID) } else if record_type == 3 { service.UpdateMyProjectById(item.ID) } c.ServeSuccessJSON(map[string]interface{}{ "failed_code": 0, "msg": "撤销目录对照成功", }) } else { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res.ErrMsg, }) } } } } } func (c *HisApiController) GetPatientInfo() { id_card_no := c.GetString("id_card_no") admin_user_id, _ := c.GetInt64("admin_user_id") patient, _ := service.GetPatientByIDCard(id_card_no, c.GetAdminUserInfo().CurrentOrgId) if patient.ID == 0 { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodePatientNoExist) return } role, _ := service.GetAdminUserInfoByID(c.GetAdminUserInfo().CurrentOrgId, admin_user_id) miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId) config, _ := service.GetMedicalInsuranceConfig(c.GetAdminUserInfo().CurrentOrgId) var res ResultTwo var res10265 ResultTwo10265 if config.IsOpen == 1 { if miConfig.MdtrtareaAdmvs == "150499" { //请求内网数据 api := "http://172.16.13.254:9532/" + "nmyb/1101?cert_no=" + patient.IdCardNo + "&org_name=" + miConfig.OrgName + "&doctor=" + role.UserName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + "" + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&id_card_type=" + strconv.FormatInt(2, 10) + "&card_sn=" + "" + "&certificates=" + strconv.FormatInt(1, 10) + "&name=" + patient.Name resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) result_byte, _ := json.Marshal(respJSON) result := string(result_byte) var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } userJSONBytes, _ := json.Marshal(dat) if err := json.Unmarshal(userJSONBytes, &res10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } Infcode, _ := strconv.ParseInt(res10265.Infcode, 10, 64) res.Infcode = Infcode res.ErrMsg = res10265.ErrMsg res.Output = res10265.Output res.InfRefmsgid = res10265.InfRefmsgid res.RespondTime = res10265.RespondTime res.WarnInfo = res10265.WarnInfo } else { result := service.Gdyb1101A(id_card_no, miConfig.OrgName, role.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, patient.Name) var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } userJSONBytes, _ := json.Marshal(dat) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } //if err := json.Unmarshal(userJSONBytes, &res); err != nil { // utils.ErrorLog("解析失败:%v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return //} for index, item := range res.Output.Iinfo { if item.PsnInsuStas == "2" { fmt.Println("--------") res.Output.Iinfo[index].Insutype = "300" res.Output.Iinfo[index].PsnInsuStas = "1" } } fmt.Println(res.Output.Iinfo) if res.Infcode != 0 { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res.ErrMsg, }) } else { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": 0, "info": res, }) } } } func (c *HisApiController) PsnPutOnRecord() { record_type, _ := c.GetInt64("type") patient_id, _ := c.GetInt64("patient_id") admin_user_id, _ := c.GetInt64("admin_user_id") start_time := c.GetString("start_time") end_time := c.GetString("end_time") adminUser := c.GetAdminUserInfo() miConfig, _ := service.FindMedicalInsuranceInfo(adminUser.CurrentOrgId) config, _ := service.GetMedicalInsuranceConfig(adminUser.CurrentOrgId) var patients []*models.Patients if record_type == 1 { //全部备案 patient, _ := service.GetAllPatient(adminUser.CurrentOrgId) patients = append(patients, patient...) } else { //单个备案 patient, _ := service.GetPatientByID(adminUser.CurrentOrgId, patient_id) patients = append(patients, patient) } var user_name string role, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, admin_user_id) if role.ID == 0 { user_name = "xxx" } else { user_name = role.UserName } if config.IsOpen == 1 { for _, item := range patients { api := "http://127.0.0.1:9532/" + "gdyb/one?cert_no=" + item.IdCardNo + "&org_name=" + miConfig.OrgName + "&doctor=" + user_name + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } defer resp.Body.Close() body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } userJSON := respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) userJSONBytes, _ := json.Marshal(userJSON) var res ResultTwo if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if res.Infcode == 0 { result := service.Gdyb2505(res.Output.Baseinfo.PsnNo, user_name, miConfig.OrgName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, start_time, end_time, admin_user_id) var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } userJSONBytes, _ := json.Marshal(dat) var res2 ResultThirteen if err := json.Unmarshal(userJSONBytes, &res2); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if res2.Infcode == 0 { psnResult := &models.GdybPsnRecord{ UserOrgId: adminUser.CurrentOrgId, PatientId: item.ID, PsnNo: res.Output.Baseinfo.PsnNo, Ctime: time.Now().Unix(), Mtime: time.Now().Unix(), Status: 1, IsCancel: 1, TrtDclaDetlSn: res2.Output.Result.TrtDclaDetlSn, } service.CreatePsnRecord(psnResult) } else { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res2.ErrMsg, }) return } } } } } func (c *HisApiController) PsnUnPutOnRecord() { id, _ := c.GetInt64("id") //record_type, _ := c.GetInt64("type") admin_user_id, _ := c.GetInt64("admin_user_id") adminUser := c.GetAdminUserInfo() miConfig, _ := service.FindMedicalInsuranceInfo(adminUser.CurrentOrgId) config, _ := service.GetMedicalInsuranceConfig(adminUser.CurrentOrgId) var user_name string role, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, admin_user_id) if role.ID == 0 { user_name = "xxx" } else { user_name = role.UserName } psn_record, _ := service.GetPsnRecordById(id) if psn_record.ID == 0 { c.ServeFailJSONWithSGJErrorCode(enums.ErrorPsnRecordNoExistWrong) return } if config.IsOpen == 1 { result := service.Gdyb2506(psn_record.PsnNo, user_name, miConfig.OrgName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, psn_record.TrtDclaDetlSn) var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } userJSONBytes, _ := json.Marshal(dat) var res ResultFourteen if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if res.Infcode == 0 { psn_record.IsCancel = 2 service.CreatePsnRecord(&psn_record) } else { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res.ErrMsg, }) return } } } func (c *HisApiController) PsnPutNCDSOnRecord() { patient_id, _ := c.GetInt64("patient_id") insutype_two := c.GetString("insutype") psn_no := c.GetString("psn_no") doctor_id, _ := c.GetInt64("doctor_id") sick_id, _ := c.GetInt64("sick_id") department_id, _ := c.GetInt64("department_id") start_time := c.GetString("start_time") end_time := c.GetString("end_time") check_time := c.GetString("check_time") hospital_code := c.GetString("hospital_code") hospital_name := c.GetString("hospital_name") adminUser := c.GetAdminUserInfo() patient, _ := service.GetPatientByID(adminUser.CurrentOrgId, patient_id) miConfig, _ := service.FindMedicalInsuranceInfo(adminUser.CurrentOrgId) config, _ := service.GetMedicalInsuranceConfig(adminUser.CurrentOrgId) sick, _ := service.FindSickById(sick_id) doctor, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, doctor_id) if len(hospital_code) == 0 { hospital_code = miConfig.Code } if len(hospital_name) == 0 { hospital_name = miConfig.OrgName } role, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, doctor_id) var res ResultTwo var res10265 ResultTwo10265 if miConfig.MdtrtareaAdmvs == "320921" || miConfig.MdtrtareaAdmvs == "320982" { psn_info, _ := service.GetPsnByPatientId(patient.ID) api := "http://192.168.2.3:9532/" + "hbyb/1101?cert_no=" + "" + "&org_name=" + miConfig.OrgName + "&doctor=" + role.UserName + "&fixmedins_code=" + miConfig.Code + "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&id_card_type=" + strconv.FormatInt(3, 10) + "&card_sn=" + "" + "&certificates=" + strconv.FormatInt(1, 10) + "&url=" + miConfig.Url + "&ak=" + miConfig.AccessKey + "&verify_number=" + psn_info.VerifyNumber + "&cainfo=" + miConfig.Cainfo resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) result, _ := json.Marshal(respJSON) fmt.Println("log") fmt.Println(string(result)) if err := json.Unmarshal([]byte(result), &res10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res.ErrMsg = res10265.ErrMsg infocode, _ := strconv.ParseInt(res10265.Infcode, 10, 64) res.Infcode = infocode res.Output = res10265.Output res.InfRefmsgid = res10265.InfRefmsgid } else { result, _ := service.Gdyb1101(patient.IdCardNo, miConfig.OrgName, role.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, 2, "", "0", patient.Name) if miConfig.Code == "H15049901371" { if err := json.Unmarshal([]byte(result), &res10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res.ErrMsg = res10265.ErrMsg infocode, _ := strconv.ParseInt(res10265.Infcode, 10, 64) res.Infcode = infocode res.Output = res10265.Output res.InfRefmsgid = res10265.InfRefmsgid } else { if err := json.Unmarshal([]byte(result), &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } } Iinfos, _ := json.Marshal(res.Output.Iinfo) infoStr := string(Iinfos) var rf []*ResultFive json.Unmarshal([]byte(infoStr), &rf) var insuplc_admdvs string var insutype string var is390 int = 0 var is310 int = 0 var insutypes []*ResultFive for _, item := range rf { if (item.Insutype == "390" && item.PsnInsuStas == "1") || (item.Insutype == "310" && item.PsnInsuStas == "1") { insutypes = append(insutypes, item) } } if len(insutypes) == 1 { insutype = insutypes[0].Insutype //insuplc_admdvs = insutypes[0].InsuplcAdmdvs } else { for _, i := range insutypes { if i.Insutype == "390" { is390 = 1 } if i.Insutype == "310" { is310 = 1 } } } if is390 == 1 { insutype = "390" } if is310 == 1 { insutype = "310" } if len(insutypes) == 2 { insutype = insutype_two } if len(insutypes) == 0 { insutype = "310" } insutype = insutype_two fmt.Println(insutype) for _, item := range rf { fmt.Println(item.Insutype) fmt.Println(insutype) if item.Insutype == insutype { fmt.Println(item.Insutype) fmt.Println(insutype) insuplc_admdvs = item.InsuplcAdmdvs } } fmt.Println(insuplc_admdvs) var res2 ResultThirteen var res10265_2 ResultThirteen10265 if config.IsOpen == 1 { if miConfig.MdtrtareaAdmvs == "320921" || miConfig.MdtrtareaAdmvs == "320982" { } else { if miConfig.MdtrtareaAdmvs == "150499" { // //api := "http://172.16.13.254:9532/" + "nmyb/2503?psn_no=" + psn_no + "&insutype=" + insutype + "sick_name" + sick.ClassName + "&sick_code=" + sick.CountryCode + // "&org_name=" + miConfig.OrgName + "&doctor=" + role.UserName + "&fixmedins_code=" + miConfig.Code + // "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&id_card_type=" + strconv.FormatInt(id_card_type, 10) + "&dept_code=" + department.Number + "&dept=" + department.Name + "&doctor_id=" + hb_doctor_info.DoctorNumber + "&doctor_name=" + hb_doctor_info.UserName + "&opter=" + roles.UserName //resp, requestErr := http.Get(api) //if requestErr != nil { // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return //} // //body, ioErr := ioutil.ReadAll(resp.Body) //if ioErr != nil { // utils.ErrorLog("接口返回数据读取失败: %v", ioErr) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return //} //var respJSON map[string]interface{} //if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { // utils.ErrorLog("接口返回数据解析JSON失败: %v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return //} // //respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) //result, _ := json.Marshal(respJSON) //if err := json.Unmarshal([]byte(result), &resThree); err != nil { // utils.ErrorLog("解析失败:%v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return //} //infocode = resThree.Infcode //result, _ := json.Marshal(respJSON) //if err := json.Unmarshal([]byte(result), &resThree10265); err != nil { // utils.ErrorLog("解析失败:%v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return //} // //resThree.ErrMsg = resThree10265.ErrMsg // //resThree.Output = resThree10265.Output // //resThree.InfRefmsgid = resThree10265.InfRefmsgid // //infocode, _ = strconv.ParseInt(resThree10265.Infcode, 10, 64) // } else { result := service.Gdyb2503(psn_no, insutype, miConfig.OrgName, doctor.UserName, miConfig.Code, doctor.DoctorNumber, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, sick.ClassName, sick.ContentCode, start_time, end_time, check_time, hospital_code, hospital_name) var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } userJSONBytes, _ := json.Marshal(dat) if miConfig.Code == "H15049901371" { if err := json.Unmarshal(userJSONBytes, &res10265_2); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res2.ErrMsg = res10265_2.ErrMsg infocode, _ := strconv.ParseInt(res10265_2.Infcode, 10, 64) res2.Infcode = infocode res2.Output = res10265_2.Output res2.InfRefmsgid = res10265_2.InfRefmsgid } else { if err := json.Unmarshal(userJSONBytes, &res2); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } } } if res2.Infcode == 0 { psnResult := &models.GdybPsnNcdsRecord{ UserOrgId: adminUser.CurrentOrgId, PatientId: patient.ID, PsnNo: psn_no, DoctorId: doctor.AdminUserId, DepartmentId: department_id, SickType: sick_id, Insutype: insutype, Ctime: time.Now().Unix(), Mtime: time.Now().Unix(), Status: 1, IsCancel: 1, TrtDclaDetlSn: res2.Output.Result.TrtDclaDetlSn, } service.CreatePsnNCDSRecord(psnResult) c.ServeSuccessJSON(map[string]interface{}{ "failed_code": 0, "msg": "备案成功", "result": psnResult, }) } else { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res2.ErrMsg, }) return } } } func (c *HisApiController) PsnPutUnNCDSOnRecord() { id, _ := c.GetInt64("id") admin_user_id, _ := c.GetInt64("admin_user_id") adminUser := c.GetAdminUserInfo() miConfig, _ := service.FindMedicalInsuranceInfo(adminUser.CurrentOrgId) config, _ := service.GetMedicalInsuranceConfig(adminUser.CurrentOrgId) //config, _ := service.Ge(adminUser.CurrentOrgId) patient, _ := service.GetPatientByID(c.GetAdminUserInfo().CurrentOrgId, id) //role, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, admin_user_id) //var user_name string role, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, admin_user_id) //if role.ID == 0 { // user_name = "xxx" //} else { // user_name = role.UserName //} psn_record, _ := service.GetPsnNCDSRecordById(id) if psn_record.ID == 0 { c.ServeFailJSONWithSGJErrorCode(enums.ErrorPsnRecordNoExistWrong) return } result, _ := service.Gdyb1101(patient.IdCardNo, miConfig.OrgName, role.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, 2, "", "0", patient.Name) var res ResultTwo var res10265 ResultTwo10265 if miConfig.Code == "H15049901371" { if err := json.Unmarshal([]byte(result), &res10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res.ErrMsg = res10265.ErrMsg infocode, _ := strconv.ParseInt(res10265.Infcode, 10, 64) res.Infcode = infocode res.Output = res10265.Output res.InfRefmsgid = res10265.InfRefmsgid } else { if err := json.Unmarshal([]byte(result), &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } Iinfos, _ := json.Marshal(res.Output.Iinfo) infoStr := string(Iinfos) var rf []*ResultFive json.Unmarshal([]byte(infoStr), &rf) var insuplc_admdvs string var insutype string var is390 int = 0 var is310 int = 0 var insutypes []*ResultFive for _, item := range rf { if (item.Insutype == "390" && item.PsnInsuStas == "1") || (item.Insutype == "310" && item.PsnInsuStas == "1") { insutypes = append(insutypes, item) } } if len(insutypes) == 1 { insutype = insutypes[0].Insutype //insuplc_admdvs = insutypes[0].InsuplcAdmdvs } else { for _, i := range insutypes { if i.Insutype == "390" { is390 = 1 } if i.Insutype == "310" { is310 = 1 } } } if is390 == 1 { insutype = "390" } if is310 == 1 { insutype = "310" } if len(insutypes) == 0 { insutype = "310" } insutype = psn_record.Insutype for _, item := range rf { if item.Insutype == insutype { insuplc_admdvs = item.InsuplcAdmdvs } } if config.IsOpen == 1 { result := service.Gdyb2504(psn_record.PsnNo, miConfig.OrgName, role.UserName, miConfig.Code, insuplc_admdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, psn_record.TrtDclaDetlSn) var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } userJSONBytes, _ := json.Marshal(dat) var res ResultFourteen var res10265 ResultFourteen10265 if miConfig.Code == "H15049901371" { if err := json.Unmarshal(userJSONBytes, &res10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res.ErrMsg = res10265.ErrMsg infocode, _ := strconv.ParseInt(res10265.Infcode, 10, 64) res.Infcode = infocode res.Output = res10265.Output res.InfRefmsgid = res10265.InfRefmsgid } else { if err := json.Unmarshal([]byte(result), &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } //if err := json.Unmarshal(userJSONBytes, &res); err != nil { // utils.ErrorLog("解析失败:%v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return //} if res.Infcode == 0 { psn_record.IsCancel = 2 service.CreatePsnNCDSRecord(&psn_record) c.ServeSuccessJSON(map[string]interface{}{ "failed_code": 0, "msg": "撤销备案成功", }) } else { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res.ErrMsg, }) return } } } func (c *HisApiController) TestTest() { patient, _ := service.GetHisPatientInfo(4, 456, 1619712000) fmt.Println(patient.Iinfo) } type CustomData struct { MsgId string PsnNo string Info string } func (c *HisApiController) ReversalData() { var customData []*CustomData custom := &CustomData{ MsgId: "H44022900158202103301714472004", PsnNo: "44020000001101329945", Info: "2207", } customData = append(customData, custom) custom1 := &CustomData{ MsgId: "H4402290015820210330172057803", PsnNo: "44020000001101161813", Info: "2207", } customData = append(customData, custom1) custom2 := &CustomData{ MsgId: "H44022900158202103301705198813", PsnNo: "44190000133097375417", Info: "2207", } customData = append(customData, custom2) custom3 := &CustomData{ MsgId: "H44022900158202103301715524756", PsnNo: "44020000001100187221", Info: "2207", } customData = append(customData, custom3) custom4 := &CustomData{ MsgId: "H44022900158202103301730376224", PsnNo: "44020000001101959155", Info: "2207", } customData = append(customData, custom4) custom5 := &CustomData{ MsgId: "H44022900158202103301748008725", PsnNo: "44020000001104246641", Info: "2207", } customData = append(customData, custom5) custom6 := &CustomData{ MsgId: "H44022900158202103301718096755", PsnNo: "44020000001102211860", Info: "2207", } customData = append(customData, custom6) custom7 := &CustomData{ MsgId: "H44022900158202103301736551640", PsnNo: "44020000001102687718", Info: "2207", } customData = append(customData, custom7) custom8 := &CustomData{ MsgId: "H44022900158202103301743097676", PsnNo: "44020000001102127785", Info: "2207", } customData = append(customData, custom8) custom9 := &CustomData{ MsgId: "H44022900158202103301712304203", PsnNo: "44020000001101518097", Info: "2207", } customData = append(customData, custom9) custom10 := &CustomData{ MsgId: "H44022900158202103301738448785", PsnNo: "44020000001100500813", Info: "2207", } customData = append(customData, custom10) custom11 := &CustomData{ MsgId: "H44022900158202103301732455843", PsnNo: "44020000001102690557", Info: "2207", } customData = append(customData, custom11) custom12 := &CustomData{ MsgId: "H44022900158202103301745421708", PsnNo: "44020000001102211928", Info: "2207", } customData = append(customData, custom12) custom1212 := &CustomData{ MsgId: "H440229001582021033017351627", PsnNo: "44020000001102481733", Info: "2207", } customData = append(customData, custom1212) custom13 := &CustomData{ MsgId: "H44022900158202103301740327951", PsnNo: "44020000001103174866", Info: "2207", } customData = append(customData, custom13) custom14 := &CustomData{ MsgId: "H4402290015820210330174922668", PsnNo: "44020000001102927272", Info: "2207", } customData = append(customData, custom14) custom15 := &CustomData{ MsgId: "H44022900158202103301752362273", PsnNo: "44020000001102942890", Info: "2207", } customData = append(customData, custom15) custom16 := &CustomData{ MsgId: "H44022900158202103301751082917", PsnNo: "44020000001101662162", Info: "2207", } customData = append(customData, custom16) custom17 := &CustomData{ MsgId: "H44022900158202103301754147728", PsnNo: "44020000000229014511", Info: "2207", } customData = append(customData, custom17) adminUser := c.GetAdminUserInfo() miConfig, _ := service.FindMedicalInsuranceInfo(adminUser.CurrentOrgId) for _, item := range customData { result := service.Gdyb2601(item.PsnNo, item.MsgId, item.Info, miConfig.OrgName, "张俊杰", miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey) fmt.Println(result) } } func (c *HisApiController) GetAllopatry() { year := c.GetString("year") month := c.GetString("month") admin_user_id, _ := c.GetInt64("admin_user_id") adminUser := c.GetAdminUserInfo() miConfig, _ := service.FindMedicalInsuranceInfo(adminUser.CurrentOrgId) roles, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, admin_user_id) result, _ := service.Gdyb9001Two(miConfig.OrgName, roles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, admin_user_id) var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } userJSONBytes, _ := json.Marshal(dat) var res models.Result9001 if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } fmt.Println(res.Output.Signinoutb) fmt.Println(res.Output.Signinoutb.SignNo) fmt.Println(string(userJSONBytes)) result3, _ := service.Gdyb3260(miConfig.OrgName, roles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, year, month, res.Output.Signinoutb.SignNo, 0) var dat3 map[string]interface{} if err := json.Unmarshal([]byte(result3), &dat3); err == nil { fmt.Println(dat3) } else { fmt.Println(err) } userJSONBytes3, _ := json.Marshal(dat3) var res3 models.Result3260 if err := json.Unmarshal(userJSONBytes3, &res3); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var curpage int var pagesize int = 100 var start int = 1 //var stop int //pagecount := 10 pagecount := int(math.Ceil(float64(res3.Output.Totalrow) / float64(pagesize))) var res22 []models.Result3260 for curpage = 1; curpage <= pagecount; curpage++ { if curpage == 1 { start = 0 } else { start = (curpage-1)*pagesize + 1 } fmt.Println(start) //stop = curpage * pagesize //if stop > int(res3.Output.Totalrow) { // stop =int(res3.Output.Totalrow) //} result2, _ := service.Gdyb3260(miConfig.OrgName, roles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, year, month, res.Output.Signinoutb.SignNo, start) var dat2 map[string]interface{} if err := json.Unmarshal([]byte(result2), &dat2); err == nil { fmt.Println(dat) } else { fmt.Println(err) } userJSONBytes2, _ := json.Marshal(dat2) var res2 models.Result3260 if err := json.Unmarshal(userJSONBytes2, &res2); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if res2.Infcode == 0 { res22 = append(res22, res2) //service.Gdyb3261(miConfig.OrgName, roles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, year, month, res2, res.Output.Signinoutb.SignNo) //var dat2 map[string]interface{} //if err := json.Unmarshal([]byte(result3), &dat2); err == nil { // fmt.Println(dat) //} else { // fmt.Println(err) //} //c.ServeSuccessJSON(map[string]interface{}{ // "list": res2.Output.Data, //}) //continue } } service.Gdyb3261(miConfig.OrgName, roles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, year, month, res22, res.Output.Signinoutb.SignNo) //service.Gdyb3263(miConfig.OrgName, roles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, year, month, res22, res.Output.Signinoutb.SignNo) //result2, _ := service.Gdyb3260(miConfig.OrgName, roles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, year, month, res.Output.Signinoutb.SignNo, 101) //var dat2 map[string]interface{} //if err := json.Unmarshal([]byte(result2), &dat2); err == nil { // fmt.Println(dat) //} else { // fmt.Println(err) //} //userJSONBytes2, _ := json.Marshal(dat2) //var res2 models.Result3260 //if err := json.Unmarshal(userJSONBytes2, &res2); err != nil { // utils.ErrorLog("解析失败:%v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return //} //if res2.Infcode == 0 { // service.Gdyb3261(miConfig.OrgName, roles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, year, month, res2, res.Output.Signinoutb.SignNo) // var dat2 map[string]interface{} // if err := json.Unmarshal([]byte(result3), &dat2); err == nil { // fmt.Println(dat) // } else { // fmt.Println(err) // } // c.ServeSuccessJSON(map[string]interface{}{ // "list": res2.Output.Data, // }) //} } func (c *HisApiController) ComfirmAllopatry() { year := c.GetString("year") month := c.GetString("month") admin_user_id, _ := c.GetInt64("admin_user_id") adminUser := c.GetAdminUserInfo() miConfig, _ := service.FindMedicalInsuranceInfo(adminUser.CurrentOrgId) roles, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, admin_user_id) result, _ := service.Gdyb9001Two(miConfig.OrgName, roles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, admin_user_id) var dat map[string]interface{} if err := json.Unmarshal([]byte(result), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } userJSONBytes, _ := json.Marshal(dat) var res models.Result9001 if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } result2, _ := service.Gdyb3260(miConfig.OrgName, roles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, year, month, res.Output.Signinoutb.SignNo, 0) var dat2 map[string]interface{} if err := json.Unmarshal([]byte(result2), &dat2); err == nil { fmt.Println(dat) } else { fmt.Println(err) } userJSONBytes2, _ := json.Marshal(dat2) var res2 models.Result3260 if err := json.Unmarshal(userJSONBytes2, &res2); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } //if res2.Infcode == 0 { // result, _, msgId := service.Gdyb3261(miConfig.OrgName, roles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, year, month, res2, res.Output.Signinoutb.SignNo) // var dat map[string]interface{} // if err := json.Unmarshal([]byte(result), &dat); err == nil { // fmt.Println(dat) // } else { // fmt.Println(err) // } // userJSONBytes, _ := json.Marshal(dat) // var res3 models.Result3261 // if err := json.Unmarshal(userJSONBytes, &res3); err != nil { // utils.ErrorLog("解析失败:%v", err) // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) // return // } // // if res3.Infcode == 0 { // record := &models.HisYidiClearRecord{ // UserOrgId: c.GetAdminUserInfo().CurrentOrgId, // Ctime: time.Now().Unix(), // Mtime: time.Now().Unix(), // Status: 1, // MsgId: msgId, // } // service.SaveClearRecord(record) // c.ServeSuccessJSON(map[string]interface{}{ // "msg": "提取成功", // }) // } //} } func (c *HisApiController) RefundAllopatry() { year := c.GetString("year") month := c.GetString("month") //id, _ := c.GetInt64("id") admin_user_id, _ := c.GetInt64("admin_user_id") adminUser := c.GetAdminUserInfo() miConfig, _ := service.FindMedicalInsuranceInfo(adminUser.CurrentOrgId) roles, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, admin_user_id) //record, _ := service.GetClearRecordById(id) result2, _ := service.Gdyb9001Two(miConfig.OrgName, roles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, admin_user_id) var dat map[string]interface{} if err := json.Unmarshal([]byte(result2), &dat); err == nil { fmt.Println(dat) } else { fmt.Println(err) } userJSONBytes, _ := json.Marshal(dat) var res models.Result9001 if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } result, _ := service.Gdyb3262(miConfig.OrgName, roles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, year, month, "", res.Output.Signinoutb.SignNo) var dat2 map[string]interface{} if err := json.Unmarshal([]byte(result), &dat2); err == nil { fmt.Println(dat) } else { fmt.Println(err) } userJSONBytes2, _ := json.Marshal(dat2) var empty ResultFourteen if err := json.Unmarshal(userJSONBytes2, &empty); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if empty.Infcode == 0 { c.ServeSuccessJSON(map[string]interface{}{ "msg": "撤销成功", }) return } } func (c *HisApiController) ReversalOtherData() { var customData []*CustomData custom := &CustomData{ MsgId: "H44022900158202103301714472004", PsnNo: "44020000001101329945", Info: "2208", } customData = append(customData, custom) custom1 := &CustomData{ MsgId: "H4402290015820210330172057803", PsnNo: "44020000001101161813", Info: "2208", } customData = append(customData, custom1) custom2 := &CustomData{ MsgId: "H44022900158202103301705198813", PsnNo: "44190000133097375417", Info: "2208", } customData = append(customData, custom2) custom3 := &CustomData{ MsgId: "H44022900158202103301715524756", PsnNo: "44020000001100187221", Info: "2208", } customData = append(customData, custom3) custom4 := &CustomData{ MsgId: "H44022900158202103301730376224", PsnNo: "44020000001101959155", Info: "2208", } customData = append(customData, custom4) custom5 := &CustomData{ MsgId: "H44022900158202103301748008725", PsnNo: "44020000001104246641", Info: "2208", } customData = append(customData, custom5) custom6 := &CustomData{ MsgId: "H44022900158202103301718096755", PsnNo: "44020000001102211860", Info: "2208", } customData = append(customData, custom6) custom7 := &CustomData{ MsgId: "H44022900158202103301736551640", PsnNo: "44020000001102687718", Info: "2208", } customData = append(customData, custom7) custom8 := &CustomData{ MsgId: "H44022900158202103301743097676", PsnNo: "44020000001102127785", Info: "2208", } customData = append(customData, custom8) custom9 := &CustomData{ MsgId: "H44022900158202103301712304203", PsnNo: "44020000001101518097", Info: "2208", } customData = append(customData, custom9) custom10 := &CustomData{ MsgId: "H44022900158202103301738448785", PsnNo: "44020000001100500813", Info: "2208", } customData = append(customData, custom10) custom11 := &CustomData{ MsgId: "H44022900158202103301732455843", PsnNo: "44020000001102690557", Info: "2208", } customData = append(customData, custom11) custom12 := &CustomData{ MsgId: "H44022900158202103301745421708", PsnNo: "44020000001102211928", Info: "2208", } customData = append(customData, custom12) custom1212 := &CustomData{ MsgId: "H440229001582021033017351627", PsnNo: "44020000001102481733", Info: "2208", } customData = append(customData, custom1212) custom13 := &CustomData{ MsgId: "H44022900158202103301740327951", PsnNo: "44020000001103174866", Info: "2208", } customData = append(customData, custom13) custom14 := &CustomData{ MsgId: "H4402290015820210330174922668", PsnNo: "44020000001102927272", Info: "2208", } customData = append(customData, custom14) custom15 := &CustomData{ MsgId: "H44022900158202103301752362273", PsnNo: "44020000001102942890", Info: "2208", } customData = append(customData, custom15) custom16 := &CustomData{ MsgId: "H44022900158202103301751082917", PsnNo: "44020000001101662162", Info: "2208", } customData = append(customData, custom16) custom17 := &CustomData{ MsgId: "H44022900158202103301754147728", PsnNo: "44020000000229014511", Info: "2208", } customData = append(customData, custom17) adminUser := c.GetAdminUserInfo() miConfig, _ := service.FindMedicalInsuranceInfo(adminUser.CurrentOrgId) for _, item := range customData { result := service.Gdyb2601(item.PsnNo, item.MsgId, item.Info, miConfig.OrgName, "张俊杰", miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey) fmt.Println(result) } } func PathExists(path string) (bool, error) { _, err := os.Stat(path) if err == nil { return true, nil } if os.IsNotExist(err) { return false, nil } return false, err } // 创建文件夹 func Mkdir(dir string) { // 创建文件夹 exist, err := PathExists(dir) if err != nil { fmt.Println(err.Error()) } else { if exist { fmt.Println(dir + "文件夹已存在!") } else { // 文件夹名称,权限 err := os.Mkdir(dir, os.ModePerm) if err != nil { fmt.Println(dir+"文件夹创建失败:", err.Error()) } else { fmt.Println(dir + "文件夹创建成功!") } } } } // 压缩文件 func Zip(srcFile string, destZip string) error { zipfile, err := os.Create(destZip) if err != nil { return err } defer zipfile.Close() archive := zip.NewWriter(zipfile) defer archive.Close() filepath.Walk(srcFile, func(path string, info os.FileInfo, err error) error { if err != nil { return err } header, err := zip.FileInfoHeader(info) if err != nil { return err } header.Name = strings.TrimPrefix(path, filepath.Dir(srcFile)+"/") // header.Name = path if info.IsDir() { header.Name += "/" } else { header.Method = zip.Deflate } writer, err := archive.CreateHeader(header) if err != nil { return err } if !info.IsDir() { file, err := os.Open(path) if err != nil { return err } defer file.Close() _, err = io.Copy(writer, file) } return err }) return err } func ReadFile(filePath string) []byte { f, err := os.Open(filePath) if err != nil { fmt.Println("read file fail", err) return nil } defer f.Close() fd, err := ioutil.ReadAll(f) if err != nil { fmt.Println("read to fd fail", err) return nil } return fd } func saveLogq(result string, request string, infno string, desc string) { dir := "日志" 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 := year + month + day + "_log" file_name := file + ".txt" file_path := "日志" + "/" + 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("日志" + "/" + file_name) defer f.Close() if err != nil { } else { _, err = f.Write([]byte("记录日志")) } } } 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("记录日志")) } } } type Charset string const ( UTF8 = Charset("UTF-8") GB18030 = Charset("GB18030") ) func ConvertToString(src string, srcCode string, tagCode string) string { srcCoder := mahonia.NewDecoder(srcCode) srcResult := srcCoder.ConvertString(src) tagCoder := mahonia.NewDecoder(tagCode) _, cdata, _ := tagCoder.Translate([]byte(srcResult), true) result := string(cdata) return result } func ReadEleCard(admin_user_id int64, org_id int64, c *HisApiController) string { roles, _ := service.GetAdminUserInfoByID(org_id, admin_user_id) miConfig, _ := service.FindMedicalInsuranceInfo(org_id) var token string if miConfig.MdtrtareaAdmvs == "320921" || miConfig.MdtrtareaAdmvs == "320982" { var api string if miConfig.MdtrtareaAdmvs == "320921" { api = "http://192.168.2.3:9532/" + "jsyb/readcardcharge?" + "fixmedins_code=" + miConfig.Code + "&secret_key=" + miConfig.SecretKey + "&ak=" + miConfig.AccessKey + "&org_name=" + miConfig.OrgName + "&doctor=" + roles.UserName + "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&url=" + miConfig.Url + "&cainfo=" + miConfig.Cainfo + "&id_card_type=" + strconv.FormatInt(4, 10) + "&operator_id=" + strconv.FormatInt(admin_user_id, 10) + "&operator=" + roles.UserName fmt.Println(api) } else { api = "http://192.168.5.251:9532/" + "jsyb/readcardchargeother?" + "fixmedins_code=" + miConfig.Code + "&secret_key=" + miConfig.SecretKey + "&ak=" + miConfig.AccessKey + "&org_name=" + miConfig.OrgName + "&doctor=" + roles.UserName + "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&url=" + miConfig.Url + "&cainfo=" + miConfig.Cainfo + "&id_card_type=" + strconv.FormatInt(4, 10) + "&operator_id=" + strconv.FormatInt(admin_user_id, 10) + "&operator=" + roles.UserName } resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return "" } body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return "" } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return "" } var status string status = respJSON["data"].(map[string]interface{})["status"].(string) //card_type := respJSON["data"].(map[string]interface{})["type"].(string) var res ResultTwo //1101结果 var res10265 ResultTwo10265 //1101结果 if status == "0" { //读卡成功 var card_info string //卡信息 var busi_card_info string token = respJSON["data"].(map[string]interface{})["token"].(string) busi_card_info = respJSON["data"].(map[string]interface{})["busi_card_info"].(string) card_info = respJSON["data"].(map[string]interface{})["card_info"].(string) fmt.Println(card_info) fmt.Println(busi_card_info) respJSON = respJSON["data"].(map[string]interface{})["result"].(map[string]interface{}) result, _ := json.Marshal(respJSON) if err := json.Unmarshal([]byte(result), &res10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return "" } res.ErrMsg = res10265.ErrMsg infocode, _ := strconv.ParseInt(res10265.Infcode, 10, 64) res.Infcode = infocode res.Output = res10265.Output res.InfRefmsgid = res10265.InfRefmsgid if res.Infcode == 0 { patient, err := service.GetPatientByIDCard(res.Output.Baseinfo.Certno, c.GetAdminUserInfo().CurrentOrgId) if err == gorm.ErrRecordNotFound { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeNoPateintException) return "" } else if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError) return "" } else { Iinfos, _ := json.Marshal(res.Output.Iinfo) Idetinfos, _ := json.Marshal(res.Output.Idetinfo) infoStr := string(Iinfos) idetinfoStr := string(Idetinfos) psn := &models.HisPsn{ PsnNo: res.Output.Baseinfo.PsnNo, PatientId: patient.ID, Certno: res.Output.Baseinfo.Certno, Gend: res.Output.Baseinfo.Gend, Naty: res.Output.Baseinfo.Naty, PsnCertType: res.Output.Baseinfo.PsnCertType, PsnName: res.Output.Baseinfo.PsnName, Idetinfo: idetinfoStr, Insuinfo: infoStr, UserOrgId: c.GetAdminUserInfo().CurrentOrgId, CardInfo: card_info, VerifyNumber: token, } service.CreateHisPsn(psn) return token } } } else { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisFailedException) return "" } } else { //读卡失败 c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisFailedException) return "" } return token } func ReadEleCardforah(admin_user_id int64, org_id int64, c *HisApiController) string { roles, _ := service.GetAdminUserInfoByID(org_id, admin_user_id) miConfig, _ := service.FindMedicalInsuranceInfo(org_id) var token string var api string api = miConfig.SecretKey + "ahyb/readcardcharge?" + "fixmedins_code=" + miConfig.Code + "&secret_key=" + miConfig.SecretKey + "&ak=" + miConfig.AccessKey + "&org_name=" + miConfig.OrgName + "&doctor=" + roles.UserName + "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&url=" + miConfig.Url + "&cainfo=" + miConfig.Cainfo + "&id_card_type=" + strconv.FormatInt(4, 10) + "&operator_id=" + strconv.FormatInt(admin_user_id, 10) + "&operator=" + roles.UserName fmt.Println(api) resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return "" } body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return "" } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return "" } var status string status = respJSON["data"].(map[string]interface{})["status"].(string) //card_type := respJSON["data"].(map[string]interface{})["type"].(string) var res ResultTwo //1101结果 if status == "1" { //读卡成功 var card_info string //卡信息 var busi_card_info string token = respJSON["data"].(map[string]interface{})["token"].(string) busi_card_info = respJSON["data"].(map[string]interface{})["busi_card_info"].(string) card_info = respJSON["data"].(map[string]interface{})["card_info"].(string) fmt.Println(card_info) fmt.Println(busi_card_info) respJSON = respJSON["data"].(map[string]interface{})["result"].(map[string]interface{}) result, _ := json.Marshal(respJSON) if err := json.Unmarshal([]byte(result), &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return "" } if res.Infcode == 0 { patient, err := service.GetPatientByIDCard(res.Output.Baseinfo.Certno, c.GetAdminUserInfo().CurrentOrgId) if err == gorm.ErrRecordNotFound { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeNoPateintException) return "" } else if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError) return "" } else { Iinfos, _ := json.Marshal(res.Output.Iinfo) Idetinfos, _ := json.Marshal(res.Output.Idetinfo) infoStr := string(Iinfos) idetinfoStr := string(Idetinfos) psn := &models.HisPsn{ PsnNo: res.Output.Baseinfo.PsnNo, PatientId: patient.ID, Certno: res.Output.Baseinfo.Certno, Gend: res.Output.Baseinfo.Gend, Naty: res.Output.Baseinfo.Naty, PsnCertType: res.Output.Baseinfo.PsnCertType, PsnName: res.Output.Baseinfo.PsnName, Idetinfo: idetinfoStr, Insuinfo: infoStr, UserOrgId: c.GetAdminUserInfo().CurrentOrgId, CardInfo: card_info, VerifyNumber: token, } service.CreateHisPsn(psn) return token } } } else { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisFailedException) return "" } return token } func ReadEleFace(admin_user_id int64, org_id int64, c *HisApiController) string { roles, _ := service.GetAdminUserInfoByID(org_id, admin_user_id) miConfig, _ := service.FindMedicalInsuranceInfo(org_id) var token string if miConfig.MdtrtareaAdmvs == "320921" || miConfig.MdtrtareaAdmvs == "320982" { var api string if miConfig.MdtrtareaAdmvs == "320921" { api = "http://192.168.2.3:9532/" + "jsyb/readcardface?" + "fixmedins_code=" + miConfig.Code + "&secret_key=" + miConfig.SecretKey + "&ak=" + miConfig.AccessKey + "&org_name=" + miConfig.OrgName + "&doctor=" + roles.UserName + "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&url=" + miConfig.Url + "&cainfo=" + miConfig.Cainfo + "&id_card_type=" + strconv.FormatInt(4, 10) + "&operator_id=" + strconv.FormatInt(admin_user_id, 10) + "&operator=" + roles.UserName fmt.Println(api) } else { api = "http://192.168.5.251:9532/" + "jsyb/readcardface?" + "fixmedins_code=" + miConfig.Code + "&secret_key=" + miConfig.SecretKey + "&ak=" + miConfig.AccessKey + "&org_name=" + miConfig.OrgName + "&doctor=" + roles.UserName + "&insuplc_admdvs=" + miConfig.InsuplcAdmdvs + "&mdtrtarea_admvs=" + miConfig.MdtrtareaAdmvs + "&secret_key=" + miConfig.SecretKey + "&url=" + miConfig.Url + "&cainfo=" + miConfig.Cainfo + "&id_card_type=" + strconv.FormatInt(4, 10) + "&operator_id=" + strconv.FormatInt(admin_user_id, 10) + "&operator=" + roles.UserName } resp, requestErr := http.Get(api) if requestErr != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return "" } body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return "" } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(string(body)), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return "" } var status string status = respJSON["data"].(map[string]interface{})["status"].(string) //card_type := respJSON["data"].(map[string]interface{})["type"].(string) var res ResultTwo //1101结果 var res10265 ResultTwo10265 //1101结果 if status == "0" { //读卡成功 var card_info string //卡信息 var busi_card_info string token = respJSON["data"].(map[string]interface{})["token"].(string) busi_card_info = respJSON["data"].(map[string]interface{})["busi_card_info"].(string) card_info = respJSON["data"].(map[string]interface{})["card_info"].(string) fmt.Println(card_info) fmt.Println(busi_card_info) respJSON = respJSON["data"].(map[string]interface{})["result"].(map[string]interface{}) result, _ := json.Marshal(respJSON) if err := json.Unmarshal([]byte(result), &res10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return "" } res.ErrMsg = res10265.ErrMsg infocode, _ := strconv.ParseInt(res10265.Infcode, 10, 64) res.Infcode = infocode res.Output = res10265.Output res.InfRefmsgid = res10265.InfRefmsgid if res.Infcode == 0 { patient, err := service.GetPatientByIDCard(res.Output.Baseinfo.Certno, c.GetAdminUserInfo().CurrentOrgId) if err == gorm.ErrRecordNotFound { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeNoPateintException) return "" } else if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError) return "" } else { Iinfos, _ := json.Marshal(res.Output.Iinfo) Idetinfos, _ := json.Marshal(res.Output.Idetinfo) infoStr := string(Iinfos) idetinfoStr := string(Idetinfos) psn := &models.HisPsn{ PsnNo: res.Output.Baseinfo.PsnNo, PatientId: patient.ID, Certno: res.Output.Baseinfo.Certno, Gend: res.Output.Baseinfo.Gend, Naty: res.Output.Baseinfo.Naty, PsnCertType: res.Output.Baseinfo.PsnCertType, PsnName: res.Output.Baseinfo.PsnName, Idetinfo: idetinfoStr, Insuinfo: infoStr, UserOrgId: c.GetAdminUserInfo().CurrentOrgId, CardInfo: card_info, VerifyNumber: token, } service.CreateHisPsn(psn) return token } } } else { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisFailedException) return "" } } else { //读卡失败 c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisFailedException) return "" } return token } func DeleteExtraSpaceTwo(s string) string { //删除字符串中的多余空格,有多个空格时,仅保留一个空格 s1 := strings.Replace(s, " ", " ", -1) //替换tab为空格 regstr := "\\s{2,}" //两个及两个以上空格的正则表达式 reg, _ := regexp.Compile(regstr) //编译正则表达式 s2 := make([]byte, len(s1)) //定义字符数组切片 copy(s2, s1) //将字符串复制到切片 spc_index := reg.FindStringIndex(string(s2)) //在字符串中搜索 for len(spc_index) > 0 { //找到适配项 s2 = append(s2[:spc_index[0]+1], s2[spc_index[1]:]...) //删除多余空格 spc_index = reg.FindStringIndex(string(s2)) //继续在字符串中搜索 } return string(s2) } func Remove0000(s string) string { str := make([]rune, 0, len(s)) for _, v := range []rune(s) { if v == 0 { continue } str = append(str, v) } return string(str) } func (c *HisApiController) GetELeCertInfo(code string, operator_id string, operator_name string) (string, string) { DllDef := syscall.MustLoadDLL("HeaSecReadInfo.dll") readCard := DllDef.MustFindProc("EcQuery") pCardInfo := make([]byte, 8192) pBusiCardInfo := make([]byte, 8192) data := make(map[string]interface{}) //pData := make(map[string]interface{}) inputData := make(map[string]interface{}) inputData["orgId"] = code inputData["businessType"] = "01101" inputData["operatorId"] = operator_id inputData["operatorName"] = operator_name inputData["officeId"] = "001" inputData["officeName"] = "血透室" // data["data"] = inputData data["transType"] = "ec.query" data["orgId"] = code bytesData, _ := json.Marshal(data) pCardInfo = bytesData ret2, _, _ := readCard.Call((uintptr)(unsafe.Pointer(&pCardInfo[0])), (uintptr)(unsafe.Pointer(&pBusiCardInfo[0]))) fmt.Println(ret2) //fmt.Println(DeleteExtraSpace(string(bytesData))) //fmt.Println(DeleteExtraSpace(string(pBusiCardInfo))) fmt.Println(":", ConvertToString(DeleteExtraSpace(string(bytesData)), "gbk", "utf-8")) fmt.Println(":", ConvertToString(DeleteExtraSpace(string(pBusiCardInfo)), "gbk", "utf-8")) if ret2 != 0 { return "", "" } return DeleteExtraSpace(string(bytesData)), DeleteExtraSpace(string(pBusiCardInfo)) } func DeleteExtraSpace(s string) string { //删除字符串中的多余空格,有多个空格时,仅保留一个空格 s1 := strings.Replace(s, " ", " ", -1) //替换tab为空格 regstr := "\\s{2,}" //两个及两个以上空格的正则表达式 reg, _ := regexp.Compile(regstr) //编译正则表达式 s2 := make([]byte, len(s1)) //定义字符数组切片 copy(s2, s1) //将字符串复制到切片 spc_index := reg.FindStringIndex(string(s2)) //在字符串中搜索 for len(spc_index) > 0 { //找到适配项 s2 = append(s2[:spc_index[0]+1], s2[spc_index[1]:]...) //删除多余空格 spc_index = reg.FindStringIndex(string(s2)) //继续在字符串中搜索 } return string(s2) } // 对账 func (c *HisApiController) Post3202() { start_time := c.GetString("start_time") end_time := c.GetString("end_time") //insutype := c.GetString("insutype") clr_type := c.GetString("clr_type") clr_org := c.GetString("clr_optins") admin_user_id, _ := c.GetInt64("admin_user_id") adminUser := c.GetAdminUserInfo() miConfig, _ := service.FindMedicalInsuranceInfo(adminUser.CurrentOrgId) config, _ := service.GetMedicalInsuranceConfig(adminUser.CurrentOrgId) if len(clr_org) == 0 { clr_org = miConfig.MdtrtareaAdmvs } timeLayout := "2006-01-02" loc, _ := time.LoadLocation("Local") startime, _ := time.ParseInLocation(timeLayout+" 15:04:05", start_time+" 00:00:00", loc) endtime, _ := time.ParseInLocation(timeLayout+" 15:04:05", end_time+" 23:59:59", loc) var orders []*models.HisOrder if clr_org == "421300" { orders, _ = service.GetOrderByTimeFour(startime.Unix(), endtime.Unix(), adminUser.CurrentOrgId) } else if clr_org == "420902" { orders, _ = service.GetOrderByTime11222(startime.Unix(), endtime.Unix(), adminUser.CurrentOrgId) } else { orders, _ = service.GetOrderByTime11222(startime.Unix(), endtime.Unix(), adminUser.CurrentOrgId) } //orders_two, _ := service.GetOrderByTimeFour(startime.Unix(), endtime.Unix(), adminUser.CurrentOrgId, "310", "", clr_type) //fixmedins_setl_cnt := int64(len(orders)) var medfee_sumamt float64 var acct_pay float64 var fund_pay_sumamt float64 for _, item := range orders { medfee_sumamt = medfee_sumamt + item.MedfeeSumamt acct_pay = acct_pay + item.AcctPay fund_pay_sumamt = fund_pay_sumamt + item.FundPaySumamt } //var medfee_sumamt_two float64 //var acct_pay_two float64 //var fund_pay_sumamt_two float64 //for _, item := range orders_two { // medfee_sumamt_two = medfee_sumamt_two + item.MedfeeSumamt // acct_pay_two = acct_pay_two + item.AcctPay // fund_pay_sumamt_two = fund_pay_sumamt_two + item.FundPaySumamt //} //var user_name string role, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, admin_user_id) //if role.ID == 0 { // user_name = "xxx" //} else { // user_name = role.UserName //} var res ResultSix if config.IsOpen == 1 { var bps []*models.BusinessParamsTwo var bp models.BusinessParamsTwo medfee_sumamt_str := fmt.Sprintf("%.2f", medfee_sumamt) acct_pay_str := fmt.Sprintf("%.2f", acct_pay) fund_pay_sumamt_str := fmt.Sprintf("%.2f", fund_pay_sumamt) bp.MedfeeSumamt = medfee_sumamt_str bp.AcctPay = acct_pay_str bp.FundPaySumamt = fund_pay_sumamt_str bp.Insutype = "" bp.StmtBegndate = start_time bp.ClrType = clr_type bp.SetlOptins = clr_org bp.StmtEnddate = end_time bps = append(bps, &bp) data := make(map[string]interface{}) data["bps"] = bps data["org_name"] = miConfig.OrgName data["doctor"] = role.UserName data["fixmedins_code"] = miConfig.Code data["insuplc_admdvs"] = miConfig.InsuplcAdmdvs //data["insuplc_admdvs"] = miConfig.InsuplcAdmdvs data["mdtrtarea_admvs"] = miConfig.MdtrtareaAdmvs if miConfig.MdtrtareaAdmvs == "421300" { client := &http.Client{} bytesData, _ := json.Marshal(data) req, _ := http.NewRequest("POST", "http://192.168.124.4:9532/"+"hbyb/3202", bytes.NewReader(bytesData)) resp, _ := client.Do(req) defer resp.Body.Close() body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) userJSONBytes, _ := json.Marshal(respJSON) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } if miConfig.MdtrtareaAdmvs == "420200" { client := &http.Client{} bytesData, _ := json.Marshal(data) req, _ := http.NewRequest("POST", "http://192.168.0.197:9532/"+"hbyb/3202", bytes.NewReader(bytesData)) resp, _ := client.Do(req) defer resp.Body.Close() body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) userJSONBytes, _ := json.Marshal(respJSON) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } if miConfig.MdtrtareaAdmvs == "421182" { client := &http.Client{} bytesData, _ := json.Marshal(data) req, _ := http.NewRequest("POST", miConfig.Url+"hbyb/3202", bytes.NewReader(bytesData)) resp, _ := client.Do(req) defer resp.Body.Close() body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) userJSONBytes, _ := json.Marshal(respJSON) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } if miConfig.MdtrtareaAdmvs == "420902" { client := &http.Client{} bytesData, _ := json.Marshal(data) req, _ := http.NewRequest("POST", miConfig.Url+"hbyb/3202", bytes.NewReader(bytesData)) resp, _ := client.Do(req) defer resp.Body.Close() body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) userJSONBytes, _ := json.Marshal(respJSON) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } if res.Infcode == 0 { c.ServeSuccessJSON(map[string]interface{}{ "msg": "发起成功", }) } else { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res.ErrMsg, }) } } } func (c *HisApiController) Post3204a() { start_time := c.GetString("start_time") end_time := c.GetString("end_time") //insutype := c.GetString("insutype") clr_type := c.GetString("clr_type") clr_org := c.GetString("clr_optins") admin_user_id, _ := c.GetInt64("admin_user_id") adminUser := c.GetAdminUserInfo() miConfig, _ := service.FindMedicalInsuranceInfo(adminUser.CurrentOrgId) config, _ := service.GetMedicalInsuranceConfig(adminUser.CurrentOrgId) if len(clr_org) == 0 { clr_org = miConfig.MdtrtareaAdmvs } timeLayout := "2006-01-02" loc, _ := time.LoadLocation("Local") startime, _ := time.ParseInLocation(timeLayout+" 15:04:05", start_time+" 00:00:00", loc) endtime, _ := time.ParseInLocation(timeLayout+" 15:04:05", end_time+" 23:59:59", loc) var orders []*models.HisOrder if clr_org == "421300" { orders, _ = service.GetOrderByTimeFour(startime.Unix(), endtime.Unix(), adminUser.CurrentOrgId) } else if clr_org == "420902" { orders, _ = service.GetOrderByTime11222(startime.Unix(), endtime.Unix(), adminUser.CurrentOrgId) } else { orders, _ = service.GetOrderByTime11222(startime.Unix(), endtime.Unix(), adminUser.CurrentOrgId) } //orders_two, _ := service.GetOrderByTimeFour(startime.Unix(), endtime.Unix(), adminUser.CurrentOrgId, "310", "", clr_type) //fixmedins_setl_cnt := int64(len(orders)) var medfee_sumamt float64 var acct_pay float64 var fund_pay_sumamt float64 for _, item := range orders { medfee_sumamt = medfee_sumamt + item.MedfeeSumamt acct_pay = acct_pay + item.AcctPay fund_pay_sumamt = fund_pay_sumamt + item.FundPaySumamt } //var medfee_sumamt_two float64 //var acct_pay_two float64 //var fund_pay_sumamt_two float64 //for _, item := range orders_two { // medfee_sumamt_two = medfee_sumamt_two + item.MedfeeSumamt // acct_pay_two = acct_pay_two + item.AcctPay // fund_pay_sumamt_two = fund_pay_sumamt_two + item.FundPaySumamt //} //var user_name string role, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, admin_user_id) //if role.ID == 0 { // user_name = "xxx" //} else { // user_name = role.UserName //} var res ResultSix if config.IsOpen == 1 { var bps []*models.BusinessParamsTwo var bp models.BusinessParamsTwo medfee_sumamt_str := fmt.Sprintf("%.2f", medfee_sumamt) acct_pay_str := fmt.Sprintf("%.2f", acct_pay) fund_pay_sumamt_str := fmt.Sprintf("%.2f", fund_pay_sumamt) bp.MedfeeSumamt = medfee_sumamt_str bp.AcctPay = acct_pay_str bp.FundPaySumamt = fund_pay_sumamt_str bp.Insutype = "" bp.StmtBegndate = start_time bp.ClrType = clr_type bp.SetlOptins = clr_org bp.StmtEnddate = end_time bps = append(bps, &bp) data := make(map[string]interface{}) data["bps"] = bps data["org_name"] = miConfig.OrgName data["doctor"] = role.UserName data["fixmedins_code"] = miConfig.Code data["insuplc_admdvs"] = miConfig.InsuplcAdmdvs //data["insuplc_admdvs"] = miConfig.InsuplcAdmdvs data["mdtrtarea_admvs"] = miConfig.MdtrtareaAdmvs if miConfig.MdtrtareaAdmvs == "421300" { client := &http.Client{} bytesData, _ := json.Marshal(data) req, _ := http.NewRequest("POST", "http://192.168.124.4:9532/"+"hbyb/3204a", bytes.NewReader(bytesData)) resp, _ := client.Do(req) defer resp.Body.Close() body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) userJSONBytes, _ := json.Marshal(respJSON) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } if miConfig.MdtrtareaAdmvs == "420200" { client := &http.Client{} bytesData, _ := json.Marshal(data) req, _ := http.NewRequest("POST", "http://192.168.0.197:9532/"+"hbyb/3204a", bytes.NewReader(bytesData)) resp, _ := client.Do(req) defer resp.Body.Close() body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) userJSONBytes, _ := json.Marshal(respJSON) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } if miConfig.MdtrtareaAdmvs == "421182" { client := &http.Client{} bytesData, _ := json.Marshal(data) req, _ := http.NewRequest("POST", miConfig.Url+"hbyb/3204a", bytes.NewReader(bytesData)) resp, _ := client.Do(req) defer resp.Body.Close() body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) userJSONBytes, _ := json.Marshal(respJSON) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } if miConfig.MdtrtareaAdmvs == "420902" { client := &http.Client{} bytesData, _ := json.Marshal(data) req, _ := http.NewRequest("POST", miConfig.Url+"hbyb/3204a", bytes.NewReader(bytesData)) resp, _ := client.Do(req) defer resp.Body.Close() body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) userJSONBytes, _ := json.Marshal(respJSON) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } if res.Infcode == 0 { c.ServeSuccessJSON(map[string]interface{}{ "msg": "撤销成功", }) } else { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res.ErrMsg, }) } } } func (c *HisApiController) Post3204() { admin_user_id, _ := c.GetInt64("admin_user_id") id := c.GetString("id") adminUser := c.GetAdminUserInfo() miConfig, _ := service.FindMedicalInsuranceInfo(adminUser.CurrentOrgId) config, _ := service.GetMedicalInsuranceConfig(adminUser.CurrentOrgId) //clr_org := miConfig.MdtrtareaAdmvs role, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, admin_user_id) var res ResultSix if config.IsOpen == 1 { data := make(map[string]interface{}) data["id"] = id data["org_name"] = miConfig.OrgName data["doctor"] = role.UserName data["fixmedins_code"] = miConfig.Code data["insuplc_admdvs"] = miConfig.InsuplcAdmdvs data["mdtrtarea_admvs"] = miConfig.MdtrtareaAdmvs client := &http.Client{} bytesData, _ := json.Marshal(data) req, _ := http.NewRequest("POST", miConfig.Url+"hbyb/3204", bytes.NewReader(bytesData)) resp, _ := client.Do(req) defer resp.Body.Close() body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) userJSONBytes, _ := json.Marshal(respJSON) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if res.Infcode == 0 { c.ServeSuccessJSON(map[string]interface{}{ "msg": "发起成功", }) } else { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res.ErrMsg, }) } } } func (c *HisApiController) Post8404() { admin_user_id, _ := c.GetInt64("admin_user_id") month := c.GetString("month") adminUser := c.GetAdminUserInfo() miConfig, _ := service.FindMedicalInsuranceInfo(adminUser.CurrentOrgId) config, _ := service.GetMedicalInsuranceConfig(adminUser.CurrentOrgId) role, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, admin_user_id) var res ResultSix if config.IsOpen == 1 { data := make(map[string]interface{}) data["month"] = month data["org_name"] = miConfig.OrgName data["doctor"] = role.UserName data["fixmedins_code"] = miConfig.Code data["insuplc_admdvs"] = miConfig.InsuplcAdmdvs data["mdtrtarea_admvs"] = miConfig.MdtrtareaAdmvs client := &http.Client{} bytesData, _ := json.Marshal(data) req, _ := http.NewRequest("POST", miConfig.Url+"hbyb/8404", bytes.NewReader(bytesData)) resp, _ := client.Do(req) defer resp.Body.Close() body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) userJSONBytes, _ := json.Marshal(respJSON) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } if res.Infcode == 0 { c.ServeSuccessJSON(map[string]interface{}{ "msg": "查询成功", }) } else { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res.ErrMsg, }) } } } func (c *HisApiController) Post3202b() { start_time := c.GetString("start_time") end_time := c.GetString("end_time") //insutype := c.GetString("insutype") clr_type := c.GetString("clr_type") clr_org := c.GetString("clr_optins") admin_user_id, _ := c.GetInt64("admin_user_id") adminUser := c.GetAdminUserInfo() miConfig, _ := service.FindMedicalInsuranceInfo(adminUser.CurrentOrgId) config, _ := service.GetMedicalInsuranceConfig(adminUser.CurrentOrgId) if len(clr_org) == 0 { clr_org = miConfig.MdtrtareaAdmvs } timeLayout := "2006-01-02" loc, _ := time.LoadLocation("Local") startime, _ := time.ParseInLocation(timeLayout+" 15:04:05", start_time+" 00:00:00", loc) endtime, _ := time.ParseInLocation(timeLayout+" 15:04:05", end_time+" 23:59:59", loc) orders, _ := service.GetOrderByTimeFourfor11(startime.Unix(), endtime.Unix(), adminUser.CurrentOrgId) //orders_two, _ := service.GetOrderByTimeFour(startime.Unix(), endtime.Unix(), adminUser.CurrentOrgId, "310", "", clr_type) //fixmedins_setl_cnt := int64(len(orders)) var medfee_sumamt float64 var acct_pay float64 var fund_pay_sumamt float64 for _, item := range orders { medfee_sumamt = medfee_sumamt + item.MedfeeSumamt acct_pay = acct_pay + item.AcctPay fund_pay_sumamt = fund_pay_sumamt + item.FundPaySumamt } //var medfee_sumamt_two float64 //var acct_pay_two float64 //var fund_pay_sumamt_two float64 //for _, item := range orders_two { // medfee_sumamt_two = medfee_sumamt_two + item.MedfeeSumamt // acct_pay_two = acct_pay_two + item.AcctPay // fund_pay_sumamt_two = fund_pay_sumamt_two + item.FundPaySumamt //} //var user_name string role, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, admin_user_id) //if role.ID == 0 { // user_name = "xxx" //} else { // user_name = role.UserName //} var res ResultSix if config.IsOpen == 1 { var bps []*models.BusinessParamsTwo var bp models.BusinessParamsTwo medfee_sumamt_str := fmt.Sprintf("%.2f", medfee_sumamt) acct_pay_str := fmt.Sprintf("%.2f", acct_pay) fund_pay_sumamt_str := fmt.Sprintf("%.2f", fund_pay_sumamt) bp.MedfeeSumamt = medfee_sumamt_str bp.AcctPay = acct_pay_str bp.FundPaySumamt = fund_pay_sumamt_str bp.Insutype = "390" bp.StmtBegndate = start_time bp.ClrType = clr_type bp.SetlOptins = clr_org bp.StmtEnddate = end_time bps = append(bps, &bp) data := make(map[string]interface{}) data["bps"] = bps data["org_name"] = miConfig.OrgName data["doctor"] = role.UserName data["fixmedins_code"] = miConfig.Code data["insuplc_admdvs"] = miConfig.InsuplcAdmdvs data["mdtrtarea_admvs"] = miConfig.MdtrtareaAdmvs if miConfig.MdtrtareaAdmvs == "421300" { client := &http.Client{} bytesData, _ := json.Marshal(data) req, _ := http.NewRequest("POST", "http://192.168.124.4:9532/"+"hbyb/3202b", bytes.NewReader(bytesData)) resp, _ := client.Do(req) defer resp.Body.Close() body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) userJSONBytes, _ := json.Marshal(respJSON) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } if miConfig.MdtrtareaAdmvs == "420200" { client := &http.Client{} bytesData, _ := json.Marshal(data) req, _ := http.NewRequest("POST", "http://192.168.0.197:9532/"+"hbyb/3202b", bytes.NewReader(bytesData)) resp, _ := client.Do(req) defer resp.Body.Close() body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) userJSONBytes, _ := json.Marshal(respJSON) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } if miConfig.MdtrtareaAdmvs == "421182" { client := &http.Client{} bytesData, _ := json.Marshal(data) req, _ := http.NewRequest("POST", miConfig.Url+"hbyb/3202b", bytes.NewReader(bytesData)) resp, _ := client.Do(req) defer resp.Body.Close() body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) userJSONBytes, _ := json.Marshal(respJSON) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } if res.Infcode == 0 { c.ServeSuccessJSON(map[string]interface{}{ "msg": "发起成功", }) } else { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res.ErrMsg, }) } } } func (c *HisApiController) Post1608() { start_time := c.GetString("start_time") end_time := c.GetString("end_time") admin_user_id, _ := c.GetInt64("admin_user_id") adminUser := c.GetAdminUserInfo() miConfig, _ := service.FindMedicalInsuranceInfo(adminUser.CurrentOrgId) config, _ := service.GetMedicalInsuranceConfig(adminUser.CurrentOrgId) timeLayout := "2006-01-02" loc, _ := time.LoadLocation("Local") startime, _ := time.ParseInLocation(timeLayout+" 15:04:05", start_time+" 00:00:00", loc) endtime, _ := time.ParseInLocation(timeLayout+" 15:04:05", end_time+" 23:59:59", loc) orders, _ := service.GetOrderByTimeFourfor11(startime.Unix(), endtime.Unix(), adminUser.CurrentOrgId) //orders_two, _ := service.GetOrderByTimeFour(startime.Unix(), endtime.Unix(), adminUser.CurrentOrgId, "310", "", clr_type) fixmedins_setl_cnt := int64(len(orders)) var medfee_sumamt float64 var func_smamt float64 for _, item := range orders { medfee_sumamt = medfee_sumamt + item.MedfeeSumamt func_smamt = func_smamt + item.FundPaySumamt + item.AcctPay } times := strings.Split(start_time, "-") time_tows := strings.Split(end_time, "-") role, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, admin_user_id) var res ResultSix if config.IsOpen == 1 { //var bps []*models.BusinessParamsTwo //var bp models.BusinessParamsTwo medfee_sumamt_str := fmt.Sprintf("%.2f", medfee_sumamt) func_smamt_str := fmt.Sprintf("%.2f", func_smamt) data := make(map[string]interface{}) data["org_name"] = miConfig.OrgName data["doctor"] = role.UserName data["func_smamt"] = func_smamt_str data["fixmedins_code"] = miConfig.Code data["insuplc_admdvs"] = miConfig.InsuplcAdmdvs data["mdtrtarea_admvs"] = miConfig.MdtrtareaAdmvs data["cnt"] = strconv.FormatInt(fixmedins_setl_cnt, 10) data["medfee_sumamt"] = medfee_sumamt_str data["start_time"] = times[0] + times[1] + times[2] data["end_time"] = time_tows[0] + time_tows[1] + time_tows[2] if miConfig.MdtrtareaAdmvs == "421300" { client := &http.Client{} bytesData, _ := json.Marshal(data) req, _ := http.NewRequest("POST", "http://192.168.124.4:9532/"+"hbyb/1608", bytes.NewReader(bytesData)) resp, _ := client.Do(req) defer resp.Body.Close() body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) userJSONBytes, _ := json.Marshal(respJSON) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } if miConfig.MdtrtareaAdmvs == "420200" { client := &http.Client{} bytesData, _ := json.Marshal(data) req, _ := http.NewRequest("POST", "http://192.168.0.197:9532/"+"hbyb/1608", bytes.NewReader(bytesData)) resp, _ := client.Do(req) defer resp.Body.Close() body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) userJSONBytes, _ := json.Marshal(respJSON) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } if miConfig.MdtrtareaAdmvs == "421182" { client := &http.Client{} bytesData, _ := json.Marshal(data) req, _ := http.NewRequest("POST", miConfig.Url+"hbyb/1608", bytes.NewReader(bytesData)) resp, _ := client.Do(req) defer resp.Body.Close() body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) userJSONBytes, _ := json.Marshal(respJSON) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } if res.Infcode == 0 { c.ServeSuccessJSON(map[string]interface{}{ "msg": "发起成功", }) } else { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res.ErrMsg, }) } } } // 5.11.1.1【5262】结算信息按时间段查询 func Post5262(c *HisApiController, bp models.BusinessParams5262, page int64, limit int64) { admin_user_id, _ := c.GetInt64("admin_user_id") adminUser := c.GetAdminUserInfo() miConfig, _ := service.FindMedicalInsuranceInfo(adminUser.CurrentOrgId) config, _ := service.GetMedicalInsuranceConfig(adminUser.CurrentOrgId) role, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, admin_user_id) var res Result5262 if config.IsOpen == 1 { if miConfig.MdtrtareaAdmvs == "421300" { data := make(map[string]interface{}) data["bps"] = bp data["org_name"] = miConfig.OrgName data["doctor"] = role.UserName data["fixmedins_code"] = miConfig.Code data["insuplc_admdvs"] = miConfig.InsuplcAdmdvs data["mdtrtarea_admvs"] = miConfig.MdtrtareaAdmvs data["page"] = strconv.FormatInt(page, 10) data["limit"] = strconv.FormatInt(limit, 10) fmt.Println(data) client := &http.Client{} bytesData, _ := json.Marshal(data) req, _ := http.NewRequest("POST", "http://192.168.124.4:9532/"+"hbyb/5262", bytes.NewReader(bytesData)) resp, _ := client.Do(req) defer resp.Body.Close() body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) userJSONBytes, _ := json.Marshal(respJSON) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } if miConfig.MdtrtareaAdmvs == "420200" { data := make(map[string]interface{}) data["bps"] = bp data["org_name"] = miConfig.OrgName data["doctor"] = role.UserName data["fixmedins_code"] = miConfig.Code data["insuplc_admdvs"] = miConfig.InsuplcAdmdvs data["mdtrtarea_admvs"] = miConfig.MdtrtareaAdmvs data["page"] = strconv.FormatInt(page, 10) data["limit"] = strconv.FormatInt(limit, 10) fmt.Println(data) client := &http.Client{} bytesData, _ := json.Marshal(data) req, _ := http.NewRequest("POST", "http://192.168.0.197:9532/"+"hbyb/5262", bytes.NewReader(bytesData)) resp, _ := client.Do(req) defer resp.Body.Close() body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) userJSONBytes, _ := json.Marshal(respJSON) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } if miConfig.MdtrtareaAdmvs == "421182" { data := make(map[string]interface{}) data["bps"] = bp data["org_name"] = miConfig.OrgName data["doctor"] = role.UserName data["fixmedins_code"] = miConfig.Code data["insuplc_admdvs"] = miConfig.InsuplcAdmdvs data["mdtrtarea_admvs"] = miConfig.MdtrtareaAdmvs data["page"] = strconv.FormatInt(page, 10) data["limit"] = strconv.FormatInt(limit, 10) fmt.Println(data) client := &http.Client{} bytesData, _ := json.Marshal(data) req, _ := http.NewRequest("POST", miConfig.Url+"hbyb/5262", bytes.NewReader(bytesData)) resp, _ := client.Do(req) defer resp.Body.Close() body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) userJSONBytes, _ := json.Marshal(respJSON) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } if miConfig.MdtrtareaAdmvs == "420902" { data := make(map[string]interface{}) data["bps"] = bp data["org_name"] = miConfig.OrgName data["doctor"] = role.UserName data["fixmedins_code"] = miConfig.Code data["insuplc_admdvs"] = miConfig.InsuplcAdmdvs data["mdtrtarea_admvs"] = miConfig.MdtrtareaAdmvs data["page"] = strconv.FormatInt(page, 10) data["limit"] = strconv.FormatInt(limit, 10) fmt.Println(data) client := &http.Client{} bytesData, _ := json.Marshal(data) req, _ := http.NewRequest("POST", miConfig.Url+"hbyb/5262", bytes.NewReader(bytesData)) resp, _ := client.Do(req) defer resp.Body.Close() body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) userJSONBytes, _ := json.Marshal(respJSON) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } if res.Infcode == 0 { c.ServeSuccessJSON(map[string]interface{}{ "order": res.Output.Result, "total": res.Output.PageInfo.RecordCounts, }) } else { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res.ErrMsg, }) } } } // 5.11.1.2【5267】异地结算信息时间段查询 func Post5267(c *HisApiController, bp models.BusinessParams5262, page int64, limit int64) { admin_user_id, _ := c.GetInt64("admin_user_id") adminUser := c.GetAdminUserInfo() miConfig, _ := service.FindMedicalInsuranceInfo(adminUser.CurrentOrgId) config, _ := service.GetMedicalInsuranceConfig(adminUser.CurrentOrgId) role, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, admin_user_id) var res Result5267 if config.IsOpen == 1 { if miConfig.MdtrtareaAdmvs == "421300" { data := make(map[string]interface{}) data["bps"] = bp data["org_name"] = miConfig.OrgName data["doctor"] = role.UserName data["fixmedins_code"] = miConfig.Code data["insuplc_admdvs"] = miConfig.InsuplcAdmdvs data["mdtrtarea_admvs"] = miConfig.MdtrtareaAdmvs data["page"] = page data["limit"] = limit fmt.Println(data) client := &http.Client{} bytesData, _ := json.Marshal(data) req, _ := http.NewRequest("POST", "http://192.168.124.4:9532/"+"hbyb/5267", bytes.NewReader(bytesData)) resp, _ := client.Do(req) defer resp.Body.Close() body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) userJSONBytes, _ := json.Marshal(respJSON) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } if miConfig.MdtrtareaAdmvs == "420200" { data := make(map[string]interface{}) data["bps"] = bp data["org_name"] = miConfig.OrgName data["doctor"] = role.UserName data["fixmedins_code"] = miConfig.Code data["insuplc_admdvs"] = miConfig.InsuplcAdmdvs data["mdtrtarea_admvs"] = miConfig.MdtrtareaAdmvs data["page"] = page data["limit"] = limit fmt.Println(data) client := &http.Client{} bytesData, _ := json.Marshal(data) req, _ := http.NewRequest("POST", "http://192.168.0.197:9532/"+"hbyb/5267", bytes.NewReader(bytesData)) resp, _ := client.Do(req) defer resp.Body.Close() body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) userJSONBytes, _ := json.Marshal(respJSON) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } if miConfig.MdtrtareaAdmvs == "421182" { data := make(map[string]interface{}) data["bps"] = bp data["org_name"] = miConfig.OrgName data["doctor"] = role.UserName data["fixmedins_code"] = miConfig.Code data["insuplc_admdvs"] = miConfig.InsuplcAdmdvs data["mdtrtarea_admvs"] = miConfig.MdtrtareaAdmvs data["page"] = page data["limit"] = limit fmt.Println(data) client := &http.Client{} bytesData, _ := json.Marshal(data) req, _ := http.NewRequest("POST", miConfig.Url+"hbyb/5267", bytes.NewReader(bytesData)) resp, _ := client.Do(req) defer resp.Body.Close() body, ioErr := ioutil.ReadAll(resp.Body) if ioErr != nil { utils.ErrorLog("接口返回数据读取失败: %v", ioErr) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } var respJSON map[string]interface{} if err := json.Unmarshal([]byte(body), &respJSON); err != nil { utils.ErrorLog("接口返回数据解析JSON失败: %v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } respJSON = respJSON["data"].(map[string]interface{})["pre"].(map[string]interface{}) userJSONBytes, _ := json.Marshal(respJSON) if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } if res.Infcode == 0 { c.ServeSuccessJSON(map[string]interface{}{ "order": res.Output.Result, "total": res.Output.PageInfo.RecordCounts, }) } else { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res.ErrMsg, }) } } } func (c *HisApiController) Post3501() { miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId) data := make(map[string]interface{}) var struct3501s []models.Struct3501 var struct3501 models.Struct3501 struct3501.OrgName = miConfig.OrgName struct3501.AccessKey = miConfig.AccessKey struct3501.RequestUrl = miConfig.Url struct3501.SecretKey = miConfig.SecretKey struct3501.ManuDate = "2022-08-17" struct3501.FixmedinsBchno = "" struct3501.ManuLotnum = "" struct3501.RxFlag = "0" struct3501.ExpyEnd = "2022-08-17" struct3501.Invdate = "2022-08-17" struct3501.InvCnt = "20.25" struct3501.Memo = "" struct3501.MedListCodg = "XB01ABD056B002020200517" struct3501.FixmedinsHilistId = miConfig.Code struct3501.FixmedinsHilistName = miConfig.OrgName struct3501s = append(struct3501s, struct3501) data["struct_3501s"] = struct3501s client := &http.Client{} bytesData, _ := json.Marshal(data) var req *http.Request if miConfig.MdtrtareaAdmvs == "320921" { req, _ = http.NewRequest("POST", "http://192.168.2.3:9532/"+"jsyb/3501", bytes.NewReader(bytesData)) } else { req, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/3501", 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 } var res ResultSix var resSix10265 ResultSix10265 //1101结果 respJSON = respJSON["data"].(map[string]interface{})["request_log"].(map[string]interface{}) result, _ := json.Marshal(respJSON) if err := json.Unmarshal([]byte(result), &resSix10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res.InfRefmsgid = resSix10265.InfRefmsgid res.Output = resSix10265.Output res.ErrMsg = resSix10265.ErrMsg res.Cainfo = resSix10265.Cainfo res.WarnMsg = resSix10265.WarnMsg infocode, _ := strconv.ParseInt(resSix10265.Infcode, 10, 64) res.Infcode = infocode if infocode == 0 { c.ServeSuccessJSON(map[string]interface{}{ "msg": "上传成功", }) return } else { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res.ErrMsg, }) return } } func (c *HisApiController) Post3502() { miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId) data := make(map[string]interface{}) var struct3502s []models.Struct3502 var struct3502 models.Struct3502 struct3502.OrgName = miConfig.OrgName struct3502.AccessKey = miConfig.AccessKey struct3502.RequestUrl = miConfig.Url struct3502.SecretKey = miConfig.SecretKey struct3502.ManuDate = "2022-08-15" struct3502.FixmedinsBchno = "" struct3502.ManuLotnum = "" struct3502.RxFlag = "0" struct3502.ExpyEnd = "2022-08-15" struct3502.Invdate = "2022-08-15" struct3502.InvCnt = "20.25" struct3502.Memo = "" struct3502.MedListCodg = "XB01ABD056B002020200517" struct3502.FixmedinsHilistId = miConfig.Code struct3502.FixmedinsHilistName = miConfig.OrgName struct3502s = append(struct3502s, struct3502) data["struct_3502s"] = struct3502s client := &http.Client{} bytesData, _ := json.Marshal(data) var req *http.Request if miConfig.MdtrtareaAdmvs == "320921" { req, _ = http.NewRequest("POST", "http://192.168.2.3:9532/"+"jsyb/3501", bytes.NewReader(bytesData)) } else { req, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/3501", 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 } var res ResultSix var resSix10265 ResultSix10265 //1101结果 respJSON = respJSON["data"].(map[string]interface{})["request_log"].(map[string]interface{}) result, _ := json.Marshal(respJSON) if err := json.Unmarshal([]byte(result), &resSix10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res.InfRefmsgid = resSix10265.InfRefmsgid res.Output = resSix10265.Output res.ErrMsg = resSix10265.ErrMsg res.Cainfo = resSix10265.Cainfo res.WarnMsg = resSix10265.WarnMsg infocode, _ := strconv.ParseInt(resSix10265.Infcode, 10, 64) res.Infcode = infocode if infocode == 0 { c.ServeSuccessJSON(map[string]interface{}{ "msg": "上传成功", }) return } else { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res.ErrMsg, }) return } } func (c *HisApiController) Post3503() { miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId) data := make(map[string]interface{}) var struct3501s []models.Struct3501 var struct3501 models.Struct3501 struct3501.OrgName = miConfig.OrgName struct3501.AccessKey = miConfig.AccessKey struct3501.RequestUrl = miConfig.Url struct3501.SecretKey = miConfig.SecretKey struct3501.ManuDate = "2022-08-15" struct3501.FixmedinsBchno = "" struct3501.ManuLotnum = "" struct3501.RxFlag = "0" struct3501.ExpyEnd = "2022-08-15" struct3501.Invdate = "2022-08-15" struct3501.InvCnt = "20.25" struct3501.Memo = "" struct3501.MedListCodg = "XB01ABD056B002020200517" struct3501.FixmedinsHilistId = miConfig.Code struct3501.FixmedinsHilistName = miConfig.OrgName struct3501s = append(struct3501s, struct3501) data["struct_3501s"] = struct3501s client := &http.Client{} bytesData, _ := json.Marshal(data) var req *http.Request if miConfig.MdtrtareaAdmvs == "320921" { req, _ = http.NewRequest("POST", "http://192.168.2.3:9532/"+"jsyb/3501", bytes.NewReader(bytesData)) } else { req, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/3501", 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 } var res ResultSix var resSix10265 ResultSix10265 //1101结果 respJSON = respJSON["data"].(map[string]interface{})["request_log"].(map[string]interface{}) result, _ := json.Marshal(respJSON) if err := json.Unmarshal([]byte(result), &resSix10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res.InfRefmsgid = resSix10265.InfRefmsgid res.Output = resSix10265.Output res.ErrMsg = resSix10265.ErrMsg res.Cainfo = resSix10265.Cainfo res.WarnMsg = resSix10265.WarnMsg infocode, _ := strconv.ParseInt(resSix10265.Infcode, 10, 64) res.Infcode = infocode if infocode == 0 { c.ServeSuccessJSON(map[string]interface{}{ "msg": "上传成功", }) return } else { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res.ErrMsg, }) return } } func (c *HisApiController) Post3504() { miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId) data := make(map[string]interface{}) var struct3501s []models.Struct3501 var struct3501 models.Struct3501 struct3501.OrgName = miConfig.OrgName struct3501.AccessKey = miConfig.AccessKey struct3501.RequestUrl = miConfig.Url struct3501.SecretKey = miConfig.SecretKey struct3501.ManuDate = "2022-08-15" struct3501.FixmedinsBchno = "" struct3501.ManuLotnum = "" struct3501.RxFlag = "0" struct3501.ExpyEnd = "2022-08-15" struct3501.Invdate = "2022-08-15" struct3501.InvCnt = "20.25" struct3501.Memo = "" struct3501.MedListCodg = "XB01ABD056B002020200517" struct3501.FixmedinsHilistId = miConfig.Code struct3501.FixmedinsHilistName = miConfig.OrgName struct3501s = append(struct3501s, struct3501) data["struct_3501s"] = struct3501s client := &http.Client{} bytesData, _ := json.Marshal(data) var req *http.Request if miConfig.MdtrtareaAdmvs == "320921" { req, _ = http.NewRequest("POST", "http://192.168.2.3:9532/"+"jsyb/3501", bytes.NewReader(bytesData)) } else { req, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/3501", 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 } var res ResultSix var resSix10265 ResultSix10265 //1101结果 respJSON = respJSON["data"].(map[string]interface{})["request_log"].(map[string]interface{}) result, _ := json.Marshal(respJSON) if err := json.Unmarshal([]byte(result), &resSix10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res.InfRefmsgid = resSix10265.InfRefmsgid res.Output = resSix10265.Output res.ErrMsg = resSix10265.ErrMsg res.Cainfo = resSix10265.Cainfo res.WarnMsg = resSix10265.WarnMsg infocode, _ := strconv.ParseInt(resSix10265.Infcode, 10, 64) res.Infcode = infocode if infocode == 0 { c.ServeSuccessJSON(map[string]interface{}{ "msg": "上传成功", }) return } else { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res.ErrMsg, }) return } } func (c *HisApiController) Post3505() { miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId) data := make(map[string]interface{}) var struct3501s []models.Struct3501 var struct3501 models.Struct3501 struct3501.OrgName = miConfig.OrgName struct3501.AccessKey = miConfig.AccessKey struct3501.RequestUrl = miConfig.Url struct3501.SecretKey = miConfig.SecretKey struct3501.ManuDate = "2022-08-15" struct3501.FixmedinsBchno = "" struct3501.ManuLotnum = "" struct3501.RxFlag = "0" struct3501.ExpyEnd = "2022-08-15" struct3501.Invdate = "2022-08-15" struct3501.InvCnt = "20.25" struct3501.Memo = "" struct3501.MedListCodg = "XB01ABD056B002020200517" struct3501.FixmedinsHilistId = miConfig.Code struct3501.FixmedinsHilistName = miConfig.OrgName struct3501s = append(struct3501s, struct3501) data["struct_3501s"] = struct3501s client := &http.Client{} bytesData, _ := json.Marshal(data) var req *http.Request if miConfig.MdtrtareaAdmvs == "320921" { req, _ = http.NewRequest("POST", "http://192.168.2.3:9532/"+"jsyb/3501", bytes.NewReader(bytesData)) } else { req, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/3501", 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 } var res ResultSix var resSix10265 ResultSix10265 //1101结果 respJSON = respJSON["data"].(map[string]interface{})["request_log"].(map[string]interface{}) result, _ := json.Marshal(respJSON) if err := json.Unmarshal([]byte(result), &resSix10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res.InfRefmsgid = resSix10265.InfRefmsgid res.Output = resSix10265.Output res.ErrMsg = resSix10265.ErrMsg res.Cainfo = resSix10265.Cainfo res.WarnMsg = resSix10265.WarnMsg infocode, _ := strconv.ParseInt(resSix10265.Infcode, 10, 64) res.Infcode = infocode if infocode == 0 { c.ServeSuccessJSON(map[string]interface{}{ "msg": "上传成功", }) return } else { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res.ErrMsg, }) return } } func (c *HisApiController) Post3506() { miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId) data := make(map[string]interface{}) var struct3501s []models.Struct3501 var struct3501 models.Struct3501 struct3501.OrgName = miConfig.OrgName struct3501.AccessKey = miConfig.AccessKey struct3501.RequestUrl = miConfig.Url struct3501.SecretKey = miConfig.SecretKey struct3501.ManuDate = "2022-08-15" struct3501.FixmedinsBchno = "" struct3501.ManuLotnum = "" struct3501.RxFlag = "0" struct3501.ExpyEnd = "2022-08-15" struct3501.Invdate = "2022-08-15" struct3501.InvCnt = "20.25" struct3501.Memo = "" struct3501.MedListCodg = "XB01ABD056B002020200517" struct3501.FixmedinsHilistId = miConfig.Code struct3501.FixmedinsHilistName = miConfig.OrgName struct3501s = append(struct3501s, struct3501) data["struct_3501s"] = struct3501s client := &http.Client{} bytesData, _ := json.Marshal(data) var req *http.Request if miConfig.MdtrtareaAdmvs == "320921" { req, _ = http.NewRequest("POST", "http://192.168.2.3:9532/"+"jsyb/3501", bytes.NewReader(bytesData)) } else { req, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/3501", 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 } var res ResultSix var resSix10265 ResultSix10265 //1101结果 respJSON = respJSON["data"].(map[string]interface{})["request_log"].(map[string]interface{}) result, _ := json.Marshal(respJSON) if err := json.Unmarshal([]byte(result), &resSix10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res.InfRefmsgid = resSix10265.InfRefmsgid res.Output = resSix10265.Output res.ErrMsg = resSix10265.ErrMsg res.Cainfo = resSix10265.Cainfo res.WarnMsg = resSix10265.WarnMsg infocode, _ := strconv.ParseInt(resSix10265.Infcode, 10, 64) res.Infcode = infocode if infocode == 0 { c.ServeSuccessJSON(map[string]interface{}{ "msg": "上传成功", }) return } else { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res.ErrMsg, }) return } } func (c *HisApiController) Post3507() { miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId) data := make(map[string]interface{}) var struct3501s []models.Struct3501 var struct3501 models.Struct3501 struct3501.OrgName = miConfig.OrgName struct3501.AccessKey = miConfig.AccessKey struct3501.RequestUrl = miConfig.Url struct3501.SecretKey = miConfig.SecretKey struct3501.ManuDate = "2022-08-15" struct3501.FixmedinsBchno = "" struct3501.ManuLotnum = "" struct3501.RxFlag = "0" struct3501.ExpyEnd = "2022-08-15" struct3501.Invdate = "2022-08-15" struct3501.InvCnt = "20.25" struct3501.Memo = "" struct3501.MedListCodg = "XB01ABD056B002020200517" //struct3501.FixmedinsHilistId = drug.BaseDrugLib.MedicalInsuranceNumber //struct3501.FixmedinsHilistName =drug.BaseDrugLib.DrugName struct3501s = append(struct3501s, struct3501) data["struct_3501s"] = struct3501s client := &http.Client{} bytesData, _ := json.Marshal(data) var req *http.Request if miConfig.MdtrtareaAdmvs == "320921" { req, _ = http.NewRequest("POST", "http://192.168.2.3:9532/"+"jsyb/3501", bytes.NewReader(bytesData)) } else { req, _ = http.NewRequest("POST", "http://192.168.5.251:9532/"+"jsyb/3501", 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 } var res ResultSix var resSix10265 ResultSix10265 //1101结果 respJSON = respJSON["data"].(map[string]interface{})["request_log"].(map[string]interface{}) result, _ := json.Marshal(respJSON) if err := json.Unmarshal([]byte(result), &resSix10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res.InfRefmsgid = resSix10265.InfRefmsgid res.Output = resSix10265.Output res.ErrMsg = resSix10265.ErrMsg res.Cainfo = resSix10265.Cainfo res.WarnMsg = resSix10265.WarnMsg infocode, _ := strconv.ParseInt(resSix10265.Infcode, 10, 64) res.Infcode = infocode if infocode == 0 { c.ServeSuccessJSON(map[string]interface{}{ "msg": "上传成功", }) return } else { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res.ErrMsg, }) return } } func GetjxELeInfo(code string, operator_id string, operator_name string, md string) (string, string) { // WebSocket服务器地址 serverURL := "ws://127.0.0.1:8899" // 解析WebSocket服务器地址 u, err := url.Parse(serverURL) if err != nil { } // 建立WebSocket连接 conn, _, err := websocket.DefaultDialer.Dial(u.String(), nil) if err != nil { } defer conn.Close() input2 := make(map[string]interface{}) input := make(map[string]interface{}) inputData := make(map[string]interface{}) inputData["orgId"] = code inputData["businessType"] = "01101" inputData["operatorId"] = operator_id inputData["operatorName"] = operator_name inputData["officeId"] = "001" inputData["officeName"] = "血透室" inputData["deviceType"] = "" input["data"] = inputData input["orgId"] = code input["transType"] = "ec.query" //if md == "" if md[:4] == "4403" { input2["url"] = "http://hosp-sz.gd.hsip.gov.cn/prd_nation_eccode/prd_eccode/localcfc/api/hsecfc/localQrCodeQuery" } else if md[:4] == "4401" { input2["url"] = "http://hosp-sz.gd.hsip.gov.cn/prd_nation_eccode/prd_eccode/localcfc/api/hsecfc/localQrCodeQuery" } else { input2["url"] = "http://hosp.gd.hsip.gov.cn/prd_nation_eccode/prd_eccode/localcfc/api/hsecfc/localQrCodeQuery" } input2["indata"] = input fmt.Println(input2) bytesData, _ := json.Marshal(input2) err = conn.WriteMessage(websocket.TextMessage, bytesData) if err != nil { fmt.Println(err) } // 接收消息 _, receivedMessage, err := conn.ReadMessage() if err != nil { fmt.Println(err) } return "", string(receivedMessage) } func GethnELeInfo(code string, operator_id string, operator_name string) (string, string) { // WebSocket服务器地址 serverURL := "ws://127.0.0.1:8899" // 解析WebSocket服务器地址 u, err := url.Parse(serverURL) if err != nil { } // 建立WebSocket连接 conn, _, err := websocket.DefaultDialer.Dial(u.String(), nil) if err != nil { } defer conn.Close() input2 := make(map[string]interface{}) input := make(map[string]interface{}) inputData := make(map[string]interface{}) inputData["orgId"] = code inputData["businessType"] = "01101" inputData["operatorId"] = operator_id inputData["operatorName"] = operator_name inputData["officeId"] = "001" inputData["officeName"] = "血透室" inputData["deviceType"] = "" input["data"] = inputData input["orgId"] = code input["transType"] = "ec.query" //if md == "" input2["url"] = "https://dvs.hun.hsip.gov.cn/localcfc/api/hsecfc/localQrCodeQuery" input2["indata"] = input fmt.Println(input2) bytesData, _ := json.Marshal(input2) err = conn.WriteMessage(websocket.TextMessage, bytesData) if err != nil { fmt.Println(err) } // 接收消息 _, receivedMessage, err := conn.ReadMessage() if err != nil { fmt.Println(err) } return "", string(receivedMessage) } func GethnELeInfotwo(code string, operator_id string, operator_name string) (string, string) { // WebSocket服务器地址 serverURL := "ws://127.0.0.1:8899" // 解析WebSocket服务器地址 u, err := url.Parse(serverURL) if err != nil { } // 建立WebSocket连接 conn, _, err := websocket.DefaultDialer.Dial(u.String(), nil) if err != nil { } defer conn.Close() input2 := make(map[string]interface{}) input := make(map[string]interface{}) inputData := make(map[string]interface{}) inputData["orgId"] = code inputData["businessType"] = "01301" inputData["operatorId"] = operator_id inputData["operatorName"] = operator_name inputData["officeId"] = "001" inputData["officeName"] = "血透室" inputData["deviceType"] = "" input["data"] = inputData input["orgId"] = code input["transType"] = "ec.query" //if md == "" input2["url"] = "https://dvs.hun.hsip.gov.cn/localcfc/api/hsecfc/localQrCodeQuery" input2["indata"] = input fmt.Println(input2) bytesData, _ := json.Marshal(input2) err = conn.WriteMessage(websocket.TextMessage, bytesData) if err != nil { fmt.Println(err) } // 接收消息 _, receivedMessage, err := conn.ReadMessage() if err != nil { fmt.Println(err) } return "", string(receivedMessage) } func GetjxELeInfoaaa(code string, operator_id string, operator_name string) (string, string) { // WebSocket服务器地址 serverURL := "ws://127.0.0.1:8899" // 解析WebSocket服务器地址 u, err := url.Parse(serverURL) if err != nil { } // 建立WebSocket连接 conn, _, err := websocket.DefaultDialer.Dial(u.String(), nil) if err != nil { } defer conn.Close() input2 := make(map[string]interface{}) input := make(map[string]interface{}) inputData := make(map[string]interface{}) inputData["orgId"] = code inputData["businessType"] = "01103" inputData["operatorId"] = operator_id inputData["operatorName"] = operator_name inputData["officeId"] = "001" inputData["officeName"] = "血透室" inputData["deviceType"] = "" input["data"] = inputData input["orgId"] = code input["transType"] = "ec.query" //if md == input2["url"] = "http://10.77.211.236/1.0.0/localQrCodeQuery" input2["indata"] = input fmt.Println(input2) bytesData, _ := json.Marshal(input2) err = conn.WriteMessage(websocket.TextMessage, bytesData) if err != nil { fmt.Println(err) } // 接收消息 _, receivedMessage, err := conn.ReadMessage() if err != nil { fmt.Println(err) } return "", string(receivedMessage) } func GetELeInfo(code string, operator_id string, operator_name string, md string) (string, string) { // WebSocket服务器地址 serverURL := "ws://127.0.0.1:8899" // 解析WebSocket服务器地址 u, err := url.Parse(serverURL) if err != nil { } // 建立WebSocket连接 conn, _, err := websocket.DefaultDialer.Dial(u.String(), nil) if err != nil { } defer conn.Close() input2 := make(map[string]interface{}) input := make(map[string]interface{}) inputData := make(map[string]interface{}) inputData["orgId"] = code inputData["businessType"] = "01101" inputData["operatorId"] = operator_id inputData["operatorName"] = operator_name inputData["officeId"] = "001" inputData["officeName"] = "血透室" inputData["deviceType"] = "" input["data"] = inputData input["orgId"] = code input["transType"] = "ec.query" //if md == "" if md[:4] == "4403" { input2["url"] = "http://igb.hsa.gdgov.cn/prd_nation_eccode/prd_eccode/localcfc/api/hsecfc/localQrCodeQuery" } else if md[:4] == "4401" { input2["url"] = "http://igb.hsa.gdgov.cn/prd_nation_eccode/prd_eccode/localcfc/api/hsecfc/localQrCodeQuery" } else { input2["url"] = "http://hosp.gd.hsip.gov.cn/prd_nation_eccode/prd_eccode/localcfc/api/hsecfc/localQrCodeQuery" } input2["indata"] = input fmt.Println(input2) bytesData, _ := json.Marshal(input2) err = conn.WriteMessage(websocket.TextMessage, bytesData) if err != nil { fmt.Println(err) } // 接收消息 _, receivedMessage, err := conn.ReadMessage() if err != nil { fmt.Println(err) } return "", string(receivedMessage) } func GetELeInfoThree(code string, operator_id string, operator_name string) (string, string) { // WebSocket服务器地址 serverURL := "ws://127.0.0.1:8899" // 解析WebSocket服务器地址 u, err := url.Parse(serverURL) if err != nil { } // 建立WebSocket连接 conn, _, err := websocket.DefaultDialer.Dial(u.String(), nil) if err != nil { } defer conn.Close() input2 := make(map[string]interface{}) input := make(map[string]interface{}) inputData := make(map[string]interface{}) inputData["orgId"] = code inputData["businessType"] = "01301" inputData["operatorId"] = operator_id inputData["operatorName"] = operator_name inputData["officeId"] = "001" inputData["officeName"] = "血透室" inputData["deviceType"] = "" input["data"] = inputData input["orgId"] = code input["transType"] = "ec.query" input2["url"] = "http://igb.hsa.gdgov.cn/prd_nation_eccode/prd_eccode/localcfc/api/hsecfc/localQrCodeQuery" input2["indata"] = input bytesData, _ := json.Marshal(input2) err = conn.WriteMessage(websocket.TextMessage, bytesData) if err != nil { fmt.Println(err) } // 接收消息 _, receivedMessage, err := conn.ReadMessage() if err != nil { fmt.Println(err) } return "", string(receivedMessage) } func RemoveRepeatedPurviewElement2(arr []string) (newArr []string) { newArr = make([]string, 0) for i := 0; i < len(arr); i++ { repeat := false for j := i + 1; j < len(arr); j++ { if arr[i] == arr[j] { repeat = true break } } if !repeat { newArr = append(newArr, arr[i]) } } return } func getBirthdateAndAge(idNumber string) (string, int, error) { if len(idNumber) != 18 { return "", 0, fmt.Errorf("invalid ID number length. It should be 18 digits") } // 提取出生日期 year, err := strconv.Atoi(idNumber[6:10]) if err != nil { return "", 0, err } month, err := strconv.Atoi(idNumber[10:12]) if err != nil { return "", 0, err } day, err := strconv.Atoi(idNumber[12:14]) if err != nil { return "", 0, err } // 格式化生日字符串 birthdate := time.Date(year, time.Month(month), day, 0, 0, 0, 0, time.UTC) birthdateFormatted := birthdate.Format("2006-01-02") // 计算年龄 today := time.Now() age := today.Year() - birthdate.Year() if today.YearDay() < birthdate.YearDay() { age-- } return birthdateFormatted, age, nil } // 从身份证号码中提取出生年月日 func getBirthDateFromIDCard(idCard string) (string, error) { // 身份证号码长度应为18位 if len(idCard) != 18 { return "", fmt.Errorf("身份证号码长度应为18位") } // 提取出生日期部分 (YYYYMMDD) birthDateStr := idCard[6:14] // 解析出生日期 birthDate, err := time.Parse("20060102", birthDateStr) if err != nil { return "", fmt.Errorf("解析出生日期失败: %v", err) } // 格式化出生日期为 YYYY-MM-DD formattedDate := birthDate.Format("2006-01-02") return formattedDate, nil }