private void btnOK_Click(object sender, EventArgs e) { //常规 ApplicationConfiguration.DisplayLastMonitorData = chkDisplayLastMonitorData.Checked; ApplicationConfiguration.AllRights = chkAllRights.Checked; ApplicationConfiguration.SyncOpen = chkSyncOpen.Checked; // ApplicationConfiguration.ShowMainFormStatusBar=chkShowMainFormStatusBar.Checked; ApplicationConfiguration.CheckDictInput = chkCheckDictInput.Checked; ApplicationConfiguration.PassWordType = (ApplicationConfiguration.PassWordTypes)radioGroupPassword.SelectedIndex; ApplicationConfiguration.YouDaoRoomTitle = txtYouDaoRoomTitle.Text; ApplicationConfiguration.IsYouDaoProgram = chkYouDao.Checked; //PACU管理系统 ApplicationConfiguration.IsPACUProgram = chkPACUProgram.Checked; ApplicationConfiguration.AnesDocRange = string.IsNullOrEmpty(txtAnesDocRange.Text) ? 4 : int.Parse(txtAnesDocRange.Text); ApplicationConfiguration.PACUDocRange = string.IsNullOrEmpty(txtPACUDocRange.Text) ? 4 : int.Parse(txtPACUDocRange.Text); //程序登入后是否弹出显示术中患者列表 ApplicationConfiguration.IsShowUnDonePatientList = chkIsShowUnDonePatientListView.Checked; ApplicationConfiguration.MergeMonitorData = chkMergeMonitorData.Checked; ApplicationConfiguration.ShowDocumentScrollBar = chkShowDocumentScrollBar.Checked; ApplicationConfiguration.UseDefaultOperatingRoom = chkUseDefaultOperatingRoom.Checked; ApplicationConfiguration.IsUpdateScheduleStatus = chkIsUpdateScheduleStatus.Checked; ApplicationConfiguration.IsUpdateHisStatus = chkIsUpdateHisStatus.Checked; //手术状态 List <string> list = new List <string>(); foreach (DataGridViewRow row in dgvPatientStatusButtonsSelect.Rows) { list.Add(row.Cells[0].Value.ToString()); } ApplicationConfiguration.PatientStatusButtons = string.Join(",", list.ToArray()); //导航菜单 ApplicationConfiguration.NoPatientButtons = _statusButtonStrList[ProgramStatus.NoPatient]; ApplicationConfiguration.PeroperativePatientButtons = _statusButtonStrList[ProgramStatus.PeroperativePatient]; ApplicationConfiguration.AnesthesiaRecordButtons = _statusButtonStrList[ProgramStatus.AnesthesiaRecord]; ApplicationConfiguration.PACUButtons = _statusButtonStrList[ProgramStatus.PACURecord]; ApplicationConfiguration.PostoperativePatientButtons = _statusButtonStrList[ProgramStatus.PostoperativePatient]; ExtendApplicationContext.Current.StatusButtonStrList = _statusButtonStrList; //文书菜单 OperationStatusHelper.SetOperDocument(_operDocuments); OperationStatusHelper.SetOperAction(_operActions); ApplicationConfiguration.AutoGenDocument = chkAutoGenDocument.Checked; //砖家咨询 ApplicationConfiguration.IsConnACS = chkAcs.Checked; ApplicationConfiguration.AcsAddress = txtAcsAddress.Text; ApplicationConfiguration.IsPACUProcess = chkPACUProcess.Checked; //提交更新到数据库 CommDictService.SaveConfig(ExtendApplicationContext.Current.CommDict.ConfigDict); }
/// <summary> /// 保存主表数据信息 /// </summary> private void SaveOperationMaster(ref TransactionParamsters tp) { MED_OPERATION_MASTER master = AnesInfoService.ClientInstance.GetOperationMaster(this.CurPatientModel.PatientID, this.CurPatientModel.VisitID, this.CurPatientModel.OperID); OperationStatus status = OperationStatusHelper.OperationStatusFromString(OperStatus); if (status == OperationStatus.AnesthesiaEnd && this.CurPatientModel.OperStatusCode == OperationStatus.AnesthesiaStart) { master.ANES_END_TIME = this.AnesEndTime; master.OPER_STATUS_CODE = (int)OperationStatus.AnesthesiaEnd; } else { master = ResetOperationMaster(master, status); master.OPER_STATUS_CODE = (int)status; } if (this.CurPatientModel.OperStatusCode >= OperationStatus.OutOperationRoom) { master.OPER_ROOM_NO = this.OperRoomNo; } master.ModelStatus = ModelStatus.Modeified; tp.Append(master); }
/// <summary> /// 刷新界面数据 /// </summary> public void RefreshData() { // 在刷新数据时可能是定时器刷新也可能是消息指令刷新,为了防止数据冲突,使用对象锁 lock (this.locker) { try { // 每次刷新时从数据库中获取患者信息 MED_PAT_INFO patInfo = PatInfoService.ClientInstance.GetCurPatientInfo(ExtendAppContext.Current.OperDeptCode, ExtendAppContext.Current.OperRoomNo); this.CurPatientModel = PatientModel.CreateModel(patInfo); if (null != this.CurPatientModel) { this.IsSelectedBorderVisibility = Visibility.Visible; ExtendAppContext.Current.PatientInformationExtend = this.CurPatientModel.Med_Pat_Info; //设置状态灯亮 int lightIndex = OperationStatusHelper.GetOperStatusIndex(ExtendAppContext.Current.PatientInformationExtend.OPER_STATUS_CODE); KeyBoardStateCache.KeyBoard.OpenSecondKeyBoardAllLed(lightIndex); // 刷新患者的体征数据 this.RefreshVitalSignList(); // 刷新监护仪和麻醉机的图标显示 this.RefreshMonitor(); } else { this.IsSelectedBorderVisibility = Visibility.Collapsed; ExtendAppContext.Current.PatientInformationExtend = null; //关闭状态灯 if (KeyBoardStateCache.KeyBoard != null) { KeyBoardStateCache.KeyBoard.CloseSecondKeyBoardAllLed(); } } // 设置图片显示或隐藏 this.SetOperationVisibility(); // 刷新手术时长信息 this.RefreshOperationLength(); } catch (Exception ex) { Logger.Error("获取术中信息异常", ex); this.ShowMessageBox("获取术中信息发生异常。", MessageBoxButton.OK, MessageBoxImage.Error); } } }
/// <summary> /// 构造方法 /// </summary> public OperationJumpViewModel(MED_PAT_INFO patModel, RichTextBox rtb) { if (patModel != null) { this.CurPatientModel = PatientModel.CreateModel(patModel); OperStatus = OperationStatusHelper.OperationStatusToString(OperationStatus.IsReady); this.MedOperatingRoomDict = DictService.ClientInstance.GetOperatingRoomList().Where(x => x.DEPT_CODE.Equals(ExtendAppContext.Current.OperDeptCode) && x.BED_TYPE.Equals(ExtendAppContext.Current.EventNo)).ToList(); this.CbOperatingRoomSourceList = this.MedOperatingRoomDict.Where(x => x.BED_TYPE == ExtendAppContext.Current.EventNo && (x.PATIENT_ID == null || string.IsNullOrEmpty(x.PATIENT_ID))).ToList(); this.rtbResaon = rtb; this.OperRoomNo = CurPatientModel.OperRoomNo; this.LoadOperStatusList(); // 注册按钮命令 this.RegisterCommand(); // 设置界面显示的警告消息 this.ResetWarningMessage(); } }
public void ResetVisibTime() { OperationStatus status = OperationStatusHelper.OperationStatusFromString(OperStatus); if (status == OperationStatus.IsReady) { this.VisibShowAnesEndTime = Visibility.Collapsed; this.StrWarning = "警告:确认后此患者术中记录数据全部清除!"; } else { if (status == OperationStatus.InOperationRoom) { this.VisibShowAnesEndTime = Visibility.Collapsed; } else if (status == OperationStatus.AnesthesiaStart) { this.VisibShowAnesEndTime = Visibility.Collapsed; } else if (status == OperationStatus.OperationStart) { this.VisibShowAnesEndTime = Visibility.Collapsed; } else if (status == OperationStatus.OperationEnd) { this.VisibShowAnesEndTime = Visibility.Collapsed; } else if (status == OperationStatus.AnesthesiaEnd) { if (this.CurPatientModel.OperStatusCode == OperationStatus.AnesthesiaStart) { this.VisibShowAnesEndTime = Visibility.Visible; } else { this.VisibShowAnesEndTime = Visibility.Collapsed; } } this.StrWarning = ""; } }
/// <summary> /// 重置主表节点时间 /// </summary> private MED_OPERATION_MASTER ResetOperationMaster(MED_OPERATION_MASTER master, OperationStatus status) { foreach (string s in OperationStatusHelper.OperationStatusList) { OperationStatus StatusFile = OperationStatusHelper.OperationStatusFromString(s); if (StatusFile == OperationStatus.TurnToEmergency || StatusFile == OperationStatus.TurnToICU || StatusFile == OperationStatus.TurnToSickRoom || StatusFile == OperationStatus.TurnToMortuary || StatusFile == OperationStatus.TurnToPACU || StatusFile == OperationStatus.OutYouDao || StatusFile == OperationStatus.OperScheduled || StatusFile == OperationStatus.None || StatusFile == OperationStatus.LeftHospital || StatusFile == OperationStatus.InYouDao || StatusFile == OperationStatus.CancelOperation || StatusFile == OperationStatus.Done) { continue; } if (StatusFile > status) { string dtField = OperationStatusHelper.GetTimeFieldName(StatusFile); master.SetValue(dtField, null); } } return(master); }
private void dgPACUList_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) { if (dgPACUList.Columns[e.ColumnIndex].HeaderText.Equals("操作")) { MED_PATIENT_CARD card = dgPACUList.Rows[e.RowIndex].DataBoundItem as MED_PATIENT_CARD; int operStatus = Convert.ToInt32(dgPACUList.Rows[e.RowIndex].Cells["OperStatus"].Value); if (dgPACUList.Rows[e.RowIndex].Cells["OperStatus"].Value == null) { return; } if (card.OPER_STATUS_CODE == (int)OperationStatus.TurnToPACU) { e.Value = Resources.pacu左表格_入室1; } else if (card.OPER_STATUS_CODE > (int)OperationStatus.InPACU) { if (card.IN_PACU_DATE_TIME.HasValue) { e.Value = Resources.pacu左表格_出室1; } else { e.Value = Resources.pacu左表格_入室1; } } else { e.Value = Resources.pacu左表格_blank; } } else if (dgPACUList.Columns[e.ColumnIndex].HeaderText.Equals("状态")) { if (e.Value == null) { return; } int operStatus = Convert.ToInt32(e.Value); e.Value = OperationStatusHelper.OperationStatusToString((OperationStatus)operStatus); } }
/// <summary> /// 保存数据 /// </summary> protected override SaveResult SaveData() { TransactionParamsters tp = TransactionParamsters.Create(); OperationStatus status = OperationStatusHelper.OperationStatusFromString(OperStatus); // 保存手术跳转明细记录 this.SaveOperationJump(this.strReason, status, ref tp); // 更新主表手术间号 this.SaveOperationMaster(ref tp); if (status == OperationStatus.IsReady) { DeleteAnesEvent(); DeleteMonitorData(); // 更新手术室数据 this.SaveOperatingRoom(ref tp, true); // 更新监护仪数据 this.SaveMonitorDict(ref tp, true); } if (this.CurPatientModel.OperStatusCode >= OperationStatus.OutOperationRoom && status != OperationStatus.IsReady) { // 更新手术室数据 this.SaveOperatingRoom(ref tp, false); // 更新监护仪数据 this.SaveMonitorDict(ref tp, false); } bool result = CommonService.ClientInstance.UpdateByTransaction(tp.ToString()); // 刷新主界面信息 Messenger.Default.Send <object>(this, EnumMessageKey.RefreshMainWindow); // 更新手术间字典表 ApplicationModel.Instance.AllDictList.OperatingRoomList = DictService.ClientInstance.GetOperatingRoomList().Where(x => x.DEPT_CODE == ExtendAppContext.Current.OperDeptCode).ToList(); // 更新字典表 ApplicationModel.Instance.AllDictList.MonitorDictList = DictService.ClientInstance.GetMonitorDictList(); return(result ? SaveResult.Success : SaveResult.Fail); }
public string SetOperationStatusText() { string statusName = ""; OperationStatus status = ExtendApplicationContext.Current.OperationStatus; if (ApplicationConfiguration.IsPACUProgram) { if (status > OperationStatus.OutPACU) { statusName = OperationStatusHelper.OperationStatusToString(status); } } else { if (status > OperationStatus.OutOperationRoom) { statusName = OperationStatusHelper.OperationStatusToString(status); } } return(statusName); }
/// <summary> /// 绑定数据源数据到控件 /// </summary> public override void BindDataToUI(MedDrugGraph control, Dictionary <string, System.Data.DataTable> dataSources) { if (!dataSources.ContainsKey("AnesthesiaEvent")) { throw new NotImplementedException(string.Format("在数据源中未找到名为{0}的表AnesInformations.AnesthesiaEventDataTable,请添加此绑定数据源!", "AnesthesiaEvent")); } bool isEndAnes = false; DateTime dtEndAnes = DateTime.Now; List <MED_ANESTHESIA_EVENT> anesEvent = new ModelHandler <MED_ANESTHESIA_EVENT>().FillModel(dataSources["AnesthesiaEvent"]); // 针对麻醉系统:持续用药随手术状态自动结束 if (ApplicationConfiguration.DrugAutoStop && ExtendAppContext.Current.EventNo == "0") { string operText = ApplicationConfiguration.DrugAutoStopOperationStatus; OperationStatus operStatus = OperationStatusHelper.OperationStatusFromString(operText); if (operStatus != OperationStatus.None) { string timeField = OperationStatusHelper.GetTimeFieldName(operStatus); DataTable dtMaster = DataContext.GetCurrent().GetData("MED_OPERATION_MASTER"); if (dtMaster != null && dtMaster.Rows.Count > 0 && !dtMaster.Rows[0].IsNull(timeField)) { int status = 0; if (!dtMaster.Rows[0].IsNull("OPER_STATUS_CODE")) { status = Convert.ToInt32(dtMaster.Rows[0]["OPER_STATUS_CODE"]); } // 出手术室 35 // 时如果没有持续用药没有自动结束的话,会按照配置的时间自动结束 if (status >= (int)operStatus) { dtEndAnes = (DateTime)dtMaster.Rows[0][timeField]; isEndAnes = true; bool changed = false; if (anesEvent != null) { anesEvent.ForEach(row => { if (row.DURATIVE_INDICATOR.HasValue && row.DURATIVE_INDICATOR == 1 && !row.END_TIME.HasValue) { row.END_TIME = dtEndAnes; changed = true; } }); } if (changed) { AnesInfoService.ClientInstance.UpadteAnesthesiaEvent(anesEvent); } } } } } control.Curves.Clear(); control.ProLongedDrugShowType = (ProLongedDrugUnitShowType)ApplicationConfiguration.ProLonged; control.DrugShowType = (NormalDrugUnitShowType)ApplicationConfiguration.DrugShow; control.StartTime = PagerSetting.PageTimeSpan.StartDateTime; control.EndTime = PagerSetting.PageTimeSpan.EndDateTime; control.MinStartDateTime = PagerSetting.PageTimeSpan.OrigiStartDateTime; control.MaxEndDateTime = PagerSetting.PageTimeSpan.OrigiEndDateTime; //joysola测试用 //ApplicationConfiguration.PassedDrugPointFormat = "DOSAGE;DOSAGE_UNITS;(;PERFORM_SPEED;SPEED_UNIT;+;CONCENTRATION;CONCENTRATION_UNIT;\r\n;ADMINISTRATOR;)";//DOSAGE_UNITS,ADMINISTRATOR //ApplicationConfiguration.PassedDrugNameFormat = "EVENT_ITEM_NAME;(;DOSAGE_UNITS;);SPEED_UNIT;CONCENTRATION_UNIT;ADMINISTRATOR";//SPEED_UNIT //ApplicationConfiguration.DrugPointShowFormat = "DOSAGE;;PERFORM_SPEED;SPEED_UNIT;CONCENTRATION;CONCENTRATION_UNIT;";//DOSAGE_UNITS,ADMINISTRATOR //ApplicationConfiguration.DrugNameShowFormat = "EVENT_ITEM_NAME;DOSAGE_UNITS;;CONCENTRATION_UNIT;ADMINISTRATOR";//SPEED_UNIT //ApplicationConfiguration.DrugPointMarkFormat = "(;);+;\r\n;"; //ApplicationConfiguration.DrugNameMarkFormat = "(;)"; //modified by joysola on 2018-2-26、3-5、4-8 新增获取用药显示、持续用药显示、药名显示 control.DrugPointShowFormatType = ShowHelper.GetDrugPointShowFormat(ApplicationConfiguration.PassedDrugPointFormat); control.DrugProLongedShowFormatType = ShowHelper.GetDrugPointShowFormat(ApplicationConfiguration.PassedDrugProLongedFormat); control.DrugNameShowFormatType = ShowHelper.GetDrugNameShowFormat(ApplicationConfiguration.PassedDrugNameFormat); control.PointMarkFormat = ShowHelper.GetDrugPointMarkFormat(ApplicationConfiguration.PassedDrugPointFormat); control.ProLongedMarkFormat = ShowHelper.GetDrugPointMarkFormat(ApplicationConfiguration.PassedDrugProLongedFormat); control.NameMarkFormat = ShowHelper.GetDrugNameMarkFormat(ApplicationConfiguration.PassedDrugNameFormat); //modified end string itemClass = "," + GetAnesClassTypeString(AnesClassType.InOxygen) + ","; List <string> titles = new List <string>(); if (anesEvent != null) { anesEvent.ForEach(row => { if (!string.IsNullOrEmpty(row.EVENT_CLASS_CODE) && !string.IsNullOrEmpty(row.EVENT_ITEM_NAME) && itemClass.Contains("," + row.EVENT_CLASS_CODE + ",") && !titles.Contains(row.EVENT_ITEM_NAME)) { // 只显示持续用药 if (control.IsOnlyLine) { if (row.DURATIVE_INDICATOR.HasValue && row.DURATIVE_INDICATOR == 1) { titles.Add(row.EVENT_ITEM_NAME); } } else { titles.Add(row.EVENT_ITEM_NAME); } } }); itemClass += this.GetAnesClassTypeString(AnesClassType.AnesDrug) + "," + this.GetAnesClassTypeString(AnesClassType.MixLiquid) + ","; anesEvent.ForEach(row => { if (!string.IsNullOrEmpty(row.EVENT_CLASS_CODE) && !string.IsNullOrEmpty(row.EVENT_ITEM_NAME) && itemClass.Contains("," + row.EVENT_CLASS_CODE + ",") && !titles.Contains(row.EVENT_ITEM_NAME)) { // 只显示持续用药 if (control.IsOnlyLine) { if (row.DURATIVE_INDICATOR.HasValue && row.DURATIVE_INDICATOR == 1) { titles.Add(row.EVENT_ITEM_NAME); } } else { titles.Add(row.EVENT_ITEM_NAME); } } }); itemClass += "C,";// 用药 // 泵注用药部分暂时隐藏,请勿删除 //anesEvent.ForEach(row => //{ // if (!string.IsNullOrEmpty(row.EVENT_CLASS_CODE) && // !string.IsNullOrEmpty(row.EVENT_ITEM_NAME) && // row.EVENT_CLASS_CODE.Equals("C") && // !titles.Contains(row.EVENT_ITEM_NAME) // && !string.IsNullOrEmpty(row.ADMINISTRATOR) && row.ADMINISTRATOR.Equals("泵注")) // { // if (control.IsOnlyLine) // { // if (row.DURATIVE_INDICATOR.HasValue && row.DURATIVE_INDICATOR == 1) // { // titles.Add(row.EVENT_ITEM_NAME); // } // } // else // { // titles.Add(row.EVENT_ITEM_NAME); // } // } //}); anesEvent.ForEach(row => { if (!string.IsNullOrEmpty(row.EVENT_CLASS_CODE) && !string.IsNullOrEmpty(row.EVENT_ITEM_NAME) && row.EVENT_CLASS_CODE.Equals("C") && !titles.Contains(row.EVENT_ITEM_NAME)) { if (control.IsOnlyLine) { if (row.DURATIVE_INDICATOR.HasValue && row.DURATIVE_INDICATOR == 1) { titles.Add(row.EVENT_ITEM_NAME); } } else { titles.Add(row.EVENT_ITEM_NAME); } } }); // 只显示持续用药时进行排序 if (control.IsOnlyLine && titles.Count < control.LineParameters.Count) { anesEvent.OrderBy(x => x.START_TIME).ToList().ForEach(row => { if (!string.IsNullOrEmpty(row.EVENT_CLASS_CODE) && !string.IsNullOrEmpty(row.EVENT_ITEM_NAME) && itemClass.Contains("," + row.EVENT_CLASS_CODE + ",") && !titles.Contains(row.EVENT_ITEM_NAME)) { if (row.DURATIVE_INDICATOR == null || row.DURATIVE_INDICATOR != 1) { titles.Add(row.EVENT_ITEM_NAME); } } }); } } // 最多只能显示 drugGraph.LineParameters.Count 行,多的显示在明细中 int index = 0; if (titles.Count > 0) { DateTime sysDatetTime = this.GetSysDateTime(); foreach (string title in titles) { index++; // 目前为 行 if (index > control.LineParameters.Count) { break; } MedDrugCurve curve = new MedDrugCurve(title, GetRandomColor()); List <MED_ANESTHESIA_EVENT> eventRows = anesEvent.Where(x => !string.IsNullOrEmpty(x.EVENT_ITEM_NAME) && x.EVENT_ITEM_NAME.Equals(title)).ToList(); if (eventRows != null && eventRows.Count > 0) { eventRows.ForEach(row => { if (row.START_TIME.HasValue && !string.IsNullOrEmpty(row.EVENT_CLASS_CODE) && itemClass.Contains("," + row.EVENT_CLASS_CODE + ",")) { DateTime dt; bool isArrow = false; PointType pointType = this.GetDecimalValue(row.DURATIVE_INDICATOR) == 1 ? PointType.ProLonged : PointType.SinglePoint; if (row.END_TIME.HasValue) { dt = row.END_TIME.Value; } else if (pointType == PointType.ProLonged) { DateTime dtUse = isEndAnes ? dtEndAnes : sysDatetTime; dt = (dtUse > PagerSetting.PageTimeSpan.OrigiEndDateTime) ? dtUse : PagerSetting.PageTimeSpan.OrigiEndDateTime; isArrow = !isEndAnes; } else { dt = row.START_TIME.Value; } MedDrugPoint point = curve.AddPoint(row.START_TIME.Value, this.GetDoubleValue(row.DOSAGE), this.GetStringValue(row.DOSAGE_UNITS), this.GetDoubleValue(row.CONCENTRATION), this.GetStringValue(row.CONCENTRATION_UNIT), this.GetStringValue(row.ADMINISTRATOR), dt, this.GetDoubleValue(row.PERFORM_SPEED), this.GetStringValue(row.SPEED_UNIT), pointType); point.IsArrow = isArrow; _drugRows.Add(point, row); } }); control.Curves.Add(curve); } } } }
private void SetOperStatusEnable() { OperationStatus operSate = OperationStatusHelper.OperationStatusFromString(ViewFlag); int patStatuIndex = OperationStatusHelper.GetOperStatusIndex(ExtendAppContext.Current.PatientInformationExtend.OPER_STATUS_CODE); int curntEditIndex = OperationStatusHelper.GetOperStatusIndex((int)operSate); //当前编辑已填写的状态的时间 if (patStatuIndex > curntEditIndex) { visibIndex = patStatuIndex; } //编辑新的状态时间 else { visibIndex = curntEditIndex; operStatusCode = (int)operSate; } StepIndex = visibIndex - 1; curntStatusCode = (int)operSate; enableIndex = curntEditIndex; switch (visibIndex) { case 1: InRoomVisible = Visibility.Visible; InRoomFinish = true; break; case 2: InRoomVisible = Visibility.Visible; AnesStartVisible = Visibility.Visible; InRoomFinish = true; AnesStartFinish = true; break; case 3: InRoomVisible = Visibility.Visible; AnesStartVisible = Visibility.Visible; OperStartVisible = Visibility.Visible; InRoomFinish = true; AnesStartFinish = true; OperStartFinish = true; break; case 4: InRoomVisible = Visibility.Visible; AnesStartVisible = Visibility.Visible; OperStartVisible = Visibility.Visible; OperEndVisible = Visibility.Visible; InRoomFinish = true; AnesStartFinish = true; OperStartFinish = true; OperEndFinish = true; break; case 5: InRoomVisible = Visibility.Visible; AnesStartVisible = Visibility.Visible; OperStartVisible = Visibility.Visible; OperEndVisible = Visibility.Visible; AnesEndVisible = Visibility.Visible; InRoomFinish = true; AnesStartFinish = true; OperStartFinish = true; OperEndFinish = true; AnesEndFinish = true; break; case 6: InRoomVisible = Visibility.Visible; AnesStartVisible = Visibility.Visible; OperStartVisible = Visibility.Visible; OperEndVisible = Visibility.Visible; AnesEndVisible = Visibility.Visible; OutRoomVisible = Visibility.Visible; InRoomFinish = true; AnesStartFinish = true; OperStartFinish = true; OperEndFinish = true; AnesEndFinish = true; OutRoomFinish = true; break; } switch (enableIndex) { case 1: InRoomEnable = true; InRoomBackVisible = Visibility.Visible; InRoomFinish = false; break; case 2: AnesStartEnable = true; AnesStartBackVisible = Visibility.Visible; AnesStartFinish = false; break; case 3: OperStartEnable = true; OperStartBackVisible = Visibility.Visible; OperStartFinish = false; break; case 4: OperEndEnable = true; OperEndBackVisible = Visibility.Visible; OperEndFinish = false; break; case 5: AnesEndEnable = true; AnesEndBackVisible = Visibility.Visible; AnesEndFinish = false; break; case 6: OutRoomEnable = true; OutRoomBackVisible = Visibility.Visible; OutRoomFinish = false; break; } }
/// <summary> /// 注册命令 /// </summary> public void RegisterMessage() { Messenger.Default.Register <object>(this, EnumMessageKey.ChangeDateRegister, msg => { if (null != msg && !string.IsNullOrEmpty(msg.ToString()) && this.CheckData()) { this.SaveData(); ViewFlag = msg.ToString(); // 执行的手术时间必须是按顺序 // 当前手术状态 OperationStatus curOperStatus = (OperationStatus)_masterRow.OPER_STATUS_CODE; OperationStatus nextOperStatus = OperationStatus.None; // 目标状态 OperationStatus targetOperStatus = OperationStatusHelper.OperationStatusFromString(ViewFlag); if (curOperStatus >= targetOperStatus) { } else { switch (curOperStatus) { case OperationStatus.InOperationRoom: nextOperStatus = OperationStatus.AnesthesiaStart; break; case OperationStatus.AnesthesiaStart: nextOperStatus = OperationStatus.OperationStart; break; case OperationStatus.OperationStart: nextOperStatus = OperationStatus.OperationEnd; break; case OperationStatus.OperationEnd: nextOperStatus = OperationStatus.AnesthesiaEnd; break; case OperationStatus.AnesthesiaEnd: nextOperStatus = OperationStatus.OutOperationRoom; break; } if (nextOperStatus == OperationStatus.None || nextOperStatus != targetOperStatus) { this.ShowMessageBox("请按流程顺序操作!", MessageBoxButton.OK, MessageBoxImage.Warning); return; } else if (nextOperStatus == targetOperStatus && nextOperStatus == OperationStatus.OutOperationRoom) { this.Result = true; this.CloseContentWindow(); } } this.InRoomVisible = Visibility.Collapsed; this.InRoomBackVisible = Visibility.Collapsed; this.InRoomEnable = false; this.InRoomFinish = false; this.AnesStartVisible = Visibility.Collapsed; this.AnesStartBackVisible = Visibility.Collapsed; this.AnesStartEnable = false; this.AnesStartFinish = false; this.OperStartVisible = Visibility.Collapsed; this.OperStartBackVisible = Visibility.Collapsed; this.OperStartEnable = false; this.OperStartFinish = false; this.OperEndVisible = Visibility.Collapsed; this.OperEndBackVisible = Visibility.Collapsed; this.OperEndEnable = false; this.OperEndFinish = false; this.AnesEndVisible = Visibility.Collapsed; this.AnesEndBackVisible = Visibility.Collapsed; this.AnesEndEnable = false; this.AnesEndFinish = false; this.OutRoomVisible = Visibility.Collapsed; this.OutRoomBackVisible = Visibility.Collapsed; this.OutRoomEnable = false; this.OutRoomFinish = false; this.LoadData(); Messenger.Default.Send <object>(true, EnumMessageKey.RefreshDateRegisterFocus); } }); }
private void btnOK_Click(object sender, EventArgs e) { //通用运行参数 ExtendApplicationContext.Current.OperRoom = txtOpertionRoom.Text; ExtendApplicationContext.Current.AnesthesiaWardCode = txtAnesthesiaWardCode.Text; ApplicationConfiguration.DrugShow = cmbDrugShow.SelectedIndex; ApplicationConfiguration.ProLonged = cmbProLonged.SelectedIndex; ExtendApplicationContext.Current.HospBranchCode = txtHospBranchCode.Text; //持续用药自动结束 ApplicationConfiguration.DrugAutoStop = chkDrugAutoStop.Checked; ApplicationConfiguration.DrugAutoStopOperationStatus = cmbDrugStopOperationStatus.Text; ApplicationConfiguration.IsModifyVitalSignShowDifferent = chkSignModification.Checked; ApplicationConfiguration.IsVerificationAudit = chkVerificationAudit.Checked; //本机运行参数 if (cboPatterns.EditValue != null && cboPatterns.EditValue.Equals("手术间")) { ApplicationConfiguration.ApplicationPatterns = "0"; } else if (cboPatterns.EditValue != null && cboPatterns.EditValue.Equals("办公室")) { ApplicationConfiguration.ApplicationPatterns = "1"; } ExtendApplicationContext.Current.OperRoomNo = txtOpertionRoomNo.Text; ExtendApplicationContext.Current.BaseAddress = txtBaseAddress.Text; ExtendApplicationContext.Current.WebApiUri = txtWebApiUri.Text; ApplicationConfiguration.IsPACUProgram = chkPACUProgram.Checked; //接口相关参数 ApplicationConfiguration.SyncOpen = chkSyncOpen.Checked; ApplicationConfiguration.IsUpdateScheduleStatus = chkIsUpdateScheduleStatus.Checked; ApplicationConfiguration.IsUpdateHisStatus = chkIsUpdateHisStatus.Checked; ApplicationConfiguration.IsUpdateAnesCharge = chkIsUpdateAnesFei.Checked; //打印归档配置 //打印设置 try { ApplicationConfiguration.PrintPageName = medTextBoxPageName.Text; float resultValue = 0f; if (!float.TryParse(medTextBoxPaperHeight.Text, out resultValue)) { resultValue = 0f; } ApplicationConfiguration.PrintPaperHeight = resultValue; resultValue = 0f; if (!float.TryParse(medTextBoxPaperWidth.Text, out resultValue)) { resultValue = 0f; } ApplicationConfiguration.PrintPaperWidth = resultValue; resultValue = 0.5f; if (!float.TryParse(medTextBoxPaperLeftOff.Text, out resultValue)) { resultValue = 0.5f; } ApplicationConfiguration.PaperLeftOff = resultValue; resultValue = 1f; if (!float.TryParse(medTextBoxPaperTopOff.Text, out resultValue)) { resultValue = 1f; } ApplicationConfiguration.PaperTopOff = resultValue; } catch (Exception err) { MessageBox.Show(err.Message, "打印设置保存时发生错误", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } //文书上传设置 ApplicationConfiguration.PDFServerUrl = txtPDFServerUrl.Text; ApplicationConfiguration.PDFLocalUrl = txtPDFLocalUrl.Text; ApplicationConfiguration.IsDeleteAfterCommitDoc = chkDeleteAfterCommitDoc.Checked; List <string> fileList = new List <string>(); foreach (CheckedListBoxItem boxItem in chkUpFileList.Items) { if (boxItem.CheckState == CheckState.Checked) { fileList.Add(boxItem.Value.ToString()); } } ApplicationConfiguration.PostPDF_Names = string.Join(",", fileList.ToArray()); ApplicationConfiguration.IsAutomaticArchiving = chkAutomaticArchiving.Checked; if (chkAutomaticArchiving.Checked && cboArchivOperAfterDay.EditValue != null) { string days = cboArchivOperAfterDay.EditValue.ToString(); ApplicationConfiguration.ArchivOperAfterDay = Convert.ToInt32(days); } //文书配置 ApplicationConfiguration.NoPatientButtons = _statusButtonStrList[ProgramStatus.NoPatient]; ApplicationConfiguration.PeroperativePatientButtons = _statusButtonStrList[ProgramStatus.PeroperativePatient]; ApplicationConfiguration.AnesthesiaRecordButtons = _statusButtonStrList[ProgramStatus.AnesthesiaRecord]; ApplicationConfiguration.PACUButtons = _statusButtonStrList[ProgramStatus.PACURecord]; ApplicationConfiguration.PostoperativePatientButtons = _statusButtonStrList[ProgramStatus.PostoperativePatient]; ExtendApplicationContext.Current.StatusButtonStrList = _statusButtonStrList; //文书菜单 OperationStatusHelper.SetOperDocument(_operDocuments); //提交更新到数据库 if (comnDictRepository.SaveConfig(ExtendApplicationContext.Current.CommDict.ConfigDict).Data > 0) { ParentForm.DialogResult = DialogResult.OK; } }
private bool InPacuRoom() { PacuRoom = txtPacuNo.Text; DateTime inPacuTime = Convert.ToDateTime(txtInPacuTime.EditValue); if (!string.IsNullOrEmpty(PacuRoom) && inPacuTime != DateTime.MaxValue && inPacuTime != DateTime.MinValue) { List <MED_OPERATING_ROOM> operatingRoomList = new ComnDictRepository().GetOperatingRoomList("1").Data; MED_OPERATION_MASTER operMaster = operationInfoRepository.GetOperMaster(ExtendApplicationContext.Current.PatientContextExtend.PatientID, ExtendApplicationContext.Current.PatientContextExtend.VisitID, ExtendApplicationContext.Current.PatientContextExtend.OperID).Data; if (operMaster.IN_PACU_DATE_TIME.HasValue) { MessageBoxFormPC.Show("该患者已经入室,请刷新数据!", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return(false); } else if (operMaster.OPER_STATUS_CODE < (int)OperationStatus.TurnToPACU) { MessageBoxFormPC.Show("该患者已被跳转到【" + OperationStatusHelper.OperationStatusToString((OperationStatus)operMaster.OPER_STATUS_CODE) + "】状态,请刷新数据!", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return(false); } if (operMaster != null) { if (operMaster.OUT_DATE_TIME.HasValue) { if (inPacuTime < operMaster.OUT_DATE_TIME) { MessageBoxFormPC.Show("【入复苏室】 时间 [" + inPacuTime + "] 小于 【出手术室】时间 [" + operMaster.OUT_DATE_TIME + "],请重新输入!", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return(false); } } } if (operatingRoomList != null && operatingRoomList.Count > 0) { List <string> bedNos = new List <string>(); operatingRoomList.ForEach(row => { if (!string.IsNullOrEmpty(row.BED_TYPE) && row.BED_TYPE.Equals("1")) { bedNos.Add(row.ROOM_NO); } }); } if (string.IsNullOrEmpty(PacuRoom)) { return(false); } bool isUpdate = new OperatingRoomRepository().SetOperatingRoomPatient(operatingRoomList, PacuRoom, ExtendApplicationContext.Current.OperRoom, _patientID, _visitID, _operID); if (isUpdate) { new OperatingRoomRepository().SetOperMaster(_patientID, _visitID, _operID, "IN_PACU_DATE_TIME", inPacuTime, 45); new OperatingRoomRepository().SetMonitorDictPatient("1", ExtendApplicationContext.Current.OperRoom, PacuRoom, _patientID, _visitID, _operID); _patientCard.OPER_STATUS_CODE = 45; _patientCard.IN_PACU_DATE_TIME = inPacuTime; ExtendApplicationContext.Current.PatientInformationExtend = _patientCard; } else { MessageBoxFormPC.Show("床位被占用,请重新选择", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Information); } return(isUpdate); } else { return(false); } return(true); }
/// <summary> /// 设置界面跳转目标状态 /// </summary> private void LoadOperStatusList() { if (CurPatientModel.OperStatusCode == OperationStatus.InOperationRoom)//入手术室 { _cbOperStatusSourceList.Add(new MED_ANESTHESIA_INPUT_DICT() { ITEM_CLASS = "手术状态", ITEM_NAME = "入室前", ITEM_CODE = OperationStatusHelper.OperationStatusToString(OperationStatus.IsReady) }); } else if (CurPatientModel.OperStatusCode == OperationStatus.AnesthesiaStart)//麻醉开始 { _cbOperStatusSourceList.Add(new MED_ANESTHESIA_INPUT_DICT() { ITEM_CLASS = "手术状态", ITEM_NAME = "入室前", ITEM_CODE = OperationStatusHelper.OperationStatusToString(OperationStatus.IsReady) }); _cbOperStatusSourceList.Add(new MED_ANESTHESIA_INPUT_DICT() { ITEM_CLASS = "手术状态", ITEM_NAME = "入手术室", ITEM_CODE = OperationStatusHelper.OperationStatusToString(OperationStatus.InOperationRoom) }); _cbOperStatusSourceList.Add(new MED_ANESTHESIA_INPUT_DICT() { ITEM_CLASS = "手术状态", ITEM_NAME = "麻醉结束", ITEM_CODE = OperationStatusHelper.OperationStatusToString(OperationStatus.AnesthesiaEnd) }); } else if (CurPatientModel.OperStatusCode == OperationStatus.OperationStart)//手术开始 { _cbOperStatusSourceList.Add(new MED_ANESTHESIA_INPUT_DICT() { ITEM_CLASS = "手术状态", ITEM_NAME = "入室前", ITEM_CODE = OperationStatusHelper.OperationStatusToString(OperationStatus.IsReady).ToString() }); _cbOperStatusSourceList.Add(new MED_ANESTHESIA_INPUT_DICT() { ITEM_CLASS = "手术状态", ITEM_NAME = "入手术室", ITEM_CODE = OperationStatusHelper.OperationStatusToString(OperationStatus.InOperationRoom) }); _cbOperStatusSourceList.Add(new MED_ANESTHESIA_INPUT_DICT() { ITEM_CLASS = "手术状态", ITEM_NAME = "麻醉开始", ITEM_CODE = OperationStatusHelper.OperationStatusToString(OperationStatus.AnesthesiaStart) }); } else if (CurPatientModel.OperStatusCode == OperationStatus.OperationEnd)//手术结束 { _cbOperStatusSourceList.Add(new MED_ANESTHESIA_INPUT_DICT() { ITEM_CLASS = "手术状态", ITEM_NAME = "入室前", ITEM_CODE = OperationStatusHelper.OperationStatusToString(OperationStatus.IsReady).ToString() }); _cbOperStatusSourceList.Add(new MED_ANESTHESIA_INPUT_DICT() { ITEM_CLASS = "手术状态", ITEM_NAME = "入手术室", ITEM_CODE = OperationStatusHelper.OperationStatusToString(OperationStatus.InOperationRoom) }); _cbOperStatusSourceList.Add(new MED_ANESTHESIA_INPUT_DICT() { ITEM_CLASS = "手术状态", ITEM_NAME = "麻醉开始", ITEM_CODE = OperationStatusHelper.OperationStatusToString(OperationStatus.AnesthesiaStart) }); _cbOperStatusSourceList.Add(new MED_ANESTHESIA_INPUT_DICT() { ITEM_CLASS = "手术状态", ITEM_NAME = "手术开始", ITEM_CODE = OperationStatusHelper.OperationStatusToString(OperationStatus.OperationStart) }); } else if (CurPatientModel.OperStatusCode == OperationStatus.AnesthesiaEnd)//麻醉结束 { _cbOperStatusSourceList.Add(new MED_ANESTHESIA_INPUT_DICT() { ITEM_CLASS = "手术状态", ITEM_NAME = "入室前", ITEM_CODE = OperationStatusHelper.OperationStatusToString(OperationStatus.IsReady) }); _cbOperStatusSourceList.Add(new MED_ANESTHESIA_INPUT_DICT() { ITEM_CLASS = "手术状态", ITEM_NAME = "入手术室", ITEM_CODE = OperationStatusHelper.OperationStatusToString(OperationStatus.InOperationRoom) }); _cbOperStatusSourceList.Add(new MED_ANESTHESIA_INPUT_DICT() { ITEM_CLASS = "手术状态", ITEM_NAME = "麻醉开始", ITEM_CODE = OperationStatusHelper.OperationStatusToString(OperationStatus.AnesthesiaStart) }); _cbOperStatusSourceList.Add(new MED_ANESTHESIA_INPUT_DICT() { ITEM_CLASS = "手术状态", ITEM_NAME = "手术开始", ITEM_CODE = OperationStatusHelper.OperationStatusToString(OperationStatus.OperationStart) }); _cbOperStatusSourceList.Add(new MED_ANESTHESIA_INPUT_DICT() { ITEM_CLASS = "手术状态", ITEM_NAME = "手术结束", ITEM_CODE = OperationStatusHelper.OperationStatusToString(OperationStatus.OperationEnd) }); } else //其他 { _cbOperStatusSourceList.Add(new MED_ANESTHESIA_INPUT_DICT() { ITEM_CLASS = "手术状态", ITEM_NAME = "入室前", ITEM_CODE = OperationStatusHelper.OperationStatusToString(OperationStatus.IsReady) }); _cbOperStatusSourceList.Add(new MED_ANESTHESIA_INPUT_DICT() { ITEM_CLASS = "手术状态", ITEM_NAME = "入手术室", ITEM_CODE = OperationStatusHelper.OperationStatusToString(OperationStatus.InOperationRoom) }); _cbOperStatusSourceList.Add(new MED_ANESTHESIA_INPUT_DICT() { ITEM_CLASS = "手术状态", ITEM_NAME = "麻醉开始", ITEM_CODE = OperationStatusHelper.OperationStatusToString(OperationStatus.AnesthesiaStart) }); _cbOperStatusSourceList.Add(new MED_ANESTHESIA_INPUT_DICT() { ITEM_CLASS = "手术状态", ITEM_NAME = "手术开始", ITEM_CODE = OperationStatusHelper.OperationStatusToString(OperationStatus.OperationStart) }); _cbOperStatusSourceList.Add(new MED_ANESTHESIA_INPUT_DICT() { ITEM_CLASS = "手术状态", ITEM_NAME = "手术结束", ITEM_CODE = OperationStatusHelper.OperationStatusToString(OperationStatus.OperationEnd) }); _cbOperStatusSourceList.Add(new MED_ANESTHESIA_INPUT_DICT() { ITEM_CLASS = "手术状态", ITEM_NAME = "麻醉结束", ITEM_CODE = OperationStatusHelper.OperationStatusToString(OperationStatus.AnesthesiaEnd) }); } }