代码之家  ›  专栏  ›  技术社区  ›  loki

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

  •  1
  • loki  · 技术社区  · 16 年前

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

     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方法

    1 回复  |  直到 16 年前
        1
  •  0
  •   Kamran Khan    16 年前

    只是一个想法, OnStart StudyLoaderArgs Init(ApplicationEntity) 方法并按如下方式调用它:

    Init(myStudyArgs);
    

    而且

    protected override int OnStart(StudyLoaderArgs studyLoaderArgs)
    {
        Init(StudyLoaderArgs.Server as ApplicationEntity);
    }
    

    --编辑--

    1. OnStart() Init()

      void Init(应用程序性ae) { AuditedInstances loadedInstances=新的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. 呼叫 Init()

      受保护的重写int OnStart(studyLoadArgs studyLoadArgs) ApplicationEntity ae=studyLoadArgs.Server作为ApplicationEntity; _ae=ae; }

    3. OnStart() 是一个事件,将在服务(假设它是服务)启动时调用。更具体地说,事件不是在那里被调用的,而是作为某件事情发生的通知而引发的事件;我们所做的只是处理事件;i、 将一个方法注册为该事件的处理程序,然后每次引发该事件时都会调用该方法。

    Init() 而不是 Init() OnStart(EventArgs.Empty);

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