public DataTable PKAnalysesToDataTable(PopulationSimulationPKAnalyses pkAnalyses, IModelCoreSimulation simulation) { var dataTable = new DataTable(simulation.Name); dataTable.AddColumn <int>(INDIVIDUAL_ID); dataTable.AddColumn <string>(QUANTITY_PATH); dataTable.AddColumn <string>(PARAMETER); dataTable.AddColumn <string>(VALUE); dataTable.AddColumn <string>(UNIT); dataTable.BeginLoadData(); foreach (var quantityPKParameter in pkAnalyses.All()) { var quantityPath = quantityPKParameter.QuantityPath; var molWeight = simulation.MolWeightFor(quantityPath); var pkParameter = _pkParameterRepository.FindByName(quantityPKParameter.Name); var quantityPKParameterContext = new QuantityPKParameterContext(quantityPKParameter, molWeight); var mergedDimension = _dimensionFactory.MergedDimensionFor(quantityPKParameterContext); var unit = mergedDimension.UnitOrDefault(pkParameter.DisplayUnit); quantityPKParameter.ValueCache.KeyValues.Each(kv => { var row = dataTable.NewRow(); row[INDIVIDUAL_ID] = kv.Key; row[QUANTITY_PATH] = inQuote(quantityPath); row[PARAMETER] = inQuote(pkParameter.Name); row[VALUE] = mergedDimension.BaseUnitValueToUnitValue(unit, kv.Value).ConvertedTo <string>(); row[UNIT] = unit.Name; dataTable.Rows.Add(row); }); } dataTable.EndLoadData(); return(dataTable); }
public string DescriptionFor(string pkParameterName) { var pkParameter = _pkParameterRepository.FindByName(pkParameterName); if (pkParameter == null) { return(pkParameterName); } return(pkParameter.Description); }
public PKParameter PKParameterByName(string name) => _pkParameterRepository.FindByName(name);