Exemplo n.º 1
0
        private String getBedHTMLInfo(InfluxDBNet5Client influxDB, String hID)
        {
            String HPInfoTableHead = @"'<table style=""width:100%"">'+
                                 '<tr>'+
                                    '<th>預測時間</th>'+
                                    '<th>普通病床</th>'+	
                                    '<th>加護病床</th>'+
                                    '<th>急診推床</th>'+
                                 '</tr>'";

            String       HPInfoTableTail = "'</table>'";
            List <Serie> result          = influxDB.Query("select * from " + hID + " where time < now()+2h group by flownum order asc");

            Serie tmpSerie = result[0];



            String HPInfoTableContent = "";

            //SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss"); // the format of your date

            for (int i = 0; i < 3; i++)
            {
                Dictionary <string, object> Map = new Dictionary <string, object>();
                for (int j = 0; j < tmpSerie.ColumnNames.Length; j++)
                {
                    Map.Add(tmpSerie.ColumnNames[j], tmpSerie.Points[i].GetValue(j));
                }
                String[] value = new String[3];
                String   Ftime = Map["Forecast_Time"].ToString(); //tmpSerie.Points[i].GetValue(7).ToString(); //Forecast_Time
                //tmpTextBox.Text += " "+i+"==> "+tmpSerie.ColumnNames[i]+":"+ Ftime;
                String   Otime     = Map["time"].ToString();      //mpSerie.Points[i].GetValue(0).ToString(); //time
                double   Ot        = Convert.ToDouble(Otime);
                double   Ft        = Convert.ToDouble(Ftime);
                double   timestamp = Ot + Ft;
                DateTime dt        = (new DateTime(1970, 1, 1, 0, 0, 0)).AddHours(8).AddMilliseconds(timestamp);

                String Raw = "'<tr>'+";

                Raw     += "'<th>" + String.Format("{0:yyyy/M/dd HH:mm}", dt) + "</th>'+";
                value[0] = String.Format("{0:0}", Map["HpF_WARN"]); //.ToString(); //WARN
                Raw     += "'<th>" + value[0] + "</th>'+";
                value[1] = String.Format("{0:0}", Map["HpF_ICU"]);  //ICU
                Raw     += "'<th>" + value[1] + "</th>'+";
                value[2] = String.Format("{0:0}", Map["HpF_BED"]);  //BED
                Raw     += "'<th>" + value[2] + "</th>'+";
                Raw     += "'</tr>'";

                HPInfoTableContent += "+" + Raw;
            }

            return(HPInfoTableHead + HPInfoTableContent + "+" + HPInfoTableTail);
            //return HPInfoTableHead + "+" + HPInfoTableTail;
        }
Exemplo n.º 2
0
        public string Load()
        {
            InfluxDBNet5Client influxDB = new InfluxDBNet5Client("59.126.164.5", 8086, "ERFadmin", "eRfe19", "ERFdb");

            List <DataRow> info = new List <DataRow>();

            for (int i = 0; i < hInfo.Length; i++)
            {
                string  hID     = "H" + (i + 1);
                DataRow workRow = new DataRow();
                workRow.ID          = new string(hID.ToCharArray());
                workRow.Name        = new string(hInfo[i].Name.ToCharArray());
                workRow.Latitude    = hInfo[i].Latitude;
                workRow.Longitude   = hInfo[i].Longitude;
                workRow.HTMLcontent = new string(getBedHTMLInfo(influxDB, hID).ToCharArray());
                info.Add(workRow);
            }


            string js = PutHospitalMark(info);

            return(js);
        }
Exemplo n.º 3
0
        public void RunForcasting(object StateObj)
        {
            counter++;
            //Initial Database
            List <Forecast_data> list   = null;
            InfluxDBNet5Client   client = new InfluxDBNet5Client(influxDBIP, 8086, DBUser, Pass, DBName);
            // Create
            var serie = new Serie
            {
                ColumnNames = new[] { "time", "flownum", "Forecast_Time", "HpF_BED", "HpF_BED_Lower", "HpF_BED_Upper"
                                      , "HpF_WARN", "HpF_WARN_Lower", "HpF_WARN_Upper"
                                      , "HpF_ICU", "HpF_ICU_Lower", "HpF_ICU_Upper" }
            };
            var series = new List <Serie> {
                serie
            };
            var serieshow = new List <Serie>();

            string FlowNum = Convert.ToInt64(DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1, 0, 0, 0)).TotalMilliseconds).ToString();

            //20 miniutes
            Console.WriteLine(DateTime.UtcNow.ToLocalTime() + ": 20");
            string results = (string)BedForcasting(20);

            if (results != null)
            {
                list = (List <Forecast_data>)JsonConvert.DeserializeObject(results, typeof(List <Forecast_data>));

                foreach (Forecast_data data in list)
                {
                    serie.Name = new String(data.Hospital_ID.ToCharArray());
                    serie.Points.Add(new object[] { data.Basetime, FlowNum, data.Forecast_Time, data.HpF_BED[0], data.HpF_BED[1], data.HpF_BED[2]
                                                    , data.HpF_WARN[0], data.HpF_WARN[1], data.HpF_WARN[2]
                                                    , data.HpF_ICU[0], data.HpF_ICU[1], data.HpF_ICU[2] });
                    Thread.Sleep(200);
                    serie.Points.Clear();

                    var serieh = new Serie
                    {
                        ColumnNames = new[] { "time", "flownum", "Forecast_Time", "HpF_BED", "HpF_BED_Lower", "HpF_BED_Upper"
                                              , "HpF_WARN", "HpF_WARN_Lower", "HpF_WARN_Upper"
                                              , "HpF_ICU", "HpF_ICU_Lower", "HpF_ICU_Upper" },
                        Name = new String(data.Hospital_ID.ToCharArray())
                    };
                    serieh.Points.Add(new object[] { data.Basetime, FlowNum, data.Forecast_Time, data.HpF_BED[0], data.HpF_BED[1], data.HpF_BED[2]
                                                     , data.HpF_WARN[0], data.HpF_WARN[1], data.HpF_WARN[2]
                                                     , data.HpF_ICU[0], data.HpF_ICU[1], data.HpF_ICU[2] });
                    serieshow.Add(serieh);
                }
            }

            //40 miniutes
            Console.WriteLine(DateTime.UtcNow.ToLocalTime() + ": 40 ");
            results = (string)BedForcasting(40);
            if (results != null)
            {
                list = (List <Forecast_data>)JsonConvert.DeserializeObject(results, typeof(List <Forecast_data>));
                foreach (Forecast_data data in list)
                {
                    serie.Name = new String(data.Hospital_ID.ToCharArray());
                    serie.Points.Add(new object[] { data.Basetime, FlowNum, data.Forecast_Time, data.HpF_BED[0], data.HpF_BED[1], data.HpF_BED[2]
                                                    , data.HpF_WARN[0], data.HpF_WARN[1], data.HpF_WARN[2]
                                                    , data.HpF_ICU[0], data.HpF_ICU[1], data.HpF_ICU[2] });
                    Thread.Sleep(200);
                    serie.Points.Clear();

                    var serieh = new Serie
                    {
                        ColumnNames = new[] { "time", "flownum", "Forecast_Time", "HpF_BED", "HpF_BED_Lower", "HpF_BED_Upper"
                                              , "HpF_WARN", "HpF_WARN_Lower", "HpF_WARN_Upper"
                                              , "HpF_ICU", "HpF_ICU_Lower", "HpF_ICU_Upper" },
                        Name = new String(data.Hospital_ID.ToCharArray())
                    };
                    serieh.Points.Add(new object[] { data.Basetime, FlowNum, data.Forecast_Time, data.HpF_BED[0], data.HpF_BED[1], data.HpF_BED[2]
                                                     , data.HpF_WARN[0], data.HpF_WARN[1], data.HpF_WARN[2]
                                                     , data.HpF_ICU[0], data.HpF_ICU[1], data.HpF_ICU[2] });
                    serieshow.Add(serieh);
                }
            }

            //60 miniutes
            Console.WriteLine(DateTime.UtcNow.ToLocalTime() + ": 60");
            results = (string)BedForcasting(60);
            if (results != null)
            {
                list = (List <Forecast_data>)JsonConvert.DeserializeObject(results, typeof(List <Forecast_data>));
                foreach (Forecast_data data in list)
                {
                    serie.Name = new String(data.Hospital_ID.ToCharArray());
                    serie.Points.Add(new object[] { data.Basetime, FlowNum, data.Forecast_Time, data.HpF_BED[0], data.HpF_BED[1], data.HpF_BED[2]
                                                    , data.HpF_WARN[0], data.HpF_WARN[1], data.HpF_WARN[2]
                                                    , data.HpF_ICU[0], data.HpF_ICU[1], data.HpF_ICU[2] });
                    Thread.Sleep(200);
                    serie.Points.Clear();

                    var serieh = new Serie
                    {
                        ColumnNames = new[] { "time", "flownum", "Forecast_Time", "HpF_BED", "HpF_BED_Lower", "HpF_BED_Upper"
                                              , "HpF_WARN", "HpF_WARN_Lower", "HpF_WARN_Upper"
                                              , "HpF_ICU", "HpF_ICU_Lower", "HpF_ICU_Upper" },
                        Name = new String(data.Hospital_ID.ToCharArray())
                    };
                    serieh.Points.Add(new object[] { data.Basetime, FlowNum, data.Forecast_Time, data.HpF_BED[0], data.HpF_BED[1], data.HpF_BED[2]
                                                     , data.HpF_WARN[0], data.HpF_WARN[1], data.HpF_WARN[2]
                                                     , data.HpF_ICU[0], data.HpF_ICU[1], data.HpF_ICU[2] });
                    serieshow.Add(serieh);
                }
            }

            for (int i = 1; i <= 12; i++)
            {
                client.Query("DROP SERIES H" + i);
            }
            client.Insert(serieshow);

            Console.WriteLine("---------------------------------");
        }