public SetPlanePointNormal(MedicalViewer viewer, Medical3DContainer container, Medical3DVolumeType type, int index) { MedicalViewer3DCell cell3D = (MedicalViewer3DCell)viewer.Cells[0]; InitializeComponent(); _type = type; _container = container; _planeIndex = index; _dontApply = true; _viewer = viewer; if (_planeIndex == -1) { switch (_type) { case Medical3DVolumeType.VRT: _planeIndex = _container.Objects[cell3D.Container.CurrentObjectIndex].VRT.Planes.Count - 1; break; case Medical3DVolumeType.MIP: _planeIndex = _container.Objects[cell3D.Container.CurrentObjectIndex].MIP.Planes.Count - 1; break; case Medical3DVolumeType.MPR: _planeIndex = _container.Objects[cell3D.Container.CurrentObjectIndex].MPR.Planes.Count - 1; break; } } UpdatePlanePointNormal(); _dontApply = false; }
public RotatePlaneActionDialog(MedicalViewer medicalViewer, Medical3DContainer medical3DContainer) { InitializeComponent(); viewer = medicalViewer; container = medical3DContainer; Text = "Rotate Plane Action"; MedicalViewerRotate3DPlane rotatePlane = (MedicalViewerRotate3DPlane)viewer.GetActionProperties(MedicalViewerActionType.RotatePlane); switch (rotatePlane.Axis) { case Medical3DAxis.X: _comboBoxAxis.SelectedIndex = 0; break; case Medical3DAxis.Y: _comboBoxAxis.SelectedIndex = 1; break; case Medical3DAxis.Z: _comboBoxAxis.SelectedIndex = 2; break; } if (rotatePlane.Space == Medical3DSpace.Object) { _comboBoxOrientation.SelectedIndex = 0; } else { _comboBoxOrientation.SelectedIndex = 1; } }
public RotatePlane(MedicalViewer control, Medical3DContainer container, int planeIndex, Medical3DVolumeType type) { InitializeComponent(); _control = control; _container = container; _planeIndex = planeIndex; _type = type; _comboBoxAxis.SelectedIndex = 0; _comboBoxSpace.SelectedIndex = 0; MedicalViewer3DCell cell3D = (MedicalViewer3DCell)_control.Cells[0]; if (_planeIndex == -1) { switch (_type) { case Medical3DVolumeType.VRT: _planeIndex = _container.Objects[cell3D.Container.CurrentObjectIndex].VRT.Planes.Count - 1; break; case Medical3DVolumeType.MIP: _planeIndex = _container.Objects[cell3D.Container.CurrentObjectIndex].MIP.Planes.Count - 1; break; case Medical3DVolumeType.MPR: _planeIndex = _container.Objects[cell3D.Container.CurrentObjectIndex].MPR.Planes.Count - 1; break; } } }
public LoadPagesDialog(MainForm mainForm, MedicalViewer control, int maxPagesAllowed, int pageCount) { InitializeComponent(); _control = control; _maxPagesAllowed = maxPagesAllowed; _pageCount = pageCount; _txtFirstPage.MinimumAllowed = 1; _txtLastPage.MinimumAllowed = 1; _mainForm = mainForm; _txtFirstPage.MaximumAllowed = pageCount; _txtLastPage.MaximumAllowed = pageCount; if (maxPagesAllowed < pageCount) { _lblLoadPages.Text = "The series you are trying to load consist of " + pageCount + " frames, but your current graphics card can support only up to " + maxPagesAllowed + ". loading all of them will make the VRT and MPR disabled"; _txtFirstPage.Value = Math.Max(1, Math.Min(pageCount, (pageCount - maxPagesAllowed) / 2 + 1)); _txtLastPage.Value = Math.Max(1, Math.Min(pageCount, (pageCount + maxPagesAllowed) / 2)); } else { _lblLoadPages.Text = "This series has " + pageCount + " total pages. Select the pages you want to load:"; _txtFirstPage.Enabled = false; _txtLastPage.Enabled = false; _txtFirstPage.Value = 1; _txtLastPage.Value = pageCount; _chkLoad.Checked = true; } }
public AnimationDialog(MainForm owner, int cellIndex) { InitializeComponent(); _viewer = owner.Viewer; _cellIndex = cellIndex; MedicalViewerCell cell = (MedicalViewerCell)_viewer.Cells[_cellIndex]; this.Size = new Size(this.Size.Width, 213); _grpExtendedParameters.Visible = false; _txtFrom.Value = (cell.Animation.StartFrame + 1); bool toEnd = cell.Animation.FrameCount == -1; _txtTo.Value = (cell.Animation.FrameCount == -1) ? cell.Image.PageCount : cell.Animation.FrameCount + 1; _chkToEnd.Checked = toEnd; _tbSpeed.Value = (301 - cell.Animation.Interval); _chkShowAnnotation.Checked = (cell.Animation.Flags & MedicalViewerAnimationFlags.ShowAnnotations) == MedicalViewerAnimationFlags.ShowAnnotations; _chkShowRegion.Checked = (cell.Animation.Flags & MedicalViewerAnimationFlags.ShowRegions) == MedicalViewerAnimationFlags.ShowRegions; _cmbInterpolation.SelectedIndex = (int)(cell.Animation.Flags & (MedicalViewerAnimationFlags.PaintNormal | MedicalViewerAnimationFlags.PaintResample | MedicalViewerAnimationFlags.PaintBicubic)); _radLoop.Checked = (cell.Animation.Flags & (MedicalViewerAnimationFlags.Sequence | MedicalViewerAnimationFlags.Loop)) == MedicalViewerAnimationFlags.Sequence; _radShuffle.Checked = !_radLoop.Checked; _chkAnimateAllSubCells.Checked = cell.Animation.AnimateAllSubCells; if ((cell.Animation.Flags & MedicalViewerAnimationFlags.PlayOnSelection) == MedicalViewerAnimationFlags.PlayOnSelection) { cell.Animation.Flags ^= MedicalViewerAnimationFlags.PlayOnSelection; } if (cell.Animation.Animated) { if ((int)(cell.Animation.Flags & MedicalViewerAnimationFlags.PlayBackward) != 0) { _chkBackward.Checked = true; } else { _chkForward.Checked = true; } } else { _chkStop.Checked = true; } switch (cell.Animation.Frames) { case -1: case 0: case 1: _cmbFrames.SelectedIndex = cell.Animation.Frames + 1; break; default: _cmbFrames.SelectedIndex = 3; _txtFrames.Value = cell.Animation.Frames; break; } }
private void InitializeMedicalViewer() { try { MedicalViewerCell cell = new MedicalViewerCell(); cell.AddAction(MedicalViewerActionType.Stack); cell.SetAction(MedicalViewerActionType.Stack, MedicalViewerMouseButtons.Wheel, MedicalViewerActionFlags.Active); cell.AddAction(MedicalViewerActionType.WindowLevel); cell.SetAction(MedicalViewerActionType.WindowLevel, MedicalViewerMouseButtons.Left, MedicalViewerActionFlags.Active); cell.AddAction(MedicalViewerActionType.Scale); cell.SetAction(MedicalViewerActionType.Scale, MedicalViewerMouseButtons.Right, MedicalViewerActionFlags.Active); _MedicalViewer = new MedicalViewer(1, 1); _MedicalViewer.Dock = DockStyle.Fill; _MedicalViewer.SplitterStyle = MedicalViewerSplitterStyle.None; _MedicalViewer.Cells.Add(cell); _MedicalViewer.Dock = DockStyle.Fill; _MedicalViewer.BringToFront(); panelViewer.Controls.Add(_MedicalViewer); } catch (Exception e) { Messager.ShowError(this, e); Close(); } }
private void InitializeMedicalViewer() { try { MedicalViewerMultiCell cell = new MedicalViewerMultiCell(); cell.KeepDrawingAnnotation = true; cell.AddAction(MedicalViewerActionType.Stack); cell.SetAction(MedicalViewerActionType.Stack, MedicalViewerMouseButtons.Wheel, MedicalViewerActionFlags.Active); cell.AddAction(MedicalViewerActionType.AnnotationRedaction); cell.SetAction(MedicalViewerActionType.AnnotationRedaction, MedicalViewerMouseButtons.Left, MedicalViewerActionFlags.Active); cell.AddAction(MedicalViewerActionType.Scale); cell.SetAction(MedicalViewerActionType.Scale, MedicalViewerMouseButtons.Right, MedicalViewerActionFlags.Active); cell.AnnotationCreated += new EventHandler <MedicalViewerAnnotationCreatedEventArgs>(cell_AnnotationCreated); cell.DesignerCreated += new EventHandler <MedicalViewerDesignerCreatedEventArgs>(cell_DesignerCreated); _MedicalViewer = new MedicalViewer(1, 1); _MedicalViewer.Dock = DockStyle.Fill; _MedicalViewer.SplitterStyle = MedicalViewerSplitterStyle.None; _MedicalViewer.Cells.Add(cell); _MedicalViewer.Dock = DockStyle.Fill; panelView.Controls.Add(_MedicalViewer); } catch (Exception e) { Messager.ShowError(this, e); Close(); } }
public ScaleDialog(MedicalViewer control, Medical3DContainer container, ItemType type, int objectIndex) { InitializeComponent(); _oldPoint = new Medical3DPoint(); _type = type; _control = control; _container = container; _objectIndex = objectIndex; switch (type) { case ItemType.Camera: Text = "Zoom Camera Dialog"; _oldPoint.Y = container.Camera.Zoom; break; case ItemType.Object: Text = "Scale Object Dialog"; _oldPoint.X = container.Objects[objectIndex].XScale; _oldPoint.Y = container.Objects[objectIndex].YScale; _oldPoint.Z = container.Objects[objectIndex].ZScale; break; } _textBoxX.Value = (int)(_oldPoint.X * 1000); _textBoxY.Value = (int)(_oldPoint.Y * 1000); _textBoxZ.Value = (int)(_oldPoint.Z * 1000); }
public MoveDialog(MedicalViewer viewer, Medical3DContainer container, ItemType type, int objectIndex) { InitializeComponent(); _oldPoint = new Medical3DPoint(); _type = type; _viewer = viewer; _container = container; _objectIndex = objectIndex; switch (type) { case ItemType.Camera: Text = "Move Camera Dialog"; _oldPoint.X = container.Camera.XOffset; _oldPoint.Y = container.Camera.YOffset; _oldPoint.Z = container.Camera.ZOffset; _textBoxZ.MaximumAllowed = 4000; _textBoxZ.MinimumAllowed = 0; _trackBarZ.Maximum = 4000; _trackBarZ.Minimum = 0; break; case ItemType.Object: Text = "Move Object Dialog"; _oldPoint.X = container.Objects[objectIndex].XOffset; _oldPoint.Y = container.Objects[objectIndex].YOffset; _oldPoint.Z = container.Objects[objectIndex].ZOffset; break; } _textBoxX.Value = (int)(_oldPoint.X * 1000); _textBoxY.Value = (int)(_oldPoint.Y * 1000); _textBoxZ.Value = (int)(_oldPoint.Z * 1000); }
private void applyButton_Click(object sender, EventArgs e) { MedicalViewer viewer = ((MainForm)this.Owner).Viewer; //if (viewer.BackColor != _lblBackgroundColor.BackColor) // viewer.BackColor = _lblBackgroundColor.BackColor; if (viewer.CellMaintenance != _chkMaintainSize.Checked) { viewer.CellMaintenance = _chkMaintainSize.Checked; } if (viewer.LayoutOptions.RectForeColor != _labelDesignForeColor.BoxColor) { viewer.LayoutOptions.RectForeColor = _labelDesignForeColor.BoxColor; } if (viewer.LayoutOptions.RectBackColor != _labelDesignBackColor.BoxColor) { viewer.LayoutOptions.RectBackColor = _labelDesignBackColor.BoxColor; } ApplyCellProperties(_cell); foreach (MedicalViewerMultiCell cell in ((MainForm)this.Owner).Viewer.Cells) { ApplyCellProperties(cell); } }
public MovePlane(MedicalViewer viewer, Medical3DContainer container, int planeIndex, Medical3DVolumeType type) { InitializeComponent(); _viewer = viewer; _container = container; _planeIndex = planeIndex; _type = type; MedicalViewer3DCell cell3D = (MedicalViewer3DCell)_viewer.Cells[0]; if (_planeIndex == -1) { switch (_type) { case Medical3DVolumeType.VRT: _planeIndex = _container.Objects[cell3D.Container.CurrentObjectIndex].VRT.Planes.Count - 1; break; case Medical3DVolumeType.MIP: _planeIndex = _container.Objects[cell3D.Container.CurrentObjectIndex].MIP.Planes.Count - 1; break; case Medical3DVolumeType.MPR: _planeIndex = _container.Objects[cell3D.Container.CurrentObjectIndex].MPR.Planes.Count - 1; break; } } GetPlanePoint(); }
public SlabDialog(MedicalViewer medicalViewer, Medical3DContainer Medical3DContainer, Medical3DVolumeType type) { viewer = medicalViewer; MedicalViewer3DCell cell3D = (MedicalViewer3DCell)viewer.Cells[0]; InitializeComponent(); switch (type) { case Medical3DVolumeType.MIP: slab = Medical3DContainer.Objects[cell3D.Container.CurrentObjectIndex].MIP.Slab; break; case Medical3DVolumeType.VRT: slab = Medical3DContainer.Objects[cell3D.Container.CurrentObjectIndex].VRT.Slab; break; } previousSlabValue = new Medical3DSlab(slab); EnableControls(slab.Enabled); _chkBoxenableSlab.Checked = slab.Enabled; _textBoxX1.Value = (int)(slab.X1 * 1000); _textBoxY1.Value = (int)(slab.Y1 * 1000); _textBoxZ1.Value = (int)(slab.Z1 * 1000); _textBoxZ2.Value = (int)(slab.Z2 * 1000); _textBoxY2.Value = (int)(slab.Y2 * 1000); _textBoxX2.Value = (int)(slab.X2 * 1000); }
public MagnifyGlassProperties(MainForm owner, MedicalViewerCell selectedCell) { InitializeComponent(); _Viewer = owner.Viewer; _SelectedCell = selectedCell; if (_SelectedCell != null) { _magnifyGlass = (MedicalViewerMagnifyGlass)(_SelectedCell.GetActionProperties(MedicalViewerActionType.MagnifyGlass)); } else { _magnifyGlass = (MedicalViewerMagnifyGlass)(MainForm.DefaultCell.GetActionProperties(MedicalViewerActionType.MagnifyGlass)); } _chk3D.Checked = _magnifyGlass.Border3D; _chk3D.Enabled = !_chkElliptical.Checked; _chkElliptical.Checked = _magnifyGlass.Elliptical; _txtWidth.Value = _magnifyGlass.Width; _txtHeight.Value = _magnifyGlass.Height; _txtZoom.Value = _magnifyGlass.Zoom; _txtBorder.Value = _magnifyGlass.BorderSize; _cmbCrosshair.SelectedIndex = (int)_magnifyGlass.Crosshair; _lblPenColor.BackColor = Color.FromArgb(0xff, _magnifyGlass.PenColor.R, _magnifyGlass.PenColor.G, _magnifyGlass.PenColor.B); }
public void Initialize(MainForm owner, MedicalViewerActionType actionType) { InitializeComponent(); cell = MainForm.DefaultCell; viewer = owner.Viewer; _owner = owner; _owner.CobbAngleStarted = false; _actionType = actionType; this.Text = "Set " + GetSeparatedText(actionType.ToString()) + " Action"; if (cell.IsValidForAction(actionType, MedicalViewerMouseButtons.Wheel)) { _cmbMouseButton.Items.Insert(4, "Wheel"); } if (cell.IsValidForAction(actionType, MedicalViewerActionFlags.Selected)) { _cmbApplyTo.Items.Add("Selected Cells"); _cmbApplyTo.Items.Add("All Cells"); } if (cell.IsValidForAction(actionType, MedicalViewerActionFlags.Selected)) { _cmbApplyingMethod.Items.Add("On Release"); } MedicalViewerActionFlags actionFlags = cell.GetActionFlags(actionType); if ((actionFlags | MedicalViewerActionFlags.OnRelease) == actionFlags) { _cmbApplyingMethod.SelectedIndex = 1; } else { _cmbApplyingMethod.SelectedIndex = 0; } if ((actionFlags & MedicalViewerActionFlags.Selected) == MedicalViewerActionFlags.Selected) { _cmbApplyTo.SelectedIndex = 1; } else if ((actionFlags & MedicalViewerActionFlags.AllCells) == MedicalViewerActionFlags.AllCells) { _cmbApplyTo.SelectedIndex = 2; } else { _cmbApplyTo.SelectedIndex = 0; } _cmbMouseButton.SelectedIndex = (int)cell.GetActionButton(actionType); }
public WindowLevelPropertiesDialog(MainForm owner, MedicalViewerCell selectedCell) { InitializeComponent(); _Viewer = owner.Viewer; if (selectedCell == null) { if (_Viewer.Cells.Count != 0) { selectedCell = (MedicalViewerCell)_Viewer.Cells[0]; } } _SelectedCell = selectedCell; if (selectedCell != null) { _txtCellIndex.Value = _Viewer.Cells.IndexOf(selectedCell); } if (selectedCell == null) { _windowLevel = MainForm.GlobalCell.GetActionProperties(MedicalViewerActionType.WindowLevel, 0) as MedicalViewerWindowLevel; _keys = MainForm.GlobalCell.GetActionKeys(MedicalViewerActionType.WindowLevel); } else { _windowLevel = selectedCell.GetActionProperties(MedicalViewerActionType.WindowLevel, 0) as MedicalViewerWindowLevel; _keys = selectedCell.GetActionKeys(MedicalViewerActionType.WindowLevel); } _cmbFillType.Items.Add(MedicalViewerLookupTableType.Linear); _cmbFillType.Items.Add(MedicalViewerLookupTableType.Logarithmic); _cmbFillType.Items.Add(MedicalViewerLookupTableType.Exponential); _cmbFillType.Items.Add(MedicalViewerLookupTableType.Sigmoid); _btnCursor.ButtonCursor = _windowLevel.ActionCursor; _lblStart.BoxColor = _windowLevel.StartColor; _lblEnd.BoxColor = _windowLevel.EndColor; _txtWidth.Value = (_windowLevel.Width == 0) ? 1 : _windowLevel.Width; _txtCenter.Value = _windowLevel.Center; int index = _cmbFillType.Items.IndexOf(_windowLevel.LookupTableType); _cmbFillType.SelectedIndex = index == -1 ? 0 : index; _txtSensitivity.Text = _windowLevel.Sensitivity.ToString(); _chkCircular.Checked = _windowLevel.CircularMouseMove; _cmbApplyToCell.SelectedIndex = 0; _cmbApplyToSubCell.SelectedIndex = 0; owner.AddKeysToCombo(_cmbLeftKey, _keys.MouseLeft); owner.AddKeysToCombo(_cmbRightKey, _keys.MouseRight); owner.AddKeysToCombo(_cmbBottomKey, _keys.MouseDown); owner.AddKeysToCombo(_cmbTopKey, _keys.MouseUp); owner.AddModifiersToCombo(_cmbModifiers, _keys.Modifiers); _cmbApplyToCell.Enabled = (owner.Viewer.Cells.Count != 0); }
private void InitializeMedicalViewer() { MedicalViewerCell cell = createNewCell(); _MedicalViewer = new MedicalViewer(1, 1); _MedicalViewer.Dock = DockStyle.Fill; _MedicalViewer.SplitterStyle = MedicalViewerSplitterStyle.None; _MedicalViewer.Cells.Add(cell); splitContainer.Panel2.Controls.Add(_MedicalViewer); }
public LayoutOptions(MedicalViewer viewer, MainForm form) { _viewer = viewer; _form = form; InitializeComponent(); _txtRows.Value = _viewer.Rows; _txtColumns.Value = _viewer.Columns; _interpolateAlwaysImage.Checked = _form.AlwaysInterpolate; }
public ArrowAnnotationDialog(MainForm owner) { InitializeComponent(); cell = MainForm.DefaultCell; viewer = owner.Viewer; _arrowAnnotation = (MedicalViewerAnnotationArrow)(cell.GetActionProperties(MedicalViewerActionType.AnnotationArrow)); _lblColor.BackColor = Color.FromArgb(0xff, _arrowAnnotation.AnnotationColor); _cmbApplyTo.SelectedIndex = (int)_arrowAnnotation.Flags; }
public ZoomCameraDialog(MedicalViewer control, Medical3DContainer container) { InitializeComponent(); _control = control; _container = container; _oldZoomValue = container.Camera.Zoom; _trackBarZoom.Maximum = 180; _textBoxZoom.MaximumAllowed = 180; _textBoxZoom.Value = (180 - (int)container.Camera.Zoom); _trackBarZoom.Value = _textBoxZoom.Value; }
public AdjustFusionImage(MedicalViewer viewer, MainForm form) { _viewer = viewer; _form = form; this.Shown += AdjustFusionImage_Shown; this.FormClosed += AdjustFusionImage_FormClosed; InitializeComponent(); InitializeAdjustFusionImageForm(); }
public frm_BrightnessController(DROC_Ribbon _CallForm, MedicalViewer _AcqMedicalVwr, int _CellIndex) { InitializeComponent(); this.Load += new EventHandler(frm_BrightnessController_Load); this.KeyDown += new KeyEventHandler(frm_BrightnessController_KeyDown); TrackbarBright.ValueChanged += new EventHandler(TrackbarBright_ValueChanged); TrackbarContrast.ValueChanged += new EventHandler(TrackbarContrast_ValueChanged); this.CallForm = _CallForm; this._AcqMedicalVwr = _AcqMedicalVwr; this._DcmViewerCellIndex = _CellIndex; }
public RectangleAnnotationDialog(MainForm owner) { InitializeComponent(); cell = MainForm.DefaultCell; viewer = owner.Viewer; _cmbApplyTo.SelectedIndex = 0; _rectangleAnnotation = (MedicalViewerAnnotationRectangle)(cell.GetActionProperties(MedicalViewerActionType.AnnotationRectangle)); _lblColor.BackColor = Color.FromArgb(0xff, _rectangleAnnotation.AnnotationColor); _radCenter.Checked = _rectangleAnnotation.CreateFromCenter; }
public SetActionDialog(MedicalViewer viewer, MedicalViewerActionType actionType) { _viewer = viewer; InitializeComponent(); _actionType = actionType; this.Text = "Set " + GetSeparatedText(actionType.ToString()) + " Action"; if (_viewer.IsValidForAction(actionType, MedicalViewerMouseButtons.Wheel)) { if (actionType != MedicalViewerActionType.WindowLevel && actionType != MedicalViewerActionType.Alpha) { _cmbMouseButton.Items.Insert(4, "Wheel"); } } if (_viewer.IsValidForAction(actionType, MedicalViewerActionFlags.Selected)) { _cmbApplyTo.Items.Add("Selected Cells"); _cmbApplyTo.Items.Add("All Cells"); } if (_viewer.IsValidForAction(actionType, MedicalViewerActionFlags.Selected)) { _cmbApplyingMethod.Items.Add("On Release"); } MedicalViewerActionFlags actionFlags = _viewer.GetActionFlags(actionType); if ((actionFlags | MedicalViewerActionFlags.OnRelease) == actionFlags) { _cmbApplyingMethod.SelectedIndex = 1; } else { _cmbApplyingMethod.SelectedIndex = 0; } if ((actionFlags | MedicalViewerActionFlags.Selected) == actionFlags) { _cmbApplyTo.SelectedIndex = 1; } else if ((actionFlags | MedicalViewerActionFlags.AllCells) == actionFlags) { _cmbApplyTo.SelectedIndex = 2; } else { _cmbApplyTo.SelectedIndex = 0; } _cmbMouseButton.SelectedIndex = (int)_viewer.GetActionButton(actionType); }
public RulerAnnotationDialog(MainForm owner) { InitializeComponent(); cell = MainForm.DefaultCell; viewer = owner.Viewer; _rulerAnnotation = (MedicalViewerAnnotationRuler)(cell.GetActionProperties(MedicalViewerActionType.AnnotationRuler)); _lblColor.BackColor = Color.FromArgb(0xff, _rulerAnnotation.AnnotationColor); _cmbApplyTo.SelectedIndex = (int)_rulerAnnotation.Flags; _chkSimpleRuler.Checked = _rulerAnnotation.SimpleRuler; }
private MedicalViewerMPRCell FindFirstMPRCell(MedicalViewer viewer) { foreach (Control control in viewer.Cells) { if (control is MedicalViewerMPRCell) { return((MedicalViewerMPRCell)control); } } return(null); }
public ContainerProperties(Medical3DControl control3D, MedicalViewer viewer, Medical3DContainer container) { _container = container; _control3D = control3D; _viewer = viewer; _mprCell = FindFirstMPRCell(viewer); _cell = FindFirstMultiCell(viewer); InitializeComponent(); FillDialogWithOldValues(); }
private void InitializeMedicalViewer() { MedicalViewerCell cell = new MedicalViewerCell(); cell.AddAction(MedicalViewerActionType.Stack); cell.SetAction(MedicalViewerActionType.Stack, MedicalViewerMouseButtons.Wheel, MedicalViewerActionFlags.Active); _MedicalViewer = new MedicalViewer(1, 1); _MedicalViewer.Dock = DockStyle.Fill; _MedicalViewer.SplitterStyle = MedicalViewerSplitterStyle.None; _MedicalViewer.Cells.Add(cell); tabPageViewer.Controls.Add(_MedicalViewer); }
public EllipseAnnotationDialog(MainForm owner) { InitializeComponent(); int cellIndex = owner.SearchForFirstSelected(); cell = MainForm.DefaultCell; //(MedicalViewerMultiCell)owner.Viewer.Cells[cellIndex]; viewer = owner.Viewer; _cmbApplyTo.SelectedIndex = 0; _ellipseAnnotation = (MedicalViewerAnnotationEllipse)(cell.GetActionProperties(MedicalViewerActionType.AnnotationEllipse)); _lblColor.BackColor = Color.FromArgb(0xff, _ellipseAnnotation.AnnotationColor); _radCenter.Checked = _ellipseAnnotation.CreateFromCenter; }
public OpacityDialog(MedicalViewer control, Medical3DContainer container) { InitializeComponent(); _viewer = control; MedicalViewer3DCell cell3D = (MedicalViewer3DCell)_viewer.Cells[0]; _container = container; _oldOpacityValue = container.Objects[cell3D.Container.CurrentObjectIndex].Opacity; _trackBarOpacity.Maximum = 100; _textBoxOpacity.MaximumAllowed = 100; _textBoxOpacity.Value = (int)container.Objects[cell3D.Container.CurrentObjectIndex].Opacity; _trackBarOpacity.Value = _textBoxOpacity.Value; }
public RotateDialog(MedicalViewer control, Medical3DContainer container, ItemType type, int objectIndex) { InitializeComponent(); _type = type; _control = control; _container = container; _objectIndex = objectIndex; _oldPoint = new Medical3DPoint(); switch (type) { case ItemType.Camera: Text = "Rotate Camera Dialog"; _textBoxX.MinimumAllowed = -180; _textBoxY.MinimumAllowed = -90; _textBoxZ.MinimumAllowed = 0; _textBoxX.MaximumAllowed = 180; _textBoxY.MaximumAllowed = 90; _textBoxZ.MaximumAllowed = 360; _trackBarX.Minimum = -180; _trackBarY.Minimum = -90; _trackBarZ.Minimum = 0; _trackBarX.Maximum = 180; _trackBarY.Maximum = 90; _trackBarZ.Maximum = 360; _oldPoint.X = container.Camera.XRotation; _oldPoint.Y = container.Camera.YRotation; _oldPoint.Z = container.Camera.AxialRotation; break; case ItemType.Object: Text = "Rotate Object Dialog"; _oldPoint.X = container.Objects[objectIndex].XRotation; _oldPoint.Y = container.Objects[objectIndex].YRotation; _oldPoint.Z = container.Objects[objectIndex].ZRotation; break; } _textBoxX.Value = (int)_oldPoint.X; _textBoxY.Value = (int)_oldPoint.Y; _textBoxZ.Value = (int)_oldPoint.Z; }
public OffsetPropertiesDialog(MainForm owner, MedicalViewerCell selectedCell) { InitializeComponent(); _Viewer = owner.Viewer; if (selectedCell == null) { if (_Viewer.Cells.Count != 0) { selectedCell = (MedicalViewerCell)_Viewer.Cells[0]; } } _SelectedCell = selectedCell; if (selectedCell != null) { _txtCellIndex.Value = _Viewer.Cells.IndexOf(selectedCell); } if (_SelectedCell != null) { _offset = (MedicalViewerOffset)(_SelectedCell.GetActionProperties(MedicalViewerActionType.Offset, _txtCellIndex.Value)); _keys = _SelectedCell.GetActionKeys(MedicalViewerActionType.Offset); } else { _offset = (MedicalViewerOffset)(MainForm.DefaultCell.GetActionProperties(MedicalViewerActionType.Offset, _txtCellIndex.Value)); _keys = MainForm.DefaultCell.GetActionKeys(MedicalViewerActionType.Offset); } _btnActionCursor.ButtonCursor = _offset.ActionCursor; _cmbApplyToCell.SelectedIndex = 0; _txtX.Value = _offset.X; _txtY.Value = _offset.Y; _txtSensitivity.Value = _offset.Sensitivity; _chkCircular.Checked = _offset.CircularMouseMove; owner.AddKeysToCombo(_cmbLeftKey, _keys.MouseLeft); owner.AddKeysToCombo(_cmbRightKey, _keys.MouseRight); owner.AddKeysToCombo(_cmbBottomKey, _keys.MouseDown); owner.AddKeysToCombo(_cmbTopKey, _keys.MouseUp); owner.AddModifiersToCombo(_cmbModifiers, _keys.Modifiers); _cmbApplyToCell.Enabled = (owner.Viewer.Cells.Count != 0); }
/// <summary> /// Xoay ảnh theo một góc cho trước /// </summary> /// <param name="_medicalVw"></param> /// <param name="Angle">giá trị góc cần xoay. Nếu mang giá trị>0 là xoay theo chiều kim đồng hồ. nhỏ hơn 0=cùng chiều kim đồng hồ</param> private void Rotate(MedicalViewer _medicalVw, int Angle, bool ApplyAllSubcells) { _DicomMedicalViewer.Rotate(Angle, ApplyAllSubcells); }
void ShowWindowLeveling(MedicalViewer _mecViewer) { try { if (!_DicomMedicalViewer.IsValidCell()) return; RasterImage Img = _CurrCell.Image; RasterWindowLevelDialog windowLevelDlg = new RasterWindowLevelDialog(); int lookupSize; MinMaxBitsCommand minMaxBits = new MinMaxBitsCommand(); MinMaxValuesCommand minMaxValues = new MinMaxValuesCommand(); RasterColor[] lookupTable; minMaxBits.Run(Img); minMaxValues.Run(Img); lookupSize = (1 << (minMaxBits.MaximumBit - minMaxBits.MinimumBit + 1)); lookupTable = new RasterColor[lookupSize]; windowLevelDlg.Image = Img; windowLevelDlg.ShowPreview = true; windowLevelDlg.ShowRange = true; windowLevelDlg.ShowZoomLevel = true; windowLevelDlg.ZoomToFit = true; windowLevelDlg.LowBit = minMaxBits.MinimumBit; windowLevelDlg.HighBit = minMaxBits.MaximumBit;// > 4998 ? 4998 : minMaxBits.MaximumBit; windowLevelDlg.High = minMaxValues.MaximumValue;//> 4998 ? 4998 : minMaxValues.MaximumValue; windowLevelDlg.Low = minMaxValues.MinimumValue; windowLevelDlg.High = minMaxValues.MaximumValue; windowLevelDlg.WindowLevelFlags = RasterPaletteWindowLevelFlags.Inside | RasterPaletteWindowLevelFlags.Linear | RasterPaletteWindowLevelFlags.DicomStyle; windowLevelDlg.LookupTable = lookupTable; windowLevelDlg.Signed = Img.Signed; switch (Img.GrayscaleMode) { case RasterGrayscaleMode.OrderedNormal: { windowLevelDlg.StartColor = new RasterColor(0, 0, 0); windowLevelDlg.EndColor = new RasterColor(255, 255, 255); break; } case RasterGrayscaleMode.OrderedInverse: { windowLevelDlg.StartColor = new RasterColor(255, 255, 255); windowLevelDlg.EndColor = new RasterColor(0, 0, 0); break; } case RasterGrayscaleMode.NotOrdered: { windowLevelDlg.StartColor = new RasterColor(0, 0, 0); windowLevelDlg.EndColor = new RasterColor(255, 255, 255); break; } default: { MessageBox.Show(Owner, "Window Level is not supported for this bitmap order", "Window Level Error", MessageBoxButtons.OK); //_menuItemColorWindowLevel.Enabled = false; return; } } if (windowLevelDlg.ShowDialog(Owner) == DialogResult.OK) { RasterPalette.WindowLevelFillLookupTable(lookupTable, windowLevelDlg.StartColor, windowLevelDlg.EndColor, windowLevelDlg.Low, windowLevelDlg.High, windowLevelDlg.LowBit, windowLevelDlg.HighBit, minMaxValues.MinimumValue, minMaxValues.MaximumValue, windowLevelDlg.Factor, windowLevelDlg.WindowLevelFlags | (windowLevelDlg.Signed ? RasterPaletteWindowLevelFlags.Signed : RasterPaletteWindowLevelFlags.None)); Img.WindowLevel(windowLevelDlg.LowBit, windowLevelDlg.HighBit, lookupTable, RasterWindowLevelMode.PaintAndProcessing); _CurrCell.Image = Img.CloneAll(); _DicomMedicalViewer.try2FreeImage(ref Img); } } catch (Exception ex) { //Messager.ShowError(this, ex); } finally { // UpdateControls(); } }
private void DeleteCurrentImg(MedicalViewer _MecVwr, int _Idx) { _DicomMedicalViewer.DeleteCurrentImg(); }
void AddNewMecicalViewerCell(MedicalViewer _viewer, MedicalViewerMultiCell _cell) { try { if (_viewer.InvokeRequired) { _viewer.Invoke(new AddCell_temp(AddNewMecicalViewerCell), new object[] { _viewer, _cell }); } else _viewer.Cells.Add(_cell); } catch { } }
/// <summary> /// Hàm thực hiện cắt ảnh theo một hình chữ nhật cho trước /// </summary> /// <param name="_MecVwr"></param> /// <param name="_Idx"></param> /// <param name="IsCropping"></param> /// <param name="filePath"></param> /// <param name="img"></param> public void CropImage(MedicalViewer _MecVwr, int _Idx, ref bool IsCropping, string filePath) { _DicomMedicalViewer.CropImage(ref IsCropping, filePath); }
/// <summary> /// Thay đổi Lable mô tả vị trí chụp của ảnh đang xem là L(Left) hoặc R(Right) /// </summary> /// <param name="_mecV">MedicalViewer</param> /// <param name="_Idx">MedicalViewerCel Index</param> /// <param name="NewSymbol">L or R</param> void ChangeSymBol(MedicalViewer _mecV, int _Idx, string NewSymbol) { try { if (!_DicomMedicalViewer.IsValidCell()) return; // if (_DicomMedicalViewer._IsCropping) cmdAcqCrop_Click(cmdAcqCrop, new EventArgs()); _DicomMedicalViewer.CreateDefaultAnnotationOnImage( Color.White, Color.Black, NewSymbol); } catch { } finally { _DicomMedicalViewer.FocusCell(); } }
/// <summary> /// Tạo một số thông tin về BN lên ảnh để realizeAnnotation trước khi in ra Film như Tên, tuổi BN,... /// </summary> /// <param name="_mecV"></param> /// <param name="foreColor"></param> /// <param name="BackColor"></param> /// <param name="HospitalName"></param> /// <param name="PName"></param> /// <param name="AgeAndSex"></param> /// <param name="dateCreated"></param> void CreateDefaultAnnotationOnImage(MedicalViewer _mecV, Color foreColor, Color BackColor, string HospitalName, string DepartmentName, string ID_Name_Age_Sex, string dateCreated) { _DicomMedicalViewer.CreateDefaultAnnotationOnImage(foreColor, BackColor, HospitalName, DepartmentName, ID_Name_Age_Sex, dateCreated); }
/// <summary> /// Thiết lập Action cho chuột thực hiện một số thao tác nhanh như phóng to thu nhỏ hoặc điều chỉnh windowlevel /// </summary> /// <param name="_Mecvwr"></param> /// <param name="_Idx"></param> /// <param name="sender"></param> /// <param name="actionType"></param> /// <param name="MouseButton"></param> void SetAction(MedicalViewer _Mecvwr, int _Idx, object sender, MedicalViewerActionType actionType, MedicalViewerMouseButtons MouseButton) { _DicomMedicalViewer.SetAction(_DicomMedicalViewer._CurrCell, sender,actionType, MouseButton); }
/// <summary> /// Áp dụng RasterCommand cho ảnh(Flip,Crop,Invert,...) /// </summary> /// <param name="_medicalVw"></param> /// <param name="command"></param> public void ApplyFilter(MedicalViewer _medicalVw, RasterCommand command) { _DicomMedicalViewer.ApplyFilter(command, false); }