protected override void Context() { _globalPKAnalysisPresenter = A.Fake <IGlobalPKAnalysisPresenter>(); _concentrationDim = A.Fake <IDimension>(); _timeDim = A.Fake <IDimension>(); _view = A.Fake <IIndividualPKAnalysisView>(); _pkaAnalysisTask = A.Fake <IPKAnalysisTask>(); _simulation = A.Fake <IndividualSimulation>(); _simulations = new List <Simulation>(); _simulations.Add(_simulation); _exportTask = A.Fake <IPKAnalysisExportTask>(); _individualPKAnalysisToDTOMapper = A.Fake <IIndividualPKAnalysisToPKAnalysisDTOMapper>(); _pkParameterRepository = A.Fake <IPKParameterRepository>(); ; var dataRepository = new DataRepository(); _baseGrid = new BaseGrid("Base", _timeDim); _col1 = new DataColumn { DataInfo = new DataInfo(ColumnOrigins.Calculation, AuxiliaryType.Undefined, "mg", DateTime.Now, string.Empty, string.Empty, 5), Dimension = _concentrationDim }; _col2 = new DataColumn { Dimension = _concentrationDim, DataInfo = new DataInfo(ColumnOrigins.Calculation, AuxiliaryType.Undefined, "mg", DateTime.Now, string.Empty, string.Empty, 5) }; _col3 = new DataColumn { Dimension = _concentrationDim, DataInfo = new DataInfo(ColumnOrigins.Calculation, AuxiliaryType.Undefined, "mg", DateTime.Now, string.Empty, string.Empty, 5) }; dataRepository.Add(_col1); dataRepository.Add(_col2); _simulation.DataRepository = dataRepository; var curve1 = A.Fake <Curve>(); A.CallTo(() => curve1.yData).Returns(_col1); A.CallTo(() => curve1.xData).Returns(_baseGrid); var curve2 = A.Fake <Curve>(); A.CallTo(() => curve2.yData).Returns(_col2); A.CallTo(() => curve2.xData).Returns(_baseGrid); var curve3 = A.Fake <Curve>(); A.CallTo(() => curve3.yData).Returns(_col3); A.CallTo(() => curve3.xData).Returns(_col1); _curves = new List <Curve> { curve1, curve2, curve3 }; _allPKAnalysis = new List <Tuple <DataColumn, PKAnalysis> >(); _pkAnalysis1 = createPKAnalysis(); _pkAnalysis2 = createPKAnalysis(); _allPKAnalysis.Add(new Tuple <DataColumn, PKAnalysis>(_col1, _pkAnalysis1)); _allPKAnalysis.Add(new Tuple <DataColumn, PKAnalysis>(_col2, _pkAnalysis2)); _allGlobalPKParameters = new List <IParameter>(); A.CallTo(_pkaAnalysisTask).WithReturnType <IEnumerable <Tuple <DataColumn, PKAnalysis> > >().Returns(_allPKAnalysis); A.CallTo(_pkaAnalysisTask).WithReturnType <IEnumerable <IParameter> >().Returns(_allGlobalPKParameters); _presenterSettingsTask = A.Fake <IPresentationSettingsTask>(); sut = new IndividualPKAnalysisPresenter(_view, _pkaAnalysisTask, _exportTask, _globalPKAnalysisPresenter, _individualPKAnalysisToDTOMapper, _pkParameterRepository, _presenterSettingsTask); }
public static PKAnalysis GeneratePopulationAnalysis() { var analysis = new PKAnalysis(); analysis.AddChildren(new IEntity[] { new PKSimParameter { Name = Constants.PKParameters.AUC, Value = 0.0 }, new PKSimParameter { Name = Constants.PKParameters.AUC_inf, Value = 1.0 }, new PKSimParameter { Name = Constants.PKParameters.C_max, Value = 2.0 }, new PKSimParameter { Name = Constants.PKParameters.Tmax, Value = 3.0 }, new PKSimParameter { Name = Constants.PKParameters.Thalf, Value = 4.0 }, new PKSimParameter { Name = Constants.PKParameters.MRT, Value = 5.0 }, new PKSimParameter { Name = Constants.PKParameters.FractionAucEndToInf, Value = 6.0 } }); return(analysis); }
protected override void Context() { base.Context(); //Simulate calculated results by setting the DataRepository _aucIVSimulation = new IndividualSimulation { DataRepository = _simulation.DataRepository }; _pkAnalysis = new PKAnalysis(); _pkAnalysis.Add(DomainHelperForSpecs.ConstantParameterWithValue(2).WithName(Constants.PKParameters.AUC_inf)); A.CallTo(() => _globalPKAnalysisRunner.RunForBioavailability(_protocol, _simulation, _compound)).Returns(_aucIVSimulation); A.CallTo(() => _pkAnalysisTask.CalculateFor(_aucIVSimulation, _venousBloodPlasma)).Returns(new IndividualPKAnalysis(_venousBloodPlasma, _pkAnalysis)); A.CallTo(() => _protocolFactory.Create(ProtocolMode.Simple, ApplicationTypes.Intravenous)).Returns(_protocol); _protocol.AddParameter(DomainHelperForSpecs.ConstantParameterWithValue(1).WithName(Constants.Parameters.INFUSION_TIME)); _protocol.AddParameter(DomainHelperForSpecs.ConstantParameterWithValue(1).WithName(CoreConstants.Parameters.INPUT_DOSE)); _protocol.AddParameter(DomainHelperForSpecs.ConstantParameterWithValue(1).WithName(Constants.Parameters.START_TIME)); //single dosing var schemaItem = A.Fake <SchemaItem>(); var inputDose = DomainHelperForSpecs.ConstantParameterWithValue(10); var startTime = DomainHelperForSpecs.ConstantParameterWithValue(3); A.CallTo(() => schemaItem.Dose).Returns(inputDose); A.CallTo(() => schemaItem.StartTime).Returns(startTime); _simulationSchemaItems.Add(schemaItem); }
public PKAnalysis MapFrom(DataColumn dataColumn, PKValues pkValues, PKParameterMode mode, string moleculeName) { var pk = new PKAnalysis().WithName(moleculeName); _pkParameterRepository.All().Where(parameter => parameter.Mode.Is(mode)).Each(parameter => pk.Add(createPKParameter(parameter, pkValues))); pk.MolWeight = dataColumn.DataInfo.MolWeight; return(pk); }
private void addWarningsTo(PKAnalysis pkAnalysis, GlobalPKAnalysis globalPKAnalysis, string moleculeName) { if (globalPKAnalysis == null) { return; } addFractionAbsorbedWarningTo(pkAnalysis, globalPKAnalysis, moleculeName); }
protected override void Context() { base.Context(); _pKAnalysis = PKAnalysisHelperForSpecs.GenerateIndividualPKAnalysis(); _dataTable = new DataTable(); _individualPKAnalyses = new List <IndividualPKAnalysis> { new IndividualPKAnalysis(_dataColumn, _pKAnalysis) }; A.CallTo(() => _individualPKAnalysisToDataTableMapper.MapFrom(_individualPKAnalyses, _curves, true)).Returns(_dataTable); }
protected override void Context() { base.Context(); _simulation = new IndividualSimulation { DataRepository = new DataRepository() }; _baseGrid = new BaseGrid("Time", DomainHelperForSpecs.TimeDimensionForSpecs()) { Values = new[] { 10f, 20f, 30f } }; _dataColumn1 = new DataColumn("C1", DomainHelperForSpecs.ConcentrationDimensionForSpecs(), _baseGrid) { DataInfo = { Origin = ColumnOrigins.Calculation }, QuantityInfo = { Path = new[] { "C1", "Concentration" } }, Values = new[] { 11f, 21f, 31f } }; _dataColumn2 = new DataColumn("C2", DomainHelperForSpecs.ConcentrationDimensionForSpecs(), _baseGrid) { DataInfo = { Origin = ColumnOrigins.Calculation }, QuantityInfo = { Path = new[] { "C2", "Concentration" } }, Values = new[] { 12f, 22f, 32f } }; _simulation.DataRepository.Add(_dataColumn1); _simulation.DataRepository.Add(_dataColumn2); //Setup global PK analysis _globalPKAnalysis = new GlobalPKAnalysis(); var c1Container = new Container().WithName("C1"); c1Container.Add(DomainHelperForSpecs.ConstantParameterWithValue(0.5).WithName(CoreConstants.PKAnalysis.FractionAbsorbed)); var c2Container = new Container().WithName("C2"); c2Container.Add(DomainHelperForSpecs.ConstantParameterWithValue(1).WithName(CoreConstants.PKAnalysis.FractionAbsorbed)); _globalPKAnalysis.Add(c1Container); _globalPKAnalysis.Add(c2Container); _pkC1 = new PKAnalysis { DomainHelperForSpecs.ConstantParameterWithValue(1).WithName(Constants.PKParameters.MRT), DomainHelperForSpecs.ConstantParameterWithValue(2).WithName(Constants.PKParameters.Tmax) }; _pkC2 = new PKAnalysis { DomainHelperForSpecs.ConstantParameterWithValue(3).WithName(Constants.PKParameters.MRT), DomainHelperForSpecs.ConstantParameterWithValue(4).WithName(Constants.PKParameters.Tmax) }; A.CallTo(() => _pkMapper.MapFrom(_dataColumn1, A <PKValues> ._, A <PKParameterMode> ._, "C1")).Returns(_pkC1); A.CallTo(() => _pkMapper.MapFrom(_dataColumn2, A <PKValues> ._, A <PKParameterMode> ._, "C2")).Returns(_pkC2); _defaultNumberOfRules = DomainHelperForSpecs.ConstantParameterWithValue(3).Rules.Count; }
protected override void Context() { base.Context(); _ddiRatioSimulation = new IndividualSimulation(); //Simulate calculated results by setting the DataRepository _ddiRatioSimulation.DataRepository = _simulation.DataRepository; _pkAnalysis = new PKAnalysis(); _pkAnalysis.Add(DomainHelperForSpecs.ConstantParameterWithValue(1).WithName(Constants.PKParameters.C_max)); _pkAnalysis.Add(DomainHelperForSpecs.ConstantParameterWithValue(2).WithName(Constants.PKParameters.AUC_inf)); A.CallTo(() => _globalPKAnalysisRunner.RunForDDIRatio(_simulation)).Returns(_ddiRatioSimulation); A.CallTo(() => _pkAnalysisTask.CalculateFor(_ddiRatioSimulation, _peripheralVenousBloodPlasma)).Returns(new IndividualPKAnalysis(_peripheralVenousBloodPlasma, _pkAnalysis)); }
private void addFractionAbsorbedWarningTo(PKAnalysis pkAnalysis, GlobalPKAnalysis globalPKAnalysis, string moleculeName) { var fractionAbsorbed = globalPKAnalysis.PKParameter(moleculeName, CoreConstants.PKAnalysis.FractionAbsorbed); if (fractionAbsorbed == null) { return; } if (ValueComparer.AreValuesEqual(fractionAbsorbed.Value, 1, CoreConstants.DOUBLE_RELATIVE_EPSILON)) { return; } addWarningsTo(pkAnalysis, PKSimConstants.Warning.FractionAbsorbedSmallerThanOne, CoreConstants.PKAnalysis.AllParametersInfluencedByFractionAbsorbed); }
protected override void Context() { base.Context(); //Simulate calculated results by setting the DataRepository _ddiRatioSimulation = new IndividualSimulation { DataRepository = _simulation.DataRepository }; _pkAnalysis = new PKAnalysis { DomainHelperForSpecs.ConstantParameterWithValue(1).WithName(Constants.PKParameters.C_max_tDLast_tDEnd), DomainHelperForSpecs.ConstantParameterWithValue(2).WithName(Constants.PKParameters.AUC_inf_tDLast) }; A.CallTo(() => _globalPKAnalysisRunner.RunForDDIRatio(_simulation)).Returns(_ddiRatioSimulation); A.CallTo(() => _pkAnalysisTask.CalculateFor(_ddiRatioSimulation, _peripheralVenousBloodPlasma)).Returns(new IndividualPKAnalysis(_peripheralVenousBloodPlasma, _pkAnalysis)); //multiple dosing _simulationSchemaItems.AddRange(new[] { new SchemaItem(), new SchemaItem() }); }
protected void AddPKParameterToDataTable(PKAnalysis pkAnalysis, DataTable dataTable, string curveName, IParameter parameter, bool addMetaData) { var pkValue = parameter.ValueInDisplayUnit; var row = dataTable.NewRow(); row[PKSimConstants.PKAnalysis.Value] = pkValue; row[PKSimConstants.PKAnalysis.CurveName] = curveName; if (addMetaData) { row[PKSimConstants.PKAnalysis.Compound] = parameter.ParentContainer.Name; row[PKSimConstants.PKAnalysis.ParameterName] = parameter.Name; row[PKSimConstants.PKAnalysis.Description] = descriptionFor(parameter); row[PKSimConstants.PKAnalysis.Warning] = parameter.Validate().Message; } row[PKSimConstants.PKAnalysis.ParameterDisplayName] = _pkParameterRepository.DisplayNameFor(parameter.Name); row[PKSimConstants.PKAnalysis.Unit] = parameter.DisplayUnit.Name; dataTable.Rows.Add(row); }
protected override void Context() { _exportTask = A.Fake <IPKAnalysisExportTask>(); _pkAnalysesTask = A.Fake <IPKAnalysesTask>(); _view = A.Fake <IPopulationPKAnalysisView>(); _populationPKAnalysisToDTOMapper = A.Fake <IPopulationPKAnalysisToPKAnalysisDTOMapper>(); _populationPKAnalysisToDataTableMapper = A.Fake <IPopulationPKAnalysisToDataTableMapper>(); _pkParameterRepository = A.Fake <IPKParameterRepository>(); _presenterSettingsTask = A.Fake <IPresentationSettingsTask>(); sut = new PopulationPKAnalysisPresenter(_view, _pkAnalysesTask, _exportTask, _populationPKAnalysisToDTOMapper, _pkParameterRepository, _presenterSettingsTask); _populationDataCollector = A.Fake <IPopulationDataCollector>(); _timeProfileChartData = new ChartData <TimeProfileXValue, TimeProfileYValue>(null, null); var pane = new PaneData <TimeProfileXValue, TimeProfileYValue>(null) { Caption = "TOTO" }; _curve1 = new TimeProfileCurveData { Caption = "A", Pane = pane }; _curve2 = new TimeProfileCurveData { Caption = "B", Pane = pane }; _pk1 = new PKAnalysis(); _pk2 = new PKAnalysis(); _allPKanalysis = new List <PopulationPKAnalysis> { new PopulationPKAnalysis(_curve1, _pk1), new PopulationPKAnalysis(_curve2, _pk2), }; A.CallTo(() => _pkAnalysesTask.CalculateFor(_populationDataCollector, _timeProfileChartData)).Returns(_allPKanalysis); A.CallTo(() => _view.BindTo(A <PKAnalysisDTO> ._)).Invokes(x => _dataTable = x.GetArgument <PKAnalysisDTO>(0).DataTable); A.CallTo(() => _populationPKAnalysisToDataTableMapper.MapFrom(A <IReadOnlyList <PopulationPKAnalysis> > ._, true)).Returns(_dataTable); }
public static PKAnalysis GenerateIndividualPKAnalysis() { var newPKAnalysis = new PKAnalysis(); newPKAnalysis.AddChildren(new IEntity[] { new PKSimParameter { Name = Constants.PKParameters.AUC, Value = 0.0 }, new PKSimParameter { Name = Constants.PKParameters.AUC_norm, Value = 1.0 }, new PKSimParameter { Name = Constants.PKParameters.AUC_inf, Value = 2.0 }, new PKSimParameter { Name = Constants.PKParameters.AUC_inf_norm, Value = 3.0 }, new PKSimParameter { Name = Constants.PKParameters.C_max, Value = 4.0 }, new PKSimParameter { Name = Constants.PKParameters.C_max_norm, Value = 5.0 }, new PKSimParameter { Name = Constants.PKParameters.FractionAucEndToInf, Value = 6.0 }, new PKSimParameter { Name = Constants.PKParameters.Tmax, Value = 7.0 }, new PKSimParameter { Name = Constants.PKParameters.Thalf, Value = 8.0 }, new PKSimParameter { Name = Constants.PKParameters.MRT, Value = 9.0 } }); return(newPKAnalysis); }
protected void AddPKParametersToDataTable(PKAnalysis pkAnalysis, DataTable dataTable, string curveName, bool addMetaData) { pkAnalysis.AllPKParameters.Each(parameter => AddPKParameterToDataTable(pkAnalysis, dataTable, curveName, parameter, addMetaData)); }
public PopulationPKAnalysis(CurveData <TimeProfileXValue, TimeProfileYValue> curveData, PKAnalysis pkAnalysis) { CurveData = curveData; PKAnalysis = pkAnalysis; }
protected override void Because() { _result = sut.MapFrom(_col, _pkValues, _mode, _drugName); }
private void addWarningsTo(PKAnalysis pkAnalysis, string warning, IEnumerable <string> parameterNames) { parameterNames.Select(pkAnalysis.Parameter) .Where(p => p != null) .Each(p => p.Rules.Add(warningRule(warning))); }
private double?pkParameterValue(PKAnalysis pkAnalysis, string pkParameterName) { var parameter = pkAnalysis.Parameter(pkParameterName); return(parameter?.Value); }
public IndividualPKAnalysis(DataColumn dataColumn, PKAnalysis pkAnalysis) { DataColumn = dataColumn; PKAnalysis = pkAnalysis; }