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"
//"github.com/tjfoc/gmsm/sm3"
"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/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/delete_xs_bg_two", &HisApiController{}, "get:DeleteXSandBGTwo")
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.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 && 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") {
}
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) 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")
// //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.FindUploadHisAdviceDocAdvice(c.GetAdminUserInfo().CurrentOrgId, patient_id, stime, etime)
// var flows []*models.DrugFlow
// for _, item := range advicelist {
// flow, _ := service.GetNewUploadDrugFlowInfoByPatientTwo(patient_id, item.ID, times, 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 && 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 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")
//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.ID, 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 == 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")
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) 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 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"
}
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"
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 {
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)
}
}
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)
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
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
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
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
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
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)
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) Get2505() {
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 == "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) {
////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")
//psn_info, _ := service.GetPsnByPatientId(patient_id)
//utils.ErrorLog("解析失败:%v", psn_info)
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 == "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 == "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 == "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.224.18:9001/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 == "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 == "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 {
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 == "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 == "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" {
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 {
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 {
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"
}
}
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 == "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
if strings.Contains(his.InsuplcAdmdvs, "3412") {
res.Output.Setlinfo.ClrType = "11"
} else {
res.Output.Setlinfo.ClrType = "9903"
}
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
} 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
if strings.Contains(his.InsuplcAdmdvs, "3412") {
res.Output.Setlinfo.ClrType = "11"
} else {
res.Output.Setlinfo.ClrType = "9903"
}
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
} 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 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 == "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 == "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" {
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 {
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 {
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
}
}
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 == "361025" {
var result string
var request_log string
if his.IdCardType == 2 {
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
}
}
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 {
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 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
psn_info, _ := service.GetPsnByPatientId(his.PatientId)
allTotal = fmt.Sprintf("%.2f", total_two)
if miConfig.Code == "H44030501364" || miConfig.Code == "H44030903432" {
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", "预结算")
}
} 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 {
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 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 == "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 == "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 == "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 == "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 == "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
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.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 == "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 == "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
}