private IEnumerable <string> predefinedValuesForCategory(Action <MetaDataCategory> action)
        {
            var category = new MetaDataCategory();

            action(category);
            return(category.ListOfValues.Values);
        }
예제 #2
0
        private void compoundNameCategory(MetaDataCategory nameCategory, Compound compound, bool canEditName)
        {
            if (nameCategory == null)
            {
                return;
            }
            nameCategory.IsListOfValuesFixed = !canEditName;
            nameCategory.ListOfValues.Clear();

            foreach (var existingCompound in _buildingBlockRepository.All <Compound>())
            {
                nameCategory.ListOfValues.Add(existingCompound.Name, existingCompound.MolWeight.ToString());
            }

            if (canEditName)
            {
                nameCategory.ListOfValues.Add(PKSimConstants.UI.Undefined, PKSimConstants.UI.Undefined);
            }

            if (compound != null)
            {
                nameCategory.DefaultValue       = compound.Name;
                nameCategory.SelectDefaultValue = true;
            }

            nameCategory.ShouldListOfValuesBeIncluded = true;
        }
예제 #3
0
        public IReadOnlyList <MetaDataCategory> DefaultMoBiMetaDataCategories()
        {
            var categories        = new List <MetaDataCategory>();
            var molWeightCategory = new MetaDataCategory
            {
                Name            = "MolWeight",
                DisplayName     = "Molecular weight [Molecular weight]",
                Description     = "Molecular weight",
                MetaDataType    = typeof(double),
                IsMandatory     = false,
                MinValue        = 0,
                MinValueAllowed = false
            };

            categories.Add(molWeightCategory);


            var organCategory = createMetaDataCategory <string>(ObservedData.ORGAN, isMandatory: false, isListOfValuesFixed: true,
                                                                fixedValuesRetriever: addUndefinedValueTo);

            categories.Add(organCategory);

            var compartmentCategory = createMetaDataCategory <string>(ObservedData.COMPARTMENT, isMandatory: false, isListOfValuesFixed: true,
                                                                      fixedValuesRetriever: addUndefinedValueTo);

            categories.Add(compartmentCategory);

            var moleculeCategory = createMetaDataCategory <string>(ObservedData.MOLECULE, isMandatory: false, isListOfValuesFixed: true,
                                                                   fixedValuesRetriever: addUndefinedValueTo);

            categories.Add(moleculeCategory);

            return(categories);
        }
예제 #4
0
        private IEnumerable <string> predefinedValuesFor(Action <MetaDataCategory> predefinedValuesRetriever)
        {
            var category = new MetaDataCategory();

            predefinedValuesRetriever(category);
            return(category.ListOfValues.Values);
        }
예제 #5
0
 private void addPredefinedSpeciesValues(MetaDataCategory speciesCategory)
 {
     foreach (var species in _speciesRepository.All().OrderBy(x => x.Name))
     {
         addInfoToCategory(speciesCategory, species);
     }
 }
예제 #6
0
        private MetaDataCategory compoundNameCategory(Compound compound, bool canEditName)
        {
            var nameCategory = new MetaDataCategory
            {
                Name                = ObservedData.MOLECULE,
                DisplayName         = PKSimConstants.UI.Molecule,
                Description         = PKSimConstants.UI.MoleculeNameDescription,
                MetaDataType        = typeof(string),
                IsListOfValuesFixed = !canEditName,
                IsMandatory         = true,
            };

            foreach (var existingCompound in _buildingBlockRepository.All <Compound>())
            {
                nameCategory.ListOfValues.Add(existingCompound.Name, existingCompound.Name);
            }

            if (canEditName)
            {
                nameCategory.ListOfValues.Add(PKSimConstants.UI.Undefined, PKSimConstants.UI.Undefined);
            }

            if (compound != null)
            {
                nameCategory.DefaultValue = compound.Name;
            }

            return(nameCategory);
        }
예제 #7
0
        private void addPredefinedMoleculeValues(MetaDataCategory moleculeCategory)
        {
            addUndefinedValueTo(moleculeCategory);

            foreach (var existingCompound in _buildingBlockRepository.All <Compound>())
            {
                addInfoToCategory(moleculeCategory, existingCompound);
            }
        }
예제 #8
0
        private void addPredefinedOrganValues(MetaDataCategory organCategory)
        {
            var defaultIndividual = _defaultIndividualRetriever.DefaultIndividual();

            addUndefinedValueTo(organCategory);
            foreach (var organ in defaultIndividual.Organism.OrgansByType(OrganType.PeripheralVenousBlood | OrganType.VascularSystem | OrganType.Tissue | OrganType.Lumen))
            {
                addInfoToCategory(organCategory, organ);
            }
        }
        private void addPredefinedMoleculesForImporter(MetaDataCategory metaDataCategory)
        {
            if (metaDataCategory == null)
            {
                return;
            }

            metaDataCategory.ShouldListOfValuesBeIncluded = true;
            allMolecules().OrderBy(molecule => molecule.Name).Each(molecule => addInfoToCategory(metaDataCategory, molecule));
        }
예제 #10
0
        private void addPredefinedGenderValues(MetaDataCategory genderMetaData)
        {
            addUndefinedValueTo(genderMetaData);
            var defaultIndividual = _defaultIndividualRetriever.DefaultIndividual();

            foreach (var gender in defaultIndividual.AvailableGenders())
            {
                addInfoToCategory(genderMetaData, gender);
            }
        }
        private void addPredefinedCompartmentValues(MetaDataCategory metaDataCategory)
        {
            if (metaDataCategory == null)
            {
                return;
            }

            addUndefinedValueTo(metaDataCategory);
            metaDataCategory.ShouldListOfValuesBeIncluded = true;
            allCompartments().OrderBy(comp => comp.Name).Each(compartment => addInfoToCategory(metaDataCategory, compartment));
        }
        private void addInfoToCategory(MetaDataCategory metaDataCategory, IContainer container)
        {
            metaDataCategory.ListOfValues.Add(container.Name, container.Name);

            var icon = ApplicationIcons.IconByName(container.Icon);

            if (icon != ApplicationIcons.EmptyIcon)
            {
                metaDataCategory.ListOfImages.Add(container.Name, icon.IconName);
            }
        }
        private void addPredefinedOrganValues(MetaDataCategory metaDataCategory)
        {
            if (metaDataCategory == null)
            {
                return;
            }

            addUndefinedValueTo(metaDataCategory);
            metaDataCategory.ShouldListOfValuesBeIncluded = true;
            allOrgans().OrderBy(org => org.Name).Each(organ => addInfoToCategory(metaDataCategory, organ));
        }
예제 #14
0
        private void addPredefinedOrganValues(MetaDataCategory organCategory)
        {
            var defaultIndividual = _defaultIndividualRetriever.DefaultIndividual();
            var organism          = defaultIndividual.Organism;

            addUndefinedValueTo(organCategory);
            addInfoToCategory(organCategory, organism.Organ(CoreConstants.Organ.PERIPHERAL_VENOUS_BLOOD));
            foreach (var organ in organism.OrgansByType(OrganType.VascularSystem | OrganType.Tissue | OrganType.Lumen))
            {
                addInfoToCategory(organCategory, organ);
            }
        }
예제 #15
0
        private void addPredefinedCompartmentValues(MetaDataCategory compCategory)
        {
            var defaultIndividual = _defaultIndividualRetriever.DefaultIndividual();

            addUndefinedValueTo(compCategory);
            foreach (var compartment in defaultIndividual.Organism.Organ(CoreConstants.Organ.Muscle).Compartments.Where(x => x.Visible))
            {
                addInfoToCategory(compCategory, compartment);
            }
            addInfoToCategory(compCategory, new Observer().WithName(CoreConstants.Observer.TISSUE));
            addInfoToCategory(compCategory, new Observer().WithName(CoreConstants.Observer.INTERSTITIAL_UNBOUND));
            addInfoToCategory(compCategory, new Observer().WithName(CoreConstants.Observer.INTRACELLULAR_UNBOUND));
            addInfoToCategory(compCategory, new Observer().WithName(CoreConstants.Compartment.URINE));
            addInfoToCategory(compCategory, new Observer().WithName(CoreConstants.Compartment.FECES));
        }
예제 #16
0
        private void speciesNameCategory(MetaDataCategory nameCategory)
        {
            if (nameCategory == null)
            {
                return;
            }
            nameCategory.ListOfValues.Clear();

            foreach (var species in _speciesRepository.All().OrderBy(x => x.Name))
            {
                nameCategory.ListOfValues.Add(species.Name, species.Name);
            }

            nameCategory.ShouldListOfValuesBeIncluded = true;
        }
예제 #17
0
        private static MetaDataCategory createMetaDataCategory <T>(string descriptiveName, bool isMandatory = false, bool isListOfValuesFixed = false, Action <MetaDataCategory> fixedValuesRetriever = null)
        {
            var category = new MetaDataCategory
            {
                Name                = descriptiveName,
                DisplayName         = descriptiveName,
                Description         = descriptiveName,
                MetaDataType        = typeof(T),
                IsMandatory         = isMandatory,
                IsListOfValuesFixed = isListOfValuesFixed
            };

            fixedValuesRetriever?.Invoke(category);

            return(category);
        }
예제 #18
0
        private void genderNameCategory(MetaDataCategory nameCategory)
        {
            if (nameCategory == null)
            {
                return;
            }
            nameCategory.ListOfValues.Clear();

            var defaultIndividual = _defaultIndividualRetriever.DefaultIndividual();

            foreach (var gender in defaultIndividual.AvailableGenders)
            {
                nameCategory.ListOfValues.Add(gender.Name, gender.Name);
            }

            nameCategory.ShouldListOfValuesBeIncluded = true;
        }
예제 #19
0
        private void addInfoToCategory(MetaDataCategory metaDataCategory, IObjectBase objectBase)
        {
            var info = _representationInfoRepository.InfoFor(objectBase);

            if (info == null)
            {
                metaDataCategory.ListOfValues.Add(objectBase.Name, objectBase.Name);
                return;
            }
            //only add with display name as information will be used in data repository as is
            metaDataCategory.ListOfValues.Add(info.DisplayName, info.DisplayName);
            var icon = ApplicationIcons.IconByName(info.IconName);

            if (icon != ApplicationIcons.EmptyIcon)
            {
                metaDataCategory.ListOfImages.Add(info.DisplayName, icon);
            }
        }
예제 #20
0
        private void organNameCategory(MetaDataCategory nameCategory)
        {
            if (nameCategory == null)
            {
                return;
            }
            nameCategory.ListOfValues.Clear();

            var defaultIndividual = _defaultIndividualRetriever.DefaultIndividual();
            var organism          = defaultIndividual.Organism;

            addInfoToCategory(nameCategory, organism.Organ(CoreConstants.Organ.PERIPHERAL_VENOUS_BLOOD));
            foreach (var organ in organism.OrgansByType(OrganType.VascularSystem | OrganType.Tissue | OrganType.Lumen))
            {
                nameCategory.ListOfValues.Add(organ.Name, organ.Name);
            }

            nameCategory.ShouldListOfValuesBeIncluded = true;
        }
예제 #21
0
        private bool columnNameHasManualInput(ColumnMappingDTO model, MetaDataCategory metaDataCategory)
        {
            if (model.Source == null)
            {
                return(false);
            }

            var source = model.Source as MetaDataFormatParameter;

            if (source.ColumnName == null)
            {
                return(false);
            }

            if (source.IsColumn)
            {
                return(false);
            }

            return(!metaDataCategory.ListOfValues.Keys.Union(availableColumns()).Contains(model.ExcelColumn));
        }
예제 #22
0
        private void compartmentNameCategory(MetaDataCategory nameCategory)
        {
            if (nameCategory == null)
            {
                return;
            }
            nameCategory.ListOfValues.Clear();

            var defaultIndividual = _defaultIndividualRetriever.DefaultIndividual();

            foreach (var compartment in defaultIndividual.Organism.Organ(CoreConstants.Organ.MUSCLE).Compartments.Where(x => x.Visible))
            {
                nameCategory.ListOfValues.Add(compartment.Name, compartment.Name);
            }

            nameCategory.ListOfValues.Add(CoreConstants.Observer.TISSUE, CoreConstants.Observer.TISSUE);
            nameCategory.ListOfValues.Add(CoreConstants.Observer.INTERSTITIAL_UNBOUND, CoreConstants.Observer.INTERSTITIAL_UNBOUND);
            nameCategory.ListOfValues.Add(CoreConstants.Observer.INTRACELLULAR_UNBOUND, CoreConstants.Observer.INTRACELLULAR_UNBOUND);
            nameCategory.ListOfValues.Add(CoreConstants.Observer.WHOLE_BLOOD, CoreConstants.Observer.WHOLE_BLOOD);
            nameCategory.ListOfValues.Add(CoreConstants.Compartment.URINE, CoreConstants.Compartment.URINE);
            nameCategory.ListOfValues.Add(CoreConstants.Compartment.FECES, CoreConstants.Compartment.FECES);

            nameCategory.ShouldListOfValuesBeIncluded = true;
        }
예제 #23
0
 private void addUndefinedValueTo(MetaDataCategory metaDataCategory)
 {
     metaDataCategory.ListOfValues.Add("Undefined", "Undefined");
 }
예제 #24
0
 private static StringBuilder formatPatternItem(StringBuilder sb, MetaDataCategory x, string token)
 {
     return(sb.Append(string.Format(token, x.Name)));
 }
예제 #25
0
 private static void addUndefinedValueTo(MetaDataCategory metaDataCategory)
 {
     metaDataCategory.ListOfValues.Add(PKSimConstants.UI.Undefined, PKSimConstants.UI.Undefined);
 }