[英]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);
}
- 編輯 -
在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); }
}
從OnStart()
調用Init()
OnStart()
受保護的重寫int OnStart(StudyLoaderArgs studyLoaderArgs){ApplicationEntity ae = studyLoaderArgs.Server as ApplicationEntity; _ae = ae; 初始化(ae); }
OnStart()
是一個事件,將在service(假設它是服務)啟動時被調用。 更具體地說,事件不是要被調用的,而是將事件作為已發生的通知來引發。 我們要做的就是處理事件; 例如,將一個方法注冊為該事件的處理程序,然后在每次引發該事件時都將調用該方法。
因此,要實現您想要的目標,可以調用Init()
而不是OnStart()
; 但是要調用Init()
您將必須提供輸入參數,這就是我的第一句話所說的-或類似OnStart(EventArgs.Empty);
類的東西OnStart(EventArgs.Empty);
不知道這是否能回答您的問題,但是在我的頭頂上方! (0:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.