예제 #1
0
        /// <summary>
        /// 读卡获取个人基础资料
        /// </summary>
        /// <param name="param"></param>
        /// <param name="baseParam"></param>
        public ApiJsonResultData ReadCardUserInfo(string param, HisBaseParam baseParam)
        {
            var resultData = new ApiJsonResultData {
                Success = true
            };
            var data = new ResidentUserInfoJsonDto();

            try
            {
                var iniFile = new IniFile();
                //端口号
                var port = iniFile.GetIni();
                Logs.LogWrite(new LogParam()
                {
                    Params = param,
                    Msg    = JsonConvert.SerializeObject(baseParam)
                });
                if (!string.IsNullOrWhiteSpace(param) == false)
                {
                    throw  new  Exception("密码不能为空!!!");
                }
                var loginData = MedicalInsuranceDll.ConnectAppServer_cxjb(baseParam.Account, baseParam.Pwd);
                if (loginData != 1)
                {
                    throw new Exception("医保登陆失败!!!");
                }
                int result = MedicalInsuranceDll.ReadCardInfo_cxjb(port, param);
                if (result == 1)
                {
                    data = XmlHelp.DeSerializerModel(new ResidentUserInfoJsonDto(), true);
                    if (data.ReturnState == "1")
                    {
                        var userInfoDto = UserInfoToDto(data);
                        resultData.Data = JsonConvert.SerializeObject(userInfoDto);
                        Logs.LogWriteData(new LogWriteDataParam()
                        {
                            JoinJson   = JsonConvert.SerializeObject(param),
                            ReturnJson = JsonConvert.SerializeObject(userInfoDto),
                            OperatorId = baseParam.OperatorId
                        });
                    }
                    else
                    {
                        throw new Exception(data.Msg);
                    }
                }
            }
            catch (Exception e)
            {
                resultData.Success = false;
                resultData.Message = e.Message;
                Logs.LogWrite(new LogParam()
                {
                    Msg          = e.Message + "error:" + e.StackTrace,
                    OperatorCode = baseParam.OperatorId,
                    Params       = Logs.ToJson(param),
                    ResultData   = Logs.ToJson(data)
                });
            }
            return(resultData);
        }
예제 #2
0
        // <summary>
        // 读卡获取信息
        // </summary>
        ///<param name = "paramStr"></param >
        /// <param name="baseParam"></param>
        public ApiJsonResultData ReadCardInfo(string paramStr, HisBaseParam baseParam)
        {
            var param      = JsonConvert.DeserializeObject <ReadCardInfoParam>(paramStr);
            var resultData = new ApiJsonResultData {
                Success = true
            };
            //姓名
            var patientName = new byte[1024];
            //性别
            var patientSex = new byte[1024];
            //出生日期
            var birthday = new byte[1024];

            //身份证号
            var idCardNo = new byte[1024];
            //联系地址
            var contactAddress = new byte[1024];
            //职工医保账户余额
            var workersInsuranceBalance = new byte[1024];
            //职工卡号
            var workersCardNo = new byte[1024];
            //返回状态
            var resultState = new byte[1024];
            //消息
            var msg      = new byte[1024];
            var userData = new GetResidentUserInfoDto();

            try
            {
                if (param == null)
                {
                    throw new Exception("职工结算入参不能为空!!!");
                }
                if (string.IsNullOrWhiteSpace(baseParam.Account))
                {
                    throw new Exception("医保账户不能为空!!!");
                }
                if (string.IsNullOrWhiteSpace(baseParam.Pwd))
                {
                    throw new Exception("医保账户密码不能为空!!!");
                }
                if (string.IsNullOrWhiteSpace(param.CardPwd))
                {
                    throw new Exception("卡密码不能为空!!!");
                }
                var loginData = MedicalInsuranceDll.ConnectAppServer_cxjb(baseParam.Account, baseParam.Pwd);
                if (loginData != 1)
                {
                    throw new Exception("医保登陆失败!!!");
                }
                //居民职工
                if (param.InsuranceType == 0)
                {
                    var readCardData = MedicalInsuranceDll.ReadCardInfo_cxjb("1", param.CardPwd);
                    if (readCardData != 1)
                    {
                        throw new Exception("读卡失败!!!");
                    }
                    userData = XmlHelp.DeSerializerModel(new Model.Dto.GetResidentUserInfoDto(), true);
                    //数据日志存入
                    param.CardPwd = "******";
                    Logs.LogWriteData(new LogWriteDataParam()
                    {
                        JoinJson   = JsonConvert.SerializeObject(param),
                        ReturnJson = JsonConvert.SerializeObject(userData),
                        OperatorId = baseParam.OperatorId
                    });
                    if (userData.ReturnState == "1")
                    {
                        resultData.Data = JsonConvert.SerializeObject(userData);
                    }
                    else
                    {
                        throw new Exception(userData.Msg);
                    }
                }
            }
            catch (Exception e)
            {
                resultData.Success = false;
                resultData.Message = e.Message;
                Logs.LogWrite(new LogParam()
                {
                    Msg          = e.Message,
                    OperatorCode = baseParam.OperatorId,
                    Params       = Logs.ToJson(param),
                    ResultData   = Logs.ToJson(userData)
                });
            }
            return(resultData);
        }