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; }
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); }
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("---------------------------------"); }