package zh import ( "bytes" "encoding/json" "fmt" "gdyb/controllers" "gdyb/enums" "gdyb/models" "gdyb/service" "gdyb/utils" "github.com/astaxie/beego" "io/ioutil" "math" "math/rand" "net/http" "strconv" "strings" "time" ) type ZHHisApiController struct { controllers.BaseAuthAPIController } type ResultTwo struct { ErrMsg string `json:"err_msg"` InfRefmsgid string `json:"inf_refmsgid"` Infcode int64 `json:"infcode"` Output struct { Baseinfo struct { Age float64 `json:"age"` 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 { Age float64 `json:"age"` 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 ResultThree struct { Cainfo interface{} `json:"cainfo"` ErrMsg string `json:"err_msg"` InfRefmsgid string `json:"inf_refmsgid"` Infcode int64 `json:"infcode"` Output struct { Result struct { MdtrtID string `json:"mdtrt_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 ResultThree10265 struct { Cainfo interface{} `json:"cainfo"` ErrMsg string `json:"err_msg"` InfRefmsgid string `json:"inf_refmsgid"` Infcode string `json:"infcode"` Output struct { Result struct { MdtrtID string `json:"mdtrt_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 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 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 ResultSeven struct { Cainfo string `json:"cainfo"` ErrMsg string `json:"err_msg"` InfRefmsgid string `json:"inf_refmsgid"` Infcode int64 `json:"infcode"` Output struct { Setldetail []interface{} `json:"setldetail"` 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"` Brdy string `json:"brdy"` 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"` } `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 { Setldetail []interface{} `json:"setldetail"` 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"` Brdy string `json:"brdy"` 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"` } `json:"output"` RefmsgTime string `json:"refmsg_time"` RespondTime string `json:"respond_time"` Signtype interface{} `json:"signtype"` WarnMsg interface{} `json:"warn_msg"` } type ResultSixteen struct { Cainfo string `json:"cainfo"` ErrMsg string `json:"err_msg"` InfRefmsgid string `json:"inf_refmsgid"` Infcode int64 `json:"infcode"` Output struct { Setldetail []interface{} `json:"setldetail"` 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 { Setldetail []interface{} `json:"setldetail"` 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 Custom struct { DetItemFeeSumamt string Cut string FeedetlSn string Price string MedListCodg string Type int64 AdviceId int64 ProjectId int64 ItemId int64 } type ResultEmpty 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 ResultEmpty10265 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 CustomResult 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"` } func ZHHisManagerApiRegistRouters() { beego.Router("/zh/api/inhopitalcheck/get", &ZHHisApiController{}, "get:GetZHInHospitalCheck") beego.Router("/zh/api/outhopitalcheck/get", &ZHHisApiController{}, "get:GetZHOutHospitalCheck") beego.Router("/zh/api/uploadinfo/get", &ZHHisApiController{}, "get:GetUploadInfo") beego.Router("/zh/api/settle/get", &ZHHisApiController{}, "get:GetSettleInfo") beego.Router("/zh/api/inthopitaluncheck/get", &ZHHisApiController{}, "get:GetZHInHospitalUnCheck") beego.Router("/zh/api/outhopitaluncheck/get", &ZHHisApiController{}, "get:GetZHOutHospitalUnCheck") beego.Router("/zh/api/refund", &ZHHisApiController{}, "get:ZHRefund") beego.Router("/zh/api/refunddetail", &ZHHisApiController{}, "get:ZHRefundDetail") beego.Router("/zh/api/patient/info", &ZHHisApiController{}, "get:GetZHPatientInfo") } func (c *ZHHisApiController) GetZHPatientInfo() { 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) if config.IsOpen == 1 { 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) 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" } 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, "insutype": insutype, }) } } } func (c *ZHHisApiController) GetZHInHospitalCheck() { id, _ := c.GetInt64("id") record_time := c.GetString("record_time") name := c.GetString("name") phone := c.GetString("phone") id_card_type, _ := c.GetInt64("id_card_type") certificates, _ := c.GetInt64("certificates") id_card_no := c.GetString("id_card_no") doctor, _ := c.GetInt64("doctor") admin_user_id, _ := c.GetInt64("admin_user_id") department, _ := c.GetInt64("department") adm_bed, _ := c.GetInt64("adm_bed") diagnosis_ids := c.GetString("diagnosis") sick_type, _ := c.GetInt64("sick_type") start_time := c.GetString("start_time") balance_accounts_type, _ := c.GetInt64("balance_accounts_type") social_type, _ := c.GetInt64("social_type") psn_type, _ := c.GetInt64("psn_type") //reg_type, _ := c.GetInt64("p_type") med_type, _ := c.GetInt64("med_type") diagnosis_ids_arr := strings.Split(diagnosis_ids, "-") 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() record, _ := service.GetLastHospitalRecord(id, adminInfo.CurrentOrgId) if record.ID != 0 { if record.InHospitalStatus == 1 && record.OutHospitalStatus != 1 { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHospitalExistDataException) return } } var patient service.Patients if id == 0 { patient, _ = service.GetPatientByIDCard(id_card_no, adminInfo.CurrentOrgId) } else { patient, _ = service.GetPatientByIDTwo(adminInfo.CurrentOrgId, id) } diagnosisConfig, _ := service.FindDiagnoseByIds(diagnosis_ids_arr) sickConfig, _ := service.FindSickById(sick_type) departmentInfo, _ := service.GetDepartMentDetail(department) miConfig, _ := service.FindMedicalInsuranceInfo(adminInfo.CurrentOrgId) role, _ := service.GetAdminUserInfoByID(adminInfo.CurrentOrgId, admin_user_id) result := service.ZHGdyb1101(patient.IdCardNo, miConfig.OrgName, role.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, id_card_type, "", certificates, name) doctorInfo, _ := service.GetAdminUserInfoByID(adminInfo.CurrentOrgId, doctor) deviceNumber, _ := service.GetDeviceNumberByID(adm_bed, adminInfo.CurrentOrgId) 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 //} var res2 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) res2.Infcode = Infcode res2.ErrMsg = resTwo10265.ErrMsg res2.Output = resTwo10265.Output res2.InfRefmsgid = resTwo10265.InfRefmsgid res2.RespondTime = resTwo10265.RespondTime res2.WarnInfo = resTwo10265.WarnInfo } else { if err := json.Unmarshal(userJSONBytes, &res2); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } //InsuplcAdmdvs = res2.Output. if social_type != 0 { } else { } Iinfos, _ := json.Marshal(res2.Output.Iinfo) infoStr := string(Iinfos) var rf []*ResultFive json.Unmarshal([]byte(infoStr), &rf) var insutypes []*ResultFive var insutype string var insuplc_admdvs 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" } if len(insutypes) == 2 { insutype = strconv.FormatInt(social_type, 10) } for _, item := range rf { if item.Insutype == insutype { insuplc_admdvs = item.InsuplcAdmdvs } } if res2.Infcode == 0 { //var insutypes []string // //var insutype string //var is390 int = 0 //var is310 int = 0 //for _, item := range res2.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" //} 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(id, 10) timeFormatOne := tempTime.Format("2006-01-02 15:04:05") var struct2401 service.Struct2401 struct2401.PsnNo = res2.Output.Baseinfo.PsnNo struct2401.Insutype = insutype struct2401.MdtrtCertType = "02" struct2401.MdtrtCertNo = res2.Output.Baseinfo.Certno if miConfig.Code == "H15049901371" { if med_type == 14 { struct2401.MedType = "990502" } else if med_type == 11 { struct2401.MedType = "11" } } else { struct2401.MedType = strconv.FormatInt(int64(med_type), 10) } struct2401.IptNo = ipt_otp_no struct2401.AtddrNo = strconv.FormatInt(int64(doctorInfo.AdminUserId), 10) struct2401.ChfpdrName = doctorInfo.UserName struct2401.AdmDiagDscr = diagnosisConfig[0].ClassName struct2401.AdmDeptCodg = strconv.FormatInt(int64(departmentInfo.ID), 10) struct2401.AdmDeptName = departmentInfo.Name struct2401.AdmBed = deviceNumber.Number struct2401.AdmBed = "待定" struct2401.DscgMaindiagName = diagnosisConfig[0].ClassName struct2401.DscgMaindiagCode = diagnosisConfig[0].CountryCode struct2401.Begntime = start_time struct2401.DiseCodg = sickConfig.CountryCode struct2401.DiseName = sickConfig.ClassName var dises []service.DiseinfoStruct for index, item := range diagnosisConfig { var dise service.DiseinfoStruct dise.PsnNo = res2.Output.Baseinfo.PsnNo dise.DiagType = "1" if index == 0 { dise.MaindiagFlag = "1" } else { dise.MaindiagFlag = "2" } dise.DiagSrtNo = strconv.FormatInt(int64(index), 10) dise.DiseDorName = doctorInfo.UserName dise.DiagCode = item.CountryCode dise.DiagName = item.ClassName dise.DiagDept = departmentInfo.Name dise.DiseDorNo = strconv.FormatInt(int64(doctorInfo.AdminUserId), 10) dise.DiagTime = timeFormatOne dises = append(dises, dise) } struct2401.Diseinfo = dises result := service.ZHGdyb2401(struct2401, miConfig.SecretKey, miConfig.OrgName, miConfig.Code, role.UserName, insuplc_admdvs, miConfig.MdtrtareaAdmvs) 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 ResultThree var resThree10265 ResultThree10265 if miConfig.Code == "H15049901371" { if err := json.Unmarshal(userJSONBytes, &resThree10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } Infcode, _ := strconv.ParseInt(resThree10265.Infcode, 10, 64) res.Infcode = Infcode res.ErrMsg = resThree10265.ErrMsg res.Output = resThree10265.Output res.InfRefmsgid = resThree10265.InfRefmsgid res.RespondTime = resThree10265.RespondTime } else { if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } if res.Infcode == 0 { Iinfos, _ := json.Marshal(res2.Output.Iinfo) Idetinfos, _ := json.Marshal(res2.Output.Idetinfo) infoStr := string(Iinfos) idetinfoStr := string(Idetinfos) inHospital := &models.HisHospitalCheckRecord{ PatientId: id, Name: name, MedicalTreatmentType: med_type, RecordDate: recordDateTime, IdCardNo: id_card_no, AdminUserId: admin_user_id, Departments: department, UserOrgId: adminInfo.CurrentOrgId, Status: 1, Ctime: time.Now().Unix(), Mtime: time.Now().Unix(), Number: res.Output.Result.MdtrtID, Doctor: doctor, PsnNo: res2.Output.Baseinfo.PsnNo, PsnCertType: res2.Output.Baseinfo.PsnCertType, Certno: res2.Output.Baseinfo.Certno, PsnName: res2.Output.Baseinfo.PsnName, Gend: res2.Output.Baseinfo.Gend, Naty: res2.Output.Baseinfo.Naty, MedType: med_type, InsutypeType: insutype, Brdy: res2.Output.Baseinfo.Brdy, Iinfo: infoStr, Idetinfo: idetinfoStr, IptOtpNo: ipt_otp_no, AdmBed: adm_bed, IdCardType: id_card_type, Diagnosis: diagnosis_ids, SickType: sick_type, MdtrtCertType: "02", InHosptialTime: start_time, OutHosptialTime: "", InHospitalStatus: 1, Certificates: certificates, Phone: phone, BalanceAccountsType: balance_accounts_type, PsnType: psn_type, InsuplcAdmdvs: insuplc_admdvs, } service.CreateHospitalRecord(inHospital) c.ServeSuccessJSON(map[string]interface{}{ "msg": "办理入院成功", "info": inHospital, }) } else { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res.ErrMsg, }) } } else { c.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res2.ErrMsg, }) return } } func (this *ZHHisApiController) GetZHOutHospitalCheck() { id, _ := this.GetInt64("id") patient_id, _ := this.GetInt64("patient_id") admin_user_id, _ := this.GetInt64("admin_user_id") record_time := this.GetString("record_time") adminInfo := this.GetAdminUserInfo() miConfig, _ := service.FindMedicalInsuranceInfo(adminInfo.CurrentOrgId) role, _ := service.GetAdminUserInfoByID(adminInfo.CurrentOrgId, admin_user_id) record, _ := service.GetInHospitalRecord(id) if record.ID == 0 { this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeInHospitalNoExistDataException) return } 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 { this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } recordDateTime := theTime.Unix() var patient service.Patients if patient_id == 0 { patient, _ = service.GetPatientByIDCard(record.IdCardNo, adminInfo.CurrentOrgId) } else { patient, _ = service.GetPatientByIDTwo(adminInfo.CurrentOrgId, id) } fmt.Println(patient) diagnosis_ids_arr := strings.Split(record.Diagnosis, "-") diagnosisConfig, _ := service.FindDiagnoseByIds(diagnosis_ids_arr) departmentInfo, _ := service.GetDepartMentDetail(record.Departments) doctorInfo, _ := service.GetAdminUserInfoByID(adminInfo.CurrentOrgId, record.Doctor) //deviceNumber, _ := service.GetDeviceNumberByID(record.AdmBed, adminInfo.CurrentOrgId) sickConfig, _ := service.FindSickById(record.SickType) var struct2402 service.Struct2402 timestamp := time.Now().Unix() tempTime := time.Unix(timestamp, 0) //timeFormat := tempTime.Format("20060102150405") timeFormatOne := tempTime.Format("2006-01-02 15:04:05") struct2402.PsnNo = record.PsnNo struct2402.Insutype = record.InsutypeType struct2402.DscgWay = "1" struct2402.Endtime = timeFormatOne struct2402.DscgDeptName = departmentInfo.Number struct2402.DscgDeptCodg = strconv.FormatInt(int64(departmentInfo.ID), 10) struct2402.MdtrtId = record.Number var dises []service.Diseinfo2402Struct for index, item := range diagnosisConfig { var dise service.Diseinfo2402Struct dise.PsnNo = record.PsnNo dise.DiagType = "1" if index == 0 { dise.MaindiagFlag = "1" } else { dise.MaindiagFlag = "2" } dise.MdtrtId = record.Number dise.DiagSrtNo = strconv.FormatInt(int64(item.ID), 10) dise.DiseDorName = doctorInfo.UserName dise.DiagCode = item.CountryCode dise.DiagName = item.ClassName dise.DiagDept = departmentInfo.Name dise.DiseDorNo = strconv.FormatInt(int64(doctorInfo.AdminUserId), 10) dise.DiagTime = timeFormatOne dises = append(dises, dise) } struct2402.Diseinfo = dises struct2402.DiseName = sickConfig.ClassName struct2402.DiseCode = sickConfig.CountryCode result := service.ZHGdyb2402(struct2402, miConfig.OrgName, role.UserName, record.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, miConfig.Code) 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 ResultEmpty var resEmpty10265 ResultEmpty10265 if miConfig.Code == "H15049901371" { if err := json.Unmarshal(userJSONBytes, &resEmpty10265); err != nil { utils.ErrorLog("解析失败:%v", err) this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } Infcode, _ := strconv.ParseInt(resEmpty10265.Infcode, 10, 64) res.Infcode = Infcode res.RespondTime = resEmpty10265.RespondTime res.ErrMsg = resEmpty10265.ErrMsg res.Output = resEmpty10265.Output res.WarnMsg = resEmpty10265.WarnMsg } else { if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } if res.Infcode == 0 { record.OutHospitalStatus = 1 record.OutHosptialTime = struct2402.Endtime record.OutWay = 1 service.CreateHospitalRecord(&record) orders, _ := service.GetHisOrderInfoByNumberFour(record.Number) var total float64 for _, item := range orders { total = total + item.DetItemFeeSumamt } order := &models.HisOrder{ UserOrgId: adminInfo.CurrentOrgId, HisPatientId: record.ID, PatientId: record.PatientId, SettleAccountsDate: recordDateTime, Ctime: time.Now().Unix(), Mtime: time.Now().Unix(), Status: 1, Number: record.Number, Infcode: 0, WarnMsg: "", Cainfo: "", ErrMsg: "", RespondTime: "", InfRefmsgid: "", OrderStatus: 1, MdtrtId: record.Number, IsMedicineInsurance: 1, PType: 1, MedfeeSumamt: total, } err = service.CreateOrder(order) if err != nil { this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeCreatePreOrderException) return } this.ServeSuccessJSON(map[string]interface{}{ "msg": "出院成功", }) } else { this.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res.ErrMsg, }) } } func (c *ZHHisApiController) GetSettleInfo() { order_id, _ := c.GetInt64("order_id") patient_id, _ := c.GetInt64("patient_id") in_hospital_id, _ := c.GetInt64("in_hospital_id") admin_user_id, _ := c.GetInt64("admin_user_id") pay_way, _ := c.GetInt64("pay_way") 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") fapiao_code := c.GetString("fapiao_code") fapiao_number := c.GetString("fapiao_number") record, _ := service.GetInHospitalRecord(in_hospital_id) miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId) roles, _ := service.GetAdminUserInfoByID(c.GetAdminUserInfo().CurrentOrgId, admin_user_id) order, _ := service.GetHisOrderByID(order_id) allTotal := fmt.Sprintf("%.4f", order.MedfeeSumamt) var rf []*ResultFive json.Unmarshal([]byte(record.Iinfo), &rf) chrg_bchno := order.Number cert_no := record.Certno if record.ID == 0 { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError) return } if record.InHospitalStatus == 1 && record.OutHospitalStatus == 0 { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHospitalNoExistDataException) return } if record.IdCardType == 1 { } else { cert_no = record.Certno } var result string var src_resquest string result, src_resquest = service.ZHGdyb2304(record.PsnNo, record.Number, chrg_bchno, cert_no, record.InsutypeType, allTotal, miConfig.OrgName, roles.UserName, miConfig.Code, record.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, "0", record.IdCardType, 0, 0, 0, 0, record.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 ResultSeven var resSeven10265 ResultSeven10265 if miConfig.Code == "H15049901371" { if err := json.Unmarshal(userJSONBytes, &resSeven10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } Infcode, _ := strconv.ParseInt(resSeven10265.Infcode, 10, 64) res.Infcode = Infcode res.InfRefmsgid = resSeven10265.InfRefmsgid res.RespondTime = resSeven10265.RespondTime res.ErrMsg = resSeven10265.ErrMsg res.Output = resSeven10265.Output res.WarnMsg = resSeven10265.WarnMsg res.Cainfo = resSeven10265.Cainfo } else { 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: c.GetAdminUserInfo().CurrentOrgId, Ctime: time.Now().Unix(), Mtime: time.Now().Unix(), Number: chrg_bchno, ErrMsg: res.ErrMsg, Status: 1, PatientId: patient_id, RecordTime: time.Now().Unix(), 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.DiscountPrice = discount_price order.MedicalInsurancePrice = medical_insurance_price order.FaPiaoNumber = fapiao_number order.FaPiaoCode = fapiao_code order.PayWay = pay_way order.PayPrice = pay_price order.PayCardNo = pay_card_no order.PreferentialPrice = preferential_price order.RealityPrice = reality_price order.FoundPrice = found_price order.PrivatePrice = private_price 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.MedType = res.Output.Setlinfo.MedType 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.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 setlDetail, _ := json.Marshal(res.Output.Setldetail) detailStr := string(setlDetail) order.SetlDetail = detailStr err := service.UpdataOrderStatusTwo(chrg_bchno, c.GetAdminUserInfo().CurrentOrgId) err = service.UpDateOrder(order) if err == nil { c.ServeSuccessJSON(map[string]interface{}{ "msg": "结算成功", }) } else { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeAmountAccountException) return } } } func (c *ZHHisApiController) GetUploadInfo() { id, _ := c.GetInt64("id") record_time := c.GetString("record_time") in_hospital_id, _ := c.GetInt64("in_hospital_id") settle_accounts_type, _ := c.GetInt64("settle_accounts_type") 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 } recordDateTime := theTime.Unix() adminUser := c.GetAdminUserInfo() var prescriptions []*models.HisPrescription data := make(map[string]interface{}) if settle_accounts_type == 1 { //日结 prescriptions, _ = service.GetZHHisPrescription(adminUser.CurrentOrgId, id, recordDateTime) } else { //月结 start_time_str := c.GetString("start_time") end_time_str := c.GetString("end_time") timeLayout := "2006-01-02" loc, _ := time.LoadLocation("Local") theStartTime, err := time.ParseInLocation(timeLayout+" 15:04:05", start_time_str+" 00:00:00", loc) if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } recordStartTime := theStartTime.Unix() theEndTime, err := time.ParseInLocation(timeLayout+" 15:04:05", end_time_str+" 00:00:00", loc) if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } recordEndTime := theEndTime.Unix() prescriptions, _ = service.GetZHMonthHisPrescription(adminUser.CurrentOrgId, id, recordStartTime, recordEndTime) } roles, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, admin_user_id) record, _ := service.GetInHospitalRecord(in_hospital_id) if record.ID == 0 { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError) return } //if record.InHospitalStatus == 1 && record.OutHospitalStatus == 0 { // c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHospitalNoExistDataException) // return //} timestamp := time.Now().Unix() tempTime := time.Unix(timestamp, 0) timeFormat := tempTime.Format("20060102150405") chrgBchno := rand.Intn(100000) + 10000 chrg_bchno := timeFormat + strconv.FormatInt(int64(chrgBchno), 10) + strconv.FormatInt(record.PatientId, 10) miConfig, _ := service.FindMedicalInsuranceInfo(adminUser.CurrentOrgId) patientPrescription, _ := service.FindPatientPrescriptionInfo(adminUser.CurrentOrgId, id, recordDateTime) department, _ := service.GetDepartMentDetail(record.Departments) strconv.FormatInt(record.PatientId, 10) client := &http.Client{} data["psn_no"] = record.PsnNo data["mdtrt_id"] = record.Number data["chrg_bchno"] = chrg_bchno data["org_name"] = miConfig.OrgName data["doctor"] = roles.UserName data["doctor_id"] = strconv.FormatInt(roles.AdminUserId, 10) data["dept"] = strconv.FormatInt(department.ID, 10) data["fixmedins_code"] = miConfig.Code if (department.ID == 0 && adminUser.CurrentOrgId == 9919) || (department.ID == 0 && adminUser.CurrentOrgId == 10106) { data["dept_code"] = "15" } else { data["dept_code"] = department.Number } if miConfig.Code == "H15049901371" { if record.MedType == 14 { data["med_type"] = "990502" } else if record.MedType == 11 { data["med_type"] = strconv.FormatInt(record.MedType, 10) } } else { data["med_type"] = strconv.FormatInt(record.MedType, 10) } data["insuplc_admdvs"] = record.InsuplcAdmdvs data["mdtrtarea_admvs"] = miConfig.MdtrtareaAdmvs data["secret_key"] = miConfig.SecretKey var ids []int64 fmt.Println(data) for _, item := range prescriptions { ids = append(ids, item.ID) } config, _ := service.GetMedicalInsuranceConfig(adminUser.CurrentOrgId) if config.IsOpen == 1 { //对接了医保,走医保流程 var pagesize int = 100 var start int = 1 var stop int var pagecount int var curpage int var isSuccess bool = true var customs []*models.NewCustom for _, item := range prescriptions { if item.Type == 1 { //药品 for _, subItem := range item.HisDoctorAdviceInfo { if len(subItem.BaseDrugLib.MedicalInsuranceNumber) > 0 { //var randNum int //randNum = rand.Intn(10000) + 1000 cus := &models.NewCustom{ DetItemFeeSumamt: fmt.Sprintf("%.4f", subItem.Price*subItem.PrescribingNumber), Cut: fmt.Sprintf("%.4f", subItem.PrescribingNumber), FeedetlSn: subItem.FeedetlSn, Price: fmt.Sprintf("%.4f", subItem.Price), MedListCodg: subItem.BaseDrugLib.MedicalInsuranceNumber, HospApprFlag: subItem.BaseDrugLib.HospApprFlag, } customs = append(customs, cus) } } } if item.Type == 2 { //项目 for _, subItem := range item.HisPrescriptionProject { //var randNum int //randNum = rand.Intn(10000) + 1000 if subItem.Type == 2 { if len(subItem.HisProject.MedicalCode) > 0 { cnt, _ := strconv.ParseFloat(subItem.Count, 64) cus := &models.NewCustom{ DetItemFeeSumamt: fmt.Sprintf("%.4f", subItem.Price*cnt), Cut: fmt.Sprintf("%.4f", cnt), FeedetlSn: subItem.FeedetlSn, Price: fmt.Sprintf("%.4f", float64(subItem.Price)), MedListCodg: subItem.HisProject.MedicalCode, HospApprFlag: -1, } customs = append(customs, cus) } } else if subItem.Type == 3 { if len(subItem.GoodInfo.MedicalInsuranceNumber) > 0 { cnt, _ := strconv.ParseFloat(subItem.Count, 64) cus := &models.NewCustom{ DetItemFeeSumamt: fmt.Sprintf("%.4f", subItem.Price*cnt), Cut: fmt.Sprintf("%.4f", cnt), FeedetlSn: subItem.FeedetlSn, Price: fmt.Sprintf("%.4f", float64(subItem.Price)), MedListCodg: subItem.GoodInfo.MedicalInsuranceNumber, HospApprFlag: -1, } customs = append(customs, cus) } } } } for _, subItem := range item.HisAdditionalCharge { if len(subItem.XtHisAddtionConfig.Code) > 0 { cus := &models.NewCustom{ DetItemFeeSumamt: fmt.Sprintf("%.4f", subItem.Price*float64(subItem.Count)), Cut: fmt.Sprintf("%.4f", float64(subItem.Count)), FeedetlSn: subItem.FeedetlSn, Price: fmt.Sprintf("%.4f", float64(subItem.Price)), MedListCodg: subItem.XtHisAddtionConfig.Code, HospApprFlag: -1, } customs = append(customs, cus) } } } //总页数,向上取整,注意除之前要先转换类型为float64 pagecount = int(math.Ceil(float64(len(customs)) / float64(pagesize))) var ress []*ResultFour for curpage = 1; curpage <= pagecount; curpage++ { if curpage == 1 { start = 1 } else { start = (curpage-1)*pagesize + 1 } stop = curpage * pagesize if stop > len(customs) { stop = len(customs) } data["pre"] = customs[start-1 : stop] bytesData, _ := json.Marshal(data) req, _ := http.NewRequest("POST", "http://127.0.0.1:9532/"+"gdyb/zh/five", 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) var res ResultFour var resFour10265 ResultFour10265 if miConfig.Code == "H15049901371" { if err := json.Unmarshal(userJSONBytes, &resFour10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res.WarnMsg = resFour10265.WarnMsg res.Output = resFour10265.Output res.ErrMsg = resFour10265.ErrMsg res.RespondTime = resFour10265.RespondTime res.InfRefmsgid = resFour10265.InfRefmsgid Infcode, _ := strconv.ParseInt(resFour10265.Infcode, 10, 64) res.Infcode = Infcode } else { if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } if res.Infcode == 0 { ress = append(ress, &res) } 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": "上传明细错误,请联系his厂商", }) return } } if isSuccess == true { if settle_accounts_type == 1 { for _, subItem := range ress { for _, item := range subItem.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 } info := &models.HisOrderInfo{ OrderNumber: record.Number, FeedetlSn: item.FeedetlSn, UploadDate: time.Now().Unix(), AdviceId: advice_id, DetItemFeeSumamt: item.DetItemFeeSumamt, Cnt: item.Cnt, Pric: float64(item.Pric), PatientId: record.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: record.ID, OrderId: 0, ProjectId: project_id, Type: types, SettleType: settle_accounts_type, } service.CreateOrderInfo(info) } } err := service.UpDatePrescriptionOrderStatus(adminUser.CurrentOrgId, ids) if err == nil { c.ServeSuccessJSON(map[string]interface{}{ "msg": "上传费用明细成功", }) return } else { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeSystemError) return } } else { for _, subItem := range ress { for _, item := range subItem.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 } info := &models.HisOrderInfo{ OrderNumber: record.Number, FeedetlSn: item.FeedetlSn, UploadDate: time.Now().Unix(), AdviceId: advice_id, DetItemFeeSumamt: item.DetItemFeeSumamt, Cnt: item.Cnt, Pric: float64(item.Pric), PatientId: record.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: record.ID, ProjectId: project_id, Type: types, SettleType: settle_accounts_type, } service.CreateOrderInfo(info) } } service.UpDatePrescriptionOrderStatus(adminUser.CurrentOrgId, ids) service.UpDatePrescriptionNumber(adminUser.CurrentOrgId, ids, record.Number) service.UpDatePrescriptionInfoNumber(adminUser.CurrentOrgId, patientPrescription.PatientId, record.Number, recordDateTime) c.ServeSuccessJSON(map[string]interface{}{ "msg": "上传费用明细成功", }) } } } } func (c *ZHHisApiController) ZHRefund() { 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) record, _ := service.GetInHospitalRecordByNumber(order.MdtrtId) roles, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, admin_user_id) miConfig, _ := service.FindMedicalInsuranceInfo(adminUser.CurrentOrgId) config, _ := service.GetMedicalInsuranceConfig(adminUser.CurrentOrgId) if config.IsOpen == 1 { //对接了医保,走医保流程 result, src_resquest := service.Gdyb2305(order.PsnNo, order.MdtrtId, order.SetlId, miConfig.OrgName, roles.UserName, miConfig.SecretKey, miConfig.Code, record.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs) 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 ResultSixteen var resSixteen ResultSixteen10265 if miConfig.Code == "H15049901371" { if err := json.Unmarshal(userJSONBytes, &resSixteen); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } res.Cainfo = resSixteen.Cainfo res.WarnMsg = resSixteen.WarnMsg res.Output = resSixteen.Output res.ErrMsg = resSixteen.ErrMsg res.RespondTime = resSixteen.RespondTime Infcode, _ := strconv.ParseInt(resSixteen.Infcode, 10, 64) res.Infcode = Infcode } else { if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } if res.Infcode == 0 { err := service.UpdataOrderStatusThree(order_id, order.Number, adminUser.CurrentOrgId, src_resquest, result) if err == nil { c.ServeSuccessJSON(map[string]interface{}{ "msg": "退费成功", }) } else { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else { c.ServeSuccessJSON(map[string]interface{}{ "code": -10, "msg": res.ErrMsg, }) } } else { err := service.UpdataOrderStatus(order_id, order.Number, adminUser.CurrentOrgId, "", "") if err == nil { c.ServeSuccessJSON(map[string]interface{}{ "msg": "退费成功", }) } else { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } } func (c *ZHHisApiController) ZHRefundDetail() { patient_id, _ := c.GetInt64("patient_id") his_patient_id, _ := c.GetInt64("his_patient_id") record_time := c.GetString("record_time") settle_accounts_type, _ := c.GetInt64("settle_accounts_type") 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 } recordDateTime := theTime.Unix() adminUser := c.GetAdminUserInfo() theTimeTwo, err := time.ParseInLocation(timeLayout+" 15:04:05", record_time+" 23:59:59", loc) if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } recordDateTimeTwo := theTimeTwo.Unix() //var prescriptions []*models.HisPrescription miConfig, _ := service.FindMedicalInsuranceInfo(adminUser.CurrentOrgId) roles, _ := service.GetAdminUserInfoByID(adminUser.CurrentOrgId, admin_user_id) if settle_accounts_type == 1 { //日结 infos, _ := service.GetZHHisUploadOrderInfo(adminUser.CurrentOrgId, patient_id, recordDateTime, recordDateTimeTwo) record, _ := service.GetInHospitalRecord(his_patient_id) var isSuccess bool = true for _, item := range infos { result := service.Gdyb2302(record.PsnNo, record.Number, miConfig.OrgName, roles.UserName, record.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, miConfig.Code, item.FeedetlSn, 1) 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 ResultEmpty var resEmpty10265 ResultEmpty10265 if miConfig.Code == "H15049901371" { if err := json.Unmarshal(userJSONBytes, &resEmpty10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } Infcode, _ := strconv.ParseInt(resEmpty10265.Infcode, 10, 64) res2.Infcode = Infcode res2.RespondTime = resEmpty10265.RespondTime res2.ErrMsg = resEmpty10265.ErrMsg res2.Output = resEmpty10265.Output res2.WarnMsg = resEmpty10265.WarnMsg } else { if err := json.Unmarshal(userJSONBytes, &res2); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } if res2.Infcode == -1 { isSuccess = false } } if isSuccess { err := service.UpDateOrderInfoStatus(patient_id, recordDateTime, adminUser.CurrentOrgId, recordDateTimeTwo) if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } err1 := service.UpDatePrescriptionOrderStatusTwo(patient_id, recordDateTime, adminUser.CurrentOrgId) if err1 != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } c.ServeSuccessJSON(map[string]interface{}{ "msg": "撤销明细成功", }) } } else { //prescriptions, _ = service.GetZHMonthHisUploadPrescription(adminUser.CurrentOrgId, patient_id, recordDateTime) //var order models.HisOrder //order, _ = service.GetHisOrderByID(order_id) //record, _ := service.GetInHospitalRecordByNumber(order.MdtrtId) record, _ := service.GetInHospitalRecord(his_patient_id) config, _ := service.GetMedicalInsuranceConfig(adminUser.CurrentOrgId) if config.IsOpen == 1 { //对接了医保,走医保流程 result := service.Gdyb2302(record.PsnNo, record.Number, miConfig.OrgName, roles.UserName, record.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs, miConfig.SecretKey, miConfig.Code, "0000", 0) 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 ResultEmpty var resEmpty10265 ResultEmpty10265 if miConfig.Code == "H15049901371" { if err := json.Unmarshal(userJSONBytes, &resEmpty10265); err != nil { utils.ErrorLog("解析失败:%v", err) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } Infcode, _ := strconv.ParseInt(resEmpty10265.Infcode, 10, 64) res2.Infcode = Infcode res2.RespondTime = resEmpty10265.RespondTime res2.ErrMsg = resEmpty10265.ErrMsg res2.Output = resEmpty10265.Output res2.WarnMsg = resEmpty10265.WarnMsg } else { 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, record.Number, adminUser.CurrentOrgId, "", result) if err == nil { c.ServeSuccessJSON(map[string]interface{}{ "msg": "退费成功", }) } else { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } else { c.ServeSuccessJSON(map[string]interface{}{ "code": -10, "msg": res2.ErrMsg, }) } } else { err := service.UpdataOrderStatus(order_id, record.Number, adminUser.CurrentOrgId, "", "") if err == nil { c.ServeSuccessJSON(map[string]interface{}{ "msg": "退费成功", }) } else { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } } } func (this *ZHHisApiController) GetZHOutHospitalUnCheck() { id, _ := this.GetInt64("id") admin_user_id, _ := this.GetInt64("admin_user_id") adminInfo := this.GetAdminUserInfo() miConfig, _ := service.FindMedicalInsuranceInfo(adminInfo.CurrentOrgId) role, _ := service.GetAdminUserInfoByID(adminInfo.CurrentOrgId, admin_user_id) record, _ := service.GetInHospitalRecord(id) if record.ID == 0 { this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeInHospitalNoExistDataException) return } result := service.ZHGdyb2405(record.Number, record.PsnNo, miConfig.SecretKey, miConfig.OrgName, miConfig.Code, role.UserName, record.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs) 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 ResultEmpty var resEmpty10265 ResultEmpty10265 if miConfig.Code == "H15049901371" { if err := json.Unmarshal(userJSONBytes, &resEmpty10265); err != nil { utils.ErrorLog("解析失败:%v", err) this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } Infcode, _ := strconv.ParseInt(resEmpty10265.Infcode, 10, 64) res.Infcode = Infcode res.RespondTime = resEmpty10265.RespondTime res.ErrMsg = resEmpty10265.ErrMsg res.Output = resEmpty10265.Output res.WarnMsg = resEmpty10265.WarnMsg } else { if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } if res.Infcode == 0 { record.OutHospitalStatus = 0 service.CreateHospitalRecord(&record) service.UpdataOrderStatusByNumber(record.Number) this.ServeSuccessJSON(map[string]interface{}{ "msg": "撤销出院成功", }) } else { this.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res.ErrMsg, }) } } func (this *ZHHisApiController) GetZHInHospitalUnCheck() { id, _ := this.GetInt64("id") admin_user_id, _ := this.GetInt64("admin_user_id") adminInfo := this.GetAdminUserInfo() miConfig, _ := service.FindMedicalInsuranceInfo(adminInfo.CurrentOrgId) role, _ := service.GetAdminUserInfoByID(adminInfo.CurrentOrgId, admin_user_id) record, _ := service.GetInHospitalRecord(id) if record.ID == 0 { this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeInHospitalNoExistDataException) return } result := service.ZHGdyb2404(record.Number, record.PsnNo, miConfig.SecretKey, miConfig.OrgName, miConfig.Code, role.UserName, record.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs) 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 ResultEmpty var resEmpty10265 ResultEmpty10265 if miConfig.Code == "H15049901371" { if err := json.Unmarshal(userJSONBytes, &resEmpty10265); err != nil { utils.ErrorLog("解析失败:%v", err) this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } Infcode, _ := strconv.ParseInt(resEmpty10265.Infcode, 10, 64) res.Infcode = Infcode res.RespondTime = resEmpty10265.RespondTime res.ErrMsg = resEmpty10265.ErrMsg res.Output = resEmpty10265.Output res.WarnMsg = resEmpty10265.WarnMsg } else { if err := json.Unmarshal(userJSONBytes, &res); err != nil { utils.ErrorLog("解析失败:%v", err) this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException) return } } if res.Infcode == 0 { record.Status = 0 service.CreateHospitalRecord(&record) this.ServeSuccessJSON(map[string]interface{}{ "msg": "撤销入院成功", }) } else { this.ServeSuccessJSON(map[string]interface{}{ "failed_code": -10, "msg": res.ErrMsg, }) } }