using System;
using System.Data;
using System.Web;
using System.Web.Configuration;
using System.Xml.Linq;
using System.Web.Script.Serialization;
namespace BeginScreen
{
///
/// RoomHandler 的摘要说明
///
public class RoomHandler : HandlerBase
{
private DateTime _beginDate;
private DateTime _endDate;
private int dSum; //数据表的总记录
private int startRecond; //起始记录
private int endRecond; //结束记录
private static int PageSum = 8; //每页显示的记录数
private int countPage; //总页数
private int currentPage; //当前页
private DataTable dts;
#region 配置文件的属性
public static XElement xmlOpe = null;
private string fontSize = "18px";
private string fontFamily = "微软雅黑";
private string rowOddBgColor = "#000000";
private string rowEvenBgColor = "#000000";
//private string opeBeforColor = "DodgerBlue";
//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 + "RoomConfig.xml";
xmlOpe = XElement.Load(baseDirectory);
#endregion
}
public string GetHtml(HttpContext context)
{
//设置显示信息的开始和结束时间
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.GetPlanNoticeNew(_beginDate, _endDate, OpeTime == "" ? "5" : OpeTime, DeptId);
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();
return body;
}
#region //计算总页数
public int GetPageCount()
{
if (PageSum == 0)
PageSum = 8; //每页显示的记录条数为"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 = "";
curPage -= 1;
startRecond = curPage * PageSum;
endRecond = startRecond + PageSum;
string tdRows = "";
for (int i = startRecond; i < endRecond; i++)
{
try
{
string tdRow = "
";
if (i >= dSum)
{
tdRow += " | \r\n | \r\n | \r\n | \r\n | \r\n | \r\n | \r\n | \r\n | \r\n | ";
}
else
{
string intApplyID = dts.Rows[i]["ApplyId"].ToString();
string OperationRoom = dts.Rows[i]["OperationRoom"].ToString();
string vchrOpeStatus = dts.Rows[i]["State"].ToString();
string vchrFactBeginTime = "";
vchrFactBeginTime = dts.Rows[i]["OperationBeginTime"].ToString();
if (vchrFactBeginTime.Trim().ToString() != "")
{
vchrFactBeginTime = Convert.ToDateTime(vchrFactBeginTime).ToString("HH:mm");
}
if (vchrOpeStatus == "") continue;
string rowStyle = "";
if (i % 2 == 0)
{
rowStyle = " height='35px' bgcolor='" + rowEvenBgColor + "' style='font-size:" +
fontSize + ";font-family:" + fontFamily + ";' ";//font-weight:bold;
}
else
{
rowStyle = " height='35px' bgcolor='" + rowOddBgColor + "' style='font-size:" +
fontSize + "; font-family:" + fontFamily + ";' ";//font-weight:bold;
}
switch (vchrOpeStatus)
{
case "等待手术":
//rowStyle += " color:" + defaultColor + ";'";
break;
case "手术准备":
//rowStyle += " color:" + defaultColor + ";'";
break;
case "手术中":
//rowStyle += " color:" + defaultColor + ";'";
break;
case "术后恢复":
break;
case "手术结束转恢复室":
break;
case "手术结束安返病房":
break;
case "转入复苏室":
break;
case "离开复苏室":
break;
case "手术结束":
//rowStyle += " color:" + defaultColor + ";'";
break;
default:
break;
}
tdRow += " | ";
tdRow += "" + OperationRoom + " | ";
tdRow += "" + dts.Rows[i]["ApplyDepName"] + " | ";
tdRow += "" + dts.Rows[i]["PatientName"] + " | ";
string SZOperation = dts.Rows[i]["OperationInfo"].ToString();
tdRow += "" + SZOperation + " | ";
#region 读取医生的条件
string SZOperationDoctor = dts.Rows[i]["OperationDoctor"].ToString();
tdRow += "" + SZOperationDoctor + " | ";
#endregion
#region 读取麻醉医生2
string SZAnesthesiaDoctor = dts.Rows[i]["AnesthesiaDoctor"].ToString();
SZAnesthesiaDoctor = SZAnesthesiaDoctor == "" ? "- -" : SZAnesthesiaDoctor;
if (SZAnesthesiaDoctor.Contains(","))
{
SZAnesthesiaDoctor = SZAnesthesiaDoctor.Replace(',', '/');
}
tdRow += "" + SZAnesthesiaDoctor + " | ";
#endregion
#region 读取器械护士巡回护士
string SZTourNurse = dts.Rows[i]["TourNurse"].ToString();
string SZInstrumentNurse = dts.Rows[i]["InstrumentNurse"].ToString();
if (SZInstrumentNurse == "") SZInstrumentNurse = "- -";
if (SZTourNurse == "") SZTourNurse = "- -";
tdRow += "" + SZInstrumentNurse + "/" + SZTourNurse + " | ";
#endregion
tdRow += "" + vchrFactBeginTime + " | ";
tdRow += "" + vchrOpeStatus + " | ";
}
tdRow += "
";
tdRows += tdRow;
}
catch (Exception)
{
}
}
//显示备注等
body += tdRows;
GetT_Inform();
}
///
/// 获取通知档的内容
///
private void GetT_Inform()
{
DataRow dr = PublicMethod.GetMessigeData();
if (dr != null)
{
if (dr["Contents"] != null && dr["Contents"].ToString().Trim() != "")
{
messageStr = dr["Contents"].ToString().Trim();
}
systemType = "0";
if (dr["Id"] != null && dr["Id"].ToString().Trim() != "")
{
messId = Convert.ToInt32(dr["Id"].ToString().Trim());
}
}
}
private void SetViewTime()
{
_beginDate = PublicMethod.ServerTime().Date.AddSeconds(1);
_endDate = PublicMethod.ServerTime().Date.AddHours(23).AddMinutes(59).AddSeconds(59);
}
public void GetHtmlTime(HttpContext context)
{
DateTime dt = PublicMethod.ServerTime();
context.Response.Write(dt.ToString());//返回给前台页面
context.Response.End();
}
}
}