Esempio n. 1
0
        private void CreateVariableFor(QuestionVM question, int questionIndex)
        {
            VariableGenerationInfo oldInfo = question.VariableGenerationInfo;
            VariableGenerationInfo newInfo = question.CreateVariableGenerationInfo();

            if (oldInfo != null && oldInfo.VariableGenerationType == newInfo.VariableGenerationType)
            {
                return;
            }
            question.VariableGenerationInfo = newInfo;

            // remove old variables
            List <VariableVM> generatedVariables = VariableVM.FindByQuestionId(Variables, question.Id);

            Debug.WriteLine(generatedVariables.Count);
            int removeIndex = Variables.Count;

            foreach (VariableVM variable in generatedVariables)
            {
                if (removeIndex == Variables.Count)
                {
                    removeIndex = Variables.IndexOf(variable);
                }
                StudyUnit.OnRemoveVariable(variable);
                Variables.Remove(variable);
            }

            // create single or multiple variables
            if (newInfo.VariableGenerationType == VariableGenerationType.SingleVariable)
            {
                CreateVariable((variableMovel) => {
                    variableMovel.Title = "V" + (questionIndex + 1);
                }, question, removeIndex);
            }
            else
            {
                CodeSchemeVM         codeScheme = question.Response.CodeScheme;
                ICollection <CodeVM> codes      = codeScheme.Codes;
                string variablePrefix           = "V" + (questionIndex + 1) + "_";
                foreach (CodeVM code in codes)
                {
                    CreateVariable((variableModel) => {
                        variableModel.Title                 = variablePrefix + code.Value;
                        variableModel.Label                 = code.Label;
                        variableModel.Response              = question.DupResponseModel();
                        variableModel.Response.TypeCode     = Options.RESPONSE_TYPE_CHOICES_CODE;
                        variableModel.Response.CodeSchemeId = StudyUnit.BinaryCodeSchemeId;
                    }, question, removeIndex++);
                }
            }
        }
Esempio n. 2
0
 public VariableFormVM(StudyUnitVM studyUnit) : base(studyUnit)
 {
     variables = new ObservableCollection <VariableVM>();
     foreach (Variable variableModel in studyUnit.VariableModels)
     {
         //Create VariableVM
         VariableVM variable = new VariableVM(variableModel);
         InitVariable(variable);
         //Create ResponseVM
         variable.Response = CreateResponse(variableModel.Response);
         //Add to array
         variables.Add(variable);
     }
     modelSyncher = new ModelSyncher <VariableVM, Variable>(this, variables, studyUnit.VariableModels);
 }
Esempio n. 3
0
 public VariableFormVM(StudyUnitVM studyUnit)
     : base(studyUnit)
 {
     variables = new ObservableCollection<VariableVM>();
     foreach (Variable variableModel in studyUnit.VariableModels)
     {
         //VariableVMの生成
         VariableVM variable = new VariableVM(variableModel);
         InitVariable(variable);
         //ResponseVMの生成
         variable.Response = CreateResponse(variableModel.Response);
         //配列に追加
         variables.Add(variable);
     }
     modelSyncher = new ModelSyncher<VariableVM, Variable>(this, variables, studyUnit.VariableModels);
 }
Esempio n. 4
0
        private void CreateVariable(Action <Variable> action, QuestionVM question, int removeIndex)
        {
            Variable variableModel = new Variable();

            variableModel.Label      = question.Title;
            variableModel.ConceptId  = question.Question.ConceptId;
            variableModel.QuestionId = question.Id;
            variableModel.UniverseId = StudyUnit.DefaultUniverseGuid;
            variableModel.Response   = question.DupResponseModel();
            action(variableModel);

            variableModel.Response.Title      = null; //Stay this null because the title in Response Style of variables cannot be set.
            variableModel.GeneratorQuestionId = question.Id;

            VariableVM newVariable = new VariableVM(variableModel);

            InitVariable(newVariable);
            newVariable.Response = CreateResponse(variableModel.Response);
            Variables.Insert(removeIndex, newVariable);
        }
Esempio n. 5
0
 public void OnRemoveVariable(VariableVM variable)
 {
     dataSetForm.RemoveVariable(variable);
     bookForm.OnRemoveVariable(variable);
 }
Esempio n. 6
0
 public void InitVariable(VariableVM variable)
 {
     variable.Parent        = this;
     variable.ResponseTypes = Options.ResponseTypes;
 }
Esempio n. 7
0
 public List <VariableVM> FindVariablesByQuestionId(string questionId)
 {
     return(VariableVM.FindByQuestionId(Variables, questionId));
 }
Esempio n. 8
0
 public List <VariableVM> FindVariablesByUniverseId(string universeId)
 {
     return(VariableVM.FindByUniverseId(Variables, universeId));
 }
Esempio n. 9
0
 public VariableVM FindVariable(string variableId)
 {
     return(VariableVM.Find(Variables, variableId));
 }
Esempio n. 10
0
 private string VariableType(VariableVM variable)
 {
     ResponseVM response = variable.Response;
     string type = "";
     if (response.IsTypeChoices)
     {
         if (response.ValidCodes.Count > 0)
         {
             type = "F";
         }
         else
         {
             type = "A";
         }
     } else if (response.IsTypeNumber)
     {
         type = "F";
     }
     else if (response.IsTypeFree)
     {
         type = "A";
     }
     else if (response.IsTypeDateTime)
     {
         type = "F";
     }
     return type;
 }
Esempio n. 11
0
 private DataSetVariableVM createDataSetVariable(VariableVM variable)
 {
     ConceptVM concept = StudyUnit.FindConcept(variable.ConceptId);
     //if (concept == null)
     //{
     //    return null;
     //}
     DataSetVariableVM v = new DataSetVariableVM();
     v.Id = variable.Variable.Id;
     v.Title = variable.Title;
     v.Label = variable.Label;
     v.ConceptTitle = concept == null ? null : concept.Title;
     return v;
 }
Esempio n. 12
0
 public void RemoveVariable(VariableVM variable)
 {
     foreach (DataSetVM dataSet in dataSets)
     {
         dataSet.RemoveVariable(variable.Id);
     }
 }
Esempio n. 13
0
        private void CreateVariableFor(QuestionVM question)
        {
            if (question.IsCreatedVariable)
            {
                //既に生成済みの場合作らない
                return;
            }
            VariableVM variable = VariableVM.FindByQuestionId(Variables, question.Id);
            if (variable != null)
            {
                //既に存在している場合は作らない(フラグで処理しているので念のため?)
                return;
            }
            question.IsCreatedVariable = true;

            Variable variableModel = new Variable();
            variableModel.Title = "V" + (Variables.Count + 1);
            variableModel.Label = question.Title;
            variableModel.ConceptId = question.Question.ConceptId;
            variableModel.QuestionId = question.Id;
            variableModel.UniverseId = StudyUnit.DefaultUniverseGuid;
            variableModel.Response = question.DupResponseModel();
            variableModel.Response.Title = null; //変数の回答法にはタイトル設定はできないのでnullにしておく。こうしておくことで変数設計画面で1からコードをいれたときのコード群名の生成が正しくなる。

            VariableVM newVariable = new VariableVM(variableModel);
            InitVariable(newVariable);
            newVariable.Response = CreateResponse(variableModel.Response);
            variables.Add(newVariable);
        }
Esempio n. 14
0
 public void InitVariable(VariableVM variable)
 {
     variable.Parent = this;
     variable.ResponseTypes = Options.ResponseTypes;
 }
Esempio n. 15
0
 private XElement CreateVar(VariableVM variable)
 {
     string representationType = GetRepresentationType(variable.Response.TypeCode);
     string parentConvertId = ConvertId(variable.Id);
     XElement varElem = new XElement(cb + TAG_VAR,
         CreateIDAttribute(parentConvertId),
         CreateNullableAttr(ATTR_FILES, JoinDataSetIds(variable.Variable)),
         new XAttribute(ATTR_NAME, variable.Title),
         CreateNullableAttr(ATTR_REPRESENTATION_TYPE, representationType),
         new XAttribute(ATTR_INTRVL, "discrete"),
         CreateNullable(cb + TAG_LABL, variable.Label));
     QuestionVM question = studyUnit.FindQuestion(variable.QuestionId);
     if (question != null)
     {
         XElement qstn = CreateQstn(question);
         varElem.Add(qstn);
     }
     AppendResponseElelems(varElem, parentConvertId, variable.Response);
     return varElem;
 }
Esempio n. 16
0
 public void OnRemoveVariable(VariableVM variable)
 {
     RemoveBookRelationOfMetaData(variable.Id);
 }