Example #1
0
        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;
            }
        }
Example #3
0
        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;
                }
            }
        }
Example #4
0
        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;
            }
        }
Example #5
0
        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;
            }
        }
Example #6
0
        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();
            }
        }
Example #7
0
        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();
            }
        }
Example #8
0
        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);
        }
Example #9
0
        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);
            }
        }
Example #11
0
        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();
        }
Example #12
0
        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);
        }
Example #14
0
        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);
        }
Example #15
0
        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);
        }
Example #16
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);
        }
Example #17
0
        public LayoutOptions(MedicalViewer viewer, MainForm form)
        {
            _viewer = viewer;
            _form   = form;

            InitializeComponent();

            _txtRows.Value    = _viewer.Rows;
            _txtColumns.Value = _viewer.Columns;
            _interpolateAlwaysImage.Checked = _form.AlwaysInterpolate;
        }
Example #18
0
        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;
        }
Example #19
0
 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;
 }
Example #20
0
        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;
 }
Example #22
0
        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;
        }
Example #23
0
        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);
        }
Example #24
0
        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;
        }
Example #25
0
        private MedicalViewerMPRCell FindFirstMPRCell(MedicalViewer viewer)
        {
            foreach (Control control in viewer.Cells)
            {
                if (control is MedicalViewerMPRCell)
                {
                    return((MedicalViewerMPRCell)control);
                }
            }

            return(null);
        }
Example #26
0
        public ContainerProperties(Medical3DControl control3D, MedicalViewer viewer, Medical3DContainer container)
        {
            _container = container;
            _control3D = control3D;
            _viewer    = viewer;

            _mprCell = FindFirstMPRCell(viewer);
            _cell    = FindFirstMultiCell(viewer);


            InitializeComponent();
            FillDialogWithOldValues();
        }
Example #27
0
        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);
        }
Example #28
0
        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;
        }
Example #29
0
        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;
        }
Example #30
0
        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;
        }
Example #31
0
        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);
        }
Example #32
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);
     
 }
Example #33
0
        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();
            }
        }
Example #34
0
 private void DeleteCurrentImg(MedicalViewer _MecVwr, int _Idx)
 {
     _DicomMedicalViewer.DeleteCurrentImg();
 }
Example #35
0
 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
     {
     }
 }
Example #36
0
 /// <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);
 }
Example #37
0
 /// <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();
     }
    
 }
Example #38
0
 /// <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);
 }
Example #39
0
 /// <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);
     
 }
Example #40
0
 /// <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);
     
 }