314 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			314 lines
		
	
	
		
			12 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>
 | ||
|     /// WaitingHandler 的摘要说明
 | ||
|     /// </summary>
 | ||
|     public class WaitingHandler : HandlerBase
 | ||
|     {
 | ||
| 
 | ||
|         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 = "20px";
 | ||
|         private string fontFamily = "微软雅黑";
 | ||
|         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 + "WaitConfig.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;
 | ||
|             messageStr = "";
 | ||
|             DataTable dt = new DataTable();
 | ||
|             dt = PublicMethod.GetPlanNoticeNew1(_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;
 | ||
|         }
 | ||
| 
 | ||
|         public void GetOpenFile(HttpContext context)
 | ||
|         {
 | ||
|             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";
 | ||
|         }
 | ||
|         #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 = "";
 | ||
| 
 | ||
|             curPage -= 1;
 | ||
|             startRecond = curPage * PageSum;
 | ||
|             endRecond = startRecond + PageSum;
 | ||
| 
 | ||
|             string tdRows = "";
 | ||
|             for (int i = startRecond; i < endRecond; i++)
 | ||
|             {
 | ||
|                 try
 | ||
|                 {
 | ||
|                     string tdRow = "<tr>";
 | ||
|                     if (i >= dSum)
 | ||
|                     {
 | ||
|                         tdRow += "<td colspan='5'> </td>";
 | ||
|                     }
 | ||
|                     else
 | ||
|                     {
 | ||
|                         string intApplyID = dts.Rows[i]["ApplyId"].ToString();
 | ||
|                         string OperationRoom = dts.Rows[i]["OperationRoom"].ToString();
 | ||
|                         string vchrOpeStatus = GetOpeStatus(dts.Rows[i]);
 | ||
|                         if (vchrOpeStatus == "") continue;
 | ||
| 
 | ||
| 
 | ||
|                         string rowStyle = "";
 | ||
|                         if (i % 2 == 0)
 | ||
|                         {
 | ||
|                             rowStyle = " height='35px' bgcolor='" + rowEvenBgColor + "'  style='font-size:" +  fontSize + ";font-family:" + fontFamily + ";' "; 
 | ||
|                         }
 | ||
|                         else
 | ||
|                         {
 | ||
|                             rowStyle = " height='35px' bgcolor='" + rowOddBgColor + "'   style='font-size:" +    fontSize + "; font-family:" + fontFamily + ";' "; 
 | ||
|                         }
 | ||
|                         switch (vchrOpeStatus)
 | ||
|                         {
 | ||
|                             case "等待手术": 
 | ||
|                                 break;
 | ||
|                             case "手术准备": 
 | ||
|                                 break;
 | ||
|                             case "手术中": 
 | ||
|                                 break;
 | ||
|                             case "手术结束": 
 | ||
|                                 break;
 | ||
|                             case "术后恢复":
 | ||
|                                 break;
 | ||
|                             case "手术结束转恢复室":
 | ||
|                                 break;
 | ||
|                             case "手术结束安返病房":
 | ||
|                                 break;
 | ||
|                             case "转入复苏室":
 | ||
|                                 break;
 | ||
|                             case "离开复苏室":
 | ||
|                                 break;
 | ||
|                             default:
 | ||
|                                 break;
 | ||
|                         }
 | ||
| 
 | ||
|                         tdRow += "<td align='center' " + rowStyle + "></td>";
 | ||
|                         tdRow += "<td align='center' " + rowStyle + ">" + dts.Rows[i]["ApplyDepName"] + "</td>";
 | ||
|                         tdRow += "<td align='center' " + rowStyle + ">" + dts.Rows[i]["SickBed"] + "</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 + "> " + PatientName + "</td>";
 | ||
|                         tdRow += "<td align='center' " + rowStyle + ">" + vchrOpeStatus + "</td>";
 | ||
| 
 | ||
|                     }
 | ||
|                     tdRow += "</tr>";
 | ||
|                     tdRows += tdRow;
 | ||
|                 }
 | ||
|                 catch (Exception)
 | ||
|                 {
 | ||
|                 }
 | ||
|             }
 | ||
|             //显示备注等
 | ||
|             body += tdRows;
 | ||
|             GetT_Inform();
 | ||
|         }
 | ||
| 
 | ||
| 
 | ||
|         /// <summary>
 | ||
|         ///     获取通知档的内容
 | ||
|         /// </summary>
 | ||
|         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 static string GetOpeStatus(DataRow dts)
 | ||
|         {
 | ||
|             //--0.【等待手术】   “已排程”“待访视”“已访视”
 | ||
|             //--1.【术前准备】   点击“手术转入”
 | ||
|             //--2.【手术进行中】 点击“手术开始”
 | ||
|             //--3.【术后恢复】   点击“手术结束”
 | ||
|             //--4.【离开手术室】 从点击手术结束
 | ||
|             //--5.【转入复苏室】 麻醉恢复记录单点击“转入”
 | ||
|             //--6.【离开手术室】 点击“转出”恢复室 
 | ||
|             string OpeStatus = dts["State"].ToString();
 | ||
|             string InRoomTime = dts["InRoomTime"].ToString();
 | ||
|             string OperationBeginTime = dts["OperationBeginTime"].ToString();
 | ||
|             string OperationEndTime = dts["OperationEndTime"].ToString();
 | ||
|             string OutRoomTime = dts["OutRoomTime"].ToString();
 | ||
|             string Temp = "";
 | ||
|             if (OpeStatus  == "等待手术")
 | ||
|             {
 | ||
|                 Temp = "等待手术";
 | ||
|             }
 | ||
|             if (OpeStatus == "手术中" && InRoomTime != "" && OperationBeginTime == "" && OperationEndTime == "" && OutRoomTime == "")
 | ||
|             {
 | ||
|                 Temp = "手术准备";
 | ||
|             }
 | ||
|             if (OpeStatus == "手术中" && InRoomTime != "" && OperationBeginTime != "" && OperationEndTime == "" && OutRoomTime == "")
 | ||
|             {
 | ||
|                 Temp = "手术进行中";
 | ||
|             }
 | ||
|             if (OpeStatus == "手术中" && InRoomTime != "" && OperationBeginTime != "" && OperationEndTime != "" && OutRoomTime == "")
 | ||
|             {
 | ||
|                 if (DateTime.Now < Convert.ToDateTime(OperationEndTime))
 | ||
|                 {
 | ||
|                     Temp = "手术进行中";
 | ||
|                 }
 | ||
|                 else
 | ||
|                 {
 | ||
|                     Temp = "术后恢复";
 | ||
|                 }
 | ||
|             }
 | ||
|             if (InRoomTime != "" && OperationBeginTime != "" && OperationEndTime != "" && OutRoomTime != "")
 | ||
|             {
 | ||
|                 if (DateTime.Now < Convert.ToDateTime(OutRoomTime))
 | ||
|                 {
 | ||
|                     Temp = "术后恢复";
 | ||
|                 }
 | ||
|                 else if (dts["Pulse"].ToString() == "病房")
 | ||
|                 {
 | ||
|                     Temp = "手术结束安返病房";
 | ||
|                 }
 | ||
|                 else if (dts["Pulse"].ToString() == "恢复室")
 | ||
|                 {
 | ||
|                     Temp = "手术结束转恢复室";
 | ||
|                 }
 | ||
|                 else
 | ||
|                 {
 | ||
|                     Temp = "手术结束";
 | ||
|                 }
 | ||
|             }
 | ||
|             //if (OpeStatus == "4" && InRoomTime != "" && OutRoomTime == "")
 | ||
|             //{
 | ||
|             //    Temp = "转入复苏室";
 | ||
|             //}
 | ||
|             //if (OpeStatus == "5" && InRoomTime != "" && OutRoomTime != "")
 | ||
|             //{
 | ||
|             //    Temp = "离开复苏室";
 | ||
|             //}
 | ||
|             return Temp;
 | ||
|         }
 | ||
| 
 | ||
|     }
 | ||
| } |