簡體   English   中英

如何在遠程數據庫中使用ClearCanvas?

[英]How can i use ClearCanvas in remote database?

如何使用OnStart方法從REMOTE數據庫獲取數據?

 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。 我如何使用或調用OnStart方法

只是想一想, OnStart是一個事件。 如果您可以為StudyLoaderArgs提供一些操作方法,則可以在Init(ApplicationEntity)方法中移動代碼並按如下方式調用它:

Init(myStudyArgs);

並在OnStart

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

- 編輯 -

  1. Init()移動現有的OnStart()主體

    void Init(ApplicationEntity ae){EventResult結果= EventResult.Success; AuditedInstances loadInstances = 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() OnStart()

    受保護的重寫int OnStart(StudyLoaderArgs studyLoaderArgs){ApplicationEntity ae = studyLoaderArgs.Server as ApplicationEntity; _ae = ae; 初始化(ae); }

  3. OnStart()是一個事件,將在service(假設它是服務)啟動時被調用。 更具體地說,事件不是要被調用的,而是將事件作為已發生的通知來引發。 我們要做的就是處理事件; 例如,將一個方法注冊為該事件的處理程序,然后在每次引發該事件時都將調用該方法。

因此,要實現您想要的目標,可以調用Init()而不是OnStart() 但是要調用Init()您將必須提供輸入參數,這就是我的第一句話所說的-或類似OnStart(EventArgs.Empty);類的東西OnStart(EventArgs.Empty);

不知道這是否能回答您的問題,但是在我的頭頂上方! (0:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM