Error processing SSI file
LEADTOOLS Medical (Leadtools.Medical3D assembly)

Show in webframe

SaveState Method






The file name for which the state data will be saved.
Saves the object status to a file.
Syntax
public void SaveState( 
   string fileName
)
'Declaration
 
Public Sub SaveState( _
   ByVal fileName As String _
) 
'Usage
 
Dim instance As Medical3DObject
Dim fileName As String
 
instance.SaveState(fileName)

            

            
public:
void SaveState( 
   String^ fileName
) 

Parameters

fileName
The file name for which the state data will be saved.
Remarks
Example
Copy Code  
Imports Leadtools
Imports Leadtools.Codecs
Imports Leadtools.MedicalViewer
Imports Leadtools.Medical3D

<TestMethod>
Public Sub Medical3DControlExample()
   Dim LoadObject As Medical3DLoadDICOMSeriesExamples = New Medical3DLoadDICOMSeriesExamples()
   Dim output As MedicalViewerSeriesManager = LoadObject.LoadJamesHead()
   Dim form As MainForm1 = New MainForm1(output)
   form.ShowDialog()
End Sub

' MainForm1 will be the owner of the medical viewer control.
Private Class MainForm1 : Inherits Form
   Private _medical3DControl As Medical3DControl

   Public Sub New(ByVal output As MedicalViewerSeriesManager)
      Dim _codecs As RasterCodecs = New RasterCodecs()
      Dim _image As RasterImage

      Dim codecsInformation As CodecsImageInfo

      _medical3DControl = New Medical3DControl()
      AddHandler SizeChanged, AddressOf MainForm1_SizeChanged
      AddHandler FormClosing, AddressOf MainForm1_FormClosing


      _medical3DControl.ObjectsContainer.Objects.Add(New Medical3DObject())

      Dim index As Integer

      codecsInformation = _codecs.GetInformation(CStr(output.Stacks(0).Items(0).Data), True)


      Dim width As Integer = codecsInformation.Width
      Dim height As Integer = codecsInformation.Height
      Dim depth As Integer = 256

      _medical3DControl.ObjectsContainer.Objects(0).MemoryEfficientInit(depth)

      index = 0
      Do While index < depth

         _image = _codecs.Load(CStr(output.Stacks(0).Items(index).Data), 0, CodecsLoadByteOrder.BgrOrGrayOrRomm, 1, 1)
         _medical3DControl.ObjectsContainer.Objects(0).MemoryEfficientSetFrame(_image, index, output.Stacks(0).Items(index).ImagePosition, True)
         index += 1
      Loop

      Dim spearator As String = ("\")
      Dim test As String() = output.Stacks(0).Items(0).ImageOrientation.Split(spearator.ToCharArray())
      Dim orientation As Single() = New Single(5) {}
      Dim i As Integer
      For i = 0 To 5
         orientation(i) = CSng(Convert.ToDouble(test(i)))
      Next i

      _medical3DControl.ObjectsContainer.Objects(0).MemoryEfficientEnd(orientation, output.Stacks(0).PixelSpacing)

      Dim MinimumDensityValue As Integer = _medical3DControl.ObjectsContainer.Objects(0).MinimumValue
      Dim MaximumDensityValue As Integer = _medical3DControl.ObjectsContainer.Objects(0).MaximumValue

      ' Set 3D object Parameters to be saved
      ' Set WindowLevel
      _medical3DControl.ObjectsContainer.Objects(0).WindowLevelProperties.Center = MaximumDensityValue \ 2
      _medical3DControl.ObjectsContainer.Objects(0).WindowLevelProperties.Width = MaximumDensityValue \ 2

      ' Set Object Rotation Matrix
      _medical3DControl.ObjectsContainer.Objects(0).RotateX(100)
      _medical3DControl.ObjectsContainer.Objects(0).RotateY(20)
      _medical3DControl.ObjectsContainer.Objects(0).RotateZ(10)

      'Set Remove Density Parameters
      _medical3DControl.ObjectsContainer.Objects(0).UpperThreshold = MaximumDensityValue / 2.5F
      _medical3DControl.ObjectsContainer.Objects(0).LowerThreshold = MinimumDensityValue
      _medical3DControl.ObjectsContainer.Objects(0).RemoveInterval = Medical3DRemoveIntervalType.InnerRange
      _medical3DControl.ObjectsContainer.Objects(0).EnableThresholding = True

      'Set Slab Parameters
      _medical3DControl.ObjectsContainer.Objects(0).Slab.SetValues(0.75F, -1.0F, 0.5F, -0.5F, 1.0F, -1.0F)
      _medical3DControl.ObjectsContainer.Objects(0).Slab.Enabled = True

      Dim fileName As String = Path.Combine(LEAD_VARS.ImagesDir, "CT_PelvisState")
      _medical3DControl.ObjectsContainer.Objects(0).SaveState(fileName)

      Controls.Add(_medical3DControl)
   End Sub

   Private Sub MainForm1_FormClosing(ByVal sender As Object, ByVal e As FormClosingEventArgs)
      _medical3DControl.Dispose()
   End Sub


   Private Sub MainForm1_SizeChanged(ByVal sender As Object, ByVal e As EventArgs)
      If Not _medical3DControl Is Nothing Then
         _medical3DControl.Size = New Size(Me.ClientRectangle.Right, Me.ClientRectangle.Bottom)
      End If
   End Sub
End Class

Public NotInheritable Class LEAD_VARS
Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images"
End Class
using Leadtools;
using Leadtools.Codecs;
using Leadtools.MedicalViewer;
using Leadtools.Medical3D;

[TestMethod]
public void Medical3DControlExample()
{
    Medical3DLoadDICOMSeriesExamples LoadObject = new Medical3DLoadDICOMSeriesExamples();
    MedicalViewerSeriesManager output = LoadObject.LoadJamesHead();
    MainForm1 form = new MainForm1(output);
    form.ShowDialog();
}

// MainForm1 will be the owner of the medical viewer control.
class MainForm1 : Form
{
    private Medical3DControl _medical3DControl;

    public MainForm1(MedicalViewerSeriesManager output)
    {
        RasterCodecs _codecs = new RasterCodecs();
        RasterImage _image;

        CodecsImageInfo codecsInformation;

        _medical3DControl = new Medical3DControl();
        this.SizeChanged += new EventHandler(MainForm1_SizeChanged);
        this.FormClosing += new FormClosingEventHandler(MainForm1_FormClosing);


        _medical3DControl.ObjectsContainer.Objects.Add(new Medical3DObject());

        int index;

        codecsInformation = _codecs.GetInformation((string)output.Stacks[0].Items[0].Data, true);


        int width = codecsInformation.Width;
        int height = codecsInformation.Height;
        int depth = 256;

        _medical3DControl.ObjectsContainer.Objects[0].MemoryEfficientInit(depth);

        for (index = 0; index < depth; index++)
        {

            _image = _codecs.Load((string)output.Stacks[0].Items[index].Data, 0, CodecsLoadByteOrder.BgrOrGrayOrRomm, 1, 1);
            _medical3DControl.ObjectsContainer.Objects[0].MemoryEfficientSetFrame(_image, index, output.Stacks[0].Items[index].ImagePosition, true);
        }

        string spearator = ("\\");
        string[] test = output.Stacks[0].Items[0].ImageOrientation.Split(spearator.ToCharArray());
        float[] orientation = new float[6];
        int i;
        for (i = 0; i < 6; i++)
        {
            orientation[i] = (float)Convert.ToDouble(test[i]);
        }

        _medical3DControl.ObjectsContainer.Objects[0].MemoryEfficientEnd(orientation, output.Stacks[0].PixelSpacing);

        int MinimumDensityValue = _medical3DControl.ObjectsContainer.Objects[0].MinimumValue;
        int MaximumDensityValue = _medical3DControl.ObjectsContainer.Objects[0].MaximumValue;

        // Set 3D object Parameters to be saved
        // Set WindowLevel
        _medical3DControl.ObjectsContainer.Objects[0].WindowLevelProperties.Center = MaximumDensityValue / 2;
        _medical3DControl.ObjectsContainer.Objects[0].WindowLevelProperties.Width = MaximumDensityValue / 2;

        // Set Object Rotation Matrix
        _medical3DControl.ObjectsContainer.Objects[0].RotateX(100);
        _medical3DControl.ObjectsContainer.Objects[0].RotateY(20);
        _medical3DControl.ObjectsContainer.Objects[0].RotateZ(10);

        //Set Remove Density Parameters
        _medical3DControl.ObjectsContainer.Objects[0].UpperThreshold = MaximumDensityValue / 2.5f;
        _medical3DControl.ObjectsContainer.Objects[0].LowerThreshold = MinimumDensityValue;
        _medical3DControl.ObjectsContainer.Objects[0].RemoveInterval = Medical3DRemoveIntervalType.InnerRange;
        _medical3DControl.ObjectsContainer.Objects[0].EnableThresholding = true;

        //Set Slab Parameters
        _medical3DControl.ObjectsContainer.Objects[0].Slab.SetValues(0.75f, -1.0f, 0.5f, -0.5f, 1.0f, -1.0f);
        _medical3DControl.ObjectsContainer.Objects[0].Slab.Enabled = true;

        string fileName =Path.Combine(LEAD_VARS.ImagesDir,@"Images\CT_PelvisState");
        _medical3DControl.ObjectsContainer.Objects[0].SaveState(fileName);

        Controls.Add(_medical3DControl);
    }

    void MainForm1_FormClosing(object sender, FormClosingEventArgs e)
    {
        _medical3DControl.Dispose();
    }


    void MainForm1_SizeChanged(object sender, EventArgs e)
    {
        if (_medical3DControl != null)
            _medical3DControl.Size = new Size(this.ClientRectangle.Right, this.ClientRectangle.Bottom);
    }
}

static class LEAD_VARS
{
public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images";
}
Requirements

Target Platforms

See Also

Reference

Medical3DObject Class
Medical3DObject Members

Error processing SSI file
   Leadtools.Medical3D requires a Medical toolkit license and unlock key. For more information, refer to: LEADTOOLS Toolkit Features