LEADTOOLS Medical(Leadtools.Dicomアセンブリ)

フレームを表示

ロード(String、DicomDataSetLoadFlags)メソッド








ロードされるためにデータセットを格納するファイルの名前。
メタヘッダーはフラグを立てます、そして、ファイルをロードするとき、使用にファイル特性を示す転送構文はフラグを立てます。
データセットをディスクファイルからロードします。
構文
public virtual void Load( 
   string name,
   DicomDataSetLoadFlags flags
)
'Declaration
 
Public Overloads Overridable Sub Load( _
   ByVal name As String, _
   ByVal flags As DicomDataSetLoadFlags _
) 
'Usage
 
Dim instance As DicomDataSet
Dim name As String
Dim flags As DicomDataSetLoadFlags
 
instance.Load(name, flags)
public virtual void Load( 
   string name,
   DicomDataSetLoadFlags flags
)
public void load(String file, /*DicomDataSetLoadFlags*/ int flags)
 function Leadtools.Dicom.DicomDataSet.Load(String,DicomDataSetLoadFlags)( 
   name ,
   flags 
)
public:
virtual void Load( 
   String^ name,
   DicomDataSetLoadFlags flags
) 

パラメーター

名前
ロードされるためにデータセットを格納するファイルの名前。
フラグ
メタヘッダーはフラグを立てます、そして、ファイルをロードするとき、使用にファイル特性を示す転送構文はフラグを立てます。
解説
ファイルの特定の特性を知っているならば、フラグにおけるそれを設定することができます。設定しない任意の特徴は、自動的に決定されます。たとえば、それを知っているならば、メタヘッダーは存在します、しかし、バイトオーダーを知りません、または、値表現が黙示的であるか明示的であるかどうかにかかわらず、フラグDicomDataSetLoadFlags.MetaHeaderPresentだけを設定することができます。ロードの間、LEADTOOLSはバイトオーダーを決定します、そして、byteが注文するかどうかは黙示的であるか明示的です。

ファイルの特性の何も知らないならば、フラグDicomDataSetLoadFlags.Noneに設定します、そして、LEADTOOLSは自動的にすべてのファイル特性を決定して、それに応じてファイルをロードします。

DicomDataSetLoadFlags.LoadAndCloseフラグに含まれないならば、オブジェクトが破壊されるまで、ファイルはオープンなままです、または、以下のメソッドの1つは呼び出されます:リセット初期化またはロード(再び)。LoadAndCloseが大きなイメージのために使われるならば、それはパフォーマンスを減速するかもしれません;しかし、ファイルハンドルは公表されます。Noneに設定されるならば、大きなイメージは速くロードします、そして、image横断はすぐに始まることができます。しかし、ファイルハンドルが公表されるまで、何もimageにされることができません。

メモリからデータセットをロードするために、ロードを呼び出します。

サンプル

このサンプルはDICOMデータセットをロードして、すべてのその要素を列挙します。

Copy Code  
Imports Leadtools
Imports Leadtools.Dicom

<TestMethod()> _
Public Sub LoadEnumerateSample()
   Dim dicomFileName As String = Path.Combine(LEAD_VARS.ImagesDir, "IMAGE3.dcm")
   'Make sure to initialize the DICOM engine, this needs to be done only once 
   'In the whole application
   DicomEngine.Startup()
   Dim ds As DicomDataSet = New DicomDataSet()
   Using (ds)
      'Load DICOM File
      ds.Load(dicomFileName, DicomDataSetLoadFlags.None)
      'Insert patient name element, if it doesn't already exist
      Dim element As DicomElement = ds.FindFirstElement(Nothing, DicomTag.PatientName, False)
      If element Is Nothing Then
         element = ds.InsertElement(Nothing, False, DicomTag.PatientName, DicomVRType.PN, False, 0)
      End If
      'The dataset should include the patient name element or an error occurred
      element = ds.FindLastElement(Nothing, DicomTag.PatientName, False)
      Debug.Assert(Not element Is Nothing)
      'There can be only one patient element in the root level
      element = ds.FindPreviousElement(Nothing, False)
      Debug.Assert(element Is Nothing)
      element = ds.FindNextElement(Nothing, False)
      Debug.Assert(element Is Nothing)
      element = ds.FindFirstElement(Nothing, DicomTag.PatientName, False)
      'Since the patient name element is in the root level,
      'GetRootElement will return the same element.
      Dim element1 As DicomElement = ds.GetRootElement(element)
      Debug.Assert((element1.Tag = element.Tag), "GetRootElement should return same element")

      'Since the patient name element has no parent then GetParentElement will return null
      element1 = ds.GetParentElement(element)
      Debug.Assert(element1 Is Nothing, "GetParentElement should return null")

      'Since the patient name element has no children then GetChildElement will return null
      element1 = ds.GetChildElement(element, False)
      Debug.Assert(element1 Is Nothing, "GetChildElement should return null")

      element1 = ds.GetFirstElement(element, False, False)
      Debug.Assert(Not element1 Is Nothing, "GetFirstElement Can't return null in this case")

      element1 = ds.GetLastElement(element, False, False)
      Debug.Assert(Not element1 Is Nothing, "GetLastElement Can't return null in this case")

      element1 = ds.GetPreviousElement(element, False, True)
      Dim element2 As DicomElement = ds.GetNextElement(element, False, True)

      Debug.Assert(ds.GetElementLevel(element) = 0)

      Debug.Assert(ds.ExistsElement(element))
      Debug.Assert(ds.IsVolatileElement(element) = False)

      'Patient Name is not the only element in this level
      Debug.Assert((Not element1 Is Nothing) AndAlso (Not element2 Is Nothing))
      'Delete the patient name element
      ds.DeleteElement(element)
   End Using
   DicomEngine.Shutdown()
End Sub

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

[TestMethod]
public void LoadEnumerateSample()
{
   string dicomFileName = Path.Combine(LEAD_VARS.ImagesDir, "IMAGE3.dcm");
   //Make sure to initialize the DICOM engine, this needs to be done only once 
   //In the whole application
   DicomEngine.Startup();
   using (DicomDataSet ds = new DicomDataSet())
   {
      //Load DICOM File
      ds.Load(dicomFileName, DicomDataSetLoadFlags.None);
      //Insert patient name element, if it doesn't already exist
      DicomElement element = ds.FindFirstElement(null, DicomTag.PatientName, false);
      if (element == null)
      {
         element = ds.InsertElement(null, false, DicomTag.PatientName, DicomVRType.PN, false, 0);
      }
      //The dataset should include the patient name element or an error occurred
      element = ds.FindLastElement(null, DicomTag.PatientName, false);
      Debug.Assert(element != null);
      //There can be only one patient element in the root level
      element = ds.FindPreviousElement(null, false);
      Debug.Assert(element == null);
      element = ds.FindNextElement(null, false);
      Debug.Assert(element == null);
      element = ds.FindFirstElement(null, DicomTag.PatientName, false);
      //Since the patient name element is in the root level,
      //GetRootElement will return the same element.
      DicomElement element1 = ds.GetRootElement(element);
      Debug.Assert((element1.Tag == element.Tag), "GetRootElement should return same element");

      //Since the patient name element has no parent then GetParentElement will return null
      element1 = ds.GetParentElement(element);
      Debug.Assert(element1 == null, "GetParentElement should return null");

      //Since the patient name element has no children then GetChildElement will return null
      element1 = ds.GetChildElement(element, false);
      Debug.Assert(element1 == null, "GetChildElement should return null");

      element1 = ds.GetFirstElement(element, false, false);
      Debug.Assert(element1 != null, "GetFirstElement Can't return null in this case");

      element1 = ds.GetLastElement(element, false, false);
      Debug.Assert(element1 != null, "GetLastElement Can't return null in this case");

      element1 = ds.GetPreviousElement(element, false, true);
      DicomElement element2 = ds.GetNextElement(element, false, true);

      Debug.Assert(ds.GetElementLevel(element) == 0);

      Debug.Assert(ds.ExistsElement(element));
      Debug.Assert(ds.IsVolatileElement(element) == false);

      //Patient Name is not the only element in this level
      Debug.Assert((element1 != null) && (element2 != null));
      //Delete the patient name element
      ds.DeleteElement(element);
   }
   DicomEngine.Shutdown();
}

static class LEAD_VARS
{
public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images";
}
using Leadtools;
using Leadtools.Dicom;
using Leadtools.Examples;

public void LoadEnumerateSample(Stream dicomStream)
{
   //Make sure to initialize the DICOM engine, this needs to be done only once 
   //In the whole application
   DicomEngine.Startup();
   using (DicomDataSet ds = new DicomDataSet())
   {
      //Load DICOM File
      ds.Load(dicomStream, DicomDataSetLoadFlags.None);
      //Insert patient name element, if it doesn't already exist
      DicomElement element = ds.FindFirstElement(null, DicomTag.PatientName, false);
      if (element == null)
      {
         element = ds.InsertElement(null, false, DicomTag.PatientName, DicomVRType.PN, false, 0);
      }
      //The dataset should include the patient name element or an error occurred
      element = ds.FindLastElement(null, DicomTag.PatientName, false);
      Debug.Assert(element != null);
      //There can be only one patient element in the root level
      element = ds.FindPreviousElement(null, false);
      Debug.Assert(element == null);
      element = ds.FindNextElement(null, false);
      Debug.Assert(element == null);
      element = ds.FindFirstElement(null, DicomTag.PatientName, false);
      //Since the patient name element is in the root level,
      //GetRootElement will return the same element.
      DicomElement element1 = ds.GetRootElement(element);
      Debug.Assert((element1.Tag == element.Tag), "GetRootElement should return same element");

      //Since the patient name element has no parent then GetParentElement will return null
      element1 = ds.GetParentElement(element);
      Debug.Assert(element1 == null, "GetParentElement should return null");

      //Since the patient name element has no children then GetChildElement will return null
      element1 = ds.GetChildElement(element, false);
      Debug.Assert(element1 == null, "GetChildElement should return null");

      element1 = ds.GetFirstElement(element, false, false);
      Debug.Assert(element1 != null, "GetFirstElement Can't return null in this case");

      element1 = ds.GetLastElement(element, false, false);
      Debug.Assert(element1 != null, "GetLastElement Can't return null in this case");

      element1 = ds.GetPreviousElement(element, false, true);
      DicomElement element2 = ds.GetNextElement(element, false, true);

      Debug.Assert(ds.GetElementLevel(element) == 0);

      Debug.Assert(ds.ExistsElement(element));
      Debug.Assert(ds.IsVolatileElement(element) == false);

      //Patient Name is not the only element in this level
      Debug.Assert((element1 != null) && (element2 != null));
      //Delete the patient name element
      ds.DeleteElement(element);
   }
   DicomEngine.Shutdown();
}
Imports Leadtools
Imports Leadtools.Dicom

Public Sub LoadEnumerateSample(ByVal dicomStream As Stream)
   'Make sure to initialize the DICOM engine, this needs to be done only once 
   'In the whole application
   DicomEngine.Startup()
   Using ds As DicomDataSet = New DicomDataSet()
      'Load DICOM File
      ds.Load(dicomStream, DicomDataSetLoadFlags.None)
      'Insert patient name element, if it doesn't already exist
      Dim element As DicomElement = ds.FindFirstElement(Nothing, DicomTag.PatientName, False)
      If element Is Nothing Then
         element = ds.InsertElement(Nothing, False, DicomTag.PatientName, DicomVRType.PN, False, 0)
      End If
      'The dataset should include the patient name element or an error occurred
      element = ds.FindLastElement(Nothing, DicomTag.PatientName, False)
      Debug.Assert(Not element Is Nothing)
      'There can be only one patient element in the root level
      element = ds.FindPreviousElement(Nothing, False)
      Debug.Assert(element Is Nothing)
      element = ds.FindNextElement(Nothing, False)
      Debug.Assert(element Is Nothing)
      element = ds.FindFirstElement(Nothing, DicomTag.PatientName, False)
      'Since the patient name element is in the root level,
      'GetRootElement will return the same element.
      Dim element1 As DicomElement = ds.GetRootElement(element)
      Debug.Assert((element1.Tag = element.Tag), "GetRootElement should return same element")

      'Since the patient name element has no parent then GetParentElement will return null
      element1 = ds.GetParentElement(element)
      Debug.Assert(element1 Is Nothing, "GetParentElement should return null")

      'Since the patient name element has no children then GetChildElement will return null
      element1 = ds.GetChildElement(element, False)
      Debug.Assert(element1 Is Nothing, "GetChildElement should return null")

      element1 = ds.GetFirstElement(element, False, False)
      Debug.Assert(Not element1 Is Nothing, "GetFirstElement Can't return null in this case")

      element1 = ds.GetLastElement(element, False, False)
      Debug.Assert(Not element1 Is Nothing, "GetLastElement Can't return null in this case")

      element1 = ds.GetPreviousElement(element, False, True)
      Dim element2 As DicomElement = ds.GetNextElement(element, False, True)

      Debug.Assert(ds.GetElementLevel(element) = 0)

      Debug.Assert(ds.ExistsElement(element))
      Debug.Assert(ds.IsVolatileElement(element) = False)

      'Patient Name is not the only element in this level
      Debug.Assert((Not element1 Is Nothing) AndAlso (Not element2 Is Nothing))
      'Delete the patient name element
      ds.DeleteElement(element)
   End Using
   DicomEngine.Shutdown()
End Sub
必要条件

ターゲットプラットホーム

参照

参照

DicomDataSetクラス
DicomDataSetメンバ
オーバーロードリスト
ロード(IntPtr、Int64、DicomDataSetFlags)メソッド
メソッドを保存します(String、DicomDataSetSaveFlags)

Leadtools.Dicomは、Medicalツールキットサーバのライセンスと、解除キーが必要です。詳細は、以下を参照してください。Imaging Pro/Document/Medicalの機能