示例#1
0
        /// <summary>
        /// 取消住院明细上传
        /// </summary>
        /// <param name="controlParam"></param>
        /// <param name="inputParam"></param>
        /// <param name="operatorId"></param>
        /// <returns></returns>
        public ApiJsonResultData CancelUploadHospitalizationDetail(string controlParam, string inputParam, string operatorId)
        {
            var iniParam = new YiHaiMedicalInsuranceOperationParam
            {
                TransactionNumber = "43",
                ControlParam      = controlParam,
                OperatorId        = operatorId,
                InputParam        = inputParam,
            };
            var resultData = YiHaiMedicalInsuranceOperation(iniParam);

            return(resultData);
        }
示例#2
0
        /// <summary>
        /// 门特申请查询
        /// </summary>
        /// <param name="controlParam"></param>
        /// <param name="inputParam"></param>
        /// <param name="operatorId"></param>
        /// <returns></returns>
        public ApiJsonResultData QuerySpecialDiseases(string controlParam, string inputParam, string operatorId)
        {
            var iniParam = new YiHaiMedicalInsuranceOperationParam
            {
                TransactionNumber = "16",
                ControlParam      = controlParam,
                OperatorId        = operatorId,
                InputParam        = inputParam,
            };
            var resultData = YiHaiMedicalInsuranceOperation(iniParam);

            return(resultData);
        }
示例#3
0
        /// <summary>
        /// 门诊费用明细上传
        /// </summary>
        /// <param name="controlParam"></param>
        /// <param name="inputParam"></param>
        /// <param name="operatorId"></param>
        /// <returns></returns>
        public ApiJsonResultData OutpatientDetailUpload(string controlParam, string inputParam, string operatorId)
        {
            var iniParam = new YiHaiMedicalInsuranceOperationParam
            {
                TransactionNumber = "111",
                ControlParam      = controlParam,
                OperatorId        = operatorId,
                InputParam        = inputParam,
            };
            var resultData = YiHaiMedicalInsuranceOperation(iniParam);

            return(resultData);
        }
示例#4
0
        /// <summary>
        /// 出院结算
        /// </summary>
        /// <param name="controlParam"></param>
        /// <param name="inputParam"></param>
        /// <param name="operatorId"></param>
        /// <returns></returns>
        public ApiJsonResultData LeaveHospitalizationSettlement(string controlParam, string inputParam, string operatorId)
        {
            var iniParam = new YiHaiMedicalInsuranceOperationParam
            {
                TransactionNumber = "52",
                ControlParam      = controlParam,
                OperatorId        = operatorId,
                InputParam        = inputParam,
            };
            var resultData = YiHaiMedicalInsuranceOperation(iniParam);

            return(resultData);
        }
示例#5
0
        /// <summary>
        /// 获取服务项目
        /// </summary>
        /// <param name="controlParam"></param>
        /// <param name="inputParam"></param>
        /// <param name="operatorId"></param>
        /// <returns></returns>
        public ApiJsonResultData GetServiceCatalog(string controlParam, string inputParam, string operatorId)
        {
            var iniParam = new YiHaiMedicalInsuranceOperationParam
            {
                TransactionNumber = "91",
                ControlParam      = controlParam,
                OperatorId        = operatorId,
                InputParam        = inputParam,
            };
            var resultData = YiHaiMedicalInsuranceOperation(iniParam);

            return(resultData);
        }
示例#6
0
        /// <summary>
        /// 取消医保签到
        /// </summary>
        /// <param name="controlParam"></param>
        /// <param name="inputParam"></param>
        /// <param name="operatorId"></param>
        /// <returns></returns>
        public ApiJsonResultData CancelMedicalInsuranceSignIn(string controlParam, string inputParam, string operatorId)
        {
            var iniParam = new YiHaiMedicalInsuranceOperationParam
            {
                TransactionOutputXml = XmlHelp.YinHaiXmlSerialize(new OutputXmlBaseDto()),
                TransactionNumber    = "06",
                ControlParam         = controlParam,
                OperatorId           = operatorId,
                InputParam           = inputParam,
            };
            var resultData = YiHaiMedicalInsuranceOperation(iniParam);

            return(resultData);
        }
示例#7
0
        /// <summary>
        /// 医保签到
        /// </summary>
        /// <param name="controlParam"></param>
        /// <param name="inputParam"></param>
        /// <param name="operatorId"></param>
        /// <returns></returns>
        public ApiJsonResultData MedicalInsuranceSignIn(string controlParam, string inputParam, string operatorId)
        {
            //var resultXmlData = new MedicalInsuranceSignInXmlDto();
            //var xmlRowList = new List<MedicalInsuranceSignInXmlRowDto>
            //{
            //    new MedicalInsuranceSignInXmlRowDto()
            //    {
            //        BatchNo = DateTime.Now.ToString("yyyyMMddHHmmss"),
            //        SignInState = 1,
            //        SignInTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
            //        MedicalInsuranceOrganization = "007"
            //    }
            //};
            //resultXmlData.Row = xmlRowList;


            var iniParam = new YiHaiMedicalInsuranceOperationParam
            {
                //TransactionOutputXml = XmlHelp.YinHaiXmlSerialize(resultXmlData),
                TransactionNumber = "05",
                ControlParam      = controlParam,
                OperatorId        = operatorId,
                InputParam        = inputParam
            };
            string msg;
            var    initData = YinHaiCOM.Init(out msg);

            if (initData == false)
            {
                throw new  Exception("初始化失败:" + msg);
            }
            var resultData = YiHaiMedicalInsuranceOperation(iniParam);

            //设置操作人员
            YinHaiCOM.SetSignInUserId(operatorId);
            return(resultData);
        }
示例#8
0
        /// <summary>
        /// 获取测试回参
        /// </summary>
        /// <returns></returns>
        private DealModel GetDealModelTest(YiHaiMedicalInsuranceOperationParam param)
        {
            var resultData = new DealModel()
            {
                TransactionNumber     = param.TransactionNumber,
                TransactionControlXml = param.ControlParam,
                TransactionInputXml   = param.InputParam,
                along_appcode         = 1
            };
            string xmlStr = null;

            xmlStr = "<?xml version=\"1.0\" encoding=\"GBK\" standalone=\"yes\"?>";
            //挂号
            if (param.TransactionNumber == "110")
            {
                xmlStr += @"
                      <output>
                            <yac112>3</yac112>
                            <akc190>00032005299161202</akc190>
                            <aka130>0203</aka130>
                            <aac001>010025489</aac001>
                            <aac003>李蓉</aac003>
                            <aac004>2</aac004>
                            <aac006>1965-10-03 00:00:00</aac006>
                            <aae013></aae013>
                            <akb020>098041</akb020>
                            <aae011>李茜</aae011>
                            <aae036>2020-05-29 17:27:48</aae036>
                            <yka103>00032005296415696</yka103>
                            <yka055>3.00</yka055>
                            <yka056>3.00</yka056>
                            <yka111>0.00</yka111>
                            <yka057>0.00</yka057>
                            <grzhye>
                                <row>
                                    <ykc303>城乡居民基本医疗帐户</ykc303>
                                    <ykc194>0.00</ykc194>
                                </row>
                            </grzhye>
                            <yka065>0.00</yka065>
                            <yka107>0.00</yka107>
                            <ykd007>01</ykd007>
                            <ykh012>3.00</ykh012>
                            <yab003>0003</yab003>
                            <dataset>
                                <row>
                                    <yka316>68</yka316>
                                    <yab139>0003</yab139>
                                    <aka213>0101</aka213>
                                    <yka115>0.00</yka115>
                                    <yka058>0.00</yka058>
                                    <ykc125>0.0000</ykc125>
                                    <yka107>0.00</yka107>
                                    <yka065>0.00</yka065>
                                    <ykc121>0101</ykc121>
                                    <ykb037>0008</ykb037>
                                    <yka054>01</yka054>
                                </row>
                            </dataset>
                            <ykc008_c>不享受</ykc008_c>
                            <yke484>3</yke484>
                            <fymxdataset>
                                <row>
                                    <yka105>5055095653710533604</yka105>
                                    <yka299>1.00</yka299>
                                    <yka096>1.0000</yka096>
                                    <yka056>3.0000</yka056>
                                    <yka057>0.0000</yka057>
                                    <yka111>0.0000</yka111>
                                    <yke011>0</yke011>
                                    <yka095>挂号费</yka095>
                                    <akc226>1.0000</akc226>
                                    <akc225>3.0000</akc225>
                                    <yka055>3.0000</yka055>
                                </row>
                            </fymxdataset>
                        </output>";
                resultData.TransactionOutputXml = xmlStr;
                resultData.BatchNo          = "0003S293400370";
                resultData.SerialNumber     = "110C0003SJ37F6E43E";
                resultData.VerificationCode = "213323699";
            }

            //上传费用
            if (param.TransactionNumber == "111")
            {
                xmlStr += @"
                        <output>
                            <fymxdataset>
                                <row>
                                    <yka105>5664372604401824683</yka105>
                                    <yka299>999999999.00</yka299>
                                    <yka096>0.0000</yka096>
                                    <yka056>0.0000</yka056>
                                    <yka057>0.0000</yka057>
                                    <yka111>3.0000</yka111>
                                    <yke011>0</yke011>
                                    <yke474></yke474>
                                    <yke492></yke492>
                                    <yke493>3</yke493>
                                    <yke494>
                                        <![CDATA[ 违反【诊断库与科室关联】]]>
                                    </yke494>
                                    <yka095>阿莫西林胶囊</yka095>
                                    <akc226>1.0000</akc226>
                                    <akc225>3.0000</akc225>
                                    <yka055>3.0000</yka055>
                                </row>
                            </fymxdataset>
                        </output>";
                resultData.TransactionOutputXml = xmlStr;
            }
            //结算
            if (param.TransactionNumber == "11")
            {
                xmlStr += @"
                        <output>
                  <yac112>1</yac112> 
                  <akc190>00002005289161163</akc190> 
                  <aka130>0201</aka130> 
                  <aac001>010000502</aac001> 
                  <akb020>098041</akb020> 
                  <aae011>李茜</aae011> 
                  <aae036>2020-05-28 18:19:42</aae036> 
                  <yka103>00002005286415621</yka103> 
                  <yka055>2.50</yka055> 
                  <yka056>0.00</yka056> 
                  <yka111>2.25</yka111> 
                  <yka057>0.25</yka057> 
                  <yka065>0.00</yka065> 
                  <yka107>0.00</yka107> 
                  <ykd007>01</ykd007> 
                  <ykh012>2.50</ykh012> 
                  <yab003>0000</yab003> 
                <dataset>
                <row>
                  <yka316>21</yka316> 
                  <yab139>0000</yab139> 
                  <aka213>0101</aka213> 
                  <yka115>0.00</yka115> 
                  <yka058>0.00</yka058> 
                  <ykc125>0.0000</ykc125> 
                  <yka107>0.00</yka107> 
                  <yka065>0.00</yka065> 
                  <ykc121>0101</ykc121> 
                  <ykb037>0008</ykb037> 
                  <yka054>01</yka054> 
                  </row>
                  </dataset>
                 <fymxdataset>
                 <row>
                  <yka105>5751238559876800263</yka105> 
                  <yka299>999999999.00</yka299> 
                  <yka096>0.1000</yka096> 
                  <yka056>0.0000</yka056> 
                  <yka057>0.2500</yka057> 
                  <yka111>2.2500</yka111> 
                  <yke011>0</yke011> 
                  </row>
                  </fymxdataset>
                 <grzhye>
                 <row>
                  <ykc303>城镇职工基本医疗帐户</ykc303> 
                  <ykc194>0.00</ykc194> 
                  </row>
                  </grzhye>
                  </output>";
                resultData.TransactionOutputXml = xmlStr;
                resultData.BatchNo          = "0000S293400211";
                resultData.SerialNumber     = "11C0000SJ37F6E2F2";
                resultData.VerificationCode = "206541290";
            }

            //取消结算
            if (param.TransactionNumber == "12")
            {
                xmlStr += @"
                        <output>
                  <yac112>1</yac112> 
                  <akc190>00002005289161163</akc190> 
                  <aka130>0201</aka130> 
                  <aac001>010000502</aac001> 
                  <akb020>098041</akb020> 
                  <aae011>李茜</aae011> 
                  <aae036>2020-05-28 18:19:42</aae036> 
                  <yka103>00002005286415621</yka103> 
                  <yka055>2.50</yka055> 
                  <yka056>0.00</yka056> 
                  <yka111>2.25</yka111> 
                  <yka057>0.25</yka057> 
                  <yka065>0.00</yka065> 
                  <yka107>0.00</yka107> 
                  <ykd007>01</ykd007> 
                  <ykh012>2.50</ykh012> 
                  <yab003>0000</yab003> 
                <dataset>
                <row>
                  <yka316>21</yka316> 
                  <yab139>0000</yab139> 
                  <aka213>0101</aka213> 
                  <yka115>0.00</yka115> 
                  <yka058>0.00</yka058> 
                  <ykc125>0.0000</ykc125> 
                  <yka107>0.00</yka107> 
                  <yka065>0.00</yka065> 
                  <ykc121>0101</ykc121> 
                  <ykb037>0008</ykb037> 
                  <yka054>01</yka054> 
                  </row>
                  </dataset>
                 <fymxdataset>
                 <row>
                  <yka105>5751238559876800263</yka105> 
                  <yka299>999999999.00</yka299> 
                  <yka096>0.1000</yka096> 
                  <yka056>0.0000</yka056> 
                  <yka057>0.2500</yka057> 
                  <yka111>2.2500</yka111> 
                  <yke011>0</yke011> 
                  </row>
                  </fymxdataset>
                 <grzhye>
                 <row>
                  <ykc303>城镇职工基本医疗帐户</ykc303> 
                  <ykc194>0.00</ykc194> 
                  </row>
                  </grzhye>
                  </output>";
                resultData.TransactionOutputXml = xmlStr;
                resultData.BatchNo          = "0000S293400215";
                resultData.SerialNumber     = "12C0000SJ37F6E2F8";
                resultData.VerificationCode = "497473752";
            }

            if (param.TransactionNumber == "55")
            {
                xmlStr += @"<output></output>";
                resultData.TransactionOutputXml = xmlStr;
            }
            if (param.TransactionNumber == "05")
            {
                xmlStr += @"<output><row><yab003>0022</yab003><yke190>1</yke190><yke189>0022S293400084</yke189><yke191>2020-05-27 17:38:21</yke191><aae013></aae013> </row></output>";
                resultData.TransactionOutputXml = xmlStr;
            }
            //入院登记
            if (param.TransactionNumber == "21")
            {
                resultData.SerialNumber = "21C0000SJ37F6F177";
                resultData.BatchNo      = "0000S293400952";
                xmlStr += @"<output>
                            <akb020>098041</akb020>
                            <yab003>0003</yab003>
                            <aka130>0309</aka130>
                            <akc190>00032006209161476</akc190>
                            <aac001>010025489</aac001>
                            <aac003>李蓉</aac003>
                            <aac004>2</aac004>
                            <aac006>1965-10-03 00:00:00</aac006>
                            <akc021>02</akc021>
                            <yka026></yka026>
                            <yka115>500.00</yka115>
                            <yka119>252768.00</yka119>
                            <aae013></aae013>
                        </output>";
                resultData.TransactionOutputXml = xmlStr;
            }
            //取消入院登记
            if (param.TransactionNumber == "22")
            {
                resultData.SerialNumber = "22C0003SJ37F6F17C";
                resultData.BatchNo      = "0003S293400960";
                xmlStr += @"<output></output>";
                resultData.TransactionOutputXml = xmlStr;
            }
            //修改入院登记
            if (param.TransactionNumber == "23")
            {
                xmlStr += @"<output></output>";
                resultData.TransactionOutputXml = xmlStr;
            }
            return(resultData);
        }
示例#9
0
        /// <summary>
        /// 银海医保执行
        /// </summary>
        /// <param name="param"></param>
        /// <returns></returns>
        public ApiJsonResultData YiHaiMedicalInsuranceOperation(YiHaiMedicalInsuranceOperationParam param)
        {
            var resultData = new ApiJsonResultData {
                Success = true
            };
            var iniParam = new DealModel()
            {
                TransactionNumber     = param.TransactionNumber,
                TransactionControlXml = param.ControlParam,
                TransactionInputXml   = param.InputParam,
            };

            try
            {
                Logs.LogWrite(new LogParam()
                {
                    Params       = param.ControlParam,
                    ResultData   = param.InputParam,
                    OperatorCode = param.OperatorId
                });

                if (!string.IsNullOrWhiteSpace(param.TransactionOutputXml))
                {
                    iniParam.TransactionOutputXml = param.TransactionOutputXml;
                    iniParam.along_appcode        = 1;
                }
                else
                {
                    YinHaiCOM.CallDeal(iniParam);
                    //测试执行
                    //iniParam = GetDealModelTest(param);
                    if (iniParam.along_appcode < 0)
                    {
                        throw new Exception("yinHaiMsg" + iniParam.Msg);
                    }
                }

                resultData.OtherInfo = iniParam.SerialNumber;
                resultData.Data      = JsonConvert.SerializeObject(iniParam);
                //签到取消日志记录
                if (param.TransactionNumber != "05")
                {
                    Logs.LogWriteData(new LogWriteDataParam
                    {
                        JoinJson   = "",
                        ReturnJson = resultData.Data.ToString(),
                        OperatorId = param.OperatorId
                    });
                }
            }
            catch (Exception e)
            {
                resultData.Success = false;
                resultData.Message = e.Message;
                Logs.LogErrorWrite(new LogParam()
                {
                    Msg          = e.Message + "error:" + e.StackTrace,
                    OperatorCode = param.OperatorId,
                    ResultData   = JsonConvert.SerializeObject(iniParam)
                });
            }

            return(resultData);
        }
示例#10
0
        /// <summary>
        /// 确认交易
        /// </summary>
        /// <param name="controlParam"></param>
        /// <param name="inputParam"></param>
        /// <param name="operatorId"></param>
        /// <returns></returns>
        public ApiJsonResultData ConfirmDeal(string controlParam, string inputParam, string operatorId)
        {
            var resultData = new ApiJsonResultData {
                Success = true
            };
            var param = new YiHaiMedicalInsuranceOperationParam
            {
                ControlParam = controlParam,
                OperatorId   = operatorId,
                InputParam   = inputParam,
            };

            var iniParam = new DealModel()
            {
                SerialNumber     = controlParam,
                VerificationCode = inputParam,
            };

            try
            {
                Logs.LogWrite(new LogParam()
                {
                    Params       = param.ControlParam,
                    ResultData   = param.InputParam,
                    OperatorCode = param.OperatorId
                });

                if (!string.IsNullOrWhiteSpace(param.TransactionOutputXml))
                {
                    iniParam.TransactionOutputXml = param.TransactionOutputXml;
                    iniParam.along_appcode        = 1;
                }
                else
                {
                    YinHaiCOM.ConfirmDeal(iniParam);
                    //测试
                    //iniParam.along_appcode = 1;
                    if (iniParam.along_appcode < 0)
                    {
                        throw new Exception("yinHaiMsg" + iniParam.Msg);
                    }
                }
                resultData.Data = JsonConvert.SerializeObject(iniParam);

                Logs.LogWriteData(new LogWriteDataParam
                {
                    JoinJson   = "",
                    ReturnJson = resultData.Data.ToString(),
                    OperatorId = param.OperatorId
                });
            }
            catch (Exception e)
            {
                resultData.Success = false;
                resultData.Message = e.Message;
                Logs.LogErrorWrite(new LogParam()
                {
                    Msg          = e.Message + "error:" + e.StackTrace,
                    OperatorCode = param.OperatorId,
                    ResultData   = JsonConvert.SerializeObject(iniParam)
                });
            }

            return(resultData);
        }
示例#11
0
        /// <summary>
        /// 查询不确定交易
        /// </summary>
        /// <param name="controlParam"></param>
        /// <param name="inputParam"></param>
        /// <param name="operatorId"></param>
        /// <returns></returns>
        public ApiJsonResultData Getuncertaintytrade(string controlParam, string inputParam, string operatorId)
        {
            var resultData = new ApiJsonResultData {
                Success = true
            };
            var param = new YiHaiMedicalInsuranceOperationParam
            {
                ControlParam = controlParam,
                OperatorId   = operatorId,
                InputParam   = inputParam,
            };

            var iniParam = new DealModel()
            {
                TransactionNumber = param.ControlParam,
            };

            try
            {
                Logs.LogWrite(new LogParam()
                {
                    Params       = param.ControlParam,
                    ResultData   = param.InputParam,
                    OperatorCode = param.OperatorId
                });

                if (!string.IsNullOrWhiteSpace(param.TransactionOutputXml))
                {
                    iniParam.TransactionOutputXml = param.TransactionOutputXml;
                    iniParam.along_appcode        = 1;
                }
                else
                {
                    YinHaiCOM.Getuncertaintytrade(iniParam);

                    //var outputData = new QueryUncertainTransactionOutputXmlDto();
                    //var listRow = new List<QueryUncertainTransactionOutputRowXmlDto>();
                    //listRow.Add(new QueryUncertainTransactionOutputRowXmlDto()
                    //{
                    //    SerialNumber = "12C0000SJ37F6E2F8",
                    //    Key = new List<QueryUncertainTransactionOutputRowKeyXmlDto>()
                    //    {
                    //        new QueryUncertainTransactionOutputRowKeyXmlDto()
                    //        { SettlementNo = "0003S293400370",
                    //          VisitNo = "00002005289161163",
                    //            ReimbursementType = "门诊结算"
                    //        },new QueryUncertainTransactionOutputRowKeyXmlDto()
                    //        {
                    //            SettlementNo = "0003S293400370",
                    //            VisitNo = "00002005289161163",
                    //            ReimbursementType = "门诊结算"
                    //        }
                    //    }
                    //});
                    //outputData.Row = listRow;
                    //XmlHelp.YinHaiXmlSerialize(outputData);
                    //iniParam.TransactionOutputXml =
                    //----

                    if (iniParam.along_appcode < 0)
                    {
                        throw new Exception("yinHaiMsg" + iniParam.Msg);
                    }
                }
                resultData.Data = JsonConvert.SerializeObject(iniParam);

                Logs.LogWriteData(new LogWriteDataParam
                {
                    JoinJson   = "",
                    ReturnJson = resultData.Data.ToString(),
                    OperatorId = param.OperatorId
                });
            }
            catch (Exception e)
            {
                resultData.Success = false;
                resultData.Message = e.Message;
                Logs.LogErrorWrite(new LogParam()
                {
                    Msg          = e.Message + "error:" + e.StackTrace,
                    OperatorCode = param.OperatorId,
                    ResultData   = JsonConvert.SerializeObject(iniParam)
                });
            }

            return(resultData);
        }