Example #1
0
        private ExpressionContainerDTO expressionContainerFor(IParameter relativeExpression, IParameter relativeExpressioNorm)
        {
            var expressionContainerDTO = new ExpressionContainerDTO();
            var moleculeName           = relativeExpression.ParentContainer.Name;
            var simulation             = _executionContext.Get <Simulation>(relativeExpression.Origin.SimulationId);
            var molecule      = simulation.Individual?.MoleculeByName <IndividualMolecule>(moleculeName);
            var isTransporter = moleculeIsTransporter(molecule);

            expressionContainerDTO.RelativeExpressionParameter     = _containerParameterMapper.MapFrom(relativeExpression, expressionContainerDTO, x => x.RelativeExpression, x => x.RelativeExpressionParameter);
            expressionContainerDTO.RelativeExpressionNormParameter = _containerParameterMapper.MapFrom(relativeExpressioNorm, expressionContainerDTO, x => x.RelativeExpressionNorm, x => x.RelativeExpressionNormParameter);

            IGroup group;

            if (parameterIsGlobalExpression(relativeExpression))
            {
                if (isTransporter)
                {
                    return(null);
                }

                group = _groupRepository.GroupByName(CoreConstants.Groups.VASCULAR_SYSTEM);
                expressionContainerDTO.ContainerPathDTO = _representationInfoRepository.InfoFor(RepresentationObjectType.CONTAINER, containerNameForGlobalExpression(relativeExpression.Name)).ToPathElement();
                expressionContainerDTO.Sequence         = relativeExpression.Sequence;
            }
            else if (expressionShouldBeTreatedAsGlobal(relativeExpression, isTransporter))
            {
                return(null);
            }
            else if (relativeExpression.HasAncestorNamed(CoreConstants.Organ.Lumen))
            {
                group = _groupRepository.GroupByName(CoreConstants.Groups.GI_LUMEN);
                expressionContainerDTO.ContainerPathDTO = _representationInfoRepository.InfoFor(relativeExpression.ParentContainer.ParentContainer).ToPathElement();
            }
            else if (relativeExpression.HasAncestorNamed(CoreConstants.Compartment.Mucosa))
            {
                group = _groupRepository.GroupByName(CoreConstants.Groups.GI_MUCOSA);
                //Mucosa rel exp are for instance in Mucosa/Duodnum/interstitial
                expressionContainerDTO.ContainerPathDTO = _representationInfoRepository.InfoFor(relativeExpression.ParentContainer.ParentContainer.ParentContainer).ToPathElement();
            }

            else
            {
                var expressionContainer = expressionContainerFor(relativeExpression);
                group = _groupRepository.GroupByName(isGiTractOrgan(expressionContainer) ? CoreConstants.Groups.GI_NON_MUCOSA_TISSUE : CoreConstants.Groups.ORGANS_AND_TISSUES);
                expressionContainerDTO.ContainerPathDTO = _representationInfoRepository.InfoFor(expressionContainer).ToPathElement();
            }

            expressionContainerDTO.GroupingPathDTO = _representationInfoRepository.InfoFor(RepresentationObjectType.GROUP, group.Name).ToPathElement();

            //May have been set previously
            if (expressionContainerDTO.Sequence == 0)
            {
                expressionContainerDTO.Sequence = group.Sequence;
            }

            expressionContainerDTO.MoleculeName  = moleculeName;
            expressionContainerDTO.ParameterPath = _fullPathDisplayResolver.FullPathFor(relativeExpression);
            return(expressionContainerDTO);
        }
        public bool Edit(IParameter tableParameter)
        {
            _tableParameterPresenter.Edit(tableParameter);
            _view.Caption       = PKSimConstants.UI.EditTableParameter(_fullPathDisplayResolver.FullPathFor(tableParameter), tableParameter.Editable);
            _view.CancelVisible = tableParameter.Editable;
            plotTable();
            _view.Display();

            return(tableParameter.Editable && !_view.Canceled);
        }
        private void addParameterNode(ITreeNode node, IParameter parameter, PathElement pathElementDTO)
        {
            var representation = new RepresentationInfo {
                DisplayName = pathElementDTO.DisplayName, IconName = pathElementDTO.IconName
            };
            var parameterNode = _treeNodeFactory.CreateFor(parameter, representation);

            parameterNode.ToolTip = _toolTipPartCreator.ToolTipFor(_fullPathDisplayResolver.FullPathFor(parameter));
            node.AddChild(parameterNode);
        }
        private void displayMissingParametersMessage(ValidationResult validationResult)
        {
            if (validationResult.ValidationState == ValidationState.Valid)
            {
                return;
            }

            var missingParameters = validationResult.Messages.Select(x => _fullPathDisplayResolver.FullPathFor(x.Object));

            _dialogCreator.MessageBoxInfo(PKSimConstants.Warning.MissingSimulationParametersWereOverwritten(missingParameters));
        }
        public PopulationAnalysisParameterField CreateFor(IParameter parameter)
        {
            var field = new PopulationAnalysisParameterField
            {
                ParameterPath = _entityPathResolver.PathFor(parameter),
                Name          = _fullPathDisplayResolver.FullPathFor(parameter),
            };

            updateDimension(parameter, field);
            return(field);
        }
        public ParameterScalingDTO MapFrom(ParameterScaling parameterScaling)
        {
            var parameterScalingDTO = new ParameterScalingDTO(parameterScaling)
            {
                ParameterFullPathDisplay = _fullPathDisplayResolver.FullPathFor(parameterScaling.SourceParameter),
                SourceParameter          = _parameterDTOMapper.MapFrom(parameterScaling.SourceParameter),
                TargetParameter          = _parameterDTOMapper.MapFrom(parameterScaling.TargetParameter),
                ScalingMethod            = parameterScaling.ScalingMethod
            };

            return(parameterScalingDTO);
        }
        private void validateScalingForSharedOutputMappings(OutputMapping mapping, ParameterIdentification parameterIdentification, ValidationResult validationResult)
        {
            var allOutputScalings = scalingsMappedForOutput(mapping, parameterIdentification);

            if (allOutputScalings.Count() == 1)
            {
                return;
            }

            var displayPathAsString = _fullPathDisplayResolver.FullPathFor(parameterIdentification, addSimulationName: true);

            validationResult.AddMessage(NotificationType.Error, parameterIdentification, Error.OutputsDoNotAllHaveTheSameScaling(displayPathAsString));
        }
Example #8
0
        public ValidationMessageDTO MapFrom(ValidationMessage validationMessage)
        {
            var dto = new ValidationMessageDTO
            {
                Message           = validationMessage.Text,
                ObjectDescription = _fullPathDisplayResolver.FullPathFor(validationMessage.Object),
                Status            = validationMessage.NotificationType,
                Icon = iconFrom(validationMessage.NotificationType)
            };

            dto.AddDetails(validationMessage.Details);
            return(dto);
        }
Example #9
0
        private IEnumerable <object> anatomyAndPhysiologyFor(Individual individual)
        {
            var report        = new List <object>();
            var allParameters = _containerTask.CacheAllChildrenSatisfying <IParameter>(individual, valueShouldBeExportedForAnatomy);

            if (!allParameters.Any())
            {
                report.Add(PKSimConstants.UI.Default);
                return(report);
            }

            var dataTable = new DataTable {
                TableName = PKSimConstants.UI.AnatomyAndPhysiology
            };

            dataTable.AddColumn(PKSimConstants.UI.Parameter);
            dataTable.AddColumn(PKSimConstants.UI.Value);
            dataTable.AddColumn(PKSimConstants.UI.DefaultValue);

            foreach (var parameter in allParameters)
            {
                var row = dataTable.NewRow();
                row[PKSimConstants.UI.Parameter]    = _fullPathDisplayResolver.FullPathFor(parameter);
                row[PKSimConstants.UI.Value]        = ParameterMessages.DisplayValueFor(parameter);
                row[PKSimConstants.UI.DefaultValue] = ParameterMessages.DisplayValueFor(parameter, parameter.DefaultValue.GetValueOrDefault(parameter.Value));

                dataTable.Rows.Add(row);
            }

            var table     = new Table(dataTable.DefaultView, new Text(dataTable.TableName));
            var reference = new Reference(table);
            var text      = new Text(PKSimConstants.UI.AnatomyAndPhysiologyText, reference);

            report.Add(text);
            report.Add(table);
            return(report);
        }
Example #10
0
        private string uniqueNameFor(SensitivityAnalysis sensitivityAnalysis, IParameter parameter)
        {
            var defaultName = _fullPathDisplayResolver.FullPathFor(parameter);

            return(_containerTask.CreateUniqueName(sensitivityAnalysis.AllSensitivityParameters, defaultName, canUseBaseName: true));
        }
Example #11
0
 public string DisplayNameFor(IObjectBase objectBase)
 {
     return(_fullPathDisplayResolver.FullPathFor(objectBase));
 }
 public string SensitivityParameterNameForParameter(IParameter parameter) => _fullPathDisplayResolver.FullPathFor(parameter);