using System; using System.Data; using System.Web; using System.Web.Configuration; using System.Xml.Linq; using System.Web.Script.Serialization; namespace BeginScreen { /// /// RelationsWaitingAreaBigScreenHandler 的摘要说明 /// public class RelationsWaitingAreaBigScreenSYDHandler : Handler1 { static int glop = 1; private DateTime _beginDate; private DateTime _endDate; private int dSum; //数据表的总记录 private int startRecond; //起始记录 private int endRecond; //结束记录 private static int PageSum = 9; //每页显示的记录数 private int countPage; //总页数 private int currentPage; //当前页 private DataTable dts; #region 配置文件的属性 public static XElement xmlOpe = null; private string fontSize = "27px"; private string fontFamily = "黑体"; private string bodyBgColor = "#000000"; private string titleBgColor = "#62D377"; private string titleColBgColor = "#2D9131"; private string bottomBgColor = "#2D9131"; private string rowOddBgColor = "#000000"; private string rowEvenBgColor = "#000000"; private string opeBeforColor = "DodgerBlue"; //private string opeInColor = "red"; private string opeInColor = "yellow"; private string opeAfterColor = "rgb(32, 218, 112)"; private string opeInColor1 = "Orange"; private string opeAfterColor1 = "Wheat"; private string defaultColor = "LightSkyBlue"; //1 private string PatientNames = ""; private string OpeTime = ""; private string DeptId = ""; #endregion private string body = ""; private string messageStr = ""; private string systemType = ""; private string sendType = ""; private int messId = 0; private static void InitConfig() { #region 加载配置文件 string baseDirectory = AppDomain.CurrentDomain.BaseDirectory + "ConfigBigScreen.xml"; xmlOpe = XElement.Load(baseDirectory); #endregion } public string GetHtml(HttpContext context) { //try //{ //设置显示信息的开始和结束时间 InitConfig(); SetViewTime(); currentPage = int.Parse(xmlOpe.Element("currentPage").Value); PatientNames = xmlOpe.Element("PatientName").Value; OpeTime = xmlOpe.Element("OpeTime").Value; DeptId = xmlOpe.Element("DeptId").Value; DataTable dt = new DataTable(); dt = PublicMethod.GetPlanNoticeNew1(_beginDate, _endDate, OpeTime == "" ? "5" : OpeTime, DeptId); //DataRow[] sqzb = dt.Select("Szstate = '0' and InRoomTime is not null and OperationBeginTime is null and OperationEndTime is null and OutRoomTime is null"); //DataRow[] ssjxz = dt.Select("Szstate = '0' and InRoomTime is not null and OperationBeginTime is not null and OperationEndTime is null and OutRoomTime is null"); //DataRow[] ssjxz1 = dt.Select("Szstate = '0' and InRoomTime is not null and OperationBeginTime is not null and OperationEndTime is not null and OutRoomTime is null"); //DataRow[] shhf = dt.Select("InRoomTime is not null and OperationBeginTime is not null and OperationEndTime is not null and'" + DateTime.Now + "' < OutRoomTime"); //DataRow[] lkssj = dt.Select("InRoomTime is not null and OperationBeginTime is not null and OperationEndTime is not null and '" + DateTime.Now + "' > OutRoomTime"); //DataRow[] hfsjl = dt.Select(" Szstate = '4' and InRoomTime is not null "); //DataRow[] lkhfsjl = dt.Select(" Szstate = '5' and InRoomTime is not null and outRoomTime is not null "); //DataRow[] sqdd = dt.Select("SQstate = '2' and PlanOperationTime is not null and SQOperationRoomId is not null "); //dts = dt.Clone(); //foreach (DataRow row in sqzb) //{ // dts.Rows.Add(row.ItemArray); //} //foreach (DataRow row in ssjxz) //{ // dts.Rows.Add(row.ItemArray); //} //foreach (DataRow row in ssjxz1) //{ // dts.Rows.Add(row.ItemArray); //} //foreach (DataRow row in shhf) //{ // dts.Rows.Add(row.ItemArray); //} //foreach (DataRow row in lkssj) //{ // dts.Rows.Add(row.ItemArray); //} //foreach (DataRow row in hfsjl) //{ // dts.Rows.Add(row.ItemArray); //} //foreach (DataRow row in lkhfsjl) //{ // dts.Rows.Add(row.ItemArray); //} //foreach (DataRow row in sqdd) //{ // dts.Rows.Add(row.ItemArray); //} dts = dt; //总记录数 dSum = dts.Rows.Count; countPage = GetPageCount(); string tdRows = string.Empty; if (HttpContext.Current.Request["WorkerCurrentPage"] != null && HttpContext.Current.Request["WorkerCurrentPage"] != "") { LoadWaitNurseOpe(Convert.ToInt32(HttpContext.Current.Request["WorkerCurrentPage"])); } JavaScriptSerializer jss = new JavaScriptSerializer(); message1 msg = new message1(true, body, messageStr, systemType, sendType, messId, countPage.ToString(), ""); context.Response.Write(jss.Serialize(msg));//返回给前台页面 context.Response.End(); //} //catch (Exception exp) //{ // body = "
"; // body += ""; // body += exp.Message + " 与数据服务器连接中断,请稍候......
"; // PublicMethod.WriteLog(exp); //} return body; } public void GetOpenFile(HttpContext context) { TestMoveMouse(); context.Response.Write("");//返回给前台页面 context.Response.End(); } public string GetOpenFile1(HttpContext context) { string fileid = HttpContext.Current.Request["fileid"]; context.Response.Write(context.Application[fileid]);//返回给前台页面 context.Response.End(); return "1"; } [System.Runtime.InteropServices.DllImport("user32")] private static extern int mouse_event(int dwFlags, int dx, int dy, int dwData, int dwExtraInfo); //移动鼠标 const int MOUSEEVENTF_MOVE = 0x0001; //模拟鼠标左键按下 const int MOUSEEVENTF_LEFTDOWN = 0x0002; //模拟鼠标左键抬起 const int MOUSEEVENTF_LEFTUP = 0x0004; //模拟鼠标右键按下 const int MOUSEEVENTF_RIGHTDOWN = 0x0008; //模拟鼠标右键抬起 const int MOUSEEVENTF_RIGHTUP = 0x0010; //模拟鼠标中键按下 const int MOUSEEVENTF_MIDDLEDOWN = 0x0020; //模拟鼠标中键抬起 const int MOUSEEVENTF_MIDDLEUP = 0x0040; //标示是否采用绝对坐标 const int MOUSEEVENTF_ABSOLUTE = 0x8000; //模拟鼠标滚轮滚动操作,必须配合dwData参数 const int MOUSEEVENTF_WHEEL = 0x0800; public static void TestMoveMouse() { //Console.WriteLine("模拟鼠标移动5个像素点。"); mouse_event(MOUSEEVENTF_MOVE, -5000, -5000, 0, 0);//相对当前鼠标位置x轴和y轴分别移动50像素 mouse_event(MOUSEEVENTF_MOVE, 0, 200, 0, 0);//相对当前鼠标位置x轴和y轴分别移动50像素 //mouse_event(MOUSEEVENTF_WHEEL, 0, 0, -20, 0);//鼠标滚动,使界面向下滚动20的高度 mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);//相对当前鼠标位置x轴和y轴分别移动50像素 mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);//相对当前鼠标位置x轴和y轴分别移动50像素 //mouse_event(MOUSEEVENTF_ABSOLUTE, 0, 0, 0, 0);//相对当前鼠标位置x轴和y轴分别移动50像素 //mouse_event(MOUSEEVENTF_MOVE, 0, 0, 0, 0);//相对当前鼠标位置x轴和y轴分别移动50像素 //var screenHeight = System.Windows.SystemParameters.PrimaryScreenHeight; //var screenWidth = System.Windows.SystemParameters.PrimaryScreenWidth; } #region //计算总页数 public int GetPageCount() { if (PageSum == 0) PageSum = 9; //每页显示的记录条数为"0",则默认为"20" if (dSum % PageSum == 0) return (dSum / PageSum); else return (dSum / PageSum) + 1; } #endregion /// /// 加载所有手术状态为“术前、术中、”的申请信息 /// /// /// private void LoadWaitNurseOpe(int curPage) { //每次去查询时,要更新一下记录总数,RecondSum,每一页显示的记录数为,PageSum , body = ""; messageStr = ""; systemType = ""; sendType = ""; ///创建表 //CreateTable(); //创建表头 //insertTitle(); ///创建列名 curPage -= 1; startRecond = curPage * PageSum; endRecond = startRecond + PageSum; try { //状态vchrOpeStatus 手术间vchrOperatingRoomName 时间BeginTime 姓名vchrPatientName //手术名称vchrOperationName术者 麻醉者 器械 巡回 string tdRows = ""; for (int i = startRecond; i < endRecond; i++) { string tdRow = ""; #region 内容的着色设置 if (i >= dSum) { tdRow += " "; } else { string intApplyID = dts.Rows[i]["OperationApplyId"].ToString(); string OperationRoom = dts.Rows[i]["SqOperationRoom"].ToString();// dts.Rows[i]["SZOperationRoom"].ToString() == "" ? dts.Rows[i]["SqOperationRoom"].ToString() : dts.Rows[i]["SZOperationRoom"].ToString(); string vchrOpeStatus = PublicMethod.GetOpeStatus(dts.Rows[i]); if (vchrOpeStatus == "") continue; string rowStyle = ""; if (i % 2 == 0) { rowStyle = "bgcolor='" + rowEvenBgColor + "' align=left valie=middle style='border-bottom:1px solid #629069;height:50px;font-size:" + fontSize + ";font-weight:bold; vertical-align: middle;font-family:\"" + fontFamily + "\"; "; } else { rowStyle = "bgcolor='" + rowOddBgColor + "' align=left valie=middle style='border-bottom:1px solid #629069;height:50px;font-size:" + fontSize + ";font-weight:bold; vertical-align: middle;font-family:\"" + fontFamily + "\"; "; } switch (vchrOpeStatus) { case "等待手术": rowStyle += " color:" + defaultColor + ";'"; break; case "手术准备": rowStyle += " color:" + opeBeforColor + ";'"; //2 break; case "手术进行中": rowStyle += " color:" + opeInColor + ";'"; //3 break; case "术后恢复": rowStyle += " color:" + opeAfterColor + ";'"; //4 break; case "手术结束转恢复室": OperationRoom = dts.Rows[i]["PACUBed"].ToString(); rowStyle += " color:" + opeInColor1 + ";'"; //6 break; case "手术结束安返病房": rowStyle += " color:" + opeAfterColor1 + ";'"; //57 break; case "转入复苏室": //OperationRoom = dts.Rows[i]["PACUBed"].ToString(); rowStyle += " color:" + opeInColor1 + ";'"; //6 //OperationRoom = dts.Rows[i]["PACUBed"].ToString(); break; case "离开复苏室": //OperationRoom = dts.Rows[i]["PACUBed"].ToString(); rowStyle += " color:" + opeAfterColor1 + ";'"; //57 break; case "手术结束": rowStyle += " color:" + opeAfterColor1 + ";'"; //57 break; default: break; } #endregion //注释时间列改为从床号 LM //vchrFactBeginTime = dts.Rows[i]["OperationBeginTime"].ToString();// == "" ? dts.Rows[i]["OrderOperationTime"].ToString() : dts.Rows[i]["InRoomTime"].ToString(); //if (vchrFactBeginTime.Trim().ToString() != "") //{ // vchrFactBeginTime = Convert.ToDateTime(vchrFactBeginTime).ToString("HH:mm"); //} //else vchrFactBeginTime = "- -"; tdRow += "
"; tdRow += "
" + dts.Rows[i]["DepartmentName"] + "
"; tdRow += "
" + dts.Rows[i]["Bed"] + "
"; string PatientName = ""; if (PatientNames == "") { PatientName = dts.Rows[i]["PatientName"].ToString(); } else { string name = dts.Rows[i]["PatientName"].ToString().Length < 2 ? "" : dts.Rows[i]["PatientName"].ToString().Substring(2); PatientName = dts.Rows[i]["PatientName"].ToString().Substring(0, 1) + PatientNames + name; } tdRow += "
 " + PatientName + "
"; //tdRow += " " + OperationRoom + ""; //tdRow += " " + vchrFactBeginTime + " "; tdRow += "
" + vchrOpeStatus + "
"; } tdRow += ""; tdRows += tdRow; } //显示备注等 body += tdRows; //body += viewRemark(); GetT_Inform(); //插入底部 insertBottom(); } catch (Exception exp) { throw; } } /// /// 显示备注 /// private string viewRemark() { string str = ""; str += ""; str += ""; str += "
"; str += "
"; //str += GetT_Inform(); str += "
"; str += ""; str += ""; str += "
"; str += ""; str += ""; return str; } /// /// 获取通知档的内容 /// private void GetT_Inform() { messageStr = ""; systemType = ""; sendType = ""; DeptId = xmlOpe.Element("DeptId").Value; DataRow dr = PublicMethod.getMessigeData(DeptId); if (dr != null) { if (dr["Contents"] != null && dr["Contents"].ToString().Trim() != "") { messageStr = dr["Contents"].ToString().Trim(); } if (dr["SystemType"] != null && dr["SystemType"].ToString().Trim() != "") { systemType = dr["SystemType"].ToString().Trim(); } else { systemType = "0"; } if (dr["SendType"] != null && dr["SendType"].ToString().Trim() != "") { sendType = dr["SendType"].ToString().Trim(); } else { sendType = "0"; } if (dr["Id"] != null && dr["Id"].ToString().Trim() != "") { messId = Convert.ToInt32(dr["Id"].ToString().Trim()); } } //string messige = PublicMethod.getMessige(); //if (messige.Trim() == "") return ""; //body += "
"; //body += ""; //body += messige + "
"; //return "" + messige + " "; //return messige; } private void SetViewTime() { _beginDate = PublicMethod.ServerTime().Date.AddSeconds(1); _endDate = PublicMethod.ServerTime().Date.AddHours(23).AddMinutes(59).AddSeconds(59); } #region 创建大屏公告列表 private void CreateTable() { //body += ""; body += ""; body += "{title}"; body += "{columens}"; body += "{rows}"; body += "
"; } /// /// 定义列 /// /// /// private void insertCols(string[] colNames, string[] colWidths) { string colString = ""; string colContent = ""; colString += "{td}"; for (int i = 0; i < colNames.Length; i++) { colContent += "" + colNames[i] + ""; } colString = colString.Replace("{td}", colContent); body = body.Replace("{columens}", colString); } /// /// 插入表头 /// private void insertTitle() { if (countPage == 0) { currentPage = 0; } string titleStr = ""; titleStr += ""; titleStr += ""; titleStr += "
" + WebConfigurationManager.AppSettings["BigScreenHospitalName"].ToString(); titleStr += "
今日手术
" + PublicMethod.ServerTime().ToString("yyyy-MM-dd HH:mm") + "\n(第" + currentPage + "屏/共" + countPage + "屏)
"; body = body.Replace("{title}", titleStr); } /// /// 插入表底部 /// private void insertBottom() { string bottomStr = ""; bottomStr += ""; bottomStr += ""; bottomStr += ""; //body = body.Replace("{Bootom}", bottomStr); body += bottomStr; } #endregion } }