/// <summary> /// Initializes a new instance of the <see cref="StatisticsIndexRescueRoomRescue"/> class. /// </summary> /// <param name="time">指定的月报表涵盖时间点,只使用其中日期部分。</param> /// <param name="isRescue">是否抢救。</param> /// <param name="rescueResultId">抢救结果ID。</param> public StatisticsIndexRescueRoomRescue(DateTime time, bool isRescue, Guid?rescueResultId, int level) { var db = new EiSDbContext(); this.Start = new DateTime(time.Year, time.Month, 1); this.End = this.Start.AddMonths(1); this.Message = string.Format("{0} 抢救:", this.Start.ToString("yyyy年M月")); var query = db.RescueRoomInfos.Where(c => this.Start <= c.OutDepartmentTime && c.OutDepartmentTime < this.End); //Level 1 if (level >= 1) { query = query.Where(c => c.IsRescue == isRescue); this.Message += query.First().IsRescueName; } //Level 2 if (level >= 2) { query = query.Where(c => c.RescueResultId == rescueResultId); this.Message += query.First().RescueResultNameFull; } query = query.OrderBy(c => c.InDepartmentTime).ThenBy(c => c.RescueRoomInfoId); this.List = query.ToList().Select(c => new Item(c)).ToList(); }
public ActionResult Create([Bind()] Models.ViewModels.RescueRoomConsultations.Create.Create targetV) { if (ModelState.IsValid) { var db = new EiSDbContext(); var target = targetV.GetReturn(); Models.BusinessModels.TrasenInformationConvertor.FromEmployeeNumberToName(target); db.RescueRoomConsultations.Add(target); db.SaveChanges(); //处理返回页面 if (targetV.GoToGreenPath == true) { var rescueRoomInfo = db.RescueRoomInfos.Find(targetV.RescueRoomInfoId); return(RedirectToAction(rescueRoomInfo.GreenPathActionName, "GreenPaths", new { id = rescueRoomInfo.GreenPathId })); } return(RedirectToAction("Details", "RescueRoomInfos", new { id = targetV.RescueRoomInfoId })); } var targetW = new Models.ViewModels.RescueRoomConsultations.Create.SelectionWorker(targetV); ViewBag.ConsultationDepartmentId = targetW.ConsultationDepartments; return(View(targetV)); }
/// <summary> /// Initializes a new instance of the <see cref="StatisticsRescueRoomMonth"/> class. /// </summary> /// <param name="time">指定的月报表涵盖时间点,只取其中月份部分。</param> /// <remarks>涵盖时段内的离室病例。</remarks> public StatisticsRescueRoomMonth(DateTime time) { var db = new EiSDbContext(); var start = new DateTime(time.Year, time.Month, 1); var end = start.AddMonths(1); var list = db.RescueRoomInfos.Where(c => start <= c.OutDepartmentTime && c.OutDepartmentTime < end).ToList(); this.Time = start; this.CountAll = list.Count(); //抢救 this.CountIsRescue = list.Where(c => c.IsRescue).Count(); this.ListRescueFirst = list.OrderBy(c => c.IsRescue).GroupBy(c => c.IsRescue).Select(c => new RescueFirst(c, time)).ToList(); //绿色通道 this.CountIsGreenPath = list.Where(c => c.IsGreenPath).Count(); this.ListGreenPathFirst = list.OrderBy(c => c.IsGreenPath).GroupBy(c => c.IsGreenPath).Select(c => new GreenPathFirst(c, time)).ToList(); //停留时长 if (this.CountAll > 0) { this.AverageDuring = new TimeSpan((long)(list.Average(c => c.During.Value.Ticks))); this.AverageDuringHour = this.AverageDuring.TotalHours; } this.ListDuringFirst = list.OrderBy(c => c.During).GroupBy(c => c.DuringGroupName).Select(c => new DuringFirst(c, time)).ToList(); //去向 this.ListDestinationFirst = list.OrderBy(c => c.Destination.DestinationCategoryNameConcat).GroupBy(c => c.Destination.DestinationCategoryNameConcat).Select(c => new DestinationFirst(c, time)).ToList(); }
/// <summary> /// Initializes a new instance of the <see cref="StatisticsIndexObserveRoomDuring"/> class. /// </summary> /// <param name="time">The time.</param> /// <param name="duringHours">The during hours.</param> /// <param name="duringMin">The during minimum.</param> /// <param name="duringMax">The during maximum.</param> public StatisticsIndexObserveRoomDuring(DateTime time, int?duringHours, int?duringMin, int?duringMax, int level) { var db = new EiSDbContext(); this.Start = new DateTime(time.Year, time.Month, 1); this.End = this.Start.AddMonths(1); this.Message = string.Format("{0} 停留时长:", this.Start.ToString("yyyy年M月")); var list = db.ObserveRoomInfos.Where(c => this.Start <= c.OutDepartmentTime && c.OutDepartmentTime < this.End).ToList(); if (level == 1) { list = list.Where(c => duringMin.Value <= c.DuringHours && c.DuringHours <= duringMax.Value).ToList(); this.Message += list.First().DuringGroupName; } if (level == 2) { list = list.Where(c => c.DuringHours == duringHours.Value).ToList(); this.Message += duringHours + "小时"; } list = list.OrderBy(c => c.InDepartmentTime).ThenBy(c => c.ObserveRoomInfoId).ToList(); this.List = list.Select(c => new Item(c)).ToList(); }
/// <summary> /// Gets the in rescue room way. /// </summary> /// <param name="id">进入留观室方式ID。</param> public JsonResult GetInObserveRoomWay(Guid id) { var db = new EiSDbContext(); var target = db.InObserveRoomWays.Find(id); return(Json(target)); }
/// <summary> /// Gets the in rescue room way. /// </summary> /// <param name="id">绿色通道类型ID。</param> public JsonResult GetGreenPathCategory(Guid id) { var db = new EiSDbContext(); var target = db.GreenPathCategories.Find(id); return(Json(target)); }
/// <summary> /// Gets the in rescue room way. /// </summary> /// <param name="id">去向ID。</param> public JsonResult GetDestination(Guid id) { var db = new EiSDbContext(); var target = db.Destinations.Find(id); return(Json(target)); }
/// <summary> /// Initializes a new instance of the <see cref="StatisticsIndexRescueRoomDestination"/> class. /// </summary> /// <param name="time">The time.</param> /// <param name="isClassifiedToInDepartment">if set to <c>true</c> [is classified to in department].</param> /// <param name="isClassifiedToOutDepartment">if set to <c>true</c> [is classified to out department].</param> /// <param name="isClassifiedLeave">if set to <c>true</c> [is classified leave].</param> /// <param name="isClassifiedToOther">if set to <c>true</c> [is classified to other].</param> /// <param name="destinationId">The destination identifier.</param> /// <param name="destinationRemarks">The destination remarks.</param> public StatisticsIndexRescueRoomDestination(DateTime time, bool?isClassifiedToInDepartment, bool?isClassifiedToOutDepartment, bool?isClassifiedLeave, bool?isClassifiedToOther, Guid?destinationId, string destinationRemarks, int level) { var db = new EiSDbContext(); this.Start = new DateTime(time.Year, time.Month, 1); this.End = this.Start.AddMonths(1); this.Message = string.Format("{0} 去向:", this.Start.ToString("yyyy年M月")); var query = db.RescueRoomInfos.Where(c => this.Start <= c.OutDepartmentTime && c.OutDepartmentTime < this.End); if (level == 1) { if (isClassifiedToInDepartment != null) { query = query.Where(c => c.Destination.IsClassifiedToInDepartment == isClassifiedToInDepartment); } if (isClassifiedToOutDepartment != null) { query = query.Where(c => c.Destination.IsClassifiedToOutDepartment == isClassifiedToOutDepartment); } if (isClassifiedLeave != null) { query = query.Where(c => c.Destination.IsClassifiedLeave == isClassifiedLeave); } if (isClassifiedToOther != null) { query = query.Where(c => c.Destination.IsClassifiedToOther == isClassifiedToOther); } this.Message += query.First().Destination.DestinationCategoryNameConcat; } if (level == 2) { query = query.Where(c => c.DestinationId == destinationId); this.Message += query.First().Destination.DestinationCategoryNameConcat + " - " + query.First().Destination.DestinationName; } if (level == 3) { query = query.Where(c => c.DestinationId == destinationId); if (string.IsNullOrEmpty(destinationRemarks)) { query = query.Where(c => c.DestinationRemarks == null || c.DestinationRemarks == ""); } else { query = query.Where(c => c.DestinationRemarks == destinationRemarks); } this.Message += query.First().Destination.DestinationCategoryNameConcat + " - " + query.First().DestinationNameFull; } query = query.OrderBy(c => c.InDepartmentTime).ThenBy(c => c.RescueRoomInfoId); this.List = query.ToList().Select(c => new Item(c)).ToList(); }
public Create3(Guid JZID) { var db = new EiSDbContext(); var dbTrasen = new TrasenLib.TrasenDbContext("TrasenConnection"); var MZYS_JZJL = dbTrasen.MZYS_JZJL.Where(c => c.JZID == JZID).FirstOrDefault(); var YY_KDJB = dbTrasen.YY_KDJB.Where(c => c.BRXXID == MZYS_JZJL.BRXXID).FirstOrDefault(); this.JZID = JZID; this.ListObserveRoomInfos = db.ObserveRoomInfos.Where(c => c.OutPatientNumber == YY_KDJB.KH && c.OutDepartmentTime.HasValue && c.OutDepartmentTime <= DateTime.Now).OrderByDescending(c => c.OutDepartmentTime).Take(1).ToList().Select(c => new ItemObserveRoomInfo(c, JZID)).ToList(); }
public IndexRescueRoomHandOver() { var db = new EiSDbContext(); this.Time = DateTime.Now; var query = db.RescueRoomInfos.AsQueryable(); query = query.Where(c => c.OutDepartmentTime == null); var queryOrdered = query.OrderBy(c => c.InDepartmentTime).ThenBy(c => c.RescueRoomInfoId); var list = queryOrdered.ToList(); this.List = list.Select(c => new Item(c)).ToList(); }
/// <summary> /// 急性心肌梗死详情-打印。 /// </summary> /// <param name="id">急性心肌梗死绿色通道ID。</param> public ActionResult DetailsAmiPrint(Guid id) { var db = new EiSDbContext(); var target = db.GreenPathAmis.Find(id); if (target == null) { return(HttpNotFound()); } var targetV = new Models.ViewModels.GreenPaths.DetailsAmiPrint.DetailsAmiPrint(target); return(View(targetV)); }
public IndexAmi(Route route) { var db = new EiSDbContext(); var query = db.RescueRoomInfos.Where(c => c.GreenPathCategory.CodeName == "Ami").SelectMany(c => c.GreenPathAmis); route.Count = query.Count(); var queryOrdered = query.OrderByDescending(c => c.RescueRoomInfo.InDepartmentTime).ThenBy(c => c.GreenPathAmiId); var queryCurrentPage = queryOrdered.Skip((route.Page - 1) * route.PerPage).Take(route.PerPage); this.Route = route; this.List = queryCurrentPage.ToList().Select(c => new Item(c)).ToList(); }
public IndexRescueRoomDay(DateTime time) { var db = new EiSDbContext(); this.End = time.Date.AddHours(8); this.Start = End.AddDays(-1); var queryIn = db.RescueRoomInfos.Where(c => this.Start <= c.InDepartmentTime && c.InDepartmentTime < this.End); var queryStay = db.RescueRoomInfos.Where(c => c.InDepartmentTime < this.Start && (this.Start < c.OutDepartmentTime || c.OutDepartmentTime == null)); var query = queryIn.Union(queryStay); var queryOrdered = query.OrderBy(c => c.InDepartmentTime).ThenBy(c => c.RescueRoomInfoId); var list = queryOrdered.ToList(); this.List = list.Select(c => new Item(c)).ToList(); }
public ActionResult EditAmi([Bind()] Models.ViewModels.GreenPaths.EditAmi.EditAmi targetV) { //var db = new EiSDbContext(); //var rescueRoomInfo = db.RescueRoomInfos.Find(greenPathAmi.RescueRoomInfoId); ////1-须先有首次心电图才能有再次心电图。 //if (greenPathAmi.EcgSecondTime.HasValue && !greenPathAmi.EcgFirstTime.HasValue) // ModelState.AddModelError("EcgSecondTime", "须先有首次心电图才能有再次心电图。"); ////2-再次心电图时间不可早于首次心电图时间。 //if (greenPathAmi.EcgSecondTime.HasValue && greenPathAmi.EcgFirstTime.HasValue && greenPathAmi.EcgFirstTime.Value > greenPathAmi.EcgSecondTime.Value) // ModelState.AddModelError("EcgSecondTime", "再次心电图时间不可早于首次心电图时间。"); ////3-完成通道时,发病时间不可为空。 //if (greenPathAmi.IsFinished && !greenPathAmi.OccurrenceTime.HasValue) // ModelState.AddModelError("OccurrenceTime", "完成通道时,发病时间不可为空。"); ////4-发病时间不可晚于接诊时间。 //if (rescueRoomInfo.ReceiveTime.HasValue && greenPathAmi.OccurrenceTime.HasValue && rescueRoomInfo.ReceiveTime.Value < greenPathAmi.OccurrenceTime.Value) // ModelState.AddModelError("OccurrenceTime", "发病时间不可晚于接诊时间。"); ////5-首次心电图时间不能早于接诊时间。 ////if (rescueRoomInfo.ReceiveTime.HasValue && greenPathAmi.EcgFirstTime.HasValue && rescueRoomInfo.ReceiveTime.Value > greenPathAmi.EcgFirstTime.Value) //// ModelState.AddModelError("EcgFirstTime", "首次心电图时间不能早于接诊时间。"); ////6-再次心电图时间不能晚于完成通道时间。 //if (greenPathAmi.FinishPathTime.HasValue && greenPathAmi.EcgSecondTime.HasValue && greenPathAmi.FinishPathTime.Value < greenPathAmi.EcgSecondTime.Value) // ModelState.AddModelError("EcgSecondTime", "再次心电图时间不能晚于完成通道时间。"); ////7-完成通道时间不能早于接诊时间。 //if (rescueRoomInfo.ReceiveTime.HasValue && greenPathAmi.FinishPathTime.HasValue && rescueRoomInfo.ReceiveTime.Value > greenPathAmi.FinishPathTime.Value) // ModelState.AddModelError("EcgFirstTime", "完成通道时间不能早于接诊时间。"); if (ModelState.IsValid) { var db = new EiSDbContext(); var target = db.GreenPathAmis.Find(targetV.GreenPathAmiId); if (target == null) { return(HttpNotFound()); } targetV.GetReturn(target); db.SaveChanges(); return(RedirectToAction("DetailsAmi", new { id = target.GreenPathAmiId })); } return(View(targetV)); }
/// <summary> /// 初始化。 /// </summary> /// <param name="route">导航对象。</param> public Index(Route route) { var db = new EiSDbContext(); var query = db.ObserveRoomInfos.AsQueryable(); if (route.InDepartmentTimeStart != null) { query = query.Where(c => route.InDepartmentTimeStart.Value <= c.InDepartmentTime); } if (route.InDepartmentTimeEnd != null) { query = query.Where(c => c.InDepartmentTime < route.InDepartmentTimeEnd); } if (route.OutDepartmentTimeStart != null) { query = query.Where(c => route.OutDepartmentTimeStart.Value <= c.OutDepartmentTime); } if (route.OutDepartmentTimeEnd != null) { query = query.Where(c => c.OutDepartmentTime < route.OutDepartmentTimeEnd); } if (route.IsLeave != null) { query = query.Where(c => c.OutDepartmentTime.HasValue == route.IsLeave); } if (!string.IsNullOrWhiteSpace(route.PatientName)) { route.PatientName = route.PatientName.Trim(); query = query.Where(c => c.PatientName == route.PatientName); } if (!string.IsNullOrEmpty(route.OutPatientNumber)) { route.OutPatientNumber = route.OutPatientNumber.Trim(); query = query.Where(c => c.OutPatientNumber == route.OutPatientNumber); } route.Count = query.Count(); var queryOrdered = query.OrderByDescending(c => c.InDepartmentTime).ThenBy(c => c.ObserveRoomInfoId); var queryCurrentPage = queryOrdered.Skip((route.Page - 1) * route.PerPage).Take(route.PerPage); this.Route = route; this.List = queryCurrentPage.ToList().Select(c => new Item(c)).ToList(); }
/// <summary> /// 编辑。 /// </summary> /// <param name="id">会诊项ID。</param> /// <param name="goToGreenPath">指定跳转到绿色通道表单。(后续参数忽略)</param> public ActionResult Edit(Guid id, bool goToGreenPath = false) { var db = new EiSDbContext(); var target = db.RescueRoomConsultations.Find(id); if (target == null) { return(HttpNotFound()); } var targetV = new Models.ViewModels.RescueRoomConsultations.Edit.Edit(target, goToGreenPath); var targetW = new Models.ViewModels.RescueRoomConsultations.Edit.SelectionWorker(targetV); ViewBag.ConsultationDepartmentId = targetW.ConsultationDepartments; return(View(targetV)); }
/// <summary> /// 新增。 /// </summary> /// <param name="rescueRoomInfoId">归属的抢救室病例ID。</param> /// <param name="goToGreenPath">指定跳转到绿色通道表单。(后续参数忽略)</param> public ActionResult Create(Guid rescueRoomInfoId, bool goToGreenPath = false) { var db = new EiSDbContext(); var rescueRoomInfo = db.RescueRoomInfos.Find(rescueRoomInfoId); if (rescueRoomInfo == null) { return(HttpNotFound()); } var targetV = new Models.ViewModels.RescueRoomConsultations.Create.Create(); var targetW = new Models.ViewModels.RescueRoomConsultations.Create.SelectionWorker(targetV); targetV.RescueRoomInfoId = rescueRoomInfoId; targetV.RequestTime = DateTime.Today; targetV.GoToGreenPath = goToGreenPath; ViewBag.ConsultationDepartmentId = targetW.ConsultationDepartments; return(View(targetV)); }
/// <summary> /// 急性心肌梗死新增。 /// </summary> /// <param name="rescueRoomInfoId">归属的抢救室病例ID。</param> /// <remarks>直接生成后,跳转到Edit。</remarks> public ActionResult CreateAmi(Guid rescueRoomInfoId) { var db = new EiSDbContext(); var rescueRoomInfo = db.RescueRoomInfos.Find(rescueRoomInfoId); if (rescueRoomInfo == null) { return(HttpNotFound()); } if (db.GreenPathAmis.Any(c => c.RescueRoomInfoId == rescueRoomInfoId)) { return(HttpNotFound()); } var target = new GreenPathAmi(); target.GreenPathAmiId = Guid.NewGuid(); target.RescueRoomInfoId = rescueRoomInfoId; target.UpdateTime = DateTime.Now; db.GreenPathAmis.Add(target); db.SaveChanges(); //**已用索引保证唯一性** //if (db.GreenPathAmis.Count(c => c.RescueRoomInfoId == rescueRoomInfoId) > 1) //{ // db.GreenPathAmis.Remove(target); // db.SaveChanges(); // return HttpNotFound(); //} return(RedirectToAction("EditAmi", new { id = target.GreenPathAmiId })); }
public StatisticsRescueRoomGeneral(DateTime start, DateTime end) { var db = new EiSDbContext(); var list = db.RescueRoomInfos.Where(c => start <= c.OutDepartmentTime && c.OutDepartmentTime < end).ToList(); this.Start = start; this.End = end; this.CountAll = list.Count(); this.CountIsRescue = list.Count(c => c.IsRescue); //抢救 this.Rescue = new ItemRescue(start, end, 0, this.CountAll, list); this.Rescue.TitleOfName = "抢救"; //入室方式 this.IndepartmentWay = new ItemInDepartmentWay(start, end, 0, this.CountAll, list); this.IndepartmentWay.TitleOfName = "入室方式"; //去向 this.Destination = new ItemDestination(start, end, 0, this.CountAll, list); this.Destination.TitleOfName = "去向"; }
/// <summary> /// Initializes a new instance of the <see cref="StatisticsIndexRescueRoomGreenPath"/> class. /// </summary> /// <param name="time">The time.</param> /// <param name="isGreenPath">if set to <c>true</c> [is green path].</param> /// <param name="greenPathCategoryId">The green path category identifier.</param> /// <param name="greenPathCategoryRemarks">The green path category remarks.</param> public StatisticsIndexRescueRoomGreenPath(DateTime time, bool?isGreenPath, Guid?greenPathCategoryId, string greenPathCategoryRemarks, int level) { var db = new EiSDbContext(); this.Start = new DateTime(time.Year, time.Month, 1); this.End = this.Start.AddMonths(1); this.Message = string.Format("{0} 绿色通道:", this.Start.ToString("yyyy年M月")); var list = db.RescueRoomInfos.Where(c => this.Start <= c.OutDepartmentTime && c.OutDepartmentTime < this.End).OrderBy(c => c.InDepartmentTime).ThenBy(c => c.RescueRoomInfoId).ToList(); if (level == 1) { list = list.Where(c => c.IsGreenPath == isGreenPath).ToList(); this.Message += list.First().IsGreenPathName; } if (level == 2) { list = list.Where(c => c.GreenPathCategoryId == greenPathCategoryId).ToList(); this.Message += list.First().GreenPathCategory.GreenPathCategoryName; } if (level == 3) { list = list.Where(c => c.GreenPathCategoryId == greenPathCategoryId).ToList(); if (string.IsNullOrEmpty(greenPathCategoryRemarks)) { list = list.Where(c => c.GreenPathCategoryRemarks == null || c.GreenPathCategoryRemarks == "").ToList(); } else { list = list.Where(c => c.GreenPathCategoryRemarks == greenPathCategoryRemarks).ToList(); } this.Message += list.First().GreenPathCategoryNameFull; } this.List = list.Select(c => new Item(c)).ToList(); }
/// <summary> /// 刷新。 /// </summary> /// <param name="rescueRoomInfoId">归属的抢救室病例ID。</param> public ActionResult Refresh(Guid rescueRoomInfoId) { var db = new EiSDbContext(); var dbTrasen = new TrasenDbContext("TrasenConnection"); var target = db.RescueRoomInfos.Find(rescueRoomInfoId); if (target == null) { return(HttpNotFound()); } //设置时段起点、结点 DateTime?timeUpperBound; DateTime?timeLowerBound; { timeUpperBound = target.ReceiveTime; var itemJZJL = dbTrasen.MZYS_JZJL.Where(c => c.JZID == target.JZID).FirstOrDefault(); timeLowerBound = itemJZJL.WCSJ; } //==获取指定GHXXID的“处方表”记录。== var queryCFB = dbTrasen.VI_MZ_CFB.Where(c => c.GHXXID == target.GHXXID); //设置时段起点 queryCFB = queryCFB.Where(c => timeUpperBound <= c.SFRQ); //设置时段结点 if (timeLowerBound.HasValue) { queryCFB = queryCFB.Where(c => c.SFRQ <= timeLowerBound.Value);//该结点边界特殊,使用闭区间——结束的瞬间可能同时有医嘱。 } var listCFB = queryCFB.ToList(); foreach (var itemCFB in listCFB) { //获取指定CFID的“处方表明细”记录。 var queryCFBMX = dbTrasen.VI_MZ_CFB_MX.Where(c => c.CFID == itemCFB.CFID); var listCFBMX = queryCFBMX.ToList(); foreach (var itemCFBMX in listCFBMX) { if (db.RescueRoomDrugRecordDefinitions.Any(c => c.DrugCode == itemCFBMX.BM)) { //判断是新增的药品还是退费的药品 if (!itemCFBMX.TYID.HasValue) { var rescueRoomDrugRecord = db.RescueRoomDrugRecords.Where(c => c.CFMXID == itemCFBMX.CFMXID).FirstOrDefault(); if (rescueRoomDrugRecord == null) { rescueRoomDrugRecord = new RescueRoomDrugRecord(); rescueRoomDrugRecord.RescueRoomDrugRecordId = Guid.NewGuid(); rescueRoomDrugRecord.RescueRoomInfoId = target.RescueRoomInfoId; rescueRoomDrugRecord.ProductCode = itemCFBMX.BM; rescueRoomDrugRecord.ProductName = itemCFBMX.PM; rescueRoomDrugRecord.GoodsName = itemCFBMX.SPM; rescueRoomDrugRecord.DosageQuantity = itemCFBMX.YL; rescueRoomDrugRecord.DosageUnit = itemCFBMX.YLDW; rescueRoomDrugRecord.PrescriptionTime = itemCFB.SFRQ; rescueRoomDrugRecord.Usage = itemCFBMX.YFMC; rescueRoomDrugRecord.CFMXID = itemCFBMX.CFMXID; rescueRoomDrugRecord.CFID = itemCFBMX.CFID; rescueRoomDrugRecord.UpdateTime = DateTime.Now; db.RescueRoomDrugRecords.Add(rescueRoomDrugRecord); db.SaveChanges(); } else { rescueRoomDrugRecord.RescueRoomInfoId = target.RescueRoomInfoId; rescueRoomDrugRecord.ProductCode = itemCFBMX.BM; rescueRoomDrugRecord.ProductName = itemCFBMX.PM; rescueRoomDrugRecord.GoodsName = itemCFBMX.SPM; rescueRoomDrugRecord.DosageQuantity = itemCFBMX.YL; rescueRoomDrugRecord.DosageUnit = itemCFBMX.YLDW; rescueRoomDrugRecord.PrescriptionTime = itemCFB.SFRQ; rescueRoomDrugRecord.Usage = itemCFBMX.YFMC; rescueRoomDrugRecord.CFMXID = itemCFBMX.CFMXID; rescueRoomDrugRecord.CFID = itemCFBMX.CFID; db.SaveChanges(); } } else { var rescueRoomDrugRecord = db.RescueRoomDrugRecords.Where(c => c.CFMXID == itemCFBMX.TYID.Value).FirstOrDefault(); if (rescueRoomDrugRecord != null) { rescueRoomDrugRecord.DosageQuantity -= itemCFBMX.YL; if (rescueRoomDrugRecord.DosageQuantity == 0) { db.RescueRoomDrugRecords.Remove(rescueRoomDrugRecord); } db.SaveChanges(); } else { throw new Exception("无对应原始处方明细记录。"); } } } } } //删除处方时间早于时段起点的用药项 if (timeUpperBound.HasValue) { var listRescueRoomDrugRecord = db.RescueRoomDrugRecords.Where(c => c.RescueRoomInfoId == target.RescueRoomInfoId && c.PrescriptionTime < timeUpperBound).ToList(); db.RescueRoomDrugRecords.RemoveRange(listRescueRoomDrugRecord); db.SaveChanges(); } //删除处方时间超过时段结点的用药项 if (timeLowerBound.HasValue) { var listRescueRoomDrugRecord = db.RescueRoomDrugRecords.Where(c => c.RescueRoomInfoId == target.RescueRoomInfoId && timeLowerBound < c.PrescriptionTime).ToList(); db.RescueRoomDrugRecords.RemoveRange(listRescueRoomDrugRecord); db.SaveChanges(); } //删除编码在定义外的用药项 if (true) { var listRescueRoomDrugRecord = db.RescueRoomDrugRecords.ToList(); var listRescueRoomDrugRecordDefinition = db.RescueRoomDrugRecordDefinitions.Where(c => c.GreenPathCode == "Ami").ToList(); foreach (var itemRescueRoomDrugRecord in listRescueRoomDrugRecord) { if (!listRescueRoomDrugRecordDefinition.Any(c => c.DrugCode == itemRescueRoomDrugRecord.ProductCode)) { db.RescueRoomDrugRecords.Remove(itemRescueRoomDrugRecord); } } db.SaveChanges(); } return(RedirectToAction("IndexPartial", new { rescueRoomInfoId })); }
/// <summary> /// 刷新。 /// </summary> /// <param name="id">归属的抢救室病例ID。</param> public ActionResult Refresh(Guid rescueRoomInfoId) { var db = new EiSDbContext(); var target = db.RescueRoomInfos.Find(rescueRoomInfoId); if (target == null) { return(HttpNotFound()); } Oracle.ManagedDataAccess.Client.OracleConnection connection; Oracle.ManagedDataAccess.Client.OracleCommand command; Oracle.ManagedDataAccess.Client.OracleDataAdapter dataAdapter; connection = new Oracle.ManagedDataAccess.Client.OracleConnection("Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.100.9)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=hzsydb)));User Id=pacsinterface;Password=pubpacs;"); command = new Oracle.ManagedDataAccess.Client.OracleCommand(string.Format("select * from pacstations.PACS_CHECK_VIEW where cureid='{0}' AND chktime>= to_date('{1}','yyyy-mm-dd')", target.OutPatientNumber, target.InDepartmentTime.ToString("yyyy-MM-dd")), connection); var dataSet = new System.Data.DataSet(); dataAdapter = new Oracle.ManagedDataAccess.Client.OracleDataAdapter(command); dataAdapter.Fill(dataSet); foreach (System.Data.DataRow row in dataSet.Tables[0].Rows) { var newRescueRoomImageRecord = new RescueRoomImageRecord(); newRescueRoomImageRecord.BOOKID = (string)row["BOOKID"]; if (db.RescueRoomImageRecords.Any(c => c.BOOKID == newRescueRoomImageRecord.BOOKID) || (target.OutDepartmentTime.HasValue && target.OutDepartmentTime.Value <= (DateTime?)row["CHKTIME"])) { continue; } newRescueRoomImageRecord.RescueRoomImageRecordId = Guid.NewGuid(); newRescueRoomImageRecord.RescueRoomInfoId = target.RescueRoomInfoId; newRescueRoomImageRecord.BookTime = (DateTime?)row["BOOKDATE"]; newRescueRoomImageRecord.CheckTime = (DateTime?)row["CHKTIME"]; newRescueRoomImageRecord.ReportTime = (DateTime?)row["REPTIME"]; newRescueRoomImageRecord.Part = (string)row["CHKPARTS"]; newRescueRoomImageRecord.Category = (string)row["CHKTYPENAME"]; var originCode = row["IMGTYPE"].ToString(); var imageCategory = db.ImageCategories.FirstOrDefault(c => c.OriginCode == originCode); newRescueRoomImageRecord.ImageCategoryId = imageCategory.ImageCategoryId; newRescueRoomImageRecord.UpdateTime = DateTime.Now; db.RescueRoomImageRecords.Add(newRescueRoomImageRecord); db.SaveChanges(); } //删除检查时间早于入室时间的影像项 if (false) { var listRescueRoomImageRecord = db.RescueRoomImageRecords.Where(c => c.RescueRoomInfoId == target.RescueRoomInfoId && c.CheckTime < target.InDepartmentTime).ToList(); db.RescueRoomImageRecords.RemoveRange(listRescueRoomImageRecord); db.SaveChanges(); } //删除检查时间超过离室时间的影像项 if (target.OutDepartmentTime.HasValue) { var listRescueRoomImageRecord = db.RescueRoomImageRecords.Where(c => c.RescueRoomInfoId == target.RescueRoomInfoId && target.OutDepartmentTime <= c.CheckTime).ToList(); db.RescueRoomImageRecords.RemoveRange(listRescueRoomImageRecord); db.SaveChanges(); } return(RedirectToAction("IndexPartial", new { rescueRoomInfoId = rescueRoomInfoId })); }