Example #1
0
        private static bool CanAccessDatabase(out string errorString)
        {
            bool result = true;

            errorString = string.Empty;

            IWorklistDataAccessAgent agent = null;

            if (DataAccessServices.IsDataAccessServiceRegistered <IWorklistDataAccessAgent>())
            {
                agent = DataAccessServices.GetDataAccessService <IWorklistDataAccessAgent>();
            }
            if (agent == null)
            {
                errorString = "Error: Cannot create IWorklistDataAccessAgent";
                return(false);
            }

            try
            {
                agent.GetPatientIDs();
            }
            catch (Exception ex)
            {
                errorString = ex.Message;
                result      = false;
            }
            return(result);
        }
Example #2
0
        public DatabaseLayer(WorklistDataSource source)
        {
            if (IsDataAccessSettingsValid( ))
            {
                _source = source;

                System.Configuration.Configuration configuration = DicomDemoSettingsManager.GetGlobalPacsConfiguration();

                WorklistDataAccessConfigurationView view = new WorklistDataAccessConfigurationView(configuration, DicomDemoSettingsManager.ProductNameDemoServer, null);

                ConnectionString = view.GetConnectionStringSettings( ).ConnectionString;
                Provider         = view.GetConnectionStringSettings( ).ProviderName;

                if (Provider == DataAccessMapping.DefaultSqlProviderName)
                {
                    _database = new SqlServerDatabaseUtility(ConnectionString);
                    _agent    = new WorklistSqlDbDataAccessAgent(ConnectionString);
                }
                else if (Provider == DataAccessMapping.DefaultSqlCe3_5ProviderName)
                {
                    _database = new SqlCeDatabaseUtility(ConnectionString);
                    _agent    = new WorklistSqlCeDataAccessAgent(ConnectionString);
                }
                else
                {
                    throw new NotImplementedException( );
                }
            }
        }
Example #3
0
        public Form1( )
        {
            InitializeComponent( );

            Messager.Caption = this.Text;

            if (!DatabaseLayer.IsDataAccessSettingsValid( ))
            {
                MessageBox.Show("Database settings is not valid. Please run the PACS Database Configuration Demo.", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Error);

                return;
            }

            _source        = new WorklistDataSource( );
            _databaseLayer = new DatabaseLayer(_source);
            _iodPath       = Application.StartupPath;

            _iodPath = Path.Combine(_iodPath, "CustomMWLIOD.xml");

            using (Stream iodStream = MWLCFindCommand.DefualtMWLIOD)
            {
                using (FileStream customIODStream = new FileStream(_iodPath, FileMode.Create))
                {
                    CopyTo(iodStream, customIODStream);
                }
            }

            _source.DatabaseTags.Add(new DatabaseDicomTags("Visit", "ServiceEpisodeDescription", DicomTag.ServiceEpisodeDescription));
            _source.DatabaseTags.Add(new DatabaseDicomTags("ScheduledProcedureStep", "CommentsOnTheScheduledProcedureStep", DicomTag.CommentsOnTheScheduledProcedureStep));
            _source.DatabaseTags.Add(new DatabaseDicomTags("Patient", "SmokingStatus", DicomTag.SmokingStatus));

            _worklistAgent = _databaseLayer.GetWorklistDataAgent( );

            DataAccessServices.RegisterDataAccessService <IWorklistDataAccessAgent> (_worklistAgent);

            databaseStatus1.ConnectionString = _databaseLayer.ConnectionString;
            databaseStatus1.ProviderName     = _databaseLayer.Provider;

            dicomTags1.SetSource(_source.DatabaseTags);
            worklistUpdate1.SetSource(_source.DatabaseTags);
            dicomQuery1.SetSource(_source.DatabaseTags, _iodPath);

            if (_databaseLayer.IsDatabaseUpdated())
            {
                try
                {
                    WorklistIODUpdater.UpdateIOD(_source.DatabaseTags, _iodPath);
                }
                catch (Exception exception)
                {
                    Messager.ShowError(this, "Error Updating the Modality Work-list IOD document.\n" + exception);
                }
            }

            UpdateDatabaseButton.Click += new EventHandler(UpdateDatabaseButton_Click);
        }
Example #4
0
        public static MWLDataset Find(this IWorklistDataAccessAgent accessAgent, params ICatalogEntity[] queries)
        {
            MatchingParameterCollection parameters = new MatchingParameterCollection();
            MatchingParameterList       matchList  = new MatchingParameterList();

            foreach (ICatalogEntity query in queries)
            {
                matchList.Add(query);
            }
            parameters.Add(matchList);
            return(accessAgent.FindPatientInformation(parameters));
        }
Example #5
0
        static void RegisterDataAccessAgents(string serviceName)
        {
            System.Configuration.Configuration configuration = DicomDemoSettingsManager.GetGlobalPacsAddinsConfiguration(ServiceDirectory);
            if (!DataAccessServices.IsDataAccessServiceRegistered <IWorklistDataAccessAgent> ( ))
            {
                IWorklistDataAccessAgent worklistDataAccess = DataAccessFactory.GetInstance(new WorklistDataAccessConfigurationView(configuration, null, serviceName)).CreateDataAccessAgent <IWorklistDataAccessAgent> ( );

                DataAccessServices.RegisterDataAccessService <IWorklistDataAccessAgent> (worklistDataAccess);

                DataAccess = worklistDataAccess;
            }
            else
            {
                DataAccess = DataAccessServices.GetDataAccessService <IWorklistDataAccessAgent>();
            }
        }
        public void ConfigureCommand(DicomCommand command)
        {
            try
            {
                AdvancedSettings            settings;
                WorklistAddInsConfiguration worklistConfig;

                settings       = AdvancedSettings.Open(AddInsSession.ServiceDirectory);
                worklistConfig = GetWorklistAddInsSettings(settings);



                if (null != worklistConfig)
                {
                    if (DataAccessServices.IsDataAccessServiceRegistered <IWorklistDataAccessAgent> ( ))
                    {
                        IWorklistDataAccessAgent dataAccess = DataAccessServices.GetDataAccessService <IWorklistDataAccessAgent> ( );

                        if (dataAccess is WorklistDbDataAccessAgent)
                        {
                            if (worklistConfig.LimitNumberOfResponses)
                            {
                                (( WorklistDbDataAccessAgent )dataAccess).NumberOfMatchingWlResponses = worklistConfig.NumberOfMatchingResponses;
                            }
                            else
                            {
                                (( WorklistDbDataAccessAgent )dataAccess).NumberOfMatchingWlResponses = -1;
                            }
                        }
                    }

                    if (command is CFindCommand)
                    {
                        ConfigureCFindCommand(command, worklistConfig);
                    }

                    if (command is MWLCFindCommand)
                    {
                        ConfigureQueryCFindCommand(command, worklistConfig);
                    }
                }
            }
            catch (Exception exception)
            {
                LogEvent("Failed to configure Modality Worklist CFind Command, default configuration will be applied.^\n" + exception.Message, command.RequestDataSet);
            }
        }
Example #7
0
 public WorklistAddin(IWorklistDataAccessAgent dataAccessAgent)
 {
     _DataAccessAgent = dataAccessAgent;
 }