private bool TjjgOperation(DataTable dtDyxm, DataRow drs, DataTable dtAccess, string sqlCode) { Form_lisBll form_lisbll = new Form_lisBll(); //更新健康体检表 string Guid = ""; //true:新的Guid false:已经存在的Guid bool GuidResult = true; DataTable dt_tjjgUpdate = GetTjjgUpdateDateTable(dtDyxm, drs["jyrq"].ToString(), dtAccess, ref Guid, ref GuidResult); string[] sqllist = sqlCode.Split(new char[] { '|' }); if (sqlCode.Length == 0 || sqllist.Length < 2) { MessageBox.Show("仪器sql设定错误!"); return(false); } //体检结果 if (GuidResult) { //体检结果插入 form_lisbll.Add(dt_tjjgUpdate, sqllist[0]); } else { //体检结果更新 dt_tjjgUpdate.AcceptChanges(); dt_tjjgUpdate.Rows[0]["guid"] = Guid; form_lisbll.Upd(dt_tjjgUpdate, sqllist[1]); } return(true); }
/// <summary> /// 处理数据到数据库中 /// </summary> /// <param name="dt_all"></param> /// <returns></returns> public string Upd_all(DataTable dt_all) { if (dt_all.Rows.Count > 0) { //过滤数据 得到数据行 身份证号 DataRow[] drs = dt_all.Select("xmdh='NAME'"); for (int i = 0; i < drs.Length; i++) { string ybh = drs[i]["ybh"].ToString(); DBAccess dbjkdah = new DBAccess(); DataTable dt_access = dbjkdah.ExecuteQueryBySql(@"select * from T_JK_lis_result_re where ybh='" + ybh + "' "); if (dt_access != null && dt_access.Rows.Count > 0) { for (int j = 0; j < dt_access.Rows.Count; j++) { DataTable dt_tem = new DataTable(); dt_tem.Columns.Add("yybm"); dt_tem.Columns["yybm"].DefaultValue = dt_access.Rows[j]["yybm"]; dt_tem.Columns.Add("yq"); dt_tem.Columns["yq"].DefaultValue = dt_access.Rows[j]["yq"]; dt_tem.Columns.Add("jyrq"); dt_tem.Columns["jyrq"].DefaultValue = dt_access.Rows[j]["jyrq"]; dt_tem.Columns.Add("ybh"); dt_tem.Columns["ybh"].DefaultValue = dt_access.Rows[j]["ybh"]; dt_tem.Columns.Add("xmdh"); dt_tem.Columns.Add("result"); DataRow[] drss = dt_all.Select("jyrq='" + drs[i]["jyrq"].ToString() + "' and ybh='" + drs[i]["ybh"].ToString() + "'"); for (int k = 0; k < drss.Length; k++) { dt_tem.Rows.Add(); dt_tem.Rows[k]["xmdh"] = drss[k]["xmdh"]; dt_tem.Rows[k]["result"] = drss[k]["result"]; } Form_lisBll form_lisbll = new Form_lisBll(); form_lisbll.Upd_all(dt_tem, "sql042_update"); } } else { DataTable dt_insert_tem = dt_all.Clone(); DataRow[] drss = dt_all.Select("jyrq='" + drs[i]["jyrq"].ToString() + "' and ybh='" + drs[i]["ybh"].ToString() + "'"); if (drss != null && drss.Length > 0) { for (int k = 0; k < drss.Length; k++) { dt_insert_tem.ImportRow(drss[k]); } Form_lisBll form_lisbll = new Form_lisBll(); form_lisbll.Add(dt_insert_tem, "sql042"); } } } } return(""); }
private void LisResultReOperation(DataTable dt) //用来判断进行插入修改操作 { if (dt != null && dt.Rows.Count > 0) { //先删除,后插入 DeleteFromLisResultRe(dt.Rows[0]["ybh"].ToString(), dt.Rows[0]["jyrq"].ToString(), dt.Rows[0]["yq"].ToString(), dt.Rows[0]["yybm"].ToString()); Form_lisBll form_lisbll = new Form_lisBll(); form_lisbll.Add(dt, "sql042", true); } }
/// <summary> /// 再次处理 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void button_save_sys_again(DataTable dt_all, string sqlcode) { try { if (dt_all.Rows.Count > 0) { DataRow[] drs = dt_all.Select("xmdh='NAME'"); for (int i = 0; i < drs.Length; i++) { DBAccess dbjkdah = new DBAccess(); //获取以对应的人的信息 不一定与心电工作站中的条码号对应 DataTable dt_access_no = dbjkdah.ExecuteQueryBySql(@"select testno from T_JK_lis_result_re where ybh='" + drs[i]["ybh"].ToString() + "'"); if (dt_access_no == null || dt_access_no.Rows.Count <= 0) { continue; } //获取以对应的人员的信息 DataTable dt_access = dbjkdah.ExecuteQueryBySql(@"select jkdah,sfzh from T_JK_TJRY_TXM where (txmbh='" + dt_access_no.Rows[0]["testno"].ToString() + "' or jkdah ='" + dt_access_no.Rows[0]["testno"].ToString() + "') and yljgbm='" + drs[i]["yybm"].ToString() + "'"); //没有对应的人员信息时直接退出 if (dt_access == null || dt_access.Rows.Count <= 0) { continue; } ////更新化验结果表(T_JK_lis_result_re),确定化验结果与人员关系 //DataTable dt_update = new DataTable(); ////医院编码 //dt_update.Columns.Add("yybm"); ////仪器编码 //dt_update.Columns.Add("yq"); ////样本号 //dt_update.Columns.Add("ybh"); ////体检日期 //dt_update.Columns.Add("jyrq"); ////健康档案号 //dt_update.Columns.Add("testno"); ////年度 //dt_update.Columns.Add("nd"); //dt_update.Rows.Add(); //dt_update.AcceptChanges(); //dt_update.Rows[0]["yybm"] = UserInfo.Yybm; //dt_update.Rows[0]["yq"] = "MECG200"; //dt_update.Rows[0]["ybh"] = drs[i]["ybh"].ToString(); //dt_update.Rows[0]["jyrq"] = Convert.ToDateTime(drs[i]["jyrq"].ToString()).ToString("yyyy-MM-dd"); //dt_update.Rows[0]["testno"] = dt_access.Rows[0]["jkdah"].ToString(); ////dt_update.Rows[0]["nd"] = Convert.ToDateTime(jyrq_tem).Year .ToString(); //dt_update.Rows[0]["nd"] = DateTime.Now.Year.ToString(); Form_lisBll form_lisbll = new Form_lisBll(); ////标本与人员的对应关系保存 //form_lisbll.Upd(dt_update, "sql_lis_result_ryxx_update"); //更新体检人员状态表 //form_lisbll.Upd(dt_update, "sql077"); //体检状态信息 ArrayList TJRYXXList = save_T_JK_TJZT(dt_access.Rows[0]["jkdah"].ToString(), dt_access.Rows[0]["sfzh"].ToString(), drs[i]["xmmc"].ToString(), drs[i]["jyrq"].ToString(), Common.TJTYPE.健康体检表, Common.ZT.确定状态); if (TJRYXXList != null && TJRYXXList.Count > 0) { DBAccess dbaccess = new DBAccess(); dbaccess.ExecuteNonQueryBySql(TJRYXXList); } //保存体检结果到体检结果表 string sqlWhere = ""; //医院编码 if (UserInfo.Yybm.Length > 0) { sqlWhere = sqlWhere + string.Format(" and T_JK_lis_result_re.yybm='{0}'", UserInfo.Yybm); } //仪器 if (UserInfo.Yybm.Length > 0) { sqlWhere = sqlWhere + string.Format(" and T_JK_lis_result_re.yq='{0}'", drs[i]["yq"].ToString()); } //检验日期 if (UserInfo.Yybm.Length > 0) { sqlWhere = sqlWhere + string.Format(" and T_JK_lis_result_re.jyrq='{0}'", drs[i]["jyrq"].ToString()); } //样本号 if (UserInfo.Yybm.Length > 0) { sqlWhere = sqlWhere + string.Format(" and T_JK_lis_result_re.ybh='{0}'", drs[i]["ybh"].ToString()); } //取得化验结果 DataTable dt_dyxm = form_lisbll.GetMoHuList(sqlWhere, "sql045"); //更新健康体检表 DataTable dt_tjjgUpdate = new DataTable(); dt_tjjgUpdate.Rows.Add(); for (int j = 0; j < dt_dyxm.Rows.Count; j++) { if (dt_tjjgUpdate.Columns.Contains(dt_dyxm.Rows[j]["HIS_DB"].ToString()) == false) { DataColumn dtColumn = new DataColumn(dt_dyxm.Rows[j]["HIS_DB"].ToString()); dtColumn.DefaultValue = dt_dyxm.Rows[j]["result"].ToString(); dt_tjjgUpdate.Columns.Add(dtColumn); } } if (dt_tjjgUpdate.Columns.Contains("D_GRDABH") == false) { DataColumn dtColumn = new DataColumn("D_GRDABH"); dtColumn.DefaultValue = dt_access.Rows[0]["jkdah"].ToString(); dt_tjjgUpdate.Columns.Add(dtColumn); } if (dt_tjjgUpdate.Columns.Contains("HAPPENTIME") == false) { DataColumn dtColumn = new DataColumn("HAPPENTIME"); dtColumn.DefaultValue = Convert.ToDateTime(drs[i]["jyrq"].ToString()).ToString("yyyy-MM-dd"); dt_tjjgUpdate.Columns.Add(dtColumn); } if (dt_tjjgUpdate.Columns.Contains("czy") == false) { DataColumn dtColumn = new DataColumn("czy"); dtColumn.DefaultValue = UserInfo.userId; dt_tjjgUpdate.Columns.Add(dtColumn); } if (dt_tjjgUpdate.Columns.Contains("gzz") == false) { DataColumn dtColumn = new DataColumn("gzz"); dtColumn.DefaultValue = UserInfo.gzz; dt_tjjgUpdate.Columns.Add(dtColumn); } //体检结果是否已经存在 string Guid = ""; //true:新的Guid false:已经存在的Guid bool GuidResult = true; GuidResult = getNewGuid(dt_access.Rows[0]["jkdah"].ToString(), drs[i]["jyrq"].ToString(), out Guid); if (dt_tjjgUpdate.Columns.Contains("guid") == false) { DataColumn dtColumn = new DataColumn("guid"); dtColumn.DefaultValue = Guid; dt_tjjgUpdate.Columns.Add(dtColumn); } string[] sqllist = sqlcode.Split(new char[] { '|' }); if (sqlcode.Length == 0 || sqllist.Length < 2) { MessageBox.Show("仪器sql设定错误!"); return; } //体检结果 if (GuidResult == true) { //体检结果插入 form_lisbll.Add(dt_tjjgUpdate, sqllist[0]); } else { //体检结果更新 dt_tjjgUpdate.AcceptChanges(); dt_tjjgUpdate.Rows[0]["guid"] = Guid; form_lisbll.Upd(dt_tjjgUpdate, sqllist[1]); } //签名 SaveJktjSignname(drs[i]["jyrq"].ToString(), dt_access.Rows[0]["jkdah"].ToString()); } } } catch (Exception ex) { MessageBox.Show(ex.Message); } }
/// <summary> /// 获取结果 /// </summary> /// <returns></returns> public DataTable dataRecive_again() { DataTable dt = null; string errMsg = ""; try { string paratime = ""; //开始时间 if (dateTimePicker_start.Checked == true) { paratime = paratime + dateTimePicker_start.Value.ToString("yyyy-MM-dd") + " 00:00:00" + "|"; } //结束时间 if (dateTimePicker_end.Checked == true) { if (paratime.Length > 0) { paratime = paratime + dateTimePicker_end.Value.ToString("yyyy-MM-dd") + " 23:59:59"; } else { paratime = paratime + "|" + dateTimePicker_end.Value.ToString("yyyy-MM-dd") + " 23:59:59"; } } if (paratime.Length == 0) { paratime = DateTime.Now.ToString("yyyy-MM-dd") + " 00:00:00" + "|"; } //0:获取新数据 1:获取所有数据 paratime = paratime + "|" + "1"; if (yqDemo != null) { if (yqDemo.IsOpen(out errMsg) == false) { yqDemo.open(out errMsg); } dt = yqDemo.YQDataReturn(paratime, out errMsg); } else { if (yqxh.Trim().Length == 0) { timer_lis.Enabled = false; return(null); } if (yqDemo == null) { string yqVersion = XmlRW.GetValueFormXML(Common.getyqPath(yqxh), "YQ_Version", "value"); yqDemo = LisFactory.LisCreate(yqVersion); } if (yqDemo.IsOpen(out errMsg) == false) { yqDemo.open(out errMsg); } dt = yqDemo.YQDataReturn(paratime, out errMsg); } //将取得的结果保存到数据库中 if (dt != null && dt.Rows.Count > 0) { if (!dt.Columns.Contains("yybm")) { DataColumn dtcolumn = new DataColumn("yybm"); dtcolumn.DefaultValue = UserInfo.Yybm; dt.Columns.Add(dtcolumn); } if (!dt.Columns.Contains("yq")) { DataColumn dtcolumn = new DataColumn("yq"); dtcolumn.DefaultValue = timer_lis; dt.Columns.Add(dtcolumn); } //再次处理 //将获得的结果匹配体检表中的心电图的结果 dt = dt_pp(dt); DataTable dt_again = dt.Clone(); DataRow[] dtrow_again = dt.Select(" qf='1'"); if (dtrow_again.Length > 0) { for (int i = 0; i < dtrow_again.Length; i++) { dt_again.ImportRow(dtrow_again[i]); } } //新数据 DataTable dt_new = dt.Clone(); DataRow[] dtrow_new = dt.Select(" qf='2'"); if (dtrow_new.Length > 0) { for (int i = 0; i < dtrow_new.Length; i++) { dt_new.ImportRow(dtrow_new[i]); //置变量,以后不再读取此记录 MedExSqlHelper DBF = new MedExSqlHelper(); DBF.ExecuteNonQuery("update PACS_APPLY set work_status = 1 where PATIENT_ID = '" + dtrow_new[i]["ybh"].ToString() + "'"); } } Form_lisBll form_lisbll = new Form_lisBll(); if (dt_new != null && dt_new.Rows.Count > 0) { form_lisbll.Add(dt, "sql042"); string xmlPath = Common.getyqPath("MECG200"); string YQ_YQtype = XmlRW.GetValueFormXML(xmlPath, "YQ_YQType", "value"); button_save_sys(dt, YQ_YQtype); } if (dt_again != null && dt_again.Rows.Count > 0) { //更新数据 form_lisbll.Upd_all(dt_again, "sql042_update"); string xmlPath = Common.getyqPath("MECG200"); string YQ_YQtype = XmlRW.GetValueFormXML(xmlPath, "YQ_YQType", "value"); //更新数据 button_save_sys_again(dt_again, YQ_YQtype); } } } catch (Exception ex) { timer_lis.Enabled = false; Jktj_lis.msgShow(ex.Message); } return(dt); }
/// <summary> /// 其他通用 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void button_save_sys(DataTable dt_all, string sqlcode) { string errsql = ""; try { if (dt_all.Rows.Count > 0) { //dt_pp(dt_all); ////检查数据保存到T_JK_lis_result_re中 Form_lisBll form_lisbll = new Form_lisBll(); //form_lisbll.Add(dt_all, "sql042"); // DataRow[] drs = dt_all.Select("xmdh='NAME'"); for (int i = 0; i < drs.Length; i++) { string testno = ""; DataTable dt_access = GetDtAccess(drs[i]["ybh"].ToString(), drs[i]["yybm"].ToString(), ref testno); if (dt_access == null || dt_access.Rows.Count <= 0) { logger.Error("无此样本号:" + drs[i]["ybh"].ToString()); continue; } //在此处进行插入修改操作 //LisResultReOperation(dt_all.Select(string.Format("ybh='{0}' and jyrq='{1}' and yq='{2}' and yybm='{3}'", drs[i]["ybh"], drs[i]["jyrq"], // drs[i]["yq"], drs[i]["yybm"])).CopyToDataTable()); //更新化验结果表(T_JK_lis_result_re),确定化验结果与人员关系 UpdateLisResultRe(drs[i]["ybh"].ToString(), drs[i]["jyrq"].ToString(), testno, ref errsql); //Form_lisBll form_lisbll = new Form_lisBll(); //查询体检状态 string tjzt = "1"; DataRow[] dr_zt = dt_all.Select("xmdh='TJZT' and ybh='" + drs[i]["ybh"].ToString() + "'"); if (dr_zt != null && dr_zt.Length > 0) { tjzt = dr_zt[0]["result"].ToString(); } //体检状态信息 errsql = "save_T_JK_TJZT " + tjzt.ToString(); ArrayList TJRYXXList = save_T_JK_TJZT(dt_access.Rows[0]["jkdah"].ToString(), dt_access.Rows[0]["sfzh"].ToString(), drs[i]["result"].ToString(), drs[i]["jyrq"].ToString(), Common.TJTYPE.健康体检表, Common.ZT.确定状态); if (TJRYXXList != null && TJRYXXList.Count > 0) { DBAccess dbaccess = new DBAccess(); dbaccess.ExecuteNonQueryBySql(TJRYXXList); } //取得化验结果 DataTable dt_dyxm = GetHyxm(drs[i]["yq"].ToString(), drs[i]["jyrq"].ToString(), drs[i]["ybh"].ToString(), ref errsql); //更新健康体检表 string Guid = ""; //true:新的Guid false:已经存在的Guid bool GuidResult = true; DataTable dt_tjjgUpdate = GetTjjgUpdateDateTable(dt_dyxm, drs[i]["jyrq"].ToString(), dt_access, ref errsql, ref Guid, ref GuidResult); string[] sqllist = sqlcode.Split(new char[] { '|' }); if (sqlcode.Length == 0 || sqllist.Length < 2) { MessageBox.Show("仪器sql设定错误!"); return; } //体检结果 if (GuidResult) { errsql = "jktj insert;sql:" + sqllist[0]; //体检结果插入 form_lisbll.Add(dt_tjjgUpdate, sqllist[0]); } else { errsql = "jktj update;sql:" + sqllist[1]; //体检结果更新 dt_tjjgUpdate.AcceptChanges(); dt_tjjgUpdate.Rows[0]["guid"] = Guid; form_lisbll.Upd(dt_tjjgUpdate, sqllist[1]); } errsql = ""; //签名 SaveJktjSignname(drs[i]["jyrq"].ToString(), dt_access.Rows[0]["jkdah"].ToString()); } } } catch (Exception ex) { MessageBox.Show(ex.Message + "-----" + ex.StackTrace + "------sql:" + errsql); } }
/// <summary> /// 获取结果 /// </summary> /// <returns></returns> public DataTable dataRecive() { DataTable dt = null; string errMsg = ""; try { if (yqDemo != null) { if (yqDemo.IsOpen(out errMsg) == false) { yqDemo.open(out errMsg); } dt = yqDemo.YQDataReturn(DateTime.Now.ToString("yyyy-MM-dd"), out errMsg); } else { if (yqxh.Trim().Length == 0) { timer_lis.Enabled = false; //MessageBox.Show("请选择仪器!"); return(null); } if (yqDemo == null) { if (Common.getyqPath(yqxh).Length <= 0) { MessageBox.Show("仪器配置文件不存在!"); return(null); } string yqVersion = XmlRW.GetValueFormXML(Common.getyqPath(yqxh), "YQ_Version", "value"); yqDemo = LisFactory.LisCreate(yqVersion); } if (yqDemo.IsOpen(out errMsg) == false) { yqDemo.open(out errMsg); } dt = yqDemo.YQDataReturn(DateTime.Now.ToString("yyyy-MM-dd"), out errMsg); } //将取得的结果保存到数据库中 if (dt != null) { if (!dt.Columns.Contains("yybm")) { DataColumn dtcolumn = new DataColumn("yybm"); dtcolumn.DefaultValue = UserInfo.Yybm; dt.Columns.Add(dtcolumn); } if (!dt.Columns.Contains("yq")) { DataColumn dtcolumn = new DataColumn("yq"); dtcolumn.DefaultValue = timer_lis; dt.Columns.Add(dtcolumn); } Form_lisBll form_lisbll = new Form_lisBll(); form_lisbll.Add(dt, "sql042"); } } catch (Exception ex) { timer_lis.Enabled = false; Jktj_lis.msgShow(ex.Message); } return(dt); }
/// <summary> /// 更新健康体检表 /// </summary> /// <param name="dt_tjjgUpdate"></param> /// <returns></returns> public bool Update_jktj(DataTable dt_tjjgUpdate, string JKDAH, string jyrq_tem) { try { if (dt_tjjgUpdate == null || dt_tjjgUpdate.Columns.Count == 0 || dt_tjjgUpdate.Rows.Count == 0) { return(false); } if (dt_tjjgUpdate.Columns.Contains("D_GRDABH") == false) { DataColumn dtColumn = new DataColumn("D_GRDABH"); dtColumn.DefaultValue = JKDAH; dt_tjjgUpdate.Columns.Add(dtColumn); } if (dt_tjjgUpdate.Columns.Contains("HAPPENTIME") == false) { DataColumn dtColumn = new DataColumn("HAPPENTIME"); dtColumn.DefaultValue = jyrq_tem; dt_tjjgUpdate.Columns.Add(dtColumn); } if (dt_tjjgUpdate.Columns.Contains("czy") == false) { DataColumn dtColumn = new DataColumn("czy"); dtColumn.DefaultValue = UserInfo.userId; dt_tjjgUpdate.Columns.Add(dtColumn); } if (dt_tjjgUpdate.Columns.Contains("gzz") == false) { DataColumn dtColumn = new DataColumn("gzz"); dtColumn.DefaultValue = UserInfo.gzz; dt_tjjgUpdate.Columns.Add(dtColumn); } //体检结果是否已经存在 string Guid = ""; //true:新的Guid false:已经存在的Guid bool GuidResult = true; GuidResult = getNewGuid(out Guid, JKDAH, jyrq_tem); Form_lisBll form_lisbll = new Form_lisBll(); if (dt_tjjgUpdate.Columns.Contains("guid") == false) { DataColumn dtColumn = new DataColumn("guid"); dtColumn.DefaultValue = Guid; dt_tjjgUpdate.Columns.Add(dtColumn); } //体检结果 if (GuidResult == true) { //体检结果插入 form_lisbll.Add(dt_tjjgUpdate, "sql047"); } else { //体检结果更新 dt_tjjgUpdate.AcceptChanges(); dt_tjjgUpdate.Rows[0]["guid"] = Guid; form_lisbll.Upd(dt_tjjgUpdate, "sql048"); } return(true); } catch (Exception ex) { throw ex; } }