505 lines
22 KiB
C#
505 lines
22 KiB
C#
using System;
|
||
using System.Data;
|
||
using System.Web;
|
||
using System.Web.Configuration;
|
||
using System.Xml.Linq;
|
||
using System.Web.Script.Serialization;
|
||
|
||
|
||
namespace BeginScreen
|
||
{
|
||
/// <summary>
|
||
/// RelationsWaitingAreaBigScreenHandler 的摘要说明
|
||
/// </summary>
|
||
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 = " <div style='position: absolute;top: 50%;left: 50%;width: 800px;height: 50px;margin-top: -25px; margin-left: -400px; background-color:#000;font: bold 48px/50px Verdana, Geneva, sans-serif; '>";
|
||
// body += "<marquee direction='left' scrollamount='5' style='font: bold 48px/50px Verdana, Geneva, sans-serif; color:#FF0000'>";
|
||
// body += exp.Message + " 与数据服务器连接中断,请稍候......</marquee></div>";
|
||
|
||
// 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
|
||
|
||
/// <summary>
|
||
/// 加载所有手术状态为“术前、术中、”的申请信息
|
||
/// </summary>
|
||
/// <param name="m"></param>
|
||
/// <param name="n"></param>
|
||
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 = "<tr>";
|
||
#region 内容的着色设置
|
||
if (i >= dSum)
|
||
{
|
||
tdRow += "<td colspan='9'> </td>";
|
||
}
|
||
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 += "<td align='center' " + rowStyle + "><div></div></td>";
|
||
tdRow += "<td align='center' " + rowStyle + "><div>" + dts.Rows[i]["DepartmentName"] + "</div></td>";
|
||
tdRow += "<td align='center' " + rowStyle + "><div>" + dts.Rows[i]["Bed"] + "</div></td>";
|
||
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 += "<td align='center' " + rowStyle + "><div> " + PatientName + "</div></td>";
|
||
//tdRow += "<td align='center' " + rowStyle + "> " + OperationRoom + "</td>";
|
||
//tdRow += "<td align='center' " + rowStyle + "> " + vchrFactBeginTime + " </td>";
|
||
tdRow += "<td align='center' " + rowStyle + "><div>" + vchrOpeStatus + "</div></td>";
|
||
}
|
||
tdRow += "</tr>";
|
||
tdRows += tdRow;
|
||
}
|
||
//显示备注等
|
||
body += tdRows;
|
||
//body += viewRemark();
|
||
GetT_Inform();
|
||
//插入底部
|
||
insertBottom();
|
||
}
|
||
catch (Exception exp)
|
||
{
|
||
throw;
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 显示备注
|
||
/// </summary>
|
||
private string viewRemark()
|
||
{
|
||
string str = "";
|
||
str += "<tr style=\"position: fixed; bottom: 0;width: 100%;\">";
|
||
str += "<td colspan=\"10\" style=\"border-bottom: 0 !important;display: block;\">";
|
||
str += "<div style=\"background: #016768 !important; border-bottom-left-radius: 0; border-bottom-right-radius: 0; border-bottom: 0; padding: 0 5%; height: 60px; width: 89%; position: relative;\">";
|
||
str += "<div style=\"background: #17233B!important; width: 99%; height: 40px; margin-top: 10px; padding: 0 0px;\">";
|
||
//str += GetT_Inform();
|
||
str += "</div>";
|
||
str += "<span style=\"display: block; width: 20px; height: 20px; background: red; position: absolute; left: 1.8%; top: 22px; border-radius: 50%; border: 1px solid #fff;\"></span>";
|
||
str += "<span style=\"display: block; width: 20px; height: 20px; background: red; position: absolute; right: 1.8%; top: 22px; border-radius: 50%; border: 1px solid #fff;\"></span>";
|
||
str += "</div>";
|
||
str += "</td>";
|
||
str += "</tr>";
|
||
return str;
|
||
}
|
||
|
||
|
||
/// <summary>
|
||
/// 获取通知档的内容
|
||
/// </summary>
|
||
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 += " <tr><td><div style='position: absolute;top: 50%;left: 50%;width: 1000px;height: 50px;margin-top: -25px; margin-left:-500px; background-color:#000;font: bold 55px/57px Verdana, Geneva, sans-serif; '>";
|
||
//body += "<marquee direction='left' scrollamount='12' style='font: bold 55px/57px Verdana, Geneva, sans-serif; color:#d808d6'>";
|
||
//body += messige + " </marquee></div></td></tr>";
|
||
//return "<marquee direction=\"left\" scrollamount=\"12\" style=\"font: bold 25px/27px Verdana, Geneva, sans-serif; color: #fff\">" + messige + " </marquee>";
|
||
//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 += "<script language='javascript'> setInterval(someFunction, 10000);function someFunction() {window.location.reload();}</script>";
|
||
body += "<table border=0 width='100%' height='100%' cellpadding=0 cellspacing=0>";
|
||
body += "{title}";
|
||
body += "{columens}";
|
||
body += "{rows}";
|
||
body += "</table>";
|
||
}
|
||
|
||
/// <summary>
|
||
/// 定义列
|
||
/// </summary>
|
||
/// <param name="colNames"></param>
|
||
/// <param name="colWidths"></param>
|
||
private void insertCols(string[] colNames, string[] colWidths)
|
||
{
|
||
string colString = "";
|
||
string colContent = "";
|
||
colString += "<tr style='background:" + titleColBgColor + ";color:white;margin-bottom:6px;font-size:" +
|
||
fontSize + ";font-weight:bold;font-family:\"" + fontFamily + "\";'>{td}</tr>";
|
||
for (int i = 0; i < colNames.Length; i++)
|
||
{
|
||
colContent += "<td width = '" + colWidths[i] +
|
||
"' align='center' valign='middle' height='5%' style='padding:6px;'>" + colNames[i] +
|
||
"</td>";
|
||
}
|
||
colString = colString.Replace("{td}", colContent);
|
||
body = body.Replace("{columens}", colString);
|
||
|
||
}
|
||
|
||
/// <summary>
|
||
/// 插入表头
|
||
/// </summary>
|
||
private void insertTitle()
|
||
{
|
||
if (countPage == 0)
|
||
{
|
||
currentPage = 0;
|
||
}
|
||
string titleStr = "";
|
||
titleStr += "<tr style='background:black;color:white;margin-bottom:6px;font-size:40px;font-weight:bold;font-family:\"" + fontFamily + "\";'>";
|
||
titleStr += "<td colspan='9' align='center' valign='middle' height='10%' style='padding:6px;'>";
|
||
titleStr += "<DIV style='left:10px; top: 22px; position: absolute;color:" + titleBgColor + ";font-size:" + fontSize + ";'>" + WebConfigurationManager.AppSettings["BigScreenHospitalName"].ToString();
|
||
titleStr += "</DIV>今日手术<DIV style='right: 10px; top: 22px; position: absolute;color:" + titleBgColor + ";font-size:" + fontSize + ";'>" + PublicMethod.ServerTime().ToString("yyyy-MM-dd HH:mm") + "\n(第" + currentPage + "屏/共" + countPage + "屏) </DIV></TD></tr>";
|
||
body = body.Replace("{title}", titleStr);
|
||
}
|
||
|
||
/// <summary>
|
||
/// 插入表底部
|
||
/// </summary>
|
||
private void insertBottom()
|
||
{
|
||
string bottomStr = "";
|
||
bottomStr += "<tr>";
|
||
bottomStr += "<td colspan='9' align='center' valign='middle' id='bottom1'></td>";
|
||
bottomStr += "</tr>";
|
||
//body = body.Replace("{Bootom}", bottomStr);
|
||
body += bottomStr;
|
||
}
|
||
|
||
#endregion
|
||
|
||
|
||
|
||
|
||
}
|
||
} |