《医院信息管理系统——“手术安排”模块》项目研发阶段

《医院信息管理系统——“手术安排”模块》项目研发阶段·········································································································
开发工具与关键技术:Visual Studio + MVC + SQL Server + Javascript
作者:刘敏
撰写时间:2019年1月16日
·········································································································

下面简述的是一个病人的手术安排过程。
一、功能实现
手术安排主要是由未安排、已安排、已完成、手术室申请停和全部五个部分组成
手术安排:(1)首先进入手术安排界面出现的是全部手术状态的界面(见图1)。《医院信息管理系统——“手术安排”模块》项目研发阶段
图1
(2)对一个病人进行手术安排,先要点击“未安排”按钮(其申请时间和科室过滤可选,也可不选)筛选出未进行手术安排的病人,选择一个病人的信息回填过来,接着点击“手术安排”按钮,对病人进行手术安排(见图2)。
《医院信息管理系统——“手术安排”模块》项目研发阶段
图2
(3)当点击 “手术安排”按钮进入手术安排界面,选择手术参加人员,最后点击“确定”按钮,病人的手术安排就安排好了(见图3)。《医院信息管理系统——“手术安排”模块》项目研发阶段
图3
(4)点击“确定”按钮后,界面跳回到已安排界面,就能看到病人在已安排界面了(见图4)。《医院信息管理系统——“手术安排”模块》项目研发阶段
图4
二、相关业务表和关系
《医院信息管理系统——“手术安排”模块》项目研发阶段
三、经典代码
(1)查询所有的手术状态病人信息。

//查询所有病人信息
public ActionResult SelectPatientAll(BsgridPage bsgridPage,string ApplyTime,string ApplyTime1, int OlogyID, int SurgeryStateID)
{
    var linqPatient = from tbPateint in myModels.PW_Patient    //病人表
                      join tbSurgeryPlan in myModels.SYS_SurgeryPlan on tbPateint.SurgeryPlanID equals tbSurgeryPlan.SurgeryPlanID  //手术安排表
                      join tbIllnessDistrict in myModels.SYS_IllnessDistrict on tbPateint.IllnessDistrictID equals tbIllnessDistrict.IllnessDistrictID  //病区表
                      join tbSur in myModels.SYS_SurgeryState on tbPateint.SurgeryStateID equals tbSur.SurgeryStateID  //手术状态表
                      join tbOlogyOfficeFiltration in myModels.SYS_Ology on tbSurgeryPlan.OlogyID equals tbOlogyOfficeFiltration.OlogyID  //科室表
                      select new PatientVo
                      {
                          ApplyTime = tbSurgeryPlan.ApplyTime.ToString(),//申请时间 
                          AppTime = tbSurgeryPlan.ApplyTime,//申请时间 
                          OlogyOfficeFiltration = tbOlogyOfficeFiltration.Ology,//科室过滤
                          BeHospitalizedHowl = tbSurgeryPlan.BeHospitalizedHowl,//住院号
                          PatientName = tbPateint.PatientName,//病人名称
                          PatientSex = tbPateint.PatientSex,//病人性别
                          PateintAge = tbPateint.PateintAge,//病人年龄
                          IllnessDistrictMC = tbIllnessDistrict.IllnessDistrictMC,//病区
                          BedCall = tbSurgeryPlan.BedCall,//床号
                          Estrade = tbSurgeryPlan.Estrade,//台次
                          SurgeryRoom = tbSurgeryPlan.SurgeryRoom,//手术间
                          PlanDate = tbSurgeryPlan.PlanDate.ToString(),//安排时间
                          SurgeryName = tbSurgeryPlan.SurgeryName,//手术名称                                  
                          DoctorName = tbSurgeryPlan.DoctorName,//医生名称
                          SurgeryOffice = tbSurgeryPlan.SurgeryOffice,//手术室
                          HocusName = tbSurgeryPlan.HocusName,//麻醉名称
                          Position = tbSurgeryPlan.Position,//体位
                          SpecialApparatus = tbSurgeryPlan.SpecialApparatus,//特殊器械
                          SpecialInfect = tbSurgeryPlan.SpecialInfect,//特殊感染
                          PateintID = tbPateint.PatientID, //病人
                          SurgeryplanID = tbPateint.SurgeryPlanID, //手术安排
                          SurgeryStateID = tbPateint.SurgeryStateID,//手术状态
                          OlogyID = tbSurgeryPlan.OlogyID,//科室过滤ID
                      };
    //申请时间不为空
    if (!string.IsNullOrEmpty(ApplyTime)&& !string.IsNullOrEmpty(ApplyTime1))
    {
        try
        {
            DateTime dtApplyTime1 = Convert.ToDateTime(ApplyTime1.ToString().Trim());//强制转化为时间类型
            DateTime dtApplyTime = Convert.ToDateTime(ApplyTime.ToString().Trim());//强制转化为时间类型
            linqPatient = linqPatient.Where(p => p.AppTime >= dtApplyTime && p.AppTime <= dtApplyTime1);
        }
        catch (Exception e)
        {
            
        }
    }
    //科室过滤不为空
    if (OlogyID > 0)
    {
        linqPatient = linqPatient.Where(p => p.OlogyID == OlogyID);
    }
    //手术状态不为空
    if (SurgeryStateID > 0)
    {
        linqPatient = linqPatient.Where(p => p.SurgeryStateID == SurgeryStateID);
    }
    //查询总行数
    int totalRow = linqPatient.Count();            
    //分页
    List<PatientVo> Pateints = linqPatient.OrderByDescending(p => p.PateintID).
    Skip(bsgridPage.GetStartIndex()).//GetStartIndex()分页开始序号
    Take(bsgridPage.pageSize).
    ToList();
    //传数据到view
    //调用分页封装类(扩展表)
    Bsgrid<PatientVo> bsgrid = new Bsgrid<PatientVo>();
    bsgrid.success = true;
    bsgrid.totalRows = totalRow;//总数
    bsgrid.curPage = bsgridPage.curPage;//当前页
    bsgrid.data = Pateints;//显示数据
    return Json(bsgrid, JsonRequestBehavior.AllowGet);
}        

(2)头部病人信息表格数据回填

//数据回填
function PateintInfor(record, rowIndex) {
   var BeHospitalizedHowl = record.BeHospitalizedHowl;
   var PatientName = record.PatientName;
   var SurgeryName = record.SurgeryName;
   var HocusName = record.HocusName;
   var PatientSex = record.PatientSex;
   var IllnessDistrictMC = record.IllnessDistrictMC;
   var OlogyOfficeFiltration = record.OlogyOfficeFiltration;
   var ApplyTime = record.ApplyTime;
   $("#BeHospitalizedHowl").text(BeHospitalizedHowl);
   $("#PatientName").text(PatientName);
   $("#SurgeryName").text(SurgeryName);
   $("#HocusName").text(HocusName);
   $("#PatientSex").text(PatientSex);
   $("#IllnessDistrictMC").text(IllnessDistrictMC);
   $("#OlogyOfficeFiltration").text(OlogyOfficeFiltration);
   $("#ApplyTime").text(ApplyTime);
}

注:这是我做的第一个MVC项目,发部分功能跟代码上来献丑了,做的不好,欢迎各位朋友指出,觉得可以的,请点个赞,谢谢各位!