You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
441 lines
22 KiB
441 lines
22 KiB
using SchedulingSystem.EntityClass; |
|
using SchedulingSystemClient.EntityClass; |
|
using System; |
|
using System.Collections.Generic; |
|
using System.Linq; |
|
using System.Text; |
|
using System.Windows; |
|
using System.Windows.Controls; |
|
using System.Windows.Data; |
|
using System.Windows.Documents; |
|
using System.Windows.Input; |
|
using System.Windows.Media; |
|
using System.Windows.Media.Imaging; |
|
using System.Windows.Shapes; |
|
|
|
namespace SchedulingSystemClient.InsertWindow |
|
{ |
|
/// <summary> |
|
/// XZRJSSWindow.xaml 的交互逻辑 |
|
/// </summary> |
|
public partial class XZRJSSWindow : Window |
|
{ |
|
SurgerySchedulingEntities myModel = new SurgerySchedulingEntities(); |
|
public XZRJSSWindow(SYS_YHB yh) |
|
{ |
|
InitializeComponent(); |
|
user = yh; |
|
} |
|
SYS_YHB user = new SYS_YHB(); |
|
private void Window_Loaded(object sender, RoutedEventArgs e) |
|
{ |
|
List<ComboBoxBinding> listks = new List<ComboBoxBinding>(); |
|
List<ComboBoxBinding> listys = new List<ComboBoxBinding>(); |
|
List<ComboBoxBinding> listssmc = new List<ComboBoxBinding>(); |
|
listks = (from tbsss in myModel.SYS_KSB |
|
select new ComboBoxBinding |
|
{ |
|
ID = tbsss.ID, |
|
Name = tbsss.KSMC, |
|
}).ToList(); |
|
listys = (from tbsss in myModel.SYS_SSYSB |
|
select new ComboBoxBinding |
|
{ |
|
ID = tbsss.ID, |
|
Name = tbsss.YSXM, |
|
}).ToList(); |
|
listssmc = (from tbsss in myModel.SYS_SSXXB |
|
where tbsss.CJSS == true |
|
select new ComboBoxBinding |
|
{ |
|
ID = tbsss.ID, |
|
Name = tbsss.SSMC, |
|
}).ToList(); |
|
List<string> shi = new List<string>(); |
|
for (int i = 0; i < 24; i++) |
|
{ |
|
if (i < 10) |
|
{ |
|
shi.Add("0" + i); |
|
} |
|
else |
|
{ |
|
shi.Add(i.ToString()); |
|
} |
|
} |
|
|
|
List<string> fen = new List<string>(); |
|
for (int i = 0; i < 60; i++) |
|
{ |
|
if (i < 10) |
|
{ |
|
fen.Add("0" + i); |
|
} |
|
else |
|
{ |
|
fen.Add(i.ToString()); |
|
} |
|
} |
|
|
|
List<string> miao = new List<string>(); |
|
for (int i = 0; i < 60; i++) |
|
{ |
|
if (i < 10) |
|
{ |
|
miao.Add("0" + i); |
|
} |
|
else |
|
{ |
|
miao.Add(i.ToString()); |
|
} |
|
} |
|
|
|
KS.ItemsSource = listks; |
|
KS.SelectedValuePath = "ID"; |
|
KS.DisplayMemberPath = "Name"; |
|
YS.ItemsSource = listys; |
|
YS.SelectedValuePath = "ID"; |
|
YS.DisplayMemberPath = "Name"; |
|
SSMC.ItemsSource = listssmc; |
|
SSMC.SelectedValuePath = "ID"; |
|
SSMC.DisplayMemberPath = "Name"; |
|
} |
|
private void btn_bc_Click(object sender, RoutedEventArgs e) |
|
{ |
|
try |
|
{ |
|
DateTime kssj = DateTime.Now.AddDays(1 - DateTime.Now.Day).Date; |
|
// DateTime jssj = DateTime.Now.Date.AddSeconds(-1); |
|
if (KS.SelectedIndex < 0) |
|
{ |
|
MessageBox.Show("请选择科室"); |
|
return; |
|
} |
|
int ksid = Convert.ToInt32(KS.SelectedValue); |
|
var listsss = (from tbsssb in myModel.SYS_SSSBDB |
|
join tbsss in myModel.SYS_SSSB on tbsssb.SSSID equals tbsss.ID |
|
where tbsssb.KSID == ksid && tbsssb.SFKY == true && tbsss.SFRJ == true |
|
select new |
|
{ |
|
tbsssb |
|
}).ToList(); |
|
if (listsss.Count <= 0) |
|
{ |
|
MessageBox.Show("该科室没有可用的手术室!"); |
|
return; |
|
} |
|
if (YS.SelectedIndex < 0) |
|
{ |
|
MessageBox.Show("请选择医生"); |
|
return; |
|
} |
|
if (SSMC.SelectedIndex < 0) |
|
{ |
|
MessageBox.Show("请选择手术"); |
|
return; |
|
} |
|
if (HZXM.Text == null || HZXM.Text == string.Empty) |
|
{ |
|
MessageBox.Show("请填写患者姓名"); |
|
return; |
|
} |
|
if (ZYH.Text == null || ZYH.Text == string.Empty) |
|
{ |
|
MessageBox.Show("请填写住院号"); |
|
return; |
|
} |
|
if (ZLKH.Text == null || ZLKH.Text == string.Empty) |
|
{ |
|
MessageBox.Show("请填写诊疗卡号"); |
|
return; |
|
} |
|
DateTime sj = DateTime.Now; |
|
string yue = sj.Month > 10 ? sj.Month.ToString() : "0" + sj.Month; |
|
string day = sj.Day > 10 ? sj.Day.ToString() : "0" + sj.Day; |
|
string shi = sj.Hour > 10 ? sj.Hour.ToString() : "0" + sj.Hour; |
|
string fen = sj.Minute > 10 ? sj.Minute.ToString() : "0" + sj.Minute; |
|
string miao = sj.Second > 10 ? sj.Second.ToString() : "0" + sj.Second; |
|
Bus_RJSSB rjss = new Bus_RJSSB(); |
|
rjss.SQDH = "SQD" + sj.Year + yue + day + shi + fen + miao + sj.Millisecond; |
|
rjss.HZXM = HZXM.Text; |
|
rjss.KSID = Convert.ToInt32(KS.SelectedValue); |
|
rjss.SFJZ = SSMC.SelectedIndex == 0 ? true : false; |
|
rjss.SQSJ = DateTime.Now; |
|
rjss.SQZD = SQZD.Text; |
|
rjss.SSID = Convert.ToInt32(SSMC.SelectedValue); |
|
rjss.ZDYS = Convert.ToInt32(YS.SelectedValue); |
|
rjss.ZLKH = ZLKH.Text; |
|
rjss.ZYH = ZYH.Text; |
|
rjss.PBZT = 1; |
|
rjss.SSRQ = DateTime.Now.Date; |
|
//分配手术室 |
|
var sss = (from tbsssb in myModel.SYS_SSSBDB |
|
join tbsss in myModel.SYS_SSSB on tbsssb.SSSID equals tbsss.ID |
|
where tbsssb.KSID == rjss.KSID && tbsssb.SFKY == true && tbsss.SFRJ ==true |
|
select new |
|
{ |
|
tbsssb |
|
}).ToList(); |
|
List<Cus_SSSSC> ssssc = new List<Cus_SSSSC>(); |
|
for (int s = 0; s < listsss.Count; s++) |
|
{ |
|
Cus_SSSSC sc = new Cus_SSSSC(); |
|
int sssid = Convert.ToInt32(listsss[s].tbsssb.SSSID); |
|
var listsssc = (from tbrjss in myModel.Bus_RJSSB |
|
where tbrjss.SSSID == sssid |
|
select new |
|
{ |
|
tbrjss |
|
}).ToList(); |
|
decimal sssc = Convert.ToDecimal(listsssc.Sum(a => a.tbrjss.SSZSC)); |
|
sc.SSSID = sssid; |
|
sc.SSSC = sssc; |
|
ssssc.Add(sc); |
|
} |
|
ssssc = ssssc.OrderBy(a => a.SSSC).ToList(); |
|
rjss.SSSID = ssssc[0].SSSID; |
|
|
|
|
|
////分配麻醉医生 |
|
//List<Cus_MZYSSC> listmzyssc = new List<Cus_MZYSSC>(); |
|
//var listrjssmz = ((from tbsspb in myModel.Bus_RJSSB |
|
// join tbmzys1 in myModel.SYS_MZYSB on tbsspb.MZYS1 equals tbmzys1.ID |
|
// join tbsssb in myModel.SYS_SSSB on tbsspb.SSSID equals tbsssb.ID |
|
// where tbsspb.SSKSSJ >= kssj && tbsspb.PBZT != 3 && tbsspb.SSSID == rjss.SSSID |
|
// select new Cus_MZYSSC |
|
// { |
|
// MZYSID = tbsspb.MZYS1, |
|
// MZYS = tbmzys1.YSMC, |
|
// SSSID = tbsspb.SSSID, |
|
// SSS = tbsssb.SSSMC, |
|
// SSSC = tbsspb.SSSC, |
|
// }).Concat(from tbsspb in myModel.Bus_RJSSB |
|
// join tbmzys2 in myModel.SYS_MZYSB on tbsspb.MZYS2 equals tbmzys2.ID |
|
// join tbsssb in myModel.SYS_SSSB on tbsspb.SSSID equals tbsssb.ID |
|
// where tbsspb.SSKSSJ >= kssj && tbsspb.PBZT != 3 && tbsspb.SSSID == rjss.SSSID |
|
// select new Cus_MZYSSC |
|
// { |
|
// MZYSID = tbsspb.MZYS2, |
|
// MZYS = tbmzys2.YSMC, |
|
// SSSID = tbsspb.SSSID, |
|
// SSS = tbsssb.SSSMC, |
|
// SSSC = tbsspb.SSSC, |
|
// })).ToList(); |
|
//var listmzys = (from tbmzysb in myModel.SYS_MZYSB |
|
// where tbmzysb.SSSID == rjss.SSSID |
|
// select new |
|
// { tbmzysb }).ToList(); |
|
//for (int i = 0; i < listmzys.Count; i++) |
|
//{ |
|
// int mzysid = Convert.ToInt32(listmzys[i].tbmzysb.ID); |
|
// var listys = listrjssmz.Where(a => a.MZYSID == mzysid).ToList(); |
|
// Cus_MZYSSC mzys = new Cus_MZYSSC(); |
|
// mzys.MZYSID = mzysid; |
|
// mzys.SSSC = listys.Sum(a => a.SSSC); |
|
// listmzyssc.Add(mzys); |
|
//} |
|
//listmzyssc = listmzyssc.OrderBy(a => a.SSSC).ToList(); |
|
//rjss.MZYS1 = listmzyssc[0].MZYSID; |
|
////分配护士 |
|
//List<Cus_MZYSSC> listhssc = new List<Cus_MZYSSC>(); |
|
//var listrjsshs = ((from tbsspb in myModel.Bus_RJSSB |
|
// join tbxhhs1 in myModel.SYS_HSB on tbsspb.XHHS1 equals tbxhhs1.ID |
|
// join tbsssb in myModel.SYS_SSSB on tbsspb.SSSID equals tbsssb.ID |
|
// where tbsspb.SSKSSJ >= kssj && tbsspb.PBZT != 3 && tbsspb.SSSID == rjss.SSSID |
|
// select new Cus_MZYSSC |
|
// { |
|
// MZYSID = tbsspb.XHHS1, |
|
// MZYS = tbxhhs1.HSMC, |
|
// SSSID = tbsspb.SSSID, |
|
// SSS = tbsssb.SSSMC, |
|
// SSSC = tbsspb.SSSC, |
|
// }).Concat(from tbsspb in myModel.Bus_RJSSB |
|
// join tbxhhs2 in myModel.SYS_MZYSB on tbsspb.XHHS2 equals tbxhhs2.ID |
|
// join tbsssb in myModel.SYS_SSSB on tbsspb.SSSID equals tbsssb.ID |
|
// where tbsspb.SSKSSJ >= kssj && tbsspb.PBZT != 3 && tbsspb.SSSID == rjss.SSSID |
|
// select new Cus_MZYSSC |
|
// { |
|
// MZYSID = tbsspb.XHHS2, |
|
// MZYS = tbxhhs2.YSMC, |
|
// SSSID = tbsspb.SSSID, |
|
// SSS = tbsssb.SSSMC, |
|
// SSSC = tbsspb.SSSC, |
|
// }).Concat(from tbsspb in myModel.Bus_RJSSB |
|
// join tbxshs1 in myModel.SYS_MZYSB on tbsspb.XSHS1 equals tbxshs1.ID |
|
// join tbsssb in myModel.SYS_SSSB on tbsspb.SSSID equals tbsssb.ID |
|
// where tbsspb.SSKSSJ >= kssj && tbsspb.PBZT != 3 && tbsspb.SSSID == rjss.SSSID |
|
// select new Cus_MZYSSC |
|
// { |
|
// MZYSID = tbsspb.XSHS1, |
|
// MZYS = tbxshs1.YSMC, |
|
// SSSID = tbsspb.SSSID, |
|
// SSS = tbsssb.SSSMC, |
|
// SSSC = tbsspb.SSSC, |
|
// }).Concat(from tbsspb in myModel.Bus_RJSSB |
|
// join tbxshs2 in myModel.SYS_MZYSB on tbsspb.XSHS1 equals tbxshs2.ID |
|
// join tbsssb in myModel.SYS_SSSB on tbsspb.SSSID equals tbsssb.ID |
|
// where tbsspb.SSKSSJ >= kssj && tbsspb.PBZT != 3 && tbsspb.SSSID == rjss.SSSID |
|
// select new Cus_MZYSSC |
|
// { |
|
// MZYSID = tbsspb.XSHS2, |
|
// MZYS = tbxshs2.YSMC, |
|
// SSSID = tbsspb.SSSID, |
|
// SSS = tbsssb.SSSMC, |
|
// SSSC = tbsspb.SSSC, |
|
// })).ToList(); |
|
//var listxhhs = (from tbmzysb in myModel.SYS_HSB |
|
// where tbmzysb.SSSID == rjss.SSSID |
|
// select new |
|
// { tbmzysb }).ToList(); |
|
//for (int i = 0; i < listxhhs.Count; i++) |
|
//{ |
|
// int mzysid = Convert.ToInt32(listxhhs[i].tbmzysb.ID); |
|
// var listys = listrjsshs.Where(a => a.MZYSID == mzysid).ToList(); |
|
// Cus_MZYSSC mzys = new Cus_MZYSSC(); |
|
// mzys.MZYSID = mzysid; |
|
// mzys.SSSC = listys.Sum(a => a.SSSC); |
|
// listrjsshs.Add(mzys); |
|
//} |
|
//listrjsshs = listrjsshs.OrderBy(a => a.SSSC).ToList(); |
|
//rjss.XSHS1 = listrjsshs[0].MZYSID; |
|
//rjss.XHHS1 = listrjsshs[1].MZYSID; |
|
|
|
var listrjss = (from tbrjss in myModel.Bus_RJSSB |
|
where tbrjss.SSSID == rjss.SSSID && tbrjss.SSRQ == rjss.SSRQ && tbrjss.PBZT !=3 |
|
select new |
|
{ |
|
tbrjss |
|
}).ToList(); |
|
|
|
listrjss = listrjss.OrderBy(a => a.tbrjss.SSJSSJ).ToList(); |
|
if (listrjss.Count>0) |
|
{ |
|
rjss.SSKSSJ = listrjss[0].tbrjss.SSJSSJ; |
|
} |
|
else |
|
{ |
|
rjss.SSKSSJ = Convert.ToDateTime( DateTime.Now.AddHours(2).ToString("yyyy/MM/dd HH:00:00")); |
|
} |
|
int ssid = Convert.ToInt32(rjss.SSID); |
|
Cus_SSSQB ssxxb = (from tbssxxb in myModel.SYS_SSXXB |
|
join tbssdjb in myModel.SYS_SSDJB on tbssxxb.SSDJID equals tbssdjb.ID |
|
join tbqklxb in myModel.SYS_SSQKLXB on tbssxxb.SSQKLXID equals tbqklxb.ID |
|
join tbssscb in myModel.SYS_SSSCB on tbssxxb.SSSCID equals tbssscb.ID |
|
join tbqjscb in myModel.SYS_SSSCB on tbqklxb.QJSCID equals tbqjscb.ID |
|
where tbssxxb.ID == ssid |
|
select new Cus_SSSQB |
|
{ |
|
SSDJQZ = tbssdjb.QZ, |
|
QKLXQZ = tbqklxb.QZ, |
|
QJSC = tbqjscb.SSSC, |
|
SSSC = tbssscb.SSSC, |
|
SSLX = tbssxxb.SSLX, |
|
}).Single(); |
|
rjss.SSSC = ssxxb.SSSC; |
|
rjss.QJSC = ssxxb.QJSC; |
|
rjss.SSZSC = rjss.SSSC + rjss.QJSC; |
|
rjss.SSJSSJ = Convert.ToDateTime(rjss.SSKSSJ).AddHours((double)rjss.SSZSC); |
|
//int sssid = Convert.ToInt32(listsspb.tbsspbb.SSSID); |
|
//int ssxxid = Convert.ToInt32(listsspb.tbsspbb.SSID); |
|
|
|
int sslxid = Convert.ToInt32(ssxxb.SSLX); |
|
//int mzyszc = Convert.ToInt32(ssxxb.tbssxxb.MZYSZCID); |
|
//int hszcid = Convert.ToInt32(ssxxb.tbssxxb.HSZCID); |
|
//decimal sssc = Convert.ToInt32(listsspb.tbsspbb.SSZSC); |
|
DateTime ssrq = Convert.ToDateTime(rjss.SSRQ); |
|
DateTime sskssj = Convert.ToDateTime(rjss.SSKSSJ); |
|
DateTime ssjssj = Convert.ToDateTime(rjss.SSJSSJ); |
|
//分配麻醉医生 |
|
List<Cus_MZYSSC> listmzyssc = new List<Cus_MZYSSC>(); |
|
List<Cus_MZYSSC> listhssc = new List<Cus_MZYSSC>(); |
|
//查询出所有麻醉医生 |
|
var listmzys = (from tbmzysb in myModel.SYS_MZYSB |
|
select new { tbmzysb }).ToList(); |
|
//查询出本月的麻醉医生排班 |
|
var listdypb = (from tbmzyspb in myModel.Bus_MZYSPBB |
|
where tbmzyspb.SSKSSJ >= kssj |
|
select new { tbmzyspb }).ToList(); |
|
//查询出手术当天以排班的麻醉医生 |
|
var listdtpb = listdypb.Where(a => a.tbmzyspb.SSRQ == ssrq).ToList(); |
|
//移除当前时间有排班的麻醉医生 |
|
for (int i = 0; i < listdtpb.Count; i++) |
|
{ |
|
DateTime pbkssj = Convert.ToDateTime(listdtpb[i].tbmzyspb.SSKSSJ); |
|
DateTime pbjssj = Convert.ToDateTime(listdtpb[i].tbmzyspb.SSKSSJ); |
|
if (pbjssj < sskssj || pbkssj > ssjssj) |
|
{ |
|
int id = Convert.ToInt32(listdtpb[i].tbmzyspb.MZYSID); |
|
listmzys.RemoveAll(a => a.tbmzysb.ID == id); |
|
} |
|
} |
|
var listsclx = listmzys.Where(a => a.tbmzysb.SCSS1 == sslxid || a.tbmzysb.SCSS2 == sslxid || a.tbmzysb.SCSS3 == sslxid).ToList(); |
|
if (listsclx.Count > 0) |
|
{ |
|
for (int i = 0; i < listsclx.Count; i++) |
|
{ |
|
Cus_MZYSSC mzsc = new Cus_MZYSSC(); |
|
int ysid = listsclx[i].tbmzysb.ID; |
|
mzsc.MZYSID = ysid; |
|
mzsc.SSSC = listdypb.Where(a => a.tbmzyspb.MZYSID == ysid).Sum(a => a.tbmzyspb.SSSC); |
|
listmzyssc.Add(mzsc); |
|
} |
|
listmzyssc.OrderBy(a => a.SSSC); |
|
rjss.MZYS1 = listmzyssc[0].MZYSID; |
|
} |
|
else |
|
{ |
|
//没有擅长类型的麻醉医生 |
|
for (int i = 0; i < listmzys.Count; i++) |
|
{ |
|
Cus_MZYSSC mzsc = new Cus_MZYSSC(); |
|
int ysid = listmzys[i].tbmzysb.ID; |
|
mzsc.MZYSID = ysid; |
|
mzsc.SSSC = listdypb.Where(a => a.tbmzyspb.MZYSID == ysid).Sum(a => a.tbmzyspb.SSSC); |
|
listmzyssc.Add(mzsc); |
|
} |
|
listmzyssc.OrderBy(a => a.SSSC); |
|
rjss.MZYS1 = listmzyssc[0].MZYSID; |
|
} |
|
//分配护士 |
|
//查询手术室所有护士 |
|
var lisths = (from tbhsb in myModel.SYS_HSB |
|
where tbhsb.SSSID == rjss.SSSID |
|
select new { tbhsb }).ToList(); |
|
//查询出本月的护士排班 |
|
var lisstbyhspb = (from tbhspbb in myModel.Bus_HSPBB |
|
where tbhspbb.SSKSSJ >= kssj |
|
select new { tbhspbb }).ToList(); |
|
for (int i = 0; i < lisths.Count; i++) |
|
{ |
|
Cus_MZYSSC hssc = new Cus_MZYSSC(); |
|
int ysid = lisths[i].tbhsb.ID; |
|
hssc.MZYSID = ysid; |
|
hssc.SSSC = lisstbyhspb.Where(a => a.tbhspbb.HSID == ysid).Sum(a => a.tbhspbb.SSSC); |
|
listhssc.Add(hssc); |
|
} |
|
listhssc.OrderBy(a => a.SSSC); |
|
rjss.XSHS1 = listhssc[0].MZYSID; |
|
rjss.XHHS1 = listhssc[1].MZYSID; |
|
|
|
myModel.Bus_RJSSB.Add(rjss); |
|
myModel.SaveChanges(); |
|
MessageBox.Show("申请成功"); |
|
this.Close(); |
|
} |
|
catch (Exception ex) |
|
{ |
|
MessageBox.Show("申请失败" + ex.ToString()); |
|
} |
|
|
|
} |
|
private void btn_qx_Click(object sender, RoutedEventArgs e) |
|
{ |
|
this.Close(); |
|
} |
|
private void PBFS_SelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e) |
|
{ |
|
|
|
} |
|
|
|
} |
|
}
|
|
|