/// <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); }
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)); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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"); }
/// <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); }
/// <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); }
/// <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); }
public override ResultClass MZ_GetPersonInfo(InputClass inputClass) { sDll = new SiInterfaceDll(); return(ybInterfaceDao.Mz_GetPersonInfo(sDll, inputClass.SInput[InputType.CardNo].ToString())); }