示例#1
0
        private void updateDiseaseStateFromSnapshot(SnapshotOriginData snapshot, ModelOriginData originData)
        {
            if (snapshot.DiseaseState == null)
            {
                return;
            }

            var diseaseState = _diseaseStateRepository.AllFor(originData.Population).FindByName(snapshot.DiseaseState);

            if (diseaseState == null)
            {
                throw new PKSimException(PKSimConstants.Error.CannotFindDiseaseState(snapshot.DiseaseState, originData.Population.DisplayName));
            }

            originData.DiseaseState = diseaseState;
            diseaseState.Parameters.Each(x =>
            {
                var diseaseStateParameter = new OriginDataParameter {
                    Name = x.Name, Value = x.Value, Unit = x.DisplayUnitName()
                };
                var snapshotParameter = snapshot.DiseaseStateParameters.FindByName(x.Name);
                if (snapshotParameter != null)
                {
                    diseaseStateParameter.Value = baseParameterValueFrom(snapshotParameter, x.Value);
                    diseaseStateParameter.Unit  = snapshotParameter.Unit;
                }

                originData.AddDiseaseStateParameter(diseaseStateParameter);
            });
        }
示例#2
0
        private string displayValueFor(OriginDataParameter originDataParameter)
        {
            var dimension   = _dimensionRepository.DimensionForUnit(originDataParameter.Unit);
            var displayUnit = dimension.UnitOrDefault(originDataParameter.Unit);

            return(_formatter.Format(dimension.BaseUnitValueToUnitValue(displayUnit, originDataParameter.Value)));
        }
示例#3
0
        private Parameter parameterFrom(OriginDataParameter parameter, IDimension dimension)
        {
            if (parameter == null)
            {
                return(null);
            }

            return(_parameterMapper.ParameterFrom(parameter.Value, parameter.Unit, dimension));
        }
示例#4
0
        private OriginDataParameter originDataParameterFrom(IParameterDTO parameterDTO, bool addName = false)
        {
            var originDataParameter = new OriginDataParameter(parameterDTO.KernelValue, displayUnit(parameterDTO));

            if (addName)
            {
                originDataParameter.Name = parameterDTO.Name;
            }

            return(originDataParameter);
        }
        private IParameter parameterFrom(OriginDataParameter originDataParameter)
        {
            if (originDataParameter == null)
            {
                return(null);
            }

            var(value, unit, name) = originDataParameter;

            var dimension = _dimensionRepository.DimensionForUnit(unit);

            return(_parameterFactory.CreateFor(name, value, dimension.Name, PKSimBuildingBlockType.Individual));
        }
示例#6
0
        private Parameter originDataParameterFor(ModelOriginData originData, Func <ModelOriginData, IParameter> meanParameterRetrieverFunc, OriginDataParameter parameter, IDimension dimension)
        {
            if (parameter == null)
            {
                return(null);
            }

            var(value, _) = parameter;
            var meanParameter = meanParameterRetrieverFunc(originData);

            if (ValueComparer.AreValuesEqual(meanParameter.Value, value))
            {
                return(null);
            }

            return(parameterFrom(parameter, dimension));
        }
示例#7
0
 protected override void Context()
 {
     base.Context();
     _organism   = new Organism();
     _individual = A.Fake <Individual>();
     _diseaseStateParameterDTO = A.Fake <IParameterDTO>();
     A.CallTo(() => _individual.Organism).Returns(_organism);
     _origin = new OriginData
     {
         DiseaseState = new DiseaseState {
             Name = "MyDiseaseState"
         }
     };
     _diseaseStateParameter = new OriginDataParameter();
     _origin.AddDiseaseStateParameter(_diseaseStateParameter);
     A.CallTo(() => _originDataParameterMapper.MapFrom(_diseaseStateParameter)).Returns(_diseaseStateParameterDTO);
     _individual.OriginData = _origin;
 }
        protected override async Task Context()
        {
            await base.Context();

            _originData.DiseaseState = new DiseaseState {
                Name = "CKD"
            };
            _diseaseStateParameter = new OriginDataParameter {
                Name = "Param", Value = 60, Unit = "h"
            };
            _originData.AddDiseaseStateParameter(_diseaseStateParameter);
            _timeDimension = DomainHelperForSpecs.TimeDimensionForSpecs();
            A.CallTo(() => _dimensionRepository.DimensionForUnit(_diseaseStateParameter.Unit)).Returns(_timeDimension);
            A.CallTo(() => _parameterMapper.ParameterFrom(_diseaseStateParameter.Value, _diseaseStateParameter.Unit, _timeDimension))
            .Returns(new Parameter {
                Value = 1, Unit = "h"
            });
        }
 public IParameterDTO MapFrom(OriginDataParameter originDataParameter)
 {
     return(_parameterDTOMapper.MapAsReadWriteFrom(parameterFrom(originDataParameter)));
 }
示例#10
0
        protected override Task Context()
        {
            _individualMapper         = A.Fake <IndividualMapper>();
            _parameterRangeMapper     = A.Fake <ParameterRangeMapper>();
            _genderRepository         = A.Fake <IGenderRepository>();
            _populationSettingsMapper = A.Fake <IIndividualToPopulationSettingsMapper>();
            _logger = A.Fake <IOSPSuiteLogger>();
            sut     = new RandomPopulationSettingsMapper(_parameterRangeMapper, _individualMapper, _populationSettingsMapper, _genderRepository, _logger);

            _ageParameterRange = new ConstrainedParameterRange {
                ParameterName = CoreConstants.Parameters.AGE
            };
            _weightParameterRange = new ParameterRange {
                ParameterName = CoreConstants.Parameters.MEAN_WEIGHT
            };

            A.CallTo(() => _parameterRangeMapper.MapToSnapshot(null)).Returns((Snapshots.ParameterRange)null);
            _ageRangeSnapshot = new Snapshots.ParameterRange();
            A.CallTo(() => _parameterRangeMapper.MapToSnapshot(_ageParameterRange)).Returns(_ageRangeSnapshot);

            _weightRangeSnapshot = new Snapshots.ParameterRange();
            A.CallTo(() => _parameterRangeMapper.MapToSnapshot(_weightParameterRange)).Returns(_weightRangeSnapshot);


            _baseIndividual = new Individual
            {
                OriginData = new OriginData()
            };
            _diseaseStateParameter = new OriginDataParameter(10, "mg/kg", "DIS_STATE_PARAM");
            _baseIndividual.OriginData.AddDiseaseStateParameter(_diseaseStateParameter);

            _diseaseStateParameterRangeSnapshot = new Snapshots.ParameterRange();
            _diseaseStateParameterRange         = new ConstrainedParameterRange {
                ParameterName = _diseaseStateParameter.Name
            };
            A.CallTo(() => _parameterRangeMapper.MapToSnapshot(_diseaseStateParameterRange)).Returns(_diseaseStateParameterRangeSnapshot);


            _snapshotIndividual = new Snapshots.Individual();
            A.CallTo(() => _individualMapper.MapToSnapshot(_baseIndividual)).Returns(_snapshotIndividual);

            _randomPopulationSettings = new RandomPopulationSettings
            {
                NumberOfIndividuals = 10,
                BaseIndividual      = _baseIndividual
            };

            _randomPopulationSettings.AddParameterRange(_weightParameterRange);
            _randomPopulationSettings.AddParameterRange(_ageParameterRange);
            _randomPopulationSettings.AddParameterRange(_diseaseStateParameterRange);

            A.CallTo(() => _genderRepository.Female).Returns(new Gender {
                Id = "Female", Name = "Female"
            });
            A.CallTo(() => _genderRepository.Male).Returns(new Gender {
                Id = "Male", Name = "Male"
            });

            _project         = new PKSimProject();
            _snapshotContext = new SnapshotContext(_project, ProjectVersions.Current);
            return(Task.FromResult(true));
        }
示例#11
0
 private Parameter namedParameterFrom(OriginDataParameter parameter)
 {
     return(parameterFrom(parameter, _dimensionRepository.DimensionForUnit(parameter.Unit)).WithName(parameter.Name));
 }