Beispiel #1
0
        public int SaveValueSet(ValueSetModel valueSetModel)
        {
            using (IObjectRepository auditedTdb = DBContext.CreateAuditable(CheckPoint.Instance.UserName, CheckPoint.Instance.HostAddress))
            {
                ValueSet valueSet = auditedTdb.ValueSets.SingleOrDefault(y => y.Id == valueSetModel.Id);

                if (valueSet == null)
                {
                    valueSet = new ValueSet();
                    auditedTdb.ValueSets.Add(valueSet);
                }

                // Don't modify main meta-data properties of the value set if it is imported.
                if (valueSet.ImportSource == null)
                {
                    // Set properties for the value set
                    if (valueSetModel.Code != valueSet.Code)
                    {
                        valueSet.Code = valueSetModel.Code;
                    }

                    if (valueSetModel.Description != valueSet.Description)
                    {
                        valueSet.Description = valueSetModel.Description;
                    }

                    if (valueSetModel.IntentionalDefinition != valueSet.IntensionalDefinition)
                    {
                        valueSet.IntensionalDefinition = valueSetModel.IntentionalDefinition;
                    }

                    var isIncomplete = !valueSetModel.IsComplete;
                    if (isIncomplete != valueSet.IsIncomplete)
                    {
                        valueSet.IsIncomplete = isIncomplete;
                    }

                    if (valueSetModel.IsIntentional != valueSet.Intensional)
                    {
                        valueSet.Intensional = valueSetModel.IsIntentional;
                    }

                    if (valueSetModel.Name != valueSet.Name)
                    {
                        valueSet.Name = valueSetModel.Name;
                    }

                    if (valueSetModel.SourceUrl != valueSet.Source)
                    {
                        valueSet.Source = valueSetModel.SourceUrl;
                    }
                }

                this.SaveValueSetIdentifiers(auditedTdb, valueSet, valueSetModel.Identifiers);

                auditedTdb.SaveChanges();

                return(valueSet.Id);
            }
        }
Beispiel #2
0
        public ValueSetModel ValueSet(int valueSetId)
        {
            ValueSet valueSet       = this.tdb.ValueSets.Single(y => y.Id == valueSetId);
            int      userId         = CheckPoint.Instance.GetUser(this.tdb).Id;
            var      searchResults  = this.tdb.SearchValueSet(userId, valueSet.Identifiers.First().Identifier, 1, 1, "Name", true).ToList();
            var      permitModify   = CheckPoint.Instance.HasSecurables(SecurableNames.VALUESET_EDIT);
            bool     permitOverride = CheckPoint.Instance.HasSecurables(SecurableNames.TERMINOLOGY_OVERRIDE);
            bool     userIsInternal = CheckPoint.Instance.IsDataAdmin;

            if (searchResults.Count != 1)
            {
                throw new Exception("Could not find the value set using search");
            }

            ValueSetModel model = new ValueSetModel()
            {
                Id                    = valueSet.Id,
                Name                  = valueSet.Name,
                Code                  = valueSet.Code,
                Description           = valueSet.Description,
                IntentionalDefinition = valueSet.IntensionalDefinition,
                IsComplete            = !valueSet.IsIncomplete,
                IsIntentional         = valueSet.Intensional.HasValue ? valueSet.Intensional.Value : false,
                SourceUrl             = valueSet.Source,
                ImportSource          = valueSet.ImportSource,
                Identifiers           = valueSet.Identifiers.Select(y => new ValueSetIdentifierModel(y)).ToList(),
                PermitModify          = permitModify,
                CanModify             = !searchResults[0].HasPublishedIg,
                CanOverride           = permitOverride && (userIsInternal || searchResults[0].CanEditPublishedIg),
            };

            return(model);
        }
Beispiel #3
0
        public ValueSetModel ValueSet(int valueSetId)
        {
            ValueSet      valueSet = this.tdb.ValueSets.Single(y => y.Id == valueSetId);
            ValueSetModel model    = new ValueSetModel()
            {
                Id                    = valueSet.Id,
                Name                  = valueSet.Name,
                Code                  = valueSet.Code,
                Description           = valueSet.Description,
                IntentionalDefinition = valueSet.IntensionalDefinition,
                IsComplete            = !valueSet.IsIncomplete,
                IsIntentional         = valueSet.Intensional.HasValue ? valueSet.Intensional.Value : false,
                Oid                   = valueSet.Oid,
                SourceUrl             = valueSet.Source
            };

            return(model);
        }
Beispiel #4
0
        public int SaveValueSet(SaveValueSetModel model)
        {
            using (IObjectRepository auditedTdb = DBContext.Create())
            {
                auditedTdb.AuditChanges(CheckPoint.Instance.UserName, CheckPoint.Instance.OrganizationName, CheckPoint.Instance.HostAddress);

                ValueSetModel valueSetModel = model.ValueSet;
                ValueSet      valueSet      = auditedTdb.ValueSets.SingleOrDefault(y => y.Id == valueSetModel.Id);

                if (valueSet == null)
                {
                    valueSet = new ValueSet();
                    auditedTdb.ValueSets.AddObject(valueSet);
                }

                // Set properties for the value set
                if (valueSetModel.Code != valueSet.Code)
                {
                    valueSet.Code = valueSetModel.Code;
                }

                if (valueSetModel.Description != valueSet.Description)
                {
                    valueSet.Description = valueSetModel.Description;
                }

                if (valueSetModel.IntentionalDefinition != valueSet.IntensionalDefinition)
                {
                    valueSet.IntensionalDefinition = valueSetModel.IntentionalDefinition;
                }

                var isIncomplete = !valueSetModel.IsComplete;
                if (isIncomplete != valueSet.IsIncomplete)
                {
                    valueSet.IsIncomplete = isIncomplete;
                }

                if (valueSetModel.IsIntentional != valueSet.Intensional)
                {
                    valueSet.Intensional = valueSetModel.IsIntentional;
                }

                if (valueSetModel.Name != valueSet.Name)
                {
                    valueSet.Name = valueSetModel.Name;
                }

                if (valueSetModel.Oid != valueSet.Oid)
                {
                    valueSet.Oid = valueSetModel.Oid;
                }

                if (valueSetModel.SourceUrl != valueSet.Source)
                {
                    valueSet.Source = valueSetModel.SourceUrl;
                }

                // Remove concepts
                if (model.RemovedConcepts != null)
                {
                    foreach (var concept in model.RemovedConcepts)
                    {
                        var valueSetMember = auditedTdb.ValueSetMembers.Single(y => y.Id == concept.Id && y.ValueSetId == valueSet.Id);
                        auditedTdb.ValueSetMembers.DeleteObject(valueSetMember);
                    }
                }

                // Update concepts
                if (model.Concepts != null)
                {
                    foreach (var concept in model.Concepts)
                    {
                        ValueSetMember valueSetMember = auditedTdb.ValueSetMembers.SingleOrDefault(y => y.Id == concept.Id && y.ValueSetId == valueSet.Id);

                        if (valueSetMember == null)
                        {
                            valueSetMember          = new ValueSetMember();
                            valueSetMember.ValueSet = valueSet;
                            auditedTdb.ValueSetMembers.AddObject(valueSetMember);
                        }

                        this.SaveConceptProperties(auditedTdb, valueSetMember, concept);
                    }
                }

                auditedTdb.SaveChanges();

                return(valueSet.Id);
            }
        }