2010-05-01 62 views
1

如何使用OnStart方法從REMOTE數據庫獲取數據?我如何在遠程數據庫中使用ClearCanvas?

protected override int OnStart(StudyLoaderArgs studyLoaderArgs) 
     { 
      ApplicationEntity ae = studyLoaderArgs.Server as ApplicationEntity; 
      _ae = ae; 

      EventResult result = EventResult.Success; 
      AuditedInstances loadedInstances = new AuditedInstances(); 
      try 
      { 

       XmlDocument doc = RetrieveHeaderXml(studyLoaderArgs); 
       StudyXml studyXml = new StudyXml(); 
       studyXml.SetMemento(doc); 

       _instances = GetInstances(studyXml).GetEnumerator(); 

       loadedInstances.AddInstance(studyXml.PatientId, studyXml.PatientsName, studyXml.StudyInstanceUid); 

       return studyXml.NumberOfStudyRelatedInstances; 

      } 
      finally 
      { 
       AuditHelper.LogOpenStudies(new string[] { ae.AETitle }, loadedInstances, EventSource.CurrentUser, result); 
      } 
     }

我需要在主項目使用的OnStart。如何使用cn或致電OnStart方法

回答

0

只是一個想法,OnStart是一個事件;如果你能提供一些StudyLoaderArgs如何,那麼您可以在Init(ApplicationEntity)方法將你的代碼,並調用它像以下:

Init(myStudyArgs); 

OnStart

protected override int OnStart(StudyLoaderArgs studyLoaderArgs) 
{ 
    Init(StudyLoaderArgs.Server as ApplicationEntity); 
} 

- 編輯 -

  1. 移動存在OnStart()身體在Init()

    void Init(ApplicationEntity ae) { EventResult result = EventResult.Success; AuditedInstances loadedInstances = new AuditedInstances(); 嘗試 {

    XmlDocument doc = RetrieveHeaderXml(studyLoaderArgs); 
        StudyXml studyXml = new StudyXml(); 
        studyXml.SetMemento(doc); 
    
        _instances = GetInstances(studyXml).GetEnumerator(); 
    
        loadedInstances.AddInstance(studyXml.PatientId, studyXml.PatientsName, studyXml.StudyInstanceUid); 
    
        return studyXml.NumberOfStudyRelatedInstances; 
    
    } 
    finally 
    { 
        AuditHelper.LogOpenStudies(new string[] { ae.AETitle }, loadedInstances, EventSource.CurrentUser, result); 
    } 
    

    }

  2. OnStart()呼叫Init()

    保護覆蓋INT的OnStart(StudyLoaderArgs studyLoaderArgs) { ApplicationEntity AE = studyLoaderArgs.Server作爲ApplicationEntity; _ae = ae;初始(ae); 初始(ae); }

  3. OnStart()是一個事件,並且會在服務(假設它是服務)時被調用啓動。更具體地說,事件不是要被調用的,而是事件被提出來作爲發生事件的通知;我們所做的只是處理事件;即將方法註冊爲該事件的處理程序,然後每次引發該事件時都會調用該方法。

那麼,要實現希望你願意,你可以撥打Init()而非OnStart();但打電話Init()你將不得不提供的輸入參數,這是我第一句話說什麼 - 或者它會是這樣的OnStart(EventArgs.Empty);

不知道這是否回答你的問題,但我上面的頭骨頂部! (0:

+0

我不明白KMAN;你能給我詳情嗎??? – programmerist 2010-05-01 15:29:55

+0

@程序員:請參閱我的編輯以迴應你的評論。 – 2010-05-02 12:54:34