//构建查询sql private String generateQueryString(List <String> lstDJLSH) { if (CSTR.IsListEmpty(lstDJLSH)) { return(""); } //把list中的DJLSH拼接成'11','22'格式 String DJLSH_cluster = ""; foreach (String item in lstDJLSH) { if (CSTR.isEmpty(item)) { continue; } if (DJLSH_cluster.Length > 0) { DJLSH_cluster += ","; } DJLSH_cluster += String.Format("'{0}'", item); } if (CSTR.isEmpty(DJLSH_cluster)) { return(""); } //生成查询语句 String sql = String.Format("select [patient].patient_his_id,[patient].name," + "[study].study_state,[study].study_begin_time,[study].study_end_time " + "from [patient],[order],[study] " + "where [order].patient_id=[patient].id " + "and [order].id=[study].order_id " + "and [order].register_time>getdate()-1 " + "and [patient].patient_his_id in ({0}) ", DJLSH_cluster); return(sql); }
//---------<<< 还原 >>>-------------------------------------------------------------------- public DataTable revertDataTable(String strJson) { DataTable tblRet = null; strJson = CSTR.trim(strJson); if (strJson.Length <= 0) { return(null); } try { JavaScriptSerializer json = new JavaScriptSerializer(); json.MaxJsonLength = Int32.MaxValue;//设置JSON串的最大值 //解析json字符串 Dictionary <String, Object> tblMap = json.Deserialize <Dictionary <String, Object> >(strJson); if (CSTR.IsDictionaryEmpty(tblMap)) { return(null); } //必须使用ArrayList,当用List<String>时返回为null(原因不明) ArrayList columnList = tblMap["column"] as ArrayList; if (CSTR.IsListEmpty(columnList)) { return(null); } ArrayList rowList = tblMap["data"] as ArrayList; if (CSTR.IsListEmpty(rowList)) { return(null); } //重建DataTable tblRet = new DataTable(); //重建column foreach (String column in columnList) { tblRet.Columns.Add(column); } //填充数据 int nCloumnCount = columnList.Count; foreach (ArrayList list in rowList) { DataRow newRow = tblRet.NewRow(); for (int i = 0; i < nCloumnCount; i++) { newRow[i] = list[i]; } tblRet.Rows.Add(newRow);//循环添加行 } } catch (Exception exp) { Console.WriteLine(exp.Message); tblRet = null; } return(tblRet); }
/// <summary> /// check_us_exam_status() /// 用于查找超声系统中,指定的DJLSH的体检检查的完成状态 /// </summary> /// <param name="lstDJLSH">需要查询的DJLSH列表</param> /// <returns>map('DJLSH',true/false) true表示已经完成,false表示不存在或未完成</returns> private Dictionary <String, bool> check_us_exam_status() { try { //获取[超声科]房间的未完成检查列表 List <String> lstDJLSH = getUltrasoundExamList(); if (CSTR.IsListEmpty(lstDJLSH)) { return(null); } //生成检查状态sql语句 String sql = generateQueryString(lstDJLSH); if (CSTR.isEmpty(sql)) { return(null); } //执行查询 SqlServerOperator us_db = new SqlServerOperator(true); DataTable tbl = us_db.query(sql); if (CSTR.IsTableEmpty(tbl)) { return(null); } //构建返回map Dictionary <String, bool> map = new Dictionary <string, bool>(); foreach (DataRow row in tbl.Rows) { //获取DJLSH String DJLSH = CSTR.ObjectTrim(row["patient_his_id"]); bool is_over = CSTR.ObjectTrim(row["study_state"]).Equals("已登记") ? false : true; if (CSTR.isEmpty(DJLSH)) { continue; } //在map.key中查找是否存在,如果没有则添加 bool is_key_exist = false; foreach (String key in map.Keys) { if (DJLSH.Equals(key)) { is_key_exist = true; } } if (is_key_exist) { //多个相同DJLSH只要有一个已完成就OK bool is_over_exist = map[DJLSH]; if (false == is_over_exist && true == is_over) { map[DJLSH] = true; } } else { //new,加入到map map[DJLSH] = is_over; } } return(map); } catch (Exception exp) { System.Console.WriteLine(exp.Message); } //出错返回null值 return(null); }