private void btnSave_Click(object sender, RoutedEventArgs e) { if (string.IsNullOrEmpty(this.txtName.Text.Trim())) { AlarmDialog dialog = new AlarmDialog(); dialog.lblTitle.Text = "提示信息"; dialog.lblMsg.Text = "处方名称能为空!"; dialog.ShowDialog(); } using (ITransaction tx = MySession.Session.BeginTransaction()) { try { Prescription Prescription = new Prescription(); string Id= Guid.NewGuid().ToString("N"); Prescription.Id = Id; Prescription.PatientId = ModuleConstant.PatientId; Prescription.PrescriptionName = this.txtName.Text.Trim(); Prescription.LastTime = DateTime.Now; Prescription.OpTime = DateTime.Now; MySession.Session.Save(Prescription); MySession.Session.Flush(); foreach (ItemDemo item in ActionList) { Prescriptiondetails detail = new Prescriptiondetails(); detail.Id = Guid.NewGuid().ToString("N"); detail.ActionId = item.ActionId; detail.ModeId = item.Mode; detail.PrescriptionId = Id; detail.PForce = item.Force; detail.Speed = item.Speed; detail.MinAngle = item.MinAngle; detail.MaxAngle = item.MaxAngle; detail.PGroup = null; detail.Times = item.Times; detail.LastLocation = item.Position; detail.LastTime = DateTime.Now; MySession.Session.Save(detail); MySession.Session.Flush(); } tx.Commit(); SaveCourseEvent.Instance.Publish(true); IntPtr hwnd = WindowsAPI.FindWindow("IPTip_Main_Window", null); WindowsAPI.SendMessage(hwnd, WindowsAPI.WM_SYSCOMMAND, WindowsAPI.SC_CLOSE, 0); this.Close(sender, e); } catch (Exception) { tx.Rollback(); } } }
void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) { switch (connectionId) { case 1: this.main = ((LumbarRobot.MyUserControl.AlarmDialog)(target)); return; case 2: this.sbOpShow = ((System.Windows.Media.Animation.Storyboard)(target)); return; case 3: this.lblTitle = ((System.Windows.Controls.TextBlock)(target)); return; case 4: this.btnClosed = ((System.Windows.Controls.Button)(target)); #line 172 "..\..\..\..\MyUserControl\AlarmDialog.xaml" this.btnClosed.Click += new System.Windows.RoutedEventHandler(this.btnYes_Click); #line default #line hidden return; case 5: this.lblMsg = ((System.Windows.Controls.TextBlock)(target)); return; case 6: this.ButtonsGrid = ((System.Windows.Controls.Grid)(target)); return; case 7: this.btnOk = ((System.Windows.Controls.Button)(target)); #line 203 "..\..\..\..\MyUserControl\AlarmDialog.xaml" this.btnOk.Click += new System.Windows.RoutedEventHandler(this.btnYes_Click); #line default #line hidden return; } this._contentLoaded = true; }
private void btnSave_Click(object sender, RoutedEventArgs e) { tempItem = null; MyActionListBox.SelectedIndex = -1; if (listResult.Count < 12) { if (CboAction.SelectedIndex == 0) { AlarmDialog dialog = new AlarmDialog(); dialog.lblTitle.Text = "提示信息"; dialog.lblMsg.Text = "请选择动作!"; dialog.ShowDialog(); //if (MessageBox.Show("请选择动作!", "提示信息", MessageBoxButton.OK, MessageBoxImage.Error) == MessageBoxResult.OK) //{ } } else { if (CboMode.SelectedIndex == 0) { AlarmDialog dialog = new AlarmDialog(); dialog.lblTitle.Text = "提示信息"; dialog.lblMsg.Text = "请选择模式!"; dialog.ShowDialog(); //if (MessageBox.Show("请选择模式!", "提示信息", MessageBoxButton.OK, MessageBoxImage.Error) == MessageBoxResult.OK) //{ } } else { ItemDemo item = new ItemDemo(); item.Id = Guid.NewGuid().ToString("N"); item.MaxAngle = this.setControlMaxAngle.Value; ComboBoxItem cbi = (ComboBoxItem)this.CboAction.SelectedItem; item.ActionName = cbi.Content.ToString(); ComboBoxItem cbMode = (ComboBoxItem)this.CboMode.SelectedItem; item.ModeName = cbMode.Content.ToString(); item.MinAngle = this.setControlMinAngle.Value; item.Mode = EnumHelper.GetEnumItemValueByName(((ComboBoxItem)this.CboMode.SelectedItem).Tag.ToString(), typeof(ModeEnum));//this.CboMode.SelectedIndex; item.ActionId = EnumHelper.GetEnumItemValueByName(((ComboBoxItem)this.CboAction.SelectedItem).Tag.ToString(),typeof(ActionEnum)); //this.CboAction.SelectedIndex; item.Speed = this.setControlSpeed.Value; item.Times = this.setControlTimes.Value; item.Force = this.setControlForce.Value; item.Position = this.setControlPosition.Value; item.GroupTimes = this.setControlGroup.Value; item.PicturePath = "/images/prescribe.png"; listResult.Add(item); if (listResult.Count > 0) { MyActionListBox.DataContext = listResult; //MyActionListBox.SelectedIndex = listResult.Count - 1; } } } } else { AlarmDialog dialog = new AlarmDialog(); dialog.lblTitle.Text = "提示信息"; dialog.lblMsg.Text = "最多选择12个动作!"; dialog.ShowDialog(); //if (MessageBox.Show("最多选择12个动作!", "提示信息", MessageBoxButton.OK, MessageBoxImage.Error) == MessageBoxResult.OK) //{ } } }
private void btnSelectAction_Click(object sender, RoutedEventArgs e) { //int index=this Prescription Prescription = CourseListBox.SelectedItem as Prescription; if (Prescription != null) { var list = (from od in MySession.Query<Prescriptiondetails>() where od.PrescriptionId == Prescription.Id select od).OrderBy(x => x.LastTime).ToList(); if (list.Count > 0) { foreach (var item in list) { ItemDemo demo = new ItemDemo(); demo.Id = item.Id; demo.MaxAngle = Convert.ToInt32(item.MaxAngle); demo.ActionName = GetModeTypeName(item.ActionId.ToString()); demo.ModeName = GetModeTypeName(item.ModeId.ToString()); demo.MinAngle = Convert.ToInt32(item.MinAngle); demo.Mode = Convert.ToInt32(item.ModeId); demo.ActionId = Convert.ToInt32(item.ActionId); demo.Speed = Convert.ToInt32(item.Speed); demo.Times = Convert.ToInt32(item.Times); demo.Force = Convert.ToInt32(item.PForce); demo.Position = Convert.ToInt32(item.LastLocation); if (item.PGroup.HasValue) { demo.GroupTimes = Convert.ToInt32(item.PGroup); } demo.PicturePath = "/images/prescribe.png"; listResult.Add(demo); } if (listResult.Count > 0) { MyActionListBox.DataContext = listResult; MyActionListBox.SelectedIndex = listResult.Count - 1; } } } else { AlarmDialog msgBox = new AlarmDialog(); msgBox.lblMsg.Text = "请选择疗程!"; msgBox.lblTitle.Text = "提示信息"; msgBox.Show(); } }
private void btnSaveCourse_Click(object sender, RoutedEventArgs e) { ThreadPool.QueueUserWorkItem(new WaitCallback((obj) => { lock (objLock) { Application.Current.Dispatcher.Invoke(new Action(() => { if (patientInfo == null) { AlarmDialog dialog = new AlarmDialog(); dialog.lblTitle.Text = "提示信息"; dialog.lblMsg.Text = "请选择病人!"; dialog.ShowDialog(); } else { if (listResult.Count > 0) { if (SaveCourseDialog == null) { SaveCourseDialog = new SaveCourseDialog(); SaveCourseDialog.Parent = this; SaveCourseView child = new SaveCourseView(listResult); child.Close += new EventHandler(child_Close); SaveCourseDialog.Content = child; SaveCourseDialog.Show(); } } else { AlarmDialog dialog = new AlarmDialog(); dialog.lblTitle.Text = "提示信息"; dialog.lblMsg.Text = "请选择训练动作及模式!"; dialog.ShowDialog(); } } })); } })); }
private void btnDelAction_Click(object sender, RoutedEventArgs e) { Prescription Prescription = CourseListBox.SelectedItem as Prescription; if (Prescription != null) { WPFMessageBox IfMsgBox = new WPFMessageBox(); IfMsgBox.lblMsg.Text = "是否删除!"; IfMsgBox.lblTitle.Text = "提示信息"; IfMsgBox.Topmost = true; IfMsgBox.ShowDialog(); if (IfMsgBox.IsFlag) { if (Prescription.PatientId != "" && Prescription.PatientId != null) { var list = (from od in MySession.Query<Prescriptiondetails>() where od.PrescriptionId == Prescription.Id select od).OrderBy(x => x.LastTime).ToList(); if (list.Count > 0) { foreach (var item in list) { MySession.Session.Delete(item); MySession.Session.Flush(); } } MySession.Session.Delete(Prescription); MySession.Session.Flush(); tabChoose.SelectedIndex = 0; BindPrescription(ModuleConstant.PatientId); } else { AlarmDialog msgBox = new AlarmDialog(); msgBox.lblMsg.Text = "内置疗程,不能删除!"; msgBox.lblTitle.Text = "提示信息"; msgBox.Show(); } } else { AlarmDialog msgBox = new AlarmDialog(); msgBox.lblMsg.Text = "请选择疗程!"; msgBox.lblTitle.Text = "提示信息"; msgBox.Show(); } } }
private void btnStart_Click(object sender, RoutedEventArgs e) { ThreadPool.QueueUserWorkItem(new WaitCallback((obj) => { lock (objLock) { Application.Current.Dispatcher.Invoke(new Action(() => { //SelectPatientEvent.Instance.Subscribe(GetPatient); if (patientInfo == null) { AlarmDialog dialog = new AlarmDialog(); dialog.lblTitle.Text = "提示信息"; dialog.lblMsg.Text = "请选择病人!"; dialog.ShowDialog(); } else { //&& MyActionListBox.SelectedIndex>=0 //if (listResult.Count > MyActionListBox.SelectedIndex && MyActionListBox.SelectedIndex != -1 && listResult.Count > 0) //{ // WPFMessageBox msgBox = new WPFMessageBox(); // msgBox.lblMsg.Text = "是否修改!"; // msgBox.lblTitle.Text = "提示信息"; // msgBox.ShowDialog(); // if (msgBox.IsFlag) // { // ComboBoxItem cbi = (ComboBoxItem)this.CboAction.SelectedItem; // ComboBoxItem cbiMode = (ComboBoxItem)this.CboMode.SelectedItem; // if (MyActionListBox.SelectedIndex != -1) // { // if (listResult.Count > 0) // { // new Thread(() => // { // this.Dispatcher.Invoke(new Action(() => // { // int testIndex = MyActionListBox.SelectedIndex; // ItemDemo item = listResult[MyActionListBox.SelectedIndex] as ItemDemo; // item.ActionName = cbi.Content.ToString(); // item.ActionId = CboAction.SelectedIndex; // ItemDemo changeItem = new ItemDemo(); // SetItem(item, changeItem); // listResult.RemoveAt(MyActionListBox.SelectedIndex); // listResult.Insert(testIndex, changeItem); // MyActionListBox.DataContext = listResult; // MyActionListBox.SelectedIndex = testIndex; // })); // }).Start(); // } // } // } //ItemDemo item = listResult[MyActionListBox.SelectedIndex]; //item.Force = this.setControlForce.Value; //item.MaxAngle = this.setControlMaxAngle.Value; //item.MinAngle = this.setControlMinAngle.Value; //item.Speed = this.setControlSpeed.Value; //item.ActionId = this.CboAction.SelectedIndex; //item.Mode = this.CboMode.SelectedIndex; //item.Times = this.setControlTimes.Value; //item.Position = this.setControlPosition.Value; //item.GroupTimes = this.setControlGroup.Value; //} if (listResult.Count > 0) { if (ControlDialog == null) { Syspatient syspatient = new Syspatient(); syspatient = MySession.Session.Get<Syspatient>(ModuleConstant.PatientId); syspatient.LastTime = DateTime.Now; MySession.Session.SaveOrUpdate(syspatient); MySession.Session.Flush(); ControlDialog = new ActionControlDialog(); ControlDialog.Parent = this; ActionControl child = new ActionControl(listResult); //child.ActionList = listResult; child.Close += new EventHandler(child_Close); ControlDialog.Content = child; ControlDialog.Show(); } } else { AlarmDialog dialog = new AlarmDialog(); dialog.lblTitle.Text = "提示信息"; dialog.lblMsg.Text = "请选择训练动作及模式!"; dialog.ShowDialog(); } //else //{ // AlarmDialog dialog = new AlarmDialog(); // dialog.lblTitle.Text = "提示信息"; // dialog.lblMsg.Text = "请选择训练动作!"; // dialog.ShowDialog(); // //if (MessageBox.Show("请选择训练动作!", "提示信息", MessageBoxButton.OK, MessageBoxImage.Error) == MessageBoxResult.OK) // //{ // //} //} } })); } })); }
/// <summary> /// 打印 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnReport_Click(object sender, RoutedEventArgs e) { ThreadPool.QueueUserWorkItem(new WaitCallback((obj) => { lock (objLock) { Application.Current.Dispatcher.Invoke(new Action(() => { if (patientInfo == null) { AlarmDialog dialog = new AlarmDialog(); dialog.lblTitle.Text = "提示信息"; dialog.lblMsg.Text = "请选择病人!"; dialog.ShowDialog(); } else { //if (ReportPrintDialog == null) //{ // ReportPrintDialog = new ReportPrintDialog(); // ReportPrintDialog.Parent = this; // ReportPrintControl child = new ReportPrintControl(); // child.Close += new EventHandler(child_Close); // ReportPrintDialog.Content = child; // ReportPrintDialog.Show(); //} if (FitResultDialog == null) { FitResultDialog = new FitResultDialog(); FitResultDialog.Parent = this; FitResultControl child = new FitResultControl(); child.Close += new EventHandler(child_Close); FitResultDialog.Content = child; FitResultDialog.Show(); } } })); } })); }
private void btnSave_Click(object sender, RoutedEventArgs e) { ObservableCollection<PrescriptionItem> list= SetPrescriptionItems(); if (list != null && list.Count > 0) { prescriptionDialog = new PrescriptionDialog(); prescriptionDialog.Parent = this; SavePrescriptionView child = new SavePrescriptionView(list); child.Close += new EventHandler(child_Close); prescriptionDialog.Content = child; prescriptionDialog.Show(); } else { AlarmDialog msgBox = new AlarmDialog(); msgBox.lblMsg.Text = "暂无可保存的处方信息!"; msgBox.lblTitle.Text = "提示信息"; msgBox.Show(); } }
private void btnSaveDoc_Click(object sender, RoutedEventArgs e) { if (string.IsNullOrEmpty(this.txtName.Text.Trim())) { AlarmDialog dialog = new AlarmDialog(); dialog.lblTitle.Text = "提示信息"; dialog.lblMsg.Text = "用户名不能为空!"; dialog.ShowDialog(); //if (MessageBox.Show("用户名不能为空!", "提示信息", MessageBoxButton.OK, MessageBoxImage.Error) == MessageBoxResult.OK) //{ //} } else if (!string.IsNullOrEmpty(this.txtWeight.Text) && !Machine.ISNumber(this.txtWeight.Text)) { AlarmDialog dialog = new AlarmDialog(); dialog.lblTitle.Text = "提示信息"; dialog.lblMsg.Text = "输入有效体重!"; dialog.ShowDialog(); this.txtWeight.Text = ""; this.txtWeight.Focus(); } else if (!string.IsNullOrEmpty(this.txtHeight.Text) && !Machine.ISNumber(this.txtHeight.Text)) { AlarmDialog dialog = new AlarmDialog(); dialog.lblTitle.Text = "提示信息"; dialog.lblMsg.Text = "输入有效身高!"; dialog.ShowDialog(); this.txtHeight.Text = ""; this.txtHeight.Focus(); } else { if (IsAdd) { Sysuserinfo user = new Sysuserinfo(); string userid = Guid.NewGuid().ToString("N"); user.Id = userid;//用户ID user.UserType = "2";//用户类型 病人 user.UserName = txtName.Text.Trim(); //病人名字 user.SysPassWord = "******"; //密码 user.UserCode = ""; user.LastTime = DateTime.Now; //最后时间 MySession.Session.Save(user); Syspatient info = new Syspatient(); info.DoctorID = ModuleConstant.UserID; info.UserId = userid; info.PinYin = PinYinConverter.GetFirst(info.UserName); info.DiagnoseTypeId = (Convert.ToInt32(this.cbodiagnoseTypeId.SelectedIndex) + 1).ToString(); //info.AfftectedHand = (Convert.ToInt32(this.cboArm.SelectedIndex) + 1).ToString(); info.Sex = (Convert.ToInt32(this.cboSex.SelectedIndex) + 1).ToString(); info.Id = System.Guid.NewGuid().ToString("N"); info.LastTime = DateTime.Now; if (!string.IsNullOrEmpty(this.txtWeight.Text) && Machine.ISNumber(this.txtWeight.Text)) { info.Weight = Convert.ToInt32(this.txtWeight.Text); } if (!string.IsNullOrEmpty(this.txtHeight.Text) && Machine.ISNumber(this.txtHeight.Text)) { info.BodyHeight = Convert.ToInt32(this.txtHeight.Text); } info.Note = this.txtNode.Text; info.PatientCarNo = this.txtPatientCarNo.Text; info.OpDate = DateTime.Now; info.BirthDay = Convert.ToDateTime(this.birthday.Text); info.UserName = txtName.Text.Trim(); MySession.Session.Save(info); MySession.Session.Flush(); } else { Syspatient info = MySession.Session.Get<Syspatient>(ModuleConstant.PatientId); Sysuserinfo user = MySession.Session.Get<Sysuserinfo>(info.UserId); user.UserName = txtName.Text.Trim(); //病人名字 user.LastTime = DateTime.Now; //最后时间 MySession.Session.SaveOrUpdate(user); info.DiagnoseTypeId = (Convert.ToInt32(this.cbodiagnoseTypeId.SelectedIndex) + 1).ToString(); // info.AfftectedHand = (Convert.ToInt32(this.cboArm.SelectedIndex) + 1).ToString(); info.Sex = (Convert.ToInt32(this.cboSex.SelectedIndex) + 1).ToString(); info.LastTime = DateTime.Now; info.PinYin = PinYinConverter.GetFirst(txtName.Text.Trim()); if (!string.IsNullOrEmpty(this.txtWeight.Text) && Machine.ISNumber(this.txtWeight.Text)) { info.Weight = Convert.ToInt32(this.txtWeight.Text); } if (!string.IsNullOrEmpty(this.txtHeight.Text) && Machine.ISNumber(this.txtHeight.Text)) { info.BodyHeight = Convert.ToInt32(this.txtHeight.Text); } info.Note = this.txtNode.Text; info.PatientCarNo = this.txtPatientCarNo.Text; info.BirthDay = Convert.ToDateTime(this.birthday.Text); info.UserName = txtName.Text.Trim(); MySession.Session.SaveOrUpdate(info); MySession.Session.Flush(); } Machine.ClosedTabtip(); this.Close(sender, e); IsRefreshEvent.Instance.Publish(true); } }
/// <summary> /// 开始 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void playBtn_PlayClick(object sender, EventArgs e) { if (LumbarRobotController.RobotController.IsPause) { LumbarRobotController.RobotController.Continue(); } else { SetParam(); if (Action == EvaluateActionEnum.RangeBend || Action == EvaluateActionEnum.RangeProtrusive) { //判断限位塞是否有效 var limitSwitchs = LumbarRobotController.RobotController.LimitSwitch; bool minFlag = false; bool maxFlag = false; int minAngle = int.MinValue; int maxAngle = int.MaxValue; foreach (var ls in limitSwitchs) { var limitAngle = GetLimitSwitchAngle(ls); if (LumbarRobotController.RobotController.CurrentBendStretchAngle - (LumbarRobotController.RobotController.HomingAngle - LumbarRobotController.RobotController.PushRodAngle) < limitAngle) { if (limitAngle < maxAngle) { maxAngle = limitAngle; } maxFlag = true; } else { if (limitAngle > minAngle) { minAngle = limitAngle; } minFlag = true; } } if (!(minFlag && maxFlag)) { playBtn.Init(1, 1); AlarmDialog dialog = new AlarmDialog(); dialog.lblTitle.Text = "提示信息"; dialog.lblMsg.Text = "限位塞还未设置或设置错误!"; dialog.ShowDialog(); return; } //判断设置角度是否大于限位栓角度 if (LumbarRobotController.RobotController.IsConnected) { if (InitialPosition < minAngle) { playBtn.Init(1, 1); AlarmDialog dialog = new AlarmDialog(); dialog.lblTitle.Text = "提示信息"; dialog.lblMsg.Text = "初始角度不能小于限位塞角度!"; dialog.ShowDialog(); return; } if (InitialPosition > maxAngle) { playBtn.Init(1, 1); AlarmDialog dialog = new AlarmDialog(); dialog.lblTitle.Text = "提示信息"; dialog.lblMsg.Text = "初始角度不能大于限位塞角度!"; dialog.ShowDialog(); return; } } } this.playBtn.imgStop.IsEnabled = true; this.playBtn.imgNext.IsEnabled = false; this.playBtn.imgPrev.IsEnabled = false; ControlIsEnabled(false); if (Mode == EvaluateModeEnum.Strength) { sinWpf1.Uint = "牛"; } else { sinWpf1.Uint = "度"; } sinWpf1.ReSet(); eilelc21.Rest(); if (Move == null) { Move = new LumbarRobotController.MoveHandler(RobotController_Move); LumbarRobotController.RobotController.Move += Move; } if (StopAction == null) { StopAction = new EventHandler(RobotController_StopAction); LumbarRobotController.RobotController.StopAction += StopAction; } if (SetForce == null) { SetForce = new SetForceHandler(RobotController_SetForce); LumbarRobotController.RobotController.SetForce += SetForce; } if (StartAction == null) { StartAction = new EventHandler(RobotController_StartAction); LumbarRobotController.RobotController.StartAction += StartAction; } if (Mode == EvaluateModeEnum.Range) { SetTargetLine(Time, InitialPosition, Angle); } else { SetTargetLine(Time, 0, Power); } LumbarRobotController.RobotController.DoEvaluateAction(Action, Mode); txtPrompt.Text = "系统正在复位请放松"; //禁用fit按钮 btnActionFree.IsEnabled = false; } }
private void Stop(bool isShowDialog = true) { var record = LumbarRobotController.RobotController.GetEvaluteResult(); ControlIsEnabled(true); if (Move != null) { LumbarRobotController.RobotController.Move -= Move; Move = null; } if (NextTime != null) { LumbarRobotController.RobotController.NextTime -= NextTime; NextTime = null; } if (StopAction != null) { LumbarRobotController.RobotController.StopAction -= StopAction; StopAction = null; } if (SetForce != null) { LumbarRobotController.RobotController.SetForce -= SetForce; SetForce = null; } if (StartAction != null) { LumbarRobotController.RobotController.StartAction -= StartAction; StartAction = null; } SaveTrainRecord(record); //sinWpf1.ReSet(); //eilelc21.Rest(); LumbarRobotController.RobotController.ControlCommand.PauseCmd(); txtPrompt.Text = "当前评测结束!"; if (isShowDialog) { AlarmDialog dialog = new AlarmDialog(); dialog.lblTitle.Text = "提示信息"; dialog.lblMsg.Text = "当前评测结束!"; dialog.Topmost = true; dialog.ShowDialog(); } }
/// <summary> /// 开始 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void playBtn_PlayClick(object sender, EventArgs e) { if (LumbarRobotController.RobotController.IsPause) { LumbarRobotController.RobotController.Continue(); } else { ItemDemo item = ActionList[MyActionListBox.SelectedIndex] as ItemDemo; item.MaxAngle = this.setControlMaxAngle.Value; ComboBoxItem cbi = (ComboBoxItem)this.CboAction.SelectedItem; item.ActionName = cbi.Content.ToString(); ComboBoxItem cbMode = (ComboBoxItem)this.CboMode.SelectedItem; item.ModeName = cbMode.Content.ToString(); item.MinAngle = this.setControlMinAngle.Value; item.Mode = this.CboMode.SelectedIndex; item.ActionId = this.CboAction.SelectedIndex; item.Speed = this.setControlSpeed.Value; item.Times = this.setControlTimes.Value; item.Force = this.setControlForce.Value; item.Position = this.setControlPosition.Value; item.PicturePath = "/images/prescribe.png"; item.GroupTimes = this.setControlGroup.Value; MyActionListBox_SelectionChanged(null, null); //设置当前次数 this.txtTimes.Text = (LumbarRobotController.RobotController.CurrentTimes + 1).ToString(); if (ActionList != null && ActionList.Count > CurrentIndex) { this.txtTimes.Text += "/" + ActionList[CurrentIndex].Times * ActionList[CurrentIndex].GroupTimes; } if ((ActionEnum)ActionList[CurrentIndex].ActionId == ActionEnum.Bend || (ActionEnum)ActionList[CurrentIndex].ActionId == ActionEnum.Protrusive || (ActionEnum)ActionList[CurrentIndex].ActionId == ActionEnum.ProtrusiveOrBend) { UPLable.Content = "前屈"; Downlabel.Content = "后伸"; //判断限位塞是否有效 var limitSwitchs = LumbarRobotController.RobotController.LimitSwitch; bool minFlag = false; bool maxFlag = false; int minAngle = int.MinValue; int maxAngle = int.MaxValue; foreach (var ls in limitSwitchs) { var limitAngle = GetLimitSwitchAngle(ls); if (LumbarRobotController.RobotController.CurrentBendStretchAngle - (LumbarRobotController.RobotController.HomingAngle - LumbarRobotController.RobotController.PushRodAngle) < limitAngle) { if (limitAngle < maxAngle) { maxAngle = limitAngle; } maxFlag = true; } else { if (limitAngle > minAngle) { minAngle = limitAngle; } minFlag = true; } } if (!(minFlag && maxFlag)) { playBtn.Init(MyActionListBox.SelectedIndex, ActionList.Count); AlarmDialog dialog = new AlarmDialog(); dialog.lblTitle.Text = "提示信息"; dialog.lblMsg.Text = "限位塞还未设置或设置错误!"; dialog.ShowDialog(); return; } //判断设置角度是否大于限位栓角度 if (LumbarRobotController.RobotController.IsConnected) { if (ActionList[CurrentIndex].MinAngle < minAngle) { playBtn.Init(MyActionListBox.SelectedIndex, ActionList.Count); AlarmDialog dialog = new AlarmDialog(); dialog.lblTitle.Text = "提示信息"; dialog.lblMsg.Text = "最小角度不能小于限位塞角度!"; dialog.ShowDialog(); return; } if (ActionList[CurrentIndex].MaxAngle > maxAngle) { playBtn.Init(MyActionListBox.SelectedIndex, ActionList.Count); AlarmDialog dialog = new AlarmDialog(); dialog.lblTitle.Text = "提示信息"; dialog.lblMsg.Text = "最大角度不能大于限位塞角度!"; dialog.ShowDialog(); return; } } //判断初始位置是否大于或小于最大值和最小值 if ((ModeEnum)ActionList[CurrentIndex].Mode != ModeEnum.IsotonicA && (ModeEnum)ActionList[CurrentIndex].Mode != ModeEnum.IsotonicB) { if (ActionList[CurrentIndex].Position > ActionList[CurrentIndex].MaxAngle) { playBtn.Init(MyActionListBox.SelectedIndex, ActionList.Count); AlarmDialog dialog = new AlarmDialog(); dialog.lblTitle.Text = "提示信息"; dialog.lblMsg.Text = "起始位置不能大于最大角度!"; dialog.ShowDialog(); return; } if (ActionList[CurrentIndex].Position < ActionList[CurrentIndex].MinAngle) { playBtn.Init(MyActionListBox.SelectedIndex, ActionList.Count); AlarmDialog dialog = new AlarmDialog(); dialog.lblTitle.Text = "提示信息"; dialog.lblMsg.Text = "起始位置不能小于最小角度!"; dialog.ShowDialog(); return; } } //加载Fit结果 var fit = (from f in MySession.Query<FitRecord>() where f.PatientID == ModuleConstant.PatientId && f.ModeID == (int)Common.Enums.FitModeEnum.ProtrusiveOrBendFit select f).OrderByDescending(x => x.CreateTime).Take(1).ToList(); if (fit != null && fit.Count > 0) { eilelc21.FltMinusValue = fit[0].MinAngle; eilelc21.FltValu = fit[0].MaxAngle; } else { playBtn.Init(MyActionListBox.SelectedIndex, ActionList.Count); AlarmDialog dialog = new AlarmDialog(); dialog.lblTitle.Text = "提示信息"; dialog.lblMsg.Text = "还未测试!请先测试后再进行训练!"; dialog.ShowDialog(); return; } //判断设置角度是否大于fit角度 if (ActionList[CurrentIndex].MinAngle < fit[0].MinAngle) { playBtn.Init(MyActionListBox.SelectedIndex, ActionList.Count); AlarmDialog dialog = new AlarmDialog(); dialog.lblTitle.Text = "提示信息"; dialog.lblMsg.Text = "最小角度不能小于FIT角度!"; dialog.ShowDialog(); return; } if (ActionList[CurrentIndex].MaxAngle > fit[0].MaxAngle) { playBtn.Init(MyActionListBox.SelectedIndex, ActionList.Count); AlarmDialog dialog = new AlarmDialog(); dialog.lblTitle.Text = "提示信息"; dialog.lblMsg.Text = "最大角度不能大于FIT角度!"; dialog.ShowDialog(); return; } } else { UPLable.Content = "左"; Downlabel.Content = "右"; //加载Fit结果 var fit = (from f in MySession.Query<FitRecord>() where f.PatientID == ModuleConstant.PatientId && f.ModeID == (int)Common.Enums.FitModeEnum.RotationFit select f).OrderByDescending(x => x.CreateTime).Take(1).ToList(); if (fit != null && fit.Count > 0) { eilelc21.FltMinusValue = fit[0].MinAngle; eilelc21.FltValu = fit[0].MaxAngle; } else { playBtn.Init(MyActionListBox.SelectedIndex, ActionList.Count); AlarmDialog dialog = new AlarmDialog(); dialog.lblTitle.Text = "提示信息"; dialog.lblMsg.Text = "还未测试!请先测试后再进行训练!"; dialog.ShowDialog(); return; } //判断设置角度是否大于fit角度 if (ActionList[CurrentIndex].MinAngle < fit[0].MinAngle) { playBtn.Init(MyActionListBox.SelectedIndex, ActionList.Count); AlarmDialog dialog = new AlarmDialog(); dialog.lblTitle.Text = "提示信息"; dialog.lblMsg.Text = "最小角度不能小于FIT角度!"; dialog.ShowDialog(); return; } if (ActionList[CurrentIndex].MaxAngle > fit[0].MaxAngle) { playBtn.Init(MyActionListBox.SelectedIndex, ActionList.Count); AlarmDialog dialog = new AlarmDialog(); dialog.lblTitle.Text = "提示信息"; dialog.lblMsg.Text = "最大角度不能大于FIT角度!"; dialog.ShowDialog(); return; } } this.playBtn.imgStop.IsEnabled = true; this.playBtn.imgNext.IsEnabled = false; this.playBtn.imgPrev.IsEnabled = false; MyActionListBox.IsEnabled = false; SetIsEnabled(); ControlIsEnabled(false); if (LumbarRobotController.RobotController.IsPause) { LumbarRobotController.RobotController.IsPause = false; } else { if ((ModeEnum)ActionList[CurrentIndex].Mode == ModeEnum.IsotonicA || (ModeEnum)ActionList[CurrentIndex].Mode == ModeEnum.IsotonicB || (ModeEnum)ActionList[CurrentIndex].Mode == ModeEnum.StrengthEvaluation) { sinWpf1.Uint = "牛"; } else { sinWpf1.Uint = "度"; } if (LumbarRobotController.RobotController.IsPause) { sinWpf1.ReSet(false); } else { sinWpf1.ReSet(); } eilelc21.Rest(); //设置当前次数 this.txtTimes.Text = (LumbarRobotController.RobotController.CurrentTimes + 1).ToString(); if (ActionList != null && ActionList.Count > CurrentIndex) { this.txtTimes.Text += "/" + ActionList[CurrentIndex].Times * ActionList[CurrentIndex].GroupTimes; } if (ActionList != null && ActionList.Count > CurrentIndex) { if (Move == null) { Move = new LumbarRobotController.MoveHandler(RobotController_Move); LumbarRobotController.RobotController.Move += Move; } if (NextTime == null) { NextTime = new EventHandler(RobotController_NextTime); LumbarRobotController.RobotController.NextTime += NextTime; } if (StopAction == null) { StopAction = new EventHandler(RobotController_StopAction); LumbarRobotController.RobotController.StopAction += StopAction; } if (SetForce == null) { SetForce = new SetForceHandler(RobotController_SetForce); LumbarRobotController.RobotController.SetForce += SetForce; } if (StartAction == null) { StartAction = new EventHandler(RobotController_StartAction); LumbarRobotController.RobotController.StartAction += StartAction; } SetParam(); if ((ModeEnum)ActionList[CurrentIndex].Mode == ModeEnum.IsotonicA) { //设置预设目标 if ((ActionEnum)ActionList[CurrentIndex].ActionId == ActionEnum.Protrusive) { SetTargetLineByForce(ActionList[CurrentIndex].Speed, 0, ActionList[CurrentIndex].Force, ActionList[CurrentIndex].Times, ActionList[CurrentIndex].GroupTimes, 0); } else if ((ActionEnum)ActionList[CurrentIndex].ActionId == ActionEnum.Bend) { SetTargetLineByForce(ActionList[CurrentIndex].Speed, -1 * ActionList[CurrentIndex].Force,0, ActionList[CurrentIndex].Times, ActionList[CurrentIndex].GroupTimes, 0); } else if ((ActionEnum)ActionList[CurrentIndex].ActionId == ActionEnum.ProtrusiveOrBend || (ActionEnum)ActionList[CurrentIndex].ActionId == ActionEnum.Rotation) { SetTargetLineByForce(ActionList[CurrentIndex].Speed, -1 * ActionList[CurrentIndex].Force, ActionList[CurrentIndex].Force, ActionList[CurrentIndex].Times, ActionList[CurrentIndex].GroupTimes, 0); } } else if ((ModeEnum)ActionList[CurrentIndex].Mode == ModeEnum.IsotonicB) { SetTargetLineByForce2((ActionEnum)ActionList[CurrentIndex].ActionId, ActionList[CurrentIndex].Speed, ActionList[CurrentIndex].Force, ActionList[CurrentIndex].Times, ActionList[CurrentIndex].GroupTimes, 0); } else { if ((ModeEnum)ActionList[CurrentIndex].Mode != ModeEnum.Guided && (ModeEnum)ActionList[CurrentIndex].Mode != ModeEnum.Fit) { //设置预设目标 SetTargetLine(ActionList[CurrentIndex].Speed, ActionList[CurrentIndex].MaxAngle, ActionList[CurrentIndex].MinAngle, ActionList[CurrentIndex].Times, ActionList[CurrentIndex].GroupTimes, ActionList[CurrentIndex].Position); } } LumbarRobotController.RobotController.DoAction((ModeEnum)ActionList[CurrentIndex].Mode, (ActionEnum)ActionList[CurrentIndex].ActionId); } } txtPrompt.Text = "系统正在复位请放松"; //禁用fit按钮 btnRotationFit.IsEnabled = false; btnPBFit.IsEnabled = false; btnActionFree.IsEnabled = false; } }