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); } }
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); }
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); }
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); } }