public static string GetValue(TCusTable dtResult, string colName, int rowIndex = 0) { int index = -1; for (int i = 0; i < dtResult.strColumns.Length; i++) { string colValue = dtResult.strColumns.GetValue(i).ToString(); if (colValue == colName) { index = i; break; } } var dataStr = dtResult.strDatas.GetValue(rowIndex).ToString(); return(dataStr.Split(new[] { _SplitChar }, StringSplitOptions.None)[index]); }
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); }