AIMS/BeginScreen/WaitingHandler.ashx.cs
2023-03-01 00:21:03 +08:00

329 lines
13 KiB
C#
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System;
using System.Data;
using System.Web;
using System.Web.Configuration;
using System.Xml.Linq;
using System.Web.Script.Serialization;
using System.Speech.Synthesis;
using System.Text;
using System.Threading.Tasks;
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 + ">&nbsp" + 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());
}
//var task = Task.Factory.StartNew(() =>
//{
// using (var speechSyn = new SpeechSynthesizer())
// {
// //speechSyn.Volume = ;//语速
// //speechSyn.Rate = -;//音量
// speechSyn.SetOutputToDefaultAudioDevice();
// speechSyn.SetOutputToWaveFile("E:\\AIMS\\BeginScreen\\static\\Record.wav");//"D:\\Record.wav"
// speechSyn.Speak(messageStr );
// }
//});
//Task.WaitAll(task);
}
}
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;
}
}
}