首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在远程数据库中使用ClearCanvas?

如何在远程数据库中使用ClearCanvas?
EN

Stack Overflow用户
提问于 2010-05-01 07:19:25
回答 1查看 199关注 0票数 1

如何使用OnStart方法从远程数据库获取数据?

代码语言:javascript
复制
 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方法

EN

回答 1

Stack Overflow用户

发布于 2010-05-01 11:54:03

简单地说,OnStart是一个事件;如果您可以为StudyLoaderArgs提供一些方法,那么您可以在Init(ApplicationEntity)方法中移动代码并调用它,如下所示:

代码语言:javascript
复制
Init(myStudyArgs);

OnStart

代码语言:javascript
复制
protected override int OnStart(StudyLoaderArgs studyLoaderArgs)
{
    Init(StudyLoaderArgs.Server as ApplicationEntity);
}

-编辑--

  1. Init()中移动现有的OnStart()主体

void (ApplicationEntity ae) { EventResult result = EventResult.Success;AuditedInstances loadedInstances =新AuditedInstances();尝试{

XmlDocument doc = RetrieveHeaderXml(studyLoaderArgs);studyXml StudyXml =新StudyXml();studyXml.SetMemento(doc);_instances = GetInstances(studyXml).GetEnumerator();_instances studyXml.PatientsName,studyXml.StudyInstanceUid);返回studyXml.NumberOfStudyRelatedInstances;}最后{ AuditHelper.LogOpenStudies(new string[] { ae.AETitle },string[],,result);}

}

  • OnStart()调用Init()

保护覆盖int OnStart(StudyLoaderArgs studyLoaderArgs) { ApplicationEntity ae = studyLoaderArgs.Server as ApplicationEntity;_ae = ae;Init(ae);studyLoaderArgs是事件,在服务(假设它是服务)开始时将被调用。更确切地说,事件不是要调用的,而是事件作为事件发生的通知而引发的;我们所做的就是处理事件;即将方法注册为该事件的处理程序,然后在每次引发事件时调用该方法。

因此,要实现您想要的愿望,您可以调用Init()而不是OnStart();但是要调用Init(),您必须提供输入参数,这是我第一句话所说的--或者类似于OnStart(EventArgs.Empty);

不知道这是否回答了你的问题,但我的头盖骨上方!(0:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2749184

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档