//exid 放到申请序号 //处方序号 放到就诊ID //CARDNUMBER 这个放到身份证号 //string sHISName, string Sslbx"门诊号","住院号" , string Ssbz "标记", string Debug, string by //该接口用发票号代替门诊号,不存门诊号 public string LGGetHISINFO(string sHISName, string Sslbx, string Ssbz, string Debug, string by) { string sqlWhere = $" and f_sqxh = '{Ssbz}'"; var lst = new T_SQD_DAL().GetList(sqlWhere); if (lst.Count == 0) { return("0"); } else if (lst.Count == 1) { return(GetXml(lst[0])); } else { //弹出医嘱选择器 T_SQD sqd; using (ApplicationSelector f = new ApplicationSelector()) { sqd = null; f.ListSqd = lst; f.ItemSelected += r => sqd = r; f.ShowDialog(); } if (sqd != null) { return(GetXml(sqd)); } return("0"); } }
private LgXml GetHisReqXml(string Ssbz, string sslbx) { LgXml lgXml = new LgXml(); TCusTable dtResult = new TCusTable(); TCusTable dtPatient = new TCusTable(); TRequestWhereType queryType = TRequestWhereType.rwtInHospital; var success = false; //查询所有类型的号码 foreach (TRequestWhereType ev in Enum.GetValues(typeof(TRequestWhereType))) { if (ev != TRequestWhereType.rwtInHospital && ev != TRequestWhereType.rwtOutPatient && ev != TRequestWhereType.rwtPatientId) { continue; } success = zlInterface.GetRequestInfo(Ssbz, ev); //如果success但是返回的数据集为空,也算失败\ if (zlInterface.Tables.strDatas == null || zlInterface.Tables.strDatas.Length == 0) { success = false; } if (success) { log.WriteMyLog("获取病人成功,病人类型:" + ev); break; } } // var success = zlInterface.GetRequestInfo(Ssbz, queryType); // if (!success) // success = zlInterface.GetRequestInfo(Ssbz, TRequestWhereType.rwtOutPatient); if (!success) { var err = zlInterface.GetLastError(); throw new Exception("中联接口提取失败,因为:" + err); } dtResult = zlInterface.Tables; if (dtResult.strColumns.Length == 0 || dtResult.strDatas.Length == 0) { throw new Exception("未找到HIS申请单信息"); } var patientId = GetValue(dtResult, "病人ID"); log.WriteMyLog("通过申请单得到的病人ID为:" + patientId); success = zlInterface.GetPatientInfo(patientId, TPatientWhereType.pwtPatientId); if (!success) { var err = zlInterface.GetLastError(); throw new Exception("中联接口提取失败,因为:" + err); } dtPatient = zlInterface.Tables; if (dtPatient.strColumns.Length == 0 || dtPatient.strDatas.Length == 0) { throw new Exception("未找到HIS病人信息"); } var yzid = GetValue(dtResult, "医嘱ID"); var yznr = GetValue(dtResult, "医嘱内容"); //一个申请单包含多个医嘱时,弹出窗口让用户选择医嘱 if (dtResult.strDatas.Length > 1) { ApplicationSelector f = new ApplicationSelector(); DataTable dtYz = new DataTable(); dtYz.Columns.Add("医嘱ID"); dtYz.Columns.Add("医嘱内容"); for (int i = 0; i < dtResult.strDatas.Length; i++) { var dr = dtYz.NewRow(); dtYz.Rows.Add(dr); dr["医嘱ID"] = GetValue(dtResult, "医嘱ID", i); dr["医嘱内容"] = GetValue(dtResult, "医嘱内容", i); } f.Table = dtYz; f.ItemSelected += row => { if (row != null) { yzid = row["医嘱ID"].ToString(); yznr = row["医嘱内容"].ToString(); } }; var r = f.ShowDialog(); } lgXml.病人编号 = GetValue(dtResult, "病人ID"); lgXml.就诊ID = yzid; //申请序号取ssbz //lgXml.申请序号 = GetValue(dtResult, "医嘱ID"); lgXml.门诊号 = GetValue(dtResult, "门诊号"); lgXml.住院号 = GetValue(dtResult, "住院号"); lgXml.姓名 = GetValue(dtResult, "姓名"); lgXml.年龄 = GetValue(dtResult, "年龄"); lgXml.性别 = GetValue(dtResult, "性别"); lgXml.婚姻 = GetValue(dtPatient, "婚姻状况"); lgXml.地址 = GetValue(dtPatient, "联系人地址"); lgXml.电话 = GetValue(dtPatient, "联系人电话"); // lgXml.病区 = GetValue(dtResult, "病人id"); // lgXml.床号 = GetValue(dtResult, "病人id"); lgXml.身份证号 = GetValue(dtPatient, "身份证号"); // lgXml.民族 = GetValue(dtResult, "病人id"); // lgXml.职业 = GetValue(dtResult, "病人id"); lgXml.送检科室 = GetValue(dtResult, "申请科室"); lgXml.送检医生 = GetValue(dtResult, "申请人"); //lgXml.收费 = GetValue(dtResult, "病人id"); //todo:标本名称可能要取 2.4.7. GetAdviceItems //lgXml.标本名称 = GetValue(dtResult, "病人id"); //lgXml.送检医院 = GetValue(dtResult, "病人id"); lgXml.医嘱项目 = yznr; //lgXml.备用1 = GetValue(dtResult, "病人id"); //lgXml.备用2 = GetValue(dtResult, "病人id"); //lgXml.费别 = GetValue(dtResult, "病人id"); lgXml.病人类别 = GetValue(dtResult, "病人来源"); lgXml.临床病史 = GetValue(dtResult, "病历摘要"); lgXml.临床诊断 = GetValue(dtResult, "临床诊断"); return(lgXml); }