Exemplo n.º 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);
            });
        }
        public IReadOnlyList <DiseaseState> AllDiseaseStatesFor(SpeciesPopulation population)
        {
            var list = new List <DiseaseState> {
                _diseaseStateRepository.HealthyState
            };

            list.AddRange(_diseaseStateRepository.AllFor(population));
            return(list);
        }