[英]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.