如何使用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方法
答案 0 :(得分:0)
只是一个想法,OnStart
是一个事件;如果您可以提供StudyLoaderArgs
某些方法,那么您可以使用Init(ApplicationEntity)
方法移动代码并将其称为如下:
Init(myStudyArgs);
和OnStart
:
protected override int OnStart(StudyLoaderArgs studyLoaderArgs)
{
Init(StudyLoaderArgs.Server as ApplicationEntity);
}
<强> - 编辑 - 强>
在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);
}
}
从Init()
OnStart()
protected override int OnStart(StudyLoaderArgs studyLoaderArgs) { ApplicationEntity ae = studyLoaderArgs.Server作为ApplicationEntity; _ae = ae; 初始化(AE); }
OnStart()
是一个事件,将在服务(假设它是服务)启动时调用。更具体地说,事件不在那里被召唤,而是事件被提出作为发生某事的通知;我们所做的只是处理事件;即将方法注册为该事件的处理程序,然后在每次引发事件时调用该方法。
因此,要达到您想要的效果,您可以拨打Init()
而不是OnStart()
;但要调用Init()
,你必须提供输入参数,这是我的第一句话所说的 - 或者它类似于OnStart(EventArgs.Empty);
不确定这是否能回答你的问题,但是在我的头骨上方! (0: