/// <summary> /// Synchronize weights /// </summary> private void SynchronizeWeights(int?year, int?month) { String query = "SELECT * FROM CHILD_WEIGHT_SUMMARY"; if (year.HasValue && month.HasValue) { query += " WHERE \"YEAR\" = @year AND \"MONTH\" = @month"; } query += " ORDER BY \"YEAR\", \"MONTH\""; DxfMessage message = new DxfMessage(); DxfValueSet valueSet = new DxfValueSet(); message.ValueSets.Add(valueSet); // Load indicator map List <KeyValuePair <String, KeyValuePair <Int32, String> > > indicatorMap = new List <KeyValuePair <string, KeyValuePair <int, string> > >(); XmlDocument map = new XmlDocument(); map.Load(Path.Combine(Path.GetDirectoryName(Assembly.GetEntryAssembly().Location), "WeightIndicatorMap.xml")); valueSet.DataSet = map.SelectSingleNode("//*[local-name() = 'map']/@id").Value; foreach (XmlNode nd in map.SelectNodes("//*[local-name() = 'indicator']")) { indicatorMap.Add(new KeyValuePair <string, KeyValuePair <int, string> >(nd.Attributes["id"].Value, new KeyValuePair <int, string>(Int32.Parse(nd.Attributes["ageGroup"].Value), nd.Attributes["column"].Value))); } using (NpgsqlConnection conn = new NpgsqlConnection(ConfigurationManager.ConnectionStrings["GiisConnectionString"].ConnectionString)) { conn.Open(); using (NpgsqlCommand cmd = new NpgsqlCommand(query, conn)) { cmd.Parameters.Add("@year", year.HasValue ? year.Value : 0); cmd.Parameters.Add("@month", month.HasValue ? month.Value : 0); cmd.CommandType = System.Data.CommandType.Text; using (var dataReader = cmd.ExecuteReader()) while (dataReader.Read()) { // < 60% var imap = indicatorMap.FindAll(o => o.Value.Key == Convert.ToInt32(dataReader["age_id"])); foreach (var itm in imap) { valueSet.Value.Add(new DxfValue() { DataElement = itm.Key, Numerator = Convert.ToInt32(dataReader[itm.Value.Value]), Denominator = 1, OrgUnit = Convert.ToString(dataReader["HEALTH_FACILITY_CODE"]).Replace("urn:uuid:", ""), Period = string.Format("{0:0000}{1:00}", dataReader["YEAR"], dataReader["MONTH"]), Value = Convert.ToInt32(dataReader[itm.Value.Value]) }); } } } } this.SendDxfMessage(message); }
public void ResolveReferences(Class374 modelBuilder) { if (this.dxfExtendedData_0 == null || this.ulong_0 == 0UL) { return; } DxfHandledObject dxfHandledObject = modelBuilder.method_3(this.ulong_0); if (dxfHandledObject == null) { DxfMessage dxfMessage = new DxfMessage(DxfStatus.UnresolvedReference, Severity.Warning, "AppIdHandle", (object)this.ulong_0); modelBuilder.Messages.Add(dxfMessage); } else { DxfAppId dxfAppId = dxfHandledObject as DxfAppId; if (dxfAppId == null) { modelBuilder.Messages.Add(new DxfMessage(DxfStatus.WrongType, Severity.Warning, "ExpectedType", (object)typeof(DxfAppId)) { Parameters = { { "ObjectType", (object)dxfHandledObject.GetType() }, { "Object", (object)dxfHandledObject } } }); } else { this.dxfExtendedData_0.AppId = dxfAppId; } if (this.list_0 != null) { foreach (Interface10 nterface10 in this.list_0) { nterface10.ResolveReferences(modelBuilder); } } } if (this.class259_0 == null || this.class259_0.HandledObject == null) { return; } this.class259_0.HandledObject.ExtendedDataCollection.Add(this.dxfExtendedData_0); }
internal override void Repair(DxfModelRepairer repairer) { base.Repair(repairer); if (this.OwnerBlock != null) { return; } DxfMessage dxfMessage = new DxfMessage(DxfStatus.RemovedInvalidLayout, Severity.Error, "Layout", (object)this); if (repairer.LayoutsToBeRemoved.Contains(this)) { return; } repairer.LayoutsToBeRemoved.Add(this); }
private void SendDxfMessage(DxfMessage message) { try { XmlSerializer xsz = new XmlSerializer(typeof(DxfMessage)); using (XmlWriter xw = XmlWriter.Create(String.Format("datavalues-{0}.dxf", DateTime.Now.ToString("yyyy-MM-ddTHH-mm-ss")), new XmlWriterSettings() { Indent = true })) xsz.Serialize(xw, message); RestUtil util = new RestUtil(new Uri(ConfigurationManager.AppSettings["DHIS_URL"])); util.PostXml("dataValueSets", message, ConfigurationManager.AppSettings["DHIS_UN"], ConfigurationManager.AppSettings["DHIS_PWD"]); } catch (Exception e) { Trace.TraceError(e.ToString()); } }
public bool Validate(DxfModel model, IList <DxfMessage> messages) { bool flag = true; for (int rowIndex = 0; rowIndex < this.RowCount; ++rowIndex) { for (int columnIndex = 0; columnIndex < this.ColumnCount; ++columnIndex) { Class1026 cell = this.class429_0[rowIndex].Cells[columnIndex]; if (rowIndex > 0 && cell.BorderTop.method_0(DxfVersion.Dxf27) && this.class429_0[rowIndex - 1].Cells[columnIndex].BorderBottom.method_0(DxfVersion.Dxf27)) { DxfMessage dxfMessage = this.method_20(rowIndex, columnIndex, cell, cell.BorderTop, TableCellEdgeFlags.Top); messages.Add(dxfMessage); flag = false; } if (rowIndex < this.RowCount - 1 && cell.BorderBottom.method_0(DxfVersion.Dxf27) && this.class429_0[rowIndex + 1].Cells[columnIndex].BorderTop.method_0(DxfVersion.Dxf27)) { DxfMessage dxfMessage = this.method_20(rowIndex, columnIndex, cell, cell.BorderBottom, TableCellEdgeFlags.Bottom); messages.Add(dxfMessage); flag = false; } if (columnIndex > 0 && cell.BorderLeft.method_0(DxfVersion.Dxf27) && this.class429_0[rowIndex].Cells[columnIndex - 1].BorderRight.method_0(DxfVersion.Dxf27)) { DxfMessage dxfMessage = this.method_20(rowIndex, columnIndex, cell, cell.BorderLeft, TableCellEdgeFlags.Left); messages.Add(dxfMessage); flag = false; } if (columnIndex < this.ColumnCount - 1 && cell.BorderRight.method_0(DxfVersion.Dxf27) && this.class429_0[rowIndex].Cells[columnIndex + 1].BorderLeft.method_0(DxfVersion.Dxf27)) { DxfMessage dxfMessage = this.method_20(rowIndex, columnIndex, cell, cell.BorderRight, TableCellEdgeFlags.Right); messages.Add(dxfMessage); flag = false; } } } return(flag); }
public void SynchronizeImmunizations(int?year, int?month) { String query = "SELECT * FROM COVERAGE_REPORT_INDICATOR WHERE ADMIN_COVERAGE IS NOT NULL "; if (year.HasValue && month.HasValue) { query += " AND \"VACC_YEAR\" = @year AND \"VACC_MONTH\" = @month OR \"CVX_CODE\" = '102' AND (\"VACC_YEAR\" * 12 + \"VACC_MONTH\") >= (@year * 12 + @month) - 3"; } query += " ORDER BY \"VACC_YEAR\", \"VACC_MONTH\""; DxfMessage message = new DxfMessage(); DxfValueSet valueSet = new DxfValueSet(); message.ValueSets.Add(valueSet); valueSet.DataSet = this.m_indicators.SelectSingleNode("//*[local-name() = 'indicatorGroup']/@id").Value; using (NpgsqlConnection conn = new NpgsqlConnection(ConfigurationManager.ConnectionStrings["GiisConnectionString"].ConnectionString)) { conn.Open(); using (NpgsqlCommand cmd = new NpgsqlCommand(query, conn)) { cmd.Parameters.Add("@year", year.HasValue ? year.Value : 0); cmd.Parameters.Add("@month", month.HasValue ? month.Value : 0); cmd.CommandType = System.Data.CommandType.Text; using (var dataReader = cmd.ExecuteReader()) while (dataReader.Read()) { // For each of the items that we match in our document foreach (XmlElement nd in this.m_indicators.SelectNodes(String.Format("//*[local-name() = 'indicator' and ./fullname/text() = '{0}']", dataReader["FULLNAME"]))) { var thisPeriod = String.Format("{0}M{1}", dataReader["VACC_YEAR"], dataReader["VACC_MONTH"]); DxfValue value = valueSet.Value.Find(o => o.OrgUnit == dataReader["HF_CODE"].ToString().Replace("urn:uuid:", "") && o.DataElement == nd.Attributes["id"].Value && o.Period == thisPeriod); // Was an existing value found? if (value == null) { value = new DxfValue() { Period = String.Format("{0:0000}{1:00}", dataReader["VACC_YEAR"], dataReader["VACC_MONTH"]), OrgUnit = dataReader["HF_CODE"].ToString().Replace("urn:uuid:", ""), Value = Convert.ToDecimal(dataReader["ADMIN_COVERAGE"]), DataElement = nd.Attributes["id"].Value }; } // Age and droupout specs? var age = nd.SelectSingleNode("./*[local-name() = 'ageGroup']"); var dropout = nd.SelectSingleNode("./*[local-name() = 'dropout']"); if (age != null && age.InnerText == dataReader["AGE_GROUP"].ToString() || age == null) { value.Numerator += Convert.ToInt32(dataReader["given"]); value.Denominator += Convert.ToInt32(dataReader["target"]); // Is this a dropout? if (dropout != null) { int prevMonth = Convert.ToInt32(dataReader["VACC_MONTH"]) + Int32.Parse(dropout.SelectSingleNode("./*[local-name() = 'month']").InnerText); int prevYear = Convert.ToInt32(dataReader["VACC_YEAR"]) - (prevMonth <= 0 ? 1 : 0); if (prevMonth <= 0) { prevMonth = 12 - prevMonth; } var dropoutPrevObs = valueSet.Value.Find(o => o.Period == String.Format("{0}M{1}", prevYear, prevMonth) && o.DataElement == dropout.SelectSingleNode("./*[local-name() = 'indicator']/@id").Value&& o.OrgUnit == value.OrgUnit); if (dropoutPrevObs != null) { value.Numerator = dropoutPrevObs.Numerator - value.Numerator; value.Denominator = dropoutPrevObs.Numerator; } else { continue; } } value.Value = (decimal)(((float)value.Numerator / value.Denominator) * 100); } else { continue; } valueSet.Value.Add(value); } } } } // Remove anything not in our reporting year if (month.HasValue && year.HasValue) { valueSet.Value.RemoveAll(o => o.Period != String.Format("{0}M{1}", year, month)); } this.SendDxfMessage(message); }