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);
        }
コード例 #2
0
        public string DescriptionFor(string pkParameterName)
        {
            var pkParameter = _pkParameterRepository.FindByName(pkParameterName);

            if (pkParameter == null)
            {
                return(pkParameterName);
            }

            return(pkParameter.Description);
        }
コード例 #3
0
 public PKParameter PKParameterByName(string name) => _pkParameterRepository.FindByName(name);