LEADTOOLS Medical

フレームを表示
  1. メニューからファイル->新規作成->プロジェクトを選択します。
  2. [新しいプロジェクト]ダイアログボックスの[プロジェクトの種類]リストから[Visual C#]または[Visual Basic]を選択し、[テンプレート]リストで[クラスライブラリ]を選択します。
  3. [プロジェクト名]フィールドに「サンプルアドイン」と入力して、[OK]をクリックしま。必要であれば、プロジェクトの新しい場所を入力するか、ブラウズボタンを用いてディレクトリを選択します、そして、OKを選択します。
  4. ソリューションエクスプローラー」ウィンドウでは、「参照」フォルダを右クリックします、そして、コンテキストメニューから「参照の追加...」を選択します。「参照の追加」ダイアログボックスでは、「閲覧」タブを選択して、.NET「C:\LEADTOOLS 19\Bin\DotNet\Win32」フォルダのためにLeadtoolsに閲覧して、以下のDLLSを選択します:
    • Leadtools.dll
    • Leadtools.Dicom.dll
    • Leadtools.Dicom.AddIn.dll
    • Microsoft.Practices.Unity
  5. [OK]をリックして上記のDLLをアプリケーションに追加します。
  6. ソリューションエクスプローラー」ウィンドウ右クリック「SampleAddIn」と選ばれたaddで->コンテキストメニューからのクラス。[新しい項目の追加]ダイアログで、[ファイル名]フィールドに「Module.cs」と入力します。[追加]をクリックしてクラスをプロジェクトに追加します。
  7. Module.csファイルを開き、以下のusingステートメントを追加します。

    [C#]

    
                using Leadtools.Dicom.AddIn;
                using Leadtools.Dicom.AddIn.Attributes;
                using System.IO;
                
    
  8. 下記の通りモジュールクラスを定義します:

    [C#]

    
                public class Module : ModuleInit
                {
                   private static string _ImageDirectory = string.Empty;
                   public static string ImageDirectory
                   {
                      get
                      {
                         return _ImageDirectory;
                      }
                   }
                   
                   public override void Load(string ServiceDirectory, string DisplayName)
                   {
                      string dir = ServiceDirectory + @"\Images\";
                      if(!Directory.Exists(dir))
                         Directory.CreateDirectory(dir);
                      
                      _ImageDirectory = dir;
                   }
                }       
                
    
    このアドインがロードするとき、ロード関数はLEADTOOLS PACSフレームワークによって呼び出されます。このクラスは、イメージディレクトリを調べます。ディレクトリが存在しないならば、それはアドインによって作成されます。
  9. [ソリューションエクスプローラ]ウィンドウで[Class1.cs]を右クリックし、コンテキストメニューから[名前の変更]をクリックします。「CStoreAddIn.cs」と入力して[Enter]キーを押します。
  10. CStoreAddIn.csファイルを開き、以下のusingステートメントを追加します。

    [C#]

    
                using Leadtools.Dicom;
                using Leadtools.Dicom.AddIn;
                using Leadtools.Dicom.AddIn.Interfaces;
                using Microsoft.Practices.Unity;
                
    
  11. CStoreAddInクラス導出リストに、IProcessCStoreを追加します。クラスは、以下のように見えなければなりません:

    [C#]

    
                public class CStoreAddIn : IProcessCStore
                {
                }       
                
    
  12. IProcessCStoreを右クリックして、「道具インターフェース」を選択します-> コンテキストメニューからの道具インターフェース」。クラスは、以下の通りにここで見えなければなりません:

    [C#]

    
                [DicomAddInAttribute("CStore","1.0.0.0",Description="DICOM Storage",Author="")]
                public class CStoreAddIn : IProcessCStore
                {
                   #region IProcessCStore Members
                   public DicomCommandStatusType OnStore(DicomClient Client, byte PresentationId, int MessageId, string AffectedClass, string Instance, DicomCommandPriorityType Priority, string MoveAE, int MoveMessageId, DicomDataSet Request)
                   {
                      throw new NotImplementedException();
                   }
                   
                   #endregion
                   #region IProcessBreak Members
                   public void Break(BreakType type)
                   {
                      throw new NotImplementedException();
                   }
                   #endregion
                }
                
    
  13. 何に興味があるかについて、サーバに話すために、OnStoreメソッドのためにPresentationContextAttributesを指定する必要があります。これは、クライアント接続とき、サーバが使用のためにアソシエーションを造るのを許可します。このサンプルのために、CT画像を保存するだけです。そのため、OnStoreメソッドに以下の属性を入力します。

    [C#]

    
                [PresentationContext(DicomUidType.CTImageStorage, 
                DicomUidType.ImplicitVRLittleEndian,
                DicomUidType.JPEG2000,
                DicomUidType.JPEG2000LosslessOnly,
                DicomUidType.JPEGBaseline1,
                DicomUidType.JPEGExtended2_4,
                DicomUidType.ExplicitVRBigEndian,
                DicomUidType.ExplicitVRLittleEndian,
                DicomUidType.JPEGLosslessNonhier14,                                                 
                DicomUidType.JPEGLosslessNonhier14B)]
                public DicomCommandStatusType OnStore(DicomClient Client, byte PresentationId, int MessageId, string AffectedClass, string Instance, DicomCommandPriorityType Priority, string MoveAE, int MoveMessageId, DicomDataSet Request)
                
    
    これは、上記の転送構文でCT画像を保存することを可能にします。
  14. ディスクにimageを保存するために、OnStoreメソッドにcodeを追加します。OnStoreメソッドは、以下のように見えなければなりません:

    [C#]

    
                public DicomCommandStatusType OnStore(DicomClient Client, byte PresentationId, int MessageId, string AffectedClass, string Instance, DicomCommandPriorityType Priority, string MoveAE, int MoveMessageId, DicomDataSet Request)
                {
                   DicomCommandStatusType status = DicomCommandStatusType.Success;
                   try
                   {
                      if(Request!=null)
                      {
                         string sop = Request.GetValue(DicomTag.SOPInstanceUID, string.Empty);
                         if(string.IsNullOrEmpty(sop))
                            status = DicomCommandStatusType.ProcessingFailure;
                         else
                         {
                            string file = string.Format("{0}{1}.dic", Module.ImageDirectory,sop);
                            Request.Save(file, DicomDataSetSaveFlags.None);
                         }
                      }
                   }
                   catch(Exception e)
                   {
                      status = DicomCommandStatusType.ProcessingFailure;
                   }
                   return status;
                }       
                
    
  15. クラスライブラリをビルドし、生成されたクラスライブラリファイルを以前に作成したサーバーのAddInディレクトリーに配置します。
  16. サーバが実行しているならば、それを停止します。サーバを開始します。
  17. 接続して、CT画像を保存します。