private void ctrlBReportAddRecord_Click(object sender, System.EventArgs e) { var dlg = new Dlg_RecordSelectSource(); if (dlg.ShowDialog(this) == DialogResult.OK) { try { if (dlg.p_SelectedTemplate != null) { Cl_Record record = new Cl_Record(); record.p_DateCreate = DateTime.Now; record.p_DateLastChange = record.p_DateCreate; record.f_SetTemplate(dlg.p_SelectedTemplate); record.p_MedicalCard = Cl_SessionFacade.f_GetInstance().p_MedicalCard; record.p_MedicalCardID = record.p_MedicalCard.p_ID; record.p_ClinicName = Cl_SessionFacade.f_GetInstance().p_Doctor.p_ClinicName; record.f_SetDoctor(Cl_SessionFacade.f_GetInstance().p_Doctor); var dlgRecord = new Dlg_Record(); dlgRecord.e_Save += DlgRecord_e_Save; dlgRecord.p_Record = record; Cl_EntityLog.f_CustomMessageLog(E_EntityTypes.UIEvents, string.Format("Создание новой записи. Шаблон {0}", record.p_Template.p_Name)); dlgRecord.ShowDialog(this); } } catch (Exception er) { MonitoringStub.Error("Error_Editor", "Не удалось добавить запись", er, null, null); } } }
public void f_TestElementVisibleFromFormula() { //tag_one = "pat2"; tag_dva = 11; tag_tri = 5 var record = new Cl_Record() { p_Title = "Тест проверки формул" }; var medicalCard = new Cl_MedicalCard(); medicalCard.p_PatientSex = Core.Permision.Cl_User.E_Sex.Man; medicalCard.p_PatientDateBirth = new DateTime(1981, 4, 1); record.p_MedicalCard = medicalCard; record.p_Values = new List <Cl_RecordValue>(); var template = new Cl_Template() { p_Name = "Тест проверки формул", p_Type = Cl_Template.E_TemplateType.Template }; var elements = new List <Cl_TemplateElement>(); var element = new Cl_Element() { p_ID = 1, p_Name = "Формула 1", p_Tag = "one" }; element.p_ParamsValues = new List <Cl_ElementParam>(); for (int i = 1; i < 4; i++) { element.p_ParamsValues.Add(new Cl_ElementParam() { p_Element = element, p_TypeParam = Cl_ElementParam.E_TypeParam.NormValues, p_Value = "norm" + i.ToString() }); var ep = new Cl_ElementParam() { p_Element = element, p_TypeParam = Cl_ElementParam.E_TypeParam.PatValues, p_Value = "pat" + i.ToString() }; if (i == 2) { record.p_Values.Add(new Cl_RecordValue() { p_ElementID = element.p_ID, p_Element = element, p_Params = new List <Cl_RecordParam>() { new Cl_RecordParam() { p_ElementParam = ep } } }); } element.p_ParamsValues.Add(ep); } elements.Add(new Cl_TemplateElement() { p_Template = template, p_ChildElement = element, p_Index = 0 }); element = new Cl_Element() { p_ID = 2, p_Name = "Формула 2", p_Tag = "dva", p_IsNumber = true, p_NumberRound = 2 }; element.p_ParamsValues = new List <Cl_ElementParam>(); for (int i = 1; i < 4; i++) { element.p_ParamsValues.Add(new Cl_ElementParam() { p_Element = element, p_TypeParam = Cl_ElementParam.E_TypeParam.NormValues, p_Value = i.ToString() }); element.p_ParamsValues.Add(new Cl_ElementParam() { p_Element = element, p_TypeParam = Cl_ElementParam.E_TypeParam.PatValues, p_Value = i.ToString() }); } record.p_Values.Add(new Cl_RecordValue() { p_ElementID = element.p_ID, p_Element = element, p_ValueUser = "******" }); elements.Add(new Cl_TemplateElement() { p_Template = template, p_ChildElement = element, p_Index = 1 }); element = new Cl_Element() { p_ID = 3, p_Name = "Формула 3", p_Tag = "tri", p_IsNumber = true, p_NumberRound = 2 }; element.p_ParamsValues = new List <Cl_ElementParam>(); for (int i = 1; i < 4; i++) { element.p_ParamsValues.Add(new Cl_ElementParam() { p_Element = element, p_TypeParam = Cl_ElementParam.E_TypeParam.NormValues, p_Value = i.ToString() }); element.p_ParamsValues.Add(new Cl_ElementParam() { p_Element = element, p_TypeParam = Cl_ElementParam.E_TypeParam.PatValues, p_Value = i.ToString() }); } record.p_Values.Add(new Cl_RecordValue() { p_ElementID = element.p_ID, p_Element = element, p_ValueUser = "******" }); elements.Add(new Cl_TemplateElement() { p_Template = template, p_ChildElement = element, p_Index = 2 }); template.p_TemplateElements = elements; record.f_SetTemplate(template); bool actual = Cl_RecordsFacade.f_GetInstance().f_GetElementVisible(record, "tag_one = \"pat2\""); Assert.AreEqual(true, actual); actual = Cl_RecordsFacade.f_GetInstance().f_GetElementVisible(record, "tag_one = tag_one"); Assert.AreEqual(true, actual); actual = Cl_RecordsFacade.f_GetInstance().f_GetElementVisible(record, "tag_dva > 10"); Assert.AreEqual(true, actual); actual = Cl_RecordsFacade.f_GetInstance().f_GetElementVisible(record, "tag_dva < 15"); Assert.AreEqual(true, actual); actual = Cl_RecordsFacade.f_GetInstance().f_GetElementVisible(record, "tag_dva = 11"); Assert.AreEqual(true, actual); actual = Cl_RecordsFacade.f_GetInstance().f_GetElementVisible(record, "tag_dva > 14"); Assert.AreEqual(false, actual); actual = Cl_RecordsFacade.f_GetInstance().f_GetElementVisible(record, "tag_dva < 11"); Assert.AreEqual(false, actual); actual = Cl_RecordsFacade.f_GetInstance().f_GetElementVisible(record, "tag_one = \"pat2\" И tag_dva > 10 ИЛИ tag_tri = 3"); Assert.AreEqual(true, actual); actual = Cl_RecordsFacade.f_GetInstance().f_GetElementVisible(record, "tag_one = \"pat2\" И tag_dva < 12 ИЛИ tag_tri = 3"); Assert.AreEqual(true, actual); actual = Cl_RecordsFacade.f_GetInstance().f_GetElementVisible(record, "tag_one = \"pat2\" И tag_dva = 11 ИЛИ tag_tri = 3"); Assert.AreEqual(true, actual); actual = Cl_RecordsFacade.f_GetInstance().f_GetElementVisible(record, "tag_one = \"pat2\" И tag_dva = 13 ИЛИ tag_tri = 5"); Assert.AreEqual(true, actual); actual = Cl_RecordsFacade.f_GetInstance().f_GetElementVisible(record, "tag_one = \"pat2\" И tag_dva = 13 ИЛИ tag_tri > 4"); Assert.AreEqual(true, actual); actual = Cl_RecordsFacade.f_GetInstance().f_GetElementVisible(record, "tag_one = \"pat2\" И tag_dva = 13 ИЛИ tag_tri < 6"); Assert.AreEqual(true, actual); actual = Cl_RecordsFacade.f_GetInstance().f_GetElementVisible(record, "tag_one = \"pat2\" И tag_dva = 13 ИЛИ tag_tri < tag_dva"); Assert.AreEqual(true, actual); actual = Cl_RecordsFacade.f_GetInstance().f_GetElementVisible(record, "tag_one = \"pat2\" И tag_dva = 13 ИЛИ tag_tri > tag_dva"); Assert.AreEqual(false, actual); actual = Cl_RecordsFacade.f_GetInstance().f_GetElementVisible(record, "tag_one = \"pat2\" И tag_dva = 13 ИЛИ tag_tri = 6"); Assert.AreEqual(false, actual); actual = Cl_RecordsFacade.f_GetInstance().f_GetElementVisible(record, "tag_one = \"pat2\" И tag_dva = 13"); Assert.AreEqual(false, actual); actual = Cl_RecordsFacade.f_GetInstance().f_GetElementVisible(record, "tag_one = \"pat2\" И tag_dva > 11"); Assert.AreEqual(false, actual); actual = Cl_RecordsFacade.f_GetInstance().f_GetElementVisible(record, "tag_one = \"pat2\" И tag_dva < 11"); Assert.AreEqual(false, actual); actual = Cl_RecordsFacade.f_GetInstance().f_GetElementVisible(record, "tag_one = \"pat3\" И tag_dva = 11"); Assert.AreEqual(false, actual); actual = Cl_RecordsFacade.f_GetInstance().f_GetElementVisible(record, "tag_one = \"\" И tag_dva = 11"); Assert.AreEqual(false, actual); actual = Cl_RecordsFacade.f_GetInstance().f_GetElementVisible(record, "tag_gender = man И tag_age > 10"); Assert.AreEqual(true, actual); actual = Cl_RecordsFacade.f_GetInstance().f_GetElementVisible(record, "tag_gender = man И tag_age > 40"); Assert.AreEqual(false, actual); actual = Cl_RecordsFacade.f_GetInstance().f_GetElementVisible(record, "tag_gender = female И tag_age > 10"); Assert.AreEqual(false, actual); actual = Cl_RecordsFacade.f_GetInstance().f_GetElementVisible(record, "tag_gender = female"); Assert.AreEqual(false, actual); }
public void f_TestElementMathematicalFormula() { //tag_one = "14"; tag_dva = 11; tag_tri = 5 var record = new Cl_Record() { p_Title = "Тест проверки формул" }; record.p_Values = new List <Cl_RecordValue>(); var template = new Cl_Template() { p_Name = "Тест проверки формул", p_Type = Cl_Template.E_TemplateType.Template }; var elements = new List <Cl_TemplateElement>(); var element = new Cl_Element() { p_ID = 1, p_Name = "Формула 1", p_Tag = "one", p_IsNumber = true, p_NumberRound = 3 }; element.p_ParamsValues = new List <Cl_ElementParam>(); for (int i = 1; i < 4; i++) { element.p_ParamsValues.Add(new Cl_ElementParam() { p_Element = element, p_TypeParam = Cl_ElementParam.E_TypeParam.NormValues, p_Value = i.ToString() }); element.p_ParamsValues.Add(new Cl_ElementParam() { p_Element = element, p_TypeParam = Cl_ElementParam.E_TypeParam.PatValues, p_Value = i.ToString() }); } record.p_Values.Add(new Cl_RecordValue() { p_ElementID = element.p_ID, p_Element = element, p_ValueUser = "******" }); elements.Add(new Cl_TemplateElement() { p_Template = template, p_ChildElement = element, p_Index = 0 }); element = new Cl_Element() { p_ID = 2, p_Name = "Формула 2", p_Tag = "dva", p_IsNumber = true, p_NumberRound = 2 }; element.p_ParamsValues = new List <Cl_ElementParam>(); for (int i = 1; i < 4; i++) { element.p_ParamsValues.Add(new Cl_ElementParam() { p_Element = element, p_TypeParam = Cl_ElementParam.E_TypeParam.NormValues, p_Value = i.ToString() }); element.p_ParamsValues.Add(new Cl_ElementParam() { p_Element = element, p_TypeParam = Cl_ElementParam.E_TypeParam.PatValues, p_Value = i.ToString() }); } record.p_Values.Add(new Cl_RecordValue() { p_ElementID = element.p_ID, p_Element = element, p_ValueUser = "******" }); elements.Add(new Cl_TemplateElement() { p_Template = template, p_ChildElement = element, p_Index = 1 }); element = new Cl_Element() { p_ID = 3, p_Name = "Формула 3", p_Tag = "tri", p_IsNumber = true, p_NumberRound = 2 }; element.p_ParamsValues = new List <Cl_ElementParam>(); for (int i = 1; i < 4; i++) { element.p_ParamsValues.Add(new Cl_ElementParam() { p_Element = element, p_TypeParam = Cl_ElementParam.E_TypeParam.NormValues, p_Value = i.ToString() }); element.p_ParamsValues.Add(new Cl_ElementParam() { p_Element = element, p_TypeParam = Cl_ElementParam.E_TypeParam.PatValues, p_Value = i.ToString() }); } record.p_Values.Add(new Cl_RecordValue() { p_ElementID = element.p_ID, p_Element = element, p_ValueUser = "******" }); elements.Add(new Cl_TemplateElement() { p_Template = template, p_ChildElement = element, p_Index = 2 }); element = new Cl_Element() { p_ID = 4, p_Name = "Формула 4", p_Tag = "chet", p_IsNumber = true, p_NumberRound = 2, p_NumberFormula = "tag_dva - 100" }; //record.p_Values.Add(new Cl_RecordValue() { p_ElementID = element.p_ID, p_Element = element }); elements.Add(new Cl_TemplateElement() { p_Template = template, p_ChildElement = element, p_Index = 4 }); template.p_TemplateElements = elements; record.f_SetTemplate(template); decimal?result = Cl_RecordsFacade.f_GetInstance().f_GetElementMathematicValue(record, "tag_one + 3"); Assert.AreEqual(17, result); result = Cl_RecordsFacade.f_GetInstance().f_GetElementMathematicValue(record, "tag_one + 8"); Assert.AreEqual(22, result); result = Cl_RecordsFacade.f_GetInstance().f_GetElementMathematicValue(record, "tag_one - 3"); Assert.AreEqual(11, result); result = Cl_RecordsFacade.f_GetInstance().f_GetElementMathematicValue(record, "tag_dva - 8"); Assert.AreEqual(3, result); result = Cl_RecordsFacade.f_GetInstance().f_GetElementMathematicValue(record, "tag_dva * 11"); Assert.AreEqual(121, result); result = Cl_RecordsFacade.f_GetInstance().f_GetElementMathematicValue(record, "tag_dva / 2"); Assert.AreEqual((decimal)5.5, result); result = Cl_RecordsFacade.f_GetInstance().f_GetElementMathematicValue(record, "tag_tri - 7"); Assert.AreEqual(-2, result); result = Cl_RecordsFacade.f_GetInstance().f_GetElementMathematicValue(record, "tag_one + tag_dva - tag_tri"); Assert.AreEqual(20, result); result = Cl_RecordsFacade.f_GetInstance().f_GetElementMathematicValue(record, "tag_one * tag_dva / tag_tri"); Assert.AreEqual((decimal)30.8, result); result = Cl_RecordsFacade.f_GetInstance().f_GetElementMathematicValue(record, "tag_one / tag_chet / tag_chet"); Assert.AreEqual((decimal)0.001767, Math.Round(result.Value, 6)); }