Пример #1
0
        /// <summary>
        /// 取消门诊月结汇总
        /// </summary>
        /// <param name="param"></param>
        public ApiJsonResultData CancelMonthlyHospitalization(string param, HisBaseParam baseParam)
        {
            var resultData = new ApiJsonResultData {
                Success = true
            };

            try
            {
                var xmlStr = XmlHelp.SaveXmlStr(param);
                if (!xmlStr)
                {
                    throw new Exception("取消门诊月结汇总保存参数出错");
                }
                var loginData = MedicalInsuranceDll.ConnectAppServer_cxjb(baseParam.Account, baseParam.Pwd);
                if (loginData != 1)
                {
                    throw new Exception("医保登陆失败!!!");
                }
                int result = MedicalInsuranceDll.CallService_cxjb("TPYP215");
                if (result != 1)
                {
                    throw new Exception("取消门诊月结汇总执行出错!!!");
                }
                if (result == 1)
                {
                    var resultStr = XmlHelp.SerializerModelJson();
                    Logs.LogWriteData(new LogWriteDataParam()
                    {
                        JoinJson   = param,
                        ReturnJson = resultStr,
                        OperatorId = baseParam.OperatorId
                    });
                    resultData.Data = resultStr;
                }
            }
            catch (Exception e)
            {
                resultData.Success = false;
                resultData.Message = e.Message;
            }
            MedicalInsuranceDll.DisConnectAppServer_cxjb("TPYP215");
            return(resultData);
        }
Пример #2
0
        /// <summary>
        /// 医保操作
        /// </summary>
        /// <param name="param"></param>
        /// <param name="baseParam"></param>
        /// <param name="code">医保编码</param>
        /// <param name="tipsMsg">提示信息</param>
        /// <returns></returns>
        private ApiJsonResultData WorkerMedicalInsuranceOperation(string param, HisBaseParam baseParam, string code, string tipsMsg)
        {
            var resultData = new ApiJsonResultData {
                Success = true
            };

            try
            {
                Logs.LogWrite(new LogParam()
                {
                    Params = param,
                    Msg    = JsonConvert.SerializeObject(baseParam)
                });
                var xmlStr = XmlHelp.SaveXmlStr(param);
                if (!xmlStr)
                {
                    throw new Exception(tipsMsg + "保存参数出错!!!");
                }
                var loginData = MedicalInsuranceDll.ConnectAppServer_cxjb(baseParam.Account, baseParam.Pwd);
                if (loginData != 1)
                {
                    throw new Exception(tipsMsg + "医保执行失败!!!");
                }
                int result = MedicalInsuranceDll.CallService_cxjb(code);
                if (result == 1)
                {
                    var resultStr = XmlHelp.SerializerModelJson();
                    Logs.LogWriteData(new LogWriteDataParam()
                    {
                        JoinJson   = param,
                        ReturnJson = resultStr,
                        OperatorId = baseParam.OperatorId
                    });
                    resultData.Data = resultStr;
                }
            }
            catch (Exception e)
            {
                resultData.Success = false;
                resultData.Message = e.Message;
            }
            return(resultData);
        }
Пример #3
0
        /// <summary>
        /// 职工结算
        /// </summary>
        /// <param name="paramc"></param>
        /// <param name="baseParam"></param>
        /// <returns></returns>
        public ApiJsonResultData WorkerHospitalizationSettlement(string paramc, HisBaseParam baseParam)
        {
            var resultValue = new ApiJsonResultData {
                Success = true
            };

            try
            {
                Logs.LogWrite(new LogParam()
                {
                    Params = paramc,
                    Msg    = JsonConvert.SerializeObject(baseParam)
                });
                var loginData = MedicalInsuranceDll.ConnectAppServer_cxjb(baseParam.Account, baseParam.Pwd);
                var param     = JsonConvert.DeserializeObject <WorkerHospitalizationSettlementParam>(paramc);

                //社保住院号
                var documentNo = new byte[1024];
                //发生费用金额
                var totalAmount = new byte[1024];
                //基本统筹支付
                var basicOverallPay = new byte[1024];
                //补充医疗保险支付金额
                var supplementPayAmount = new byte[1024];
                //专项基金支付金额
                var specialFundPayAmount = new byte[1024];
                //公务员补贴
                var civilServantsSubsidies = new byte[1024];
                //公务员补助
                var civilServantsSubsidy = new byte[1024];
                //其它支付金额
                var otherPaymentAmount = new byte[1024];
                //账户支付
                var accountPayment = new byte[1024];
                //现金支付
                var cashPayment = new byte[1024];
                //起付金额
                var paidAmount = new byte[1024];
                // 备注
                var remark = new byte[1024];
                //返回状态
                var resultState = new byte[1024];
                //消息
                var msg = new byte[1024];
                MedicalInsuranceDll.WorkerHospitalizationSettlement
                    (param.OrganizationCode,
                    param.MedicalInsuranceHospitalizationNo,
                    param.AdministrativeArea,
                    param.IsHospitalizationFrequency,
                    param.Operators,
                    param.LeaveHospitalDate,
                    param.LeaveHospitalState,
                    param.AdmissionMainDiagnosisIcd10,
                    param.DiagnosisIcd10Two,
                    param.DiagnosisIcd10Three,
                    param.LeaveHospitalMainDiagnosis,
                    totalAmount,
                    basicOverallPay,
                    supplementPayAmount,
                    specialFundPayAmount,
                    civilServantsSubsidies,
                    civilServantsSubsidy,
                    otherPaymentAmount,
                    accountPayment,
                    cashPayment,
                    paidAmount,
                    documentNo,
                    remark,
                    resultState,
                    msg
                    );
                if (CommonHelp.StrToTransCoding(resultState) != "1")
                {
                    throw new Exception(CommonHelp.StrToTransCoding(msg));
                }
                var resultData = new WorkerHospitalizationPreSettlementDto()
                {
                    DocumentNo             = CommonHelp.StrToTransCoding(documentNo),
                    TotalAmount            = Convert.ToDecimal(CommonHelp.StrToTransCoding(totalAmount)),
                    BasicOverallPay        = Convert.ToDecimal(CommonHelp.StrToTransCoding(basicOverallPay)),
                    SupplementPayAmount    = Convert.ToDecimal(CommonHelp.StrToTransCoding(supplementPayAmount)),
                    SpecialFundPayAmount   = Convert.ToDecimal(CommonHelp.StrToTransCoding(specialFundPayAmount)),
                    CivilServantsSubsidies = Convert.ToDecimal(CommonHelp.StrToTransCoding(civilServantsSubsidies)),
                    CivilServantsSubsidy   = Convert.ToDecimal(CommonHelp.StrToTransCoding(civilServantsSubsidy)),
                    OtherPaymentAmount     = Convert.ToDecimal(CommonHelp.StrToTransCoding(otherPaymentAmount)),
                    AccountPayment         = Convert.ToDecimal(CommonHelp.StrToTransCoding(accountPayment)),
                    CashPayment            = Convert.ToDecimal(CommonHelp.StrToTransCoding(cashPayment)),
                    PaidAmount             = Convert.ToDecimal(CommonHelp.StrToTransCoding(paidAmount)),
                    Remark = CommonHelp.StrToTransCoding(cashPayment),
                };
                var infoEntity = GetUserInfoEntity(baseParam);
                resultValue.OtherInfo = infoEntity.WorkersInsuranceBalance.ToString();
                Logs.LogWriteData(new LogWriteDataParam()
                {
                    JoinJson   = JsonConvert.SerializeObject(param),
                    ReturnJson = JsonConvert.SerializeObject(resultData),
                    OperatorId = baseParam.OperatorId
                });
                resultValue.Data = JsonConvert.SerializeObject(resultData);
            }
            catch (Exception e)
            {
                resultValue.Success = false;
                resultValue.Message = e.Message;
            }
            return(resultValue);
        }
Пример #4
0
        /// <summary>
        /// 职工入院登记
        /// </summary>
        /// <param name="paramc"></param>
        /// <param name="baseParam"></param>
        /// <returns></returns>
        public ApiJsonResultData WorkerHospitalizationRegister(string paramc, HisBaseParam baseParam)
        {
            var resultValue = new ApiJsonResultData {
                Success = true
            };

            try
            {
                Logs.LogWrite(new LogParam()
                {
                    Params = paramc,
                    Msg    = JsonConvert.SerializeObject(baseParam)
                });
                var loginData = MedicalInsuranceDll.ConnectAppServer_cxjb(baseParam.Account, baseParam.Pwd);
                var param     = JsonConvert.DeserializeObject <WorKerHospitalizationRegisterParam>(paramc);
                WorkerHospitalizationRegisterDto resultData;
                //社保住院号
                var medicalInsuranceHospitalizationNo = new byte[1024];
                //审批编号
                var approvalNumber = new byte[1024];
                //年住院次数
                var yearHospitalizationNumber = new byte[1024];
                //统筹已付金额
                var overallPlanningAlreadyAmount = new byte[1024];
                //统筹可付金额
                var overallPlanningCanAmount = new byte[1024];
                //返回状态
                var resultState = new byte[1024];
                //消息
                var msg = new byte[1024];
                //  param.AdministrativeArea,
                MedicalInsuranceDll.HospitalizationRegister
                    (param.IdentityMark,
                    param.AfferentSign,
                    param.AdministrativeArea,
                    param.OrganizationCode,
                    param.MedicalCategory,
                    param.AdmissionDate,
                    param.AdmissionMainDiagnosisIcd10,
                    param.DiagnosisIcd10Two,
                    param.DiagnosisIcd10Three,
                    param.AdmissionMainDiagnosis,
                    param.InpatientArea,
                    param.BedNumber,
                    param.HospitalizationNo,
                    param.Operators,
                    medicalInsuranceHospitalizationNo,
                    approvalNumber,
                    yearHospitalizationNumber,
                    overallPlanningAlreadyAmount,
                    overallPlanningCanAmount,
                    resultState,
                    msg
                    );
                if (CommonHelp.StrToTransCoding(resultState) != "1")
                {
                    throw new Exception(CommonHelp.StrToTransCoding(msg));
                }
                resultData = new WorkerHospitalizationRegisterDto()
                {
                    MedicalInsuranceHospitalizationNo = CommonHelp.StrToTransCoding(medicalInsuranceHospitalizationNo),
                    ApprovalNumber               = CommonHelp.StrToTransCoding(approvalNumber),
                    YearHospitalizationNumber    = CommonHelp.StrToTransCoding(yearHospitalizationNumber),
                    OverallPlanningAlreadyAmount = CommonHelp.StrToTransCoding(overallPlanningAlreadyAmount),
                    OverallPlanningCanAmount     = CommonHelp.StrToTransCoding(overallPlanningCanAmount),
                };
                var resultStr = JsonConvert.SerializeObject(resultData);
                Logs.LogWriteData(new LogWriteDataParam()
                {
                    JoinJson   = JsonConvert.SerializeObject(resultData),
                    ReturnJson = resultStr,
                    OperatorId = baseParam.OperatorId
                });
                resultValue.Data = resultStr;
            }
            catch (Exception e)
            {
                resultValue.Success = false;
                resultValue.Message = e.Message;
            }
            return(resultValue);
        }
Пример #5
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);
        }
Пример #6
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);
        }
Пример #7
0
        /// <summary>
        /// 获取个人基础资料
        /// </summary>
        /// <param name="param"></param>
        /// <param name="baseParam"></param>
        public ApiJsonResultData GetUserInfo(string param, HisBaseParam baseParam)
        {
            var resultData = new ApiJsonResultData {
                Success = true
            };
            var data = new ResidentUserInfoJsonDto();

            try
            {//
                var userInfoParam = new ResidentUserInfoParam()
                {
                    AfferentSign = baseParam.AfferentSign,
                    IdentityMark = baseParam.IdentityMark
                };
                Logs.LogWrite(new LogParam()
                {
                    Params = JsonConvert.SerializeObject(userInfoParam),
                    Msg    = JsonConvert.SerializeObject(baseParam)
                });
                var xmlStr = XmlHelp.SaveXmlEntity(userInfoParam);
                if (!xmlStr)
                {
                    throw new Exception("获取个人基础资料保存参数出错");
                }
                var loginData = MedicalInsuranceDll.ConnectAppServer_cxjb(baseParam.Account, baseParam.Pwd);
                if (loginData != 1)
                {
                    throw new Exception("医保登陆失败!!!");
                }
                int result = MedicalInsuranceDll.CallService_cxjb("CXJB001");
                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)
                });
            }
            MedicalInsuranceDll.DisConnectAppServer_cxjb("CXJB001");
            return(resultData);
        }
        /// <summary>
        /// 处方上传
        /// </summary>
        /// <returns></returns>
        public ApiJsonResultData PrescriptionUpload(PrescriptionUploadWebParam param, HisBaseParam baseParam)
        {   //选择性上次
            var resultData = new ApiJsonResultData();

            if (param.BusinessIdDetailList != null && param.BusinessIdDetailList.Any())
            {
                var queryParam = new InpatientInfoDetailQueryBasiclevelParam();
                queryParam.IdList = param.BusinessIdDetailList;

                var resultSaveData = HttpHelp.HttpPost(Logs.ToJson(queryParam), "InpatientInfoDetailQuery",
                                                       new List <OutpatientDetailQueryBasiclevelDto>());
                if (resultSaveData.Any())
                {
                    var uploadData = resultSaveData.OrderBy(c => c.Id).ToList();

                    var uploadParam = new PrescriptionUploadParam();
                    uploadParam.PI_ZHY = param.PI_ZHY;
                    uploadParam.PI_JBR = baseParam.EmpIDCode;
                    uploadParam.CFMX   = uploadData.Select(c => new PrescriptionUploadCFMX()
                    {
                        CO     = "0",
                        AKA072 = "0",
                        AKC229 = "0"
                    }).ToList();
                }
            }

            return(resultData);
        }
        public ApiJsonResultData HospitalizationModify(HospitalizationModifyWebParam param, HisBaseParam baseParam)
        {
            var resultData = new ApiJsonResultData();

            try
            {
                var result = HttpHelp.HttpPost(Logs.ToJson(param), "QueryInpatientInfo",
                                               new QueryInpatientInfoBasicLevelDto());

                var RegisterParam = new HospitalizationModifyParam()
                {
                    PI_TES     = param.PI_TES,
                    PI_HKXZ    = param.PI_HKXZ,
                    PI_RYRQ    = Convert.ToDateTime(result.入院日期).ToString("yyyyMMdd"),
                    PI_ICD10   = result.入院主诊断ICD10,
                    PI_ICD10_2 = result.入院次诊断ICD10,
                    PI_RYZD    = result.入院主诊断,
                    PI_ZYBQ    = result.入院科室,
                    PI_CWH     = result.入院床位,
                    PI_ZHY     = param.PI_ZYH,
                    PI_YYZYH   = param.PI_YYZYH,
                };
                //入院登记修改
                var RegisterData = Resident.HospitalizationModify(RegisterParam);
                if (RegisterData.PO_FHZ == "1")
                {
                    //1.2.3 医保信息回写至基层系统CXJB002
                    var hisMedicalInsuranceId  = Guid.NewGuid().ToString("N");
                    var DataAllBasiclevelParam = new SaveXmlDataServiceParam()
                    {
                        YbOrgCode      = baseParam.YbOrgCode,
                        OrgID          = baseParam.OrgID,
                        BID            = baseParam.BID,
                        EmpID          = baseParam.EmpID,
                        BsCode         = baseParam.BsCode,
                        TransKey       = baseParam.TransKey,
                        Participation  = Logs.ToJson(RegisterParam),
                        ResultData     = Logs.ToJson(RegisterData),
                        BusinessNumber = "CXJB003",
                    };
                    //CXJB001 存入基层
                    var SaveDataAll = HttpHelp.HttpPost(Logs.ToJson(DataAllBasiclevelParam),
                                                        "SaveMedicalInsuranceDataAll",
                                                        new ApiJsonResultData());
                    if (SaveDataAll.Success == false)
                    {
                        throw new Exception(SaveDataAll.Message);
                    }
                }
                else
                {
                    Logs.LogWrite(new LogParam()
                    {
                        Msg          = RegisterData.PO_MSG,
                        OperatorCode = baseParam.EmpID.ToString(),
                        Params       = Logs.ToJson(RegisterParam),
                        ResultData   = Logs.ToJson(RegisterData)
                    });
                    throw new Exception(RegisterData.PO_MSG);
                }
            }
            catch (Exception e)
            {
                resultData.Success = false;
                resultData.Message = e.Message;
            }

            return(resultData);
        }
        public ApiJsonResultData GetUserInfo()
        {
            var resultData = new ApiJsonResultData();
            //获取社保卡信息
            var hisBase = new HisBaseParam()
            {
                YbOrgCode = "003",
                OrgID     = Guid.NewGuid().ToString(),
                BID       = Guid.NewGuid().ToString(),
                EmpID     = "A2A4866484DC40F0A10FB7482603AABD",
                BsCode    = "003",
                TransKey  = Guid.NewGuid().ToString(),
            };
            //读取社保卡
            var Param = new UserInfoParam
            {
                PI_CRBZ = "1",
                PI_SFBZ = "513701199002124815"
            };

            try
            {
                var data = Resident.GetUserInfo(Param);
                if (data.PO_FHZ == "1")
                {
                    //查看当前病人是否有医保信息
                    var residentInfoParam = new ResidentInfoBasiclevelParam()
                    {
                        BusinessId = hisBase.BID,
                        IdCard     = data.PO_SFZH,
                        OrgCode    = hisBase.OrgID
                    };
                    var result = HttpHelp.HttpPost(Logs.ToJson(residentInfoParam), "QueryMedicalInsuranceResidentInfo",
                                                   new MedicalInsuranceResidentInfoBasiclevelDto());
                    if (result == null)
                    {//保存医保病人信息
                        var saveResidentInfoParam = new SaveMedicalInsuranceResidentInfoBasiclevelParam()
                        {
                            YbOrgCode      = hisBase.YbOrgCode,
                            BID            = hisBase.YbOrgCode,
                            BsCode         = hisBase.BsCode,
                            TransKey       = hisBase.TransKey,
                            EmpID          = hisBase.EmpID,
                            OrgID          = hisBase.OrgID,
                            BusinessId     = hisBase.BID,
                            ContentJson    = Logs.ToJson(residentInfoParam),
                            ResultDatajson = Logs.ToJson(data),
                            DataAllId      = Guid.NewGuid().ToString("N"),
                            DataId         = hisBase.BID,
                            IdCard         = data.PO_SFZH,
                            DataType       = hisBase.BsCode
                        };
                        var resultSaveData = HttpHelp.HttpPost(Logs.ToJson(residentInfoParam), "SaveMedicalInsuranceResidentInfo",
                                                               new ApiJsonResultData());
                    }
                    //CXJB001 存入基层
                    var saveXmlParam = new SaveXmlDataServiceParam()
                    {
                        YbOrgCode      = hisBase.YbOrgCode,
                        OrgID          = hisBase.OrgID,
                        BID            = hisBase.BID,
                        EmpID          = hisBase.EmpID,
                        BsCode         = hisBase.BsCode,
                        TransKey       = hisBase.TransKey,
                        Participation  = Logs.ToJson(Param),
                        ResultData     = Logs.ToJson(data),
                        BusinessNumber = "CXJB001",
                    };
                    var resultXml = HttpHelp.HttpPost(Logs.ToJson(saveXmlParam),
                                                      "SaveXmlData", new ApiJsonResultData());
                }
                //日志
                Logs.LogWrite(new LogParam()
                {
                    OperatorCode = hisBase.EmpID.ToString(),
                    Params       = Logs.ToJson(Param),
                    ResultData   = Logs.ToJson(data) //Logs.ToJson(data)
                });
            }
            catch (Exception e)
            {
                resultData.Success = false;
                resultData.Message = e.Message;
                Logs.LogWrite(new LogParam()
                {
                    Msg          = e.Message,
                    OperatorCode = hisBase.EmpID.ToString(),
                });
            }
            return(resultData);
        }
        public ApiJsonResultData HospitalizationRegister(QueryInpatientInfoBasicParam param, HisBaseParam baseParam)
        {  // 1.查询中间库当前病人是否入院
           // 1.1.1如果入院直接返回查询结果
           // 1.1.2如果住院病人无数据则对当前病人进行基础入院信息下载(GetInpatientInfo),再进行查询并返回结果
           // 1.2 判断医保信息回写至基层系统CXJB002数据是否存在入院数据
           // 1.2.1 如果已有入院登记记录(则返回已有入院记录)
           // 1.2.2 居民医保进行入院办理(HospitalizationRegister)
           // 1.2.3 更新医保人员信息
           // 1.2.4 医保信息回写至基层系统CXJB002
           //-------------------------------

            var resultData = new ApiJsonResultData();

            try
            {
                //1.    1.1.1    1.1.2
                var result = HttpHelp.HttpPost(Logs.ToJson(param), "QueryInpatientInfo",
                                               new QueryInpatientInfoBasicLevelDto());

                if (result != null && !string.IsNullOrWhiteSpace(result.Id)) //判断是否存在
                {
                    var residentInfoParam = new ResidentInfoBasiclevelParam()
                    {
                        BusinessId = baseParam.BID,
                        IdCard     = result.身份证号,
                        OrgCode    = baseParam.OrgID
                    };
                    // 1.2
                    var saveDataAllQueryData = HttpHelp.HttpPost(Logs.ToJson(residentInfoParam),
                                                                 "QueryMedicalInsuranceResidentInfo",
                                                                 new MedicalInsuranceResidentInfoBasiclevelDto());
                    if (saveDataAllQueryData != null &&
                        !string.IsNullOrWhiteSpace(saveDataAllQueryData.DataAllId)) //判断是否存在
                    {                                                               //获取社保卡信息
                        if (saveDataAllQueryData.DataType == "003")
                        {                                                           //医保办理入院
                            //1.2.2居民医保进行入院办理(HospitalizationRegister)
                            var dateTime = HttpHelp.HttpPost("",
                                                             "GetServiceTime",
                                                             new ApiJsonResultData());
                            var RegisterParam = new HospitalizationRegisterParam()
                            {
                                PI_SFBZ    = param.PI_SFBZ,
                                PI_CRBZ    = param.PI_CRBZ,
                                PI_YLLB    = param.PI_YLLB,
                                PI_TES     = param.PI_TES,
                                PI_HKXZ    = param.PI_HKXZ,
                                PI_RYRQ    = Convert.ToDateTime(result.入院日期).ToString("yyyyMMdd"),
                                PI_ICD10   = result.入院主诊断ICD10,
                                PI_ICD10_2 = result.入院次诊断ICD10,
                                PI_RYZD    = result.入院主诊断,
                                PI_ZYBQ    = result.入院科室,
                                PI_CWH     = result.入院床位,
                                PI_YYZYH   = Convert.ToDateTime(dateTime.Data).ToString("yyyyMMddHHmmss") + baseParam.OrgID.ToString().Substring(0, 6),
                                PI_JBR     = baseParam.EmpIDCode,
                            };
                            var RegisterData = Resident.HospitalizationRegister(RegisterParam);
                            if (RegisterData.PO_FHZ == "1")
                            {
                                // 1.2.3 更新医保人员信息

                                var saveResidentInfoParam = new SaveMedicalInsuranceResidentInfoBasiclevelParam()
                                {
                                    YbOrgCode      = baseParam.YbOrgCode,
                                    BID            = baseParam.YbOrgCode,
                                    BsCode         = baseParam.BsCode,
                                    TransKey       = baseParam.TransKey,
                                    EmpID          = baseParam.EmpID,
                                    OrgID          = baseParam.OrgID,
                                    BusinessId     = baseParam.BID,
                                    ContentJson    = Logs.ToJson(RegisterParam),
                                    ResultDatajson = Logs.ToJson(RegisterData),
                                    DataAllId      = saveDataAllQueryData.DataAllId,
                                    DataId         = baseParam.BID,
                                    DataType       = baseParam.BsCode
                                };
                                var resultSaveData = HttpHelp.HttpPost(Logs.ToJson(residentInfoParam), "SaveMedicalInsuranceResidentInfo",
                                                                       new ApiJsonResultData());

                                //1.2.4医保信息回写至基层系统CXJB002

                                var DataAllBasiclevelParam = new SaveXmlDataServiceParam()
                                {
                                    YbOrgCode      = baseParam.YbOrgCode,
                                    OrgID          = baseParam.OrgID,
                                    BID            = baseParam.BID,
                                    EmpID          = baseParam.EmpID,
                                    BsCode         = baseParam.BsCode,
                                    TransKey       = baseParam.TransKey,
                                    Participation  = Logs.ToJson(RegisterParam),
                                    ResultData     = Logs.ToJson(RegisterData),
                                    BusinessNumber = "CXJB002",
                                };
                                //CXJB001 存入基层
                                var SaveDataAll = HttpHelp.HttpPost(Logs.ToJson(DataAllBasiclevelParam),
                                                                    "SaveMedicalInsuranceDataAll",
                                                                    new ApiJsonResultData());
                                if (SaveDataAll.Success == false)
                                {
                                    throw new Exception(SaveDataAll.Message);
                                }
                            }
                            else
                            {
                                throw new Exception(RegisterData.PO_MSG);
                            }
                        }
                        else
                        {
                            throw new Exception("BusinessId:" + saveDataAllQueryData.BusinessId + "DataType" +
                                                saveDataAllQueryData.DataType + "病人状态不正确");
                        }
                    }
                }
                else
                {
                    throw new Exception("IdCard:" + param.IdCard + "该病人未在基层系统中住院,请检查该病人是否离院!!!");
                }
            }
            catch (Exception e)
            {
                resultData.Success = false;
                resultData.Message = e.Message;
                Logs.LogWrite(new LogParam()
                {
                    //Msg = data.Po_MSG,
                    Msg          = e.Message,
                    OperatorCode = baseParam.EmpID.ToString(),
                });
            }

            return(resultData);
        }
Пример #12
0
        /// <summary>
        /// 处方明细查询
        /// </summary>
        public string SinglePrescriptionDetailQuery(string param, HisBaseParam baseParam)
        {
            var resultData = new ApiJsonResultDatas {
                Code = true
            };

            try
            {
                var paramIni = JsonConvert.DeserializeObject <SinglePrescriptionDetailQueryParam>(param);

                var xmlStr = XmlHelp.SaveXml(param);
                if (xmlStr)
                {
                    int result = WorkersMedicalInsurance.CallService_cxjb("TPYP009");
                    if (result == 1)
                    {
                        var dataValid = XmlHelp.ValidXml("PI_CFMX");
                        if (dataValid.PO_FHZ == "1")
                        {
                            if (dataValid.IsRows)
                            {
                                var data = XmlHelp.DeSerializerModel(
                                    new PrescriptionDetailQueryRowList());
                                resultData.Data = JsonConvert.SerializeObject(data);
                                Logs.LogWrite(new LogParam()
                                {
                                    OperatorCode = "",
                                    Params       = Logs.ToJson(param),
                                    ResultData   = Logs.ToJson(data)
                                });
                            }
                            else
                            {
                                var data = XmlHelp.DeSerializerModel(
                                    new SinglePrescriptionDetailQueryDto());
                                resultData.Data = JsonConvert.SerializeObject(data);
                                Logs.LogWrite(new LogParam()
                                {
                                    OperatorCode = "",
                                    Params       = Logs.ToJson(param),
                                    ResultData   = Logs.ToJson(data)
                                });
                            }
                        }
                        else
                        {
                            throw new Exception(dataValid.PO_MSG);
                        }
                    }
                }
            }
            catch (Exception e)
            {
                resultData.Code    = false;
                resultData.Message = e.Message;
                Logs.LogWrite(new LogParam()
                {
                    Msg          = e.Message,
                    OperatorCode = "",
                    Params       = Logs.ToJson(param),
                });
            }
            return(JsonConvert.SerializeObject(resultData));
        }