private void btnNext_Click(object sender, RoutedEventArgs e) { lock (_lock) { #region if (FitResultList == null) FitResultList = new List<FitResult>(); //获取FIT结果 FitResult = LumbarRobotController.RobotController.GetFitResult(); //显示FIT结果 if (FitResult != null) { if (FitResult.FitMode == Common.Enums.FitModeEnum.ProtrusiveOrBendFit) { eilelc21.FltMinusValue = FitResult.BendMinAngle.Value; eilelc21.FltValu = FitResult.BendMaxAngle.Value; } else if (FitResult.FitMode == Common.Enums.FitModeEnum.RotationFit) { eilelc21.FltMinusValue = FitResult.RotateMinAngle.Value; eilelc21.FltValu = FitResult.RotateMaxAngle.Value; } else if (FitResult.FitMode == Common.Enums.FitModeEnum.ProtrusiveOrBendStrengthEvaluation) { eilelc21.FltMinusValue = FitResult.BendMin.Value; eilelc21.FltValu = FitResult.BendMax.Value; } else { eilelc21.FltMinusValue = FitResult.RotateMin.Value; eilelc21.FltValu = FitResult.RotateMax.Value; } FitResultList.Add(FitResult); } Stop(); //开始新Fit if (FitResult != null) { if (LumbarRobotController.RobotController.IsPause) { LumbarRobotController.RobotController.IsPause = false; } else { sinWpf1.ReSet(); eilelc21.Rest(); 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; } //StopAction = new EventHandler(RobotController_StopAction); //LumbarRobotController.RobotController.StopAction += StopAction; if (StartAction == null) { StartAction = new EventHandler(RobotController_StartAction); LumbarRobotController.RobotController.StartAction += StartAction; } SetParam(); txtPrompt.Text = "系统正在复位请放松"; if (FitResult.FitMode == Common.Enums.FitModeEnum.ProtrusiveOrBendFit) { txtMsg.Text = "正在进行曲伸Fit,完成后点击确定!"; LumbarRobotController.RobotController.DoAction(ModeEnum.Fit, ActionEnum.ProtrusiveOrBend); } else if(FitResult.FitMode == Common.Enums.FitModeEnum.RotationFit) { txtMsg.Text = "正在进行旋转Fit,完成后点击确定!"; LumbarRobotController.RobotController.DoAction(ModeEnum.Fit, ActionEnum.Rotation); } else if (FitResult.FitMode == Common.Enums.FitModeEnum.ProtrusiveOrBendStrengthEvaluation) { txtMsg.Text = "正在进行屈伸力量评测,完成后点击确定!"; LumbarRobotController.RobotController.DoAction(ModeEnum.StrengthEvaluation, ActionEnum.ProtrusiveOrBend); } else { txtMsg.Text = "正在进行旋转力量评测,完成后点击确定!"; LumbarRobotController.RobotController.DoAction(ModeEnum.StrengthEvaluation, ActionEnum.Rotation); } //LimitSwitchChanged = new EventHandler(RobotController_LimitSwitchChanged); //LumbarRobotController.RobotController.LimitSwitchChanged += LimitSwitchChanged; } } #endregion } }
private void SaveFitRecord(FitResult fitResult) { Application.Current.Dispatcher.Invoke(new Action(() => { try { FitRecord record = new FitRecord(); record.Id = Guid.NewGuid().ToString("N"); record.PatientID = ModuleConstant.PatientId; record.ModeID = (int)fitResult.FitMode; record.CreateTime = DateTime.Now; record.PushRodValue = LumbarRobotController.RobotController.PushRodAngle; if (fitResult.FitMode == Common.Enums.FitModeEnum.ProtrusiveOrBendFit) { if (fitResult.BendMinAngle.HasValue) record.MinAngle = (int)(fitResult.BendMinAngle.Value); if (fitResult.BendMaxAngle.HasValue) record.MaxAngle = (int)(fitResult.BendMaxAngle.Value); } else if (fitResult.FitMode == Common.Enums.FitModeEnum.RotationFit) { if (fitResult.RotateMinAngle.HasValue) record.MinAngle = (int)fitResult.RotateMinAngle.Value; if (fitResult.RotateMaxAngle.HasValue) record.MaxAngle = (int)fitResult.RotateMaxAngle.Value; } else if (fitResult.FitMode == Common.Enums.FitModeEnum.ProtrusiveOrBendStrengthEvaluation) { if (fitResult.BendMin.HasValue) record.MinAngle = (int)(fitResult.BendMin.Value); if (fitResult.BendMax.HasValue) record.MaxAngle = (int)(fitResult.BendMax.Value); } else { if (fitResult.RotateMin.HasValue) record.MinAngle = (int)fitResult.RotateMin.Value; if (fitResult.RotateMax.HasValue) record.MaxAngle = (int)fitResult.RotateMax.Value; } MySession.Session.Save(record); MySession.Session.Flush(); } catch { } })); }
private void btnAffirm_Click(object sender, RoutedEventArgs e) { lock (_lock) { if (FitResultList == null || FitResultList.Count <= 0) { //获取FIT结果 FitResult = LumbarRobotController.RobotController.GetFitResult(); } else { FitResult = new Services.FitResult(); if (FitResultList[0].FitMode == Common.Enums.FitModeEnum.ProtrusiveOrBendFit) { FitResult.BendMaxAngle = 0; FitResult.BendMinAngle = 0; } else if (FitResultList[0].FitMode == Common.Enums.FitModeEnum.RotationFit) { FitResult.RotateMaxAngle = 0; FitResult.RotateMinAngle = 0; } else if (FitResultList[0].FitMode == Common.Enums.FitModeEnum.ProtrusiveOrBendStrengthEvaluation) { FitResult.BendMax = 0; FitResult.BendMin = 0; } else { FitResult.RotateMax = 0; FitResult.RotateMin = 0; } var result = LumbarRobotController.RobotController.GetFitResult(); FitResultList.Add(result); //取多次Fit的平均值 int count = FitResultList.Count; Common.Enums.FitModeEnum fitMode = Common.Enums.FitModeEnum.ProtrusiveOrBendFit; for (int i = 0; i < count; i++) { if (FitResultList[i].FitMode == Common.Enums.FitModeEnum.ProtrusiveOrBendFit) { FitResult.BendMaxAngle += FitResultList[i].BendMaxAngle.Value; FitResult.BendMinAngle += FitResultList[i].BendMinAngle.Value; } else if (FitResultList[i].FitMode == Common.Enums.FitModeEnum.RotationFit) { FitResult.RotateMaxAngle += FitResultList[i].RotateMaxAngle.Value; FitResult.RotateMinAngle += FitResultList[i].RotateMinAngle.Value; } else if (FitResultList[i].FitMode == Common.Enums.FitModeEnum.ProtrusiveOrBendStrengthEvaluation) { FitResult.BendMax += FitResultList[i].BendMax.Value; FitResult.BendMin += FitResultList[i].BendMin.Value; } else { FitResult.RotateMax += FitResultList[i].RotateMax.Value; FitResult.RotateMin += FitResultList[i].RotateMin.Value; } fitMode = FitResultList[i].FitMode; } if (FitResult.BendMaxAngle.HasValue) FitResult.BendMaxAngle = FitResult.BendMaxAngle.Value / count; if (FitResult.BendMinAngle.HasValue) FitResult.BendMinAngle = FitResult.BendMinAngle.Value / count; if (FitResult.RotateMaxAngle.HasValue) FitResult.RotateMaxAngle = FitResult.RotateMaxAngle.Value / count; if (FitResult.RotateMinAngle.HasValue) FitResult.RotateMinAngle = FitResult.RotateMinAngle.Value / count; if (FitResult.RotateMaxAngle.HasValue) FitResult.BendMax = FitResult.BendMax.Value / count; if (FitResult.RotateMinAngle.HasValue) FitResult.BendMin = FitResult.BendMin.Value / count; if (FitResult.RotateMaxAngle.HasValue) FitResult.RotateMax = FitResult.RotateMax.Value / count; if (FitResult.RotateMinAngle.HasValue) FitResult.RotateMin = FitResult.RotateMin.Value / count; FitResult.FitMode = fitMode; } //显示FIT结果 if (FitResult != null) { if (FitResult.FitMode == Common.Enums.FitModeEnum.ProtrusiveOrBendFit) { eilelc21.FltMinusValue = FitResult.BendMinAngle.Value; eilelc21.FltValu = FitResult.BendMaxAngle.Value; } else if (FitResult.FitMode == Common.Enums.FitModeEnum.RotationFit) { eilelc21.FltMinusValue = FitResult.RotateMinAngle.Value; eilelc21.FltValu = FitResult.RotateMaxAngle.Value; } SaveFitRecord(FitResult); } LumbarRobotController.RobotController.IsStop = true; Stop(); if (fitType == LumbarRobot.FitType.None) { this.SetVidicon.Visibility = Visibility.Hidden; } else { this.Close(sender, e); } } }