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); }
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( ); } } }
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); }
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)); }
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); } }
public WorklistAddin(IWorklistDataAccessAgent dataAccessAgent) { _DataAccessAgent = dataAccessAgent; }