Ejemplo n.º 1
0
        /// <summary>
        /// 分解费用
        /// </summary>
        /// <param name="sDll"></param>
        /// <returns></returns>
        public ResultClass Divide(SiInterfaceDll sDll, HIS_Entity.MIManage.Common.Reg.root root)
        {
            string sMome = "";
            bool   bRet  = false;
            string sOut;
            string sIn = XmlUtil.SerializeToXml(root, typeof(HIS_Entity.MIManage.Common.Reg.root));
            string sOut1;

            sDll.Divide(sIn, out sOut);

            AddLog("分解输出数据:");
            AddLog(sOut);
            HIS_Entity.MIManage.Common.DivideResult.root divideResult = (HIS_Entity.MIManage.Common.DivideResult.root)(XmlUtil.DeserializeFromXml(sOut, typeof(HIS_Entity.MIManage.Common.DivideResult.root)));
            XmlDocument xmlDoc = GetXmlDoc(sOut);

            CheckOutputState(xmlDoc, out bRet, out sMome);

            ResultClass resultClassTemp = new ResultClass();

            resultClassTemp.bSucess  = bRet;
            resultClassTemp.sRemarks = sMome;

            resultClassTemp.oResult = divideResult;
            return(resultClassTemp);
        }
Ejemplo n.º 2
0
        public override ResultClass MZ_GetPersonInfo(InputClass inputClass)
        {
            sDll = new SiInterfaceDll();
            string sCardNo = inputClass.SInput.ContainsKey(InputType.CardNo) ? inputClass.SInput[InputType.CardNo].ToString() : "";

            return(ybInterfaceDao.Mz_GetPersonInfo(sDll, sCardNo));
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 调用收据重打接口
        /// </summary>
        /// <param name="sDll"></param>
        /// <returns></returns>
        public ResultClass RePrintInvoice(SiInterfaceDll sDll)
        {
            string sMome = "";
            bool   bRet  = false;

            string sOut;
            string sDealID, sFeeNO;

            sDealID = "011100030A090115000014";
            sFeeNO  = "xxxxxx";

            AddLog("调用收据重打接口");
            AddLog("输入参数:");
            AddLog("交易流水号:" + sDealID);
            AddLog("收费单据号:" + sFeeNO);

            sDll.RePrintInvoice(sDealID, sFeeNO, out sOut);

            AddLog("输出数据:");
            AddLog(sOut);

            XmlDocument xmlDoc = GetXmlDoc(sOut);

            CheckOutputState(xmlDoc, out bRet, out sMome);
            xmlDoc = null;
            AddLog("\r\n");
            ResultClass resultClassTemp = new ResultClass();

            resultClassTemp.bSucess  = bRet;
            resultClassTemp.sRemarks = sMome;
            resultClassTemp.oResult  = null;
            return(resultClassTemp);
        }
        /// <summary>
        /// 门诊预登记
        /// </summary>
        /// <param name="root"></param>
        /// <returns></returns>
        public ResultClass MZ_PreviewRegister(SiInterfaceDll sDll, Reg.root root)
        {
            ResultClass resultClass = new ResultClass();

            try
            {
                resultClass = iface.OpenDevice(sDll);
                if (resultClass.bSucess)
                {
                    resultClass = iface.GetPersonInfo(sDll, _cardNo);
                    resultClass = iface.Divide(sDll, root);
                    iface.CloseDevice(sDll);
                }
                else
                {
                    resultClass.oResult = null;
                }
                sDll = null;
            }
            catch (Exception e)
            {
                resultClass.bSucess  = false;
                resultClass.sRemarks = e.Message;
                resultClass.oResult  = null;
            }
            return(resultClass);
        }
        /// <summary>
        /// 获取病人信息
        /// </summary>
        public ResultClass Mz_GetPersonInfo(SiInterfaceDll sDll, string cardNo)
        {
            _cardNo = cardNo;
            ResultClass resultClass = new ResultClass();

            try
            {
                resultClass = iface.OpenDevice(sDll);
                if (resultClass.bSucess)
                {
                    resultClass = iface.GetPersonInfo(sDll, cardNo);
                    iface.CloseDevice(sDll);
                }
                else
                {
                    resultClass.oResult = null;
                }
                sDll = null;
            }
            catch (Exception e)
            {
                resultClass.bSucess  = false;
                resultClass.sRemarks = e.Message;
                resultClass.oResult  = null;
            }
            return(resultClass);
        }
Ejemplo n.º 6
0
        /// <summary>
        /// 调用获取个人信息接口
        /// 返回ResultClass oResult为PatientInfo
        /// </summary>
        /// <param name="sCardNo">医保卡号,直接读卡则为""</param>

        public static ResultClass Mz_GetPersonInfo(string sCardNo)
        {
            ResultClass resultClass = new ResultClass();

            try
            {
                SiInterfaceDll sDll = new SiInterfaceDll();
                resultClass = OpenDevice(sDll);
                if (resultClass.bSucess)
                {
                    resultClass = GetPersonInfo(sDll, sCardNo);
                    CloseDevice(sDll);
                }
                else
                {
                    resultClass.oResult = null;
                }
                sDll = null;
            }
            catch (Exception e)
            {
                resultClass.bSucess  = false;
                resultClass.sRemarks = e.Message;
                resultClass.oResult  = null;
            }
            return(resultClass);
        }
        /// <summary>
        /// 结算
        /// </summary>
        /// <returns></returns>
        public ResultClass MZ_Charge(SiInterfaceDll sDll)
        {
            ResultClass resultClass = new ResultClass();

            try
            {
                resultClass = iface.OpenDevice(sDll);
                if (resultClass.bSucess)
                {
                    resultClass = iface.Trade(sDll);
                    iface.CloseDevice(sDll);
                }
                else
                {
                    resultClass.oResult = null;
                }
                sDll = null;
            }
            catch (Exception e)
            {
                resultClass.bSucess  = false;
                resultClass.sRemarks = e.Message;
                resultClass.oResult  = null;
            }
            return(resultClass);
        }
        /// <summary>
        /// 取消门诊结算
        /// </summary>
        /// <returns></returns>
        public ResultClass MZ_CancelCharge(SiInterfaceDll sDll, string tradeNo)
        {
            ResultClass resultClass = new ResultClass();

            try
            {
                resultClass = iface.OpenDevice(sDll);
                if (resultClass.bSucess)
                {
                    resultClass = iface.RefundmentDivide(sDll, tradeNo);
                    iface.CloseDevice(sDll);
                }
                else
                {
                    resultClass.oResult = null;
                }
                sDll = null;
            }
            catch (Exception e)
            {
                resultClass.bSucess  = false;
                resultClass.sRemarks = e.Message;
                resultClass.oResult  = null;
            }
            return(resultClass);
        }
Ejemplo n.º 9
0
        /// <summary>
        /// 取消门诊登记
        /// </summary>
        /// <returns></returns>
        public ResultClass Mz_CancelRegister(string tradeNo)
        {
            ResultClass resultClass = new ResultClass();

            try
            {
                SiInterfaceDll sDll = new SiInterfaceDll();
                resultClass = iface.OpenDevice(sDll);
                if (resultClass.bSucess)
                {
                    iface.GetPersonInfo(sDll, _cardNo);
                    resultClass = iface.RefundmentDivide(sDll, tradeNo);
                    iface.CloseDevice(sDll);
                }
                else
                {
                    resultClass.oResult = null;
                }
                sDll = null;
            }
            catch (Exception e)
            {
                resultClass.bSucess  = false;
                resultClass.sRemarks = e.Message;
                resultClass.oResult  = null;
            }
            return(resultClass);
        }
Ejemplo n.º 10
0
        /// <summary>
        /// 调用费用退费分解接口
        /// </summary>
        /// <param name="sDll"></param>
        /// <returns></returns>
        public ResultClass RefundmentDivide(SiInterfaceDll sDll, string tradeNo)
        {
            string sMome = "";
            bool   bRet  = false;
            string sOut;

            sDll.RefundmentDivide(tradeNo, out sOut);

            XmlDocument xmlDoc = GetXmlDoc(sOut);

            CheckOutputState(xmlDoc, out bRet, out sMome);
            if (bRet)
            {
                string  sTradeNO, sIC_NO;
                XmlNode dataNode = GetNodeFromPath(xmlDoc.DocumentElement, "output/tradeinfo");
                sTradeNO = dataNode.SelectNodes("tradeno")[0].InnerText;
            }

            DivideResult.root divideResult = (DivideResult.root)(XmlUtil.DeserializeFromXml(sOut, typeof(DivideResult.root)));
            xmlDoc = null;
            ResultClass resultClassTemp = new ResultClass();

            resultClassTemp.bSucess  = bRet;
            resultClassTemp.sRemarks = sMome;
            resultClassTemp.oResult  = divideResult;
            return(resultClassTemp);
        }
Ejemplo n.º 11
0
        /// <summary>
        /// 调用关闭读卡设备接口
        /// </summary>
        /// <param name="sDll"></param>
        /// <returns></returns>
        public ResultClass CloseDevice(SiInterfaceDll sDll)
        {
            string sMome = "";
            bool   bRet  = false;
            String sOut;

            sDll.Close(out sOut);
            XmlDocument xmlDoc = GetXmlDoc(sOut);

            CheckOutputState(xmlDoc, out bRet, out sMome);
            xmlDoc = null;
            ResultClass resultClassTemp = new ResultClass();

            resultClassTemp.bSucess  = bRet;
            resultClassTemp.sRemarks = sMome;
            resultClassTemp.oResult  = null;
            return(resultClassTemp);
        }
Ejemplo n.º 12
0
        /// <summary>
        /// 调用读取卡片信息接口
        /// </summary>
        /// <param name="sDll"></param>
        /// <returns></returns>
        public ResultClass GetCardInfo(SiInterfaceDll sDll, string cardNo)
        {
            string    sMome = "";
            bool      bRet  = false;
            DataTable dt    = new DataTable();
            String    sOut;

            _sColumns.Clear();
            _sColumns.Add("card_no");
            _sColumns.Add("ic_no");
            _sColumns.Add("id_no");
            _sColumns.Add("personname");
            _sColumns.Add("sex");
            _sColumns.Add("birthday");
            dt = CreatDataTable(_sColumns);

            sDll.GetCardInfo(out sOut, cardNo);

            XmlDocument xmlDoc = GetXmlDoc(sOut);

            CheckOutputState(xmlDoc, out bRet, out sMome);
            if (bRet)
            {
                DataRow dr       = dt.NewRow();
                XmlNode dataNode = GetNodeFromPath(xmlDoc.DocumentElement, "output/ic");
                foreach (string s in _sColumns)
                {
                    dr[s] = dataNode.SelectNodes(s)[0].InnerText;
                }
                dt.Rows.Add(dr);
                AddLog("解析读取卡片信息完成");
            }
            _sColumns.Clear();
            xmlDoc = null;

            ResultClass resultClassTemp = new ResultClass();

            resultClassTemp.bSucess  = bRet;
            resultClassTemp.sRemarks = sMome;
            resultClassTemp.oResult  = dt;
            return(resultClassTemp);
        }
Ejemplo n.º 13
0
        /// <summary>
        /// 调用医保查询接口
        /// </summary>
        /// <param name="sDll"></param>
        public void MedicareQuery(SiInterfaceDll sDll)
        {
            string sOut;
            string sIn;

            //此处写的XML仅供测试接口使用,具体格式应以接口文档为准,且在生成此XML文档时应使用XML DOM对象生成,自行拼串需要处理特殊的XML字符转义
            sIn = "";
            sIn = sIn + "<?xml version=\"1.0\" encoding=\"UTF-16\" standalone=\"yes\"?>";
            sIn = sIn + "<root version=\"2.003\" sender=\"\">";
            sIn = sIn + "  </input>";
            sIn = sIn + "</root>";

            AddLog("调用医保查询接口");
            AddLog("输入参数:");
            AddLog(sIn);

            sDll.MedicareQuery(sIn, out sOut);

            AddLog("输出数据:");
            AddLog(sOut);

            AddLog("\r\n");
        }
Ejemplo n.º 14
0
        /// <summary>
        /// 调用交易状态查询及回退接口
        /// </summary>
        /// <param name="sDll"></param>
        /// <returns></returns>
        public ResultClass CommitTradeState(SiInterfaceDll sDll)
        {
            string sOut;
            string sDealID = "011100030A090308000007";
            string sMome   = "";
            bool   bRet    = false;

            AddLog("调用交易状态查询及回退接口");
            AddLog("输入参数:");
            AddLog("交易流水号:" + sDealID);

            sDll.CommitTradeState(sDealID, out sOut);

            AddLog("输出数据:");
            AddLog(sOut);

            XmlDocument xmlDoc = GetXmlDoc(sOut);

            CheckOutputState(xmlDoc, out bRet, out sMome);
            if (bRet)
            {
                string  sTradeState;
                XmlNode dataNode = GetNodeFromPath(xmlDoc.DocumentElement, "output");
                sTradeState = dataNode.SelectNodes("tradestate")[0].InnerText;
                AddLog("解析XML结果:\r\n交易状态:" + sTradeState);
            }

            xmlDoc = null;

            AddLog("\r\n");
            ResultClass resultClassTemp = new ResultClass();

            resultClassTemp.bSucess  = bRet;
            resultClassTemp.sRemarks = sMome;
            resultClassTemp.oResult  = null;
            return(resultClassTemp);
        }
Ejemplo n.º 15
0
        /// <summary>
        /// 调用交易确认接口
        /// </summary>
        /// <param name="sDll"></param>
        /// <returns></returns>
        public ResultClass Trade(SiInterfaceDll sDll)
        {
            string sOut;
            string sMome = "";
            bool   bRet  = false;

            AddLog("调用交易确认接口");
            AddLog("输入参数:");

            sDll.Trade(out sOut);

            AddLog("输出数据:");
            AddLog(sOut);

            XmlDocument xmlDoc = GetXmlDoc(sOut);

            string sPersonCountAfterSub = "0";

            CheckOutputState(xmlDoc, out bRet, out sMome);
            if (bRet)
            {
                XmlNode dataNode = GetNodeFromPath(xmlDoc.DocumentElement, "output");
                sPersonCountAfterSub = dataNode.SelectNodes("personcountaftersub")[0].InnerText;
                AddLog("解析XML结果:\r\n本次结算后个人账户余额:" + sPersonCountAfterSub);
            }

            xmlDoc = null;

            AddLog("\r\n");
            ResultClass resultClassTemp = new ResultClass();

            resultClassTemp.bSucess  = bRet;
            resultClassTemp.sRemarks = sMome;
            resultClassTemp.oResult  = sPersonCountAfterSub;
            return(resultClassTemp);
        }
Ejemplo n.º 16
0
        /// <summary>
        /// 调用获取个人信息接口
        /// </summary>
        /// <param name="sDll"></param>
        /// <returns></returns>
        public ResultClass GetPersonInfo(SiInterfaceDll sDll, string cardNo)
        {
            string    sMome = "";
            bool      bRet  = false;
            string    sOut  = "";
            DataTable dt    = new DataTable();

            _sColumns.Clear();
            //ic卡
            _sColumns.Add("card_no");   //社保卡卡号
            _sColumns.Add("ic_no");
            _sColumns.Add("id_no");
            _sColumns.Add("personname");
            _sColumns.Add("sex");
            _sColumns.Add("birthday");
            _sColumns.Add("fromhosp");
            _sColumns.Add("fromhospdate");
            _sColumns.Add("fundtype");
            _sColumns.Add("isyt");
            _sColumns.Add("jclevel");
            _sColumns.Add("hospflag");
            //网络信息
            _sColumns.Add("persontype");
            _sColumns.Add("isinredlist");
            _sColumns.Add("isspecifiedhosp");
            _sColumns.Add("ischronichosp");
            _sColumns.Add("personcount");
            _sColumns.Add("chroniccode");
            dt = CreatDataTable(_sColumns);

            AddLog("调用获取个人信息接口");
            AddLog("输入参数:无");

            sDll.GetPersonInfo(out sOut, cardNo);

            AddLog("输出数据:");
            AddLog(sOut);

            XmlDocument xmlDoc = GetXmlDoc(sOut);

            CheckOutputState(xmlDoc, out bRet, out sMome);

            if (bRet)
            {
                DataRow dr          = dt.NewRow();
                XmlNode dataNode    = GetNodeFromPath(xmlDoc.DocumentElement, "output/ic");
                XmlNode dataNodeNet = GetNodeFromPath(xmlDoc.DocumentElement, "output/net");
                foreach (string s in _sColumns)
                {
                    XmlNodeList xNodeList = dataNode.SelectNodes(s);
                    if (xNodeList.Count > 0)
                    {
                        dr[s] = xNodeList[0].InnerText;
                    }
                    else
                    {
                        dr[s] = dataNodeNet.SelectNodes(s)[0].InnerText;
                    }
                }
                dt.Rows.Add(dr);
                AddLog("解析获取个人信息接口完成");
            }
            xmlDoc = null;

            List <PatientInfo> patientInfoList = new List <PatientInfo>();

            foreach (DataRow dr in dt.Rows)
            {
                PatientInfo patientInfo = new PatientInfo();
                patientInfo.CardNo          = dr["card_no"].ToString();
                patientInfo.IcNo            = dr["ic_no"].ToString();
                patientInfo.IdNo            = dr["id_no"].ToString();
                patientInfo.PersonName      = dr["personname"].ToString();
                patientInfo.Sex             = dr["sex"].ToString();
                patientInfo.Birthday        = dr["birthday"].ToString();
                patientInfo.FromHosp        = dr["fromhosp"].ToString();
                patientInfo.FromHospDate    = dr["fromhospdate"].ToString();
                patientInfo.FundType        = dr["fundtype"].ToString();
                patientInfo.IsYT            = dr["isyt"].ToString();
                patientInfo.JcLevel         = dr["jclevel"].ToString();
                patientInfo.HospFlag        = dr["hospflag"].ToString();
                patientInfo.PersonType      = dr["persontype"].ToString();
                patientInfo.IsInredList     = dr["isinredlist"].ToString();
                patientInfo.IsSpecifiedHosp = dr["isspecifiedhosp"].ToString();
                patientInfo.IsChronicHosp   = dr["ischronichosp"].ToString();
                patientInfo.PersonCount     = dr["personcount"].ToString();
                patientInfo.ChronIcCode     = dr["chroniccode"].ToString();
                patientInfoList.Add(patientInfo);
            }

            ResultClass resultClassTemp = new ResultClass();

            resultClassTemp.bSucess  = bRet;
            resultClassTemp.sRemarks = sMome;
            resultClassTemp.oResult  = patientInfoList;

            return(resultClassTemp);
        }
Ejemplo n.º 17
0
 public override ResultClass MZ_GetPersonInfo(InputClass inputClass)
 {
     sDll = new SiInterfaceDll();
     return(ybInterfaceDao.Mz_GetPersonInfo(sDll, inputClass.SInput[InputType.CardNo].ToString()));
 }