繁体   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