public override void AddRecord(IDataReader reader) { var prodcode = reader.GetInt("prodcode"); var ndd = reader.GetDecimal("ndd"); var quantity = reader.GetDecimal("qty"); var numpacks = reader.GetInt("numpacks"); var dayssupply = reader.GetInt("numdays"); if (prodcode.HasValue && dayssupply.HasValue) { var key = CompositeKeyHelper.GetCprdDaysSupplyKey(prodcode.Value, ndd, quantity, numpacks); if (!lookup.ContainsKey(key)) { lookup.Add(key, dayssupply.Value); } } }
private int GetDaysSupply(IDataReader reader, Entity e) { var daysSupply = reader.GetInt(DaysSupply); if (!daysSupply.HasValue || daysSupply == 0) { // TODO : Create separate CPRDDrugExposureDefinition class and move this metod to new class if (!string.IsNullOrEmpty(DaysSupplyLookup)) { int prodcode; if (!int.TryParse(e.AdditionalFields["prodcode"], out prodcode)) { return(0); } decimal ndd; decimal.TryParse(e.AdditionalFields["ndd"], out ndd); int numpacks; int.TryParse(e.AdditionalFields["numpacks"], out numpacks); decimal quantity = -1; if (e.AdditionalFields.ContainsKey("quantity")) { decimal.TryParse(e.AdditionalFields["quantity"], out quantity); } var key = CompositeKeyHelper.GetCprdDaysSupplyKey(prodcode, ndd, quantity, numpacks); var result = Vocabulary.LookupDaysSupply(key, DaysSupplyLookup); if (!result.HasValue) { key = CompositeKeyHelper.GetCprdDaysSupplyKey(prodcode); result = Vocabulary.LookupDaysSupply(key, DaysSupplyLookup); } var ds = result.HasValue ? result.Value : 0; return(ds > 365 ? 0 : ds); } } return(daysSupply.HasValue ? daysSupply.Value : 0); }
public override void Load() { if (Path.GetExtension(sqlFileDestination).Equals(".sql", StringComparison.CurrentCultureIgnoreCase)) { base.Load(); } else { var folder = sqlFileDestination; if (!string.IsNullOrEmpty(definitionsFolder)) { folder = Path.Combine(definitionsFolder, sqlFileDestination); } var isFirstLine = true; foreach (var line in File.ReadAllLines(folder)) { if (isFirstLine) { isFirstLine = false; continue; } //prodcode ndd qty numpacks dayssupply var values = line.Split('\t'); int? prodcode = null; decimal?ndd = null; decimal?quantity = null; int? numpacks = null; int? dayssupply = null; if (values.Length > 0) { prodcode = int.Parse(values[0]); } if (values.Length > 1) { ndd = decimal.Parse(values[1]); } if (values.Length > 2) { quantity = decimal.Parse(values[2]); } if (values.Length > 3) { numpacks = int.Parse(values[3]); } if (values.Length > 4) { dayssupply = int.Parse(values[4]); } if (prodcode.HasValue && dayssupply.HasValue) { var key = CompositeKeyHelper.GetCprdDaysSupplyKey(prodcode.Value, ndd, quantity, numpacks); if (!lookup.ContainsKey(key)) { lookup.Add(key, dayssupply.Value); } } } } }