public static List <string> CollectIds(StudyUnit studyUnit) { List <string> ids = new List <string>(); //0. StudyUnit itself CollectIds(studyUnit, ids); //1. Event CollectIds(studyUnit.Events, ids); //2. Member CollectIds(studyUnit.Members, ids); //3. Organization CollectIds(studyUnit.Organizations, ids); //4. Abstract CollectIds(studyUnit.Abstract, ids); //5. Coverage CollectIds(studyUnit.Coverage, ids); //6. Funding Agency CollectIds(studyUnit.FundingInfos, ids); //6-1. Organization including CollectIds(FundingInfo.GetOrganizations(studyUnit.FundingInfos), ids); //7.Universe CollectIds(Sampling.GetUniverses(studyUnit.Samplings), ids); //8.Sampling CollectIds(studyUnit.Samplings, ids); //9. Concept Scheme CollectIds(studyUnit.ConceptSchemes, ids); //9-1. Concept CollectIds(ConceptScheme.GetConcepts(studyUnit.ConceptSchemes), ids); //10. Question CollectIds(studyUnit.Questions, ids); //10-1. Answer CollectIds(Question.GetResponses(studyUnit.Questions), ids); //11. Category Scheme CollectIds(studyUnit.CategorySchemes, ids); //11-1. Category CollectIds(CategoryScheme.GetCategories(studyUnit.CategorySchemes), ids); //12. Code Scheme CollectIds(studyUnit.CodeSchemes, ids); //12-1. Code CollectIds(CodeScheme.GetCodes(studyUnit.CodeSchemes), ids); //13. Variable Scheme CollectIds(studyUnit.VariableScheme, ids); //14. Variable CollectIds(studyUnit.Variables, ids); //14-1. Answer CollectIds(Variable.GetResponses(studyUnit.Variables), ids); //15. Dataset CollectIds(studyUnit.DataSets, ids); //16. Data File CollectIds(studyUnit.DataFiles, ids); //17. Order of Question CollectIds(studyUnit.ControlConstructSchemes, ids); //17-1.Sequence CollectIds(ControlConstructScheme.GetSequences(studyUnit.ControlConstructSchemes), ids); //17-2.Constructs CollectIds(ControlConstructScheme.GetConstructs(studyUnit.ControlConstructSchemes), ids); return(ids); }
public CodeSchemeVM(CodeScheme codeScheme, ObservableCollection <CodeVM> codes) { this.codeScheme = codeScheme; this.codes = codes; foreach (CodeVM code in codes) { code.Parent = this; } modelSyncher = new ModelSyncher <CodeVM, Code>(this, codes, codeScheme.Codes); modelSyncher.AddActionHandler = (param) => { param.CodeSchemeId = codeScheme.Id; }; }
static bool ExistValue(CodeScheme codeScheme, string missingValue) { //Currently compare as double text context(must have compared by ε) string missingValueStr = missingValue.ToString(); foreach (Code existCode in codeScheme.Codes) { if (existCode.Value == missingValueStr) { return(true); } } return(false); }
private CodeSchemeVM CreateCodeScheme(CodeScheme codeSchemeModel) { ObservableCollection <CodeVM> codes = new ObservableCollection <CodeVM>(); foreach (Code codeModel in codeSchemeModel.Codes) { CategoryVM category = StudyUnit.FindCategory(codeModel.CategoryId); CodeVM code = new CodeVM(codeModel, category); codes.Add(code); } CodeSchemeVM codeScheme = new CodeSchemeVM(codeSchemeModel, codes) { Parent = this }; return(codeScheme); }
public List <CodeScheme> findCodeScheme() { List <CodeScheme> list = new List <CodeScheme>(); CodeScheme code = new CodeScheme(); code.id = 1; code.name = "通用编码"; code.remark = "这是通用编码方案"; code.status = "0"; CodeScheme code1 = new CodeScheme(); code1.id = 2; code1.name = "文档编码"; code1.remark = "这是文档编码方案"; code1.status = "0"; list.Add(code); list.Add(code1); return(list); }
public void AddCodeScheme() { InputDialog dlg = new InputDialog(); dlg.Title = Resources.InputCodeSchemeName; // Input the name of Code Scheme dlg.Info = Resources.CodeFormHelpMessage; //**After creating the code group, please assign the code by clicking "Add From Category Scheme" or "Add From Category" dlg.Owner = Application.Current.MainWindow; dlg.ShowDialog(); if (dlg.DialogResult == true) { CodeScheme codeSchemeModel = new CodeScheme() { Title = dlg.textBox.Text }; CodeSchemeVM newCodeScheme = new CodeSchemeVM(codeSchemeModel); codeSchemes.Add(newCodeScheme); if (SelectedCodeScheme == null) { SelectedCodeScheme = newCodeScheme; } Memorize(); } }
void InitializeDdiElements() { resourcePackage = new ResourcePackage(); resourcePackage.DublinCoreMetadata.Title["en"] = "ISCO Classification"; resourcePackage.Abstract.Strings["en"] = "Not specified"; resourcePackage.Purpose.Strings["en"] = "Not specified"; categoryScheme = new CategoryScheme(); categoryScheme.Label["en"] = "ISCO Categories"; codeScheme = new CodeScheme(); codeScheme.Label["en"] = "ISCO Codes"; resourcePackage.CategorySchemes.Add(categoryScheme); resourcePackage.CodeSchemes.Add(codeScheme); instance = new DdiInstance(); instance.ResourcePackages.Add(resourcePackage); }
public bool ImportVariables(string path, StudyUnitVM studyUnit) { Debug.Assert(!string.IsNullOrEmpty(path)); StudyUnit studyUnitModel = studyUnit.StudyUnitModel; FileStream stream = File.OpenRead(path); SavFileParser parser = new SavFileParser(stream); List <Variable> variables = new List <Variable>(); foreach (SpssLib.SpssDataset.Variable v in parser.Variables) { Variable variable = new Variable(); variable.Title = v.Name; variable.Label = v.Label; variables.Add(variable); if (v.Type == SpssLib.SpssDataset.DataType.Text) { variable.Response.TypeCode = Options.RESPONSE_TYPE_FREE_CODE; } else { if (v.ValueLabels.Count > 0) { CategoryScheme categoryScheme = new CategoryScheme(); categoryScheme.Title = v.Label; studyUnitModel.CategorySchemes.Add(categoryScheme); CodeScheme codeScheme = new CodeScheme(); codeScheme.Title = v.Label;; studyUnitModel.CodeSchemes.Add(codeScheme); variable.Response.TypeCode = Options.RESPONSE_TYPE_CHOICES_CODE; variable.Response.CodeSchemeId = codeScheme.Id; // Create Category foreach (KeyValuePair <double, string> pair in v.ValueLabels) { Category category = new Category(); categoryScheme.Categories.Add(category); category.Title = pair.Value; category.CategorySchemeId = categoryScheme.Id; Code code = new Code(); codeScheme.Codes.Add(code); code.CategoryId = category.Id; code.CodeSchemeId = codeScheme.Id; code.Value = pair.Key.ToString(); } // Add Missing value if (v.MissingValues.Count > 0) { foreach (double missingValue in v.MissingValues) { string missingValueStr = missingValue.ToString(); if (ExistValue(codeScheme, missingValueStr)) { continue; } Category category = new Category(); categoryScheme.Categories.Add(category); category.Title = Resources.MissingValue; //Missing value category.IsMissingValue = true; category.CategorySchemeId = categoryScheme.Id; Code code = new Code(); codeScheme.Codes.Add(code); code.CategoryId = category.Id; code.CodeSchemeId = codeScheme.Id; code.Value = missingValueStr; } } } else { variable.Response.TypeCode = Options.RESPONSE_TYPE_NUMBER_CODE; } } } if (variables.Count > 0) { ConceptScheme conceptScheme = new ConceptScheme(); conceptScheme.Title = EDOUtils.UniqueLabel(ConceptScheme.GetTitles(studyUnitModel.ConceptSchemes), Resources.ImportVariable); //Imported Variable string name = Path.GetFileName(path); conceptScheme.Memo = EDOUtils.UniqueLabel(ConceptScheme.GetMemos(studyUnitModel.ConceptSchemes), string.Format(Resources.ImportVariableFrom, name)); //Imported variable from {0} Concept concept = new Concept(); concept.Title = EDOUtils.UniqueLabel(ConceptScheme.GetConceptTitles(studyUnitModel.ConceptSchemes), Resources.ImportVariable); //Imported Variable concept.Content = EDOUtils.UniqueLabel(ConceptScheme.GetConceptContents(studyUnitModel.ConceptSchemes), string.Format(Resources.ImportVariableFrom, name)); //Imported variable from {0} conceptScheme.Concepts.Add(concept); studyUnitModel.ConceptSchemes.Add(conceptScheme); foreach (Variable variable in variables) { Question question = new Question(); question.Title = variable.Label; question.ConceptId = concept.Id; question.Response.TypeCode = variable.Response.TypeCode; question.Response.CodeSchemeId = variable.Response.CodeSchemeId; question.VariableGenerationInfo = question.CreateVariableGenerationInfo(); studyUnitModel.Questions.Add(question); variable.ConceptId = concept.Id; variable.QuestionId = question.Id; studyUnitModel.Variables.Add(variable); } } return(true); }
public CodeSchemeVM(CodeScheme codeScheme) : this(codeScheme, new ObservableCollection <CodeVM>()) { }
public static void RenameIds(StudyUnit orgStudyUnit, StudyUnit newStudyUnit) { // renumber the ID of newStudyUnit to avoid duplication between ID of newStudyUnit ID and orgStudyUnit List <string> ids = CollectIds(orgStudyUnit); //0. StudyUnit itself RenameIds(newStudyUnit, ids); //1. Event RenameIds(newStudyUnit.Events, ids); //2. Member RenameIds(newStudyUnit.Members, ids, (result) => { Sampling.ChangeMemberId(newStudyUnit.Samplings, result.OldId, result.NewId); }); //3. Organization RenameIds(newStudyUnit.Organizations, ids, (result) => { Member.ChangeOrganizationId(newStudyUnit.Members, result.OldId, result.NewId); Sampling.ChangeMemberId(newStudyUnit.Samplings, result.OldId, result.NewId); }); //4. Abstract RenameIds(newStudyUnit.Abstract, ids); //5. Coverage RenameIds(newStudyUnit.Coverage, ids); //6. Funding Agency RenameIds(newStudyUnit.FundingInfos, ids); RenameIds(newStudyUnit.FundingInfoOrganizations, ids); //Organization of Funding Agency ////7.Universe RenameIds(newStudyUnit.AllUniverses, ids, (result) => { Variable.ChangeUniverseId(newStudyUnit.Variables, result.OldId, result.NewId); }); //8.Sampling RenameIds(newStudyUnit.Samplings, ids); //9. Concept Scheme RenameIds(newStudyUnit.ConceptSchemes, ids); //9-1. Concept RenameIds(ConceptScheme.GetConcepts(newStudyUnit.ConceptSchemes), ids, (result) => { Question.ChangeConceptId(newStudyUnit.Questions, result.OldId, result.NewId); Variable.ChangeConceptId(newStudyUnit.Variables, result.OldId, result.NewId); Book.ChangeMetaDataId(newStudyUnit.Books, result.OldId, result.NewId); }); //10. Question RenameIds(newStudyUnit.Questions, ids, (result) => { ControlConstructScheme.ChangeQuestionId(newStudyUnit.ControlConstructSchemes, result.OldId, result.NewId); Variable.ChangeQuestionId(newStudyUnit.Variables, result.OldId, result.NewId); Book.ChangeMetaDataId(newStudyUnit.Books, result.OldId, result.NewId); }); //11. Category Scheme RenameIds(newStudyUnit.CategorySchemes, ids, (result) => { CategoryScheme.ChangeCategorySchemeId(newStudyUnit.CategorySchemes, result.OldId, result.NewId); }); //11-1. Category RenameIds(CategoryScheme.GetCategories(newStudyUnit.CategorySchemes), ids, (result) => { CodeScheme.ChangeCategoryId(newStudyUnit.CodeSchemes, result.OldId, result.NewId); }); //12. Code Scheme RenameIds(newStudyUnit.CodeSchemes, ids, (result) => { CodeScheme.ChangeCodeSchemeId(newStudyUnit.CodeSchemes, result.OldId, result.NewId); }); //12-1. Code RenameIds(CodeScheme.GetCodes(newStudyUnit.CodeSchemes), ids); //13. Variable Scheme RenameIds(newStudyUnit.VariableScheme, ids); //14. Variable RenameIds(newStudyUnit.Variables, ids, (result) => { DataSet.ChangeVariableId(newStudyUnit.DataSets, result.OldId, result.NewId); Book.ChangeMetaDataId(newStudyUnit.Books, result.OldId, result.NewId); StatisticsInfo.ChangeVariableId(newStudyUnit.StatisticsInfos, result.OldId, result.NewId); }); //15. Dataset RenameIds(newStudyUnit.DataSets, ids, (result) => { DataFile.ChangeDataSetId(newStudyUnit.DataFiles, result.OldId, result.NewId); }); //16. Data File RenameIds(newStudyUnit.DataFiles, ids); //17. Order of Question RenameIds(newStudyUnit.ControlConstructSchemes, ids); //17-1.Sequence RenameIds(ControlConstructScheme.GetSequences(newStudyUnit.ControlConstructSchemes), ids); //17-2.Constructs RenameIds(ControlConstructScheme.GetConstructs(newStudyUnit.ControlConstructSchemes), ids, (result) => { ControlConstructScheme.ChangeControlConstructId(newStudyUnit.ControlConstructSchemes, result.OldId, result.NewId); }); //Related materials RenameIds(newStudyUnit.Books, ids); }