示例#1
0
 public static void TestMessageSearch()
 {
     var client = new Client(ClientUrl, timeout: int.MaxValue);
     try
     {
         var sw = Stopwatch.StartNew();
         var loginStatus = client.Login(ClientUsername, ClientPassword, "0.0.0");
         var channel = client.GetChannels("d24f9ca7-d696-4ffd-b86e-484669213fa8").Channels[0];
         Console.WriteLine("Loaded Channel [{0}] in {1}ms ", channel.Name, sw.Elapsed.TotalMilliseconds.ToString("N2"));
         Console.WriteLine("Found {0} metadata columns: {1}", channel.Properties.MetaDataColumns.Items.Count, string.Join(",", channel.Properties.MetaDataColumns.Items.Select(x => x.Name).ToArray()));
         sw.Restart();
         var maxMessageId = client.GetMaxMessageId(channel.Id);
         var filter = new MessageFilter()
         {
             MaxMessageId = maxMessageId,
             //Statuses = new List<string>() { "ERROR" },
             //EndDate = DateTime.Now.Date.AddDays(-7),
             MetaDataSearch = new List<MetaDataSearchCriteria>
             {
                 new MetaDataSearchCriteria
                 {
                     ColumnName = "PATIENT_ID",
                     Value = new MetaDataSearchCriteriaValue("00556249"),
                     Operator = MetaDataSearchOperator.STARTS_WITH,
                     IgnoreCase = "true",
                 },
             },
             MinMessageId = 896930,
         };
         var messageCount = client.GetMessageCount(channel.Id, filter);
         Console.WriteLine("Counted {0} messages in {1}ms", messageCount, sw.Elapsed.TotalMilliseconds.ToString("N2"));
         sw.Restart();
         var messages_nocontent = client.GetMessages(channel.Id, filter, false, 0, 51);
         Console.WriteLine("Loaded {0} messages in {1}ms", messages_nocontent.Messages.Count, sw.Elapsed.TotalMilliseconds.ToString("N2"));
         var messages_rows = messages_nocontent.Messages.SelectMany(x => x.AsFlatMessageRows()).ToArray();
     }
     finally
     {
         client.Logout();
     }
 }
示例#2
0
        public static void PurgeERRORMessages()
        {
            var client = new Client(ClientUrl, timeout: int.MaxValue);
            var loginStatus = client.Login(ClientUsername, ClientPassword, "0.0.0");
            var channelSummaryList = client.GetChannelSummary();

            Console.WriteLine("Found " + channelSummaryList.Channels.Count + " channels...");
            for (int i = 0; i < channelSummaryList.Channels.Count; i++)
            {
                try
                {
                    var channelId = channelSummaryList.Channels[i].GetChannelId();
                    Console.Write((i) + " ");
                    var maxMessageId = client.GetMaxMessageId(channelId);
                    if (maxMessageId == 0)
                    {
                        Console.WriteLine();
                        continue;
                    }
                    var filter = new MessageFilter()
                    {
                        MaxMessageId = maxMessageId,
                        Statuses = new List<string>() { "ERROR" },
                        EndDate = DateTime.Now.Date.AddDays(-7),
                    };
                    var messageCount = client.GetMessageCount(channelId, filter);
                    var channel = client.GetChannels(channelId).Channels.Single();
                    Console.Write("Found " + messageCount + " messages for " + channel.Name + "...");
                    if (messageCount == 0)
                    {
                        Console.WriteLine();
                        continue;
                    }
                    var sw = Stopwatch.StartNew();
                    client.RemoveMessages(channelId, filter);
                    sw.Stop();
                    Console.WriteLine(" Deleted in " + sw.Elapsed.TotalSeconds.ToString("N2") + " sec.");
                }
                catch (Exception e)
                {
                    Console.Write(" ERROR: " + e.Message);
                }
            }

            client.Logout();
        }