Beispiel #1
0
        private void addNewServer()
        {
            StoredDicomServer s = new StoredDicomServer();

            SelectedServer = s;
            Servers.Add(s);
        }
Beispiel #2
0
        public async Task <bool> PingDicomServer(StoredDicomServer s, DicomClient client)
        {
            bool result = false;

            logger.Trace("Sending ECHO to " + s.AETitle);
            DicomCEchoRequest r = new DicomCEchoRequest();

            r.OnResponseReceived += (re, response) =>
            {
                logger.Trace(s.AETitle + " C-Echo response = " + response);
                if (((DicomCEchoResponse)response).Status == DicomStatus.Success)
                {
                    result = true;
                }
                else
                {
                    result = false;
                }
            };
            await client.AddRequestAsync(r);

            try
            {
                //client.Send(s.IPAddress, s.Port, false, LocalAETitle, s.AETitle, 5000);
                Task  sendEcho = client.SendAsync();
                await sendEcho;
            }
            catch (Exception ex)
            {
                logger.Error("Exception in echo to " + s.AETitle + " " + ex.Message);
                result = false;
            }

            return(result);
        }
Beispiel #3
0
        public static List <StoredDicomServer> GetDicomServers()
        {
            logger.Trace("GetDicomServers()...");
            List <StoredDicomServer> result = new List <StoredDicomServer>();

            using (SqlConnection conn = new SqlConnection(Properties.Settings.Default.DatabaseConnString))
            {
                conn.Open();
                string        cmdText = "SELECT * FROM DicomServers";
                SqlCommand    cmd     = new SqlCommand(cmdText, conn);
                SqlDataReader reader  = cmd.ExecuteReader();
                if (reader.HasRows)
                {
                    logger.Trace("Dicomservers found in database");
                    while (reader.Read())
                    {
                        for (int i = 0; i < reader.FieldCount; i++)
                        {
                            logger.Trace(reader.GetName(i) + ": " + reader[i].ToString());
                        }
                        StoredDicomServer server = new StoredDicomServer();
                        if (!reader.IsDBNull(reader.GetOrdinal("IPAddress")))
                        {
                            server.IPAddress = reader["IPAddress"].ToString();
                        }
                        if (!reader.IsDBNull(reader.GetOrdinal("Enabled")))
                        {
                            server.Enabled = reader.GetBoolean(reader.GetOrdinal("Enabled"));
                        }
                        if (!reader.IsDBNull(reader.GetOrdinal("AETitle")))
                        {
                            server.AETitle = reader["AETitle"].ToString();
                        }
                        if (!reader.IsDBNull(reader.GetOrdinal("Port")))
                        {
                            server.Port = reader.GetInt32(reader.GetOrdinal("Port"));
                        }
                        if (!reader.IsDBNull(reader.GetOrdinal("ID")))
                        {
                            server.ID = reader.GetInt32(reader.GetOrdinal("ID"));
                        }
                        if (!reader.IsDBNull(reader.GetOrdinal("ImageStore")))
                        {
                            server.ImageStore = reader.GetBoolean(reader.GetOrdinal("ImageStore"));
                        }
                        else
                        {
                            server.ImageStore = false;
                        }
                        if (!reader.IsDBNull(reader.GetOrdinal("Worklist")))
                        {
                            server.Worklist = reader.GetBoolean(reader.GetOrdinal("Worklist"));
                        }
                        else
                        {
                            server.Worklist = false;
                        }
                        server.Online = false;

                        result.Add(server);
                    }
                }
                else
                {
                    logger.Warn("No DicomServers found");
                }
            }
            return(result);
        }