Exemple #1
0
        public string GetRegDepts(request <getRegDepts> getRegDepts)
        {
            if (getRegDepts == null)
            {
                return(RsXmlHelper.ResXml("-1", "XML格式错误"));
            }
            List <Entity.SResponse.GDeptItem> deptItems = null;

            deptItems = sysDeptBLL.GetGDeptItems(getRegDepts.model.parentDeptCode);

            if (deptItems.Count > 0)
            {
                return(XMLHelper.XmlSerialize(new response <Entity.SResponse.getRegDepts>()
                {
                    model = new Entity.SResponse.getRegDepts()
                    {
                        resultCode = 0,
                        resultMessage = "",
                        item = deptItems
                    }
                }));
            }
            else
            {
                return(RsXmlHelper.ResXml("-1", "暂无数据"));
            }
        }
        public string GetMZFeeDetail(request <getMZFeeDetail> getMZFeeDetail)
        {
            if (getMZFeeDetail == null)
            {
                return(RsXmlHelper.ResXml(-1, "XML格式错误"));
            }

            var MZFeeList = orderInfoBLL.GetMZFeeDetails(getMZFeeDetail.model.mzFeeId, getMZFeeDetail.model.recipeNo);

            if (MZFeeList.Count > 0)
            {
                return(XMLHelper.XmlSerialize(new response <Entity.SResponse.getMZFeeDetail>()
                {
                    model = new Entity.SResponse.getMZFeeDetail()
                    {
                        resultCode = 0,
                        resultMessage = "",
                        item = MZFeeList
                    }
                }));
            }
            else
            {
                return(XMLHelper.XmlSerialize(new Entity.SResponse.getMZFeeDetail()
                {
                    resultCode = 1,
                    resultMessage = "暂无数据"
                }));
            }
        }
        public string GetMZFeeList(request <getMZFeeList> getMZFeeList)
        {
            if (getMZFeeList == null)
            {
                return(RsXmlHelper.ResXml(-1, "XML格式错误"));
            }

            var feeItems = orderInfoBLL.GetMZFeeLists(getMZFeeList.model.patCardType, getMZFeeList.model.patCardNo, "", "");

            if (feeItems.Count > 0)
            {
                return(XMLHelper.XmlSerialize(new response <Entity.SResponse.getMZFeeList>()
                {
                    model = new Entity.SResponse.getMZFeeList()
                    {
                        resultCode = 0,
                        resultMessage = "",
                        item = feeItems
                    }
                }));
            }
            else
            {
                return(RsXmlHelper.ResXml(1, "暂无待缴费订单"));
            }
        }
Exemple #4
0
        public string GetBedFee(request <Entity.SRequest.GetBedFee> getBedFee)
        {
            if (getBedFee == null)
            {
                return(RsXmlHelper.ResXml(-1, "XML格式错误"));
            }

            var inReginfo = inReginfoBLL.GetReginfo(getBedFee.model.patientID);

            if (inReginfo == null)
            {
                return(RsXmlHelper.ResXml(-1, "无该患者入院信息"));
            }

            var inInsurance   = inInsuranceBLL.GetIn_Insurance(inReginfo.inid);
            var List          = inOrderinfoBLL.GetIn_FeedItem(inReginfo.inid);
            var feedetailList = inFeedetailBLL.GetIn_Feedetails(inReginfo.inid);
            var feeDeposit    = feeDepositBLL.GetFee_Deposit(x => x.inid == inReginfo.inid);

            return(XMLHelper.XmlSerialize(new response <Entity.SResponse.GetBedFee>()
            {
                model = new Entity.SResponse.GetBedFee()
                {
                    resultCode = 0,
                    resultMessage = "",
                    totalFee = (inInsurance != null ? inInsurance.ttprice : List.Sum(x => x.costAmout)) * 100,
                    medicareFee = (inInsurance != null ? inInsurance.fundttprice : 0) * 100,
                    selfFee = (inInsurance != null ? inInsurance.selfprice : List.Sum(x => x.costAmout)) * 100,
                    payedFee = feeDeposit.totalprice * 100,
                    leftPreFee = (feeDeposit.totalprice - List.Sum(x => x.costAmout)) * 100,
                    leftFee = (List.Sum(x => x.costAmout) - feeDeposit.totalprice) * 100,
                    items = List
                }
            }));
        }
        public string GetPayList(request <Entity.SRequest.getPayList> getPayList)
        {
            if (getPayList == null)
            {
                return(RsXmlHelper.ResXml(-1, "XML格式错误"));
            }

            var para = CodeConvertUtils.GetCardTypeByType(Convert.ToInt32(getPayList.model.patCardType));

            var ptInfo   = feeinfoBLL.GetFee_Infos(para, getPayList.model.patCardNo);
            var itemList = feeinfoBLL.GetPayItems(ptInfo.pid);

            if (itemList != null && itemList.Count > 0)
            {
                return(XMLHelper.XmlSerialize(new response <Entity.SResponse.getPayList>()
                {
                    model = new Entity.SResponse.getPayList()
                    {
                        resultCode = 0,
                        item = itemList
                    }
                }));
            }
            else
            {
                return(XMLHelper.XmlSerialize(new response <Entity.SResponse.getPayList>()
                {
                    model = new Entity.SResponse.getPayList()
                    {
                        resultCode = 1,
                        resultMessage = "暂无数据"
                    }
                }));
            }
        }
Exemple #6
0
        public string ComplementDeposit(request <Entity.SRequest.ComplementDeposit> complement)
        {
            if (complement == null)
            {
                return(RsXmlHelper.ResXml(-1, "XML格式错误"));
            }

            var list = feeDepositBLL.GetComplementDepositItems(complement.model.beginDate, complement.model.endDate);

            if (list.Count > 0)
            {
                return(XMLHelper.XmlSerialize(new response <Entity.SResponse.ComplementDeposit>()
                {
                    model = new Entity.SResponse.ComplementDeposit()
                    {
                        resultCode = 0,
                        resultMessage = "",
                        item = list
                    }
                }));
            }
            else
            {
                return(RsXmlHelper.ResXml(99, "数据为空"));
            }
        }
        public string GetPayFeeDetail(request <getPayFeeDetail> getPayFeeDetail)
        {
            if (getPayFeeDetail == null)
            {
                return(RsXmlHelper.ResXml(-1, "XML个数错误"));
            }

            var itemList = feeInfodetailBLL.GetPayFeeDetailItems(Convert.ToInt32(getPayFeeDetail.model.MzFeeId));

            if (itemList != null && itemList.Count > 0)
            {
                return(XMLHelper.XmlSerialize(new response <Entity.SResponse.getPayFeeDetail>()
                {
                    model = new Entity.SResponse.getPayFeeDetail()
                    {
                        resultCode = 0,
                        item = itemList
                    }
                }));
            }
            else
            {
                return(RsXmlHelper.ResXml(1, "暂无数据"));
            }
        }
Exemple #8
0
        public string GetDepositList(request <Entity.SRequest.GetDepositList> getDepositList)
        {
            if (getDepositList == null)
            {
                return(RsXmlHelper.ResXml(-1, "XML不能为空"));
            }
            var feeDeposit = feeDepositBLL.GetFee_Deposit(x => x.inid == Convert.ToInt32(getDepositList.model.patientID));

            if (feeDeposit == null)
            {
                return(RsXmlHelper.ResXml(-1, "暂无预交金缴费记录"));
            }
            var list = feeDepositBLL.GetDepositItems(feeDeposit.did, !string.IsNullOrWhiteSpace(getDepositList.model.payMode) ? CodeConvertUtils.GetChannByCode(Convert.ToInt32(getDepositList.model.payMode)) : "", getDepositList.model.beginDate, getDepositList.model.endDate, getDepositList.model.psOrdNum);

            if (list.Count > 0)
            {
                return(XMLHelper.XmlSerialize(new response <Entity.SResponse.GetDepositList>()
                {
                    model = new Entity.SResponse.GetDepositList()
                    {
                        resultCode = 0,
                        resultMessage = "",
                        item = list
                    }
                }));
            }
            else
            {
                return(RsXmlHelper.ResXml(99, "暂无缴费记录"));
            }
        }
Exemple #9
0
        public string PayDeposit(request <Entity.SRequest.payDeposit> payDeposit)
        {
            if (payDeposit == null)
            {
                return(RsXmlHelper.ResXml(-1, "XML格式错误"));
            }

            in_reginfo in_Reginfo = null;

            if (!string.IsNullOrWhiteSpace(payDeposit.model.patientID))
            {
                in_Reginfo = inReginfoBLL.GetReginfo(payDeposit.model.patientID);
            }
            else
            {
                return(RsXmlHelper.ResXml(-1, "入院号不能为空"));
            }
            string memo = "住院记录ID:{0},公众服务平台订单号:{1},收单机构流水号:{2},收单机构代码:{3},支付方式:{4},补缴押金金额:{5},支付时间:{6},代缴人证件类型:{7},代缴人证件号码:{8},代缴人姓名:{9}。";

            memo = string.Format(memo, payDeposit.model.patientID, payDeposit.model.psOrdNum, payDeposit.model.agtOrdNum, payDeposit.model.agtCode, payDeposit.model.payMode, Convert.ToInt32(payDeposit.model.payAmout) / 100, payDeposit.model.payTime, payDeposit.model.reprePatCardType, payDeposit.model.reprePatCardNo, payDeposit.model.reprePatName);

            var fdid = feeDepositBLL.AdvancePayment(in_Reginfo, payDeposit.model.payMode, Convert.ToInt32(payDeposit.model.payAmout) / 100, payDeposit.model.psOrdNum, memo, out decimal leftPrice);

            return(XMLHelper.XmlSerialize(new response <Entity.SResponse.payDeposit>()
            {
                model = new Entity.SResponse.payDeposit()
                {
                    resultCode = 0,
                    resultMessage = "",
                    hisOrdNum = EString.ZeroFill(fdid),
                    balance = (leftPrice * 100).ToString()
                }
            }));
        }
Exemple #10
0
        public string GetRegDoctors(request <Entity.SRequest.getRegDoctors> GetRegDoctors)
        {
            if (GetRegDoctors == null)
            {
                return(RsXmlHelper.ResXml(-1, "XML格式错误"));
            }

            var itemList = SysUserinfoBLL.GetRDoctorItems(GetRegDoctors.model.deptCode);

            if (itemList.Count > 0)
            {
                return(XMLHelper.XmlSerialize(new response <Entity.SResponse.getRegDoctors>()
                {
                    model = new Entity.SResponse.getRegDoctors()
                    {
                        resultCode = 0,
                        resultMessage = "",
                        item = itemList
                    }
                }));
            }
            else
            {
                return(RsXmlHelper.ResXml(-1, "暂无数据"));
            }
        }
        public string GetCurRegInfo(request <Entity.SRequest.getCurRegInfo> getCurRegInfo)
        {
            if (getCurRegInfo == null)
            {
                return(RsXmlHelper.ResXml(-1, "XML格式错误"));
            }

            var gCurRegInfoResult = regTypeBLL.gCurRegInfos(getCurRegInfo.model.deptCode, getCurRegInfo.model.doctorCode, getCurRegInfo.model.beginDate, getCurRegInfo.model.endDate);

            if (gCurRegInfoResult == null || gCurRegInfoResult.Count <= 0)
            {
                return(XMLHelper.XmlSerialize(new response <Entity.SResponse.getCurRegInfo>()
                {
                    model = new Entity.SResponse.getCurRegInfo()
                    {
                        resultCode = 1,
                        resultMessage = "暂无号源数据",
                    }
                }));
            }
            return(XMLHelper.XmlSerialize(new response <Entity.SResponse.getCurRegInfo>()
            {
                model = new Entity.SResponse.getCurRegInfo()
                {
                    resultCode = 0,
                    resultMessage = "",
                    item = gCurRegInfoResult
                }
            }));
        }
Exemple #12
0
        public string GetDeptReg(request <Entity.SRequest.getDeptReg> getDeptReg)
        {
            if (getDeptReg == null)
            {
                return(RsXmlHelper.ResXml(-1, "XML格式错误"));
            }

            var dept = sysDeptBLL.GetDeptByCode(getDeptReg.model.deptCode);

            if (dept == null)
            {
                return(RsXmlHelper.ResXml(99, "科室code不存在"));
            }
            var regarrList = regArrangeBLL.GetDeptRegItems(dept.name, getDeptReg.model.beginDate, getDeptReg.model.endDate);

            if (regarrList.Count > 0)
            {
                return(XMLHelper.XmlSerialize(new response <Entity.SResponse.getDeptReg>()
                {
                    model = new Entity.SResponse.getDeptReg()
                    {
                        resultCode = 0,
                        resultMessage = "",
                        item = regarrList
                    }
                }));
            }
            else
            {
                return(RsXmlHelper.ResXml(99, "数据为空"));
            }
        }
Exemple #13
0
        public string GetBillInfos(request <Entity.SRequest.getBillInfos> getBill)
        {
            if (getBill == null)
            {
                return(RsXmlHelper.ResXml(-1, "XML格式错误"));
            }

            return(XMLHelper.XmlSerialize(new response <Entity.SResponse.getBillInfos>()
            {
                model = new Entity.SResponse.getBillInfos()
                {
                    resultCode = 0,
                    resultMessage = "",
                    item = feeinfoBLL.getBillInfos(getBill.model.billDate, getBill.model.payMode, getBill.model.pageNo, getBill.model.pageNumber)
                }
            }));
        }
        public string GetCurDocTime(request <Entity.SRequest.getCurDocTime> getCurDocTimeInfo)
        {
            if (getCurDocTimeInfo == null)
            {
                return(RsXmlHelper.ResXml(-1, "XML格式错误"));
            }

            var obj = regManageBLL.GetCDocTimeItems(getCurDocTimeInfo.model.deptCode, getCurDocTimeInfo.model.doctorCode, Convert.ToInt32(getCurDocTimeInfo.model.timeFlag));

            return(XMLHelper.XmlSerialize(new response <Entity.SResponse.getCurDocTime>()
            {
                model = new Entity.SResponse.getCurDocTime()
                {
                    resultCode = 0,
                    resultMessage = "",
                    item = obj
                }
            }));
        }
        public string TradingRefund(request <Entity.SRequest.JY002> tradingrefund)
        {
            var ybsssno = commKeyBLL.GetYBNO();
            var ybSno   = "HZS10" + DateTime.Now.ToString("yyyyMMdd") + ybsssno;

            var getVerifyCodeResult = JsonOperator.JsonDeserialize <Entity.SResponse.getVerifyCode>(HttpHelper.Post("http://192.168.88.134:8300/YBDLL/domain/getVerifyCode", JsonOperator.JsonSerialize(new getVerifyCode()
            {
                inParam = "JY002|" + ybSno + "|HZS10|"
            }), Encoding.UTF8, 1));

            if (getVerifyCodeResult.resultCode != 0)
            {
                return(null);
            }

            var version = getVerifyCodeResult.outParam.Split("|")[2];
            var verify  = getVerifyCodeResult.outParam.Split("|")[0] + "|" + getVerifyCodeResult.outParam.Split("|")[1];

            Entity.SRequest.JY002 jY002 = new JY002()
            {
                akc190 = tradingrefund.model.akc190,
                bke384 = tradingrefund.model.bke384
            };

            var result = HealthInsuranceHelper.RegTrial <BaseMedInsurance <Entity.SResponse.JY002> >("JY002", version, verify, ybsssno.ToString(), jY002);

            if (result.transReturnCode == "0" || result.transReturnCode == "00000000")
            {
                return(XMLHelper.XmlSerialize(new response <Entity.SResponse.JY002>()
                {
                    model = new Entity.SResponse.JY002()
                    {
                        resultCode = 0,
                        resultMessage = JsonOperator.JsonSerialize(result)
                    }
                }));
            }
            else
            {
                return(RsXmlHelper.ResXml(-1, JsonOperator.JsonSerialize(result)));
            }
        }
        public string CancelCurReg(request <cancelCurReg> cancelCurReg)
        {
            if (cancelCurReg == null)
            {
                return(RsXmlHelper.ResXml(-1, "XML格式错误"));
            }

            var regInfo = reginfoBLL.GetReg_Info(Convert.ToInt32(cancelCurReg.model.hisOrdNum));

            if (regInfo == null)
            {
                return(RsXmlHelper.ResXml(99, "挂号信息不存在"));
            }

            regArrangeBLL.UpdateRegNoZero(Convert.ToInt32(regInfo.argid));
            feeinfoBLL.DeleteFeeInfoByRegid(regInfo.regid, cancelCurReg.model.psOrdNum);
            reginfoBLL.DeleteReginfo(regInfo.regid);

            //return XMLHelper.XmlSerialize(new response<Entity.SResponse>)
            return(RsXmlHelper.ResXml(0, "取消挂号成功"));
        }
Exemple #17
0
        public string QueryPatientHospital(request <Entity.SRequest.queryPatientHospital> queryPatientHospital)
        {
            if (queryPatientHospital == null)
            {
                return(RsXmlHelper.ResXml(-1, "XML格式错误"));
            }

            var inReginfo = inReginfoBLL.GetDescFirst(x => x.idno == queryPatientHospital.model.patCardNo);

            if (inReginfo == null)
            {
                return(RsXmlHelper.ResXml(-1, "无患者入院信息"));
            }

            return(XMLHelper.XmlSerialize(new response <Entity.SResponse.queryPatientHospital>()
            {
                model = new Entity.SResponse.queryPatientHospital()
                {
                    resultCode = 0,
                    resultMessage = "",
                    items = new List <patienthosItem>()
                    {
                        new patienthosItem()
                        {
                            patientID = inReginfo.inid.ToString(),
                            admissionNo = inReginfo.inno,
                            inDate = inReginfo.intime.ToString(),
                            inTime = inReginfoBLL.GetInCount(inReginfo.idno),
                            patName = inReginfo.pname,
                            deptName = inReginfo.indept,
                            doctorName = inReginfo.resident,
                            idCard = inReginfo.idno,
                            outDate = inReginfoBLL.GetOutDate(inReginfo.inid).ToString(),
                            patiId = inReginfo.pid.ToString()
                        }
                    }
                }
            }));
        }
        public string MembershipCardInfo(request <Entity.SRequest.MemberShipInfo> memberShipInfo)
        {
            if (memberShipInfo == null)
            {
                return(RsXmlHelper.ResXml(-1, "XML格式错误"));
            }

            var cardInfo = cardInfoBLL.GetCardByCno(memberShipInfo.model.czkh);

            if (cardInfo == null)
            {
                return(RsXmlHelper.ResXml(-1, "卡号信息不存在"));
            }
            else if (cardInfo.pid == null || cardInfo.pid == 0 || cardInfo.del == true)
            {
                return(RsXmlHelper.ResXml(99, "该卡暂未绑定患者"));
            }

            var ptInfo = ptInfoBLL.GetPt_Info(x => x.pid == cardInfo.pid);

            if (ptInfo == null || ptInfo.del == true)
            {
                return(RsXmlHelper.ResXml(-1, "患者信息已被删除"));
            }

            return(XMLHelper.XmlSerialize(new response <Entity.SResponse.MemberShipInfo>()
            {
                model = new Entity.SResponse.MemberShipInfo()
                {
                    ResultCode = 0,
                    ResultMessage = "",
                    Idcardh = ptInfo.idno,
                    Name = ptInfo.pname,
                    Sex = ptInfo.sex == "男" ? "M" : "F",
                    Ye = Convert.ToDecimal(cardInfo.cmoney * 100),
                }
            }));
        }
        public string GetMZPatient([FromBody] request <GetMZPatient> getMZPatient)
        {
            if (getMZPatient == null)
            {
                return(RsXmlHelper.ResXml(-1, "XML格式错误"));
            }

            var pt_Info = ptInfoBLL.GetPtInfoByCardNo(getMZPatient.model.patName, getMZPatient.model.patCardType, getMZPatient.model.patCardNo);

            if (pt_Info == null || pt_Info.del == true)
            {
                return(RsXmlHelper.ResXml(1, "患者信息为空"));
            }

            response <Entity.SResponse.getMZPatient> getMZResponse = new response <Entity.SResponse.getMZPatient>()
            {
                model = new Entity.SResponse.getMZPatient()
                {
                    resultCode    = 0,
                    resultMessage = "",
                    patType       = 1,
                    patName       = pt_Info.pname,
                    patSex        = pt_Info.sex == "男" ? "M" : "F",
                    patBirth      = pt_Info.birth.ToString(),
                    patAddress    = pt_Info.addr1 + pt_Info.addr3,
                    patMobile     = pt_Info.tel,
                    patIdType     = CodeConvertUtils.GetIdNoType(pt_Info.idtype),
                    patIdNo       = pt_Info.idno,
                    patCardType   = getMZPatient.model.patCardType,
                    patCardNo     = getMZPatient.model.patCardNo,
                    hasMedicare   = !string.IsNullOrWhiteSpace(pt_Info.yno)
                }
            };

            return(XMLHelper.XmlSerialize(getMZResponse));
        }
        public string SettleMZInsurance(request <settleMZInsurance> settleMZInsurance)
        {
            if (settleMZInsurance == null)
            {
                return(RsXmlHelper.ResXml(-1, "XML格式错误"));
            }

            var ptInfo = ptInfoBLL.GetPtInfoByCardNo("", Convert.ToInt32(settleMZInsurance.model.patCardType), settleMZInsurance.model.patCardNo);

            if (ptInfo == null)
            {
                return(RsXmlHelper.ResXml(-1, "XML格式错误"));
            }

            var dept   = sysDeptBLL.GetDeptByCode(settleMZInsurance.model.deptCode);
            var doctor = sysUserinfoBLL.GetRDoctor(settleMZInsurance.model.doctorCode);

            var pt_Info = ptInfoBLL.GetPtInfoByCardNo("", Convert.ToInt32(settleMZInsurance.model.patCardType), settleMZInsurance.model.patCardNo);

            if (pt_Info == null)
            {
                return(RsXmlHelper.ResXml(-1, "患者信息为空"));
            }

            var regInfo = reginfoBLL.GetReg_Info(Convert.ToInt32(settleMZInsurance.model.mzFeeId));

            var orderInfoList = orderInfoBLL.GetMZOrderInfo(settleMZInsurance.model.mzFeeId, settleMZInsurance.model.mzBillId);

            if (regInfo == null)
            {
                return(RsXmlHelper.ResXml(-1, "挂号信息为空"));
            }

            var ybsssno = commKeyBLL.GetYBNO();

            var FeeTrail = feeTrialBLL.Get(x => x.bke384 == settleMZInsurance.model.SSSerNo);

            if (FeeTrail == null && !string.IsNullOrWhiteSpace(FeeTrail.transBody))
            {
                //return RsXmlHelper.ResXml(0, JsonOperator.JsonSerialize(FeeTrail.transBody));
                return(XMLHelper.XmlSerialize(new response <FeeSettlement>()
                {
                    model = new FeeSettlement()
                    {
                        resultCode = 0,
                        resultMessage = FeeTrail.transBody,
                        akc190 = FeeTrail.akc190
                    }
                }));
            }
            FY005 fY005 = new FY005()
            {
                aaz500 = settleMZInsurance.model.socialSecurityNo,
                bzz269 = string.IsNullOrWhiteSpace(settleMZInsurance.model.patCardPwd) ? "000000" : settleMZInsurance.model.patCardPwd,
                akc190 = FeeTrail.akc190,
                aka130 = FeeTrail.aka130,
                bkc320 = FeeTrail.bkc320,
                ckc350 = FeeTrail.ckc350,
                aka030 = FeeTrail.aka030,
                akc264 = FeeTrail.akc264.ToString(),
                ckc601 = FeeTrail.ckc601,
                bke384 = FeeTrail.bke384
            };

            var ybSno = "HZS10" + DateTime.Now.ToString("yyyyMMdd") + ybsssno;
            var getVerifyCodeResult = JsonOperator.JsonDeserialize <Entity.SResponse.getVerifyCode>(HttpHelper.Post("http://192.168.88.134:8300/YBDLL/domain/getVerifyCode", JsonOperator.JsonSerialize(new getVerifyCode()
            {
                inParam = "FY005|" + ybSno + "|HZS10|"
            }), Encoding.UTF8, 1));

            if (getVerifyCodeResult.resultCode != 0)
            {
                return(null);
            }

            var version = getVerifyCodeResult.outParam.Split("|")[2];
            var verify  = getVerifyCodeResult.outParam.Split("|")[0] + "|" + getVerifyCodeResult.outParam.Split("|")[1];
            var result  = HealthInsuranceHelper.RegTrial <BaseMedInsurance <Entity.SResponse.FY005> >("FY005", version, verify, ybsssno.ToString(), fY005);

            if (result.transReturnCode == "0" || result.transReturnCode == "00000000")
            {
                var resultObj = new Entity.SResponse.getMZInsurance()
                {
                    resultCode    = 0,
                    resultMessage = "",
                    mzFeeId       = regInfo.regid,
                    mzBillId      = string.Join(",", orderInfoList.Select(x => x.billid)),
                    SSFeeNo       = ybSno,
                    SSBillNumber  = null,
                    time          = DateTime.Now,
                    recipeCount   = orderInfoList.Count.ToString(),
                    deptCode      = dept.code,
                    doctorCode    = doctor.userno,
                    doctorName    = doctor.username,
                    payType       = "医保",
                    payAmount     = result.transBody.akb067.ToString(),
                    totalAmout    = orderInfoList.Sum(x => x.totprice).ToString(),
                    akc190        = fY005.akc190,
                    SSInfoNew     = JsonOperator.JsonSerialize(result.transBody)
                };
                return(XMLHelper.XmlSerialize(new response <FeeSettlement>()
                {
                    model = new FeeSettlement()
                    {
                        resultCode = 0,
                        resultMessage = JsonOperator.JsonSerialize(result.transBody),
                        akc190 = fY005.akc190
                    }
                }));
            }
            else
            {
                return(RsXmlHelper.ResXml(-1, result.transReturnMessage + "{" + JsonOperator.JsonSerialize(fY005) + "}"));
            }
        }
        public string GetMZInsurance(request <getMZInsurance> getMZInsurance)
        {
            if (getMZInsurance == null)
            {
                return(RsXmlHelper.ResXml(-1, "XML格式错误"));
            }

            var ptInfo = ptInfoBLL.GetPtInfoByCardNo("", Convert.ToInt32(getMZInsurance.model.patCardType), getMZInsurance.model.patCardNo);

            if (ptInfo == null)
            {
                return(RsXmlHelper.ResXml(-1, "患者信息为空"));
            }

            var dept   = sysDeptBLL.GetDeptByCode(getMZInsurance.model.deptCode);
            var doctor = sysUserinfoBLL.GetRDoctor(getMZInsurance.model.doctorCode);

            var regInfo = reginfoBLL.Get(x => x.regid == Convert.ToInt32(getMZInsurance.model.mzFeeId));

            if (regInfo == null)
            {
                return(RsXmlHelper.ResXml(-1, "挂号信息为空"));
            }

            var orderInfoList   = orderInfoBLL.Get(getMZInsurance.model.mzFeeId, getMZInsurance.model.mzBillId);
            var orderFeedetails = orderfeedetailBLL.GetOrder_Feedetails(orderInfoList.Select(x => x.billid).ToArray());

            var ybsssno = commKeyBLL.GetYBNO();
            var ybSno   = "HZS10" + DateTime.Now.ToString("yyyyMMdd") + ybsssno;

            FY001 fY001 = new FY001()
            {
                akc190   = "HZS10" + regInfo.mzno,
                bke384   = ybSno,
                listsize = orderFeedetails.Count,
            };

            fY001.inputlist = new List <inputlistfy001>();
            foreach (var order_Feedetail in orderFeedetails)
            {
                if (order_Feedetail.itemtype == "中草药" || order_Feedetail.itemtype == "中成药" || order_Feedetail.itemtype == "西药")
                {
                    var commMed = commMedBLL.Get(x => x.itemid == order_Feedetail.itemid);
                    fY001.inputlist.Add(new inputlistfy001()
                    {
                        aae072 = order_Feedetail.billid.ToString(),
                        bkc369 = "1",
                        bkf500 = order_Feedetail.bdfeeid.ToString(),
                        ake001 = commMed.ybcode,
                        ake002 = commMed.itemname,
                        bkm017 = commMed.stdcode,
                        ake005 = commMed.itemid,
                        ake006 = commMed.itemname,
                        akc225 = order_Feedetail.prices.ToString(),
                        akc264 = order_Feedetail.totalprices.ToString(),
                        aka067 = commMed.bscunit,
                        aka070 = commYbCodeBLL.GetYbCodeByName("AKA070", commMed.dosage),
                        aka074 = commMed.spec,
                        akc226 = (Convert.ToInt32(order_Feedetail.total) * Convert.ToInt32(order_Feedetail.dppack)).ToString(),
                        akc271 = Convert.ToDateTime(order_Feedetail.addtime).ToString("yyyyMMdd"),
                        bkc320 = doctor.ybno
                    });
                }
                else
                {
                    var commFee   = new comm_fee();
                    var isPackage = commFeeBLL.IsPackage(x => x.itemid == order_Feedetail.itemid && x.costtype == "5");
                    if (isPackage)
                    {
                        commFee = commFeeBLL.Get(Convert.ToInt32(order_Feedetail.itemid));
                    }
                    else
                    {
                        commFee = commFeeBLL.Get(x => x.itemid == order_Feedetail.itemid && x.costtype == "5");
                    }
                    fY001.inputlist.Add(new inputlistfy001()
                    {
                        aae072 = order_Feedetail.billid.ToString(),
                        bkc369 = "1",
                        bkf500 = order_Feedetail.bdfeeid.ToString(),
                        ake001 = commFee.scode,
                        ake002 = commFee.itemname,
                        bkm017 = commFee.scode,
                        ake005 = commFee.itemid,
                        ake006 = commFee.itemname,
                        ala026 = "",
                        aka070 = "",
                        aka074 = order_Feedetail.spec,
                        akc225 = decimal.Round(Convert.ToDecimal(order_Feedetail.prices), 2).ToString(),
                        akc226 = Convert.ToInt32(order_Feedetail.total).ToString(),
                        akc264 = decimal.Round(Convert.ToDecimal(order_Feedetail.totalprices), 2).ToString(),
                        aka067 = order_Feedetail.dpunit,
                        akc271 = Convert.ToDateTime(order_Feedetail.addtime).ToString("yyyyMMdd"),
                        bkc320 = doctor.ybno,
                        cke400 = ""
                    });
                }
            }

            FY004 fY004 = new FY004()
            {
                akc190 = "HZS10" + regInfo.mzno,
                aka130 = "11",
                bkc320 = doctor.ybno,
                ckc350 = doctor.username,
                aka030 = "12",
                akc264 = Math.Round(Convert.ToDecimal(orderInfoList.Sum(x => x.totprice)), 2).ToString(),
                ckc601 = "0",
                bke384 = "HZS10" + DateTime.Now.ToString("yyyyMMdd") + ybsssno
            };

            var getVerifyCodeResult = JsonOperator.JsonDeserialize <Entity.SResponse.getVerifyCode>(HttpHelper.Post("http://192.168.88.134:8300/YBDLL/domain/getVerifyCode", JsonOperator.JsonSerialize(new getVerifyCode()
            {
                inParam = "FY001|" + ybSno + "|HZS10|"
            }), Encoding.UTF8, 1));

            if (getVerifyCodeResult.resultCode != 0 || getVerifyCodeResult.resultCode != 00000000)
            {
                return(RsXmlHelper.ResXml(-1, getVerifyCodeResult.resultMsg));
            }

            var version = getVerifyCodeResult.outParam.Split("|")[2];
            var verify  = getVerifyCodeResult.outParam.Split("|")[0] + "|" + getVerifyCodeResult.outParam.Split("|")[1];

            var resultFy001 = HealthInsuranceHelper.RegTrial <BaseMedInsurance <Entity.SResponse.FY001> >("FY001", version, verify, ybsssno.ToString(), fY001);

            if (resultFy001.transReturnCode != "0" && resultFy001.transReturnCode != "00000000")
            {
                return(RsXmlHelper.ResXml(-1, resultFy001.transReturnMessage + JsonOperator.JsonSerialize(fY001) + "出参:" + JsonOperator.JsonSerialize(resultFy001)));
            }

            getVerifyCodeResult = JsonOperator.JsonDeserialize <Entity.SResponse.getVerifyCode>(HttpHelper.Post("http://192.168.88.134:8300/YBDLL/domain/getVerifyCode", JsonOperator.JsonSerialize(new getVerifyCode()
            {
                inParam = "FY004|" + ybSno + "|HZS10|"
            }), Encoding.UTF8, 1));

            var result = HealthInsuranceHelper.RegTrial <BaseMedInsurance <Entity.SResponse.FY004> >("FY004", version, verify, ybsssno.ToString(), fY004);

            if (result.transReturnCode == "0" || result.transReturnCode == "00000000")
            {
                feeTrialBLL.Add(new fee_trial()
                {
                    akc190 = fY004.akc190,
                    aka130 = fY004.aka130,
                    bkc320 = fY004.bkc320,
                    ckc350 = fY004.ckc350,
                    aka030 = fY004.aka030,
                    akc264 = Convert.ToDecimal(fY004.akc264),
                    ckc601 = fY004.ckc601,
                    bke384 = fY004.bke384
                });

                return(XMLHelper.XmlSerialize(new response <Entity.SResponse.getMZInsurance>()
                {
                    model = new Entity.SResponse.getMZInsurance()
                    {
                        resultCode = 0,
                        mzFeeId = regInfo.regid,
                        mzBillId = string.Join(",", orderInfoList.Select(x => x.billid)),
                        time = DateTime.Now,
                        SSFeeNo = fY004.akc190,
                        SSSerNum = fY004.bke384,
                        recipeCount = orderInfoList.Count.ToString(),
                        mzCategory = "普通",
                        doctorCode = doctor.userno,
                        doctorName = doctor.username,
                        deptCode = dept.code,
                        deptName = dept.name,
                        payType = "医保",
                        payAmount = result.transBody.akb067.ToString(),
                        accountAmount = result.transBody.akb066.ToString(),
                        medicareAmount = result.transBody.akb068.ToString(),
                        insuranceAmout = (result.transBody.akb068 + result.transBody.akb066).ToString(),
                        totalAmout = result.transBody.akc264.ToString(),
                        akc190 = fY004.akc190,
                        cardArea = result.cardArea,
                        SSInfoNew = JsonOperator.JsonSerialize(result.transBody)
                    }
                }));
            }
            else
            {
                return(RsXmlHelper.ResXml(-1, result.transReturnMessage));
            }
        }
        public string BindCard([FromBody] request <BindCard> bindCard)
        {
            if (bindCard == null)
            {
                return(RsXmlHelper.ResXml(-1, "XML格式错误"));
            }

            if (bindCard.model.bindType == "Y") //绑卡
            {
                var ptInfo = ptInfoBLL.GetInfoByCard(bindCard.model.PatId, bindCard.model.PatName);
                var card   = cardInfoBLL.GetCardByCno(bindCard.model.patCardNo);

                card_info existCard = null;

                if (card != null && card.pid != null)
                {
                    if (card.pid == ptInfo.pid)
                    {
                        return(RsXmlHelper.ResXml(0, JsonOperator.JsonSerialize(card)));
                    }
                    else
                    {
                        return(RsXmlHelper.ResXml(99, "卡号已绑定患者"));
                    }
                }
                else if (card != null && card.pid == null)
                {
                    card.pid = ptInfo.pid;
                    cardInfoBLL.UpdateCard(card);

                    ptInfo.cno = card.cno.Trim();
                    ptInfoBLL.Update(ptInfo);

                    return(RsXmlHelper.ResXml(0, ""));
                }
                else
                {
                    if (ptInfo == null)
                    {
                        return(RsXmlHelper.ResXml(99, "患者信息为空"));
                    }

                    if (!string.IsNullOrWhiteSpace(ptInfo.cno))
                    {
                        existCard = cardInfoBLL.GetCardByCno(ptInfo.cno);
                    }

                    if (existCard == null)
                    {
                        cardInfoBLL.CreateCard(new card_info()
                        {
                            cno       = bindCard.model.patCardNo.Trim(),
                            pid       = ptInfo.pid,
                            cmoney    = 0,
                            clevel    = "银卡",
                            status    = 0,
                            addperson = "自助机",
                            addtime   = DateTime.Now,
                            del       = false
                        });

                        ptInfo.cno = bindCard.model.patCardNo.Trim();
                        ptInfoBLL.Update(ptInfo);

                        return(RsXmlHelper.ResXml(0, ""));
                    }
                    else
                    {
                        return(RsXmlHelper.ResXml(0, JsonOperator.JsonSerialize(existCard)));
                    }
                }
            }
            else if (bindCard.model.bindType == "S")
            {
                var ptInfo = ptInfoBLL.GetInfoByCard(bindCard.model.PatId, bindCard.model.PatName);
                if (ptInfo == null)
                {
                    return(RsXmlHelper.ResXml(99, "患者信息为空"));
                }
                if (!string.IsNullOrWhiteSpace(ptInfo.cno))
                {
                    return(RsXmlHelper.ResXml(0, "患者已绑定就诊卡"));
                }
                else
                {
                    return(RsXmlHelper.ResXml(1, "患者未绑定就诊卡"));
                }
            }
            else //解绑
            {
                var ptInfo = ptInfoBLL.GetInfoByCard(bindCard.model.PatId, bindCard.model.PatName);

                card_info card = null;
                if (!string.IsNullOrWhiteSpace(bindCard.model.patCardNo))
                {
                    card = cardInfoBLL.GetCardByCno(bindCard.model.patCardNo);
                }
                else
                {
                    var cardList = cardInfoBLL.GetByPid(ptInfo.pid);
                    if (cardList != null && cardList.Count > 1)
                    {
                        return(RsXmlHelper.ResXml(99, "患者绑定多张卡"));
                    }
                    card = cardList.FirstOrDefault();
                }

                if (ptInfo == null)
                {
                    return(RsXmlHelper.ResXml(99, "患者信息为空"));
                }
                if (card == null || card.pid != ptInfo.pid)
                {
                    return(RsXmlHelper.ResXml(99, "卡号为空或卡号绑定其他患者"));
                }

                ptInfo.cno = null;
                ptInfoBLL.Update(ptInfo);

                card.pid = null;
                cardInfoBLL.UpdateCard(card);
                return(RsXmlHelper.ResXml(0, ""));
            }
        }
        public string AckPayOrder(request <Entity.SRequest.ackPayOrder> ackPayOrder)
        {
            if (ackPayOrder == null)
            {
                return(RsXmlHelper.ResXml(-1, "XML格式错误"));
            }

            var feeInfo = feeinfoBLL.Get(ackPayOrder.model.agtOrdNum);

            if (feeInfo != null)
            {
                return(XMLHelper.XmlSerialize(new response <Entity.SResponse.ackPayOrder>()
                {
                    model = new Entity.SResponse.ackPayOrder()
                    {
                        resultCode = 0,
                        resultMessage = "",
                        hisOrdNum = feeInfo.feeid.ToString(),
                        hisMessage = "支付成功"
                    }
                }));
            }

            var orderList = orderInfoBLL.GetHasOrderByRegid(ackPayOrder.model.mzFeeIdList);

            if (!orderList) //判断是否有医嘱单号
            {
                return(RsXmlHelper.ResXml(1, "暂无缴费订单"));
            }

            var orderInfoList = new List <order_info>();

            if (!string.IsNullOrWhiteSpace(ackPayOrder.model.recipeNo))
            {
                orderInfoList = orderInfoBLL.GetMZFeeByBillids(ackPayOrder.model.recipeNo);
            }
            else
            {
                orderInfoList = orderInfoBLL.GetOrderByRegId(Convert.ToInt32(ackPayOrder.model.mzFeeIdList));
            }

            var totalAmount = 0M;

            if (orderInfoList.Where(x => x.feestatus == "未收费").Count() > 0)
            {
                totalAmount = Convert.ToDecimal(orderInfoList.Sum(x => x.totprice));
            }

            if (Convert.ToDecimal(ackPayOrder.model.totalAmout) / 100 != totalAmount)
            {
                return(RsXmlHelper.ResXml(1, "支付金额小于订单总金额"));
            }

            orderInfoBLL.PayOrder(orderInfoList.Select(x => x.billid).ToArray());
            var orderfeeList = orderfeedetailBLL.GetOrder_Feedetails(orderInfoList.Select(x => x.billid).ToArray());

            var regInfo = reginfoBLL.GetReg_Info(Convert.ToInt32(orderInfoList.FirstOrDefault().regid));//挂号信息

            ImmunityBLL immunityBLL = new ImmunityBLL();
            IvfBLL      ivfBLL      = new IvfBLL();

            foreach (var orderInfo in orderInfoList)
            {
                orderInfo.feetime   = DateTime.Now;
                orderInfo.feestatus = "已收费";
                if (orderInfo.extern_source == "ivf")
                {
                    ivfBLL.SetIvfToll(orderInfo.billid, orderInfo.extern_source);
                }
                else if (orderInfo.extern_source == "immunity")
                {
                    immunityBLL.SetImmunityToll(orderInfo.billid, orderInfo.extern_source);
                }
            }
            orderInfoBLL.Updates(orderInfoList);

            var feeid = feeinfoBLL.AddReturnId(new fee_info()
            {
                mzno      = regInfo.mzno,
                pid       = regInfo.pid,
                regid     = regInfo.regid,
                ftype     = 0,
                amountrec = orderInfoList.Sum(x => x.totprice),
                amountcol = Convert.ToDecimal(ackPayOrder.model.totalAmout) / 100,
                userid    = 89757,
                username  = "******",
                addtime   = DateTime.Now,
                printqty  = 0,
                status    = 0,
                del       = false
            });

            List <fee_infodetail> fee_Infodetails = new List <fee_infodetail>();

            foreach (var order_Feedetail in orderfeeList)
            {
                fee_Infodetails.Add(new fee_infodetail()
                {
                    billid     = order_Feedetail.billid,
                    bdid       = order_Feedetail.bdid,
                    dgid       = order_Feedetail.dgid?.ToString(),
                    itemid     = order_Feedetail.itemid,
                    itemname   = order_Feedetail.itemname,
                    spec       = order_Feedetail.spec,
                    itemtype   = order_Feedetail.itemtype,
                    unit       = order_Feedetail.dpunit,
                    prices     = order_Feedetail.prices,
                    qty        = order_Feedetail.total,
                    feetype    = regInfo.feetype,
                    totalprice = order_Feedetail.totalprices,
                    bdfeeid    = order_Feedetail.bdfeeid,
                    execdept   = order_Feedetail.dept,
                    status     = 0,
                    addtime    = DateTime.Now,
                    addperson  = "自助机",
                    del        = false,
                    dosage     = order_Feedetail.dosage,
                    ybname     = order_Feedetail.ybname,
                    feeid      = feeid
                });
            }
            feeInfodetailBLL.Adds(fee_Infodetails);

            feeinfoBLL.AddFeechannel(new fee_channel()
            {
                feeid   = feeid,
                chnn    = ackPayOrder.model.payMode,
                amount  = Convert.ToDecimal(ackPayOrder.model.totalAmout) / 100,
                del     = false,
                chnnsno = ackPayOrder.model.psOrdNum
            });

            if (!string.IsNullOrWhiteSpace(ackPayOrder.model.ybjmc) && !string.IsNullOrWhiteSpace(ackPayOrder.model.mzlsh))  //医保
            {
                feeinfoBLL.AddFeechannel(new fee_channel()
                {
                    feeid   = feeid,
                    chnn    = "医疗保险",
                    amount  = (Convert.ToDecimal(ackPayOrder.model.totalAmout) - Convert.ToDecimal(ackPayOrder.model.payAmout)) / 100,
                    del     = false,
                    chnnsno = ackPayOrder.model.mzlsh
                });
            }
            return(XMLHelper.XmlSerialize(new response <Entity.SResponse.ackPayOrder>()
            {
                model = new Entity.SResponse.ackPayOrder()
                {
                    resultCode = 0,
                    resultMessage = "",
                    hisOrdNum = feeid.ToString(),
                    hisMessage = "支付成功"
                }
            }));
        }
        public string CardDeposit([FromBody] request <Entity.SlefServiceModels.CardDeposit> CardDeposit)
        {
            if (CardDeposit == null)
            {
                return(RsXmlHelper.ResXml(-1, "XML格式错误"));
            }
            var cardinfo = cardInfoBLL.GetCardByCno(CardDeposit.model.czkh);

            if (cardinfo == null && cardinfo.pid != null)
            {
                return(RsXmlHelper.ResXml(-1, "卡号为空"));
            }

            var pt_Info = ptInfoBLL.GetPt_Info(x => x.pid == cardinfo.pid);

            if (pt_Info == null)
            {
                return(RsXmlHelper.ResXml(-1, "患者信息为空"));
            }

            var feeinfo = feeinfoBLL.Get(CardDeposit.model.czdh);

            if (feeinfo != null)
            {
                return(XMLHelper.XmlSerialize(new response <Entity.SResponse.cardDeposit>()
                {
                    model = new Entity.SResponse.cardDeposit()
                    {
                        resultCode = 0,
                        resultMessage = "",
                        czzh = CardDeposit.model.czkh,
                        czye = CardDeposit.model.czje,
                        czhzhye = (cardinfo.cmoney * 100).ToString(),
                        name = pt_Info.pname,
                        idcard = pt_Info.idno
                    }
                }));
            }

            feeinfoBLL.DepositFeeinfo(Convert.ToInt32(cardinfo.pid), 0, Convert.ToDecimal(CardDeposit.model.czje) / 100, Convert.ToDecimal(CardDeposit.model.czje) / 100, 89757, "自助机", CardDeposit.model.czdh, CardDeposit.model.type, out int feeid);

            var cardinfoDeposit = cardInfoBLL.CardDeposit(CardDeposit.model.czkh, CardDeposit.model.czrsfzh, CardDeposit.model.czrjzkhr, Convert.ToDecimal(CardDeposit.model.czje) / 100, CardDeposit.model.czdh, CardDeposit.model.czdsfdh, CardDeposit.model.xm, CardDeposit.model.type, feeid);


            if (cardinfoDeposit == null)
            {
                return(RsXmlHelper.ResXml(99, "充值失败"));
            }
            else
            {
                return(XMLHelper.XmlSerialize(new response <Entity.SResponse.cardDeposit>()
                {
                    model = new Entity.SResponse.cardDeposit()
                    {
                        resultCode = 0,
                        resultMessage = "",
                        czzh = cardinfoDeposit.cno,
                        czye = CardDeposit.model.czje,
                        czhzhye = (cardinfoDeposit.cmoney * 100).ToString(),
                        name = pt_Info.pname,
                        idcard = pt_Info.idno
                    }
                }));
            }
        }
        public string GetRegSettlement(request <getRegSettlement> getRegSettlement)
        {
            if (getRegSettlement == null)
            {
                return(RsXmlHelper.ResXml(-1, "XML格式错误"));
            }

            var reg_Trial = regTrialBLL.Get(Convert.ToInt32(getRegSettlement.model.hisOrdNum));

            if (!string.IsNullOrWhiteSpace(reg_Trial.transBody))
            {
                return(XMLHelper.XmlSerialize(new response <RegSettlement>()
                {
                    model = new RegSettlement()
                    {
                        resultCode = 0, resultMessage = reg_Trial.transBody, akc190 = reg_Trial.akc190
                    }
                }));
            }
            var reg_trialDetails = regTrialdetailBLL.GetList(reg_Trial.id);

            MZ002 mZ002 = new MZ002()
            {
                akc190   = reg_Trial.akc190,
                aaz500   = reg_Trial.aaz500,
                bzz269   = reg_Trial.bzz269,
                alc005   = reg_Trial.alc005,
                aka130   = reg_Trial.aka130,
                akf001   = reg_Trial.akf001,
                bkc368   = reg_Trial.bkc368,
                aka120   = reg_Trial.aka120,
                akc188   = reg_Trial.akc188,
                akc189   = reg_Trial.akc189,
                bke384   = reg_Trial.bke384,
                akc264   = Convert.ToDecimal(reg_Trial.akc264),
                listsize = reg_trialDetails.Count
            };

            mZ002.inputlist = new List <inputlist>();
            foreach (var reg_Trialdetail in reg_trialDetails)
            {
                mZ002.inputlist.Add(new inputlist()
                {
                    aae072 = reg_Trialdetail.aae072,
                    bkf500 = reg_Trialdetail.bkf500,
                    ake001 = reg_Trialdetail.ake001,
                    ake005 = reg_Trialdetail.ake005,
                    ake006 = reg_Trialdetail.ake006,
                    aae019 = Convert.ToDecimal(reg_Trialdetail.aae019)
                });
            }

            var ybsssno = commKeyBLL.GetYBNO();

            var ybSno = "HZS10" + DateTime.Now.ToString("yyyyMMdd") + ybsssno;
            var getVerifyCodeResult = JsonOperator.JsonDeserialize <Entity.SResponse.getVerifyCode>(HttpHelper.Post("http://192.168.88.134:8300/YBDLL/domain/getVerifyCode", JsonOperator.JsonSerialize(new getVerifyCode()
            {
                inParam = "XX001|" + ybSno + "|HZS10|"
            }), Encoding.UTF8, 1));

            if (getVerifyCodeResult.resultCode != 0)
            {
                return(null);
            }

            var version = getVerifyCodeResult.outParam.Split("|")[2];
            var verify  = getVerifyCodeResult.outParam.Split("|")[0] + "|" + getVerifyCodeResult.outParam.Split("|")[1];
            var result  = HealthInsuranceHelper.RegTrial <BaseMedInsurance <Entity.SResponse.MZ002> >("MZ002", version, verify, ybsssno.ToString(), mZ002);

            if (result.transReturnCode == "0" || result.transReturnCode == "00000000")
            {
                reg_Trial.transBody = JsonOperator.JsonSerialize(result.transBody);
                regTrialBLL.Update(reg_Trial);
                return(XMLHelper.XmlSerialize(new response <RegSettlement>()
                {
                    model = new RegSettlement()
                    {
                        resultCode = 0, resultMessage = JsonOperator.JsonSerialize(result.transBody), akc190 = mZ002.akc190
                    }
                }));
            }
            else
            {
                return(RsXmlHelper.ResXml(99, result.transReturnMessage));
            }
        }
        public string GetMZInsurance(request <getClinicalTrial> getClinicalTrial)
        {
            if (getClinicalTrial == null)
            {
                return(RsXmlHelper.ResXml(-1, "XML格式错误"));
            }

            var reg_Trial        = regTrialBLL.Get(Convert.ToInt32(getClinicalTrial.model.hisOrdNum));
            var reg_trialDetails = regTrialdetailBLL.GetList(reg_Trial.id);

            var mz001 = new Entity.SRequest.MZ001()
            {
                akc190   = reg_Trial.akc190,
                aaz500   = reg_Trial.aaz500,
                alc005   = reg_Trial.alc005,
                aka130   = reg_Trial.aka130,
                akf001   = reg_Trial.akf001,
                bkc368   = reg_Trial.bkc368,
                akc264   = reg_Trial.akc264.ToString(),
                listsize = reg_trialDetails.Count.ToString()
            };

            mz001.inputlist = new List <Entity.SRequest.inputlist5>();
            foreach (var reg_Trialdetail in reg_trialDetails)
            {
                var inputlist5 = new inputlist5()
                {
                    aae072 = reg_Trialdetail.aae072,
                    bkf500 = reg_Trialdetail.bkf500,
                    ake001 = reg_Trialdetail.ake001,
                    ake005 = reg_Trialdetail.ake005,
                    ake006 = reg_Trialdetail.ake006,
                    aae019 = reg_Trialdetail.aae019.ToString()
                };
                mz001.inputlist.Add(inputlist5);
            }


            var ybsssno = commKeyBLL.GetYBNO();

            var ybSno = "HZS10" + DateTime.Now.ToString("yyyyMMdd") + ybsssno;
            var getVerifyCodeResult = JsonOperator.JsonDeserialize <Entity.SResponse.getVerifyCode>(HttpHelper.Post("http://192.168.88.134:8300/YBDLL/domain/getVerifyCode", JsonOperator.JsonSerialize(new getVerifyCode()
            {
                inParam = "XX001|" + ybSno + "|HZS10|"
            }), Encoding.UTF8, 1));

            if (getVerifyCodeResult.resultCode != 0)
            {
                return(null);
            }

            var version = getVerifyCodeResult.outParam.Split("|")[2];
            var verify  = getVerifyCodeResult.outParam.Split("|")[0] + "|" + getVerifyCodeResult.outParam.Split("|")[1];
            var result  = HealthInsuranceHelper.RegTrial <Entity.SResponse.pre_settlement>("MZ001", version, verify, ybsssno.ToString(), mz001);

            if (result.transReturnCode == "0" || result.transReturnCode == "00000000")
            {
                return(XMLHelper.XmlSerialize(new response <Entity.SResponse.getClinicalTrial>()
                {
                    model = new Entity.SResponse.getClinicalTrial()
                    {
                        resultCode = 0,
                        resultMessage = JsonOperator.JsonSerialize(result.transBody),
                        SSSerNum = ybSno,
                        cardArea = result.cardArea,
                        akc190 = mz001.akc190
                    }
                }));
            }
            else
            {
                return(RsXmlHelper.ResXml(-1, result.transReturnMessage));
            }
        }
        public string PayCurReg(request <Entity.SRequest.payCurReg> payCurReg)
        {
            if (payCurReg == null)
            {
                return(RsXmlHelper.ResXml(-1, "XML格式错误"));
            }

            string floor   = "";
            var    regInfo = reginfoBLL.GetReg_Info(Convert.ToInt32(payCurReg.model.hisOrdNum));

            if (regInfo == null)
            {
                return(RsXmlHelper.ResXml(99, "挂号信息为空"));
            }
            try
            {
                payCurReg.model.payMode = CodeConvertUtils.GetChannByCode(Convert.ToInt32(payCurReg.model.payMode));
            }
            catch
            {
                payCurReg.model.payMode = payCurReg.model.payMode;
            }

            var fee_info = feeinfoBLL.GetFee_InfoByRegInfo(Convert.ToInt32(payCurReg.model.hisOrdNum));

            fee_info.del         = false;
            fee_info.addtime     = payCurReg.model.payTime == null ? DateTime.Now : Convert.ToDateTime(payCurReg.model.payTime);
            fee_info.amountrec   = Convert.ToDecimal(payCurReg.model.payAmout) / 100;
            fee_info.amountcol   = Convert.ToDecimal(payCurReg.model.payAmout) / 100;
            fee_info.extern_memo = "hisOrdNum:" + payCurReg.model.hisOrdNum + ",psOrdNum:" + payCurReg.model.psOrdNum + ",agtOrdNum:" + payCurReg.model.agtOrdNum + ",agtCode:" + payCurReg.model.agtCode + ",payMode:" + payCurReg.model.payMode + ",payMethod:" + payCurReg.model.payMethod + ",payAmout:" + Convert.ToDecimal(payCurReg.model.payAmout) / 100 + ",payTime:" + payCurReg.model.payTime + (!string.IsNullOrWhiteSpace(payCurReg.model.SSSerialNo) ? ",自费金额:" + (Convert.ToDecimal(payCurReg.model.payAmout) - Convert.ToDecimal(payCurReg.model.SSMoney)) + "。" : "。");

            var feeinfodetails = feeInfodetailBLL.GetFee_Infodetails(fee_info.feeid);

            feeinfodetails.ForEach(x => x.del    = false);
            feeinfodetails.ForEach(x => x.status = 1);
            feeInfodetailBLL.Updates(feeinfodetails);

            regInfo.del = false;
            reginfoBLL.UpdateRegInfo(regInfo);
            floor = sysDeptBLL.GetFloorByName(regInfo.dept);

            feeinfoBLL.Update(fee_info);

            if ((Convert.ToDecimal(payCurReg.model.payAmout) - Convert.ToDecimal(payCurReg.model.SSMoney)) > 0)
            {
                feeinfoBLL.AddFeechannel(new fee_channel()
                {
                    feeid   = fee_info.feeid,
                    chnn    = payCurReg.model.payMode,
                    amount  = (Convert.ToDecimal(payCurReg.model.payAmout) - Convert.ToDecimal(payCurReg.model.SSMoney)) / 100,
                    del     = false,
                    chnnsno = payCurReg.model.psOrdNum
                });
            }

            if (payCurReg.model.payMethod == "2")//医保
            {
                feeinfoBLL.AddFeechannel(new fee_channel()
                {
                    feeid   = fee_info.feeid,
                    chnn    = "医疗保险",
                    amount  = Convert.ToDecimal(payCurReg.model.SSMoney) / 100,
                    del     = false,
                    chnnsno = payCurReg.model.SSSerialNo
                });
            }

            return(XMLHelper.XmlSerialize(new response <Entity.SResponse.payCurReg>()
            {
                model = new Entity.SResponse.payCurReg()
                {
                    resultCode = 0,
                    resultMessage = "",
                    visitLocation = floor
                }
            }));
        }
        public string OrderCurReg(request <Entity.SRequest.orderCurReg> orderCurRegInfo)
        {
            if (orderCurRegInfo == null)
            {
                return(RsXmlHelper.ResXml(-1, "XML格式错误"));
            }
            var feeinfo = feeinfoBLL.Get(orderCurRegInfo.model.psOrdNum);

            if (feeinfo != null)
            {
                return(XMLHelper.XmlSerialize(new response <Entity.SResponse.orderCurReg>()
                {
                    model = new Entity.SResponse.orderCurReg()
                    {
                        resultCode = 0,
                        resultMessage = "",
                        hisOrdNum = feeinfo.regid.ToString(),
                        treatFee = orderCurRegInfo.model.regFee
                    }
                }));
            }

            reg_arrange reg_Arrange = null;
            pt_info     pt_Info     = null;
            var         dept        = new sys_dept();
            var         doctor      = new sys_userinfo();


            if (!string.IsNullOrWhiteSpace(orderCurRegInfo.model.workId))
            {
                reg_Arrange = regArrangeBLL.GetReg_Arrange(Convert.ToInt32(orderCurRegInfo.model.workId));
            }
            else
            {
                dept        = sysDeptBLL.GetDeptByCode(orderCurRegInfo.model.deptCode);
                doctor      = sysUserinfoBLL.GetRDoctor(orderCurRegInfo.model.doctorCode);
                reg_Arrange = regArrangeBLL.GetReg_Arrange(dept.name, doctor.username, orderCurRegInfo.model.beginTime, orderCurRegInfo.model.endTime, Convert.ToInt32(orderCurRegInfo.model.timeFlag));
            }
            if (reg_Arrange == null)
            {
                return(RsXmlHelper.ResXml(-1, "无号源信息"));
            }

            var feetype = "";

            if (!string.IsNullOrWhiteSpace(orderCurRegInfo.model.SSCardNumber) && !string.IsNullOrWhiteSpace(orderCurRegInfo.model.SSCodeId))
            {
                feetype = "医疗保险";
                if (string.IsNullOrWhiteSpace(orderCurRegInfo.model.SSPwd))
                {
                    orderCurRegInfo.model.SSPwd = "000000";
                }
                pt_Info = ptInfoBLL.GetPt_Info(x => x.yno == orderCurRegInfo.model.SSCardNumber);
                if (pt_Info == null)
                {
                    pt_Info = ptInfoBLL.GetPt_Info(x => x.cno == orderCurRegInfo.model.patCardNo || x.idno == orderCurRegInfo.model.patCardNo);
                    if (string.IsNullOrWhiteSpace(pt_Info.yno))
                    {
                        pt_Info.yno = orderCurRegInfo.model.SSCardNumber;
                        ptInfoBLL.Update(pt_Info);
                    }
                }
            }
            else
            {
                feetype = "自费";
                pt_Info = ptInfoBLL.GetPt_Info(x => x.cno == orderCurRegInfo.model.patCardNo || x.idno == orderCurRegInfo.model.patCardNo);
            }

            var regInfo = reginfoBLL.Get(x => x.doctor == doctor.username && x.dept == dept.name && pt_Info.pid == x.pid && x.status == "候诊" && x.validate > DateTime.Now);

            if (regInfo != null && regInfo.del == true)
            {
                return(XMLHelper.XmlSerialize(new response <Entity.SResponse.orderCurReg>()
                {
                    model = new Entity.SResponse.orderCurReg()
                    {
                        resultCode = 0,
                        resultMessage = "",
                        hisOrdNum = regInfo.regid.ToString(),
                        treatFee = orderCurRegInfo.model.ghhj.ToString()
                    }
                }));
            }

            if (regInfo != null && regInfo.del == false)
            {
                return(RsXmlHelper.ResXml(-1, "你已挂当前科室号"));
            }

            var reg_Info = reginfoBLL.Add(new reg_info()
            {
                feetype = feetype
            }, pt_Info, reg_Arrange, orderCurRegInfo.model.orderNo, orderCurRegInfo.model.psOrdNum, out decimal amount, out int mzno, out int feeid, out List <comm_fee> commFees);

            if (reg_Info == null)
            {
                return(RsXmlHelper.ResXml(99, "挂号失败"));
            }

            if (feetype == "医疗保险")
            {
                var regtrialId = regTrialBLL.AddReturnId(new reg_trial()
                {
                    akc190 = "HZS10" + mzno,
                    aaz500 = orderCurRegInfo.model.SSCodeId,
                    bzz269 = orderCurRegInfo.model.SSPwd,
                    aka130 = "11",
                    akf001 = dept.ybno,
                    bkc368 = CodeConvertUtils.SwichRegType(reg_Arrange.regtype).ToString(),
                    bke384 = "HZS10" + DateTime.Now.ToString("yyyyMMdd") + feeid,
                    akc264 = commFees.Sum(x => x.prices),
                    regid  = reg_Info.regid
                });

                List <reg_trialdetail> reg_Trialdetails = new List <reg_trialdetail>();
                foreach (var commFee in commFees)
                {
                    reg_Trialdetails.Add(new reg_trialdetail()
                    {
                        regtrialid = regtrialId,
                        aae072     = commKeyBLL.GetYBDJH().ToString(),
                        bkf500     = commKeyBLL.GetYBXLH().ToString(),
                        ake001     = commFee.scode,
                        ake005     = commFee.itemid,
                        ake006     = commFee.itemname,
                        aae019     = commFee.prices
                    });
                }
                regTrialdetailBLL.Adds(reg_Trialdetails);
            }

            return(XMLHelper.XmlSerialize(new response <Entity.SResponse.orderCurReg>()
            {
                model = new Entity.SResponse.orderCurReg()
                {
                    resultCode = 0,
                    resultMessage = "",
                    hisOrdNum = reg_Info.regid.ToString(),
                    treatFee = amount.ToString()
                }
            }));
        }
        public string CreateACard([FromBody] request <CreateACard> createACard)
        {
            if (createACard == null)
            {
                return(RsXmlHelper.ResXml("-1", "XML格式错误"));
            }
            var ptInfo = ptInfoBLL.GetPt_Info(x => x.idno == createACard.model.patIdNo);

            if (ptInfo != null)
            {
                return(RsXmlHelper.ResXml("1", "患者信息已存在"));
            }

            pt_info pt_Info = null;

            if (!string.IsNullOrWhiteSpace(createACard.model.patYbkh) && !string.IsNullOrWhiteSpace(createACard.model.patDnh) && !string.IsNullOrWhiteSpace(createACard.model.patYbjbmc) && !string.IsNullOrWhiteSpace(createACard.model.patCblx))
            {
                pt_Info = new pt_info()
                {
                    pname      = createACard.model.patName,
                    sex        = createACard.model.patSex == "M" ? "男" : "女",
                    birth      = Convert.ToDateTime(createACard.model.patBirth),
                    addr1      = createACard.model.patAddress,
                    tel        = createACard.model.patMobile,
                    ybidentity = createACard.model.patYbjbmc,
                    yno        = createACard.model.patDnh,
                    patYbjbmc  = createACard.model.patYbjbmc,
                    patCblx    = createACard.model.patCblx,
                    idtype     = CodeConvertUtils.GetIdNoType(Convert.ToInt32(createACard.model.patIdType)),
                    idno       = createACard.model.patIdNo,
                    addtime    = DateTime.Now,
                    del        = false,
                    pinyin     = Pinyin.GetInitials(createACard.model.patName).ToLower(),
                    memo       = "患者通过自助机建档",
                    addperson  = "自助机"
                };
            }
            else
            {
                pt_Info = new pt_info()
                {
                    pname     = createACard.model.patName,
                    sex       = createACard.model.patSex == "M" ? "男" : "女",
                    birth     = Convert.ToDateTime(createACard.model.patBirth),
                    addr1     = createACard.model.patAddress,
                    tel       = createACard.model.patMobile,
                    idtype    = CodeConvertUtils.GetIdNoType(Convert.ToInt32(createACard.model.patIdType)),
                    idno      = createACard.model.patIdNo,
                    addtime   = DateTime.Now,
                    del       = false,
                    pinyin    = Pinyin.GetInitials(createACard.model.patName).ToLower(),
                    memo      = "患者通过自助机建档",
                    addperson = "自助机"
                };
            }

            var isAdd = ptInfoBLL.Add(pt_Info);

            if (isAdd != null)
            {
                return(XMLHelper.XmlSerialize(new response <Entity.SResponse.createACard>()
                {
                    model = new Entity.SResponse.createACard()
                    {
                        resultCode = "0",
                        resultMessage = "",
                        patCardType = createACard.model.patIdType,
                        patCardNo = createACard.model.patIdNo
                    }
                }));
            }
            else
            {
                return(RsXmlHelper.ResXml("99", "建档失败"));
            }
        }