From 4105783ab9f76d37413e4a32c08b14e6a12cc856 Mon Sep 17 00:00:00 2001 From: user Date: Sun, 12 Jul 2026 15:08:43 +0400 Subject: [PATCH] Initial commit --- .gitignore | 46 + Register office/Register office.sln | 25 + .../Register office/BaseClasses/UnionId.cs | 14 + .../Register office/ExcelManager.cs | 70 + .../Register office/Model/Analysis.cs | 25 + .../Register office/Model/Disease.cs | 31 + .../Register office/Model/DiseaseSyndrome.cs | 61 + .../Register office/Model/Doctor.cs | 18 + .../Register office/Model/DrugIntakeMethod.cs | 21 + .../Register office/Model/DrugType.cs | 30 + .../Model/DrugTypePrescription.cs | 93 + .../Register office/Model/Enums.cs | 29 + .../Register office/Model/ExaminationType.cs | 33 + .../Model/ExaminationTypePrescription.cs | 70 + .../Model/HospitalAdmission.cs | 71 + .../Model/HospitalDischarge.cs | 75 + .../Register office/Model/NumericResult.cs | 21 + .../Register office/Model/Patient.cs | 72 + .../Register office/Model/Person.cs | 40 + .../Register office/Model/Prescription.cs | 65 + .../Register office/Model/ProcedureType.cs | 22 + .../Model/ProcedureTypePrescription.cs | 64 + .../Model/QualitativeResult.cs | 16 + .../Model/ReferenceNumericValue.cs | 63 + .../Model/ReferenceQualitativeValue.cs | 24 + .../Register office/Model/ReferenceValue.cs | 71 + .../Register office/Model/Registrar.cs | 15 + .../Register office/Model/Result.cs | 61 + .../Model/SyndromeExaminationType.cs | 55 + .../Register office/Model/SyndromeType.cs | 24 + Register office/Register office/Model/Unit.cs | 27 + Register office/Register office/Program.cs | 57 + .../Properties/RegisterOfficeContext.cs | 556 ++++ .../Properties/RegisterOfficeFactory.cs | 29 + .../Properties/Settings.Designer.cs | 74 + .../Properties/Settings.settings | 18 + .../Register office/Register office.csproj | 91 + .../HospitalDischargeDataForm.Designer.cs | 158 + .../HospitalV/HospitalDischargeDataForm.cs | 81 + .../HospitalV/HospitalDischargeDataForm.resx | 120 + .../View/HospitalV/HospitalForm.Designer.cs | 263 ++ .../View/HospitalV/HospitalForm.cs | 156 + .../View/HospitalV/HospitalForm.resx | 126 + .../View/MenuV/OnlyMenuForm.Designer.cs | 237 ++ .../View/MenuV/OnlyMenuForm.cs | 149 + .../View/MenuV/OnlyMenuForm.resx | 123 + .../View/PatientV/PatientDataForm.Designer.cs | 281 ++ .../View/PatientV/PatientDataForm.cs | 120 + .../View/PatientV/PatientDataForm.resx | 120 + .../View/PatientV/PatientForm.Designer.cs | 181 ++ .../View/PatientV/PatientForm.cs | 92 + .../View/PatientV/PatientForm.resx | 126 + .../PrescriptionsV/DrugDataForm.Designer.cs | 244 ++ .../View/PrescriptionsV/DrugDataForm.cs | 124 + .../View/PrescriptionsV/DrugDataForm.resx | 120 + .../ExaminationDataForm.Designer.cs | 147 + .../PrescriptionsV/ExaminationDataForm.cs | 130 + .../PrescriptionsV/ExaminationDataForm.resx | 120 + .../PrescriptionForm.Designer.cs | 258 ++ .../View/PrescriptionsV/PrescriptionForm.cs | 124 + .../View/PrescriptionsV/PrescriptionForm.resx | 126 + .../ProcedureDataForm.Designer.cs | 157 + .../View/PrescriptionsV/ProcedureDataForm.cs | 108 + .../PrescriptionsV/ProcedureDataForm.resx | 120 + .../PrescriptionsV/ResultDataForm.Designer.cs | 217 ++ .../View/PrescriptionsV/ResultDataForm.cs | 161 + .../View/PrescriptionsV/ResultDataForm.resx | 120 + .../ConnectionParametersForm.Designer.cs | 164 + .../RegistrationV/ConnectionParametersForm.cs | 10 + .../ConnectionParametersForm.resx | 120 + .../View/RegistrationV/LoginForm.Designer.cs | 121 + .../View/RegistrationV/LoginForm.cs | 53 + .../View/RegistrationV/LoginForm.resx | 120 + .../View/TypesV/DiseaseForm.Designer.cs | 219 ++ .../View/TypesV/DiseaseForm.cs | 83 + .../View/TypesV/DiseaseForm.resx | 126 + .../TypesV/DiseaseSyndromeForm.Designer.cs | 221 ++ .../View/TypesV/DiseaseSyndromeForm.cs | 101 + .../View/TypesV/DiseaseSyndromeForm.resx | 126 + .../TypesV/DrugIntakeMethodForm.Designer.cs | 193 ++ .../View/TypesV/DrugIntakeMethodForm.cs | 79 + .../View/TypesV/DrugIntakeMethodForm.resx | 126 + .../View/TypesV/DrugTypeForm.Designer.cs | 271 ++ .../View/TypesV/DrugTypeForm.cs | 93 + .../View/TypesV/DrugTypeForm.resx | 126 + .../TypesV/ExaminationTypeForm.Designer.cs | 220 ++ .../View/TypesV/ExaminationTypeForm.cs | 84 + .../View/TypesV/ExaminationTypeForm.resx | 126 + .../View/TypesV/ProcedureTypeForm.Designer.cs | 193 ++ .../View/TypesV/ProcedureTypeForm.cs | 81 + .../View/TypesV/ProcedureTypeForm.resx | 126 + .../TypesV/ReferenceValueForm.Designer.cs | 291 ++ .../View/TypesV/ReferenceValueForm.cs | 110 + .../View/TypesV/ReferenceValueForm.resx | 126 + .../TypesV/ReferenceValueQNForm.Designer.cs | 214 ++ .../View/TypesV/ReferenceValueQNForm.cs | 109 + .../View/TypesV/ReferenceValueQNForm.resx | 120 + .../SyndromeExaminationTypeForm.Designer.cs | 221 ++ .../TypesV/SyndromeExaminationTypeForm.cs | 101 + .../TypesV/SyndromeExaminationTypeForm.resx | 126 + .../View/TypesV/SyndromeTypeForm.Designer.cs | 193 ++ .../View/TypesV/SyndromeTypeForm.cs | 81 + .../View/TypesV/SyndromeTypeForm.resx | 126 + .../View/TypesV/UnitForm.Designer.cs | 193 ++ .../Register office/View/TypesV/UnitForm.cs | 81 + .../Register office/View/TypesV/UnitForm.resx | 126 + .../ViewModel/GeneralViewModel.cs | 113 + .../ViewModel/HospitalViewModel.cs | 170 + .../ViewModel/LoginVM/LoginViewModel.cs | 43 + .../ViewModel/OnlyMenuViewModel.cs | 37 + .../ViewModel/PatientViewModel.cs | 169 + .../ViewModel/PrescriptionViewModel.cs | 175 ++ .../ViewModel/ResultViewModel.cs | 92 + .../ViewModel/TypeViewModel.cs | 251 ++ artifacts/gui/2025-12-07_18-27.png | Bin 0 -> 40461 bytes artifacts/gui/2025-12-07_18-28.png | Bin 0 -> 24250 bytes artifacts/gui/2025-12-07_18-52.png | Bin 0 -> 24274 bytes artifacts/gui/2025-12-07_18-53.png | Bin 0 -> 48484 bytes artifacts/gui/2025-12-07_18-53_1.png | Bin 0 -> 251100 bytes artifacts/gui/2025-12-07_18-54.png | Bin 0 -> 133289 bytes artifacts/gui/2025-12-07_18-54_1.png | Bin 0 -> 53668 bytes artifacts/gui/2025-12-07_22-41.png | Bin 0 -> 162612 bytes artifacts/gui/2025-12-07_22-45.png | Bin 0 -> 68949 bytes artifacts/gui/2025-12-07_22-45_1.png | Bin 0 -> 64990 bytes artifacts/gui/2025-12-07_22-46.png | Bin 0 -> 73538 bytes artifacts/gui/2025-12-07_22-46_1.png | Bin 0 -> 62144 bytes artifacts/gui/2025-12-07_22-47.png | Bin 0 -> 89274 bytes backup_plain.sql | 833 +++++ migrations/account.sql | 94 + migrations/backup.sql | Bin 0 -> 92055 bytes migrations/backup_plain.sql | 2726 +++++++++++++++++ migrations/backup_tar.sql | Bin 0 -> 188928 bytes migrations/copy_from_csv.sql | 3 + migrations/csv/female_first_names.csv | 10 + migrations/csv/female_last_names.csv | 10 + migrations/csv/female_middle_names.csv | 10 + migrations/csv/male_first_names.csv | 10 + migrations/csv/male_last_names.csv | 10 + migrations/csv/male_middle_names.csv | 10 + migrations/csv/streets.csv | 10 + migrations/csv/units.csv | 10 + migrations/functions.sql | 72 + migrations/insert_persons.sql | 134 + migrations/reports.sql | 23 + migrations/tables.sql | 286 ++ migrations/triggers_hospital_admission.sql | 82 + migrations/triggers_hospital_discharge.sql | 55 + migrations/triggers_numeric_results.sql | 29 + migrations/triggers_qualitative_results.sql | 29 + migrations/types.sql | 26 + 150 files changed, 17708 insertions(+) create mode 100644 .gitignore create mode 100644 Register office/Register office.sln create mode 100644 Register office/Register office/BaseClasses/UnionId.cs create mode 100644 Register office/Register office/ExcelManager.cs create mode 100644 Register office/Register office/Model/Analysis.cs create mode 100644 Register office/Register office/Model/Disease.cs create mode 100644 Register office/Register office/Model/DiseaseSyndrome.cs create mode 100644 Register office/Register office/Model/Doctor.cs create mode 100644 Register office/Register office/Model/DrugIntakeMethod.cs create mode 100644 Register office/Register office/Model/DrugType.cs create mode 100644 Register office/Register office/Model/DrugTypePrescription.cs create mode 100644 Register office/Register office/Model/Enums.cs create mode 100644 Register office/Register office/Model/ExaminationType.cs create mode 100644 Register office/Register office/Model/ExaminationTypePrescription.cs create mode 100644 Register office/Register office/Model/HospitalAdmission.cs create mode 100644 Register office/Register office/Model/HospitalDischarge.cs create mode 100644 Register office/Register office/Model/NumericResult.cs create mode 100644 Register office/Register office/Model/Patient.cs create mode 100644 Register office/Register office/Model/Person.cs create mode 100644 Register office/Register office/Model/Prescription.cs create mode 100644 Register office/Register office/Model/ProcedureType.cs create mode 100644 Register office/Register office/Model/ProcedureTypePrescription.cs create mode 100644 Register office/Register office/Model/QualitativeResult.cs create mode 100644 Register office/Register office/Model/ReferenceNumericValue.cs create mode 100644 Register office/Register office/Model/ReferenceQualitativeValue.cs create mode 100644 Register office/Register office/Model/ReferenceValue.cs create mode 100644 Register office/Register office/Model/Registrar.cs create mode 100644 Register office/Register office/Model/Result.cs create mode 100644 Register office/Register office/Model/SyndromeExaminationType.cs create mode 100644 Register office/Register office/Model/SyndromeType.cs create mode 100644 Register office/Register office/Model/Unit.cs create mode 100644 Register office/Register office/Program.cs create mode 100644 Register office/Register office/Properties/RegisterOfficeContext.cs create mode 100644 Register office/Register office/Properties/RegisterOfficeFactory.cs create mode 100644 Register office/Register office/Properties/Settings.Designer.cs create mode 100644 Register office/Register office/Properties/Settings.settings create mode 100644 Register office/Register office/Register office.csproj create mode 100644 Register office/Register office/View/HospitalV/HospitalDischargeDataForm.Designer.cs create mode 100644 Register office/Register office/View/HospitalV/HospitalDischargeDataForm.cs create mode 100644 Register office/Register office/View/HospitalV/HospitalDischargeDataForm.resx create mode 100644 Register office/Register office/View/HospitalV/HospitalForm.Designer.cs create mode 100644 Register office/Register office/View/HospitalV/HospitalForm.cs create mode 100644 Register office/Register office/View/HospitalV/HospitalForm.resx create mode 100644 Register office/Register office/View/MenuV/OnlyMenuForm.Designer.cs create mode 100644 Register office/Register office/View/MenuV/OnlyMenuForm.cs create mode 100644 Register office/Register office/View/MenuV/OnlyMenuForm.resx create mode 100644 Register office/Register office/View/PatientV/PatientDataForm.Designer.cs create mode 100644 Register office/Register office/View/PatientV/PatientDataForm.cs create mode 100644 Register office/Register office/View/PatientV/PatientDataForm.resx create mode 100644 Register office/Register office/View/PatientV/PatientForm.Designer.cs create mode 100644 Register office/Register office/View/PatientV/PatientForm.cs create mode 100644 Register office/Register office/View/PatientV/PatientForm.resx create mode 100644 Register office/Register office/View/PrescriptionsV/DrugDataForm.Designer.cs create mode 100644 Register office/Register office/View/PrescriptionsV/DrugDataForm.cs create mode 100644 Register office/Register office/View/PrescriptionsV/DrugDataForm.resx create mode 100644 Register office/Register office/View/PrescriptionsV/ExaminationDataForm.Designer.cs create mode 100644 Register office/Register office/View/PrescriptionsV/ExaminationDataForm.cs create mode 100644 Register office/Register office/View/PrescriptionsV/ExaminationDataForm.resx create mode 100644 Register office/Register office/View/PrescriptionsV/PrescriptionForm.Designer.cs create mode 100644 Register office/Register office/View/PrescriptionsV/PrescriptionForm.cs create mode 100644 Register office/Register office/View/PrescriptionsV/PrescriptionForm.resx create mode 100644 Register office/Register office/View/PrescriptionsV/ProcedureDataForm.Designer.cs create mode 100644 Register office/Register office/View/PrescriptionsV/ProcedureDataForm.cs create mode 100644 Register office/Register office/View/PrescriptionsV/ProcedureDataForm.resx create mode 100644 Register office/Register office/View/PrescriptionsV/ResultDataForm.Designer.cs create mode 100644 Register office/Register office/View/PrescriptionsV/ResultDataForm.cs create mode 100644 Register office/Register office/View/PrescriptionsV/ResultDataForm.resx create mode 100644 Register office/Register office/View/RegistrationV/ConnectionParametersForm.Designer.cs create mode 100644 Register office/Register office/View/RegistrationV/ConnectionParametersForm.cs create mode 100644 Register office/Register office/View/RegistrationV/ConnectionParametersForm.resx create mode 100644 Register office/Register office/View/RegistrationV/LoginForm.Designer.cs create mode 100644 Register office/Register office/View/RegistrationV/LoginForm.cs create mode 100644 Register office/Register office/View/RegistrationV/LoginForm.resx create mode 100644 Register office/Register office/View/TypesV/DiseaseForm.Designer.cs create mode 100644 Register office/Register office/View/TypesV/DiseaseForm.cs create mode 100644 Register office/Register office/View/TypesV/DiseaseForm.resx create mode 100644 Register office/Register office/View/TypesV/DiseaseSyndromeForm.Designer.cs create mode 100644 Register office/Register office/View/TypesV/DiseaseSyndromeForm.cs create mode 100644 Register office/Register office/View/TypesV/DiseaseSyndromeForm.resx create mode 100644 Register office/Register office/View/TypesV/DrugIntakeMethodForm.Designer.cs create mode 100644 Register office/Register office/View/TypesV/DrugIntakeMethodForm.cs create mode 100644 Register office/Register office/View/TypesV/DrugIntakeMethodForm.resx create mode 100644 Register office/Register office/View/TypesV/DrugTypeForm.Designer.cs create mode 100644 Register office/Register office/View/TypesV/DrugTypeForm.cs create mode 100644 Register office/Register office/View/TypesV/DrugTypeForm.resx create mode 100644 Register office/Register office/View/TypesV/ExaminationTypeForm.Designer.cs create mode 100644 Register office/Register office/View/TypesV/ExaminationTypeForm.cs create mode 100644 Register office/Register office/View/TypesV/ExaminationTypeForm.resx create mode 100644 Register office/Register office/View/TypesV/ProcedureTypeForm.Designer.cs create mode 100644 Register office/Register office/View/TypesV/ProcedureTypeForm.cs create mode 100644 Register office/Register office/View/TypesV/ProcedureTypeForm.resx create mode 100644 Register office/Register office/View/TypesV/ReferenceValueForm.Designer.cs create mode 100644 Register office/Register office/View/TypesV/ReferenceValueForm.cs create mode 100644 Register office/Register office/View/TypesV/ReferenceValueForm.resx create mode 100644 Register office/Register office/View/TypesV/ReferenceValueQNForm.Designer.cs create mode 100644 Register office/Register office/View/TypesV/ReferenceValueQNForm.cs create mode 100644 Register office/Register office/View/TypesV/ReferenceValueQNForm.resx create mode 100644 Register office/Register office/View/TypesV/SyndromeExaminationTypeForm.Designer.cs create mode 100644 Register office/Register office/View/TypesV/SyndromeExaminationTypeForm.cs create mode 100644 Register office/Register office/View/TypesV/SyndromeExaminationTypeForm.resx create mode 100644 Register office/Register office/View/TypesV/SyndromeTypeForm.Designer.cs create mode 100644 Register office/Register office/View/TypesV/SyndromeTypeForm.cs create mode 100644 Register office/Register office/View/TypesV/SyndromeTypeForm.resx create mode 100644 Register office/Register office/View/TypesV/UnitForm.Designer.cs create mode 100644 Register office/Register office/View/TypesV/UnitForm.cs create mode 100644 Register office/Register office/View/TypesV/UnitForm.resx create mode 100644 Register office/Register office/ViewModel/GeneralViewModel.cs create mode 100644 Register office/Register office/ViewModel/HospitalViewModel.cs create mode 100644 Register office/Register office/ViewModel/LoginVM/LoginViewModel.cs create mode 100644 Register office/Register office/ViewModel/OnlyMenuViewModel.cs create mode 100644 Register office/Register office/ViewModel/PatientViewModel.cs create mode 100644 Register office/Register office/ViewModel/PrescriptionViewModel.cs create mode 100644 Register office/Register office/ViewModel/ResultViewModel.cs create mode 100644 Register office/Register office/ViewModel/TypeViewModel.cs create mode 100644 artifacts/gui/2025-12-07_18-27.png create mode 100644 artifacts/gui/2025-12-07_18-28.png create mode 100644 artifacts/gui/2025-12-07_18-52.png create mode 100644 artifacts/gui/2025-12-07_18-53.png create mode 100644 artifacts/gui/2025-12-07_18-53_1.png create mode 100644 artifacts/gui/2025-12-07_18-54.png create mode 100644 artifacts/gui/2025-12-07_18-54_1.png create mode 100644 artifacts/gui/2025-12-07_22-41.png create mode 100644 artifacts/gui/2025-12-07_22-45.png create mode 100644 artifacts/gui/2025-12-07_22-45_1.png create mode 100644 artifacts/gui/2025-12-07_22-46.png create mode 100644 artifacts/gui/2025-12-07_22-46_1.png create mode 100644 artifacts/gui/2025-12-07_22-47.png create mode 100644 backup_plain.sql create mode 100644 migrations/account.sql create mode 100644 migrations/backup.sql create mode 100644 migrations/backup_plain.sql create mode 100644 migrations/backup_tar.sql create mode 100644 migrations/copy_from_csv.sql create mode 100644 migrations/csv/female_first_names.csv create mode 100644 migrations/csv/female_last_names.csv create mode 100644 migrations/csv/female_middle_names.csv create mode 100644 migrations/csv/male_first_names.csv create mode 100644 migrations/csv/male_last_names.csv create mode 100644 migrations/csv/male_middle_names.csv create mode 100644 migrations/csv/streets.csv create mode 100644 migrations/csv/units.csv create mode 100644 migrations/functions.sql create mode 100644 migrations/insert_persons.sql create mode 100644 migrations/reports.sql create mode 100644 migrations/tables.sql create mode 100644 migrations/triggers_hospital_admission.sql create mode 100644 migrations/triggers_hospital_discharge.sql create mode 100644 migrations/triggers_numeric_results.sql create mode 100644 migrations/triggers_qualitative_results.sql create mode 100644 migrations/types.sql diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..164fbde --- /dev/null +++ b/.gitignore @@ -0,0 +1,46 @@ +# Build output +bin/ +obj/ + +# Build folders +Debug/ +Release/ +net*/ +publish/ + +# Visual Studio +.vs/ +*.user +*.suo +*.userosscache +*.sln.docstates + +# Rider / JetBrains +.idea/ +*.sln.iml + +# NuGet +*.nupkg +packages/ +.nuget/ + +# Logs +*.log + +# Database backups (если не нужны как часть проекта) +*.bak +*.tar + +# Temporary files +*.tmp +*.temp + +# OS files +.DS_Store +Thumbs.db + +# Screenshots / temporary images +# (уберите, если картинки нужны в документации) +# *.png +# *.jpg +# *.jpeg diff --git a/Register office/Register office.sln b/Register office/Register office.sln new file mode 100644 index 0000000..ceebd7e --- /dev/null +++ b/Register office/Register office.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.14.36603.0 d17.14 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Register office", "Register office\Register office.csproj", "{C8CBA323-4CD6-46D0-81AA-1C986EB50C6B}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {C8CBA323-4CD6-46D0-81AA-1C986EB50C6B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C8CBA323-4CD6-46D0-81AA-1C986EB50C6B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C8CBA323-4CD6-46D0-81AA-1C986EB50C6B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C8CBA323-4CD6-46D0-81AA-1C986EB50C6B}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {4BE06EF1-D35E-4B49-A77D-D46964AC9895} + EndGlobalSection +EndGlobal diff --git a/Register office/Register office/BaseClasses/UnionId.cs b/Register office/Register office/BaseClasses/UnionId.cs new file mode 100644 index 0000000..ee9403e --- /dev/null +++ b/Register office/Register office/BaseClasses/UnionId.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Register_office.BaseClasses +{ + internal interface IUnionId + { + public abstract object GetId(); + + } +} diff --git a/Register office/Register office/ExcelManager.cs b/Register office/Register office/ExcelManager.cs new file mode 100644 index 0000000..6c41010 --- /dev/null +++ b/Register office/Register office/ExcelManager.cs @@ -0,0 +1,70 @@ +using OfficeOpenXml; +using OfficeOpenXml.Drawing.Chart; +using System.ComponentModel; +using System.Diagnostics; +using System.Reflection; + +namespace Register_office +{ + internal class ExcelManager + { + public static void ExportToExcel(List data, string filePath) + { + ExcelPackage.License.SetNonCommercialOrganization("Grant"); + + using var package = new ExcelPackage(); + var worksheet = package.Workbook.Worksheets.Add("Отчёт"); + + // Получаем свойства класса + var properties = typeof(T).GetProperties(); + + // Заголовки (используем атрибут [DisplayName] или имя свойства) + for (int i = 0; i < properties.Length; i++) + { + var displayNameAttr = properties[i].GetCustomAttribute(); + worksheet.Cells[1, i + 1].Value = displayNameAttr?.DisplayName ?? properties[i].Name; + } + + // Данные + for (int i = 0; i < data.Count; i++) + { + for (int j = 0; j < properties.Length; j++) + { + worksheet.Cells[i + 2, j + 1].Value = properties[j].GetValue(data[i]); + } + } + + worksheet.Cells[worksheet.Dimension.Address].AutoFitColumns(); + try + { + File.WriteAllBytes(filePath, package.GetAsByteArray()); + } + catch (Exception) + { + MessageBox.Show($"Не получилось сформировать отчет. Пожалуйста, закройте открытый файл отчета", + "Отчет о наличии ЛП в конце дня", + MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + public static void OpenExcelFile(string filePath) + { + try + { + var process = new Process + { + StartInfo = new ProcessStartInfo(filePath) + { + UseShellExecute = true // Ключевой параметр! + } + }; + process.Start(); + } + catch (Exception ex) + { + MessageBox.Show($"Не удалось открыть файл: {ex.Message}", "Отчет о наличии ЛП в конце дня", + MessageBoxButtons.OK, MessageBoxIcon.Information); + } + } + } +} diff --git a/Register office/Register office/Model/Analysis.cs b/Register office/Register office/Model/Analysis.cs new file mode 100644 index 0000000..ac1be66 --- /dev/null +++ b/Register office/Register office/Model/Analysis.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.ComponentModel.DataAnnotations.Schema; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Register_office.Model +{ + internal class Analysis + { + [DisplayName("Пациент")] + [Column("Пациент")] + public string Patient { get; set; } + + [DisplayName("Обследование")] + [Column("Обследование")] + public string Examination { get; set; } + + [DisplayName("Результат")] + [Column("Результат")] + public string Result { get; set; } + } +} diff --git a/Register office/Register office/Model/Disease.cs b/Register office/Register office/Model/Disease.cs new file mode 100644 index 0000000..7ef6b48 --- /dev/null +++ b/Register office/Register office/Model/Disease.cs @@ -0,0 +1,31 @@ +using Register_office.BaseClasses; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.ComponentModel.DataAnnotations; +using System.Windows.Forms.Design.Behavior; + +namespace Register_office.Model; + +public partial class Disease : IUnionId +{ + public object GetId() => DiseaseId; + + [Display(Name = "hide")] + public int DiseaseId { get; set; } + + [Display(Name = "Название")] + public string Name { get; set; } = null!; + + [Display(Name = "Код МКБ")] + public string IcdCode { get; set; } = null!; + + [Browsable(false)] + public virtual ICollection DiseaseSyndromes { get; set; } = new List(); + + [Browsable(false)] + public virtual ICollection HospitalAdmissions { get; set; } = new List(); + + [Browsable(false)] + public virtual ICollection HospitalDischarges { get; set; } = new List(); +} diff --git a/Register office/Register office/Model/DiseaseSyndrome.cs b/Register office/Register office/Model/DiseaseSyndrome.cs new file mode 100644 index 0000000..41718f5 --- /dev/null +++ b/Register office/Register office/Model/DiseaseSyndrome.cs @@ -0,0 +1,61 @@ +using Register_office.BaseClasses; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.ComponentModel.DataAnnotations; + +namespace Register_office.Model; + +public partial class DiseaseSyndrome : IUnionId +{ + public object GetId() => DiseaseSyndromeId; + + public int DiseaseSyndromeId { get; set; } + + public int DiseaseId { get; set; } + + public int SyndromeId { get; set; } + + public virtual Disease Disease { get; set; } = null!; + + public virtual SyndromeType Syndrome { get; set; } = null!; +} + +internal class DiseaseSyndromeWrapper +{ + [Display(Name = "hide")] + public int DiseaseSyndromeId { get; set; } + + [Display(Name = "hide")] + public int DiseaseId { get; set; } + + [Display(Name = "hide")] + public int SyndromeId { get; set; } + + [Display(Name = "Заболевание")] + public string DiseaseName { get; set; } = null!; + + [Display(Name = "Синдром")] + public string SyndromeName { get; set; } = null!; + + public DiseaseSyndromeWrapper(DiseaseSyndrome src) + { + DiseaseSyndromeId = src.DiseaseSyndromeId; + DiseaseId = src.DiseaseId; + SyndromeId = src.SyndromeId; + DiseaseName = src.Disease.Name; + SyndromeName = src.Syndrome.Name; + } + + internal static List ToList(List src) + { + List res = []; + + foreach (DiseaseSyndrome lst in src) + { + res.Add(new DiseaseSyndromeWrapper(lst)); + } + + return res; + } +} \ No newline at end of file diff --git a/Register office/Register office/Model/Doctor.cs b/Register office/Register office/Model/Doctor.cs new file mode 100644 index 0000000..d533782 --- /dev/null +++ b/Register office/Register office/Model/Doctor.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.ComponentModel.DataAnnotations; + +namespace Register_office.Model; + +public partial class Doctor +{ + [Display(Name = "hide")] + public int DoctorId { get; set; } + + [Display(Name = "Данные")] + public virtual Person DoctorNavigation { get; set; } = null!; + + [Browsable(false)] + public virtual ICollection Prescriptions { get; set; } = new List(); +} diff --git a/Register office/Register office/Model/DrugIntakeMethod.cs b/Register office/Register office/Model/DrugIntakeMethod.cs new file mode 100644 index 0000000..778b462 --- /dev/null +++ b/Register office/Register office/Model/DrugIntakeMethod.cs @@ -0,0 +1,21 @@ +using Register_office.BaseClasses; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.ComponentModel.DataAnnotations; + +namespace Register_office.Model; + +public partial class DrugIntakeMethod : IUnionId +{ + public object GetId() => DrugIntakeMethodId; + + [Display(Name = "hide")] + public int DrugIntakeMethodId { get; set; } + + [Display(Name = "Название")] + public string Name { get; set; } = null!; + + [Browsable(false)] + public virtual ICollection DrugTypePrescriptions { get; set; } = new List(); +} diff --git a/Register office/Register office/Model/DrugType.cs b/Register office/Register office/Model/DrugType.cs new file mode 100644 index 0000000..59e5d92 --- /dev/null +++ b/Register office/Register office/Model/DrugType.cs @@ -0,0 +1,30 @@ +using Register_office.BaseClasses; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.ComponentModel.DataAnnotations; + +namespace Register_office.Model; + +public partial class DrugType : IUnionId +{ + public object GetId() => DrugTypeId; + + [Display(Name = "hide")] + public int DrugTypeId { get; set; } + + [Display(Name = "Название на русском")] + public string InternationalNameRu { get; set; } = null!; + + [Display(Name = "Название на английском")] + public string? InternationalNameEn { get; set; } + + [Display(Name = "Название на латинском")] + public string? InternationalNameLa { get; set; } + + [Display(Name = "Брэнд")] + public string? BrandNameRu { get; set; } + + [Browsable(false)] + public virtual ICollection DrugTypePrescriptions { get; set; } = new List(); +} diff --git a/Register office/Register office/Model/DrugTypePrescription.cs b/Register office/Register office/Model/DrugTypePrescription.cs new file mode 100644 index 0000000..e03ea60 --- /dev/null +++ b/Register office/Register office/Model/DrugTypePrescription.cs @@ -0,0 +1,93 @@ +using Register_office.BaseClasses; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.ComponentModel.DataAnnotations; + +namespace Register_office.Model; + +public partial class DrugTypePrescription : IUnionId +{ + public object GetId() => DrugPrescriptionId; + + public int DrugPrescriptionId { get; set; } + + public int PrescriptionId { get; set; } + + public int DrugTypeId { get; set; } + + public decimal Dose { get; set; } + + public int DoseUnitId { get; set; } + + public int IntakeMethodId { get; set; } + + public int DurationDays { get; set; } + + public virtual Unit DoseUnit { get; set; } = null!; + + public virtual DrugType DrugType { get; set; } = null!; + + public virtual DrugIntakeMethod IntakeMethod { get; set; } = null!; + + public virtual Prescription Prescription { get; set; } = null!; +} + +internal class DrugTypePrescriptionWrapper +{ + [Display(Name = "hide")] + public int DrugPrescriptionId { get; set; } + + [Display(Name = "hide")] + public int PrescriptionId { get; set; } + + [Display(Name = "hide")] + public int DrugTypeId { get; set; } + + [Display(Name = "Лекарства")] + public string DrugName { get; set; } = null!; + + [Display(Name = "Количество")] + public decimal Dose { get; set; } + + [Display(Name = "hide")] + public int DoseUnitId { get; set; } + + [Display(Name = "Единица изм.")] + public string UnitName { get; set; } = null!; + + [Display(Name = "hide")] + public int IntakeMethodId { get; set; } + + [Display(Name = "Способ приема")] + public string IntakeMethodName { get; set; } = null!; + + [Display(Name = "Длительность")] + public int DurationDays { get; set; } + + public DrugTypePrescriptionWrapper(DrugTypePrescription src) + { + DrugPrescriptionId = src.DrugPrescriptionId; + PrescriptionId = src.PrescriptionId; + DrugTypeId = src.DrugTypeId; + DrugName = src.DrugType.InternationalNameRu; + Dose = src.Dose; + DoseUnitId = src.DoseUnitId; + UnitName = src.DoseUnit.Name; + IntakeMethodId = src.IntakeMethodId; + IntakeMethodName = src.IntakeMethod.Name; + DurationDays = src.DurationDays; + } + + internal static List ToList(List src) + { + List res = []; + + foreach (DrugTypePrescription lst in src) + { + res.Add(new DrugTypePrescriptionWrapper(lst)); + } + + return res; + } +} \ No newline at end of file diff --git a/Register office/Register office/Model/Enums.cs b/Register office/Register office/Model/Enums.cs new file mode 100644 index 0000000..51bc5fb --- /dev/null +++ b/Register office/Register office/Model/Enums.cs @@ -0,0 +1,29 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Register_office.Model +{ + public enum ExaminationCategories + { + Physical, // физикальное обследование + Laboratory, // лабораторное обследование + Instrumental // инструментальное обследование + } + + public enum HospitalDischargeReasonEnum + { + Death, // смерть + Improvement, // улучшение состояния + Refusal // отказ от госпитализации или дальнейшего лечения + } + + public enum GenderEnum + { + Male, // мужчина + Female // женщина + } + +} diff --git a/Register office/Register office/Model/ExaminationType.cs b/Register office/Register office/Model/ExaminationType.cs new file mode 100644 index 0000000..6110b79 --- /dev/null +++ b/Register office/Register office/Model/ExaminationType.cs @@ -0,0 +1,33 @@ +using Register_office.BaseClasses; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.ComponentModel.DataAnnotations; + +namespace Register_office.Model; + +public partial class ExaminationType : IUnionId +{ + public object GetId() => ExaminationTypeId; + + [Display(Name = "hide")] + public int ExaminationTypeId { get; set; } + + [Display(Name = "Название")] + public string Name { get; set; } = null!; + + [Display(Name = "Категория")] + public string Category { get; set; } = null!; + + [Browsable(false)] + public virtual ICollection ExaminationTypePrescriptions { get; set; } = new List(); + + [Browsable(false)] + public virtual ICollection ReferenceValues { get; set; } = new List(); + + [Browsable(false)] + public virtual Result? Result { get; set; } + + [Browsable(false)] + public virtual SyndromeExaminationType? SyndromeExaminationType { get; set; } +} diff --git a/Register office/Register office/Model/ExaminationTypePrescription.cs b/Register office/Register office/Model/ExaminationTypePrescription.cs new file mode 100644 index 0000000..cd5b237 --- /dev/null +++ b/Register office/Register office/Model/ExaminationTypePrescription.cs @@ -0,0 +1,70 @@ +using Register_office.BaseClasses; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.ComponentModel.DataAnnotations; + +namespace Register_office.Model; + +public partial class ExaminationTypePrescription : IUnionId +{ + public object GetId() => ExaminationPrescriptionId; + + public int ExaminationPrescriptionId { get; set; } + + public int PrescriptionId { get; set; } + + public int? ResultId { get; set; } + + public int ExaminationTypeId { get; set; } + + public virtual ExaminationType ExaminationType { get; set; } = null!; + + public virtual Prescription Prescription { get; set; } = null!; + + public virtual Result? Result { get; set; } +} + +internal class ExaminationTypePrescriptionWrapper +{ + [Display(Name = "hide")] + public int ExaminationPrescriptionId { get; set; } + + [Display(Name = "hide")] + public int PrescriptionId { get; set; } + + [Display(Name = "hide")] + public int? ResultId { get; set; } + + [Display(Name = "hide")] + public int ExaminationTypeId { get; set; } + + [Display(Name = "Результат")] + public string Result { get; set; } = null!; + + [Display(Name = "Обследование")] + public string ExaminationName { get; set; } = null!; + + public ExaminationTypePrescriptionWrapper(ExaminationTypePrescription src) + { + ExaminationPrescriptionId = src.ExaminationPrescriptionId; + PrescriptionId = src.PrescriptionId; + ResultId = src.ResultId; + ExaminationTypeId = src.ExaminationTypeId; + if (src.Result != null) + Result = new ResultWrapper(src.Result).Result; + ExaminationName = src.ExaminationType.Name; + } + + internal static List ToList(List src) + { + List res = []; + + foreach (ExaminationTypePrescription lst in src) + { + res.Add(new ExaminationTypePrescriptionWrapper(lst)); + } + + return res; + } +} diff --git a/Register office/Register office/Model/HospitalAdmission.cs b/Register office/Register office/Model/HospitalAdmission.cs new file mode 100644 index 0000000..3ed9f02 --- /dev/null +++ b/Register office/Register office/Model/HospitalAdmission.cs @@ -0,0 +1,71 @@ +using Register_office.BaseClasses; +using Register_office.Model; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.ComponentModel.DataAnnotations; + +namespace Register_office; + +public partial class HospitalAdmission : IUnionId +{ + public object GetId() => HospitalAdmissionId; + + public int HospitalAdmissionId { get; set; } + + public int PatientId { get; set; } + + public int PreliminaryDiseaseId { get; set; } + + public DateTime AdmissionDatetime { get; set; } + + public virtual ICollection HospitalDischarges { get; set; } = new List(); + + public virtual Patient Patient { get; set; } = null!; + + public virtual Disease PreliminaryDisease { get; set; } = null!; +} + +internal class HospitalAdmissionWrapper +{ + [Display(Name = "hide")] + public int HospitalAdmissionId { get; set; } + + [Display(Name = "hide")] + public int PatientId { get; set; } + + [Display(Name = "hide")] + public int PreliminaryDiseaseId { get; set; } + + [Display(Name = "Пациент")] + public string PatientName { get; set; } = null!; + + [Display(Name = "Заболевание")] + public string DiseaseName { get; set; } = null!; + + [Display(Name = "Время")] + public DateTime AdmissionDatetime { get; set; } + + public HospitalAdmissionWrapper(HospitalAdmission src) + { + HospitalAdmissionId = src.HospitalAdmissionId; + PatientId = src.PatientId; + PreliminaryDiseaseId = src.PreliminaryDiseaseId; + DiseaseName = src.PreliminaryDisease.Name; + AdmissionDatetime = src.AdmissionDatetime; + Person p = src.Patient.PatientNavigation; + PatientName = p.LastName + " " + p.FirstName + " " + p.MiddleName; + } + + internal static List ToList(List src) + { + List res = []; + + foreach (HospitalAdmission lst in src) + { + res.Add(new HospitalAdmissionWrapper(lst)); + } + + return res; + } +} \ No newline at end of file diff --git a/Register office/Register office/Model/HospitalDischarge.cs b/Register office/Register office/Model/HospitalDischarge.cs new file mode 100644 index 0000000..454bdb9 --- /dev/null +++ b/Register office/Register office/Model/HospitalDischarge.cs @@ -0,0 +1,75 @@ +using Register_office.BaseClasses; +using Register_office.Model; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.ComponentModel.DataAnnotations; + +namespace Register_office; + +public partial class HospitalDischarge : IUnionId +{ + public object GetId() => HospitalDischargeId; + + public int HospitalDischargeId { get; set; } + + public int HospitalAdmissionId { get; set; } + + public DateTime DischargeDatetime { get; set; } + + public int FinalDiseaseId { get; set; } + + public string Reason { get; set; } = null!; + + public virtual Disease FinalDisease { get; set; } = null!; + + public virtual HospitalAdmission HospitalAdmission { get; set; } = null!; +} + +internal class HospitalDischargeWrapper +{ + [Display(Name = "hide")] + public int HospitalDischargeId { get; set; } + + [Display(Name = "hide")] + public int HospitalAdmissionId { get; set; } + + [Display(Name = "Пациент")] + public string PatientName { get; set; } = null!; + + [Display(Name = "Предв. заболевание")] + public string DiseasePrName { get; set; } = null!; + + [Display(Name = "Финал. заболевание")] + public string DiseaseFinName { get; set; } = null!; + + [Display(Name = "Время")] + public DateTime DischargeDatetime { get; set; } + + [Display(Name = "Причина завершения")] + public string Reason { get; set; } = null!; + + public HospitalDischargeWrapper(HospitalDischarge src) + { + HospitalAdmissionId = src.HospitalAdmissionId; + HospitalDischargeId = src.HospitalDischargeId; + DiseasePrName = src.HospitalAdmission.PreliminaryDisease.Name; + DiseaseFinName = src.FinalDisease.Name; + DischargeDatetime = src.DischargeDatetime; + Reason = src.Reason; + Person p = src.HospitalAdmission.Patient.PatientNavigation; + PatientName = p.LastName + " " + p.FirstName + " " + p.MiddleName; + } + + internal static List ToList(List src) + { + List res = []; + + foreach (HospitalDischarge lst in src) + { + res.Add(new HospitalDischargeWrapper(lst)); + } + + return res; + } +} \ No newline at end of file diff --git a/Register office/Register office/Model/NumericResult.cs b/Register office/Register office/Model/NumericResult.cs new file mode 100644 index 0000000..e697f0e --- /dev/null +++ b/Register office/Register office/Model/NumericResult.cs @@ -0,0 +1,21 @@ +using Register_office.BaseClasses; +using Register_office.Model; +using System; +using System.Collections.Generic; + +namespace Register_office; + +public partial class NumericResult : IUnionId +{ + public object GetId() => ResultId; + + public int ResultId { get; set; } + + public decimal Value { get; set; } + + public int UnitId { get; set; } + + public virtual Result Result { get; set; } = null!; + + public virtual Unit Unit { get; set; } = null!; +} diff --git a/Register office/Register office/Model/Patient.cs b/Register office/Register office/Model/Patient.cs new file mode 100644 index 0000000..7a3c723 --- /dev/null +++ b/Register office/Register office/Model/Patient.cs @@ -0,0 +1,72 @@ +using Register_office.Model; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.ComponentModel.DataAnnotations; + +namespace Register_office; + +public partial class Patient +{ + public int PatientId { get; set; } + + public string PolicyNumber { get; set; } = null!; + + public virtual ICollection HospitalAdmissions { get; set; } = new List(); + + public virtual Person PatientNavigation { get; set; } = null!; + + public virtual ICollection Prescriptions { get; set; } = new List(); +} + +internal class PatientWrapper +{ + [Display(Name = "hide")] + public int PatientId { get; set; } + + [Display(Name = "Полис")] + public string PolicyNumber { get; set; } = null!; + + [Display(Name = "Отчество")] + public string LastName { get; set; } = null!; + + [Display(Name = "Имя")] + public string FirstName { get; set; } = null!; + + [Display(Name = "Фамилия")] + public string? MiddleName { get; set; } + + [Display(Name = "Дата рождения")] + public DateOnly BirthDate { get; set; } + + [Display(Name = "Адрес")] + public string Address { get; set; } = null!; + + [Display(Name = "Пол")] + public string Gender { get; set; } = null!; + + public PatientWrapper(Patient src) + { + PatientId = src.PatientId; + PolicyNumber = src.PolicyNumber; + Person p = src.PatientNavigation; + LastName = p.LastName; + FirstName = p.FirstName; + MiddleName = p.MiddleName; + BirthDate = p.BirthDate; + Address = p.Address; + Gender = p.Gender; + } + + internal static List ToList(List src) + { + List res = []; + + foreach (Patient lst in src) + { + res.Add(new PatientWrapper(lst)); + } + + return res; + } +} \ No newline at end of file diff --git a/Register office/Register office/Model/Person.cs b/Register office/Register office/Model/Person.cs new file mode 100644 index 0000000..ff24d7f --- /dev/null +++ b/Register office/Register office/Model/Person.cs @@ -0,0 +1,40 @@ +using Register_office.Model; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.ComponentModel.DataAnnotations; + +namespace Register_office; + +public partial class Person +{ + [Display(Name = "hide")] + public int PersonId { get; set; } + + [Display(Name = "Отчество")] + public string LastName { get; set; } = null!; + + [Display(Name = "Имя")] + public string FirstName { get; set; } = null!; + + [Display(Name = "Фамилия")] + public string? MiddleName { get; set; } + + [Display(Name = "Дата рождения")] + public DateOnly BirthDate { get; set; } + + [Display(Name = "Адрес")] + public string Address { get; set; } = null!; + + [Display(Name = "Пол")] + public string Gender { get; set; } = null!; + + [Browsable(false)] + public virtual Doctor? Doctor { get; set; } + + [Browsable(false)] + public virtual Patient? Patient { get; set; } + + [Browsable(false)] + public virtual Registrar? Registrar { get; set; } +} diff --git a/Register office/Register office/Model/Prescription.cs b/Register office/Register office/Model/Prescription.cs new file mode 100644 index 0000000..202992e --- /dev/null +++ b/Register office/Register office/Model/Prescription.cs @@ -0,0 +1,65 @@ +using Register_office.BaseClasses; +using Register_office.Model; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.ComponentModel.DataAnnotations; + +namespace Register_office; + +public partial class Prescription : IUnionId +{ + public object GetId() => PrescriptionId; + + public int PrescriptionId { get; set; } + + public int PatientId { get; set; } + + public int DoctorId { get; set; } + + public virtual Doctor Doctor { get; set; } = null!; + + public virtual DrugTypePrescription? DrugTypePrescription { get; set; } + + public virtual ExaminationTypePrescription? ExaminationTypePrescription { get; set; } + + public virtual Patient Patient { get; set; } = null!; + + public virtual ProcedureTypePrescription? ProcedureTypePrescription { get; set; } +} + +internal class PrescriptionWrapper +{ + [Display(Name = "hide")] + public int PrescriptionId { get; set; } + + [Display(Name = "hide")] + public int PatientId { get; set; } + + [Display(Name = "hide")] + public int DoctorId { get; set; } + + [Display(Name = "Пациент")] + public string PatientName { get; set; } = null!; + + public PrescriptionWrapper(Prescription src) + { + PrescriptionId = src.PrescriptionId; + PatientId = src.PatientId; + DoctorId = src.DoctorId; + Person p = src.Patient.PatientNavigation; + PatientName = p.LastName + " " + p.FirstName + " " + p.MiddleName; + } + + internal static List ToList(List src) + { + List res = []; + + foreach (Prescription lst in src) + { + res.Add(new PrescriptionWrapper(lst)); + } + + return res; + } +} diff --git a/Register office/Register office/Model/ProcedureType.cs b/Register office/Register office/Model/ProcedureType.cs new file mode 100644 index 0000000..6ebe6d3 --- /dev/null +++ b/Register office/Register office/Model/ProcedureType.cs @@ -0,0 +1,22 @@ +using Register_office.BaseClasses; +using Register_office.Model; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.ComponentModel.DataAnnotations; + +namespace Register_office; + +public partial class ProcedureType : IUnionId +{ + public object GetId() => ProcedureTypeId; + + [Display(Name = "hide")] + public int ProcedureTypeId { get; set; } + + [Display(Name = "Название")] + public string Name { get; set; } = null!; + + [Browsable(false)] + public virtual ICollection ProcedureTypePrescriptions { get; set; } = new List(); +} diff --git a/Register office/Register office/Model/ProcedureTypePrescription.cs b/Register office/Register office/Model/ProcedureTypePrescription.cs new file mode 100644 index 0000000..2c77aba --- /dev/null +++ b/Register office/Register office/Model/ProcedureTypePrescription.cs @@ -0,0 +1,64 @@ +using Register_office.BaseClasses; +using Register_office.Model; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.ComponentModel.DataAnnotations; + +namespace Register_office; + +public partial class ProcedureTypePrescription : IUnionId +{ + public object GetId() => ProcedurePrescriptionId; + + public int ProcedurePrescriptionId { get; set; } + + public int PrescriptionId { get; set; } + + public int ProcedureTypeId { get; set; } + + public DateTime ScheduledDatetime { get; set; } + + public virtual Prescription Prescription { get; set; } = null!; + + public virtual ProcedureType ProcedureType { get; set; } = null!; +} + +internal class ProcedureTypePrescriptionWrapper +{ + [Display(Name = "hide")] + public int ProcedurePrescriptionId { get; set; } + + [Display(Name = "hide")] + public int PrescriptionId { get; set; } + + [Display(Name = "hide")] + public int ProcedureTypeId { get; set; } + + [Display(Name = "Запланированное время")] + public DateTime ScheduledDatetime { get; set; } + + [Display(Name = "Процедура")] + public string ProcedureName { get; set; } = null!; + + public ProcedureTypePrescriptionWrapper(ProcedureTypePrescription src) + { + ProcedurePrescriptionId = src.ProcedurePrescriptionId; + PrescriptionId = src.PrescriptionId; + ProcedureTypeId = src.ProcedureTypeId; + ScheduledDatetime = src.ScheduledDatetime; + ProcedureName = src.ProcedureType.Name; + } + + internal static List ToList(List src) + { + List res = []; + + foreach (ProcedureTypePrescription lst in src) + { + res.Add(new ProcedureTypePrescriptionWrapper(lst)); + } + + return res; + } +} diff --git a/Register office/Register office/Model/QualitativeResult.cs b/Register office/Register office/Model/QualitativeResult.cs new file mode 100644 index 0000000..99f33a1 --- /dev/null +++ b/Register office/Register office/Model/QualitativeResult.cs @@ -0,0 +1,16 @@ +using Register_office.BaseClasses; +using System; +using System.Collections.Generic; + +namespace Register_office.Model; + +public partial class QualitativeResult : IUnionId +{ + public object GetId() => ResultId; + + public int ResultId { get; set; } + + public bool Value { get; set; } + + public virtual Result Result { get; set; } = null!; +} diff --git a/Register office/Register office/Model/ReferenceNumericValue.cs b/Register office/Register office/Model/ReferenceNumericValue.cs new file mode 100644 index 0000000..59ffe1c --- /dev/null +++ b/Register office/Register office/Model/ReferenceNumericValue.cs @@ -0,0 +1,63 @@ +using Register_office.BaseClasses; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.ComponentModel.DataAnnotations; + +namespace Register_office.Model; + +public partial class ReferenceNumericValue : IUnionId +{ + public object GetId() => ReferenceValueId; + + public int ReferenceValueId { get; set; } + + public decimal? MinValue { get; set; } + + public decimal? MaxValue { get; set; } + + public int UnitId { get; set; } + + public virtual ReferenceValue ReferenceValue { get; set; } = null!; + + public virtual Unit Unit { get; set; } = null!; +} + +internal class ReferenceNumericValueWrapper +{ + [Display(Name = "hide")] + public int ReferenceValueId { get; set; } + + [Display(Name = "Мин.")] + public decimal? MinValue { get; set; } + + [Display(Name = "Макс.")] + public decimal? MaxValue { get; set; } + + [Display(Name = "hide")] + public int UnitId { get; set; } + + [Display(Name = "Единица изм.")] + public string UnitName { get; set; } = null!; + + public ReferenceNumericValueWrapper(ReferenceNumericValue src) + { + ReferenceValueId = src.ReferenceValueId; + MinValue = src.MinValue; + MaxValue = src.MaxValue; + UnitId = src.UnitId; + UnitName = src.Unit.Name; + } + + internal static List ToList(List src) + { + List res = []; + + foreach (ReferenceNumericValue lst in src) + { + res.Add(new ReferenceNumericValueWrapper(lst)); + } + + return res; + } +} diff --git a/Register office/Register office/Model/ReferenceQualitativeValue.cs b/Register office/Register office/Model/ReferenceQualitativeValue.cs new file mode 100644 index 0000000..e0adeb5 --- /dev/null +++ b/Register office/Register office/Model/ReferenceQualitativeValue.cs @@ -0,0 +1,24 @@ +using Register_office.BaseClasses; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.ComponentModel.DataAnnotations; + +namespace Register_office.Model; + +public partial class ReferenceQualitativeValue : IUnionId +{ + public object GetId() => ReferenceValueId; + + [Display(Name = "hide")] + public int ReferenceValueId { get; set; } + + [Display(Name = "Опис. наличия")] + public string DescriptionTrue { get; set; } = null!; + + [Display(Name = "Опис. отсутствия")] + public string DescriptionFalse { get; set; } = null!; + + [Browsable(false)] + public virtual ReferenceValue ReferenceValue { get; set; } = null!; +} diff --git a/Register office/Register office/Model/ReferenceValue.cs b/Register office/Register office/Model/ReferenceValue.cs new file mode 100644 index 0000000..07d9250 --- /dev/null +++ b/Register office/Register office/Model/ReferenceValue.cs @@ -0,0 +1,71 @@ +using Register_office.BaseClasses; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.ComponentModel.DataAnnotations; + +namespace Register_office.Model; + +public partial class ReferenceValue : IUnionId +{ + public object GetId() => ReferenceValueId; + + public int ReferenceValueId { get; set; } + + public int ExaminationTypeId { get; set; } + + public int? AgeMin { get; set; } + + public int? AgeMax { get; set; } + + public string Gender { get; set; } = null!; + + public virtual ExaminationType ExaminationType { get; set; } = null!; + + public virtual ReferenceNumericValue? ReferenceNumericValue { get; set; } + + public virtual ReferenceQualitativeValue? ReferenceQualitativeValue { get; set; } +} + +internal class ReferenceValueWrapper +{ + [Display(Name = "hide")] + public int ReferenceValueId { get; set; } + + [Display(Name = "hide")] + public int ExaminationTypeId { get; set; } + + [Display(Name = "Мин. возраст")] + public int? AgeMin { get; set; } + + [Display(Name = "Макс. возраст")] + public int? AgeMax { get; set; } + + [Display(Name = "Обследование")] + public string ExaminationName { get; set; } = null!; + + [Display(Name = "Пол")] + public string Gender { get; set; } = null!; + + public ReferenceValueWrapper(ReferenceValue src) + { + ReferenceValueId = src.ReferenceValueId; + ExaminationTypeId = src.ExaminationTypeId; + AgeMin = src.AgeMin; + AgeMax = src.AgeMax; + ExaminationName = src.ExaminationType.Name; + Gender = src.Gender; + } + + internal static List ToList(List src) + { + List res = []; + + foreach (ReferenceValue lst in src) + { + res.Add(new ReferenceValueWrapper(lst)); + } + + return res; + } +} diff --git a/Register office/Register office/Model/Registrar.cs b/Register office/Register office/Model/Registrar.cs new file mode 100644 index 0000000..ec897d4 --- /dev/null +++ b/Register office/Register office/Model/Registrar.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.ComponentModel.DataAnnotations; + +namespace Register_office.Model; + +public partial class Registrar +{ + [Display(Name = "hide")] + public int RegistrarId { get; set; } + + [Display(Name = "Данные")] + public virtual Person RegistrarNavigation { get; set; } = null!; +} diff --git a/Register office/Register office/Model/Result.cs b/Register office/Register office/Model/Result.cs new file mode 100644 index 0000000..a499a72 --- /dev/null +++ b/Register office/Register office/Model/Result.cs @@ -0,0 +1,61 @@ +using Register_office.BaseClasses; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.ComponentModel.DataAnnotations; + +namespace Register_office.Model; + +public partial class Result : IUnionId +{ + public object GetId() => ResultId; + + public int ResultId { get; set; } + + public int ExaminationId { get; set; } + + public virtual ExaminationType Examination { get; set; } = null!; + + public virtual ICollection ExaminationTypePrescriptions { get; set; } = new List(); + + public virtual NumericResult? NumericResult { get; set; } + + public virtual QualitativeResult? QualitativeResult { get; set; } +} + +internal class ResultWrapper +{ + [Display(Name = "hide")] + public int ResultId { get; set; } + + [Display(Name = "hide")] + public int ExaminationId { get; set; } + + [Display(Name = "Обследование")] + public string Examination { get; set; } = null!; + + [Display(Name = "Результат")] + public string Result { get; set; } = null!; + + public ResultWrapper(Result src) + { + ResultId = src.ResultId; + ExaminationId = src.ExaminationId; + Examination = src.Examination.Name; + Result = src.NumericResult != null + ? src.NumericResult.Value + " " + src.NumericResult.Unit + : (src.QualitativeResult?.Value == true ? "Положительный" : "Отрициательный"); + } + + internal static List ToList(List src) + { + List res = []; + + foreach (Result lst in src) + { + res.Add(new ResultWrapper(lst)); + } + + return res; + } +} diff --git a/Register office/Register office/Model/SyndromeExaminationType.cs b/Register office/Register office/Model/SyndromeExaminationType.cs new file mode 100644 index 0000000..035d57c --- /dev/null +++ b/Register office/Register office/Model/SyndromeExaminationType.cs @@ -0,0 +1,55 @@ +using Register_office.BaseClasses; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.ComponentModel.DataAnnotations; + +namespace Register_office.Model; + +public partial class SyndromeExaminationType : IUnionId +{ + public object GetId() => string.Concat(SyndromeId, ExaminationTypeId); + + public int SyndromeId { get; set; } + + public int ExaminationTypeId { get; set; } + + public virtual ExaminationType ExaminationType { get; set; } = null!; + + public virtual SyndromeType Syndrome { get; set; } = null!; +} + +internal class SyndromeExaminationTypeWrapper +{ + [Display(Name = "hide")] + public int SyndromeId { get; set; } + + [Display(Name = "hide")] + public int ExaminationTypeId { get; set; } + + [Display(Name = "Синдром")] + public string SyndromeName { get; set; } = null!; + + [Display(Name = "Обследование")] + public string ExaminationName { get; set; } = null!; + + public SyndromeExaminationTypeWrapper(SyndromeExaminationType src) + { + SyndromeId = src.SyndromeId; + ExaminationTypeId = src.ExaminationTypeId; + SyndromeName = src.Syndrome.Name; + ExaminationName = src.ExaminationType.Name; + } + + internal static List ToList(List src) + { + List res = []; + + foreach (SyndromeExaminationType lst in src) + { + res.Add(new SyndromeExaminationTypeWrapper(lst)); + } + + return res; + } +} diff --git a/Register office/Register office/Model/SyndromeType.cs b/Register office/Register office/Model/SyndromeType.cs new file mode 100644 index 0000000..d797ee5 --- /dev/null +++ b/Register office/Register office/Model/SyndromeType.cs @@ -0,0 +1,24 @@ +using Register_office.BaseClasses; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.ComponentModel.DataAnnotations; + +namespace Register_office.Model; + +public partial class SyndromeType : IUnionId +{ + public object GetId() => SyndromeTypeId; + + [Display(Name = "hide")] + public int SyndromeTypeId { get; set; } + + [Display(Name = "Название")] + public string Name { get; set; } = null!; + + [Browsable(false)] + public virtual ICollection DiseaseSyndromes { get; set; } = new List(); + + [Browsable(false)] + public virtual SyndromeExaminationType? SyndromeExaminationType { get; set; } +} diff --git a/Register office/Register office/Model/Unit.cs b/Register office/Register office/Model/Unit.cs new file mode 100644 index 0000000..cb6b1b6 --- /dev/null +++ b/Register office/Register office/Model/Unit.cs @@ -0,0 +1,27 @@ +using Register_office.BaseClasses; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.ComponentModel.DataAnnotations; + +namespace Register_office.Model; + +public partial class Unit : IUnionId +{ + public object GetId() => UnitId; + + [Display(Name = "hide")] + public int UnitId { get; set; } + + [Display(Name = "Название")] + public string Name { get; set; } = null!; + + [Browsable(false)] + public virtual ICollection DrugTypePrescriptions { get; set; } = new List(); + + [Browsable(false)] + public virtual ICollection NumericResults { get; set; } = new List(); + + [Browsable(false)] + public virtual ICollection ReferenceNumericValues { get; set; } = new List(); +} diff --git a/Register office/Register office/Program.cs b/Register office/Register office/Program.cs new file mode 100644 index 0000000..27d8a2f --- /dev/null +++ b/Register office/Register office/Program.cs @@ -0,0 +1,57 @@ +using Register_office.Properties; +using Register_office.View.LoginV; +using Register_office.View.MenuV; +using Register_office.View.RegistrationV; +using Register_office.ViewModel; + +namespace Register_office +{ + internal static class Program + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main() + { + // To customize application configuration such as set high DPI settings or default font, + // see https://aka.ms/applicationconfiguration. + ApplicationConfiguration.Initialize(); + if (!Init()) return; + Application.Run(new LoginForm()); + } + + private static bool Init() + { + GeneralViewModel.Instance.Initialize(); + while (!RegisterOfficeFactory.CanConnect) + { + MessageBox.Show(" ! " + + " ", + " ", MessageBoxButtons.OK, MessageBoxIcon.Error); + + ConnectionParametersForm form = new(); + + { + form.tbHost.Text = Settings.Default.Host; + form.tbDataBase.Text = Settings.Default.Database; + form.tbUsername.Text = Settings.Default.Username; + form.tbPassword.Text = Settings.Default.Password; + } + + + if (form.ShowDialog() == DialogResult.OK) + { + Settings.Default.Host = form.tbHost.Text; + Settings.Default.Database = form.tbDataBase.Text; + Settings.Default.Username = form.tbUsername.Text; + Settings.Default.Password = form.tbPassword.Text; + Settings.Default.Save(); + } + else return false; + GeneralViewModel.Instance.Initialize(); + } + return true; + } + } +} \ No newline at end of file diff --git a/Register office/Register office/Properties/RegisterOfficeContext.cs b/Register office/Register office/Properties/RegisterOfficeContext.cs new file mode 100644 index 0000000..2aef8af --- /dev/null +++ b/Register office/Register office/Properties/RegisterOfficeContext.cs @@ -0,0 +1,556 @@ +using System; +using System.Collections.Generic; +using Microsoft.EntityFrameworkCore; +using Register_office.Model; + +namespace Register_office.Properties; + +public partial class RegisterOfficeContext : DbContext +{ + public RegisterOfficeContext() + { + } + + public RegisterOfficeContext(DbContextOptions options) + : base(options) + { + } + + public virtual DbSet Diseases { get; set; } + + public virtual DbSet DiseaseSyndromes { get; set; } + + public virtual DbSet Doctors { get; set; } + + public virtual DbSet DrugIntakeMethods { get; set; } + + public virtual DbSet DrugTypes { get; set; } + + public virtual DbSet DrugTypePrescriptions { get; set; } + + public virtual DbSet ExaminationTypes { get; set; } + + public virtual DbSet ExaminationTypePrescriptions { get; set; } + + public virtual DbSet HospitalAdmissions { get; set; } + + public virtual DbSet HospitalDischarges { get; set; } + + public virtual DbSet NumericResults { get; set; } + + public virtual DbSet Patients { get; set; } + + public virtual DbSet People { get; set; } + + public virtual DbSet Prescriptions { get; set; } + + public virtual DbSet ProcedureTypes { get; set; } + + public virtual DbSet ProcedureTypePrescriptions { get; set; } + + public virtual DbSet QualitativeResults { get; set; } + + public virtual DbSet ReferenceNumericValues { get; set; } + + public virtual DbSet ReferenceQualitativeValues { get; set; } + + public virtual DbSet ReferenceValues { get; set; } + + public virtual DbSet Registrars { get; set; } + + public virtual DbSet Results { get; set; } + + public virtual DbSet SyndromeExaminationTypes { get; set; } + + public virtual DbSet SyndromeTypes { get; set; } + + public virtual DbSet Units { get; set; } + + protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) +#warning To protect potentially sensitive information in your connection string, you should move it out of source code. You can avoid scaffolding the connection string by using the Name= syntax to read it from configuration - see https://go.microsoft.com/fwlink/?linkid=2131148. For more guidance on storing connection strings, see https://go.microsoft.com/fwlink/?LinkId=723263. + => optionsBuilder.UseNpgsql("Host=localhost;Port=5432;Database=register_office;Username=postgres;Password=slavik242"); + + protected override void OnModelCreating(ModelBuilder modelBuilder) + { + modelBuilder + .HasPostgresEnum("examination_categories_enum", new[] { "physical", "laboratory", "instrumental" }) + .HasPostgresEnum("gender_enum", new[] { "male", "female" }) + .HasPostgresEnum("hospital_discharge_reason_enum", new[] { "death", "improvement", "refusal" }) + .HasPostgresEnum("unit_context_enum", new[] { "examination", "medication" }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.DiseaseId).HasName("disease_pkey"); + + entity.ToTable("disease"); + + entity.HasIndex(e => e.IcdCode, "disease_icd_code_key").IsUnique(); + + entity.HasIndex(e => e.Name, "disease_name_key").IsUnique(); + + entity.Property(e => e.DiseaseId).HasColumnName("disease_id"); + entity.Property(e => e.IcdCode).HasColumnName("icd_code"); + entity.Property(e => e.Name).HasColumnName("name"); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.DiseaseSyndromeId).HasName("disease_syndrome_pkey"); + + entity.ToTable("disease_syndrome"); + + entity.HasIndex(e => new { e.DiseaseId, e.SyndromeId }, "disease_syndrome_disease_id_syndrome_id_key").IsUnique(); + + entity.Property(e => e.DiseaseSyndromeId).HasColumnName("disease_syndrome_id"); + entity.Property(e => e.DiseaseId).HasColumnName("disease_id"); + entity.Property(e => e.SyndromeId).HasColumnName("syndrome_id"); + + entity.HasOne(d => d.Disease).WithMany(p => p.DiseaseSyndromes) + .HasForeignKey(d => d.DiseaseId) + .HasConstraintName("disease_syndrome_disease_id_fkey"); + + entity.HasOne(d => d.Syndrome).WithMany(p => p.DiseaseSyndromes) + .HasForeignKey(d => d.SyndromeId) + .HasConstraintName("disease_syndrome_syndrome_id_fkey"); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.DoctorId).HasName("doctor_pkey"); + + entity.ToTable("doctor"); + + entity.Property(e => e.DoctorId) + .ValueGeneratedNever() + .HasColumnName("doctor_id"); + + entity.HasOne(d => d.DoctorNavigation).WithOne(p => p.Doctor) + .HasForeignKey(d => d.DoctorId) + .OnDelete(DeleteBehavior.ClientSetNull) + .HasConstraintName("doctor_doctor_id_fkey"); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.DrugIntakeMethodId).HasName("drug_intake_method_pkey"); + + entity.ToTable("drug_intake_method"); + + entity.HasIndex(e => e.Name, "drug_intake_method_name_key").IsUnique(); + + entity.Property(e => e.DrugIntakeMethodId).HasColumnName("drug_intake_method_id"); + entity.Property(e => e.Name).HasColumnName("name"); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.DrugTypeId).HasName("drug_type_pkey"); + + entity.ToTable("drug_type"); + + entity.HasIndex(e => e.BrandNameRu, "drug_type_brand_name_ru_key").IsUnique(); + + entity.HasIndex(e => e.InternationalNameEn, "drug_type_international_name_en_key").IsUnique(); + + entity.HasIndex(e => e.InternationalNameLa, "drug_type_international_name_la_key").IsUnique(); + + entity.HasIndex(e => e.InternationalNameRu, "drug_type_international_name_ru_key").IsUnique(); + + entity.Property(e => e.DrugTypeId).HasColumnName("drug_type_id"); + entity.Property(e => e.BrandNameRu).HasColumnName("brand_name_ru"); + entity.Property(e => e.InternationalNameEn).HasColumnName("international_name_en"); + entity.Property(e => e.InternationalNameLa).HasColumnName("international_name_la"); + entity.Property(e => e.InternationalNameRu).HasColumnName("international_name_ru"); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.DrugPrescriptionId).HasName("drug_type_prescription_pkey"); + + entity.ToTable("drug_type_prescription"); + + entity.HasIndex(e => e.PrescriptionId, "drug_type_prescription_prescription_id_key").IsUnique(); + + entity.Property(e => e.DrugPrescriptionId).HasColumnName("drug_prescription_id"); + entity.Property(e => e.Dose).HasColumnName("dose"); + entity.Property(e => e.DoseUnitId).HasColumnName("dose_unit_id"); + entity.Property(e => e.DrugTypeId).HasColumnName("drug_type_id"); + entity.Property(e => e.DurationDays).HasColumnName("duration_days"); + entity.Property(e => e.IntakeMethodId).HasColumnName("intake_method_id"); + entity.Property(e => e.PrescriptionId).HasColumnName("prescription_id"); + + entity.HasOne(d => d.DoseUnit).WithMany(p => p.DrugTypePrescriptions) + .HasForeignKey(d => d.DoseUnitId) + .OnDelete(DeleteBehavior.Restrict) + .HasConstraintName("drug_type_prescription_dose_unit_id_fkey"); + + entity.HasOne(d => d.DrugType).WithMany(p => p.DrugTypePrescriptions) + .HasForeignKey(d => d.DrugTypeId) + .OnDelete(DeleteBehavior.Restrict) + .HasConstraintName("drug_type_prescription_drug_type_id_fkey"); + + entity.HasOne(d => d.IntakeMethod).WithMany(p => p.DrugTypePrescriptions) + .HasForeignKey(d => d.IntakeMethodId) + .OnDelete(DeleteBehavior.Restrict) + .HasConstraintName("drug_type_prescription_intake_method_id_fkey"); + + entity.HasOne(d => d.Prescription).WithOne(p => p.DrugTypePrescription) + .HasForeignKey(d => d.PrescriptionId) + .HasConstraintName("drug_type_prescription_prescription_id_fkey"); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.ExaminationTypeId).HasName("examination_type_pkey"); + + entity.ToTable("examination_type"); + + entity.HasIndex(e => e.Name, "examination_type_name_key").IsUnique(); + + entity.Property(e => e.ExaminationTypeId).HasColumnName("examination_type_id"); + entity.Property(e => e.Name).HasColumnName("name"); + entity.Property(e => e.Category).HasColumnName("category"); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.ExaminationPrescriptionId).HasName("examination_type_prescription_pkey"); + + entity.ToTable("examination_type_prescription"); + + entity.HasIndex(e => e.PrescriptionId, "examination_type_prescription_prescription_id_key").IsUnique(); + + entity.Property(e => e.ExaminationPrescriptionId).HasColumnName("examination_prescription_id"); + entity.Property(e => e.ExaminationTypeId).HasColumnName("examination_type_id"); + entity.Property(e => e.PrescriptionId).HasColumnName("prescription_id"); + entity.Property(e => e.ResultId).HasColumnName("result_id"); + + entity.HasOne(d => d.ExaminationType).WithMany(p => p.ExaminationTypePrescriptions) + .HasForeignKey(d => d.ExaminationTypeId) + .HasConstraintName("examination_type_prescription_examination_type_id_fkey"); + + entity.HasOne(d => d.Prescription).WithOne(p => p.ExaminationTypePrescription) + .HasForeignKey(d => d.PrescriptionId) + .HasConstraintName("examination_type_prescription_prescription_id_fkey"); + + entity.HasOne(d => d.Result).WithMany(p => p.ExaminationTypePrescriptions) + .HasForeignKey(d => d.ResultId) + .HasConstraintName("examination_type_prescription_result_id_fkey"); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.HospitalAdmissionId).HasName("hospital_admission_pkey"); + + entity.ToTable("hospital_admission"); + + entity.Property(e => e.HospitalAdmissionId).HasColumnName("hospital_admission_id"); + entity.Property(e => e.AdmissionDatetime) + .HasColumnType("timestamp without time zone") + .HasColumnName("admission_datetime"); + entity.Property(e => e.PatientId).HasColumnName("patient_id"); + entity.Property(e => e.PreliminaryDiseaseId).HasColumnName("preliminary_disease_id"); + + entity.HasOne(d => d.Patient).WithMany(p => p.HospitalAdmissions) + .HasForeignKey(d => d.PatientId) + .HasConstraintName("hospital_admission_patient_id_fkey"); + + entity.HasOne(d => d.PreliminaryDisease).WithMany(p => p.HospitalAdmissions) + .HasForeignKey(d => d.PreliminaryDiseaseId) + .OnDelete(DeleteBehavior.ClientSetNull) + .HasConstraintName("hospital_admission_preliminary_disease_id_fkey"); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.HospitalDischargeId).HasName("hospital_discharge_pkey"); + + entity.ToTable("hospital_discharge"); + + entity.Property(e => e.HospitalDischargeId).HasColumnName("hospital_discharge_id"); + entity.Property(e => e.DischargeDatetime) + .HasColumnType("timestamp without time zone") + .HasColumnName("discharge_datetime"); + entity.Property(e => e.FinalDiseaseId).HasColumnName("final_disease_id"); + entity.Property(e => e.HospitalAdmissionId).HasColumnName("hospital_admission_id"); + entity.Property(e => e.Reason).HasColumnName("reason"); + + entity.HasOne(d => d.FinalDisease).WithMany(p => p.HospitalDischarges) + .HasForeignKey(d => d.FinalDiseaseId) + .OnDelete(DeleteBehavior.ClientSetNull) + .HasConstraintName("hospital_discharge_final_disease_id_fkey"); + + entity.HasOne(d => d.HospitalAdmission).WithMany(p => p.HospitalDischarges) + .HasForeignKey(d => d.HospitalAdmissionId) + .HasConstraintName("hospital_discharge_hospital_admission_id_fkey"); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.ResultId).HasName("numeric_result_pkey"); + + entity.ToTable("numeric_result"); + + entity.Property(e => e.ResultId) + .ValueGeneratedNever() + .HasColumnName("result_id"); + entity.Property(e => e.UnitId).HasColumnName("unit_id"); + entity.Property(e => e.Value).HasColumnName("value"); + + entity.HasOne(d => d.Result).WithOne(p => p.NumericResult) + .HasForeignKey(d => d.ResultId) + .OnDelete(DeleteBehavior.ClientSetNull) + .HasConstraintName("numeric_result_result_id_fkey"); + + entity.HasOne(d => d.Unit).WithMany(p => p.NumericResults) + .HasForeignKey(d => d.UnitId) + .OnDelete(DeleteBehavior.Restrict) + .HasConstraintName("numeric_result_unit_id_fkey"); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.PatientId).HasName("patient_pkey"); + + entity.ToTable("patient"); + + entity.Property(e => e.PatientId) + .ValueGeneratedNever() + .HasColumnName("patient_id"); + entity.Property(e => e.PolicyNumber).HasColumnName("policy_number"); + + entity.HasOne(d => d.PatientNavigation).WithOne(p => p.Patient) + .HasForeignKey(d => d.PatientId) + .OnDelete(DeleteBehavior.ClientSetNull) + .HasConstraintName("patient_patient_id_fkey"); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.PersonId).HasName("person_pkey"); + + entity.ToTable("person"); + + entity.Property(e => e.PersonId).HasColumnName("person_id"); + entity.Property(e => e.Address).HasColumnName("address"); + entity.Property(e => e.BirthDate).HasColumnName("birth_date"); + entity.Property(e => e.FirstName).HasColumnName("first_name"); + entity.Property(e => e.LastName).HasColumnName("last_name"); + entity.Property(e => e.MiddleName).HasColumnName("middle_name"); + entity.Property(e => e.Gender).HasColumnName(name: "gender"); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.PrescriptionId).HasName("prescription_pkey"); + + entity.ToTable("prescription"); + + entity.Property(e => e.PrescriptionId).HasColumnName("prescription_id"); + entity.Property(e => e.DoctorId).HasColumnName("doctor_id"); + entity.Property(e => e.PatientId).HasColumnName("patient_id"); + + entity.HasOne(d => d.Doctor).WithMany(p => p.Prescriptions) + .HasForeignKey(d => d.DoctorId) + .OnDelete(DeleteBehavior.Restrict) + .HasConstraintName("prescription_doctor_id_fkey"); + + entity.HasOne(d => d.Patient).WithMany(p => p.Prescriptions) + .HasForeignKey(d => d.PatientId) + .HasConstraintName("prescription_patient_id_fkey"); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.ProcedureTypeId).HasName("procedure_type_pkey"); + + entity.ToTable("procedure_type"); + + entity.HasIndex(e => e.Name, "procedure_type_name_key").IsUnique(); + + entity.Property(e => e.ProcedureTypeId).HasColumnName("procedure_type_id"); + entity.Property(e => e.Name).HasColumnName("name"); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.ProcedurePrescriptionId).HasName("procedure_type_prescription_pkey"); + + entity.ToTable("procedure_type_prescription"); + + entity.HasIndex(e => e.PrescriptionId, "procedure_type_prescription_prescription_id_key").IsUnique(); + + entity.Property(e => e.ProcedurePrescriptionId).HasColumnName("procedure_prescription_id"); + entity.Property(e => e.PrescriptionId).HasColumnName("prescription_id"); + entity.Property(e => e.ProcedureTypeId).HasColumnName("procedure_type_id"); + entity.Property(e => e.ScheduledDatetime) + .HasColumnType("timestamp without time zone") + .HasColumnName("scheduled_datetime"); + + entity.HasOne(d => d.Prescription).WithOne(p => p.ProcedureTypePrescription) + .HasForeignKey(d => d.PrescriptionId) + .HasConstraintName("procedure_type_prescription_prescription_id_fkey"); + + entity.HasOne(d => d.ProcedureType).WithMany(p => p.ProcedureTypePrescriptions) + .HasForeignKey(d => d.ProcedureTypeId) + .OnDelete(DeleteBehavior.Restrict) + .HasConstraintName("procedure_type_prescription_procedure_type_id_fkey"); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.ResultId).HasName("qualitative_result_pkey"); + + entity.ToTable("qualitative_result"); + + entity.Property(e => e.ResultId) + .ValueGeneratedNever() + .HasColumnName("result_id"); + entity.Property(e => e.Value).HasColumnName("value"); + + entity.HasOne(d => d.Result).WithOne(p => p.QualitativeResult) + .HasForeignKey(d => d.ResultId) + .OnDelete(DeleteBehavior.ClientSetNull) + .HasConstraintName("qualitative_result_result_id_fkey"); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.ReferenceValueId).HasName("reference_numeric_value_pkey"); + + entity.ToTable("reference_numeric_value"); + + entity.Property(e => e.ReferenceValueId) + .ValueGeneratedNever() + .HasColumnName("reference_value_id"); + entity.Property(e => e.MaxValue).HasColumnName("max_value"); + entity.Property(e => e.MinValue).HasColumnName("min_value"); + entity.Property(e => e.UnitId).HasColumnName("unit_id"); + + entity.HasOne(d => d.ReferenceValue).WithOne(p => p.ReferenceNumericValue) + .HasForeignKey(d => d.ReferenceValueId) + .HasConstraintName("reference_numeric_value_reference_value_id_fkey"); + + entity.HasOne(d => d.Unit).WithMany(p => p.ReferenceNumericValues) + .HasForeignKey(d => d.UnitId) + .OnDelete(DeleteBehavior.Restrict) + .HasConstraintName("reference_numeric_value_unit_id_fkey"); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.ReferenceValueId).HasName("reference_qualitative_value_pkey"); + + entity.ToTable("reference_qualitative_value"); + + entity.HasIndex(e => new { e.DescriptionTrue, e.DescriptionFalse }, "reference_qualitative_value_description_true_description_fa_key").IsUnique(); + + entity.Property(e => e.ReferenceValueId) + .ValueGeneratedNever() + .HasColumnName("reference_value_id"); + entity.Property(e => e.DescriptionFalse).HasColumnName("description_false"); + entity.Property(e => e.DescriptionTrue).HasColumnName("description_true"); + + entity.HasOne(d => d.ReferenceValue).WithOne(p => p.ReferenceQualitativeValue) + .HasForeignKey(d => d.ReferenceValueId) + .HasConstraintName("reference_qualitative_value_reference_value_id_fkey"); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.ReferenceValueId).HasName("reference_value_pkey"); + + entity.ToTable("reference_value"); + + entity.Property(e => e.ReferenceValueId).HasColumnName("reference_value_id"); + entity.Property(e => e.AgeMax).HasColumnName("age_max"); + entity.Property(e => e.AgeMin).HasColumnName("age_min"); + entity.Property(e => e.ExaminationTypeId).HasColumnName("examination_type_id"); + entity.Property(e => e.Gender).HasColumnName("gender"); + + entity.HasOne(d => d.ExaminationType).WithMany(p => p.ReferenceValues) + .HasForeignKey(d => d.ExaminationTypeId) + .HasConstraintName("reference_value_examination_type_id_fkey"); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.RegistrarId).HasName("registrar_pkey"); + + entity.ToTable("registrar"); + + entity.Property(e => e.RegistrarId) + .ValueGeneratedNever() + .HasColumnName("registrar_id"); + + entity.HasOne(d => d.RegistrarNavigation).WithOne(p => p.Registrar) + .HasForeignKey(d => d.RegistrarId) + .OnDelete(DeleteBehavior.ClientSetNull) + .HasConstraintName("registrar_registrar_id_fkey"); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.ResultId).HasName("result_pkey"); + + entity.ToTable("result"); + + entity.Property(e => e.ResultId).HasColumnName("result_id"); + entity.Property(e => e.ExaminationId).HasColumnName("examination_id"); + + entity.HasOne(d => d.Examination).WithOne(p => p.Result) + .HasForeignKey(d => d.ExaminationId) + .HasConstraintName("result_examination_id_fkey"); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.SyndromeId).HasName("syndrome_examination_type_pkey"); + + entity.ToTable("syndrome_examination_type"); + + entity.HasIndex(e => e.ExaminationTypeId, "syndrome_examination_type_examination_type_id_key").IsUnique(); + + entity.Property(e => e.SyndromeId) + .ValueGeneratedNever() + .HasColumnName("syndrome_id"); + entity.Property(e => e.ExaminationTypeId).HasColumnName("examination_type_id"); + + entity.HasOne(d => d.ExaminationType).WithOne(p => p.SyndromeExaminationType) + .HasForeignKey(d => d.ExaminationTypeId) + .HasConstraintName("syndrome_examination_type_examination_type_id_fkey"); + + entity.HasOne(d => d.Syndrome).WithOne(p => p.SyndromeExaminationType) + .HasForeignKey(d => d.SyndromeId) + .HasConstraintName("syndrome_examination_type_syndrome_id_fkey"); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.SyndromeTypeId).HasName("syndrome_type_pkey"); + + entity.ToTable("syndrome_type"); + + entity.HasIndex(e => e.Name, "syndrome_type_name_key").IsUnique(); + + entity.Property(e => e.SyndromeTypeId).HasColumnName("syndrome_type_id"); + entity.Property(e => e.Name).HasColumnName("name"); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.UnitId).HasName("unit_pkey"); + + entity.ToTable("unit"); + + entity.HasIndex(e => e.Name, "unit_name_key").IsUnique(); + + entity.Property(e => e.UnitId).HasColumnName("unit_id"); + entity.Property(e => e.Name).HasColumnName("name"); + }); + + OnModelCreatingPartial(modelBuilder); + } + + partial void OnModelCreatingPartial(ModelBuilder modelBuilder); +} diff --git a/Register office/Register office/Properties/RegisterOfficeFactory.cs b/Register office/Register office/Properties/RegisterOfficeFactory.cs new file mode 100644 index 0000000..2bd09a4 --- /dev/null +++ b/Register office/Register office/Properties/RegisterOfficeFactory.cs @@ -0,0 +1,29 @@ +using Microsoft.EntityFrameworkCore; +using Npgsql; +using Register_office.Properties; + +namespace Register_office.Properties +{ + internal class RegisterOfficeFactory + { + internal static bool CanConnect = false; + internal static RegisterOfficeContext Create(string username, string password) + { + var builder = new NpgsqlConnectionStringBuilder() + { + Host = Settings.Default.Host, + Database = Settings.Default.Database, + Username = username, + Password = password + }; + + var optionsBuilder = new DbContextOptionsBuilder(); + optionsBuilder.UseNpgsql(builder.ToString()); + + RegisterOfficeContext dbContext = new(optionsBuilder.Options); + CanConnect = dbContext.Database.CanConnect(); + + return dbContext; + } + } +} diff --git a/Register office/Register office/Properties/Settings.Designer.cs b/Register office/Register office/Properties/Settings.Designer.cs new file mode 100644 index 0000000..bb72def --- /dev/null +++ b/Register office/Register office/Properties/Settings.Designer.cs @@ -0,0 +1,74 @@ +//------------------------------------------------------------------------------ +// +// Этот код создан программой. +// Исполняемая версия:4.0.30319.42000 +// +// Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае +// повторной генерации кода. +// +//------------------------------------------------------------------------------ + +namespace Register_office.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.14.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default { + get { + return defaultInstance; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("")] + public string Host { + get { + return ((string)(this["Host"])); + } + set { + this["Host"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("")] + public string Database { + get { + return ((string)(this["Database"])); + } + set { + this["Database"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("")] + public string Username { + get { + return ((string)(this["Username"])); + } + set { + this["Username"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("")] + public string Password { + get { + return ((string)(this["Password"])); + } + set { + this["Password"] = value; + } + } + } +} diff --git a/Register office/Register office/Properties/Settings.settings b/Register office/Register office/Properties/Settings.settings new file mode 100644 index 0000000..d321c32 --- /dev/null +++ b/Register office/Register office/Properties/Settings.settings @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Register office/Register office/Register office.csproj b/Register office/Register office/Register office.csproj new file mode 100644 index 0000000..e8b7d0e --- /dev/null +++ b/Register office/Register office/Register office.csproj @@ -0,0 +1,91 @@ + + + + WinExe + net8.0-windows + Register_office + enable + true + enable + + + + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + + + + + True + True + Settings.settings + + + Form + + + Form + + + Form + + + Form + + + Form + + + Form + + + Form + + + Form + + + Form + + + Form + + + Form + + + Form + + + Form + + + Form + + + Form + + + Form + + + Form + + + Form + + + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + + \ No newline at end of file diff --git a/Register office/Register office/View/HospitalV/HospitalDischargeDataForm.Designer.cs b/Register office/Register office/View/HospitalV/HospitalDischargeDataForm.Designer.cs new file mode 100644 index 0000000..0bdcca5 --- /dev/null +++ b/Register office/Register office/View/HospitalV/HospitalDischargeDataForm.Designer.cs @@ -0,0 +1,158 @@ +namespace Register_office.View.TypesV +{ + partial class HospitalDischargeDataForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + cbDisease = new ComboBox(); + label1 = new Label(); + button2 = new Button(); + btnOK = new Button(); + dtpDischarge = new DateTimePicker(); + label6 = new Label(); + rtbReason = new RichTextBox(); + label2 = new Label(); + SuspendLayout(); + // + // cbDisease + // + cbDisease.DropDownStyle = ComboBoxStyle.DropDownList; + cbDisease.Font = new Font("Segoe UI", 12F); + cbDisease.FormattingEnabled = true; + cbDisease.Items.AddRange(new object[] { "Числовой", "Качественный" }); + cbDisease.Location = new Point(12, 37); + cbDisease.Name = "cbDisease"; + cbDisease.Size = new Size(341, 29); + cbDisease.TabIndex = 24; + // + // label1 + // + label1.AutoSize = true; + label1.Font = new Font("Segoe UI", 14.25F, FontStyle.Regular, GraphicsUnit.Point, 204); + label1.Location = new Point(12, 9); + label1.Name = "label1"; + label1.Size = new Size(186, 25); + label1.TabIndex = 25; + label1.Text = "Финальный диагноз"; + // + // button2 + // + button2.Anchor = AnchorStyles.Bottom | AnchorStyles.Left; + button2.DialogResult = DialogResult.Cancel; + button2.Font = new Font("Segoe UI", 14.25F, FontStyle.Regular, GraphicsUnit.Point, 204); + button2.Location = new Point(192, 271); + button2.Name = "button2"; + button2.Size = new Size(161, 42); + button2.TabIndex = 27; + button2.Text = "Отмена"; + button2.UseVisualStyleBackColor = true; + // + // btnOK + // + btnOK.Anchor = AnchorStyles.Bottom | AnchorStyles.Left; + btnOK.DialogResult = DialogResult.OK; + btnOK.Font = new Font("Segoe UI", 14.25F, FontStyle.Regular, GraphicsUnit.Point, 204); + btnOK.Location = new Point(12, 271); + btnOK.Name = "btnOK"; + btnOK.Size = new Size(161, 42); + btnOK.TabIndex = 26; + btnOK.Text = "Добавить"; + btnOK.UseVisualStyleBackColor = true; + btnOK.Click += btnOK_Click; + // + // dtpDischarge + // + dtpDischarge.CustomFormat = "HH:mm dd.MM.yyyy"; + dtpDischarge.Font = new Font("Segoe UI", 12F, FontStyle.Regular, GraphicsUnit.Point, 204); + dtpDischarge.Format = DateTimePickerFormat.Custom; + dtpDischarge.Location = new Point(9, 97); + dtpDischarge.MinDate = new DateTime(1940, 1, 1, 0, 0, 0, 0); + dtpDischarge.Name = "dtpDischarge"; + dtpDischarge.Size = new Size(164, 29); + dtpDischarge.TabIndex = 28; + // + // label6 + // + label6.AutoSize = true; + label6.Font = new Font("Segoe UI", 14.25F, FontStyle.Regular, GraphicsUnit.Point, 204); + label6.Location = new Point(9, 69); + label6.Name = "label6"; + label6.Size = new Size(164, 25); + label6.TabIndex = 29; + label6.Text = "Дата завершения"; + // + // rtbReason + // + rtbReason.Font = new Font("Segoe UI", 12F, FontStyle.Regular, GraphicsUnit.Point, 204); + rtbReason.Location = new Point(9, 157); + rtbReason.Name = "rtbReason"; + rtbReason.Size = new Size(341, 96); + rtbReason.TabIndex = 30; + rtbReason.Text = ""; + // + // label2 + // + label2.AutoSize = true; + label2.Font = new Font("Segoe UI", 14.25F, FontStyle.Regular, GraphicsUnit.Point, 204); + label2.Location = new Point(9, 129); + label2.Name = "label2"; + label2.Size = new Size(202, 25); + label2.TabIndex = 31; + label2.Text = "Причина завершения"; + // + // HospitalDischargeDataForm + // + AutoScaleDimensions = new SizeF(7F, 17F); + AutoScaleMode = AutoScaleMode.Font; + ClientSize = new Size(365, 325); + Controls.Add(label2); + Controls.Add(rtbReason); + Controls.Add(dtpDischarge); + Controls.Add(label6); + Controls.Add(button2); + Controls.Add(btnOK); + Controls.Add(cbDisease); + Controls.Add(label1); + Font = new Font("Segoe UI", 9.75F, FontStyle.Regular, GraphicsUnit.Point, 204); + FormBorderStyle = FormBorderStyle.FixedToolWindow; + Name = "HospitalDischargeDataForm"; + Text = "Завершение госпитализации"; + ResumeLayout(false); + PerformLayout(); + } + + #endregion + internal ComboBox cbDisease; + private Label label1; + private Button button2; + internal Button btnOK; + internal DateTimePicker dtpDischarge; + private Label label6; + private RichTextBox rtbReason; + private Label label2; + } +} \ No newline at end of file diff --git a/Register office/Register office/View/HospitalV/HospitalDischargeDataForm.cs b/Register office/Register office/View/HospitalV/HospitalDischargeDataForm.cs new file mode 100644 index 0000000..23e303a --- /dev/null +++ b/Register office/Register office/View/HospitalV/HospitalDischargeDataForm.cs @@ -0,0 +1,81 @@ +using Microsoft.EntityFrameworkCore; +using Register_office.Model; +using Register_office.ViewModel; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace Register_office.View.TypesV +{ + public partial class HospitalDischargeDataForm : Form + { + private HospitalViewModel _viewModel; + private HospitalAdmission _hospitalAdmission; + + public HospitalDischargeDataForm(HospitalAdmission h, bool isForAdd = true) + { + Init(); + _hospitalAdmission = h; + if (!isForAdd) SetData(h); + } + + private void Init() + { + InitializeComponent(); + TopMost = true; + _viewModel = new(); + SetDataSourceToComboBoxes(); + dtpDischarge.Value = + dtpDischarge.MaxDate = DateTime.Now; + } + + private void SetData(HospitalAdmission ha) + { + HospitalDischarge hd = _viewModel.GetHospitalDischarge() + .First(x => x.HospitalAdmissionId == ha.HospitalAdmissionId); + cbDisease.SelectedValue = hd.FinalDiseaseId; + rtbReason.Text = hd.Reason; + dtpDischarge.Value = hd.DischargeDatetime; + + Text = "Просмотр завершения госпитализации"; + btnOK.Visible = cbDisease.Enabled = + rtbReason.Enabled = dtpDischarge.Enabled = false; + } + + private void SetDataSourceToComboBoxes() + { + cbDisease.DataSource = _viewModel.General.Context.Diseases + .Select(x => new ComboBoxItem { Name = x.Name, Id = x.DiseaseId }) + .OrderBy(cbi => cbi.Name).ToList(); + cbDisease.DisplayMember = "Name"; + cbDisease.ValueMember = "Id"; + } + + private void btnOK_Click(object sender, EventArgs e) + { + HospitalDischarge hd = new() + { + HospitalAdmissionId = _hospitalAdmission.HospitalAdmissionId, + DischargeDatetime = dtpDischarge.Value, + FinalDiseaseId = int.Parse(cbDisease.SelectedValue?.ToString() ?? "-1"), + Reason = rtbReason.Text + }; + if (_viewModel.AddHospital(hd) == -1) + { + DialogResult = DialogResult.None; + return; + } + + MessageBox.Show("Госпитализация успешно завершена", "Завершение госпитализации", + MessageBoxButtons.OK, MessageBoxIcon.Information); + Close(); + + } + } +} diff --git a/Register office/Register office/View/HospitalV/HospitalDischargeDataForm.resx b/Register office/Register office/View/HospitalV/HospitalDischargeDataForm.resx new file mode 100644 index 0000000..4f24d55 --- /dev/null +++ b/Register office/Register office/View/HospitalV/HospitalDischargeDataForm.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Register office/Register office/View/HospitalV/HospitalForm.Designer.cs b/Register office/Register office/View/HospitalV/HospitalForm.Designer.cs new file mode 100644 index 0000000..19d6cec --- /dev/null +++ b/Register office/Register office/View/HospitalV/HospitalForm.Designer.cs @@ -0,0 +1,263 @@ +using Register_office.View; + +namespace Register_office.View.PatientV +{ + partial class HospitalForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + components = new System.ComponentModel.Container(); + splitContainer1 = new SplitContainer(); + dtpArrive = new DateTimePicker(); + label6 = new Label(); + label3 = new Label(); + cbDisease = new ComboBox(); + label2 = new Label(); + cbPatient = new ComboBox(); + btnAddHospitalAdmission = new Button(); + btnUpdate = new Button(); + btnDelete = new Button(); + btnHospitalDischarge = new Button(); + dgv = new DataGridView(); + cmsMedicineProductCost = new ContextMenuStrip(components); + cmsMedicineProduct = new ContextMenuStrip(components); + ((System.ComponentModel.ISupportInitialize)splitContainer1).BeginInit(); + splitContainer1.Panel1.SuspendLayout(); + splitContainer1.Panel2.SuspendLayout(); + splitContainer1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)dgv).BeginInit(); + SuspendLayout(); + // + // splitContainer1 + // + splitContainer1.Dock = DockStyle.Fill; + splitContainer1.FixedPanel = FixedPanel.Panel1; + splitContainer1.Location = new Point(0, 0); + splitContainer1.Name = "splitContainer1"; + splitContainer1.Orientation = Orientation.Horizontal; + // + // splitContainer1.Panel1 + // + splitContainer1.Panel1.Controls.Add(dtpArrive); + splitContainer1.Panel1.Controls.Add(label6); + splitContainer1.Panel1.Controls.Add(label3); + splitContainer1.Panel1.Controls.Add(cbDisease); + splitContainer1.Panel1.Controls.Add(label2); + splitContainer1.Panel1.Controls.Add(cbPatient); + splitContainer1.Panel1.Controls.Add(btnAddHospitalAdmission); + splitContainer1.Panel1.Controls.Add(btnUpdate); + splitContainer1.Panel1.Controls.Add(btnDelete); + splitContainer1.Panel1.Controls.Add(btnHospitalDischarge); + // + // splitContainer1.Panel2 + // + splitContainer1.Panel2.Controls.Add(dgv); + splitContainer1.Size = new Size(800, 647); + splitContainer1.SplitterDistance = 125; + splitContainer1.SplitterWidth = 5; + splitContainer1.TabIndex = 0; + // + // dtpArrive + // + dtpArrive.CustomFormat = "HH:mm dd.MM.yyyy"; + dtpArrive.Font = new Font("Segoe UI", 9.75F, FontStyle.Regular, GraphicsUnit.Point, 204); + dtpArrive.Format = DateTimePickerFormat.Custom; + dtpArrive.Location = new Point(232, 78); + dtpArrive.MinDate = new DateTime(1940, 1, 1, 0, 0, 0, 0); + dtpArrive.Name = "dtpArrive"; + dtpArrive.Size = new Size(139, 25); + dtpArrive.TabIndex = 19; + // + // label6 + // + label6.AutoSize = true; + label6.Font = new Font("Segoe UI", 9.75F, FontStyle.Regular, GraphicsUnit.Point, 204); + label6.Location = new Point(232, 58); + label6.Name = "label6"; + label6.Size = new Size(114, 17); + label6.TabIndex = 20; + label6.Text = "Дата поступления"; + // + // label3 + // + label3.Anchor = AnchorStyles.Top | AnchorStyles.Bottom; + label3.AutoSize = true; + label3.Font = new Font("Segoe UI", 9.75F, FontStyle.Regular, GraphicsUnit.Point, 204); + label3.Location = new Point(12, 58); + label3.Name = "label3"; + label3.Size = new Size(127, 17); + label3.TabIndex = 18; + label3.Text = "Предварит. диагноз"; + // + // cbDisease + // + cbDisease.DropDownStyle = ComboBoxStyle.DropDownList; + cbDisease.FormattingEnabled = true; + cbDisease.Items.AddRange(new object[] { "Физикальное", "Лабораторное", "Инструментальное" }); + cbDisease.Location = new Point(12, 78); + cbDisease.Name = "cbDisease"; + cbDisease.Size = new Size(211, 25); + cbDisease.TabIndex = 17; + // + // label2 + // + label2.Anchor = AnchorStyles.Top | AnchorStyles.Bottom; + label2.AutoSize = true; + label2.Font = new Font("Segoe UI", 9.75F, FontStyle.Regular, GraphicsUnit.Point, 204); + label2.Location = new Point(12, 9); + label2.Name = "label2"; + label2.Size = new Size(57, 17); + label2.TabIndex = 16; + label2.Text = "Пациент"; + // + // cbPatient + // + cbPatient.DropDownStyle = ComboBoxStyle.DropDownList; + cbPatient.FormattingEnabled = true; + cbPatient.Items.AddRange(new object[] { "Физикальное", "Лабораторное", "Инструментальное" }); + cbPatient.Location = new Point(12, 30); + cbPatient.Name = "cbPatient"; + cbPatient.Size = new Size(214, 25); + cbPatient.TabIndex = 15; + // + // btnAddHospitalAdmission + // + btnAddHospitalAdmission.Anchor = AnchorStyles.Top | AnchorStyles.Bottom; + btnAddHospitalAdmission.AutoSizeMode = AutoSizeMode.GrowAndShrink; + btnAddHospitalAdmission.Font = new Font("Segoe UI", 11.25F, FontStyle.Regular, GraphicsUnit.Point, 204); + btnAddHospitalAdmission.Location = new Point(455, 73); + btnAddHospitalAdmission.Name = "btnAddHospitalAdmission"; + btnAddHospitalAdmission.Size = new Size(333, 33); + btnAddHospitalAdmission.TabIndex = 12; + btnAddHospitalAdmission.Text = "Добавить"; + btnAddHospitalAdmission.UseVisualStyleBackColor = true; + btnAddHospitalAdmission.Click += btnAddHospitalAdmission_Click; + // + // btnUpdate + // + btnUpdate.Anchor = AnchorStyles.Top | AnchorStyles.Bottom; + btnUpdate.AutoSizeMode = AutoSizeMode.GrowAndShrink; + btnUpdate.Font = new Font("Segoe UI", 11.25F, FontStyle.Regular, GraphicsUnit.Point, 204); + btnUpdate.Location = new Point(455, 25); + btnUpdate.Name = "btnUpdate"; + btnUpdate.Size = new Size(169, 33); + btnUpdate.TabIndex = 11; + btnUpdate.Text = "Изменить"; + btnUpdate.UseVisualStyleBackColor = true; + btnUpdate.Click += btnUpdate_Click; + // + // btnDelete + // + btnDelete.Anchor = AnchorStyles.Top | AnchorStyles.Bottom; + btnDelete.AutoSizeMode = AutoSizeMode.GrowAndShrink; + btnDelete.Font = new Font("Segoe UI", 11.25F, FontStyle.Regular, GraphicsUnit.Point, 204); + btnDelete.Location = new Point(630, 25); + btnDelete.Name = "btnDelete"; + btnDelete.Size = new Size(158, 33); + btnDelete.TabIndex = 10; + btnDelete.Text = "Удалить"; + btnDelete.UseVisualStyleBackColor = true; + btnDelete.Click += btnDelete_Click; + // + // btnHospitalDischarge + // + btnHospitalDischarge.Anchor = AnchorStyles.Top | AnchorStyles.Bottom; + btnHospitalDischarge.AutoSizeMode = AutoSizeMode.GrowAndShrink; + btnHospitalDischarge.Font = new Font("Segoe UI", 11.25F, FontStyle.Regular, GraphicsUnit.Point, 204); + btnHospitalDischarge.Location = new Point(232, 25); + btnHospitalDischarge.Name = "btnHospitalDischarge"; + btnHospitalDischarge.Size = new Size(217, 33); + btnHospitalDischarge.TabIndex = 7; + btnHospitalDischarge.Text = "Завершить госпитализацию"; + btnHospitalDischarge.UseVisualStyleBackColor = true; + btnHospitalDischarge.Click += btnHospitalDischarge_Click; + // + // dgv + // + dgv.AllowUserToAddRows = false; + dgv.AllowUserToDeleteRows = false; + dgv.AllowUserToOrderColumns = true; + dgv.ClipboardCopyMode = DataGridViewClipboardCopyMode.EnableWithoutHeaderText; + dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; + dgv.Dock = DockStyle.Fill; + dgv.Location = new Point(0, 0); + dgv.MultiSelect = false; + dgv.Name = "dgv"; + dgv.ReadOnly = true; + dgv.SelectionMode = DataGridViewSelectionMode.FullRowSelect; + dgv.Size = new Size(800, 517); + dgv.TabIndex = 8; + dgv.SelectionChanged += dgv_SelectionChanged; + // + // cmsMedicineProductCost + // + cmsMedicineProductCost.Font = new Font("Segoe UI", 9.75F, FontStyle.Regular, GraphicsUnit.Point, 204); + cmsMedicineProductCost.Name = "cmsMedicineProductCost"; + cmsMedicineProductCost.Size = new Size(61, 4); + // + // cmsMedicineProduct + // + cmsMedicineProduct.Name = "contextMenuStrip1"; + cmsMedicineProduct.Size = new Size(61, 4); + // + // HospitalForm + // + AutoScaleDimensions = new SizeF(7F, 17F); + AutoScaleMode = AutoScaleMode.Font; + ClientSize = new Size(800, 647); + Controls.Add(splitContainer1); + Font = new Font("Segoe UI", 9.75F, FontStyle.Regular, GraphicsUnit.Point, 204); + FormBorderStyle = FormBorderStyle.FixedSingle; + Name = "HospitalForm"; + Text = "Госпитализации"; + splitContainer1.Panel1.ResumeLayout(false); + splitContainer1.Panel1.PerformLayout(); + splitContainer1.Panel2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)splitContainer1).EndInit(); + splitContainer1.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)dgv).EndInit(); + ResumeLayout(false); + } + + #endregion + + private SplitContainer splitContainer1; + private DataGridView dgv; + private ContextMenuStrip cmsMedicineProduct; + private ContextMenuStrip cmsMedicineProductCost; + private Button btnHospitalDischarge; + private Button btnDelete; + private Button btnAddHospitalAdmission; + private Button btnUpdate; + private Label label3; + private ComboBox cbDisease; + private Label label2; + private ComboBox cbPatient; + internal DateTimePicker dtpArrive; + private Label label6; + } +} \ No newline at end of file diff --git a/Register office/Register office/View/HospitalV/HospitalForm.cs b/Register office/Register office/View/HospitalV/HospitalForm.cs new file mode 100644 index 0000000..18fb949 --- /dev/null +++ b/Register office/Register office/View/HospitalV/HospitalForm.cs @@ -0,0 +1,156 @@ +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.ChangeTracking.Internal; +using Register_office.Model; +using Register_office.View.TypesV; +using Register_office.ViewModel; +using System.Data; +using System.Xml.Linq; + +namespace Register_office.View.PatientV +{ + public partial class HospitalForm : Form + { + private HospitalViewModel _viewModel; + private HospitalAdmission? _selectedHospital; + private string _columnIdName = "HospitalAdmissionId"; + + public HospitalForm() + { + Init(); + } + + public HospitalForm(Patient patient) + { + Init(); + dgv.DataSource = new SortableBindingList( + HospitalAdmissionWrapper.ToList(_viewModel.GetHospitalAdmission() + .Where(x => x.PatientId == patient.PatientId) + .ToList())); + } + + private void Init() + { + InitializeComponent(); + TopMost = true; + Text = "Госпитализации"; + _viewModel = new(); + _viewModel.ConfigureSettingsDGV(dgv); + dtpArrive.Value = + dtpArrive.MaxDate = DateTime.Now; + SetDataSourceToComboBoxes(); + UpdateDgv(); + UpdateElements(); + } + + private void SetDataSourceToComboBoxes() + { + cbDisease.DataSource = _viewModel.General.Context.Diseases + .Select(x => new ComboBoxItem { Name = x.Name, Id = x.DiseaseId }) + .OrderBy(cbi => cbi.Name).ToList(); + cbDisease.DisplayMember = "Name"; + cbDisease.ValueMember = "Id"; + + cbPatient.DataSource = _viewModel.General.Context.Patients + .Include(x => x.PatientNavigation) + .Select(x => new ComboBoxItem + { + Name = x.PatientNavigation.FirstName + " " + + x.PatientNavigation.FirstName + " " + + x.PatientNavigation.LastName, + Id = x.PatientId + }) + .OrderBy(cbi => cbi.Name).ToList(); + cbPatient.DisplayMember = "Name"; + cbPatient.ValueMember = "Id"; + } + + private void UpdateElements(bool enableButtons = false) + { + if (_selectedHospital != null) + { + cbPatient.SelectedValue = _selectedHospital.PatientId; + cbDisease.SelectedValue = _selectedHospital.PreliminaryDiseaseId; + dtpArrive.Value = _selectedHospital.AdmissionDatetime; + btnHospitalDischarge.Enabled = true; + btnHospitalDischarge.Text = _selectedHospital.HospitalDischarges.Any() + ? "Результаты госпитализации" + : "Завершить госпитализацию"; + } + + btnDelete.Enabled = btnUpdate.Enabled = btnHospitalDischarge.Enabled = enableButtons; + } + + private void UpdateDgv() + { + _viewModel.SetDefaultDataSource(dgv); + } + + private void dgv_SelectionChanged(object sender, EventArgs e) + { + if (dgv.SelectedRows.Count != 0 && !dgv.CurrentRow.IsNewRow) + { + DataGridViewRow selectedRow = dgv.SelectedRows[0]; + int id = int.Parse(selectedRow.Cells[_columnIdName].Value.ToString() ?? ""); + _selectedHospital = _viewModel.GetHospitalAdmission(id).FirstOrDefault(); + if (_selectedHospital != null) + UpdateElements(true); + } + } + + private void btnDelete_Click(object sender, EventArgs e) + { + if (_selectedHospital != null) + { + _viewModel.DeleteHospital(_selectedHospital); + UpdateElements(); + UpdateDgv(); + } + } + + private void btnUpdate_Click(object sender, EventArgs e) + { + if (_selectedHospital != null) + { + _selectedHospital.PatientId = int.Parse(cbPatient.SelectedValue?.ToString() ?? "-1"); + _selectedHospital.PreliminaryDiseaseId = int.Parse(cbDisease.SelectedValue?.ToString() ?? "-1"); + _selectedHospital.AdmissionDatetime = dtpArrive.Value; + _viewModel.Update(); + UpdateElements(); + UpdateDgv(); + } + } + + private void btnAddHospitalAdmission_Click(object sender, EventArgs e) + { + HospitalAdmission _temp = new() + { + PatientId = int.Parse(cbPatient.SelectedValue?.ToString() ?? "-1"), + PreliminaryDiseaseId = int.Parse(cbDisease.SelectedValue?.ToString() ?? "-1"), + AdmissionDatetime = dtpArrive.Value + }; + _viewModel.AddHospital(_temp); + UpdateElements(); + UpdateDgv(); + } + + private void btnHospitalDischarge_Click(object sender, EventArgs e) + { + HospitalDischargeDataForm hdf; + + if (_selectedHospital.HospitalDischarges.Any()) + { + hdf = new(_selectedHospital, false); + hdf.ShowDialog(); + } + else + { + hdf = new(_selectedHospital); + if (hdf.ShowDialog() == DialogResult.OK) + { + btnHospitalDischarge.Text = "Результаты госпитализации"; + } + } + + } + } +} diff --git a/Register office/Register office/View/HospitalV/HospitalForm.resx b/Register office/Register office/View/HospitalV/HospitalForm.resx new file mode 100644 index 0000000..93017c2 --- /dev/null +++ b/Register office/Register office/View/HospitalV/HospitalForm.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 184, 17 + + + 17, 17 + + \ No newline at end of file diff --git a/Register office/Register office/View/MenuV/OnlyMenuForm.Designer.cs b/Register office/Register office/View/MenuV/OnlyMenuForm.Designer.cs new file mode 100644 index 0000000..a768e75 --- /dev/null +++ b/Register office/Register office/View/MenuV/OnlyMenuForm.Designer.cs @@ -0,0 +1,237 @@ +namespace Register_office.View.MenuV +{ + partial class OnlyMenuForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + menuStrip1 = new MenuStrip(); + справочникиToolStripMenuItem = new ToolStripMenuItem(); + лекарстваToolStripMenuItem = new ToolStripMenuItem(); + способыприемалекарствToolStripMenuItem = new ToolStripMenuItem(); + заболеваниеToolStripMenuItem1 = new ToolStripMenuItem(); + процедурыToolStripMenuItem = new ToolStripMenuItem(); + синдромыToolStripMenuItem = new ToolStripMenuItem(); + соответствиеЗаболеванийИСиндромовToolStripMenuItem = new ToolStripMenuItem(); + обследованияToolStripMenuItem = new ToolStripMenuItem(); + нормалиОбследованийToolStripMenuItem = new ToolStripMenuItem(); + CоответствиеСиндромовИОбследованийToolStripMenuItem = new ToolStripMenuItem(); + единицыИзмеренияToolStripMenuItem = new ToolStripMenuItem(); + сотрудникиToolStripMenuItem = new ToolStripMenuItem(); + пациентыToolStripMenuItem = new ToolStripMenuItem(); + добавитьПациентаToolStripMenuItem = new ToolStripMenuItem(); + toolStripSeparator1 = new ToolStripSeparator(); + назначенияToolStripMenuItem = new ToolStripMenuItem(); + госпитализацииToolStripMenuItem = new ToolStripMenuItem(); + отчетыToolStripMenuItem = new ToolStripMenuItem(); + результатыАнализовToolStripMenuItem = new ToolStripMenuItem(); + menuStrip1.SuspendLayout(); + SuspendLayout(); + // + // menuStrip1 + // + menuStrip1.Font = new Font("Segoe UI", 14.25F, FontStyle.Regular, GraphicsUnit.Point, 204); + menuStrip1.Items.AddRange(new ToolStripItem[] { справочникиToolStripMenuItem, сотрудникиToolStripMenuItem, отчетыToolStripMenuItem }); + menuStrip1.Location = new Point(0, 0); + menuStrip1.Name = "menuStrip1"; + menuStrip1.Size = new Size(800, 33); + menuStrip1.TabIndex = 0; + menuStrip1.Text = "menuStrip1"; + // + // справочникиToolStripMenuItem + // + справочникиToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { лекарстваToolStripMenuItem, способыприемалекарствToolStripMenuItem, заболеваниеToolStripMenuItem1, процедурыToolStripMenuItem, синдромыToolStripMenuItem, соответствиеЗаболеванийИСиндромовToolStripMenuItem, обследованияToolStripMenuItem, нормалиОбследованийToolStripMenuItem, CоответствиеСиндромовИОбследованийToolStripMenuItem, единицыИзмеренияToolStripMenuItem }); + справочникиToolStripMenuItem.Name = "справочникиToolStripMenuItem"; + справочникиToolStripMenuItem.Size = new Size(142, 29); + справочникиToolStripMenuItem.Text = "Справочники"; + // + // лекарстваToolStripMenuItem + // + лекарстваToolStripMenuItem.Name = "лекарстваToolStripMenuItem"; + лекарстваToolStripMenuItem.Size = new Size(462, 30); + лекарстваToolStripMenuItem.Text = "Лекарства..."; + лекарстваToolStripMenuItem.Click += лекарстваToolStripMenuItem_Click; + // + // способыприемалекарствToolStripMenuItem + // + способыприемалекарствToolStripMenuItem.Name = "способыприемалекарствToolStripMenuItem"; + способыприемалекарствToolStripMenuItem.Size = new Size(462, 30); + способыприемалекарствToolStripMenuItem.Text = "Способы приема лекарств..."; + способыприемалекарствToolStripMenuItem.Click += способыприемалекарствToolStripMenuItem_Click; + // + // заболеваниеToolStripMenuItem1 + // + заболеваниеToolStripMenuItem1.Name = "заболеваниеToolStripMenuItem1"; + заболеваниеToolStripMenuItem1.Size = new Size(462, 30); + заболеваниеToolStripMenuItem1.Text = "Заболевания..."; + заболеваниеToolStripMenuItem1.Click += заболеваниеToolStripMenuItem1_Click; + // + // процедурыToolStripMenuItem + // + процедурыToolStripMenuItem.Name = "процедурыToolStripMenuItem"; + процедурыToolStripMenuItem.Size = new Size(462, 30); + процедурыToolStripMenuItem.Text = "Процедуры..."; + процедурыToolStripMenuItem.Click += процедурыToolStripMenuItem_Click; + // + // синдромыToolStripMenuItem + // + синдромыToolStripMenuItem.Name = "синдромыToolStripMenuItem"; + синдромыToolStripMenuItem.Size = new Size(462, 30); + синдромыToolStripMenuItem.Text = "Синдромы..."; + синдромыToolStripMenuItem.Click += синдромыToolStripMenuItem_Click; + // + // соответствиеЗаболеванийИСиндромовToolStripMenuItem + // + соответствиеЗаболеванийИСиндромовToolStripMenuItem.Name = "соответствиеЗаболеванийИСиндромовToolStripMenuItem"; + соответствиеЗаболеванийИСиндромовToolStripMenuItem.Size = new Size(462, 30); + соответствиеЗаболеванийИСиндромовToolStripMenuItem.Text = "Соответствие заболеваний и синдромов..."; + соответствиеЗаболеванийИСиндромовToolStripMenuItem.Click += соответствиеЗаболеванийИСиндромовToolStripMenuItem_Click; + // + // обследованияToolStripMenuItem + // + обследованияToolStripMenuItem.Name = "обследованияToolStripMenuItem"; + обследованияToolStripMenuItem.Size = new Size(462, 30); + обследованияToolStripMenuItem.Text = "Обследования..."; + обследованияToolStripMenuItem.Click += обследованияToolStripMenuItem_Click; + // + // нормалиОбследованийToolStripMenuItem + // + нормалиОбследованийToolStripMenuItem.Name = "нормалиОбследованийToolStripMenuItem"; + нормалиОбследованийToolStripMenuItem.Size = new Size(462, 30); + нормалиОбследованийToolStripMenuItem.Text = "Нормали обследований..."; + нормалиОбследованийToolStripMenuItem.Click += нормалиОбследованийToolStripMenuItem_Click; + // + // CоответствиеСиндромовИОбследованийToolStripMenuItem + // + CоответствиеСиндромовИОбследованийToolStripMenuItem.Name = "CоответствиеСиндромовИОбследованийToolStripMenuItem"; + CоответствиеСиндромовИОбследованийToolStripMenuItem.Size = new Size(462, 30); + CоответствиеСиндромовИОбследованийToolStripMenuItem.Text = "Cоответствие синдромов и обследований..."; + CоответствиеСиндромовИОбследованийToolStripMenuItem.Click += CоответствиеСиндромовИОбследованийToolStripMenuItem_Click; + // + // единицыИзмеренияToolStripMenuItem + // + единицыИзмеренияToolStripMenuItem.Name = "единицыИзмеренияToolStripMenuItem"; + единицыИзмеренияToolStripMenuItem.Size = new Size(462, 30); + единицыИзмеренияToolStripMenuItem.Text = "Единицы измерения..."; + единицыИзмеренияToolStripMenuItem.Click += единицыИзмеренияToolStripMenuItem_Click; + // + // сотрудникиToolStripMenuItem + // + сотрудникиToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { пациентыToolStripMenuItem, добавитьПациентаToolStripMenuItem, toolStripSeparator1, назначенияToolStripMenuItem, госпитализацииToolStripMenuItem }); + сотрудникиToolStripMenuItem.Name = "сотрудникиToolStripMenuItem"; + сотрудникиToolStripMenuItem.Size = new Size(85, 29); + сотрудникиToolStripMenuItem.Text = "Работа"; + // + // пациентыToolStripMenuItem + // + пациентыToolStripMenuItem.Name = "пациентыToolStripMenuItem"; + пациентыToolStripMenuItem.Size = new Size(267, 30); + пациентыToolStripMenuItem.Text = "Пациенты..."; + пациентыToolStripMenuItem.Click += пациентыToolStripMenuItem_Click; + // + // добавитьПациентаToolStripMenuItem + // + добавитьПациентаToolStripMenuItem.Name = "добавитьПациентаToolStripMenuItem"; + добавитьПациентаToolStripMenuItem.Size = new Size(267, 30); + добавитьПациентаToolStripMenuItem.Text = "Добавить пациента..."; + добавитьПациентаToolStripMenuItem.Click += добавитьПациентаToolStripMenuItem_Click; + // + // toolStripSeparator1 + // + toolStripSeparator1.Name = "toolStripSeparator1"; + toolStripSeparator1.Size = new Size(264, 6); + // + // назначенияToolStripMenuItem + // + назначенияToolStripMenuItem.Name = "назначенияToolStripMenuItem"; + назначенияToolStripMenuItem.Size = new Size(267, 30); + назначенияToolStripMenuItem.Text = "Назначения..."; + назначенияToolStripMenuItem.Click += назначенияToolStripMenuItem_Click; + // + // госпитализацииToolStripMenuItem + // + госпитализацииToolStripMenuItem.Name = "госпитализацииToolStripMenuItem"; + госпитализацииToolStripMenuItem.Size = new Size(267, 30); + госпитализацииToolStripMenuItem.Text = "Госпитализации..."; + госпитализацииToolStripMenuItem.Click += госпитализацииToolStripMenuItem_Click; + // + // отчетыToolStripMenuItem + // + отчетыToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { результатыАнализовToolStripMenuItem }); + отчетыToolStripMenuItem.Name = "отчетыToolStripMenuItem"; + отчетыToolStripMenuItem.Size = new Size(88, 29); + отчетыToolStripMenuItem.Text = "Отчеты"; + // + // результатыАнализовToolStripMenuItem + // + результатыАнализовToolStripMenuItem.Name = "результатыАнализовToolStripMenuItem"; + результатыАнализовToolStripMenuItem.Size = new Size(267, 30); + результатыАнализовToolStripMenuItem.Text = "Результаты анализов"; + результатыАнализовToolStripMenuItem.Click += результатыАнализовToolStripMenuItem_Click; + // + // OnlyMenuForm + // + AutoScaleDimensions = new SizeF(7F, 15F); + AutoScaleMode = AutoScaleMode.Font; + ClientSize = new Size(800, 35); + Controls.Add(menuStrip1); + FormBorderStyle = FormBorderStyle.FixedSingle; + MainMenuStrip = menuStrip1; + MaximizeBox = false; + Name = "OnlyMenuForm"; + Text = "ИНФОРМАЦИОННАЯ СИСТЕМА \"РЕГИСТРАТУРА\""; + WindowState = FormWindowState.Maximized; + SizeChanged += Form_SizeChanged; + menuStrip1.ResumeLayout(false); + menuStrip1.PerformLayout(); + ResumeLayout(false); + PerformLayout(); + } + + #endregion + + private MenuStrip menuStrip1; + private ToolStripMenuItem справочникиToolStripMenuItem; + private ToolStripMenuItem заболеваниеToolStripMenuItem1; + private ToolStripMenuItem способыприемалекарствToolStripMenuItem; + private ToolStripMenuItem обследованияToolStripMenuItem; + private ToolStripMenuItem нормалиОбследованийToolStripMenuItem; + private ToolStripMenuItem сотрудникиToolStripMenuItem; + private ToolStripMenuItem отчетыToolStripMenuItem; + private ToolStripMenuItem CоответствиеСиндромовИОбследованийToolStripMenuItem; + private ToolStripMenuItem пациентыToolStripMenuItem; + private ToolStripMenuItem назначенияToolStripMenuItem; + private ToolStripMenuItem результатыАнализовToolStripMenuItem; + private ToolStripMenuItem процедурыToolStripMenuItem; + private ToolStripMenuItem госпитализацииToolStripMenuItem; + private ToolStripMenuItem синдромыToolStripMenuItem; + private ToolStripMenuItem единицыИзмеренияToolStripMenuItem; + private ToolStripMenuItem лекарстваToolStripMenuItem; + private ToolStripMenuItem соответствиеЗаболеванийИСиндромовToolStripMenuItem; + private ToolStripMenuItem добавитьПациентаToolStripMenuItem; + private ToolStripSeparator toolStripSeparator1; + } +} \ No newline at end of file diff --git a/Register office/Register office/View/MenuV/OnlyMenuForm.cs b/Register office/Register office/View/MenuV/OnlyMenuForm.cs new file mode 100644 index 0000000..e3a26dc --- /dev/null +++ b/Register office/Register office/View/MenuV/OnlyMenuForm.cs @@ -0,0 +1,149 @@ +using Register_office; +using Register_office.Model; +using Register_office.View.LoginV; +using Register_office.View.PatientV; +using Register_office.View.TypesV; +using Register_office.ViewModel; +using System.Data; + +namespace Register_office.View.MenuV +{ + public partial class OnlyMenuForm : Form + { + OnlyMenuViewModel _viewModel; + + public OnlyMenuForm() + { + InitializeComponent(); + _viewModel = new(); + SetFormByRole(); + } + + private void SetFormByRole() + { + if (_viewModel.General.DoctorId < 1) + { + справочникиToolStripMenuItem.Visible = + госпитализацииToolStripMenuItem.Visible = + отчетыToolStripMenuItem.Visible = false; + } + } + + private T ShowForm() where T : Form, new() + { + T? form = _viewModel.General.GetActivatedForm(); + + form ??= new(); + + form.Visible = true; + form.Show(); + return form; + } + + private void ReportAnalyses() + { + + List sales = _viewModel.GetReport(); + + string fileName = _viewModel.General.PathReport + "/Результаты анализов " + + DateOnly.FromDateTime(DateTime.Now) + ".xlsx"; + + ExcelManager.ExportToExcel(sales, fileName); + ExcelManager.OpenExcelFile(fileName); + } + + private void HideForms() + { + FormCollection formCollection = Application.OpenForms; + bool hide = false; + if (this.WindowState == FormWindowState.Minimized) + hide = false; + else if (this.WindowState == FormWindowState.Maximized) + hide = true; + + foreach (Form form in formCollection) + if (form.Name != this.Name && form.Name != new LoginForm().Name) + form.Visible = hide; + } + + private void Form_SizeChanged(object sender, EventArgs e) + { + HideForms(); + } + + private void заболеваниеToolStripMenuItem1_Click(object sender, EventArgs e) + { + ShowForm(); + } + + private void способыприемалекарствToolStripMenuItem_Click(object sender, EventArgs e) + { + ShowForm(); + } + + private void обследованияToolStripMenuItem_Click(object sender, EventArgs e) + { + ShowForm(); + } + + private void процедурыToolStripMenuItem_Click(object sender, EventArgs e) + { + ShowForm(); + } + + private void нормалиОбследованийToolStripMenuItem_Click(object sender, EventArgs e) + { + ShowForm(); + } + + private void синдромыToolStripMenuItem_Click(object sender, EventArgs e) + { + ShowForm(); + } + + private void CоответствиеСиндромовИОбследованийToolStripMenuItem_Click(object sender, EventArgs e) + { + ShowForm(); + } + + private void единицыИзмеренияToolStripMenuItem_Click(object sender, EventArgs e) + { + ShowForm(); + } + + private void лекарстваToolStripMenuItem_Click(object sender, EventArgs e) + { + ShowForm(); + } + + private void соответствиеЗаболеванийИСиндромовToolStripMenuItem_Click(object sender, EventArgs e) + { + ShowForm(); + } + + private void пациентыToolStripMenuItem_Click(object sender, EventArgs e) + { + ShowForm(); + } + + private void добавитьПациентаToolStripMenuItem_Click(object sender, EventArgs e) + { + ShowForm(); + } + + private void назначенияToolStripMenuItem_Click(object sender, EventArgs e) + { + ShowForm(); + } + + private void госпитализацииToolStripMenuItem_Click(object sender, EventArgs e) + { + ShowForm(); + } + + private void результатыАнализовToolStripMenuItem_Click(object sender, EventArgs e) + { + ReportAnalyses(); + } + } +} diff --git a/Register office/Register office/View/MenuV/OnlyMenuForm.resx b/Register office/Register office/View/MenuV/OnlyMenuForm.resx new file mode 100644 index 0000000..750d53a --- /dev/null +++ b/Register office/Register office/View/MenuV/OnlyMenuForm.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + \ No newline at end of file diff --git a/Register office/Register office/View/PatientV/PatientDataForm.Designer.cs b/Register office/Register office/View/PatientV/PatientDataForm.Designer.cs new file mode 100644 index 0000000..69bfb39 --- /dev/null +++ b/Register office/Register office/View/PatientV/PatientDataForm.Designer.cs @@ -0,0 +1,281 @@ +namespace Register_office.View.PatientV +{ + partial class PatientDataForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + label1 = new Label(); + tbName = new TextBox(); + lblData = new Label(); + tbSurname = new TextBox(); + label3 = new Label(); + tbPatronymic = new TextBox(); + label4 = new Label(); + label6 = new Label(); + label7 = new Label(); + btnOK = new Button(); + button2 = new Button(); + dtpBirthday = new DateTimePicker(); + cbGender = new ComboBox(); + lblIdPerson = new Label(); + label5 = new Label(); + tbAddress = new TextBox(); + mtbPolicy = new MaskedTextBox(); + label2 = new Label(); + SuspendLayout(); + // + // label1 + // + label1.AutoSize = true; + label1.Font = new Font("Segoe UI", 14.25F, FontStyle.Regular, GraphicsUnit.Point, 204); + label1.Location = new Point(12, 49); + label1.Name = "label1"; + label1.Size = new Size(91, 25); + label1.TabIndex = 0; + label1.Text = "Фамилия"; + // + // tbName + // + tbName.Font = new Font("Segoe UI", 12F); + tbName.Location = new Point(12, 137); + tbName.Name = "tbName"; + tbName.Size = new Size(398, 29); + tbName.TabIndex = 1; + tbName.KeyPress += TextBoxKeyPress; + // + // lblData + // + lblData.AutoSize = true; + lblData.Font = new Font("Segoe UI", 18F, FontStyle.Regular, GraphicsUnit.Point, 204); + lblData.Location = new Point(78, 9); + lblData.Name = "lblData"; + lblData.Size = new Size(233, 32); + lblData.TabIndex = 2; + lblData.Text = "Данные о пациенте"; + // + // tbSurname + // + tbSurname.Font = new Font("Segoe UI", 12F); + tbSurname.Location = new Point(12, 77); + tbSurname.Name = "tbSurname"; + tbSurname.Size = new Size(398, 29); + tbSurname.TabIndex = 0; + tbSurname.KeyPress += TextBoxKeyPress; + // + // label3 + // + label3.AutoSize = true; + label3.Font = new Font("Segoe UI", 14.25F, FontStyle.Regular, GraphicsUnit.Point, 204); + label3.Location = new Point(12, 109); + label3.Name = "label3"; + label3.Size = new Size(49, 25); + label3.TabIndex = 3; + label3.Text = "Имя"; + // + // tbPatronymic + // + tbPatronymic.Font = new Font("Segoe UI", 12F); + tbPatronymic.Location = new Point(12, 197); + tbPatronymic.Name = "tbPatronymic"; + tbPatronymic.Size = new Size(398, 29); + tbPatronymic.TabIndex = 2; + tbPatronymic.KeyPress += TextBoxKeyPress; + // + // label4 + // + label4.AutoSize = true; + label4.Font = new Font("Segoe UI", 14.25F, FontStyle.Regular, GraphicsUnit.Point, 204); + label4.Location = new Point(12, 169); + label4.Name = "label4"; + label4.Size = new Size(93, 25); + label4.TabIndex = 5; + label4.Text = "Отчество"; + // + // label6 + // + label6.AutoSize = true; + label6.Font = new Font("Segoe UI", 14.25F, FontStyle.Regular, GraphicsUnit.Point, 204); + label6.Location = new Point(12, 289); + label6.Name = "label6"; + label6.Size = new Size(146, 25); + label6.TabIndex = 9; + label6.Text = "Дата рождения"; + // + // label7 + // + label7.AutoSize = true; + label7.Font = new Font("Segoe UI", 14.25F, FontStyle.Regular, GraphicsUnit.Point, 204); + label7.Location = new Point(246, 289); + label7.Name = "label7"; + label7.Size = new Size(47, 25); + label7.TabIndex = 11; + label7.Text = "Пол"; + // + // btnOK + // + btnOK.Anchor = AnchorStyles.Bottom | AnchorStyles.Left; + btnOK.DialogResult = DialogResult.OK; + btnOK.Font = new Font("Segoe UI", 14.25F, FontStyle.Regular, GraphicsUnit.Point, 204); + btnOK.Location = new Point(12, 421); + btnOK.Name = "btnOK"; + btnOK.Size = new Size(161, 42); + btnOK.TabIndex = 7; + btnOK.Text = "Принять"; + btnOK.UseVisualStyleBackColor = true; + btnOK.Click += btnOK_Click; + // + // button2 + // + button2.Anchor = AnchorStyles.Bottom | AnchorStyles.Left; + button2.DialogResult = DialogResult.Cancel; + button2.Font = new Font("Segoe UI", 14.25F, FontStyle.Regular, GraphicsUnit.Point, 204); + button2.Location = new Point(249, 421); + button2.Name = "button2"; + button2.Size = new Size(161, 42); + button2.TabIndex = 8; + button2.Text = "Отмена"; + button2.UseVisualStyleBackColor = true; + // + // dtpBirthday + // + dtpBirthday.Font = new Font("Segoe UI", 12F); + dtpBirthday.Location = new Point(12, 317); + dtpBirthday.MinDate = new DateTime(1940, 1, 1, 0, 0, 0, 0); + dtpBirthday.Name = "dtpBirthday"; + dtpBirthday.Size = new Size(200, 29); + dtpBirthday.TabIndex = 4; + // + // cbGender + // + cbGender.DropDownStyle = ComboBoxStyle.DropDownList; + cbGender.Font = new Font("Segoe UI", 12F); + cbGender.FormattingEnabled = true; + cbGender.Items.AddRange(new object[] { "Мужчина", "Женщина" }); + cbGender.Location = new Point(246, 317); + cbGender.Name = "cbGender"; + cbGender.Size = new Size(161, 29); + cbGender.TabIndex = 5; + // + // lblIdPerson + // + lblIdPerson.AutoSize = true; + lblIdPerson.Location = new Point(229, 328); + lblIdPerson.Name = "lblIdPerson"; + lblIdPerson.Size = new Size(0, 15); + lblIdPerson.TabIndex = 21; + lblIdPerson.Visible = false; + // + // label5 + // + label5.AutoSize = true; + label5.Font = new Font("Segoe UI", 14.25F, FontStyle.Regular, GraphicsUnit.Point, 204); + label5.Location = new Point(12, 229); + label5.Name = "label5"; + label5.Size = new Size(64, 25); + label5.TabIndex = 7; + label5.Text = "Адрес"; + // + // tbAddress + // + tbAddress.Font = new Font("Segoe UI", 12F); + tbAddress.Location = new Point(12, 257); + tbAddress.Name = "tbAddress"; + tbAddress.Size = new Size(398, 29); + tbAddress.TabIndex = 3; + // + // mtbPolicy + // + mtbPolicy.Font = new Font("Segoe UI", 12F, FontStyle.Regular, GraphicsUnit.Point, 204); + mtbPolicy.Location = new Point(12, 377); + mtbPolicy.Mask = "9999999999999999"; + mtbPolicy.Name = "mtbPolicy"; + mtbPolicy.Size = new Size(161, 29); + mtbPolicy.TabIndex = 24; + // + // label2 + // + label2.AutoSize = true; + label2.Font = new Font("Segoe UI", 14.25F, FontStyle.Regular, GraphicsUnit.Point, 204); + label2.Location = new Point(12, 349); + label2.Name = "label2"; + label2.Size = new Size(67, 25); + label2.TabIndex = 23; + label2.Text = "Полис"; + // + // PatientDataForm + // + AutoScaleDimensions = new SizeF(7F, 15F); + AutoScaleMode = AutoScaleMode.Font; + ClientSize = new Size(425, 475); + Controls.Add(mtbPolicy); + Controls.Add(label2); + Controls.Add(lblIdPerson); + Controls.Add(cbGender); + Controls.Add(dtpBirthday); + Controls.Add(button2); + Controls.Add(btnOK); + Controls.Add(label7); + Controls.Add(label6); + Controls.Add(tbAddress); + Controls.Add(label5); + Controls.Add(tbPatronymic); + Controls.Add(label4); + Controls.Add(tbSurname); + Controls.Add(label3); + Controls.Add(lblData); + Controls.Add(tbName); + Controls.Add(label1); + FormBorderStyle = FormBorderStyle.FixedToolWindow; + Name = "PatientDataForm"; + StartPosition = FormStartPosition.CenterScreen; + Text = "Данные пациента"; + ResumeLayout(false); + PerformLayout(); + } + + #endregion + + private Label label1; + private Label label3; + private Label label4; + private Label label6; + private Label label7; + private Button button2; + internal DateTimePicker dtpBirthday; + internal ComboBox cbGender; + internal TextBox tbName; + internal TextBox tbSurname; + internal TextBox tbPatronymic; + internal Label lblData; + internal Button btnOK; + internal Label lblIdPerson; + private Label label5; + internal TextBox tbAddress; + private MaskedTextBox mtbPolicy; + private Label label2; + } +} \ No newline at end of file diff --git a/Register office/Register office/View/PatientV/PatientDataForm.cs b/Register office/Register office/View/PatientV/PatientDataForm.cs new file mode 100644 index 0000000..39ee470 --- /dev/null +++ b/Register office/Register office/View/PatientV/PatientDataForm.cs @@ -0,0 +1,120 @@ +using Register_office.Model; +using Register_office.ViewModel; + +namespace Register_office.View.PatientV +{ + public partial class PatientDataForm : Form + { + private PatientViewModel _viewModel; + + public PatientDataForm() + { + Init(); + } + + public PatientDataForm(Patient e) + { + Init(); + SetPatientData(e); + } + + private void Init() + { + InitializeComponent(); + TopMost = true; + _viewModel = new(); + SetDataSourceToComboBoxes(); + dtpBirthday.Value = + dtpBirthday.MaxDate = DateTime.Now; + } + + private void SetPatientData(Patient patient) + { + mtbPolicy.Text = patient.PolicyNumber; + Person p = patient.PatientNavigation; + tbSurname.Text = p.MiddleName; + tbName.Text = p.FirstName; + tbPatronymic.Text = p.LastName; + tbAddress.Text = p.Address; + dtpBirthday.Value = new(p.BirthDate, new()); + cbGender.Text = p.Gender; + + string patientName = string.Concat(tbSurname.Text, " ", + tbName.Text, " ", tbPatronymic.Text); + + Text = "Изменение данных"; + lblData.Dock = DockStyle.Top; + lblData.Text = patientName; + lblIdPerson.Text = p.PersonId.ToString(); + } + + private void SetDataSourceToComboBoxes() + { + cbGender.DataSource = new string[] { "Мужчина", "Женщина" }; + } + + private void TextBoxKeyPress(object sender, KeyPressEventArgs e) + { + // Разрешаем только буквы + if (!char.IsControl(e.KeyChar) && !char.IsLetter(e.KeyChar)) + { + e.Handled = true; // Блокируем ввод + } + } + + private void btnOK_Click(object sender, EventArgs e) + { + Person person = new(); + person = SetPersonData(person); + int id = person.PersonId; + + if (lblIdPerson.Text != "") + { + person = _viewModel.GetPerson(id).First(); + person = SetPersonData(person); + person.Patient.PolicyNumber = mtbPolicy.Text; + _viewModel.Update(); + } + else + { + id = _viewModel.AddPerson(person); + if (id == -1) + { + DialogResult = DialogResult.None; + return; + } + + Patient p = new() + { + PatientId = id, + PolicyNumber = mtbPolicy.Text + }; + if (!_viewModel.AddPatient(p)) + { + DialogResult = DialogResult.None; + return; + } + } + + MessageBox.Show("Пациент успешно добавлен", "Добавление пользователя", + MessageBoxButtons.OK, MessageBoxIcon.Information); + Close(); + + } + + private Person SetPersonData(Person p) + { + p.MiddleName = tbSurname.Text; + p.FirstName = tbName.Text; + p.LastName = tbPatronymic.Text; + p.Address = tbAddress.Text; + p.BirthDate = DateOnly.FromDateTime(dtpBirthday.Value); + p.Gender = cbGender.Text; + + if (lblIdPerson.Text != "") + p.PersonId = int.Parse(lblIdPerson.Text); + + return p; + } + } +} diff --git a/Register office/Register office/View/PatientV/PatientDataForm.resx b/Register office/Register office/View/PatientV/PatientDataForm.resx new file mode 100644 index 0000000..4f24d55 --- /dev/null +++ b/Register office/Register office/View/PatientV/PatientDataForm.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Register office/Register office/View/PatientV/PatientForm.Designer.cs b/Register office/Register office/View/PatientV/PatientForm.Designer.cs new file mode 100644 index 0000000..fb322d8 --- /dev/null +++ b/Register office/Register office/View/PatientV/PatientForm.Designer.cs @@ -0,0 +1,181 @@ +using Register_office.View; + +namespace Register_office.View.PatientV +{ + partial class PatientForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + components = new System.ComponentModel.Container(); + splitContainer1 = new SplitContainer(); + btnDelete = new Button(); + btnUpdate = new Button(); + btnHospital = new Button(); + btnPrescription = new Button(); + dgv = new DataGridView(); + cmsMedicineProductCost = new ContextMenuStrip(components); + cmsMedicineProduct = new ContextMenuStrip(components); + ((System.ComponentModel.ISupportInitialize)splitContainer1).BeginInit(); + splitContainer1.Panel1.SuspendLayout(); + splitContainer1.Panel2.SuspendLayout(); + splitContainer1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)dgv).BeginInit(); + SuspendLayout(); + // + // splitContainer1 + // + splitContainer1.Dock = DockStyle.Fill; + splitContainer1.FixedPanel = FixedPanel.Panel1; + splitContainer1.Location = new Point(0, 0); + splitContainer1.Name = "splitContainer1"; + splitContainer1.Orientation = Orientation.Horizontal; + // + // splitContainer1.Panel1 + // + splitContainer1.Panel1.Controls.Add(btnDelete); + splitContainer1.Panel1.Controls.Add(btnUpdate); + splitContainer1.Panel1.Controls.Add(btnHospital); + splitContainer1.Panel1.Controls.Add(btnPrescription); + // + // splitContainer1.Panel2 + // + splitContainer1.Panel2.Controls.Add(dgv); + splitContainer1.Size = new Size(800, 647); + splitContainer1.SplitterDistance = 70; + splitContainer1.SplitterWidth = 5; + splitContainer1.TabIndex = 0; + // + // btnDelete + // + btnDelete.Anchor = AnchorStyles.Top | AnchorStyles.Bottom; + btnDelete.AutoSizeMode = AutoSizeMode.GrowAndShrink; + btnDelete.Font = new Font("Segoe UI", 11.25F, FontStyle.Regular, GraphicsUnit.Point, 204); + btnDelete.Location = new Point(619, 28); + btnDelete.Name = "btnDelete"; + btnDelete.Size = new Size(169, 33); + btnDelete.TabIndex = 10; + btnDelete.Text = "Удалить"; + btnDelete.UseVisualStyleBackColor = true; + btnDelete.Click += btnDelete_Click; + // + // btnUpdate + // + btnUpdate.Anchor = AnchorStyles.Top | AnchorStyles.Bottom; + btnUpdate.AutoSizeMode = AutoSizeMode.GrowAndShrink; + btnUpdate.Font = new Font("Segoe UI", 11.25F, FontStyle.Regular, GraphicsUnit.Point, 204); + btnUpdate.Location = new Point(449, 28); + btnUpdate.Name = "btnUpdate"; + btnUpdate.Size = new Size(164, 33); + btnUpdate.TabIndex = 9; + btnUpdate.Text = "Изменить"; + btnUpdate.UseVisualStyleBackColor = true; + btnUpdate.Click += btnUpdate_Click; + // + // btnHospital + // + btnHospital.Anchor = AnchorStyles.Top | AnchorStyles.Bottom; + btnHospital.AutoSizeMode = AutoSizeMode.GrowAndShrink; + btnHospital.Font = new Font("Segoe UI", 11.25F, FontStyle.Regular, GraphicsUnit.Point, 204); + btnHospital.Location = new Point(12, 28); + btnHospital.Name = "btnHospital"; + btnHospital.Size = new Size(162, 33); + btnHospital.TabIndex = 7; + btnHospital.Text = "Госпитализации"; + btnHospital.UseVisualStyleBackColor = true; + btnHospital.Click += btnHospital_Click; + // + // btnPrescription + // + btnPrescription.Anchor = AnchorStyles.Top | AnchorStyles.Bottom; + btnPrescription.AutoSizeMode = AutoSizeMode.GrowAndShrink; + btnPrescription.Font = new Font("Segoe UI", 11.25F, FontStyle.Regular, GraphicsUnit.Point, 204); + btnPrescription.Location = new Point(180, 28); + btnPrescription.Name = "btnPrescription"; + btnPrescription.Size = new Size(162, 33); + btnPrescription.TabIndex = 5; + btnPrescription.Text = "Назначения"; + btnPrescription.UseVisualStyleBackColor = true; + btnPrescription.Click += btnPrescription_Click; + // + // dgv + // + dgv.AllowUserToAddRows = false; + dgv.AllowUserToDeleteRows = false; + dgv.AllowUserToOrderColumns = true; + dgv.ClipboardCopyMode = DataGridViewClipboardCopyMode.EnableWithoutHeaderText; + dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; + dgv.Dock = DockStyle.Fill; + dgv.Location = new Point(0, 0); + dgv.MultiSelect = false; + dgv.Name = "dgv"; + dgv.ReadOnly = true; + dgv.SelectionMode = DataGridViewSelectionMode.FullRowSelect; + dgv.Size = new Size(800, 572); + dgv.TabIndex = 8; + dgv.SelectionChanged += dgv_SelectionChanged; + // + // cmsMedicineProductCost + // + cmsMedicineProductCost.Font = new Font("Segoe UI", 9.75F, FontStyle.Regular, GraphicsUnit.Point, 204); + cmsMedicineProductCost.Name = "cmsMedicineProductCost"; + cmsMedicineProductCost.Size = new Size(61, 4); + // + // cmsMedicineProduct + // + cmsMedicineProduct.Name = "contextMenuStrip1"; + cmsMedicineProduct.Size = new Size(61, 4); + // + // PatientForm + // + AutoScaleDimensions = new SizeF(7F, 17F); + AutoScaleMode = AutoScaleMode.Font; + ClientSize = new Size(800, 647); + Controls.Add(splitContainer1); + Font = new Font("Segoe UI", 9.75F, FontStyle.Regular, GraphicsUnit.Point, 204); + FormBorderStyle = FormBorderStyle.FixedSingle; + Name = "PatientForm"; + Text = "Пациенты"; + splitContainer1.Panel1.ResumeLayout(false); + splitContainer1.Panel2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)splitContainer1).EndInit(); + splitContainer1.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)dgv).EndInit(); + ResumeLayout(false); + } + + #endregion + + private SplitContainer splitContainer1; + private DataGridView dgv; + private ContextMenuStrip cmsMedicineProduct; + private ContextMenuStrip cmsMedicineProductCost; + private Button btnHospital; + private Button btnPrescription; + private Button btnUpdate; + private Button btnDelete; + } +} \ No newline at end of file diff --git a/Register office/Register office/View/PatientV/PatientForm.cs b/Register office/Register office/View/PatientV/PatientForm.cs new file mode 100644 index 0000000..514079c --- /dev/null +++ b/Register office/Register office/View/PatientV/PatientForm.cs @@ -0,0 +1,92 @@ +using Microsoft.EntityFrameworkCore.ChangeTracking.Internal; +using Register_office.Model; +using Register_office.ViewModel; +using System.Data; +using System.Xml.Linq; + +namespace Register_office.View.PatientV +{ + public partial class PatientForm : Form + { + private PatientViewModel _viewModel; + private Patient? _selectedPatient; + private string _columnIdName = "PatientId"; + private Patient _temp; + + public PatientForm() + { + InitializeComponent(); + TopMost = true; + Text = "Пациенты"; + _viewModel = new(); + _viewModel.ConfigureSettingsDGV(dgv); + UpdateDgv(); + UpdateElements(); + btnPrescription.Visible = _viewModel.General.DoctorId != 0; + } + + private void UpdateElements(bool enableButtons = false) + { + if (_selectedPatient == null) + btnPrescription.Enabled = btnHospital.Enabled = false; + else + { + btnHospital.Enabled = _selectedPatient.HospitalAdmissions.Count != 0; + btnPrescription.Enabled = _selectedPatient.Prescriptions.Count != 0; + } + btnUpdate.Enabled = btnDelete.Enabled = enableButtons; + } + + private void UpdateDgv() + { + _viewModel.SetDefaultDataSource(dgv); + } + + private void dgv_SelectionChanged(object sender, EventArgs e) + { + if (dgv.SelectedRows.Count != 0 && !dgv.CurrentRow.IsNewRow) + { + DataGridViewRow selectedRow = dgv.SelectedRows[0]; + int id = int.Parse(selectedRow.Cells[_columnIdName].Value.ToString() ?? ""); + _selectedPatient = _viewModel.GetPatient(id).FirstOrDefault(); + if (_selectedPatient != null) + UpdateElements(true); + } + } + + private void btnUpdate_Click(object sender, EventArgs e) + { + if (_selectedPatient != null) + { + PatientDataForm pf = new(_selectedPatient); + if (pf.ShowDialog() == DialogResult.OK) + { + UpdateElements(); + UpdateDgv(); + } + } + } + + private void btnDelete_Click(object sender, EventArgs e) + { + if (_selectedPatient != null) + { + _viewModel.DeletePatient(_selectedPatient); + UpdateElements(); + UpdateDgv(); + } + } + + private void btnPrescription_Click(object sender, EventArgs e) + { + PrescriptionForm pf = new(_selectedPatient); + pf.ShowDialog(); + } + + private void btnHospital_Click(object sender, EventArgs e) + { + HospitalForm hf = new(_selectedPatient); + hf.ShowDialog(); + } + } +} diff --git a/Register office/Register office/View/PatientV/PatientForm.resx b/Register office/Register office/View/PatientV/PatientForm.resx new file mode 100644 index 0000000..93017c2 --- /dev/null +++ b/Register office/Register office/View/PatientV/PatientForm.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 184, 17 + + + 17, 17 + + \ No newline at end of file diff --git a/Register office/Register office/View/PrescriptionsV/DrugDataForm.Designer.cs b/Register office/Register office/View/PrescriptionsV/DrugDataForm.Designer.cs new file mode 100644 index 0000000..48988b1 --- /dev/null +++ b/Register office/Register office/View/PrescriptionsV/DrugDataForm.Designer.cs @@ -0,0 +1,244 @@ +namespace Register_office.View.PatientV +{ + partial class DrugDataForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + label7 = new Label(); + btnOK = new Button(); + button2 = new Button(); + cbDrug = new ComboBox(); + cbPatient = new ComboBox(); + label1 = new Label(); + label5 = new Label(); + cbUnit = new ComboBox(); + label2 = new Label(); + nudDose = new NumericUpDown(); + cbIntakeMethod = new ComboBox(); + label3 = new Label(); + label4 = new Label(); + nudDurationDays = new NumericUpDown(); + ((System.ComponentModel.ISupportInitialize)nudDose).BeginInit(); + ((System.ComponentModel.ISupportInitialize)nudDurationDays).BeginInit(); + SuspendLayout(); + // + // label7 + // + label7.AutoSize = true; + label7.Font = new Font("Segoe UI", 14.25F, FontStyle.Regular, GraphicsUnit.Point, 204); + label7.Location = new Point(12, 69); + label7.Name = "label7"; + label7.Size = new Size(103, 25); + label7.TabIndex = 11; + label7.Text = "Лекарство"; + // + // btnOK + // + btnOK.Anchor = AnchorStyles.Bottom | AnchorStyles.Left; + btnOK.DialogResult = DialogResult.OK; + btnOK.Font = new Font("Segoe UI", 14.25F, FontStyle.Regular, GraphicsUnit.Point, 204); + btnOK.Location = new Point(12, 330); + btnOK.Name = "btnOK"; + btnOK.Size = new Size(161, 42); + btnOK.TabIndex = 3; + btnOK.Text = "Добавить"; + btnOK.UseVisualStyleBackColor = true; + btnOK.Click += btnOK_Click; + // + // button2 + // + button2.Anchor = AnchorStyles.Bottom | AnchorStyles.Left; + button2.DialogResult = DialogResult.Cancel; + button2.Font = new Font("Segoe UI", 14.25F, FontStyle.Regular, GraphicsUnit.Point, 204); + button2.Location = new Point(249, 330); + button2.Name = "button2"; + button2.Size = new Size(161, 42); + button2.TabIndex = 4; + button2.Text = "Отмена"; + button2.UseVisualStyleBackColor = true; + // + // cbDrug + // + cbDrug.DropDownStyle = ComboBoxStyle.DropDownList; + cbDrug.Font = new Font("Segoe UI", 12F); + cbDrug.FormattingEnabled = true; + cbDrug.Location = new Point(12, 97); + cbDrug.Name = "cbDrug"; + cbDrug.Size = new Size(398, 29); + cbDrug.TabIndex = 1; + // + // cbPatient + // + cbPatient.DropDownStyle = ComboBoxStyle.DropDownList; + cbPatient.Font = new Font("Segoe UI", 12F); + cbPatient.FormattingEnabled = true; + cbPatient.Items.AddRange(new object[] { "Мужчина", "Женщина" }); + cbPatient.Location = new Point(12, 37); + cbPatient.Name = "cbPatient"; + cbPatient.Size = new Size(398, 29); + cbPatient.TabIndex = 0; + // + // label1 + // + label1.AutoSize = true; + label1.Font = new Font("Segoe UI", 14.25F, FontStyle.Regular, GraphicsUnit.Point, 204); + label1.Location = new Point(12, 9); + label1.Name = "label1"; + label1.Size = new Size(87, 25); + label1.TabIndex = 23; + label1.Text = "Пациент"; + // + // label5 + // + label5.Anchor = AnchorStyles.Top | AnchorStyles.Bottom; + label5.AutoSize = true; + label5.Font = new Font("Segoe UI", 14.25F); + label5.Location = new Point(224, 129); + label5.Name = "label5"; + label5.Size = new Size(186, 25); + label5.TabIndex = 28; + label5.Text = "Единица измерения"; + // + // cbUnit + // + cbUnit.DropDownStyle = ComboBoxStyle.DropDownList; + cbUnit.Font = new Font("Segoe UI", 12F); + cbUnit.FormattingEnabled = true; + cbUnit.Items.AddRange(new object[] { "Физикальное", "Лабораторное", "Инструментальное" }); + cbUnit.Location = new Point(224, 157); + cbUnit.Name = "cbUnit"; + cbUnit.Size = new Size(186, 29); + cbUnit.TabIndex = 27; + // + // label2 + // + label2.AutoSize = true; + label2.Font = new Font("Segoe UI", 14.25F); + label2.Location = new Point(12, 129); + label2.Name = "label2"; + label2.Size = new Size(54, 25); + label2.TabIndex = 26; + label2.Text = "Доза"; + // + // nudDose + // + nudDose.DecimalPlaces = 2; + nudDose.Font = new Font("Segoe UI", 12F); + nudDose.Increment = new decimal(new int[] { 1, 0, 0, 65536 }); + nudDose.Location = new Point(12, 157); + nudDose.Minimum = new decimal(new int[] { 1, 0, 0, 0 }); + nudDose.Name = "nudDose"; + nudDose.Size = new Size(120, 29); + nudDose.TabIndex = 25; + nudDose.Value = new decimal(new int[] { 1, 0, 0, 0 }); + // + // cbIntakeMethod + // + cbIntakeMethod.DropDownStyle = ComboBoxStyle.DropDownList; + cbIntakeMethod.Font = new Font("Segoe UI", 12F); + cbIntakeMethod.FormattingEnabled = true; + cbIntakeMethod.Location = new Point(12, 217); + cbIntakeMethod.Name = "cbIntakeMethod"; + cbIntakeMethod.Size = new Size(398, 29); + cbIntakeMethod.TabIndex = 29; + // + // label3 + // + label3.AutoSize = true; + label3.Font = new Font("Segoe UI", 14.25F, FontStyle.Regular, GraphicsUnit.Point, 204); + label3.Location = new Point(12, 189); + label3.Name = "label3"; + label3.Size = new Size(148, 25); + label3.TabIndex = 30; + label3.Text = "Способ приема"; + // + // label4 + // + label4.AutoSize = true; + label4.Font = new Font("Segoe UI", 14.25F); + label4.Location = new Point(12, 249); + label4.Name = "label4"; + label4.Size = new Size(276, 25); + label4.TabIndex = 32; + label4.Text = "Длительность приема (в днях)"; + // + // nudDurationDays + // + nudDurationDays.Font = new Font("Segoe UI", 12F); + nudDurationDays.Location = new Point(12, 277); + nudDurationDays.Minimum = new decimal(new int[] { 1, 0, 0, 0 }); + nudDurationDays.Name = "nudDurationDays"; + nudDurationDays.Size = new Size(65, 29); + nudDurationDays.TabIndex = 31; + nudDurationDays.Value = new decimal(new int[] { 1, 0, 0, 0 }); + // + // DrugDataForm + // + AutoScaleDimensions = new SizeF(7F, 15F); + AutoScaleMode = AutoScaleMode.Font; + ClientSize = new Size(425, 384); + Controls.Add(label4); + Controls.Add(nudDurationDays); + Controls.Add(cbIntakeMethod); + Controls.Add(label3); + Controls.Add(label5); + Controls.Add(cbUnit); + Controls.Add(label2); + Controls.Add(nudDose); + Controls.Add(cbPatient); + Controls.Add(label1); + Controls.Add(cbDrug); + Controls.Add(button2); + Controls.Add(btnOK); + Controls.Add(label7); + FormBorderStyle = FormBorderStyle.FixedToolWindow; + Name = "DrugDataForm"; + StartPosition = FormStartPosition.CenterScreen; + Text = "Назначение лекарства"; + ((System.ComponentModel.ISupportInitialize)nudDose).EndInit(); + ((System.ComponentModel.ISupportInitialize)nudDurationDays).EndInit(); + ResumeLayout(false); + PerformLayout(); + } + + #endregion + private Label label7; + private Button button2; + internal ComboBox cbDrug; + internal Button btnOK; + internal ComboBox cbPatient; + private Label label1; + private Label label5; + private ComboBox cbUnit; + private Label label2; + private NumericUpDown nudDose; + internal ComboBox cbIntakeMethod; + private Label label3; + private Label label4; + private NumericUpDown nudDurationDays; + } +} \ No newline at end of file diff --git a/Register office/Register office/View/PrescriptionsV/DrugDataForm.cs b/Register office/Register office/View/PrescriptionsV/DrugDataForm.cs new file mode 100644 index 0000000..8c6033e --- /dev/null +++ b/Register office/Register office/View/PrescriptionsV/DrugDataForm.cs @@ -0,0 +1,124 @@ +using Microsoft.EntityFrameworkCore; +using Register_office.Model; +using Register_office.ViewModel; + +namespace Register_office.View.PatientV +{ + public partial class DrugDataForm : Form + { + private PrescriptionViewModel _viewModel; + private Prescription? _prescription; + + public DrugDataForm() + { + Init(); + } + + public DrugDataForm(Prescription p) + { + Init(); + SetData(p); + } + + private void Init() + { + InitializeComponent(); + TopMost = true; + _viewModel = new(); + SetDataSourceToComboBoxes(); + } + + private void SetData(Prescription prescription) + { + _prescription = prescription; + cbPatient.SelectedValue = prescription.PatientId; + cbDrug.SelectedValue = prescription.DrugTypePrescription.DrugTypeId; + cbUnit.SelectedValue = prescription.DrugTypePrescription.DoseUnitId; + nudDose.Value = prescription.DrugTypePrescription.Dose; + cbIntakeMethod.SelectedValue = prescription.DrugTypePrescription.IntakeMethodId; + nudDurationDays.Value = prescription.DrugTypePrescription.DurationDays; + + Text = "Просмотр процедуры"; + btnOK.Visible = cbPatient.Enabled = + cbIntakeMethod.Enabled = cbUnit.Enabled = + nudDose.Enabled = nudDurationDays.Enabled = + cbDrug.Enabled = false; + } + + private void SetDataSourceToComboBoxes() + { + cbDrug.DataSource = _viewModel.General.Context.DrugTypes + .Select(x => new ComboBoxItem { Name = x.InternationalNameRu, Id = x.DrugTypeId }) + .OrderBy(cbi => cbi.Name).ToList(); + cbDrug.DisplayMember = "Name"; + cbDrug.ValueMember = "Id"; + + cbPatient.DataSource = _viewModel.General.Context.Patients + .Include(x => x.PatientNavigation) + .Select(x => new ComboBoxItem + { + Name = x.PatientNavigation.FirstName + " " + + x.PatientNavigation.FirstName + " " + + x.PatientNavigation.LastName, + Id = x.PatientId + }) + .OrderBy(cbi => cbi.Name).ToList(); + cbPatient.DisplayMember = "Name"; + cbPatient.ValueMember = "Id"; + + cbIntakeMethod.DataSource = _viewModel.General.Context.DrugIntakeMethods + .Select(x => new ComboBoxItem { Name = x.Name, Id = x.DrugIntakeMethodId }) + .OrderBy(cbi => cbi.Name).ToList(); + cbIntakeMethod.DisplayMember = "Name"; + cbIntakeMethod.ValueMember = "Id"; + + cbUnit.DataSource = _viewModel.General.Context.Units + .Select(x => new ComboBoxItem { Name = x.Name, Id = x.UnitId }) + .OrderBy(cbi => cbi.Name).ToList(); + cbUnit.DisplayMember = "Name"; + cbUnit.ValueMember = "Id"; + } + + private void btnOK_Click(object sender, EventArgs e) + { + Prescription p = new() + { + DoctorId = _viewModel.General.DoctorId, + PatientId = int.Parse(cbPatient.SelectedValue?.ToString() ?? "-1") + }; + + Prescription? prInDb = _viewModel.General.Context.Prescriptions + .FirstOrDefault(x => x.PatientId == p.PatientId && x.DoctorId == p.DoctorId); + int id = prInDb?.PrescriptionId ?? 0; + if (prInDb == null) + { + id = _viewModel.AddPrescription(p); + if (id == -1) + { + DialogResult = DialogResult.None; + return; + } + } + + DrugTypePrescription pr = new() + { + PrescriptionId = id, + DrugTypeId = int.Parse(cbDrug.SelectedValue?.ToString() ?? "0"), + DoseUnitId = int.Parse(cbUnit.SelectedValue?.ToString() ?? "0"), + IntakeMethodId = int.Parse(cbIntakeMethod.SelectedValue?.ToString() ?? "0"), + Dose = nudDose.Value, + DurationDays = (int)nudDurationDays.Value + }; + if (_viewModel.AddPrescription(pr) == -1) + { + DialogResult = DialogResult.None; + return; + } + + MessageBox.Show("Лекарство успешно назначено", "Назначение пользователю", + MessageBoxButtons.OK, MessageBoxIcon.Information); + Close(); + + } + } +} diff --git a/Register office/Register office/View/PrescriptionsV/DrugDataForm.resx b/Register office/Register office/View/PrescriptionsV/DrugDataForm.resx new file mode 100644 index 0000000..4f24d55 --- /dev/null +++ b/Register office/Register office/View/PrescriptionsV/DrugDataForm.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Register office/Register office/View/PrescriptionsV/ExaminationDataForm.Designer.cs b/Register office/Register office/View/PrescriptionsV/ExaminationDataForm.Designer.cs new file mode 100644 index 0000000..1372b32 --- /dev/null +++ b/Register office/Register office/View/PrescriptionsV/ExaminationDataForm.Designer.cs @@ -0,0 +1,147 @@ +namespace Register_office.View.PatientV +{ + partial class ExaminationDataForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + label7 = new Label(); + btnOK = new Button(); + button2 = new Button(); + cbExamination = new ComboBox(); + cbPatient = new ComboBox(); + label1 = new Label(); + btnResult = new Button(); + SuspendLayout(); + // + // label7 + // + label7.AutoSize = true; + label7.Font = new Font("Segoe UI", 14.25F, FontStyle.Regular, GraphicsUnit.Point, 204); + label7.Location = new Point(12, 69); + label7.Name = "label7"; + label7.Size = new Size(139, 25); + label7.TabIndex = 11; + label7.Text = "Обследование"; + // + // btnOK + // + btnOK.Anchor = AnchorStyles.Bottom | AnchorStyles.Left; + btnOK.DialogResult = DialogResult.OK; + btnOK.Font = new Font("Segoe UI", 14.25F, FontStyle.Regular, GraphicsUnit.Point, 204); + btnOK.Location = new Point(12, 225); + btnOK.Name = "btnOK"; + btnOK.Size = new Size(161, 42); + btnOK.TabIndex = 3; + btnOK.Text = "Добавить"; + btnOK.UseVisualStyleBackColor = true; + btnOK.Click += btnOK_Click; + // + // button2 + // + button2.Anchor = AnchorStyles.Bottom | AnchorStyles.Left; + button2.DialogResult = DialogResult.Cancel; + button2.Font = new Font("Segoe UI", 14.25F, FontStyle.Regular, GraphicsUnit.Point, 204); + button2.Location = new Point(249, 225); + button2.Name = "button2"; + button2.Size = new Size(161, 42); + button2.TabIndex = 4; + button2.Text = "Отмена"; + button2.UseVisualStyleBackColor = true; + // + // cbExamination + // + cbExamination.DropDownStyle = ComboBoxStyle.DropDownList; + cbExamination.Font = new Font("Segoe UI", 12F); + cbExamination.FormattingEnabled = true; + cbExamination.Location = new Point(12, 97); + cbExamination.Name = "cbExamination"; + cbExamination.Size = new Size(398, 29); + cbExamination.TabIndex = 1; + // + // cbPatient + // + cbPatient.DropDownStyle = ComboBoxStyle.DropDownList; + cbPatient.Font = new Font("Segoe UI", 12F); + cbPatient.FormattingEnabled = true; + cbPatient.Items.AddRange(new object[] { "Мужчина", "Женщина" }); + cbPatient.Location = new Point(12, 37); + cbPatient.Name = "cbPatient"; + cbPatient.Size = new Size(398, 29); + cbPatient.TabIndex = 0; + // + // label1 + // + label1.AutoSize = true; + label1.Font = new Font("Segoe UI", 14.25F, FontStyle.Regular, GraphicsUnit.Point, 204); + label1.Location = new Point(12, 9); + label1.Name = "label1"; + label1.Size = new Size(87, 25); + label1.TabIndex = 23; + label1.Text = "Пациент"; + // + // btnResult + // + btnResult.Anchor = AnchorStyles.Bottom | AnchorStyles.Left; + btnResult.Font = new Font("Segoe UI", 14.25F, FontStyle.Regular, GraphicsUnit.Point, 204); + btnResult.Location = new Point(12, 155); + btnResult.Name = "btnResult"; + btnResult.Size = new Size(398, 42); + btnResult.TabIndex = 24; + btnResult.Text = "Результаты"; + btnResult.UseVisualStyleBackColor = true; + btnResult.Click += btnResult_Click; + // + // ExaminationDataForm + // + AutoScaleDimensions = new SizeF(7F, 15F); + AutoScaleMode = AutoScaleMode.Font; + ClientSize = new Size(425, 279); + Controls.Add(btnResult); + Controls.Add(cbPatient); + Controls.Add(label1); + Controls.Add(cbExamination); + Controls.Add(button2); + Controls.Add(btnOK); + Controls.Add(label7); + FormBorderStyle = FormBorderStyle.FixedToolWindow; + Name = "ExaminationDataForm"; + StartPosition = FormStartPosition.CenterScreen; + Text = "Назначение обследования"; + ResumeLayout(false); + PerformLayout(); + } + + #endregion + private Label label7; + private Button button2; + internal ComboBox cbExamination; + internal Button btnOK; + internal ComboBox cbPatient; + private Label label1; + internal Button btnResult; + } +} \ No newline at end of file diff --git a/Register office/Register office/View/PrescriptionsV/ExaminationDataForm.cs b/Register office/Register office/View/PrescriptionsV/ExaminationDataForm.cs new file mode 100644 index 0000000..5c501ff --- /dev/null +++ b/Register office/Register office/View/PrescriptionsV/ExaminationDataForm.cs @@ -0,0 +1,130 @@ +using Microsoft.EntityFrameworkCore; +using Register_office.Model; +using Register_office.View.TypesV; +using Register_office.ViewModel; + +namespace Register_office.View.PatientV +{ + public partial class ExaminationDataForm : Form + { + private PrescriptionViewModel _viewModel; + private Prescription? _prescription; + bool _isResult; + public ExaminationDataForm() + { + Init(); + btnResult.Visible = false; + } + + public ExaminationDataForm(Prescription p) + { + Init(); + SetData(p); + } + + private void Init() + { + InitializeComponent(); + TopMost = true; + _viewModel = new(); + SetDataSourceToComboBoxes(); + } + + private void SetData(Prescription prescription) + { + _prescription = prescription; + cbPatient.SelectedValue = prescription.PatientId; + cbExamination.SelectedValue = prescription.ExaminationTypePrescription.ExaminationTypeId; + + Text = "Просмотр обследования"; + btnOK.Visible = cbPatient.Enabled = + cbExamination.Enabled = false; + + _isResult = prescription.ExaminationTypePrescription.ResultId != null; + btnResult.Text = _isResult + ? "Посмотреть результаты" + : "Добавить результаты"; + btnResult.Visible = true; + } + + private void SetDataSourceToComboBoxes() + { + cbExamination.DataSource = _viewModel.General.Context.ExaminationTypes + .Select(x => new ComboBoxItem { Name = x.Name, Id = x.ExaminationTypeId }) + .OrderBy(cbi => cbi.Name).ToList(); + cbExamination.DisplayMember = "Name"; + cbExamination.ValueMember = "Id"; + + cbPatient.DataSource = _viewModel.General.Context.Patients + .Include(x => x.PatientNavigation) + .Select(x => new ComboBoxItem + { + Name = x.PatientNavigation.FirstName + " " + + x.PatientNavigation.FirstName + " " + + x.PatientNavigation.LastName, + Id = x.PatientId + }) + .OrderBy(cbi => cbi.Name).ToList(); + cbPatient.DisplayMember = "Name"; + cbPatient.ValueMember = "Id"; + } + + private void btnOK_Click(object sender, EventArgs e) + { + Prescription p = new() + { + DoctorId = _viewModel.General.DoctorId, + PatientId = int.Parse(cbPatient.SelectedValue?.ToString() ?? "-1") + }; + + Prescription? prInDb = _viewModel.General.Context.Prescriptions + .FirstOrDefault(x => x.PatientId == p.PatientId && x.DoctorId == p.DoctorId); + int id = prInDb?.PrescriptionId ?? 0; + if (prInDb == null) + { + id = _viewModel.AddPrescription(p); + if (id == -1) + { + DialogResult = DialogResult.None; + return; + } + } + + ExaminationTypePrescription pr = new() + { + PrescriptionId = id, + ExaminationTypeId = int.Parse(cbExamination.SelectedValue?.ToString() ?? "0") + }; + if (_viewModel.AddPrescription(pr) == -1) + { + DialogResult = DialogResult.None; + return; + } + + MessageBox.Show("Обследование успешно назначено", "Назначение пользователю", + MessageBoxButtons.OK, MessageBoxIcon.Information); + Close(); + + } + + private void btnResult_Click(object sender, EventArgs e) + { + ResultDataForm rf; + if (!_isResult) + { + rf = new(_prescription.ExaminationTypePrescription); + if (rf.ShowDialog() == DialogResult.OK) + { + _isResult = true; + btnResult.Text = "Посмотреть результаты"; + } + } + else + { + rf = new(_prescription.ExaminationTypePrescription, false); + rf.ShowDialog(); + } + + } + } +} diff --git a/Register office/Register office/View/PrescriptionsV/ExaminationDataForm.resx b/Register office/Register office/View/PrescriptionsV/ExaminationDataForm.resx new file mode 100644 index 0000000..4f24d55 --- /dev/null +++ b/Register office/Register office/View/PrescriptionsV/ExaminationDataForm.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Register office/Register office/View/PrescriptionsV/PrescriptionForm.Designer.cs b/Register office/Register office/View/PrescriptionsV/PrescriptionForm.Designer.cs new file mode 100644 index 0000000..bb4aae6 --- /dev/null +++ b/Register office/Register office/View/PrescriptionsV/PrescriptionForm.Designer.cs @@ -0,0 +1,258 @@ +using Register_office.View; + +namespace Register_office.View.PatientV +{ + partial class PrescriptionForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + components = new System.ComponentModel.Container(); + splitContainer1 = new SplitContainer(); + label2 = new Label(); + btnProcedureShow = new Button(); + btnExaminationShow = new Button(); + btnDrugShow = new Button(); + label1 = new Label(); + btnProcedureAdd = new Button(); + btnDelete = new Button(); + btnExaminationAdd = new Button(); + btnDrugAdd = new Button(); + dgv = new DataGridView(); + cmsMedicineProductCost = new ContextMenuStrip(components); + cmsMedicineProduct = new ContextMenuStrip(components); + ((System.ComponentModel.ISupportInitialize)splitContainer1).BeginInit(); + splitContainer1.Panel1.SuspendLayout(); + splitContainer1.Panel2.SuspendLayout(); + splitContainer1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)dgv).BeginInit(); + SuspendLayout(); + // + // splitContainer1 + // + splitContainer1.Dock = DockStyle.Fill; + splitContainer1.FixedPanel = FixedPanel.Panel1; + splitContainer1.Location = new Point(0, 0); + splitContainer1.Name = "splitContainer1"; + splitContainer1.Orientation = Orientation.Horizontal; + // + // splitContainer1.Panel1 + // + splitContainer1.Panel1.Controls.Add(label2); + splitContainer1.Panel1.Controls.Add(btnProcedureShow); + splitContainer1.Panel1.Controls.Add(btnExaminationShow); + splitContainer1.Panel1.Controls.Add(btnDrugShow); + splitContainer1.Panel1.Controls.Add(label1); + splitContainer1.Panel1.Controls.Add(btnProcedureAdd); + splitContainer1.Panel1.Controls.Add(btnDelete); + splitContainer1.Panel1.Controls.Add(btnExaminationAdd); + splitContainer1.Panel1.Controls.Add(btnDrugAdd); + // + // splitContainer1.Panel2 + // + splitContainer1.Panel2.Controls.Add(dgv); + splitContainer1.Size = new Size(800, 647); + splitContainer1.SplitterDistance = 134; + splitContainer1.SplitterWidth = 5; + splitContainer1.TabIndex = 0; + // + // label2 + // + label2.Anchor = AnchorStyles.Top | AnchorStyles.Bottom; + label2.AutoSize = true; + label2.Font = new Font("Segoe UI", 9.75F, FontStyle.Regular, GraphicsUnit.Point, 204); + label2.Location = new Point(12, 73); + label2.Name = "label2"; + label2.Size = new Size(80, 17); + label2.TabIndex = 16; + label2.Text = "Посмотреть"; + // + // btnProcedureShow + // + btnProcedureShow.Anchor = AnchorStyles.Top | AnchorStyles.Bottom; + btnProcedureShow.AutoSizeMode = AutoSizeMode.GrowAndShrink; + btnProcedureShow.Font = new Font("Segoe UI", 11.25F, FontStyle.Regular, GraphicsUnit.Point, 204); + btnProcedureShow.Location = new Point(348, 93); + btnProcedureShow.Name = "btnProcedureShow"; + btnProcedureShow.Size = new Size(162, 33); + btnProcedureShow.TabIndex = 15; + btnProcedureShow.Text = "Процедуру"; + btnProcedureShow.UseVisualStyleBackColor = true; + btnProcedureShow.Click += btnProcedureShow_Click; + // + // btnExaminationShow + // + btnExaminationShow.Anchor = AnchorStyles.Top | AnchorStyles.Bottom; + btnExaminationShow.AutoSizeMode = AutoSizeMode.GrowAndShrink; + btnExaminationShow.Font = new Font("Segoe UI", 11.25F, FontStyle.Regular, GraphicsUnit.Point, 204); + btnExaminationShow.Location = new Point(12, 93); + btnExaminationShow.Name = "btnExaminationShow"; + btnExaminationShow.Size = new Size(162, 33); + btnExaminationShow.TabIndex = 14; + btnExaminationShow.Text = "Обследование"; + btnExaminationShow.UseVisualStyleBackColor = true; + btnExaminationShow.Click += btnExaminationShow_Click; + // + // btnDrugShow + // + btnDrugShow.Anchor = AnchorStyles.Top | AnchorStyles.Bottom; + btnDrugShow.AutoSizeMode = AutoSizeMode.GrowAndShrink; + btnDrugShow.Font = new Font("Segoe UI", 11.25F, FontStyle.Regular, GraphicsUnit.Point, 204); + btnDrugShow.Location = new Point(180, 93); + btnDrugShow.Name = "btnDrugShow"; + btnDrugShow.Size = new Size(162, 33); + btnDrugShow.TabIndex = 13; + btnDrugShow.Text = "Лекарство"; + btnDrugShow.UseVisualStyleBackColor = true; + btnDrugShow.Click += btnDrugShow_Click; + // + // label1 + // + label1.Anchor = AnchorStyles.Top | AnchorStyles.Bottom; + label1.AutoSize = true; + label1.Font = new Font("Segoe UI", 9.75F, FontStyle.Regular, GraphicsUnit.Point, 204); + label1.Location = new Point(12, 8); + label1.Name = "label1"; + label1.Size = new Size(66, 17); + label1.TabIndex = 12; + label1.Text = "Добавить"; + // + // btnProcedureAdd + // + btnProcedureAdd.Anchor = AnchorStyles.Top | AnchorStyles.Bottom; + btnProcedureAdd.AutoSizeMode = AutoSizeMode.GrowAndShrink; + btnProcedureAdd.Font = new Font("Segoe UI", 11.25F, FontStyle.Regular, GraphicsUnit.Point, 204); + btnProcedureAdd.Location = new Point(348, 28); + btnProcedureAdd.Name = "btnProcedureAdd"; + btnProcedureAdd.Size = new Size(162, 33); + btnProcedureAdd.TabIndex = 11; + btnProcedureAdd.Text = "Процедуру"; + btnProcedureAdd.UseVisualStyleBackColor = true; + btnProcedureAdd.Click += btnProcedureAdd_Click; + // + // btnDelete + // + btnDelete.Anchor = AnchorStyles.Top | AnchorStyles.Bottom; + btnDelete.AutoSizeMode = AutoSizeMode.GrowAndShrink; + btnDelete.Font = new Font("Segoe UI", 11.25F, FontStyle.Regular, GraphicsUnit.Point, 204); + btnDelete.Location = new Point(619, 28); + btnDelete.Name = "btnDelete"; + btnDelete.Size = new Size(169, 33); + btnDelete.TabIndex = 10; + btnDelete.Text = "Удалить"; + btnDelete.UseVisualStyleBackColor = true; + btnDelete.Click += btnDelete_Click; + // + // btnExaminationAdd + // + btnExaminationAdd.Anchor = AnchorStyles.Top | AnchorStyles.Bottom; + btnExaminationAdd.AutoSizeMode = AutoSizeMode.GrowAndShrink; + btnExaminationAdd.Font = new Font("Segoe UI", 11.25F, FontStyle.Regular, GraphicsUnit.Point, 204); + btnExaminationAdd.Location = new Point(12, 28); + btnExaminationAdd.Name = "btnExaminationAdd"; + btnExaminationAdd.Size = new Size(162, 33); + btnExaminationAdd.TabIndex = 7; + btnExaminationAdd.Text = "Обследование"; + btnExaminationAdd.UseVisualStyleBackColor = true; + btnExaminationAdd.Click += btnExaminationAdd_Click; + // + // btnDrugAdd + // + btnDrugAdd.Anchor = AnchorStyles.Top | AnchorStyles.Bottom; + btnDrugAdd.AutoSizeMode = AutoSizeMode.GrowAndShrink; + btnDrugAdd.Font = new Font("Segoe UI", 11.25F, FontStyle.Regular, GraphicsUnit.Point, 204); + btnDrugAdd.Location = new Point(180, 28); + btnDrugAdd.Name = "btnDrugAdd"; + btnDrugAdd.Size = new Size(162, 33); + btnDrugAdd.TabIndex = 5; + btnDrugAdd.Text = "Лекарство"; + btnDrugAdd.UseVisualStyleBackColor = true; + btnDrugAdd.Click += btnDrugAdd_Click; + // + // dgv + // + dgv.AllowUserToAddRows = false; + dgv.AllowUserToDeleteRows = false; + dgv.AllowUserToOrderColumns = true; + dgv.ClipboardCopyMode = DataGridViewClipboardCopyMode.EnableWithoutHeaderText; + dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; + dgv.Dock = DockStyle.Fill; + dgv.Location = new Point(0, 0); + dgv.MultiSelect = false; + dgv.Name = "dgv"; + dgv.ReadOnly = true; + dgv.SelectionMode = DataGridViewSelectionMode.FullRowSelect; + dgv.Size = new Size(800, 508); + dgv.TabIndex = 8; + dgv.SelectionChanged += dgv_SelectionChanged; + // + // cmsMedicineProductCost + // + cmsMedicineProductCost.Font = new Font("Segoe UI", 9.75F, FontStyle.Regular, GraphicsUnit.Point, 204); + cmsMedicineProductCost.Name = "cmsMedicineProductCost"; + cmsMedicineProductCost.Size = new Size(61, 4); + // + // cmsMedicineProduct + // + cmsMedicineProduct.Name = "contextMenuStrip1"; + cmsMedicineProduct.Size = new Size(61, 4); + // + // PrescriptionForm + // + AutoScaleDimensions = new SizeF(7F, 17F); + AutoScaleMode = AutoScaleMode.Font; + ClientSize = new Size(800, 647); + Controls.Add(splitContainer1); + Font = new Font("Segoe UI", 9.75F, FontStyle.Regular, GraphicsUnit.Point, 204); + FormBorderStyle = FormBorderStyle.FixedSingle; + Name = "PrescriptionForm"; + Text = "Пациенты"; + splitContainer1.Panel1.ResumeLayout(false); + splitContainer1.Panel1.PerformLayout(); + splitContainer1.Panel2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)splitContainer1).EndInit(); + splitContainer1.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)dgv).EndInit(); + ResumeLayout(false); + } + + #endregion + + private SplitContainer splitContainer1; + private DataGridView dgv; + private ContextMenuStrip cmsMedicineProduct; + private ContextMenuStrip cmsMedicineProductCost; + private Button btnExaminationAdd; + private Button btnDrugAdd; + private Button btnDelete; + private Button btnProcedureAdd; + private Label label1; + private Label label2; + private Button btnProcedureShow; + private Button btnExaminationShow; + private Button btnDrugShow; + } +} \ No newline at end of file diff --git a/Register office/Register office/View/PrescriptionsV/PrescriptionForm.cs b/Register office/Register office/View/PrescriptionsV/PrescriptionForm.cs new file mode 100644 index 0000000..259796a --- /dev/null +++ b/Register office/Register office/View/PrescriptionsV/PrescriptionForm.cs @@ -0,0 +1,124 @@ +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.ChangeTracking.Internal; +using Register_office.Model; +using Register_office.ViewModel; +using System.Data; +using System.Xml.Linq; + +namespace Register_office.View.PatientV +{ + public partial class PrescriptionForm : Form + { + private PrescriptionViewModel _viewModel; + private Prescription? _selectedPrescription; + private string _columnIdName = "PrescriptionId"; + + public PrescriptionForm() + { + Init(); + } + + public PrescriptionForm(Patient patient) + { + Init(); + dgv.DataSource = new SortableBindingList( + PrescriptionWrapper.ToList(_viewModel.General.Context.Prescriptions + .Where(x => x.PatientId == patient.PatientId) + .ToList())); + } + + private void Init() + { + InitializeComponent(); + TopMost = true; + Text = "Назначения"; + _viewModel = new(); + _viewModel.ConfigureSettingsDGV(dgv); + UpdateDgv(); + UpdateElements(); + } + + private void UpdateElements(bool enableButtons = false) + { + if (_selectedPrescription == null) + btnDrugShow.Enabled = btnExaminationShow.Enabled = btnProcedureShow.Enabled = false; + else + { + btnDrugShow.Enabled = _selectedPrescription.DrugTypePrescription != null; + btnExaminationShow.Enabled = _selectedPrescription.ExaminationTypePrescription != null; + btnProcedureShow.Enabled = _selectedPrescription.ProcedureTypePrescription != null; + } + btnDelete.Enabled = enableButtons; + } + + private void UpdateDgv() + { + _viewModel.SetDefaultDataSource(dgv); + } + + private void dgv_SelectionChanged(object sender, EventArgs e) + { + if (dgv.SelectedRows.Count != 0 && !dgv.CurrentRow.IsNewRow) + { + DataGridViewRow selectedRow = dgv.SelectedRows[0]; + int id = int.Parse(selectedRow.Cells[_columnIdName].Value.ToString() ?? ""); + _selectedPrescription = _viewModel.General.Context.Prescriptions + .Include(x => x.ProcedureTypePrescription) + .Include(x => x.DrugTypePrescription) + .Include(x => x.ExaminationTypePrescription) + .Where(x => x.PrescriptionId == id).FirstOrDefault(); + if (_selectedPrescription != null) + UpdateElements(true); + } + } + + private void btnDelete_Click(object sender, EventArgs e) + { + if (_selectedPrescription != null) + { + _viewModel.DeletePrescription(_selectedPrescription); + UpdateElements(); + UpdateDgv(); + } + } + + private void btnProcedureAdd_Click(object sender, EventArgs e) + { + ProcedureDataForm pf = new(); + pf.ShowDialog(); + UpdateDgv(); + } + + private void btnProcedureShow_Click(object sender, EventArgs e) + { + ProcedureDataForm pf = new(_selectedPrescription); + pf.ShowDialog(); + } + + private void btnDrugAdd_Click(object sender, EventArgs e) + { + DrugDataForm pf = new(); + pf.ShowDialog(); + UpdateDgv(); + } + + private void btnDrugShow_Click(object sender, EventArgs e) + { + DrugDataForm pf = new(_selectedPrescription); + pf.ShowDialog(); + } + + private void btnExaminationAdd_Click(object sender, EventArgs e) + { + ExaminationDataForm pf = new(); + pf.ShowDialog(); + UpdateDgv(); + } + + private void btnExaminationShow_Click(object sender, EventArgs e) + { + ExaminationDataForm pf = new(_selectedPrescription); + pf.ShowDialog(); + } + } +} diff --git a/Register office/Register office/View/PrescriptionsV/PrescriptionForm.resx b/Register office/Register office/View/PrescriptionsV/PrescriptionForm.resx new file mode 100644 index 0000000..93017c2 --- /dev/null +++ b/Register office/Register office/View/PrescriptionsV/PrescriptionForm.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 184, 17 + + + 17, 17 + + \ No newline at end of file diff --git a/Register office/Register office/View/PrescriptionsV/ProcedureDataForm.Designer.cs b/Register office/Register office/View/PrescriptionsV/ProcedureDataForm.Designer.cs new file mode 100644 index 0000000..5f63adf --- /dev/null +++ b/Register office/Register office/View/PrescriptionsV/ProcedureDataForm.Designer.cs @@ -0,0 +1,157 @@ +namespace Register_office.View.PatientV +{ + partial class ProcedureDataForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + label6 = new Label(); + label7 = new Label(); + btnOK = new Button(); + button2 = new Button(); + dtpSchedule = new DateTimePicker(); + cbProcedure = new ComboBox(); + cbPatient = new ComboBox(); + label1 = new Label(); + SuspendLayout(); + // + // label6 + // + label6.AutoSize = true; + label6.Font = new Font("Segoe UI", 14.25F, FontStyle.Regular, GraphicsUnit.Point, 204); + label6.Location = new Point(12, 139); + label6.Name = "label6"; + label6.Size = new Size(163, 25); + label6.TabIndex = 9; + label6.Text = "Дата проведения"; + // + // label7 + // + label7.AutoSize = true; + label7.Font = new Font("Segoe UI", 14.25F, FontStyle.Regular, GraphicsUnit.Point, 204); + label7.Location = new Point(12, 69); + label7.Name = "label7"; + label7.Size = new Size(109, 25); + label7.TabIndex = 11; + label7.Text = "Процедура"; + // + // btnOK + // + btnOK.Anchor = AnchorStyles.Bottom | AnchorStyles.Left; + btnOK.DialogResult = DialogResult.OK; + btnOK.Font = new Font("Segoe UI", 14.25F, FontStyle.Regular, GraphicsUnit.Point, 204); + btnOK.Location = new Point(12, 225); + btnOK.Name = "btnOK"; + btnOK.Size = new Size(161, 42); + btnOK.TabIndex = 3; + btnOK.Text = "Добавить"; + btnOK.UseVisualStyleBackColor = true; + btnOK.Click += btnOK_Click; + // + // button2 + // + button2.Anchor = AnchorStyles.Bottom | AnchorStyles.Left; + button2.DialogResult = DialogResult.Cancel; + button2.Font = new Font("Segoe UI", 14.25F, FontStyle.Regular, GraphicsUnit.Point, 204); + button2.Location = new Point(249, 225); + button2.Name = "button2"; + button2.Size = new Size(161, 42); + button2.TabIndex = 4; + button2.Text = "Отмена"; + button2.UseVisualStyleBackColor = true; + // + // dtpSchedule + // + dtpSchedule.Font = new Font("Segoe UI", 12F); + dtpSchedule.Location = new Point(12, 167); + dtpSchedule.MinDate = new DateTime(1940, 1, 1, 0, 0, 0, 0); + dtpSchedule.Name = "dtpSchedule"; + dtpSchedule.Size = new Size(200, 29); + dtpSchedule.TabIndex = 2; + // + // cbProcedure + // + cbProcedure.DropDownStyle = ComboBoxStyle.DropDownList; + cbProcedure.Font = new Font("Segoe UI", 12F); + cbProcedure.FormattingEnabled = true; + cbProcedure.Location = new Point(12, 97); + cbProcedure.Name = "cbProcedure"; + cbProcedure.Size = new Size(398, 29); + cbProcedure.TabIndex = 1; + // + // cbPatient + // + cbPatient.DropDownStyle = ComboBoxStyle.DropDownList; + cbPatient.Font = new Font("Segoe UI", 12F); + cbPatient.FormattingEnabled = true; + cbPatient.Items.AddRange(new object[] { "Мужчина", "Женщина" }); + cbPatient.Location = new Point(12, 37); + cbPatient.Name = "cbPatient"; + cbPatient.Size = new Size(398, 29); + cbPatient.TabIndex = 0; + // + // label1 + // + label1.AutoSize = true; + label1.Font = new Font("Segoe UI", 14.25F, FontStyle.Regular, GraphicsUnit.Point, 204); + label1.Location = new Point(12, 9); + label1.Name = "label1"; + label1.Size = new Size(87, 25); + label1.TabIndex = 23; + label1.Text = "Пациент"; + // + // ProcedureDataForm + // + AutoScaleDimensions = new SizeF(7F, 15F); + AutoScaleMode = AutoScaleMode.Font; + ClientSize = new Size(425, 279); + Controls.Add(cbPatient); + Controls.Add(label1); + Controls.Add(cbProcedure); + Controls.Add(dtpSchedule); + Controls.Add(button2); + Controls.Add(btnOK); + Controls.Add(label7); + Controls.Add(label6); + FormBorderStyle = FormBorderStyle.FixedToolWindow; + Name = "ProcedureDataForm"; + StartPosition = FormStartPosition.CenterScreen; + Text = "Назначение процедуры"; + ResumeLayout(false); + PerformLayout(); + } + + #endregion + private Label label6; + private Label label7; + private Button button2; + internal DateTimePicker dtpSchedule; + internal ComboBox cbProcedure; + internal Button btnOK; + internal ComboBox cbPatient; + private Label label1; + } +} \ No newline at end of file diff --git a/Register office/Register office/View/PrescriptionsV/ProcedureDataForm.cs b/Register office/Register office/View/PrescriptionsV/ProcedureDataForm.cs new file mode 100644 index 0000000..2fe0259 --- /dev/null +++ b/Register office/Register office/View/PrescriptionsV/ProcedureDataForm.cs @@ -0,0 +1,108 @@ +using Microsoft.EntityFrameworkCore; +using Register_office.Model; +using Register_office.ViewModel; + +namespace Register_office.View.PatientV +{ + public partial class ProcedureDataForm : Form + { + private PrescriptionViewModel _viewModel; + private Prescription? _prescription; + + public ProcedureDataForm() + { + Init(); + } + + public ProcedureDataForm(Prescription p) + { + Init(); + SetData(p); + } + + private void Init() + { + InitializeComponent(); + TopMost = true; + _viewModel = new(); + SetDataSourceToComboBoxes(); + dtpSchedule.Value = + dtpSchedule.MinDate = DateTime.Now; + dtpSchedule.MaxDate = DateTime.Now.AddDays(180); + } + + private void SetData(Prescription prescription) + { + _prescription = prescription; + cbPatient.SelectedValue = prescription.PatientId; + dtpSchedule.Value = + dtpSchedule.MinDate = prescription.ProcedureTypePrescription.ScheduledDatetime; + cbProcedure.SelectedValue = prescription.ProcedureTypePrescription.ProcedureTypeId; + + Text = "Просмотр процедуры"; + btnOK.Visible = cbPatient.Enabled = + dtpSchedule.Enabled = cbProcedure.Enabled= false; + } + + private void SetDataSourceToComboBoxes() + { + cbProcedure.DataSource = _viewModel.General.Context.ProcedureTypes + .Select(x => new ComboBoxItem { Name = x.Name, Id = x.ProcedureTypeId }) + .OrderBy(cbi => cbi.Name).ToList(); + cbProcedure.DisplayMember = "Name"; + cbProcedure.ValueMember = "Id"; + + cbPatient.DataSource = _viewModel.General.Context.Patients + .Include(x => x.PatientNavigation) + .Select(x => new ComboBoxItem + { + Name = x.PatientNavigation.FirstName + " " + + x.PatientNavigation.FirstName + " " + + x.PatientNavigation.LastName, + Id = x.PatientId + }) + .OrderBy(cbi => cbi.Name).ToList(); + cbPatient.DisplayMember = "Name"; + cbPatient.ValueMember = "Id"; + } + + private void btnOK_Click(object sender, EventArgs e) + { + Prescription p = new() + { + DoctorId = _viewModel.General.DoctorId, + PatientId = int.Parse(cbPatient.SelectedValue?.ToString() ?? "-1") + }; + + Prescription? prInDb = _viewModel.General.Context.Prescriptions + .FirstOrDefault(x => x.PatientId == p.PatientId && x.DoctorId == p.DoctorId); + int id = prInDb?.PrescriptionId ?? 0; + if (prInDb == null) + { + id = _viewModel.AddPrescription(p); + if (id == -1) + { + DialogResult = DialogResult.None; + return; + } + } + + ProcedureTypePrescription pr = new() + { + PrescriptionId = id, + ProcedureTypeId = int.Parse(cbProcedure.SelectedValue?.ToString() ?? "0"), + ScheduledDatetime = dtpSchedule.Value + }; + if (_viewModel.AddPrescription(pr) == -1) + { + DialogResult = DialogResult.None; + return; + } + + MessageBox.Show("Процедура успешно назначена", "Назначение пользователю", + MessageBoxButtons.OK, MessageBoxIcon.Information); + Close(); + + } + } +} diff --git a/Register office/Register office/View/PrescriptionsV/ProcedureDataForm.resx b/Register office/Register office/View/PrescriptionsV/ProcedureDataForm.resx new file mode 100644 index 0000000..4f24d55 --- /dev/null +++ b/Register office/Register office/View/PrescriptionsV/ProcedureDataForm.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Register office/Register office/View/PrescriptionsV/ResultDataForm.Designer.cs b/Register office/Register office/View/PrescriptionsV/ResultDataForm.Designer.cs new file mode 100644 index 0000000..1467b15 --- /dev/null +++ b/Register office/Register office/View/PrescriptionsV/ResultDataForm.Designer.cs @@ -0,0 +1,217 @@ +namespace Register_office.View.TypesV +{ + partial class ResultDataForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + cbTypeResult = new ComboBox(); + label1 = new Label(); + button2 = new Button(); + btnOK = new Button(); + cbValue = new ComboBox(); + lblBool = new Label(); + lblUnit = new Label(); + cbUnit = new ComboBox(); + lblCount = new Label(); + nudCount = new NumericUpDown(); + cbExamination = new ComboBox(); + label2 = new Label(); + ((System.ComponentModel.ISupportInitialize)nudCount).BeginInit(); + SuspendLayout(); + // + // cbTypeResult + // + cbTypeResult.DropDownStyle = ComboBoxStyle.DropDownList; + cbTypeResult.Font = new Font("Segoe UI", 12F); + cbTypeResult.FormattingEnabled = true; + cbTypeResult.Items.AddRange(new object[] { "Числовой", "Качественный" }); + cbTypeResult.Location = new Point(12, 37); + cbTypeResult.Name = "cbTypeResult"; + cbTypeResult.Size = new Size(143, 29); + cbTypeResult.TabIndex = 24; + cbTypeResult.TextChanged += cbTypeResult_TextChanged; + // + // label1 + // + label1.AutoSize = true; + label1.Font = new Font("Segoe UI", 14.25F, FontStyle.Regular, GraphicsUnit.Point, 204); + label1.Location = new Point(12, 9); + label1.Name = "label1"; + label1.Size = new Size(143, 25); + label1.TabIndex = 25; + label1.Text = "Тип результата"; + // + // button2 + // + button2.Anchor = AnchorStyles.Bottom | AnchorStyles.Left; + button2.DialogResult = DialogResult.Cancel; + button2.Font = new Font("Segoe UI", 14.25F, FontStyle.Regular, GraphicsUnit.Point, 204); + button2.Location = new Point(192, 201); + button2.Name = "button2"; + button2.Size = new Size(161, 42); + button2.TabIndex = 27; + button2.Text = "Отмена"; + button2.UseVisualStyleBackColor = true; + // + // btnOK + // + btnOK.Anchor = AnchorStyles.Bottom | AnchorStyles.Left; + btnOK.DialogResult = DialogResult.OK; + btnOK.Font = new Font("Segoe UI", 14.25F, FontStyle.Regular, GraphicsUnit.Point, 204); + btnOK.Location = new Point(12, 201); + btnOK.Name = "btnOK"; + btnOK.Size = new Size(161, 42); + btnOK.TabIndex = 26; + btnOK.Text = "Добавить"; + btnOK.UseVisualStyleBackColor = true; + btnOK.Click += btnOK_Click; + // + // cbValue + // + cbValue.DropDownStyle = ComboBoxStyle.DropDownList; + cbValue.Font = new Font("Segoe UI", 12F); + cbValue.FormattingEnabled = true; + cbValue.Items.AddRange(new object[] { "Положительный", "Отрицательный" }); + cbValue.Location = new Point(12, 97); + cbValue.Name = "cbValue"; + cbValue.Size = new Size(143, 29); + cbValue.TabIndex = 31; + // + // lblBool + // + lblBool.AutoSize = true; + lblBool.Font = new Font("Segoe UI", 14.25F, FontStyle.Regular, GraphicsUnit.Point, 204); + lblBool.Location = new Point(12, 69); + lblBool.Name = "lblBool"; + lblBool.Size = new Size(96, 25); + lblBool.TabIndex = 32; + lblBool.Text = "Результат"; + // + // lblUnit + // + lblUnit.AutoSize = true; + lblUnit.Font = new Font("Segoe UI", 14.25F); + lblUnit.Location = new Point(167, 129); + lblUnit.Name = "lblUnit"; + lblUnit.Size = new Size(186, 25); + lblUnit.TabIndex = 36; + lblUnit.Text = "Единица измерения"; + // + // cbUnit + // + cbUnit.DropDownStyle = ComboBoxStyle.DropDownList; + cbUnit.Font = new Font("Segoe UI", 12F); + cbUnit.FormattingEnabled = true; + cbUnit.Items.AddRange(new object[] { "Физикальное", "Лабораторное", "Инструментальное" }); + cbUnit.Location = new Point(167, 157); + cbUnit.Name = "cbUnit"; + cbUnit.Size = new Size(186, 29); + cbUnit.TabIndex = 35; + // + // lblCount + // + lblCount.AutoSize = true; + lblCount.Font = new Font("Segoe UI", 14.25F); + lblCount.Location = new Point(12, 129); + lblCount.Name = "lblCount"; + lblCount.Size = new Size(114, 25); + lblCount.TabIndex = 34; + lblCount.Text = "Количество"; + // + // nudCount + // + nudCount.DecimalPlaces = 2; + nudCount.Font = new Font("Segoe UI", 12F); + nudCount.Increment = new decimal(new int[] { 1, 0, 0, 65536 }); + nudCount.Location = new Point(12, 157); + nudCount.Minimum = new decimal(new int[] { 100, 0, 0, int.MinValue }); + nudCount.Name = "nudCount"; + nudCount.Size = new Size(143, 29); + nudCount.TabIndex = 33; + // + // cbExamination + // + cbExamination.DropDownStyle = ComboBoxStyle.DropDownList; + cbExamination.Font = new Font("Segoe UI", 12F); + cbExamination.FormattingEnabled = true; + cbExamination.Items.AddRange(new object[] { "Числовой", "Качественный" }); + cbExamination.Location = new Point(167, 37); + cbExamination.Name = "cbExamination"; + cbExamination.Size = new Size(186, 29); + cbExamination.TabIndex = 37; + // + // label2 + // + label2.AutoSize = true; + label2.Font = new Font("Segoe UI", 14.25F, FontStyle.Regular, GraphicsUnit.Point, 204); + label2.Location = new Point(167, 9); + label2.Name = "label2"; + label2.Size = new Size(139, 25); + label2.TabIndex = 38; + label2.Text = "Обследование"; + // + // ResultDataForm + // + AutoScaleDimensions = new SizeF(7F, 17F); + AutoScaleMode = AutoScaleMode.Font; + ClientSize = new Size(365, 255); + Controls.Add(cbExamination); + Controls.Add(label2); + Controls.Add(lblUnit); + Controls.Add(cbUnit); + Controls.Add(lblCount); + Controls.Add(nudCount); + Controls.Add(cbValue); + Controls.Add(lblBool); + Controls.Add(button2); + Controls.Add(btnOK); + Controls.Add(cbTypeResult); + Controls.Add(label1); + Font = new Font("Segoe UI", 9.75F, FontStyle.Regular, GraphicsUnit.Point, 204); + FormBorderStyle = FormBorderStyle.FixedToolWindow; + Name = "ResultDataForm"; + Text = "Результаты"; + ((System.ComponentModel.ISupportInitialize)nudCount).EndInit(); + ResumeLayout(false); + PerformLayout(); + } + + #endregion + internal ComboBox cbTypeResult; + private Label label1; + private Button button2; + internal Button btnOK; + internal ComboBox cbValue; + private Label lblBool; + private Label lblUnit; + private ComboBox cbUnit; + private Label lblCount; + private NumericUpDown nudCount; + internal ComboBox cbExamination; + private Label label2; + } +} \ No newline at end of file diff --git a/Register office/Register office/View/PrescriptionsV/ResultDataForm.cs b/Register office/Register office/View/PrescriptionsV/ResultDataForm.cs new file mode 100644 index 0000000..db7bdae --- /dev/null +++ b/Register office/Register office/View/PrescriptionsV/ResultDataForm.cs @@ -0,0 +1,161 @@ +using Microsoft.EntityFrameworkCore; +using Register_office.Model; +using Register_office.ViewModel; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace Register_office.View.TypesV +{ + public partial class ResultDataForm : Form + { + private ResultViewModel _viewModel; + private ExaminationTypePrescription? _prescription; + bool _isNumericResult; + public ResultDataForm(ExaminationTypePrescription p, bool isForAdd = true) + { + Init(); + _prescription = p; + cbExamination.SelectedValue = p.ExaminationTypeId; + cbExamination.Enabled = false; + if (!isForAdd) SetData(p); + } + + private void Init() + { + InitializeComponent(); + TopMost = true; + _viewModel = new(); + SetDataSourceToComboBoxes(); + } + + private void SetData(ExaminationTypePrescription prescription) + { + _prescription = _viewModel.General.Context.ExaminationTypePrescriptions + .Include(x => x.Result) + .ThenInclude(y => y.NumericResult) + .Include(x => x.Result) + .ThenInclude(y => y.QualitativeResult) + .First(x => x.ExaminationPrescriptionId == prescription.ExaminationPrescriptionId); + _isNumericResult = _prescription.Result.QualitativeResult == null; + cbTypeResult.Text = _isNumericResult + ? "Числовой" + : "Качественный"; + if (_isNumericResult) + { + nudCount.Value = _prescription.Result.NumericResult.Value; + cbUnit.SelectedValue = _prescription.Result.NumericResult.UnitId; + + nudCount.Visible = cbUnit.Visible = + lblCount.Visible = lblUnit.Visible = true; + cbValue.Visible = lblBool.Visible = false; + } + else + { + cbValue.Text = _prescription.Result.QualitativeResult.Value + ? "Положительный" + : "Отрицательный"; + nudCount.Visible = cbUnit.Visible = + lblCount.Visible = lblUnit.Visible = false; + cbValue.Visible = lblBool.Visible = true; + } + + Text = "Просмотр результатов"; + btnOK.Visible = cbTypeResult.Enabled = + nudCount.Enabled = cbUnit.Enabled = + cbValue.Enabled = false; + } + + private void SetDataSourceToComboBoxes() + { + cbTypeResult.SelectedItem = cbTypeResult.Items[0]; + cbExamination.DataSource = _viewModel.General.Context.ExaminationTypes + .Select(x => new ComboBoxItem { Name = x.Name, Id = x.ExaminationTypeId }) + .OrderBy(cbi => cbi.Name).ToList(); + cbExamination.DisplayMember = "Name"; + cbExamination.ValueMember = "Id"; + + cbUnit.DataSource = _viewModel.General.Context.Units + .Select(x => new ComboBoxItem { Name = x.Name, Id = x.UnitId }) + .OrderBy(cbi => cbi.Name).ToList(); + cbUnit.DisplayMember = "Name"; + cbUnit.ValueMember = "Id"; + } + + private void btnOK_Click(object sender, EventArgs e) + { + Result r = new() + { + ExaminationId = int.Parse(cbExamination.SelectedValue?.ToString() ?? "-1") + }; + + int id = _viewModel.AddResult(r); + if (id == -1) + { + DialogResult = DialogResult.None; + return; + } + + if (cbTypeResult.Text == "Качественный") + { + QualitativeResult qr = new() + { + ResultId = id, + Value = cbValue.Text == "Положительный" + }; + if (_viewModel.AddResult(qr) == -1) + { + DialogResult = DialogResult.None; + _viewModel.DeleteResult(r); + return; + } + } + else + { + + NumericResult nr = new() + { + ResultId = id, + UnitId = int.Parse(cbUnit.SelectedValue?.ToString() ?? "0"), + Value = nudCount.Value + }; + if (_viewModel.AddResult(nr) == -1) + { + DialogResult = DialogResult.None; + _viewModel.DeleteResult(r); + return; + } + } + + _prescription.ResultId = id; + _viewModel.Update(); + + MessageBox.Show("Результаты успешно добавлены", "Результаты обследования", + MessageBoxButtons.OK, MessageBoxIcon.Information); + Close(); + + } + + private void cbTypeResult_TextChanged(object sender, EventArgs e) + { + if (cbTypeResult.Text == "Качественный") + { + nudCount.Visible = cbUnit.Visible = + lblCount.Visible = lblUnit.Visible = false; + cbValue.Visible = lblBool.Visible = true; + } + else + { + nudCount.Visible = cbUnit.Visible = + lblCount.Visible = lblUnit.Visible = true; + cbValue.Visible = lblBool.Visible = false; + } + } + } +} diff --git a/Register office/Register office/View/PrescriptionsV/ResultDataForm.resx b/Register office/Register office/View/PrescriptionsV/ResultDataForm.resx new file mode 100644 index 0000000..4f24d55 --- /dev/null +++ b/Register office/Register office/View/PrescriptionsV/ResultDataForm.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Register office/Register office/View/RegistrationV/ConnectionParametersForm.Designer.cs b/Register office/Register office/View/RegistrationV/ConnectionParametersForm.Designer.cs new file mode 100644 index 0000000..3914edd --- /dev/null +++ b/Register office/Register office/View/RegistrationV/ConnectionParametersForm.Designer.cs @@ -0,0 +1,164 @@ +namespace Register_office.View.RegistrationV +{ + partial class ConnectionParametersForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + button1 = new Button(); + tbHost = new TextBox(); + label2 = new Label(); + tbDataBase = new TextBox(); + label1 = new Label(); + tbPassword = new TextBox(); + label3 = new Label(); + tbUsername = new TextBox(); + label4 = new Label(); + SuspendLayout(); + // + // button1 + // + button1.DialogResult = DialogResult.OK; + button1.Font = new Font("Segoe UI", 12F, FontStyle.Regular, GraphicsUnit.Point, 204); + button1.Location = new Point(12, 236); + button1.Name = "button1"; + button1.Size = new Size(75, 29); + button1.TabIndex = 2; + button1.Text = "ОК"; + button1.UseVisualStyleBackColor = true; + // + // tbHost + // + tbHost.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right; + tbHost.Font = new Font("Segoe UI", 12F, FontStyle.Regular, GraphicsUnit.Point, 204); + tbHost.Location = new Point(12, 33); + tbHost.Name = "tbHost"; + tbHost.Size = new Size(212, 29); + tbHost.TabIndex = 30; + // + // label2 + // + label2.AutoSize = true; + label2.Font = new Font("Segoe UI", 12F, FontStyle.Regular, GraphicsUnit.Point, 204); + label2.Location = new Point(12, 9); + label2.Name = "label2"; + label2.Size = new Size(124, 21); + label2.TabIndex = 31; + label2.Text = "Владелец (Host)"; + // + // tbDataBase + // + tbDataBase.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right; + tbDataBase.Font = new Font("Segoe UI", 12F, FontStyle.Regular, GraphicsUnit.Point, 204); + tbDataBase.Location = new Point(12, 89); + tbDataBase.Name = "tbDataBase"; + tbDataBase.Size = new Size(212, 29); + tbDataBase.TabIndex = 32; + // + // label1 + // + label1.AutoSize = true; + label1.Font = new Font("Segoe UI", 12F, FontStyle.Regular, GraphicsUnit.Point, 204); + label1.Location = new Point(12, 65); + label1.Name = "label1"; + label1.Size = new Size(99, 21); + label1.TabIndex = 33; + label1.Text = "База данных"; + // + // tbPassword + // + tbPassword.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right; + tbPassword.Font = new Font("Segoe UI", 12F, FontStyle.Regular, GraphicsUnit.Point, 204); + tbPassword.Location = new Point(12, 201); + tbPassword.Name = "tbPassword"; + tbPassword.Size = new Size(212, 29); + tbPassword.TabIndex = 36; + tbPassword.UseSystemPasswordChar = true; + // + // label3 + // + label3.AutoSize = true; + label3.Font = new Font("Segoe UI", 12F, FontStyle.Regular, GraphicsUnit.Point, 204); + label3.Location = new Point(12, 177); + label3.Name = "label3"; + label3.Size = new Size(63, 21); + label3.TabIndex = 37; + label3.Text = "Пароль"; + // + // tbUsername + // + tbUsername.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right; + tbUsername.Font = new Font("Segoe UI", 12F, FontStyle.Regular, GraphicsUnit.Point, 204); + tbUsername.Location = new Point(12, 145); + tbUsername.Name = "tbUsername"; + tbUsername.Size = new Size(212, 29); + tbUsername.TabIndex = 34; + // + // label4 + // + label4.AutoSize = true; + label4.Font = new Font("Segoe UI", 12F, FontStyle.Regular, GraphicsUnit.Point, 204); + label4.Location = new Point(12, 121); + label4.Name = "label4"; + label4.Size = new Size(151, 21); + label4.TabIndex = 35; + label4.Text = "Суперпользователь"; + // + // ConnectionParametersForm + // + AutoScaleDimensions = new SizeF(7F, 15F); + AutoScaleMode = AutoScaleMode.Font; + ClientSize = new Size(236, 269); + Controls.Add(tbPassword); + Controls.Add(label3); + Controls.Add(tbUsername); + Controls.Add(label4); + Controls.Add(tbDataBase); + Controls.Add(label1); + Controls.Add(tbHost); + Controls.Add(label2); + Controls.Add(button1); + FormBorderStyle = FormBorderStyle.FixedToolWindow; + Name = "ConnectionParametersForm"; + StartPosition = FormStartPosition.CenterScreen; + Text = "Параметры подключения"; + ResumeLayout(false); + PerformLayout(); + } + + #endregion + + private Button button1; + internal TextBox tbHost; + private Label label2; + internal TextBox tbDataBase; + private Label label1; + internal TextBox tbPassword; + private Label label3; + internal TextBox tbUsername; + private Label label4; + } +} \ No newline at end of file diff --git a/Register office/Register office/View/RegistrationV/ConnectionParametersForm.cs b/Register office/Register office/View/RegistrationV/ConnectionParametersForm.cs new file mode 100644 index 0000000..1c92e76 --- /dev/null +++ b/Register office/Register office/View/RegistrationV/ConnectionParametersForm.cs @@ -0,0 +1,10 @@ +namespace Register_office.View.RegistrationV +{ + public partial class ConnectionParametersForm : Form + { + public ConnectionParametersForm() + { + InitializeComponent(); + } + } +} diff --git a/Register office/Register office/View/RegistrationV/ConnectionParametersForm.resx b/Register office/Register office/View/RegistrationV/ConnectionParametersForm.resx new file mode 100644 index 0000000..4f24d55 --- /dev/null +++ b/Register office/Register office/View/RegistrationV/ConnectionParametersForm.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Register office/Register office/View/RegistrationV/LoginForm.Designer.cs b/Register office/Register office/View/RegistrationV/LoginForm.Designer.cs new file mode 100644 index 0000000..f553530 --- /dev/null +++ b/Register office/Register office/View/RegistrationV/LoginForm.Designer.cs @@ -0,0 +1,121 @@ +namespace Register_office.View.LoginV +{ + partial class LoginForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + label1 = new Label(); + tbLogin = new TextBox(); + tbPassword = new TextBox(); + label2 = new Label(); + btnEntry = new Button(); + SuspendLayout(); + // + // label1 + // + label1.AutoSize = true; + label1.Font = new Font("Segoe UI", 12F, FontStyle.Bold); + label1.Location = new Point(12, 23); + label1.Name = "label1"; + label1.Size = new Size(63, 21); + label1.TabIndex = 0; + label1.Text = "Логин:"; + // + // tbLogin + // + tbLogin.Font = new Font("Segoe UI", 12F, FontStyle.Bold); + tbLogin.Location = new Point(99, 20); + tbLogin.MaxLength = 20; + tbLogin.Name = "tbLogin"; + tbLogin.Size = new Size(131, 29); + tbLogin.TabIndex = 1; + tbLogin.Text = "Иванов Н.В."; + tbLogin.KeyDown += RegistrationForm_KeyDown; + // + // tbPassword + // + tbPassword.Font = new Font("Segoe UI", 12F, FontStyle.Bold); + tbPassword.Location = new Point(98, 61); + tbPassword.MaxLength = 20; + tbPassword.Name = "tbPassword"; + tbPassword.Size = new Size(131, 29); + tbPassword.TabIndex = 3; + tbPassword.Text = "Иванов123"; + tbPassword.UseSystemPasswordChar = true; + tbPassword.KeyDown += RegistrationForm_KeyDown; + // + // label2 + // + label2.AutoSize = true; + label2.Font = new Font("Segoe UI", 12F, FontStyle.Bold); + label2.Location = new Point(11, 64); + label2.Name = "label2"; + label2.Size = new Size(74, 21); + label2.TabIndex = 2; + label2.Text = "Пароль:"; + // + // btnEntry + // + btnEntry.BackColor = Color.LightBlue; + btnEntry.FlatStyle = FlatStyle.Flat; + btnEntry.Font = new Font("Segoe UI", 12F); + btnEntry.Location = new Point(54, 104); + btnEntry.Name = "btnEntry"; + btnEntry.Size = new Size(131, 31); + btnEntry.TabIndex = 4; + btnEntry.Text = "ВВОД"; + btnEntry.UseVisualStyleBackColor = false; + btnEntry.Click += btnEntry_Click; + // + // LoginForm + // + AutoScaleDimensions = new SizeF(7F, 15F); + AutoScaleMode = AutoScaleMode.Font; + ClientSize = new Size(243, 147); + Controls.Add(btnEntry); + Controls.Add(tbPassword); + Controls.Add(label2); + Controls.Add(tbLogin); + Controls.Add(label1); + FormBorderStyle = FormBorderStyle.FixedToolWindow; + Name = "LoginForm"; + StartPosition = FormStartPosition.CenterScreen; + Text = "Авторизация пользователя"; + KeyDown += RegistrationForm_KeyDown; + ResumeLayout(false); + PerformLayout(); + } + + #endregion + + private Label label1; + private TextBox tbLogin; + private TextBox tbPassword; + private Label label2; + private Button btnEntry; + } +} \ No newline at end of file diff --git a/Register office/Register office/View/RegistrationV/LoginForm.cs b/Register office/Register office/View/RegistrationV/LoginForm.cs new file mode 100644 index 0000000..2794a2b --- /dev/null +++ b/Register office/Register office/View/RegistrationV/LoginForm.cs @@ -0,0 +1,53 @@ +//using Register_office.View.MenuV; +using Register_office.ViewModel.LoginVM; +using Npgsql; +using Register_office.View.MenuV; + +namespace Register_office.View.LoginV +{ + internal partial class LoginForm : Form + { + private readonly LoginViewModel _viewModel; + + public LoginForm() + { + _viewModel = new(); + InitializeComponent(); + } + + /// + /// Входит в систему + /// + private void btnEntry_Click(object sender, EventArgs e) + { + try + { + // Проверяем логин и пароль + int personId = _viewModel.CheckEnter(tbLogin.Text, tbPassword.Text); + _viewModel.General.DoctorId = _viewModel.GetDoctorId(personId); + + Hide(); + OnlyMenuForm launchForm = new(); + launchForm.ShowDialog(); + + Close(); + } + catch (NpgsqlException ex) + { + MessageBox.Show(ex.Message.Split(':').Skip(1).FirstOrDefault()?.Trim(), + "Ошибка ввода данных", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + /// + /// При нажатии enter - производит событие входа в систему + /// + private void RegistrationForm_KeyDown(object sender, KeyEventArgs e) + { + if (e.KeyCode == Keys.Enter) + { + btnEntry.PerformClick(); + } + } + } +} diff --git a/Register office/Register office/View/RegistrationV/LoginForm.resx b/Register office/Register office/View/RegistrationV/LoginForm.resx new file mode 100644 index 0000000..4f24d55 --- /dev/null +++ b/Register office/Register office/View/RegistrationV/LoginForm.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Register office/Register office/View/TypesV/DiseaseForm.Designer.cs b/Register office/Register office/View/TypesV/DiseaseForm.Designer.cs new file mode 100644 index 0000000..c8463c3 --- /dev/null +++ b/Register office/Register office/View/TypesV/DiseaseForm.Designer.cs @@ -0,0 +1,219 @@ +using Register_office.View; + +namespace Register_office.View.TypesV +{ + partial class DiseaseForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + components = new System.ComponentModel.Container(); + splitContainer1 = new SplitContainer(); + label2 = new Label(); + tbCodeICB = new TextBox(); + btnAdd = new Button(); + btnDelete = new Button(); + btnUpdate = new Button(); + label1 = new Label(); + tbName = new TextBox(); + dgv = new DataGridView(); + cmsMedicineProductCost = new ContextMenuStrip(components); + cmsMedicineProduct = new ContextMenuStrip(components); + ((System.ComponentModel.ISupportInitialize)splitContainer1).BeginInit(); + splitContainer1.Panel1.SuspendLayout(); + splitContainer1.Panel2.SuspendLayout(); + splitContainer1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)dgv).BeginInit(); + SuspendLayout(); + // + // splitContainer1 + // + splitContainer1.Dock = DockStyle.Fill; + splitContainer1.FixedPanel = FixedPanel.Panel1; + splitContainer1.Location = new Point(0, 0); + splitContainer1.Name = "splitContainer1"; + splitContainer1.Orientation = Orientation.Horizontal; + // + // splitContainer1.Panel1 + // + splitContainer1.Panel1.Controls.Add(label2); + splitContainer1.Panel1.Controls.Add(tbCodeICB); + splitContainer1.Panel1.Controls.Add(btnAdd); + splitContainer1.Panel1.Controls.Add(btnDelete); + splitContainer1.Panel1.Controls.Add(btnUpdate); + splitContainer1.Panel1.Controls.Add(label1); + splitContainer1.Panel1.Controls.Add(tbName); + // + // splitContainer1.Panel2 + // + splitContainer1.Panel2.Controls.Add(dgv); + splitContainer1.Size = new Size(800, 647); + splitContainer1.SplitterDistance = 120; + splitContainer1.SplitterWidth = 5; + splitContainer1.TabIndex = 0; + // + // label2 + // + label2.Anchor = AnchorStyles.Top | AnchorStyles.Bottom; + label2.AutoSize = true; + label2.Font = new Font("Segoe UI", 9.75F, FontStyle.Regular, GraphicsUnit.Point, 204); + label2.Location = new Point(276, 9); + label2.Name = "label2"; + label2.Size = new Size(62, 17); + label2.TabIndex = 10; + label2.Text = "Код МКБ"; + // + // tbCodeICB + // + tbCodeICB.Anchor = AnchorStyles.Top | AnchorStyles.Bottom; + tbCodeICB.Font = new Font("Segoe UI", 11.25F, FontStyle.Regular, GraphicsUnit.Point, 204); + tbCodeICB.Location = new Point(276, 32); + tbCodeICB.Name = "tbCodeICB"; + tbCodeICB.Size = new Size(125, 27); + tbCodeICB.TabIndex = 9; + // + // btnAdd + // + btnAdd.Anchor = AnchorStyles.Top | AnchorStyles.Bottom; + btnAdd.AutoSizeMode = AutoSizeMode.GrowAndShrink; + btnAdd.Font = new Font("Segoe UI", 11.25F, FontStyle.Regular, GraphicsUnit.Point, 204); + btnAdd.Location = new Point(458, 72); + btnAdd.Name = "btnAdd"; + btnAdd.Size = new Size(330, 33); + btnAdd.TabIndex = 3; + btnAdd.Text = "Добавить"; + btnAdd.UseVisualStyleBackColor = true; + btnAdd.Click += btnAdd_Click; + // + // btnDelete + // + btnDelete.Anchor = AnchorStyles.Top | AnchorStyles.Bottom; + btnDelete.AutoSizeMode = AutoSizeMode.GrowAndShrink; + btnDelete.Enabled = false; + btnDelete.Font = new Font("Segoe UI", 11.25F, FontStyle.Regular, GraphicsUnit.Point, 204); + btnDelete.Location = new Point(626, 33); + btnDelete.Name = "btnDelete"; + btnDelete.Size = new Size(162, 33); + btnDelete.TabIndex = 4; + btnDelete.Text = "Удалить"; + btnDelete.UseVisualStyleBackColor = true; + btnDelete.Click += btnDelete_Click; + // + // btnUpdate + // + btnUpdate.Anchor = AnchorStyles.Top | AnchorStyles.Bottom; + btnUpdate.AutoSizeMode = AutoSizeMode.GrowAndShrink; + btnUpdate.Font = new Font("Segoe UI", 11.25F, FontStyle.Regular, GraphicsUnit.Point, 204); + btnUpdate.Location = new Point(458, 32); + btnUpdate.Name = "btnUpdate"; + btnUpdate.Size = new Size(162, 33); + btnUpdate.TabIndex = 1; + btnUpdate.Text = "Изменить"; + btnUpdate.UseVisualStyleBackColor = true; + btnUpdate.Click += btnUpdate_Click; + // + // label1 + // + label1.Anchor = AnchorStyles.Top | AnchorStyles.Bottom; + label1.AutoSize = true; + label1.Font = new Font("Segoe UI", 9.75F, FontStyle.Regular, GraphicsUnit.Point, 204); + label1.Location = new Point(12, 10); + label1.Name = "label1"; + label1.Size = new Size(65, 17); + label1.TabIndex = 1; + label1.Text = "Название"; + // + // tbName + // + tbName.Anchor = AnchorStyles.Top | AnchorStyles.Bottom; + tbName.Font = new Font("Segoe UI", 11.25F, FontStyle.Regular, GraphicsUnit.Point, 204); + tbName.Location = new Point(12, 33); + tbName.Name = "tbName"; + tbName.Size = new Size(242, 27); + tbName.TabIndex = 0; + // + // dgv + // + dgv.AllowUserToAddRows = false; + dgv.AllowUserToDeleteRows = false; + dgv.AllowUserToOrderColumns = true; + dgv.ClipboardCopyMode = DataGridViewClipboardCopyMode.EnableWithoutHeaderText; + dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; + dgv.Dock = DockStyle.Fill; + dgv.Location = new Point(0, 0); + dgv.MultiSelect = false; + dgv.Name = "dgv"; + dgv.ReadOnly = true; + dgv.SelectionMode = DataGridViewSelectionMode.FullRowSelect; + dgv.Size = new Size(800, 522); + dgv.TabIndex = 8; + dgv.SelectionChanged += dgv_SelectionChanged; + // + // cmsMedicineProductCost + // + cmsMedicineProductCost.Font = new Font("Segoe UI", 9.75F, FontStyle.Regular, GraphicsUnit.Point, 204); + cmsMedicineProductCost.Name = "cmsMedicineProductCost"; + cmsMedicineProductCost.Size = new Size(61, 4); + // + // cmsMedicineProduct + // + cmsMedicineProduct.Name = "contextMenuStrip1"; + cmsMedicineProduct.Size = new Size(61, 4); + // + // DiseaseForm + // + AutoScaleDimensions = new SizeF(7F, 17F); + AutoScaleMode = AutoScaleMode.Font; + ClientSize = new Size(800, 647); + Controls.Add(splitContainer1); + Font = new Font("Segoe UI", 9.75F, FontStyle.Regular, GraphicsUnit.Point, 204); + FormBorderStyle = FormBorderStyle.FixedSingle; + Name = "DiseaseForm"; + Text = "Справочник"; + splitContainer1.Panel1.ResumeLayout(false); + splitContainer1.Panel1.PerformLayout(); + splitContainer1.Panel2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)splitContainer1).EndInit(); + splitContainer1.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)dgv).EndInit(); + ResumeLayout(false); + } + + #endregion + + private SplitContainer splitContainer1; + private DataGridView dgv; + private TextBox tbName; + private Label label1; + private Button btnUpdate; + private Button btnDelete; + private Button btnAdd; + private ContextMenuStrip cmsMedicineProduct; + private ContextMenuStrip cmsMedicineProductCost; + private Label label2; + private TextBox tbCodeICB; + } +} \ No newline at end of file diff --git a/Register office/Register office/View/TypesV/DiseaseForm.cs b/Register office/Register office/View/TypesV/DiseaseForm.cs new file mode 100644 index 0000000..26545d3 --- /dev/null +++ b/Register office/Register office/View/TypesV/DiseaseForm.cs @@ -0,0 +1,83 @@ +using Microsoft.EntityFrameworkCore.ChangeTracking.Internal; +using Register_office.Model; +using Register_office.ViewModel; +using System.Data; + +namespace Register_office.View.TypesV +{ + public partial class DiseaseForm : Form + { + private TypeViewModel _viewModel; + private Disease? _selectedType; + private string _columnIdName = "DiseaseId"; + + public DiseaseForm() + { + InitializeComponent(); + Text = "Справочник заболеваний"; + TopMost = true; + _viewModel = new(); + _viewModel.ConfigureSettingsDGV(dgv); + UpdateDgv(); + UpdateElements(); + } + + private void UpdateElements(string name = "", string codeIcb = "", bool enableButtons = false) + { + tbName.Text = name; + tbCodeICB.Text = codeIcb; + btnDelete.Enabled = btnUpdate.Enabled = enableButtons; + } + + private void UpdateDgv() + { + _viewModel.SetDefaultDataSource(dgv); + } + + private void dgv_SelectionChanged(object sender, EventArgs e) + { + if (dgv.SelectedRows.Count != 0 && !dgv.CurrentRow.IsNewRow) + { + DataGridViewRow selectedRow = dgv.SelectedRows[0]; + int id = int.Parse(selectedRow.Cells[_columnIdName].Value.ToString() ?? ""); + _selectedType = _viewModel.General.Context.Diseases.Where(x => x.DiseaseId == id).FirstOrDefault(); + if (_selectedType != null) + UpdateElements(_selectedType.Name, _selectedType.IcdCode, true); + } + } + + private void btnUpdate_Click(object sender, EventArgs e) + { + if (_selectedType != null) + { + _selectedType.Name = tbName.Text; + _selectedType.IcdCode = tbCodeICB.Text; + _viewModel.General.Context.SaveChanges(); + UpdateElements(); + UpdateDgv(); + } + } + + private void btnDelete_Click(object sender, EventArgs e) + { + if (_selectedType != null) + { + _viewModel.DeleteType(_selectedType); + UpdateElements(); + UpdateDgv(); + } + } + + private void btnAdd_Click(object sender, EventArgs e) + { + Disease d = new() + { + Name = tbName.Text, + IcdCode = tbCodeICB.Text + }; + _viewModel.AddType(d); + UpdateElements(); + UpdateDgv(); + } + } +} diff --git a/Register office/Register office/View/TypesV/DiseaseForm.resx b/Register office/Register office/View/TypesV/DiseaseForm.resx new file mode 100644 index 0000000..93017c2 --- /dev/null +++ b/Register office/Register office/View/TypesV/DiseaseForm.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 184, 17 + + + 17, 17 + + \ No newline at end of file diff --git a/Register office/Register office/View/TypesV/DiseaseSyndromeForm.Designer.cs b/Register office/Register office/View/TypesV/DiseaseSyndromeForm.Designer.cs new file mode 100644 index 0000000..d61e609 --- /dev/null +++ b/Register office/Register office/View/TypesV/DiseaseSyndromeForm.Designer.cs @@ -0,0 +1,221 @@ +using Register_office.View; + +namespace Register_office.View.TypesV +{ + partial class DiseaseSyndromeForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + components = new System.ComponentModel.Container(); + splitContainer1 = new SplitContainer(); + label3 = new Label(); + btnAdd = new Button(); + cbDisease = new ComboBox(); + btnDelete = new Button(); + label2 = new Label(); + cbSyndrome = new ComboBox(); + btnUpdate = new Button(); + dgv = new DataGridView(); + cmsMedicineProductCost = new ContextMenuStrip(components); + cmsMedicineProduct = new ContextMenuStrip(components); + ((System.ComponentModel.ISupportInitialize)splitContainer1).BeginInit(); + splitContainer1.Panel1.SuspendLayout(); + splitContainer1.Panel2.SuspendLayout(); + splitContainer1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)dgv).BeginInit(); + SuspendLayout(); + // + // splitContainer1 + // + splitContainer1.Dock = DockStyle.Fill; + splitContainer1.FixedPanel = FixedPanel.Panel1; + splitContainer1.Location = new Point(0, 0); + splitContainer1.Name = "splitContainer1"; + splitContainer1.Orientation = Orientation.Horizontal; + // + // splitContainer1.Panel1 + // + splitContainer1.Panel1.Controls.Add(label3); + splitContainer1.Panel1.Controls.Add(btnAdd); + splitContainer1.Panel1.Controls.Add(cbDisease); + splitContainer1.Panel1.Controls.Add(btnDelete); + splitContainer1.Panel1.Controls.Add(label2); + splitContainer1.Panel1.Controls.Add(cbSyndrome); + splitContainer1.Panel1.Controls.Add(btnUpdate); + // + // splitContainer1.Panel2 + // + splitContainer1.Panel2.Controls.Add(dgv); + splitContainer1.Size = new Size(800, 647); + splitContainer1.SplitterDistance = 120; + splitContainer1.SplitterWidth = 5; + splitContainer1.TabIndex = 0; + // + // label3 + // + label3.Anchor = AnchorStyles.Top | AnchorStyles.Bottom; + label3.AutoSize = true; + label3.Font = new Font("Segoe UI", 9.75F, FontStyle.Regular, GraphicsUnit.Point, 204); + label3.Location = new Point(232, 17); + label3.Name = "label3"; + label3.Size = new Size(87, 17); + label3.TabIndex = 14; + label3.Text = "Заболевание"; + // + // btnAdd + // + btnAdd.Anchor = AnchorStyles.Top | AnchorStyles.Bottom; + btnAdd.AutoSizeMode = AutoSizeMode.GrowAndShrink; + btnAdd.Font = new Font("Segoe UI", 11.25F, FontStyle.Regular, GraphicsUnit.Point, 204); + btnAdd.Location = new Point(458, 72); + btnAdd.Name = "btnAdd"; + btnAdd.Size = new Size(330, 33); + btnAdd.TabIndex = 3; + btnAdd.Text = "Добавить"; + btnAdd.UseVisualStyleBackColor = true; + btnAdd.Click += btnAdd_Click; + // + // cbDisease + // + cbDisease.DropDownStyle = ComboBoxStyle.DropDownList; + cbDisease.FormattingEnabled = true; + cbDisease.Items.AddRange(new object[] { "Физикальное", "Лабораторное", "Инструментальное" }); + cbDisease.Location = new Point(232, 37); + cbDisease.Name = "cbDisease"; + cbDisease.Size = new Size(211, 25); + cbDisease.TabIndex = 13; + // + // btnDelete + // + btnDelete.Anchor = AnchorStyles.Top | AnchorStyles.Bottom; + btnDelete.AutoSizeMode = AutoSizeMode.GrowAndShrink; + btnDelete.Enabled = false; + btnDelete.Font = new Font("Segoe UI", 11.25F, FontStyle.Regular, GraphicsUnit.Point, 204); + btnDelete.Location = new Point(626, 33); + btnDelete.Name = "btnDelete"; + btnDelete.Size = new Size(162, 33); + btnDelete.TabIndex = 4; + btnDelete.Text = "Удалить"; + btnDelete.UseVisualStyleBackColor = true; + btnDelete.Click += btnDelete_Click; + // + // label2 + // + label2.Anchor = AnchorStyles.Top | AnchorStyles.Bottom; + label2.AutoSize = true; + label2.Font = new Font("Segoe UI", 9.75F, FontStyle.Regular, GraphicsUnit.Point, 204); + label2.Location = new Point(12, 16); + label2.Name = "label2"; + label2.Size = new Size(62, 17); + label2.TabIndex = 12; + label2.Text = "Синдром"; + // + // cbSyndrome + // + cbSyndrome.DropDownStyle = ComboBoxStyle.DropDownList; + cbSyndrome.FormattingEnabled = true; + cbSyndrome.Items.AddRange(new object[] { "Физикальное", "Лабораторное", "Инструментальное" }); + cbSyndrome.Location = new Point(12, 37); + cbSyndrome.Name = "cbSyndrome"; + cbSyndrome.Size = new Size(214, 25); + cbSyndrome.TabIndex = 11; + // + // btnUpdate + // + btnUpdate.Anchor = AnchorStyles.Top | AnchorStyles.Bottom; + btnUpdate.AutoSizeMode = AutoSizeMode.GrowAndShrink; + btnUpdate.Font = new Font("Segoe UI", 11.25F, FontStyle.Regular, GraphicsUnit.Point, 204); + btnUpdate.Location = new Point(458, 32); + btnUpdate.Name = "btnUpdate"; + btnUpdate.Size = new Size(162, 33); + btnUpdate.TabIndex = 1; + btnUpdate.Text = "Изменить"; + btnUpdate.UseVisualStyleBackColor = true; + btnUpdate.Click += btnUpdate_Click; + // + // dgv + // + dgv.AllowUserToAddRows = false; + dgv.AllowUserToDeleteRows = false; + dgv.AllowUserToOrderColumns = true; + dgv.ClipboardCopyMode = DataGridViewClipboardCopyMode.EnableWithoutHeaderText; + dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; + dgv.Dock = DockStyle.Fill; + dgv.Location = new Point(0, 0); + dgv.MultiSelect = false; + dgv.Name = "dgv"; + dgv.ReadOnly = true; + dgv.SelectionMode = DataGridViewSelectionMode.FullRowSelect; + dgv.Size = new Size(800, 522); + dgv.TabIndex = 8; + dgv.SelectionChanged += dgv_SelectionChanged; + // + // cmsMedicineProductCost + // + cmsMedicineProductCost.Font = new Font("Segoe UI", 9.75F, FontStyle.Regular, GraphicsUnit.Point, 204); + cmsMedicineProductCost.Name = "cmsMedicineProductCost"; + cmsMedicineProductCost.Size = new Size(61, 4); + // + // cmsMedicineProduct + // + cmsMedicineProduct.Name = "contextMenuStrip1"; + cmsMedicineProduct.Size = new Size(61, 4); + // + // DiseaseSyndromeForm + // + AutoScaleDimensions = new SizeF(7F, 17F); + AutoScaleMode = AutoScaleMode.Font; + ClientSize = new Size(800, 647); + Controls.Add(splitContainer1); + Font = new Font("Segoe UI", 9.75F, FontStyle.Regular, GraphicsUnit.Point, 204); + FormBorderStyle = FormBorderStyle.FixedSingle; + Name = "DiseaseSyndromeForm"; + Text = "Лекарственные препараты"; + splitContainer1.Panel1.ResumeLayout(false); + splitContainer1.Panel1.PerformLayout(); + splitContainer1.Panel2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)splitContainer1).EndInit(); + splitContainer1.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)dgv).EndInit(); + ResumeLayout(false); + } + + #endregion + + private SplitContainer splitContainer1; + private DataGridView dgv; + private Button btnUpdate; + private Button btnDelete; + private Button btnAdd; + private ContextMenuStrip cmsMedicineProduct; + private ContextMenuStrip cmsMedicineProductCost; + private Label label3; + private ComboBox cbDisease; + private Label label2; + private ComboBox cbSyndrome; + } +} \ No newline at end of file diff --git a/Register office/Register office/View/TypesV/DiseaseSyndromeForm.cs b/Register office/Register office/View/TypesV/DiseaseSyndromeForm.cs new file mode 100644 index 0000000..1441817 --- /dev/null +++ b/Register office/Register office/View/TypesV/DiseaseSyndromeForm.cs @@ -0,0 +1,101 @@ +using Microsoft.EntityFrameworkCore.ChangeTracking.Internal; +using Register_office.Model; +using Register_office.ViewModel; +using System.Data; + +namespace Register_office.View.TypesV +{ + public partial class DiseaseSyndromeForm : Form + { + private TypeViewModel _viewModel; + private DiseaseSyndrome? _selectedType; + private DiseaseSyndrome _temp; + + public DiseaseSyndromeForm() + { + InitializeComponent(); + TopMost = true; + Text = "Справочник соответствий заболеваний и синдромов"; + _viewModel = new(); + _viewModel.ConfigureSettingsDGV(dgv); + UpdateDgv(); + SetDataSourceToComboBoxes(); + UpdateElements(); + } + + private void SetDataSourceToComboBoxes() + { + cbDisease.DataSource = _viewModel.General.Context.Diseases + .Select(x => new ComboBoxItem { Name = x.Name, Id = x.DiseaseId }) + .OrderBy(cbi => cbi.Name).ToList(); + cbDisease.DisplayMember = "Name"; + cbDisease.ValueMember = "Id"; + + cbSyndrome.DataSource = _viewModel.General.Context.SyndromeTypes + .Select(x => new ComboBoxItem { Name = x.Name, Id = x.SyndromeTypeId }) + .OrderBy(cbi => cbi.Name).ToList(); + cbSyndrome.DisplayMember = "Name"; + cbSyndrome.ValueMember = "Id"; + } + + private void UpdateElements(int idDis = -1, int idSynd = -1, bool enableButtons = false) + { + cbDisease.SelectedValue = idDis; + cbSyndrome.SelectedValue = idSynd; + btnDelete.Enabled = btnUpdate.Enabled = enableButtons; + } + + private void UpdateDgv() + { + _viewModel.SetDefaultDataSource(dgv); + } + + private void dgv_SelectionChanged(object sender, EventArgs e) + { + if (dgv.SelectedRows.Count != 0 && !dgv.CurrentRow.IsNewRow) + { + DataGridViewRow selectedRow = dgv.SelectedRows[0]; + int idDis = int.Parse(selectedRow.Cells["DiseaseId"].Value.ToString() ?? ""); + int idSynd = int.Parse(selectedRow.Cells["SyndromeId"].Value.ToString() ?? ""); + _selectedType = _viewModel.General.Context.DiseaseSyndromes + .Where(x => x.DiseaseId == idDis && x.SyndromeId == idSynd).FirstOrDefault(); + if (_selectedType != null) + UpdateElements(_selectedType.DiseaseId, _selectedType.SyndromeId, true); + } + } + + private void btnUpdate_Click(object sender, EventArgs e) + { + if (_selectedType != null) + { + _selectedType.DiseaseId = int.Parse(cbDisease.SelectedValue?.ToString() ?? "-1"); + _selectedType.SyndromeId = int.Parse(cbSyndrome.SelectedValue?.ToString() ?? "-1"); + _viewModel.General.Context.SaveChanges(); + UpdateElements(); + UpdateDgv(); + } + } + + private void btnDelete_Click(object sender, EventArgs e) + { + if (_selectedType != null) + { + _viewModel.DeleteType(_selectedType); + UpdateElements(); + UpdateDgv(); + } + } + + private void btnAdd_Click(object sender, EventArgs e) + { + _temp = new() + { + DiseaseId = int.Parse(cbDisease.SelectedValue?.ToString() ?? "-1"), + SyndromeId = int.Parse(cbSyndrome.SelectedValue?.ToString() ?? "-1") + }; + _viewModel.AddType(_temp); + UpdateElements(); + UpdateDgv(); + } + } +} diff --git a/Register office/Register office/View/TypesV/DiseaseSyndromeForm.resx b/Register office/Register office/View/TypesV/DiseaseSyndromeForm.resx new file mode 100644 index 0000000..93017c2 --- /dev/null +++ b/Register office/Register office/View/TypesV/DiseaseSyndromeForm.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 184, 17 + + + 17, 17 + + \ No newline at end of file diff --git a/Register office/Register office/View/TypesV/DrugIntakeMethodForm.Designer.cs b/Register office/Register office/View/TypesV/DrugIntakeMethodForm.Designer.cs new file mode 100644 index 0000000..66eb20a --- /dev/null +++ b/Register office/Register office/View/TypesV/DrugIntakeMethodForm.Designer.cs @@ -0,0 +1,193 @@ +using Register_office.View; + +namespace Register_office.View.TypesV +{ + partial class DrugIntakeMethodForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + components = new System.ComponentModel.Container(); + splitContainer1 = new SplitContainer(); + btnAdd = new Button(); + btnDelete = new Button(); + btnUpdate = new Button(); + label1 = new Label(); + tbName = new TextBox(); + dgv = new DataGridView(); + cmsMedicineProductCost = new ContextMenuStrip(components); + cmsMedicineProduct = new ContextMenuStrip(components); + ((System.ComponentModel.ISupportInitialize)splitContainer1).BeginInit(); + splitContainer1.Panel1.SuspendLayout(); + splitContainer1.Panel2.SuspendLayout(); + splitContainer1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)dgv).BeginInit(); + SuspendLayout(); + // + // splitContainer1 + // + splitContainer1.Dock = DockStyle.Fill; + splitContainer1.FixedPanel = FixedPanel.Panel1; + splitContainer1.Location = new Point(0, 0); + splitContainer1.Name = "splitContainer1"; + splitContainer1.Orientation = Orientation.Horizontal; + // + // splitContainer1.Panel1 + // + splitContainer1.Panel1.Controls.Add(btnAdd); + splitContainer1.Panel1.Controls.Add(btnDelete); + splitContainer1.Panel1.Controls.Add(btnUpdate); + splitContainer1.Panel1.Controls.Add(label1); + splitContainer1.Panel1.Controls.Add(tbName); + // + // splitContainer1.Panel2 + // + splitContainer1.Panel2.Controls.Add(dgv); + splitContainer1.Size = new Size(800, 647); + splitContainer1.SplitterDistance = 120; + splitContainer1.SplitterWidth = 5; + splitContainer1.TabIndex = 0; + // + // btnAdd + // + btnAdd.Anchor = AnchorStyles.Top | AnchorStyles.Bottom; + btnAdd.AutoSizeMode = AutoSizeMode.GrowAndShrink; + btnAdd.Font = new Font("Segoe UI", 11.25F, FontStyle.Regular, GraphicsUnit.Point, 204); + btnAdd.Location = new Point(458, 72); + btnAdd.Name = "btnAdd"; + btnAdd.Size = new Size(330, 33); + btnAdd.TabIndex = 3; + btnAdd.Text = "Добавить"; + btnAdd.UseVisualStyleBackColor = true; + btnAdd.Click += btnAdd_Click; + // + // btnDelete + // + btnDelete.Anchor = AnchorStyles.Top | AnchorStyles.Bottom; + btnDelete.AutoSizeMode = AutoSizeMode.GrowAndShrink; + btnDelete.Enabled = false; + btnDelete.Font = new Font("Segoe UI", 11.25F, FontStyle.Regular, GraphicsUnit.Point, 204); + btnDelete.Location = new Point(626, 33); + btnDelete.Name = "btnDelete"; + btnDelete.Size = new Size(162, 33); + btnDelete.TabIndex = 4; + btnDelete.Text = "Удалить"; + btnDelete.UseVisualStyleBackColor = true; + btnDelete.Click += btnDelete_Click; + // + // btnUpdate + // + btnUpdate.Anchor = AnchorStyles.Top | AnchorStyles.Bottom; + btnUpdate.AutoSizeMode = AutoSizeMode.GrowAndShrink; + btnUpdate.Font = new Font("Segoe UI", 11.25F, FontStyle.Regular, GraphicsUnit.Point, 204); + btnUpdate.Location = new Point(458, 32); + btnUpdate.Name = "btnUpdate"; + btnUpdate.Size = new Size(162, 33); + btnUpdate.TabIndex = 1; + btnUpdate.Text = "Изменить"; + btnUpdate.UseVisualStyleBackColor = true; + btnUpdate.Click += btnUpdate_Click; + // + // label1 + // + label1.Anchor = AnchorStyles.Top | AnchorStyles.Bottom; + label1.AutoSize = true; + label1.Font = new Font("Segoe UI", 9.75F, FontStyle.Regular, GraphicsUnit.Point, 204); + label1.Location = new Point(12, 10); + label1.Name = "label1"; + label1.Size = new Size(65, 17); + label1.TabIndex = 1; + label1.Text = "Название"; + // + // tbName + // + tbName.Anchor = AnchorStyles.Top | AnchorStyles.Bottom; + tbName.Font = new Font("Segoe UI", 11.25F, FontStyle.Regular, GraphicsUnit.Point, 204); + tbName.Location = new Point(12, 33); + tbName.Name = "tbName"; + tbName.Size = new Size(242, 27); + tbName.TabIndex = 0; + // + // dgv + // + dgv.AllowUserToAddRows = false; + dgv.AllowUserToDeleteRows = false; + dgv.AllowUserToOrderColumns = true; + dgv.ClipboardCopyMode = DataGridViewClipboardCopyMode.EnableWithoutHeaderText; + dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; + dgv.Dock = DockStyle.Fill; + dgv.Location = new Point(0, 0); + dgv.MultiSelect = false; + dgv.Name = "dgv"; + dgv.ReadOnly = true; + dgv.SelectionMode = DataGridViewSelectionMode.FullRowSelect; + dgv.Size = new Size(800, 522); + dgv.TabIndex = 8; + dgv.SelectionChanged += dgv_SelectionChanged; + // + // cmsMedicineProductCost + // + cmsMedicineProductCost.Font = new Font("Segoe UI", 9.75F, FontStyle.Regular, GraphicsUnit.Point, 204); + cmsMedicineProductCost.Name = "cmsMedicineProductCost"; + cmsMedicineProductCost.Size = new Size(61, 4); + // + // cmsMedicineProduct + // + cmsMedicineProduct.Name = "contextMenuStrip1"; + cmsMedicineProduct.Size = new Size(61, 4); + // + // DrugIntakeMethodForm + // + AutoScaleDimensions = new SizeF(7F, 17F); + AutoScaleMode = AutoScaleMode.Font; + ClientSize = new Size(800, 647); + Controls.Add(splitContainer1); + Font = new Font("Segoe UI", 9.75F, FontStyle.Regular, GraphicsUnit.Point, 204); + FormBorderStyle = FormBorderStyle.FixedSingle; + Name = "DrugIntakeMethodForm"; + Text = "Лекарственные препараты"; + splitContainer1.Panel1.ResumeLayout(false); + splitContainer1.Panel1.PerformLayout(); + splitContainer1.Panel2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)splitContainer1).EndInit(); + splitContainer1.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)dgv).EndInit(); + ResumeLayout(false); + } + + #endregion + + private SplitContainer splitContainer1; + private DataGridView dgv; + private TextBox tbName; + private Label label1; + private Button btnUpdate; + private Button btnDelete; + private Button btnAdd; + private ContextMenuStrip cmsMedicineProduct; + private ContextMenuStrip cmsMedicineProductCost; + } +} \ No newline at end of file diff --git a/Register office/Register office/View/TypesV/DrugIntakeMethodForm.cs b/Register office/Register office/View/TypesV/DrugIntakeMethodForm.cs new file mode 100644 index 0000000..875ad71 --- /dev/null +++ b/Register office/Register office/View/TypesV/DrugIntakeMethodForm.cs @@ -0,0 +1,79 @@ +using Microsoft.EntityFrameworkCore.ChangeTracking.Internal; +using Register_office.Model; +using Register_office.ViewModel; +using System.Data; + +namespace Register_office.View.TypesV +{ + public partial class DrugIntakeMethodForm : Form + { + private TypeViewModel _viewModel; + private DrugIntakeMethod? _selectedType; + private string _columnIdName = "DrugIntakeMethodId"; + public DrugIntakeMethodForm() + { + InitializeComponent(); + TopMost = true; + Text = "Справочник способов приема лекарств"; + _viewModel = new(); + _viewModel.ConfigureSettingsDGV(dgv); + UpdateDgv(); + UpdateElements(); + } + + private void UpdateElements(string name = "", bool enableButtons = false) + { + tbName.Text = name; + btnDelete.Enabled = btnUpdate.Enabled = enableButtons; + } + + private void UpdateDgv() + { + _viewModel.SetDefaultDataSource(dgv); + } + + private void dgv_SelectionChanged(object sender, EventArgs e) + { + if (dgv.SelectedRows.Count != 0 && !dgv.CurrentRow.IsNewRow) + { + DataGridViewRow selectedRow = dgv.SelectedRows[0]; + int id = int.Parse(selectedRow.Cells[_columnIdName].Value.ToString() ?? ""); + _selectedType = _viewModel.General.Context.DrugIntakeMethods.Where(x => x.DrugIntakeMethodId == id).FirstOrDefault(); + if (_selectedType != null) + UpdateElements(_selectedType.Name, true); + } + } + + private void btnUpdate_Click(object sender, EventArgs e) + { + if (_selectedType != null) + { + _selectedType.Name = tbName.Text; + _viewModel.General.Context.SaveChanges(); + UpdateElements(); + UpdateDgv(); + } + } + + private void btnDelete_Click(object sender, EventArgs e) + { + if (_selectedType != null) + { + _viewModel.DeleteType(_selectedType); + UpdateElements(); + UpdateDgv(); + } + } + + private void btnAdd_Click(object sender, EventArgs e) + { + DrugIntakeMethod t = new() + { + Name = tbName.Text + }; + _viewModel.AddType(t); + UpdateElements(); + UpdateDgv(); + } + } +} diff --git a/Register office/Register office/View/TypesV/DrugIntakeMethodForm.resx b/Register office/Register office/View/TypesV/DrugIntakeMethodForm.resx new file mode 100644 index 0000000..93017c2 --- /dev/null +++ b/Register office/Register office/View/TypesV/DrugIntakeMethodForm.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 184, 17 + + + 17, 17 + + \ No newline at end of file diff --git a/Register office/Register office/View/TypesV/DrugTypeForm.Designer.cs b/Register office/Register office/View/TypesV/DrugTypeForm.Designer.cs new file mode 100644 index 0000000..a1a616a --- /dev/null +++ b/Register office/Register office/View/TypesV/DrugTypeForm.Designer.cs @@ -0,0 +1,271 @@ +using Register_office.View; + +namespace Register_office.View.TypesV +{ + partial class DrugTypeForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + components = new System.ComponentModel.Container(); + splitContainer1 = new SplitContainer(); + btnAdd = new Button(); + btnDelete = new Button(); + btnUpdate = new Button(); + label1 = new Label(); + tbNameRu = new TextBox(); + dgv = new DataGridView(); + cmsMedicineProductCost = new ContextMenuStrip(components); + cmsMedicineProduct = new ContextMenuStrip(components); + label2 = new Label(); + tbNameEn = new TextBox(); + label3 = new Label(); + tbNameLa = new TextBox(); + label4 = new Label(); + tbBrand = new TextBox(); + ((System.ComponentModel.ISupportInitialize)splitContainer1).BeginInit(); + splitContainer1.Panel1.SuspendLayout(); + splitContainer1.Panel2.SuspendLayout(); + splitContainer1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)dgv).BeginInit(); + SuspendLayout(); + // + // splitContainer1 + // + splitContainer1.Dock = DockStyle.Fill; + splitContainer1.FixedPanel = FixedPanel.Panel1; + splitContainer1.Location = new Point(0, 0); + splitContainer1.Name = "splitContainer1"; + splitContainer1.Orientation = Orientation.Horizontal; + // + // splitContainer1.Panel1 + // + splitContainer1.Panel1.Controls.Add(label4); + splitContainer1.Panel1.Controls.Add(tbBrand); + splitContainer1.Panel1.Controls.Add(label3); + splitContainer1.Panel1.Controls.Add(tbNameLa); + splitContainer1.Panel1.Controls.Add(label2); + splitContainer1.Panel1.Controls.Add(tbNameEn); + splitContainer1.Panel1.Controls.Add(btnAdd); + splitContainer1.Panel1.Controls.Add(btnDelete); + splitContainer1.Panel1.Controls.Add(btnUpdate); + splitContainer1.Panel1.Controls.Add(label1); + splitContainer1.Panel1.Controls.Add(tbNameRu); + // + // splitContainer1.Panel2 + // + splitContainer1.Panel2.Controls.Add(dgv); + splitContainer1.Size = new Size(800, 647); + splitContainer1.SplitterDistance = 120; + splitContainer1.SplitterWidth = 5; + splitContainer1.TabIndex = 0; + // + // btnAdd + // + btnAdd.Anchor = AnchorStyles.Top | AnchorStyles.Bottom; + btnAdd.AutoSizeMode = AutoSizeMode.GrowAndShrink; + btnAdd.Font = new Font("Segoe UI", 11.25F, FontStyle.Regular, GraphicsUnit.Point, 204); + btnAdd.Location = new Point(458, 84); + btnAdd.Name = "btnAdd"; + btnAdd.Size = new Size(330, 33); + btnAdd.TabIndex = 3; + btnAdd.Text = "Добавить"; + btnAdd.UseVisualStyleBackColor = true; + btnAdd.Click += btnAdd_Click; + // + // btnDelete + // + btnDelete.Anchor = AnchorStyles.Top | AnchorStyles.Bottom; + btnDelete.AutoSizeMode = AutoSizeMode.GrowAndShrink; + btnDelete.Enabled = false; + btnDelete.Font = new Font("Segoe UI", 11.25F, FontStyle.Regular, GraphicsUnit.Point, 204); + btnDelete.Location = new Point(626, 33); + btnDelete.Name = "btnDelete"; + btnDelete.Size = new Size(162, 33); + btnDelete.TabIndex = 4; + btnDelete.Text = "Удалить"; + btnDelete.UseVisualStyleBackColor = true; + btnDelete.Click += btnDelete_Click; + // + // btnUpdate + // + btnUpdate.Anchor = AnchorStyles.Top | AnchorStyles.Bottom; + btnUpdate.AutoSizeMode = AutoSizeMode.GrowAndShrink; + btnUpdate.Font = new Font("Segoe UI", 11.25F, FontStyle.Regular, GraphicsUnit.Point, 204); + btnUpdate.Location = new Point(458, 32); + btnUpdate.Name = "btnUpdate"; + btnUpdate.Size = new Size(162, 33); + btnUpdate.TabIndex = 1; + btnUpdate.Text = "Изменить"; + btnUpdate.UseVisualStyleBackColor = true; + btnUpdate.Click += btnUpdate_Click; + // + // label1 + // + label1.Anchor = AnchorStyles.Top | AnchorStyles.Bottom; + label1.AutoSize = true; + label1.Font = new Font("Segoe UI", 9.75F, FontStyle.Regular, GraphicsUnit.Point, 204); + label1.Location = new Point(12, 10); + label1.Name = "label1"; + label1.Size = new Size(91, 17); + label1.TabIndex = 1; + label1.Text = "Название (ру)"; + // + // tbNameRu + // + tbNameRu.Anchor = AnchorStyles.Top | AnchorStyles.Bottom; + tbNameRu.Font = new Font("Segoe UI", 11.25F, FontStyle.Regular, GraphicsUnit.Point, 204); + tbNameRu.Location = new Point(12, 33); + tbNameRu.Name = "tbNameRu"; + tbNameRu.Size = new Size(208, 27); + tbNameRu.TabIndex = 0; + // + // dgv + // + dgv.AllowUserToAddRows = false; + dgv.AllowUserToDeleteRows = false; + dgv.AllowUserToOrderColumns = true; + dgv.ClipboardCopyMode = DataGridViewClipboardCopyMode.EnableWithoutHeaderText; + dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; + dgv.Dock = DockStyle.Fill; + dgv.Location = new Point(0, 0); + dgv.MultiSelect = false; + dgv.Name = "dgv"; + dgv.ReadOnly = true; + dgv.SelectionMode = DataGridViewSelectionMode.FullRowSelect; + dgv.Size = new Size(800, 522); + dgv.TabIndex = 8; + dgv.SelectionChanged += dgv_SelectionChanged; + // + // cmsMedicineProductCost + // + cmsMedicineProductCost.Font = new Font("Segoe UI", 9.75F, FontStyle.Regular, GraphicsUnit.Point, 204); + cmsMedicineProductCost.Name = "cmsMedicineProductCost"; + cmsMedicineProductCost.Size = new Size(61, 4); + // + // cmsMedicineProduct + // + cmsMedicineProduct.Name = "contextMenuStrip1"; + cmsMedicineProduct.Size = new Size(61, 4); + // + // label2 + // + label2.Anchor = AnchorStyles.Top | AnchorStyles.Bottom; + label2.AutoSize = true; + label2.Font = new Font("Segoe UI", 9.75F, FontStyle.Regular, GraphicsUnit.Point, 204); + label2.Location = new Point(226, 9); + label2.Name = "label2"; + label2.Size = new Size(103, 17); + label2.TabIndex = 6; + label2.Text = "Название (англ)"; + // + // tbNameEn + // + tbNameEn.Anchor = AnchorStyles.Top | AnchorStyles.Bottom; + tbNameEn.Font = new Font("Segoe UI", 11.25F, FontStyle.Regular, GraphicsUnit.Point, 204); + tbNameEn.Location = new Point(226, 32); + tbNameEn.Name = "tbNameEn"; + tbNameEn.Size = new Size(208, 27); + tbNameEn.TabIndex = 5; + // + // label3 + // + label3.Anchor = AnchorStyles.Top | AnchorStyles.Bottom; + label3.AutoSize = true; + label3.Font = new Font("Segoe UI", 9.75F, FontStyle.Regular, GraphicsUnit.Point, 204); + label3.Location = new Point(12, 67); + label3.Name = "label3"; + label3.Size = new Size(96, 17); + label3.TabIndex = 8; + label3.Text = "Название (лат)"; + // + // tbNameLa + // + tbNameLa.Anchor = AnchorStyles.Top | AnchorStyles.Bottom; + tbNameLa.Font = new Font("Segoe UI", 11.25F, FontStyle.Regular, GraphicsUnit.Point, 204); + tbNameLa.Location = new Point(12, 90); + tbNameLa.Name = "tbNameLa"; + tbNameLa.Size = new Size(208, 27); + tbNameLa.TabIndex = 7; + // + // label4 + // + label4.Anchor = AnchorStyles.Top | AnchorStyles.Bottom; + label4.AutoSize = true; + label4.Font = new Font("Segoe UI", 9.75F, FontStyle.Regular, GraphicsUnit.Point, 204); + label4.Location = new Point(226, 67); + label4.Name = "label4"; + label4.Size = new Size(43, 17); + label4.TabIndex = 10; + label4.Text = "Брэнд"; + // + // tbBrand + // + tbBrand.Anchor = AnchorStyles.Top | AnchorStyles.Bottom; + tbBrand.Font = new Font("Segoe UI", 11.25F, FontStyle.Regular, GraphicsUnit.Point, 204); + tbBrand.Location = new Point(226, 90); + tbBrand.Name = "tbBrand"; + tbBrand.Size = new Size(208, 27); + tbBrand.TabIndex = 9; + // + // DrugTypeForm + // + AutoScaleDimensions = new SizeF(7F, 17F); + AutoScaleMode = AutoScaleMode.Font; + ClientSize = new Size(800, 647); + Controls.Add(splitContainer1); + Font = new Font("Segoe UI", 9.75F, FontStyle.Regular, GraphicsUnit.Point, 204); + FormBorderStyle = FormBorderStyle.FixedSingle; + Name = "DrugTypeForm"; + Text = "Лекарственные препараты"; + splitContainer1.Panel1.ResumeLayout(false); + splitContainer1.Panel1.PerformLayout(); + splitContainer1.Panel2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)splitContainer1).EndInit(); + splitContainer1.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)dgv).EndInit(); + ResumeLayout(false); + } + + #endregion + + private SplitContainer splitContainer1; + private DataGridView dgv; + private TextBox tbNameRu; + private Label label1; + private Button btnUpdate; + private Button btnDelete; + private Button btnAdd; + private ContextMenuStrip cmsMedicineProduct; + private ContextMenuStrip cmsMedicineProductCost; + private Label label4; + private TextBox tbBrand; + private Label label3; + private TextBox tbNameLa; + private Label label2; + private TextBox tbNameEn; + } +} \ No newline at end of file diff --git a/Register office/Register office/View/TypesV/DrugTypeForm.cs b/Register office/Register office/View/TypesV/DrugTypeForm.cs new file mode 100644 index 0000000..200539f --- /dev/null +++ b/Register office/Register office/View/TypesV/DrugTypeForm.cs @@ -0,0 +1,93 @@ +using Microsoft.EntityFrameworkCore.ChangeTracking.Internal; +using Register_office.Model; +using Register_office.ViewModel; +using System.Data; + +namespace Register_office.View.TypesV +{ + public partial class DrugTypeForm : Form + { + private TypeViewModel _viewModel; + private DrugType? _selectedType; + private string _columnIdName = "DrugTypeId"; + private DrugType _temp; + + public DrugTypeForm() + { + InitializeComponent(); + TopMost = true; + Text = "Справочник лекарств"; + _viewModel = new(); + _viewModel.ConfigureSettingsDGV(dgv); + UpdateDgv(); + UpdateElements(); + } + + private void UpdateElements(string nameRu = "", string? nameEn = "", + string? nameLa = "", string? brand = "", bool enableButtons = false) + { + tbNameRu.Text = nameRu; + tbNameEn.Text = nameEn; + tbNameLa.Text = nameLa; + tbBrand.Text = brand; + btnDelete.Enabled = btnUpdate.Enabled = enableButtons; + } + + private void UpdateDgv() + { + _viewModel.SetDefaultDataSource(dgv); + } + + private void dgv_SelectionChanged(object sender, EventArgs e) + { + if (dgv.SelectedRows.Count != 0 && !dgv.CurrentRow.IsNewRow) + { + DataGridViewRow selectedRow = dgv.SelectedRows[0]; + int id = int.Parse(selectedRow.Cells[_columnIdName].Value.ToString() ?? ""); + _selectedType = _viewModel.General.Context.DrugTypes.Where(x => x.DrugTypeId == id).FirstOrDefault(); + if (_selectedType != null) + UpdateElements(_selectedType.InternationalNameRu, + _selectedType.InternationalNameEn, _selectedType.InternationalNameLa, + _selectedType.BrandNameRu, true); + } + } + + private void btnUpdate_Click(object sender, EventArgs e) + { + if (_selectedType != null) + { + _selectedType.InternationalNameRu = tbNameRu.Text; + _selectedType.InternationalNameEn = tbNameEn.Text.Trim() == "" ? null : tbNameEn.Text; + _selectedType.InternationalNameLa = tbNameLa.Text.Trim() == "" ? null : tbNameLa.Text; + _selectedType.BrandNameRu = tbBrand.Text.Trim() == "" ? null : tbBrand.Text; + _viewModel.General.Context.SaveChanges(); + UpdateElements(); + UpdateDgv(); + } + } + + private void btnDelete_Click(object sender, EventArgs e) + { + if (_selectedType != null) + { + _viewModel.DeleteType(_selectedType); + UpdateElements(); + UpdateDgv(); + } + } + + private void btnAdd_Click(object sender, EventArgs e) + { + _temp = new() + { + InternationalNameRu = tbNameRu.Text, + InternationalNameEn = tbNameEn.Text.Trim() == "" ? null : tbNameEn.Text, + InternationalNameLa = tbNameLa.Text.Trim() == "" ? null : tbNameLa.Text, + BrandNameRu = tbBrand.Text.Trim() == "" ? null : tbBrand.Text + }; + _viewModel.AddType(_temp); + UpdateElements(); + UpdateDgv(); + } + } +} diff --git a/Register office/Register office/View/TypesV/DrugTypeForm.resx b/Register office/Register office/View/TypesV/DrugTypeForm.resx new file mode 100644 index 0000000..93017c2 --- /dev/null +++ b/Register office/Register office/View/TypesV/DrugTypeForm.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 184, 17 + + + 17, 17 + + \ No newline at end of file diff --git a/Register office/Register office/View/TypesV/ExaminationTypeForm.Designer.cs b/Register office/Register office/View/TypesV/ExaminationTypeForm.Designer.cs new file mode 100644 index 0000000..558afd6 --- /dev/null +++ b/Register office/Register office/View/TypesV/ExaminationTypeForm.Designer.cs @@ -0,0 +1,220 @@ +using Register_office.View; + +namespace Register_office.View.TypesV +{ + partial class ExaminationTypeForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + components = new System.ComponentModel.Container(); + splitContainer1 = new SplitContainer(); + label2 = new Label(); + cbCategory = new ComboBox(); + btnAdd = new Button(); + btnDelete = new Button(); + btnUpdate = new Button(); + label1 = new Label(); + tbName = new TextBox(); + dgv = new DataGridView(); + cmsMedicineProductCost = new ContextMenuStrip(components); + cmsMedicineProduct = new ContextMenuStrip(components); + ((System.ComponentModel.ISupportInitialize)splitContainer1).BeginInit(); + splitContainer1.Panel1.SuspendLayout(); + splitContainer1.Panel2.SuspendLayout(); + splitContainer1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)dgv).BeginInit(); + SuspendLayout(); + // + // splitContainer1 + // + splitContainer1.Dock = DockStyle.Fill; + splitContainer1.FixedPanel = FixedPanel.Panel1; + splitContainer1.Location = new Point(0, 0); + splitContainer1.Name = "splitContainer1"; + splitContainer1.Orientation = Orientation.Horizontal; + // + // splitContainer1.Panel1 + // + splitContainer1.Panel1.Controls.Add(label2); + splitContainer1.Panel1.Controls.Add(cbCategory); + splitContainer1.Panel1.Controls.Add(btnAdd); + splitContainer1.Panel1.Controls.Add(btnDelete); + splitContainer1.Panel1.Controls.Add(btnUpdate); + splitContainer1.Panel1.Controls.Add(label1); + splitContainer1.Panel1.Controls.Add(tbName); + // + // splitContainer1.Panel2 + // + splitContainer1.Panel2.Controls.Add(dgv); + splitContainer1.Size = new Size(800, 647); + splitContainer1.SplitterDistance = 120; + splitContainer1.SplitterWidth = 5; + splitContainer1.TabIndex = 0; + // + // label2 + // + label2.Anchor = AnchorStyles.Top | AnchorStyles.Bottom; + label2.AutoSize = true; + label2.Font = new Font("Segoe UI", 9.75F, FontStyle.Regular, GraphicsUnit.Point, 204); + label2.Location = new Point(260, 13); + label2.Name = "label2"; + label2.Size = new Size(70, 17); + label2.TabIndex = 6; + label2.Text = "Категория"; + // + // cbCategory + // + cbCategory.DropDownStyle = ComboBoxStyle.DropDownList; + cbCategory.FormattingEnabled = true; + cbCategory.Items.AddRange(new object[] { "Физикальное", "Лабораторное", "Инструментальное" }); + cbCategory.Location = new Point(260, 34); + cbCategory.Name = "cbCategory"; + cbCategory.Size = new Size(192, 25); + cbCategory.TabIndex = 5; + // + // btnAdd + // + btnAdd.Anchor = AnchorStyles.Top | AnchorStyles.Bottom; + btnAdd.AutoSizeMode = AutoSizeMode.GrowAndShrink; + btnAdd.Font = new Font("Segoe UI", 11.25F, FontStyle.Regular, GraphicsUnit.Point, 204); + btnAdd.Location = new Point(458, 72); + btnAdd.Name = "btnAdd"; + btnAdd.Size = new Size(330, 33); + btnAdd.TabIndex = 3; + btnAdd.Text = "Добавить"; + btnAdd.UseVisualStyleBackColor = true; + btnAdd.Click += btnAdd_Click; + // + // btnDelete + // + btnDelete.Anchor = AnchorStyles.Top | AnchorStyles.Bottom; + btnDelete.AutoSizeMode = AutoSizeMode.GrowAndShrink; + btnDelete.Enabled = false; + btnDelete.Font = new Font("Segoe UI", 11.25F, FontStyle.Regular, GraphicsUnit.Point, 204); + btnDelete.Location = new Point(626, 33); + btnDelete.Name = "btnDelete"; + btnDelete.Size = new Size(162, 33); + btnDelete.TabIndex = 4; + btnDelete.Text = "Удалить"; + btnDelete.UseVisualStyleBackColor = true; + btnDelete.Click += btnDelete_Click; + // + // btnUpdate + // + btnUpdate.Anchor = AnchorStyles.Top | AnchorStyles.Bottom; + btnUpdate.AutoSizeMode = AutoSizeMode.GrowAndShrink; + btnUpdate.Font = new Font("Segoe UI", 11.25F, FontStyle.Regular, GraphicsUnit.Point, 204); + btnUpdate.Location = new Point(458, 32); + btnUpdate.Name = "btnUpdate"; + btnUpdate.Size = new Size(162, 33); + btnUpdate.TabIndex = 1; + btnUpdate.Text = "Изменить"; + btnUpdate.UseVisualStyleBackColor = true; + btnUpdate.Click += btnUpdate_Click; + // + // label1 + // + label1.Anchor = AnchorStyles.Top | AnchorStyles.Bottom; + label1.AutoSize = true; + label1.Font = new Font("Segoe UI", 9.75F, FontStyle.Regular, GraphicsUnit.Point, 204); + label1.Location = new Point(12, 10); + label1.Name = "label1"; + label1.Size = new Size(65, 17); + label1.TabIndex = 1; + label1.Text = "Название"; + // + // tbName + // + tbName.Anchor = AnchorStyles.Top | AnchorStyles.Bottom; + tbName.Font = new Font("Segoe UI", 11.25F, FontStyle.Regular, GraphicsUnit.Point, 204); + tbName.Location = new Point(12, 33); + tbName.Name = "tbName"; + tbName.Size = new Size(242, 27); + tbName.TabIndex = 0; + // + // dgv + // + dgv.AllowUserToAddRows = false; + dgv.AllowUserToDeleteRows = false; + dgv.AllowUserToOrderColumns = true; + dgv.ClipboardCopyMode = DataGridViewClipboardCopyMode.EnableWithoutHeaderText; + dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; + dgv.Dock = DockStyle.Fill; + dgv.Location = new Point(0, 0); + dgv.MultiSelect = false; + dgv.Name = "dgv"; + dgv.ReadOnly = true; + dgv.SelectionMode = DataGridViewSelectionMode.FullRowSelect; + dgv.Size = new Size(800, 522); + dgv.TabIndex = 8; + dgv.SelectionChanged += dgv_SelectionChanged; + // + // cmsMedicineProductCost + // + cmsMedicineProductCost.Font = new Font("Segoe UI", 9.75F, FontStyle.Regular, GraphicsUnit.Point, 204); + cmsMedicineProductCost.Name = "cmsMedicineProductCost"; + cmsMedicineProductCost.Size = new Size(61, 4); + // + // cmsMedicineProduct + // + cmsMedicineProduct.Name = "contextMenuStrip1"; + cmsMedicineProduct.Size = new Size(61, 4); + // + // ExaminationTypeForm + // + AutoScaleDimensions = new SizeF(7F, 17F); + AutoScaleMode = AutoScaleMode.Font; + ClientSize = new Size(800, 647); + Controls.Add(splitContainer1); + Font = new Font("Segoe UI", 9.75F, FontStyle.Regular, GraphicsUnit.Point, 204); + FormBorderStyle = FormBorderStyle.FixedSingle; + Name = "ExaminationTypeForm"; + Text = "Лекарственные препараты"; + splitContainer1.Panel1.ResumeLayout(false); + splitContainer1.Panel1.PerformLayout(); + splitContainer1.Panel2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)splitContainer1).EndInit(); + splitContainer1.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)dgv).EndInit(); + ResumeLayout(false); + } + + #endregion + + private SplitContainer splitContainer1; + private DataGridView dgv; + private TextBox tbName; + private Label label1; + private Button btnUpdate; + private Button btnDelete; + private Button btnAdd; + private ContextMenuStrip cmsMedicineProduct; + private ContextMenuStrip cmsMedicineProductCost; + private Label label2; + private ComboBox cbCategory; + } +} \ No newline at end of file diff --git a/Register office/Register office/View/TypesV/ExaminationTypeForm.cs b/Register office/Register office/View/TypesV/ExaminationTypeForm.cs new file mode 100644 index 0000000..f730baa --- /dev/null +++ b/Register office/Register office/View/TypesV/ExaminationTypeForm.cs @@ -0,0 +1,84 @@ +using Microsoft.EntityFrameworkCore.ChangeTracking.Internal; +using Register_office.Model; +using Register_office.ViewModel; +using System.Data; + +namespace Register_office.View.TypesV +{ + public partial class ExaminationTypeForm : Form + { + private TypeViewModel _viewModel; + private ExaminationType? _selectedType; + private string _columnIdName = "ExaminationTypeId"; + private ExaminationType _temp; + + public ExaminationTypeForm() + { + InitializeComponent(); + TopMost = true; + Text = "Справочник обследований"; + _viewModel = new(); + _viewModel.ConfigureSettingsDGV(dgv); + UpdateDgv(); + UpdateElements(); + } + + private void UpdateElements(string txt1 = "", string txt2 = "", bool enableButtons = false) + { + tbName.Text = txt1; + cbCategory.Text = txt2; + btnDelete.Enabled = btnUpdate.Enabled = enableButtons; + } + + private void UpdateDgv() + { + _viewModel.SetDefaultDataSource(dgv); + } + + private void dgv_SelectionChanged(object sender, EventArgs e) + { + if (dgv.SelectedRows.Count != 0 && !dgv.CurrentRow.IsNewRow) + { + DataGridViewRow selectedRow = dgv.SelectedRows[0]; + int id = int.Parse(selectedRow.Cells[_columnIdName].Value.ToString() ?? ""); + _selectedType = _viewModel.General.Context.ExaminationTypes.Where(x => x.ExaminationTypeId == id).FirstOrDefault(); + if (_selectedType != null) + UpdateElements(_selectedType.Name, _selectedType.Category, true); + } + } + + private void btnUpdate_Click(object sender, EventArgs e) + { + if (_selectedType != null) + { + _selectedType.Name = tbName.Text; + _selectedType.Category = cbCategory.Text; + _viewModel.General.Context.SaveChanges(); + UpdateElements(); + UpdateDgv(); + } + } + + private void btnDelete_Click(object sender, EventArgs e) + { + if (_selectedType != null) + { + _viewModel.DeleteType(_selectedType); + UpdateElements(); + UpdateDgv(); + } + } + + private void btnAdd_Click(object sender, EventArgs e) + { + _temp = new() + { + Name = tbName.Text, + Category = cbCategory.Text + }; + _viewModel.AddType(_temp); + UpdateElements(); + UpdateDgv(); + } + } +} diff --git a/Register office/Register office/View/TypesV/ExaminationTypeForm.resx b/Register office/Register office/View/TypesV/ExaminationTypeForm.resx new file mode 100644 index 0000000..93017c2 --- /dev/null +++ b/Register office/Register office/View/TypesV/ExaminationTypeForm.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 184, 17 + + + 17, 17 + + \ No newline at end of file diff --git a/Register office/Register office/View/TypesV/ProcedureTypeForm.Designer.cs b/Register office/Register office/View/TypesV/ProcedureTypeForm.Designer.cs new file mode 100644 index 0000000..d5941bf --- /dev/null +++ b/Register office/Register office/View/TypesV/ProcedureTypeForm.Designer.cs @@ -0,0 +1,193 @@ +using Register_office.View; + +namespace Register_office.View.TypesV +{ + partial class ProcedureTypeForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + components = new System.ComponentModel.Container(); + splitContainer1 = new SplitContainer(); + btnAdd = new Button(); + btnDelete = new Button(); + btnUpdate = new Button(); + label1 = new Label(); + tbName = new TextBox(); + dgv = new DataGridView(); + cmsMedicineProductCost = new ContextMenuStrip(components); + cmsMedicineProduct = new ContextMenuStrip(components); + ((System.ComponentModel.ISupportInitialize)splitContainer1).BeginInit(); + splitContainer1.Panel1.SuspendLayout(); + splitContainer1.Panel2.SuspendLayout(); + splitContainer1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)dgv).BeginInit(); + SuspendLayout(); + // + // splitContainer1 + // + splitContainer1.Dock = DockStyle.Fill; + splitContainer1.FixedPanel = FixedPanel.Panel1; + splitContainer1.Location = new Point(0, 0); + splitContainer1.Name = "splitContainer1"; + splitContainer1.Orientation = Orientation.Horizontal; + // + // splitContainer1.Panel1 + // + splitContainer1.Panel1.Controls.Add(btnAdd); + splitContainer1.Panel1.Controls.Add(btnDelete); + splitContainer1.Panel1.Controls.Add(btnUpdate); + splitContainer1.Panel1.Controls.Add(label1); + splitContainer1.Panel1.Controls.Add(tbName); + // + // splitContainer1.Panel2 + // + splitContainer1.Panel2.Controls.Add(dgv); + splitContainer1.Size = new Size(800, 647); + splitContainer1.SplitterDistance = 120; + splitContainer1.SplitterWidth = 5; + splitContainer1.TabIndex = 0; + // + // btnAdd + // + btnAdd.Anchor = AnchorStyles.Top | AnchorStyles.Bottom; + btnAdd.AutoSizeMode = AutoSizeMode.GrowAndShrink; + btnAdd.Font = new Font("Segoe UI", 11.25F, FontStyle.Regular, GraphicsUnit.Point, 204); + btnAdd.Location = new Point(458, 72); + btnAdd.Name = "btnAdd"; + btnAdd.Size = new Size(330, 33); + btnAdd.TabIndex = 3; + btnAdd.Text = "Добавить"; + btnAdd.UseVisualStyleBackColor = true; + btnAdd.Click += btnAdd_Click; + // + // btnDelete + // + btnDelete.Anchor = AnchorStyles.Top | AnchorStyles.Bottom; + btnDelete.AutoSizeMode = AutoSizeMode.GrowAndShrink; + btnDelete.Enabled = false; + btnDelete.Font = new Font("Segoe UI", 11.25F, FontStyle.Regular, GraphicsUnit.Point, 204); + btnDelete.Location = new Point(626, 33); + btnDelete.Name = "btnDelete"; + btnDelete.Size = new Size(162, 33); + btnDelete.TabIndex = 4; + btnDelete.Text = "Удалить"; + btnDelete.UseVisualStyleBackColor = true; + btnDelete.Click += btnDelete_Click; + // + // btnUpdate + // + btnUpdate.Anchor = AnchorStyles.Top | AnchorStyles.Bottom; + btnUpdate.AutoSizeMode = AutoSizeMode.GrowAndShrink; + btnUpdate.Font = new Font("Segoe UI", 11.25F, FontStyle.Regular, GraphicsUnit.Point, 204); + btnUpdate.Location = new Point(458, 32); + btnUpdate.Name = "btnUpdate"; + btnUpdate.Size = new Size(162, 33); + btnUpdate.TabIndex = 1; + btnUpdate.Text = "Изменить"; + btnUpdate.UseVisualStyleBackColor = true; + btnUpdate.Click += btnUpdate_Click; + // + // label1 + // + label1.Anchor = AnchorStyles.Top | AnchorStyles.Bottom; + label1.AutoSize = true; + label1.Font = new Font("Segoe UI", 9.75F, FontStyle.Regular, GraphicsUnit.Point, 204); + label1.Location = new Point(12, 10); + label1.Name = "label1"; + label1.Size = new Size(65, 17); + label1.TabIndex = 1; + label1.Text = "Название"; + // + // tbName + // + tbName.Anchor = AnchorStyles.Top | AnchorStyles.Bottom; + tbName.Font = new Font("Segoe UI", 11.25F, FontStyle.Regular, GraphicsUnit.Point, 204); + tbName.Location = new Point(12, 33); + tbName.Name = "tbName"; + tbName.Size = new Size(242, 27); + tbName.TabIndex = 0; + // + // dgv + // + dgv.AllowUserToAddRows = false; + dgv.AllowUserToDeleteRows = false; + dgv.AllowUserToOrderColumns = true; + dgv.ClipboardCopyMode = DataGridViewClipboardCopyMode.EnableWithoutHeaderText; + dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; + dgv.Dock = DockStyle.Fill; + dgv.Location = new Point(0, 0); + dgv.MultiSelect = false; + dgv.Name = "dgv"; + dgv.ReadOnly = true; + dgv.SelectionMode = DataGridViewSelectionMode.FullRowSelect; + dgv.Size = new Size(800, 522); + dgv.TabIndex = 8; + dgv.SelectionChanged += dgv_SelectionChanged; + // + // cmsMedicineProductCost + // + cmsMedicineProductCost.Font = new Font("Segoe UI", 9.75F, FontStyle.Regular, GraphicsUnit.Point, 204); + cmsMedicineProductCost.Name = "cmsMedicineProductCost"; + cmsMedicineProductCost.Size = new Size(61, 4); + // + // cmsMedicineProduct + // + cmsMedicineProduct.Name = "contextMenuStrip1"; + cmsMedicineProduct.Size = new Size(61, 4); + // + // DrugIntakeMethodForm + // + AutoScaleDimensions = new SizeF(7F, 17F); + AutoScaleMode = AutoScaleMode.Font; + ClientSize = new Size(800, 647); + Controls.Add(splitContainer1); + Font = new Font("Segoe UI", 9.75F, FontStyle.Regular, GraphicsUnit.Point, 204); + FormBorderStyle = FormBorderStyle.FixedSingle; + Name = "DrugIntakeMethodForm"; + Text = "Лекарственные препараты"; + splitContainer1.Panel1.ResumeLayout(false); + splitContainer1.Panel1.PerformLayout(); + splitContainer1.Panel2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)splitContainer1).EndInit(); + splitContainer1.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)dgv).EndInit(); + ResumeLayout(false); + } + + #endregion + + private SplitContainer splitContainer1; + private DataGridView dgv; + private TextBox tbName; + private Label label1; + private Button btnUpdate; + private Button btnDelete; + private Button btnAdd; + private ContextMenuStrip cmsMedicineProduct; + private ContextMenuStrip cmsMedicineProductCost; + } +} \ No newline at end of file diff --git a/Register office/Register office/View/TypesV/ProcedureTypeForm.cs b/Register office/Register office/View/TypesV/ProcedureTypeForm.cs new file mode 100644 index 0000000..1dced2b --- /dev/null +++ b/Register office/Register office/View/TypesV/ProcedureTypeForm.cs @@ -0,0 +1,81 @@ +using Microsoft.EntityFrameworkCore.ChangeTracking.Internal; +using Register_office.Model; +using Register_office.ViewModel; +using System.Data; + +namespace Register_office.View.TypesV +{ + public partial class ProcedureTypeForm : Form + { + private TypeViewModel _viewModel; + private ProcedureType? _selectedType; + private string _columnIdName = "ProcedureTypeId"; + private ProcedureType _temp; + + public ProcedureTypeForm() + { + InitializeComponent(); + TopMost = true; + Text = "Справочник процедур"; + _viewModel = new(); + _viewModel.ConfigureSettingsDGV(dgv); + UpdateDgv(); + UpdateElements(); + } + + private void UpdateElements(string name = "", bool enableButtons = false) + { + tbName.Text = name; + btnDelete.Enabled = btnUpdate.Enabled = enableButtons; + } + + private void UpdateDgv() + { + _viewModel.SetDefaultDataSource(dgv); + } + + private void dgv_SelectionChanged(object sender, EventArgs e) + { + if (dgv.SelectedRows.Count != 0 && !dgv.CurrentRow.IsNewRow) + { + DataGridViewRow selectedRow = dgv.SelectedRows[0]; + int id = int.Parse(selectedRow.Cells[_columnIdName].Value.ToString() ?? ""); + _selectedType = _viewModel.General.Context.ProcedureTypes.Where(x => x.ProcedureTypeId == id).FirstOrDefault(); + if (_selectedType != null) + UpdateElements(_selectedType.Name, true); + } + } + + private void btnUpdate_Click(object sender, EventArgs e) + { + if (_selectedType != null) + { + _selectedType.Name = tbName.Text; + _viewModel.General.Context.SaveChanges(); + UpdateElements(); + UpdateDgv(); + } + } + + private void btnDelete_Click(object sender, EventArgs e) + { + if (_selectedType != null) + { + _viewModel.DeleteType(_selectedType); + UpdateElements(); + UpdateDgv(); + } + } + + private void btnAdd_Click(object sender, EventArgs e) + { + _temp = new() + { + Name = tbName.Text + }; + _viewModel.AddType(_temp); + UpdateElements(); + UpdateDgv(); + } + } +} diff --git a/Register office/Register office/View/TypesV/ProcedureTypeForm.resx b/Register office/Register office/View/TypesV/ProcedureTypeForm.resx new file mode 100644 index 0000000..93017c2 --- /dev/null +++ b/Register office/Register office/View/TypesV/ProcedureTypeForm.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 184, 17 + + + 17, 17 + + \ No newline at end of file diff --git a/Register office/Register office/View/TypesV/ReferenceValueForm.Designer.cs b/Register office/Register office/View/TypesV/ReferenceValueForm.Designer.cs new file mode 100644 index 0000000..3f2dde3 --- /dev/null +++ b/Register office/Register office/View/TypesV/ReferenceValueForm.Designer.cs @@ -0,0 +1,291 @@ +using Register_office.View; + +namespace Register_office.View.TypesV +{ + partial class ReferenceValueForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + components = new System.ComponentModel.Container(); + splitContainer1 = new SplitContainer(); + btnOpen = new Button(); + label5 = new Label(); + label4 = new Label(); + nudAgeMax = new NumericUpDown(); + nudAgeMin = new NumericUpDown(); + label3 = new Label(); + cbGender = new ComboBox(); + label2 = new Label(); + cbExamination = new ComboBox(); + btnAdd = new Button(); + btnDelete = new Button(); + btnUpdate = new Button(); + dgv = new DataGridView(); + cmsMedicineProductCost = new ContextMenuStrip(components); + cmsMedicineProduct = new ContextMenuStrip(components); + ((System.ComponentModel.ISupportInitialize)splitContainer1).BeginInit(); + splitContainer1.Panel1.SuspendLayout(); + splitContainer1.Panel2.SuspendLayout(); + splitContainer1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)nudAgeMax).BeginInit(); + ((System.ComponentModel.ISupportInitialize)nudAgeMin).BeginInit(); + ((System.ComponentModel.ISupportInitialize)dgv).BeginInit(); + SuspendLayout(); + // + // splitContainer1 + // + splitContainer1.Dock = DockStyle.Fill; + splitContainer1.FixedPanel = FixedPanel.Panel1; + splitContainer1.Location = new Point(0, 0); + splitContainer1.Name = "splitContainer1"; + splitContainer1.Orientation = Orientation.Horizontal; + // + // splitContainer1.Panel1 + // + splitContainer1.Panel1.Controls.Add(btnOpen); + splitContainer1.Panel1.Controls.Add(label5); + splitContainer1.Panel1.Controls.Add(label4); + splitContainer1.Panel1.Controls.Add(nudAgeMax); + splitContainer1.Panel1.Controls.Add(nudAgeMin); + splitContainer1.Panel1.Controls.Add(label3); + splitContainer1.Panel1.Controls.Add(cbGender); + splitContainer1.Panel1.Controls.Add(label2); + splitContainer1.Panel1.Controls.Add(cbExamination); + splitContainer1.Panel1.Controls.Add(btnAdd); + splitContainer1.Panel1.Controls.Add(btnDelete); + splitContainer1.Panel1.Controls.Add(btnUpdate); + // + // splitContainer1.Panel2 + // + splitContainer1.Panel2.Controls.Add(dgv); + splitContainer1.Size = new Size(800, 647); + splitContainer1.SplitterDistance = 120; + splitContainer1.SplitterWidth = 5; + splitContainer1.TabIndex = 0; + // + // btnOpen + // + btnOpen.Anchor = AnchorStyles.Top | AnchorStyles.Bottom; + btnOpen.AutoSizeMode = AutoSizeMode.GrowAndShrink; + btnOpen.Font = new Font("Segoe UI", 11.25F, FontStyle.Regular, GraphicsUnit.Point, 204); + btnOpen.Location = new Point(260, 78); + btnOpen.Name = "btnOpen"; + btnOpen.Size = new Size(192, 33); + btnOpen.TabIndex = 15; + btnOpen.Text = "Открыть подробности"; + btnOpen.UseVisualStyleBackColor = true; + btnOpen.Click += btnOpen_Click; + // + // label5 + // + label5.Anchor = AnchorStyles.Top | AnchorStyles.Bottom; + label5.AutoSize = true; + label5.Font = new Font("Segoe UI", 9.75F, FontStyle.Regular, GraphicsUnit.Point, 204); + label5.Location = new Point(142, 63); + label5.Name = "label5"; + label5.Size = new Size(93, 17); + label5.TabIndex = 14; + label5.Text = "Макс. возраст"; + // + // label4 + // + label4.Anchor = AnchorStyles.Top | AnchorStyles.Bottom; + label4.AutoSize = true; + label4.Font = new Font("Segoe UI", 9.75F, FontStyle.Regular, GraphicsUnit.Point, 204); + label4.Location = new Point(21, 63); + label4.Name = "label4"; + label4.Size = new Size(88, 17); + label4.TabIndex = 13; + label4.Text = "Мин. возраст"; + // + // nudAgeMax + // + nudAgeMax.Location = new Point(142, 83); + nudAgeMax.Minimum = new decimal(new int[] { 1, 0, 0, int.MinValue }); + nudAgeMax.Name = "nudAgeMax"; + nudAgeMax.Size = new Size(96, 25); + nudAgeMax.TabIndex = 12; + // + // nudAgeMin + // + nudAgeMin.Location = new Point(21, 83); + nudAgeMin.Minimum = new decimal(new int[] { 1, 0, 0, int.MinValue }); + nudAgeMin.Name = "nudAgeMin"; + nudAgeMin.Size = new Size(96, 25); + nudAgeMin.TabIndex = 11; + // + // label3 + // + label3.Anchor = AnchorStyles.Top | AnchorStyles.Bottom; + label3.AutoSize = true; + label3.Font = new Font("Segoe UI", 9.75F, FontStyle.Regular, GraphicsUnit.Point, 204); + label3.Location = new Point(260, 14); + label3.Name = "label3"; + label3.Size = new Size(32, 17); + label3.TabIndex = 10; + label3.Text = "Пол"; + // + // cbGender + // + cbGender.DropDownStyle = ComboBoxStyle.DropDownList; + cbGender.FormattingEnabled = true; + cbGender.Items.AddRange(new object[] { "Физикальное", "Лабораторное", "Инструментальное" }); + cbGender.Location = new Point(260, 35); + cbGender.Name = "cbGender"; + cbGender.Size = new Size(192, 25); + cbGender.TabIndex = 9; + // + // label2 + // + label2.Anchor = AnchorStyles.Top | AnchorStyles.Bottom; + label2.AutoSize = true; + label2.Font = new Font("Segoe UI", 9.75F, FontStyle.Regular, GraphicsUnit.Point, 204); + label2.Location = new Point(21, 14); + label2.Name = "label2"; + label2.Size = new Size(96, 17); + label2.TabIndex = 8; + label2.Text = "Обследование"; + // + // cbExamination + // + cbExamination.DropDownStyle = ComboBoxStyle.DropDownList; + cbExamination.FormattingEnabled = true; + cbExamination.Items.AddRange(new object[] { "Физикальное", "Лабораторное", "Инструментальное" }); + cbExamination.Location = new Point(21, 35); + cbExamination.Name = "cbExamination"; + cbExamination.Size = new Size(214, 25); + cbExamination.TabIndex = 7; + // + // btnAdd + // + btnAdd.Anchor = AnchorStyles.Top | AnchorStyles.Bottom; + btnAdd.AutoSizeMode = AutoSizeMode.GrowAndShrink; + btnAdd.Font = new Font("Segoe UI", 11.25F, FontStyle.Regular, GraphicsUnit.Point, 204); + btnAdd.Location = new Point(458, 78); + btnAdd.Name = "btnAdd"; + btnAdd.Size = new Size(330, 33); + btnAdd.TabIndex = 3; + btnAdd.Text = "Добавить"; + btnAdd.UseVisualStyleBackColor = true; + btnAdd.Click += btnAdd_Click; + // + // btnDelete + // + btnDelete.Anchor = AnchorStyles.Top | AnchorStyles.Bottom; + btnDelete.AutoSizeMode = AutoSizeMode.GrowAndShrink; + btnDelete.Enabled = false; + btnDelete.Font = new Font("Segoe UI", 11.25F, FontStyle.Regular, GraphicsUnit.Point, 204); + btnDelete.Location = new Point(626, 33); + btnDelete.Name = "btnDelete"; + btnDelete.Size = new Size(162, 33); + btnDelete.TabIndex = 4; + btnDelete.Text = "Удалить"; + btnDelete.UseVisualStyleBackColor = true; + btnDelete.Click += btnDelete_Click; + // + // btnUpdate + // + btnUpdate.Anchor = AnchorStyles.Top | AnchorStyles.Bottom; + btnUpdate.AutoSizeMode = AutoSizeMode.GrowAndShrink; + btnUpdate.Font = new Font("Segoe UI", 11.25F, FontStyle.Regular, GraphicsUnit.Point, 204); + btnUpdate.Location = new Point(458, 33); + btnUpdate.Name = "btnUpdate"; + btnUpdate.Size = new Size(162, 33); + btnUpdate.TabIndex = 1; + btnUpdate.Text = "Изменить"; + btnUpdate.UseVisualStyleBackColor = true; + btnUpdate.Click += btnUpdate_Click; + // + // dgv + // + dgv.AllowUserToAddRows = false; + dgv.AllowUserToDeleteRows = false; + dgv.AllowUserToOrderColumns = true; + dgv.ClipboardCopyMode = DataGridViewClipboardCopyMode.EnableWithoutHeaderText; + dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; + dgv.Dock = DockStyle.Fill; + dgv.Location = new Point(0, 0); + dgv.MultiSelect = false; + dgv.Name = "dgv"; + dgv.ReadOnly = true; + dgv.SelectionMode = DataGridViewSelectionMode.FullRowSelect; + dgv.Size = new Size(800, 522); + dgv.TabIndex = 8; + dgv.SelectionChanged += dgv_SelectionChanged; + // + // cmsMedicineProductCost + // + cmsMedicineProductCost.Font = new Font("Segoe UI", 9.75F, FontStyle.Regular, GraphicsUnit.Point, 204); + cmsMedicineProductCost.Name = "cmsMedicineProductCost"; + cmsMedicineProductCost.Size = new Size(61, 4); + // + // cmsMedicineProduct + // + cmsMedicineProduct.Name = "contextMenuStrip1"; + cmsMedicineProduct.Size = new Size(61, 4); + // + // ReferenceValueForm + // + AutoScaleDimensions = new SizeF(7F, 17F); + AutoScaleMode = AutoScaleMode.Font; + ClientSize = new Size(800, 647); + Controls.Add(splitContainer1); + Font = new Font("Segoe UI", 9.75F, FontStyle.Regular, GraphicsUnit.Point, 204); + FormBorderStyle = FormBorderStyle.FixedSingle; + Name = "ReferenceValueForm"; + Text = "Лекарственные препараты"; + splitContainer1.Panel1.ResumeLayout(false); + splitContainer1.Panel1.PerformLayout(); + splitContainer1.Panel2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)splitContainer1).EndInit(); + splitContainer1.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)nudAgeMax).EndInit(); + ((System.ComponentModel.ISupportInitialize)nudAgeMin).EndInit(); + ((System.ComponentModel.ISupportInitialize)dgv).EndInit(); + ResumeLayout(false); + } + + #endregion + + private SplitContainer splitContainer1; + private DataGridView dgv; + private Button btnUpdate; + private Button btnDelete; + private Button btnAdd; + private ContextMenuStrip cmsMedicineProduct; + private ContextMenuStrip cmsMedicineProductCost; + private Label label2; + private ComboBox cbExamination; + private Label label3; + private ComboBox cbGender; + private Label label5; + private Label label4; + private NumericUpDown nudAgeMax; + private NumericUpDown nudAgeMin; + private Button btnOpen; + } +} \ No newline at end of file diff --git a/Register office/Register office/View/TypesV/ReferenceValueForm.cs b/Register office/Register office/View/TypesV/ReferenceValueForm.cs new file mode 100644 index 0000000..1060f31 --- /dev/null +++ b/Register office/Register office/View/TypesV/ReferenceValueForm.cs @@ -0,0 +1,110 @@ +using Microsoft.EntityFrameworkCore.ChangeTracking.Internal; +using Register_office.Model; +using Register_office.ViewModel; +using System.Data; + +namespace Register_office.View.TypesV +{ + public partial class ReferenceValueForm : Form + { + private TypeViewModel _viewModel; + private ReferenceValue? _selectedType; + private string _columnIdName = "ReferenceValueId"; + private ReferenceValue _temp; + + public ReferenceValueForm() + { + InitializeComponent(); + TopMost = true; + Text = "Справочник нормалей обследований"; + _viewModel = new(); + _viewModel.ConfigureSettingsDGV(dgv); + UpdateDgv(); + UpdateElements(); + SetDataSourceToComboBoxes(); + } + + private void SetDataSourceToComboBoxes() + { + cbExamination.DataSource = _viewModel.General.Context.ExaminationTypes + .Select(x => new ComboBoxItem { Name = x.Name, Id = x.ExaminationTypeId }) + .OrderBy(cbi => cbi.Name).ToList(); + cbExamination.DisplayMember = "Name"; + cbExamination.ValueMember = "Id"; + + cbGender.DataSource = new string[] { "Мужчина", "Женщина" }; + } + + private void UpdateElements(int examination = -1, string gender = "", + int? ageMin = null, int? ageMax = null, bool enableButtons = false) + { + cbExamination.SelectedValue = examination; + cbGender.Text = gender; + nudAgeMin.Value = ageMin ?? -1; + nudAgeMax.Value = ageMax ?? -1; + btnDelete.Enabled = btnUpdate.Enabled = btnOpen.Enabled = enableButtons; + } + + private void UpdateDgv() + { + _viewModel.SetDefaultDataSource(dgv); + } + + private void dgv_SelectionChanged(object sender, EventArgs e) + { + if (dgv.SelectedRows.Count != 0 && !dgv.CurrentRow.IsNewRow) + { + DataGridViewRow selectedRow = dgv.SelectedRows[0]; + int id = int.Parse(selectedRow.Cells[_columnIdName].Value.ToString() ?? ""); + _selectedType = _viewModel.General.Context.ReferenceValues.Where(x => x.ReferenceValueId == id).FirstOrDefault(); + if (_selectedType != null) + UpdateElements(_selectedType.ExaminationTypeId, _selectedType.Gender, + _selectedType.AgeMin, _selectedType.AgeMax, true); + } + } + + private void btnUpdate_Click(object sender, EventArgs e) + { + if (_selectedType != null) + { + _selectedType.ExaminationTypeId = int.Parse(cbExamination.SelectedValue?.ToString() ?? "1"); + _selectedType.Gender = cbGender.Text; + _selectedType.AgeMin = nudAgeMin.Value == -1 ? null : (int)nudAgeMin.Value; + _selectedType.AgeMax = nudAgeMax.Value == -1 ? null : (int)nudAgeMax.Value; + _viewModel.General.Context.SaveChanges(); + UpdateElements(); + UpdateDgv(); + } + } + + private void btnDelete_Click(object sender, EventArgs e) + { + if (_selectedType != null) + { + _viewModel.DeleteType(_selectedType); + UpdateElements(); + UpdateDgv(); + } + } + + private void btnAdd_Click(object sender, EventArgs e) + { + _temp = new() + { + ExaminationTypeId = int.Parse(cbExamination.SelectedValue?.ToString() ?? "1"), + Gender = cbGender.Text, + AgeMin = nudAgeMin.Value == -1 ? null : (int)nudAgeMin.Value, + AgeMax = nudAgeMax.Value == -1 ? null : (int)nudAgeMax.Value, + }; + _viewModel.AddType(_temp); + UpdateElements(); + UpdateDgv(); + } + + private void btnOpen_Click(object sender, EventArgs e) + { + ReferenceValueQNForm f = new(_selectedType.ReferenceValueId); + f.ShowDialog(); + } + } +} diff --git a/Register office/Register office/View/TypesV/ReferenceValueForm.resx b/Register office/Register office/View/TypesV/ReferenceValueForm.resx new file mode 100644 index 0000000..93017c2 --- /dev/null +++ b/Register office/Register office/View/TypesV/ReferenceValueForm.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 184, 17 + + + 17, 17 + + \ No newline at end of file diff --git a/Register office/Register office/View/TypesV/ReferenceValueQNForm.Designer.cs b/Register office/Register office/View/TypesV/ReferenceValueQNForm.Designer.cs new file mode 100644 index 0000000..b662dcf --- /dev/null +++ b/Register office/Register office/View/TypesV/ReferenceValueQNForm.Designer.cs @@ -0,0 +1,214 @@ +namespace Register_office.View.TypesV +{ + partial class ReferenceValueQNForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + nudMinValue = new NumericUpDown(); + label4 = new Label(); + label1 = new Label(); + nudMaxValue = new NumericUpDown(); + rtbDescriptionTrue = new RichTextBox(); + label2 = new Label(); + label3 = new Label(); + rtbDescriptionFalse = new RichTextBox(); + btnCancel = new Button(); + btnSave = new Button(); + label5 = new Label(); + cbUnit = new ComboBox(); + ((System.ComponentModel.ISupportInitialize)nudMinValue).BeginInit(); + ((System.ComponentModel.ISupportInitialize)nudMaxValue).BeginInit(); + SuspendLayout(); + // + // nudMinValue + // + nudMinValue.DecimalPlaces = 2; + nudMinValue.Increment = new decimal(new int[] { 1, 0, 0, 65536 }); + nudMinValue.Location = new Point(12, 29); + nudMinValue.Minimum = new decimal(new int[] { 1, 0, 0, int.MinValue }); + nudMinValue.Name = "nudMinValue"; + nudMinValue.Size = new Size(120, 25); + nudMinValue.TabIndex = 0; + nudMinValue.Value = new decimal(new int[] { 1, 0, 0, int.MinValue }); + // + // label4 + // + label4.AutoSize = true; + label4.Font = new Font("Segoe UI", 9.75F, FontStyle.Regular, GraphicsUnit.Point, 204); + label4.Location = new Point(12, 9); + label4.Name = "label4"; + label4.Size = new Size(96, 17); + label4.TabIndex = 14; + label4.Text = "Мин. значение"; + // + // label1 + // + label1.AutoSize = true; + label1.Font = new Font("Segoe UI", 9.75F, FontStyle.Regular, GraphicsUnit.Point, 204); + label1.Location = new Point(153, 9); + label1.Name = "label1"; + label1.Size = new Size(101, 17); + label1.TabIndex = 16; + label1.Text = "Макс. значение"; + // + // nudMaxValue + // + nudMaxValue.DecimalPlaces = 2; + nudMaxValue.Increment = new decimal(new int[] { 1, 0, 0, 65536 }); + nudMaxValue.Location = new Point(153, 29); + nudMaxValue.Minimum = new decimal(new int[] { 1, 0, 0, int.MinValue }); + nudMaxValue.Name = "nudMaxValue"; + nudMaxValue.Size = new Size(120, 25); + nudMaxValue.TabIndex = 15; + nudMaxValue.Value = new decimal(new int[] { 1, 0, 0, int.MinValue }); + // + // rtbDescriptionTrue + // + rtbDescriptionTrue.Location = new Point(12, 87); + rtbDescriptionTrue.Name = "rtbDescriptionTrue"; + rtbDescriptionTrue.Size = new Size(436, 122); + rtbDescriptionTrue.TabIndex = 17; + rtbDescriptionTrue.Text = ""; + // + // label2 + // + label2.AutoSize = true; + label2.Font = new Font("Segoe UI", 9.75F, FontStyle.Regular, GraphicsUnit.Point, 204); + label2.Location = new Point(12, 67); + label2.Name = "label2"; + label2.Size = new Size(119, 17); + label2.TabIndex = 18; + label2.Text = "Описание наличия"; + // + // label3 + // + label3.AutoSize = true; + label3.Font = new Font("Segoe UI", 9.75F, FontStyle.Regular, GraphicsUnit.Point, 204); + label3.Location = new Point(12, 222); + label3.Name = "label3"; + label3.Size = new Size(132, 17); + label3.TabIndex = 20; + label3.Text = "Описание отсутствия"; + // + // rtbDescriptionFalse + // + rtbDescriptionFalse.Location = new Point(12, 242); + rtbDescriptionFalse.Name = "rtbDescriptionFalse"; + rtbDescriptionFalse.Size = new Size(436, 122); + rtbDescriptionFalse.TabIndex = 19; + rtbDescriptionFalse.Text = ""; + // + // btnCancel + // + btnCancel.Anchor = AnchorStyles.Bottom; + btnCancel.AutoSizeMode = AutoSizeMode.GrowAndShrink; + btnCancel.DialogResult = DialogResult.Cancel; + btnCancel.Font = new Font("Segoe UI", 11.25F, FontStyle.Regular, GraphicsUnit.Point, 204); + btnCancel.Location = new Point(286, 373); + btnCancel.Name = "btnCancel"; + btnCancel.Size = new Size(162, 33); + btnCancel.TabIndex = 22; + btnCancel.Text = "Отмена"; + btnCancel.UseVisualStyleBackColor = true; + // + // btnSave + // + btnSave.Anchor = AnchorStyles.Bottom; + btnSave.AutoSizeMode = AutoSizeMode.GrowAndShrink; + btnSave.Font = new Font("Segoe UI", 11.25F, FontStyle.Regular, GraphicsUnit.Point, 204); + btnSave.Location = new Point(12, 373); + btnSave.Name = "btnSave"; + btnSave.Size = new Size(162, 33); + btnSave.TabIndex = 21; + btnSave.Text = "Сохранить"; + btnSave.UseVisualStyleBackColor = true; + btnSave.Click += btnSave_Click; + // + // label5 + // + label5.Anchor = AnchorStyles.Top | AnchorStyles.Bottom; + label5.AutoSize = true; + label5.Font = new Font("Segoe UI", 9.75F, FontStyle.Regular, GraphicsUnit.Point, 204); + label5.Location = new Point(286, 8); + label5.Name = "label5"; + label5.Size = new Size(126, 17); + label5.TabIndex = 24; + label5.Text = "Единица измерения"; + // + // cbUnit + // + cbUnit.DropDownStyle = ComboBoxStyle.DropDownList; + cbUnit.FormattingEnabled = true; + cbUnit.Items.AddRange(new object[] { "Физикальное", "Лабораторное", "Инструментальное" }); + cbUnit.Location = new Point(286, 28); + cbUnit.Name = "cbUnit"; + cbUnit.Size = new Size(162, 25); + cbUnit.TabIndex = 23; + // + // ReferenceValueQNForm + // + AutoScaleDimensions = new SizeF(7F, 17F); + AutoScaleMode = AutoScaleMode.Font; + ClientSize = new Size(460, 418); + Controls.Add(label5); + Controls.Add(cbUnit); + Controls.Add(btnCancel); + Controls.Add(btnSave); + Controls.Add(label3); + Controls.Add(rtbDescriptionFalse); + Controls.Add(label2); + Controls.Add(rtbDescriptionTrue); + Controls.Add(label1); + Controls.Add(nudMaxValue); + Controls.Add(label4); + Controls.Add(nudMinValue); + Font = new Font("Segoe UI", 9.75F, FontStyle.Regular, GraphicsUnit.Point, 204); + FormBorderStyle = FormBorderStyle.FixedToolWindow; + Name = "ReferenceValueQNForm"; + Text = "Справочник нормалей для числовых и качественных обследований"; + ((System.ComponentModel.ISupportInitialize)nudMinValue).EndInit(); + ((System.ComponentModel.ISupportInitialize)nudMaxValue).EndInit(); + ResumeLayout(false); + PerformLayout(); + } + + #endregion + + private NumericUpDown nudMinValue; + private Label label4; + private Label label1; + private NumericUpDown nudMaxValue; + private RichTextBox rtbDescriptionTrue; + private Label label2; + private Label label3; + private RichTextBox rtbDescriptionFalse; + private Button btnCancel; + private Button btnSave; + private Label label5; + private ComboBox cbUnit; + } +} \ No newline at end of file diff --git a/Register office/Register office/View/TypesV/ReferenceValueQNForm.cs b/Register office/Register office/View/TypesV/ReferenceValueQNForm.cs new file mode 100644 index 0000000..cfade1d --- /dev/null +++ b/Register office/Register office/View/TypesV/ReferenceValueQNForm.cs @@ -0,0 +1,109 @@ +using Register_office.Model; +using Register_office.ViewModel; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace Register_office.View.TypesV +{ + public partial class ReferenceValueQNForm : Form + { + private TypeViewModel _viewModel; + private int _referenceValueId; + private ReferenceNumericValue? _referenceNumericValue; + private ReferenceQualitativeValue? _referenceQualitativeValue; + + public ReferenceValueQNForm(int referenceValueId) + { + InitializeComponent(); + TopMost = true; + _viewModel = new(); + _referenceValueId = referenceValueId; + _referenceNumericValue = _viewModel.General.Context.ReferenceNumericValues + .Where(x => x.ReferenceValueId == _referenceValueId).FirstOrDefault(); + _referenceQualitativeValue = _viewModel.General.Context.ReferenceQualitativeValues + .Where(x => x.ReferenceValueId == _referenceValueId).FirstOrDefault(); + SetDataSourceToComboBoxes(); + GetReferenceValues(); + } + + private void SetDataSourceToComboBoxes() + { + cbUnit.DataSource = _viewModel.General.Context.Units + .Select(x => new ComboBoxItem { Name = x.Name, Id = x.UnitId }) + .OrderBy(cbi => cbi.Name).ToList(); + cbUnit.DisplayMember = "Name"; + cbUnit.ValueMember = "Id"; + cbUnit.SelectedValue = -1; + } + + private void GetReferenceValues() + { + if (_referenceNumericValue != null) + { + nudMinValue.Value = _referenceNumericValue.MinValue ?? -1; + nudMaxValue.Value = _referenceNumericValue.MaxValue ?? -1; + cbUnit.SelectedValue = _referenceNumericValue.UnitId; + } + + if (_referenceQualitativeValue != null) + { + rtbDescriptionFalse.Text = _referenceQualitativeValue.DescriptionFalse; + rtbDescriptionTrue.Text = _referenceQualitativeValue.DescriptionTrue; + } + } + + private void btnSave_Click(object sender, EventArgs e) + { + if ((nudMinValue.Value >= 0 || nudMaxValue.Value >= 0) && cbUnit.Text != "") + { + if (_referenceNumericValue == null) + { + _referenceNumericValue = new() + { + ReferenceValueId = _referenceValueId, + MinValue = nudMinValue.Value < 0 ? null : (int)nudMinValue.Value, + MaxValue = nudMaxValue.Value < 0 ? null : (int)nudMaxValue.Value, + UnitId = int.Parse(cbUnit.SelectedValue?.ToString() ?? "1") + }; + _viewModel.AddType(_referenceNumericValue); + } + else + { + _referenceNumericValue.ReferenceValueId = _referenceValueId; + _referenceNumericValue.MinValue = nudMinValue.Value < 0 ? null : (int)nudMinValue.Value; + _referenceNumericValue.MaxValue = nudMaxValue.Value < 0 ? null : (int)nudMaxValue.Value; + _referenceNumericValue.UnitId = int.Parse(cbUnit.SelectedValue?.ToString() ?? "1"); + _viewModel.General.Context.SaveChanges(); + } + } + + if (rtbDescriptionFalse.Text.Trim() != "" && rtbDescriptionTrue.Text.Trim() != "") + { + if (_referenceQualitativeValue == null) + { + _referenceQualitativeValue = new() + { + ReferenceValueId = _referenceValueId, + DescriptionFalse = rtbDescriptionFalse.Text, + DescriptionTrue = rtbDescriptionTrue.Text + }; + _viewModel.AddType(_referenceQualitativeValue); + } + else + { + _referenceQualitativeValue.ReferenceValueId = _referenceValueId; + _referenceQualitativeValue.DescriptionFalse = rtbDescriptionFalse.Text; + _referenceQualitativeValue.DescriptionTrue = rtbDescriptionTrue.Text; + _viewModel.General.Context.SaveChanges(); + } + } + } + } +} diff --git a/Register office/Register office/View/TypesV/ReferenceValueQNForm.resx b/Register office/Register office/View/TypesV/ReferenceValueQNForm.resx new file mode 100644 index 0000000..4f24d55 --- /dev/null +++ b/Register office/Register office/View/TypesV/ReferenceValueQNForm.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Register office/Register office/View/TypesV/SyndromeExaminationTypeForm.Designer.cs b/Register office/Register office/View/TypesV/SyndromeExaminationTypeForm.Designer.cs new file mode 100644 index 0000000..33ae913 --- /dev/null +++ b/Register office/Register office/View/TypesV/SyndromeExaminationTypeForm.Designer.cs @@ -0,0 +1,221 @@ +using Register_office.View; + +namespace Register_office.View.TypesV +{ + partial class SyndromeExaminationTypeForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + components = new System.ComponentModel.Container(); + splitContainer1 = new SplitContainer(); + btnAdd = new Button(); + btnDelete = new Button(); + btnUpdate = new Button(); + dgv = new DataGridView(); + cmsMedicineProductCost = new ContextMenuStrip(components); + cmsMedicineProduct = new ContextMenuStrip(components); + label3 = new Label(); + cbExamination = new ComboBox(); + label2 = new Label(); + cbSyndrome = new ComboBox(); + ((System.ComponentModel.ISupportInitialize)splitContainer1).BeginInit(); + splitContainer1.Panel1.SuspendLayout(); + splitContainer1.Panel2.SuspendLayout(); + splitContainer1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)dgv).BeginInit(); + SuspendLayout(); + // + // splitContainer1 + // + splitContainer1.Dock = DockStyle.Fill; + splitContainer1.FixedPanel = FixedPanel.Panel1; + splitContainer1.Location = new Point(0, 0); + splitContainer1.Name = "splitContainer1"; + splitContainer1.Orientation = Orientation.Horizontal; + // + // splitContainer1.Panel1 + // + splitContainer1.Panel1.Controls.Add(label3); + splitContainer1.Panel1.Controls.Add(btnAdd); + splitContainer1.Panel1.Controls.Add(cbExamination); + splitContainer1.Panel1.Controls.Add(btnDelete); + splitContainer1.Panel1.Controls.Add(label2); + splitContainer1.Panel1.Controls.Add(cbSyndrome); + splitContainer1.Panel1.Controls.Add(btnUpdate); + // + // splitContainer1.Panel2 + // + splitContainer1.Panel2.Controls.Add(dgv); + splitContainer1.Size = new Size(800, 647); + splitContainer1.SplitterDistance = 120; + splitContainer1.SplitterWidth = 5; + splitContainer1.TabIndex = 0; + // + // btnAdd + // + btnAdd.Anchor = AnchorStyles.Top | AnchorStyles.Bottom; + btnAdd.AutoSizeMode = AutoSizeMode.GrowAndShrink; + btnAdd.Font = new Font("Segoe UI", 11.25F, FontStyle.Regular, GraphicsUnit.Point, 204); + btnAdd.Location = new Point(458, 72); + btnAdd.Name = "btnAdd"; + btnAdd.Size = new Size(330, 33); + btnAdd.TabIndex = 3; + btnAdd.Text = "Добавить"; + btnAdd.UseVisualStyleBackColor = true; + btnAdd.Click += btnAdd_Click; + // + // btnDelete + // + btnDelete.Anchor = AnchorStyles.Top | AnchorStyles.Bottom; + btnDelete.AutoSizeMode = AutoSizeMode.GrowAndShrink; + btnDelete.Enabled = false; + btnDelete.Font = new Font("Segoe UI", 11.25F, FontStyle.Regular, GraphicsUnit.Point, 204); + btnDelete.Location = new Point(626, 33); + btnDelete.Name = "btnDelete"; + btnDelete.Size = new Size(162, 33); + btnDelete.TabIndex = 4; + btnDelete.Text = "Удалить"; + btnDelete.UseVisualStyleBackColor = true; + btnDelete.Click += btnDelete_Click; + // + // btnUpdate + // + btnUpdate.Anchor = AnchorStyles.Top | AnchorStyles.Bottom; + btnUpdate.AutoSizeMode = AutoSizeMode.GrowAndShrink; + btnUpdate.Font = new Font("Segoe UI", 11.25F, FontStyle.Regular, GraphicsUnit.Point, 204); + btnUpdate.Location = new Point(458, 32); + btnUpdate.Name = "btnUpdate"; + btnUpdate.Size = new Size(162, 33); + btnUpdate.TabIndex = 1; + btnUpdate.Text = "Изменить"; + btnUpdate.UseVisualStyleBackColor = true; + btnUpdate.Click += btnUpdate_Click; + // + // dgv + // + dgv.AllowUserToAddRows = false; + dgv.AllowUserToDeleteRows = false; + dgv.AllowUserToOrderColumns = true; + dgv.ClipboardCopyMode = DataGridViewClipboardCopyMode.EnableWithoutHeaderText; + dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; + dgv.Dock = DockStyle.Fill; + dgv.Location = new Point(0, 0); + dgv.MultiSelect = false; + dgv.Name = "dgv"; + dgv.ReadOnly = true; + dgv.SelectionMode = DataGridViewSelectionMode.FullRowSelect; + dgv.Size = new Size(800, 522); + dgv.TabIndex = 8; + dgv.SelectionChanged += dgv_SelectionChanged; + // + // cmsMedicineProductCost + // + cmsMedicineProductCost.Font = new Font("Segoe UI", 9.75F, FontStyle.Regular, GraphicsUnit.Point, 204); + cmsMedicineProductCost.Name = "cmsMedicineProductCost"; + cmsMedicineProductCost.Size = new Size(61, 4); + // + // cmsMedicineProduct + // + cmsMedicineProduct.Name = "contextMenuStrip1"; + cmsMedicineProduct.Size = new Size(61, 4); + // + // label3 + // + label3.Anchor = AnchorStyles.Top | AnchorStyles.Bottom; + label3.AutoSize = true; + label3.Font = new Font("Segoe UI", 9.75F, FontStyle.Regular, GraphicsUnit.Point, 204); + label3.Location = new Point(232, 17); + label3.Name = "label3"; + label3.Size = new Size(96, 17); + label3.TabIndex = 14; + label3.Text = "Обследование"; + // + // cbExamination + // + cbExamination.DropDownStyle = ComboBoxStyle.DropDownList; + cbExamination.FormattingEnabled = true; + cbExamination.Items.AddRange(new object[] { "Физикальное", "Лабораторное", "Инструментальное" }); + cbExamination.Location = new Point(232, 37); + cbExamination.Name = "cbExamination"; + cbExamination.Size = new Size(211, 25); + cbExamination.TabIndex = 13; + // + // label2 + // + label2.Anchor = AnchorStyles.Top | AnchorStyles.Bottom; + label2.AutoSize = true; + label2.Font = new Font("Segoe UI", 9.75F, FontStyle.Regular, GraphicsUnit.Point, 204); + label2.Location = new Point(12, 16); + label2.Name = "label2"; + label2.Size = new Size(62, 17); + label2.TabIndex = 12; + label2.Text = "Синдром"; + // + // cbSyndrome + // + cbSyndrome.DropDownStyle = ComboBoxStyle.DropDownList; + cbSyndrome.FormattingEnabled = true; + cbSyndrome.Items.AddRange(new object[] { "Физикальное", "Лабораторное", "Инструментальное" }); + cbSyndrome.Location = new Point(12, 37); + cbSyndrome.Name = "cbSyndrome"; + cbSyndrome.Size = new Size(214, 25); + cbSyndrome.TabIndex = 11; + // + // SyndromeExaminationTypeForm + // + AutoScaleDimensions = new SizeF(7F, 17F); + AutoScaleMode = AutoScaleMode.Font; + ClientSize = new Size(800, 647); + Controls.Add(splitContainer1); + Font = new Font("Segoe UI", 9.75F, FontStyle.Regular, GraphicsUnit.Point, 204); + FormBorderStyle = FormBorderStyle.FixedSingle; + Name = "SyndromeExaminationTypeForm"; + Text = "Лекарственные препараты"; + splitContainer1.Panel1.ResumeLayout(false); + splitContainer1.Panel1.PerformLayout(); + splitContainer1.Panel2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)splitContainer1).EndInit(); + splitContainer1.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)dgv).EndInit(); + ResumeLayout(false); + } + + #endregion + + private SplitContainer splitContainer1; + private DataGridView dgv; + private Button btnUpdate; + private Button btnDelete; + private Button btnAdd; + private ContextMenuStrip cmsMedicineProduct; + private ContextMenuStrip cmsMedicineProductCost; + private Label label3; + private ComboBox cbExamination; + private Label label2; + private ComboBox cbSyndrome; + } +} \ No newline at end of file diff --git a/Register office/Register office/View/TypesV/SyndromeExaminationTypeForm.cs b/Register office/Register office/View/TypesV/SyndromeExaminationTypeForm.cs new file mode 100644 index 0000000..d11c88c --- /dev/null +++ b/Register office/Register office/View/TypesV/SyndromeExaminationTypeForm.cs @@ -0,0 +1,101 @@ +using Microsoft.EntityFrameworkCore.ChangeTracking.Internal; +using Register_office.Model; +using Register_office.ViewModel; +using System.Data; + +namespace Register_office.View.TypesV +{ + public partial class SyndromeExaminationTypeForm : Form + { + private TypeViewModel _viewModel; + private SyndromeExaminationType? _selectedType; + private SyndromeExaminationType _temp; + + public SyndromeExaminationTypeForm() + { + InitializeComponent(); + TopMost = true; + Text = "Справочник соответствий синдромов и обследований"; + _viewModel = new(); + _viewModel.ConfigureSettingsDGV(dgv); + UpdateDgv(); + SetDataSourceToComboBoxes(); + UpdateElements(); + } + + private void SetDataSourceToComboBoxes() + { + cbExamination.DataSource = _viewModel.General.Context.ExaminationTypes + .Select(x => new ComboBoxItem { Name = x.Name, Id = x.ExaminationTypeId }) + .OrderBy(cbi => cbi.Name).ToList(); + cbExamination.DisplayMember = "Name"; + cbExamination.ValueMember = "Id"; + + cbSyndrome.DataSource = _viewModel.General.Context.SyndromeTypes + .Select(x => new ComboBoxItem { Name = x.Name, Id = x.SyndromeTypeId }) + .OrderBy(cbi => cbi.Name).ToList(); + cbSyndrome.DisplayMember = "Name"; + cbSyndrome.ValueMember = "Id"; + } + + private void UpdateElements(int idExam = -1, int idSynd = -1, bool enableButtons = false) + { + cbExamination.SelectedValue = idExam; + cbSyndrome.SelectedValue = idSynd; + btnDelete.Enabled = btnUpdate.Enabled = enableButtons; + } + + private void UpdateDgv() + { + _viewModel.SetDefaultDataSource(dgv); + } + + private void dgv_SelectionChanged(object sender, EventArgs e) + { + if (dgv.SelectedRows.Count != 0 && !dgv.CurrentRow.IsNewRow) + { + DataGridViewRow selectedRow = dgv.SelectedRows[0]; + int idExam = int.Parse(selectedRow.Cells["ExaminationTypeId"].Value.ToString() ?? ""); + int idSynd = int.Parse(selectedRow.Cells["SyndromeId"].Value.ToString() ?? ""); + _selectedType = _viewModel.General.Context.SyndromeExaminationTypes + .Where(x => x.ExaminationTypeId == idExam && x.SyndromeId == idSynd).FirstOrDefault(); + if (_selectedType != null) + UpdateElements(_selectedType.ExaminationTypeId, _selectedType.SyndromeId, true); + } + } + + private void btnUpdate_Click(object sender, EventArgs e) + { + if (_selectedType != null) + { + _selectedType.ExaminationTypeId = int.Parse(cbExamination.SelectedValue?.ToString() ?? "-1"); + _selectedType.SyndromeId = int.Parse(cbSyndrome.SelectedValue?.ToString() ?? "-1"); + _viewModel.General.Context.SaveChanges(); + UpdateElements(); + UpdateDgv(); + } + } + + private void btnDelete_Click(object sender, EventArgs e) + { + if (_selectedType != null) + { + _viewModel.DeleteType(_selectedType); + UpdateElements(); + UpdateDgv(); + } + } + + private void btnAdd_Click(object sender, EventArgs e) + { + _temp = new() + { + ExaminationTypeId = int.Parse(cbExamination.SelectedValue?.ToString() ?? "-1"), + SyndromeId = int.Parse(cbSyndrome.SelectedValue?.ToString() ?? "-1") + }; + _viewModel.AddType(_temp); + UpdateElements(); + UpdateDgv(); + } + } +} diff --git a/Register office/Register office/View/TypesV/SyndromeExaminationTypeForm.resx b/Register office/Register office/View/TypesV/SyndromeExaminationTypeForm.resx new file mode 100644 index 0000000..93017c2 --- /dev/null +++ b/Register office/Register office/View/TypesV/SyndromeExaminationTypeForm.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 184, 17 + + + 17, 17 + + \ No newline at end of file diff --git a/Register office/Register office/View/TypesV/SyndromeTypeForm.Designer.cs b/Register office/Register office/View/TypesV/SyndromeTypeForm.Designer.cs new file mode 100644 index 0000000..5d8fad9 --- /dev/null +++ b/Register office/Register office/View/TypesV/SyndromeTypeForm.Designer.cs @@ -0,0 +1,193 @@ +using Register_office.View; + +namespace Register_office.View.TypesV +{ + partial class SyndromeTypeForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + components = new System.ComponentModel.Container(); + splitContainer1 = new SplitContainer(); + btnAdd = new Button(); + btnDelete = new Button(); + btnUpdate = new Button(); + label1 = new Label(); + tbName = new TextBox(); + dgv = new DataGridView(); + cmsMedicineProductCost = new ContextMenuStrip(components); + cmsMedicineProduct = new ContextMenuStrip(components); + ((System.ComponentModel.ISupportInitialize)splitContainer1).BeginInit(); + splitContainer1.Panel1.SuspendLayout(); + splitContainer1.Panel2.SuspendLayout(); + splitContainer1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)dgv).BeginInit(); + SuspendLayout(); + // + // splitContainer1 + // + splitContainer1.Dock = DockStyle.Fill; + splitContainer1.FixedPanel = FixedPanel.Panel1; + splitContainer1.Location = new Point(0, 0); + splitContainer1.Name = "splitContainer1"; + splitContainer1.Orientation = Orientation.Horizontal; + // + // splitContainer1.Panel1 + // + splitContainer1.Panel1.Controls.Add(btnAdd); + splitContainer1.Panel1.Controls.Add(btnDelete); + splitContainer1.Panel1.Controls.Add(btnUpdate); + splitContainer1.Panel1.Controls.Add(label1); + splitContainer1.Panel1.Controls.Add(tbName); + // + // splitContainer1.Panel2 + // + splitContainer1.Panel2.Controls.Add(dgv); + splitContainer1.Size = new Size(800, 647); + splitContainer1.SplitterDistance = 120; + splitContainer1.SplitterWidth = 5; + splitContainer1.TabIndex = 0; + // + // btnAdd + // + btnAdd.Anchor = AnchorStyles.Top | AnchorStyles.Bottom; + btnAdd.AutoSizeMode = AutoSizeMode.GrowAndShrink; + btnAdd.Font = new Font("Segoe UI", 11.25F, FontStyle.Regular, GraphicsUnit.Point, 204); + btnAdd.Location = new Point(458, 72); + btnAdd.Name = "btnAdd"; + btnAdd.Size = new Size(330, 33); + btnAdd.TabIndex = 3; + btnAdd.Text = "Добавить"; + btnAdd.UseVisualStyleBackColor = true; + btnAdd.Click += btnAdd_Click; + // + // btnDelete + // + btnDelete.Anchor = AnchorStyles.Top | AnchorStyles.Bottom; + btnDelete.AutoSizeMode = AutoSizeMode.GrowAndShrink; + btnDelete.Enabled = false; + btnDelete.Font = new Font("Segoe UI", 11.25F, FontStyle.Regular, GraphicsUnit.Point, 204); + btnDelete.Location = new Point(626, 33); + btnDelete.Name = "btnDelete"; + btnDelete.Size = new Size(162, 33); + btnDelete.TabIndex = 4; + btnDelete.Text = "Удалить"; + btnDelete.UseVisualStyleBackColor = true; + btnDelete.Click += btnDelete_Click; + // + // btnUpdate + // + btnUpdate.Anchor = AnchorStyles.Top | AnchorStyles.Bottom; + btnUpdate.AutoSizeMode = AutoSizeMode.GrowAndShrink; + btnUpdate.Font = new Font("Segoe UI", 11.25F, FontStyle.Regular, GraphicsUnit.Point, 204); + btnUpdate.Location = new Point(458, 32); + btnUpdate.Name = "btnUpdate"; + btnUpdate.Size = new Size(162, 33); + btnUpdate.TabIndex = 1; + btnUpdate.Text = "Изменить"; + btnUpdate.UseVisualStyleBackColor = true; + btnUpdate.Click += btnUpdate_Click; + // + // label1 + // + label1.Anchor = AnchorStyles.Top | AnchorStyles.Bottom; + label1.AutoSize = true; + label1.Font = new Font("Segoe UI", 9.75F, FontStyle.Regular, GraphicsUnit.Point, 204); + label1.Location = new Point(12, 10); + label1.Name = "label1"; + label1.Size = new Size(65, 17); + label1.TabIndex = 1; + label1.Text = "Название"; + // + // tbName + // + tbName.Anchor = AnchorStyles.Top | AnchorStyles.Bottom; + tbName.Font = new Font("Segoe UI", 11.25F, FontStyle.Regular, GraphicsUnit.Point, 204); + tbName.Location = new Point(12, 33); + tbName.Name = "tbName"; + tbName.Size = new Size(242, 27); + tbName.TabIndex = 0; + // + // dgv + // + dgv.AllowUserToAddRows = false; + dgv.AllowUserToDeleteRows = false; + dgv.AllowUserToOrderColumns = true; + dgv.ClipboardCopyMode = DataGridViewClipboardCopyMode.EnableWithoutHeaderText; + dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; + dgv.Dock = DockStyle.Fill; + dgv.Location = new Point(0, 0); + dgv.MultiSelect = false; + dgv.Name = "dgv"; + dgv.ReadOnly = true; + dgv.SelectionMode = DataGridViewSelectionMode.FullRowSelect; + dgv.Size = new Size(800, 522); + dgv.TabIndex = 8; + dgv.SelectionChanged += dgv_SelectionChanged; + // + // cmsMedicineProductCost + // + cmsMedicineProductCost.Font = new Font("Segoe UI", 9.75F, FontStyle.Regular, GraphicsUnit.Point, 204); + cmsMedicineProductCost.Name = "cmsMedicineProductCost"; + cmsMedicineProductCost.Size = new Size(61, 4); + // + // cmsMedicineProduct + // + cmsMedicineProduct.Name = "contextMenuStrip1"; + cmsMedicineProduct.Size = new Size(61, 4); + // + // DrugIntakeMethodForm + // + AutoScaleDimensions = new SizeF(7F, 17F); + AutoScaleMode = AutoScaleMode.Font; + ClientSize = new Size(800, 647); + Controls.Add(splitContainer1); + Font = new Font("Segoe UI", 9.75F, FontStyle.Regular, GraphicsUnit.Point, 204); + FormBorderStyle = FormBorderStyle.FixedSingle; + Name = "DrugIntakeMethodForm"; + Text = "Лекарственные препараты"; + splitContainer1.Panel1.ResumeLayout(false); + splitContainer1.Panel1.PerformLayout(); + splitContainer1.Panel2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)splitContainer1).EndInit(); + splitContainer1.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)dgv).EndInit(); + ResumeLayout(false); + } + + #endregion + + private SplitContainer splitContainer1; + private DataGridView dgv; + private TextBox tbName; + private Label label1; + private Button btnUpdate; + private Button btnDelete; + private Button btnAdd; + private ContextMenuStrip cmsMedicineProduct; + private ContextMenuStrip cmsMedicineProductCost; + } +} \ No newline at end of file diff --git a/Register office/Register office/View/TypesV/SyndromeTypeForm.cs b/Register office/Register office/View/TypesV/SyndromeTypeForm.cs new file mode 100644 index 0000000..0bceb3a --- /dev/null +++ b/Register office/Register office/View/TypesV/SyndromeTypeForm.cs @@ -0,0 +1,81 @@ +using Microsoft.EntityFrameworkCore.ChangeTracking.Internal; +using Register_office.Model; +using Register_office.ViewModel; +using System.Data; + +namespace Register_office.View.TypesV +{ + public partial class SyndromeTypeForm : Form + { + private TypeViewModel _viewModel; + private SyndromeType? _selectedType; + private string _columnIdName = "SyndromeTypeId"; + private SyndromeType _temp; + + public SyndromeTypeForm() + { + InitializeComponent(); + TopMost = true; + Text = "Справочник синдромов"; + _viewModel = new(); + _viewModel.ConfigureSettingsDGV(dgv); + UpdateDgv(); + UpdateElements(); + } + + private void UpdateElements(string name = "", bool enableButtons = false) + { + tbName.Text = name; + btnDelete.Enabled = btnUpdate.Enabled = enableButtons; + } + + private void UpdateDgv() + { + _viewModel.SetDefaultDataSource(dgv); + } + + private void dgv_SelectionChanged(object sender, EventArgs e) + { + if (dgv.SelectedRows.Count != 0 && !dgv.CurrentRow.IsNewRow) + { + DataGridViewRow selectedRow = dgv.SelectedRows[0]; + int id = int.Parse(selectedRow.Cells[_columnIdName].Value.ToString() ?? ""); + _selectedType = _viewModel.General.Context.SyndromeTypes.Where(x => x.SyndromeTypeId == id).FirstOrDefault(); + if (_selectedType != null) + UpdateElements(_selectedType.Name, true); + } + } + + private void btnUpdate_Click(object sender, EventArgs e) + { + if (_selectedType != null) + { + _selectedType.Name = tbName.Text; + _viewModel.General.Context.SaveChanges(); + UpdateElements(); + UpdateDgv(); + } + } + + private void btnDelete_Click(object sender, EventArgs e) + { + if (_selectedType != null) + { + _viewModel.DeleteType(_selectedType); + UpdateElements(); + UpdateDgv(); + } + } + + private void btnAdd_Click(object sender, EventArgs e) + { + _temp = new() + { + Name = tbName.Text + }; + _viewModel.AddType(_temp); + UpdateElements(); + UpdateDgv(); + } + } +} diff --git a/Register office/Register office/View/TypesV/SyndromeTypeForm.resx b/Register office/Register office/View/TypesV/SyndromeTypeForm.resx new file mode 100644 index 0000000..93017c2 --- /dev/null +++ b/Register office/Register office/View/TypesV/SyndromeTypeForm.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 184, 17 + + + 17, 17 + + \ No newline at end of file diff --git a/Register office/Register office/View/TypesV/UnitForm.Designer.cs b/Register office/Register office/View/TypesV/UnitForm.Designer.cs new file mode 100644 index 0000000..0b3d44c --- /dev/null +++ b/Register office/Register office/View/TypesV/UnitForm.Designer.cs @@ -0,0 +1,193 @@ +using Register_office.View; + +namespace Register_office.View.TypesV +{ + partial class UnitForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + components = new System.ComponentModel.Container(); + splitContainer1 = new SplitContainer(); + btnAdd = new Button(); + btnDelete = new Button(); + btnUpdate = new Button(); + label1 = new Label(); + tbName = new TextBox(); + dgv = new DataGridView(); + cmsMedicineProductCost = new ContextMenuStrip(components); + cmsMedicineProduct = new ContextMenuStrip(components); + ((System.ComponentModel.ISupportInitialize)splitContainer1).BeginInit(); + splitContainer1.Panel1.SuspendLayout(); + splitContainer1.Panel2.SuspendLayout(); + splitContainer1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)dgv).BeginInit(); + SuspendLayout(); + // + // splitContainer1 + // + splitContainer1.Dock = DockStyle.Fill; + splitContainer1.FixedPanel = FixedPanel.Panel1; + splitContainer1.Location = new Point(0, 0); + splitContainer1.Name = "splitContainer1"; + splitContainer1.Orientation = Orientation.Horizontal; + // + // splitContainer1.Panel1 + // + splitContainer1.Panel1.Controls.Add(btnAdd); + splitContainer1.Panel1.Controls.Add(btnDelete); + splitContainer1.Panel1.Controls.Add(btnUpdate); + splitContainer1.Panel1.Controls.Add(label1); + splitContainer1.Panel1.Controls.Add(tbName); + // + // splitContainer1.Panel2 + // + splitContainer1.Panel2.Controls.Add(dgv); + splitContainer1.Size = new Size(800, 647); + splitContainer1.SplitterDistance = 120; + splitContainer1.SplitterWidth = 5; + splitContainer1.TabIndex = 0; + // + // btnAdd + // + btnAdd.Anchor = AnchorStyles.Top | AnchorStyles.Bottom; + btnAdd.AutoSizeMode = AutoSizeMode.GrowAndShrink; + btnAdd.Font = new Font("Segoe UI", 11.25F, FontStyle.Regular, GraphicsUnit.Point, 204); + btnAdd.Location = new Point(458, 72); + btnAdd.Name = "btnAdd"; + btnAdd.Size = new Size(330, 33); + btnAdd.TabIndex = 3; + btnAdd.Text = "Добавить"; + btnAdd.UseVisualStyleBackColor = true; + btnAdd.Click += btnAdd_Click; + // + // btnDelete + // + btnDelete.Anchor = AnchorStyles.Top | AnchorStyles.Bottom; + btnDelete.AutoSizeMode = AutoSizeMode.GrowAndShrink; + btnDelete.Enabled = false; + btnDelete.Font = new Font("Segoe UI", 11.25F, FontStyle.Regular, GraphicsUnit.Point, 204); + btnDelete.Location = new Point(626, 33); + btnDelete.Name = "btnDelete"; + btnDelete.Size = new Size(162, 33); + btnDelete.TabIndex = 4; + btnDelete.Text = "Удалить"; + btnDelete.UseVisualStyleBackColor = true; + btnDelete.Click += btnDelete_Click; + // + // btnUpdate + // + btnUpdate.Anchor = AnchorStyles.Top | AnchorStyles.Bottom; + btnUpdate.AutoSizeMode = AutoSizeMode.GrowAndShrink; + btnUpdate.Font = new Font("Segoe UI", 11.25F, FontStyle.Regular, GraphicsUnit.Point, 204); + btnUpdate.Location = new Point(458, 32); + btnUpdate.Name = "btnUpdate"; + btnUpdate.Size = new Size(162, 33); + btnUpdate.TabIndex = 1; + btnUpdate.Text = "Изменить"; + btnUpdate.UseVisualStyleBackColor = true; + btnUpdate.Click += btnUpdate_Click; + // + // label1 + // + label1.Anchor = AnchorStyles.Top | AnchorStyles.Bottom; + label1.AutoSize = true; + label1.Font = new Font("Segoe UI", 9.75F, FontStyle.Regular, GraphicsUnit.Point, 204); + label1.Location = new Point(12, 10); + label1.Name = "label1"; + label1.Size = new Size(65, 17); + label1.TabIndex = 1; + label1.Text = "Название"; + // + // tbName + // + tbName.Anchor = AnchorStyles.Top | AnchorStyles.Bottom; + tbName.Font = new Font("Segoe UI", 11.25F, FontStyle.Regular, GraphicsUnit.Point, 204); + tbName.Location = new Point(12, 33); + tbName.Name = "tbName"; + tbName.Size = new Size(242, 27); + tbName.TabIndex = 0; + // + // dgv + // + dgv.AllowUserToAddRows = false; + dgv.AllowUserToDeleteRows = false; + dgv.AllowUserToOrderColumns = true; + dgv.ClipboardCopyMode = DataGridViewClipboardCopyMode.EnableWithoutHeaderText; + dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; + dgv.Dock = DockStyle.Fill; + dgv.Location = new Point(0, 0); + dgv.MultiSelect = false; + dgv.Name = "dgv"; + dgv.ReadOnly = true; + dgv.SelectionMode = DataGridViewSelectionMode.FullRowSelect; + dgv.Size = new Size(800, 522); + dgv.TabIndex = 8; + dgv.SelectionChanged += dgv_SelectionChanged; + // + // cmsMedicineProductCost + // + cmsMedicineProductCost.Font = new Font("Segoe UI", 9.75F, FontStyle.Regular, GraphicsUnit.Point, 204); + cmsMedicineProductCost.Name = "cmsMedicineProductCost"; + cmsMedicineProductCost.Size = new Size(61, 4); + // + // cmsMedicineProduct + // + cmsMedicineProduct.Name = "contextMenuStrip1"; + cmsMedicineProduct.Size = new Size(61, 4); + // + // DrugIntakeMethodForm + // + AutoScaleDimensions = new SizeF(7F, 17F); + AutoScaleMode = AutoScaleMode.Font; + ClientSize = new Size(800, 647); + Controls.Add(splitContainer1); + Font = new Font("Segoe UI", 9.75F, FontStyle.Regular, GraphicsUnit.Point, 204); + FormBorderStyle = FormBorderStyle.FixedSingle; + Name = "DrugIntakeMethodForm"; + Text = "Лекарственные препараты"; + splitContainer1.Panel1.ResumeLayout(false); + splitContainer1.Panel1.PerformLayout(); + splitContainer1.Panel2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)splitContainer1).EndInit(); + splitContainer1.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)dgv).EndInit(); + ResumeLayout(false); + } + + #endregion + + private SplitContainer splitContainer1; + private DataGridView dgv; + private TextBox tbName; + private Label label1; + private Button btnUpdate; + private Button btnDelete; + private Button btnAdd; + private ContextMenuStrip cmsMedicineProduct; + private ContextMenuStrip cmsMedicineProductCost; + } +} \ No newline at end of file diff --git a/Register office/Register office/View/TypesV/UnitForm.cs b/Register office/Register office/View/TypesV/UnitForm.cs new file mode 100644 index 0000000..8d969c3 --- /dev/null +++ b/Register office/Register office/View/TypesV/UnitForm.cs @@ -0,0 +1,81 @@ +using Microsoft.EntityFrameworkCore.ChangeTracking.Internal; +using Register_office.Model; +using Register_office.ViewModel; +using System.Data; + +namespace Register_office.View.TypesV +{ + public partial class UnitForm : Form + { + private TypeViewModel _viewModel; + private Unit? _selectedType; + private string _columnIdName = "UnitId"; + private Unit _temp; + + public UnitForm() + { + InitializeComponent(); + TopMost = true; + Text = "Справочник единиц измерений"; + _viewModel = new(); + _viewModel.ConfigureSettingsDGV(dgv); + UpdateDgv(); + UpdateElements(); + } + + private void UpdateElements(string name = "", bool enableButtons = false) + { + tbName.Text = name; + btnDelete.Enabled = btnUpdate.Enabled = enableButtons; + } + + private void UpdateDgv() + { + _viewModel.SetDefaultDataSource(dgv); + } + + private void dgv_SelectionChanged(object sender, EventArgs e) + { + if (dgv.SelectedRows.Count != 0 && !dgv.CurrentRow.IsNewRow) + { + DataGridViewRow selectedRow = dgv.SelectedRows[0]; + int id = int.Parse(selectedRow.Cells[_columnIdName].Value.ToString() ?? ""); + _selectedType = _viewModel.General.Context.Units.Where(x => x.UnitId == id).FirstOrDefault(); + if (_selectedType != null) + UpdateElements(_selectedType.Name, true); + } + } + + private void btnUpdate_Click(object sender, EventArgs e) + { + if (_selectedType != null) + { + _selectedType.Name = tbName.Text; + _viewModel.General.Context.SaveChanges(); + UpdateElements(); + UpdateDgv(); + } + } + + private void btnDelete_Click(object sender, EventArgs e) + { + if (_selectedType != null) + { + _viewModel.DeleteType(_selectedType); + UpdateElements(); + UpdateDgv(); + } + } + + private void btnAdd_Click(object sender, EventArgs e) + { + _temp = new() + { + Name = tbName.Text + }; + _viewModel.AddType(_temp); + UpdateElements(); + UpdateDgv(); + } + } +} diff --git a/Register office/Register office/View/TypesV/UnitForm.resx b/Register office/Register office/View/TypesV/UnitForm.resx new file mode 100644 index 0000000..93017c2 --- /dev/null +++ b/Register office/Register office/View/TypesV/UnitForm.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 184, 17 + + + 17, 17 + + \ No newline at end of file diff --git a/Register office/Register office/ViewModel/GeneralViewModel.cs b/Register office/Register office/ViewModel/GeneralViewModel.cs new file mode 100644 index 0000000..e4ec0fa --- /dev/null +++ b/Register office/Register office/ViewModel/GeneralViewModel.cs @@ -0,0 +1,113 @@ +using Register_office.Model; +using Register_office.Properties; +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; + +namespace Register_office.ViewModel +{ + internal sealed class GeneralViewModel + { + private static readonly Lazy _instance = new(() => new GeneralViewModel()); + + private RegisterOfficeContext _context; + // Хранит все открытые формы + private FormCollection _fc; + + private string _pathReport = Environment.GetFolderPath(Environment.SpecialFolder.Desktop); + + private int _doctorId = 0; + + internal static GeneralViewModel Instance => _instance.Value; + internal RegisterOfficeContext Context => _context; + + public int DoctorId { get => _doctorId; set => _doctorId = value; } + public string PathReport { get => _pathReport; set => _pathReport = value; } + + private GeneralViewModel() { } + + public void Initialize() + { + _fc = Application.OpenForms; + _context = RegisterOfficeFactory + .Create(Settings.Default.Username, Settings.Default.Password); + if (RegisterOfficeFactory.CanConnect) + { + _context.Database.EnsureCreated(); + } + } + + /// + /// Настройка внешнего вида таблицы + /// + /// + internal void SetDefaultSettingsToDGV(DataGridView dgv) + { + dgv.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; + dgv.ColumnHeadersDefaultCellStyle.Font = new Font("Segoe UI", 12, FontStyle.Bold); + dgv.RowsDefaultCellStyle.Font = new Font("Segoe UI", 11, FontStyle.Regular); + dgv.EnableHeadersVisualStyles = false; + dgv.ColumnHeadersDefaultCellStyle.BackColor = Color.LightBlue; + dgv.AllowUserToOrderColumns = true; + } + + /// + /// Настройка имен столбцов DataGridView + /// + /// Класс таблицы БД + /// + internal void ConfigureGrid(DataGridView dgv) + { + // Получаем свойства модели с атрибутами Display + var properties = typeof(T).GetProperties() + .Where(p => p.GetCustomAttribute() != null); + + foreach (var prop in properties) + { + // Получаем свойства вложенной модели с атрибутами Display + var propertiesIn = prop.PropertyType.GetProperties() + .Where(p => p.GetCustomAttribute() != null); + if (propertiesIn.Any()) + foreach (var propIn in propertiesIn) + AddColumn(propIn, dgv); + else + AddColumn(prop, dgv); + } + } + private void AddColumn(PropertyInfo prop, DataGridView dgv) + { + var displayAttr = prop.GetCustomAttribute(); + + dgv.Columns.Add(new DataGridViewTextBoxColumn + { + HeaderText = displayAttr != null + ? displayAttr.Name // Берем название из атрибута + : prop.Name, + DataPropertyName = prop.Name, // Привязка к свойству + Name = prop.Name, // Техническое имя столбца + Visible = prop.Name.Contains("Id") ? false : true + }); + } + + internal T? GetActivatedForm() where T : Form + { + foreach (Form frm in _fc) + if (frm.Name == typeof(T).Name) + { + frm.Activate(); + return frm as T; + } + return default; + } + } + + internal class ComboBoxItem + { + public string Name { get; set; } = ""; + public int Id { get; set; } = -1; + } +} diff --git a/Register office/Register office/ViewModel/HospitalViewModel.cs b/Register office/Register office/ViewModel/HospitalViewModel.cs new file mode 100644 index 0000000..1578738 --- /dev/null +++ b/Register office/Register office/ViewModel/HospitalViewModel.cs @@ -0,0 +1,170 @@ +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.ChangeTracking.Internal; +using Npgsql; +using Register_office.BaseClasses; +using Register_office.Model; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace Register_office.ViewModel +{ + internal class HospitalViewModel + { + private readonly GeneralViewModel _general; + + internal GeneralViewModel General => _general; + + public HospitalViewModel() + { + _general = GeneralViewModel.Instance; + } + + /// + /// Привязка данных к источникам данных таблицы + /// + /// + internal void SetDefaultDataSource(DataGridView dgv) where T : IUnionId + { + switch (typeof(T).Name) + { + case "HospitalAdmission": + dgv.DataSource = new SortableBindingList( + HospitalAdmissionWrapper.ToList(GetHospitalAdmission())); + break; + case "HospitalDischarge": + dgv.DataSource = new SortableBindingList( + HospitalDischargeWrapper.ToList(GetHospitalDischarge())); + break; + } + } + + /// + /// Настраивает таблицу под вывод данных + /// + /// + internal void ConfigureSettingsDGV(DataGridView dgv) + { + _general.SetDefaultSettingsToDGV(dgv); + _general.ConfigureGrid(dgv); + } + + public List GetHospitalAdmission(int? id = null) + { + List res = _general.Context.HospitalAdmissions + .Include(x => x.PreliminaryDisease) + .Include(x => x.Patient) + .ThenInclude(x => x.PatientNavigation) + .ToList(); + + if (id == null) + return res; + else + return res + .Where(item => item.HospitalAdmissionId == id) + .ToList(); + } + + public List GetHospitalDischarge(int? id = null) + { + List res = _general.Context.HospitalDischarges + .Include(x => x.FinalDisease) + .Include(x => x.HospitalAdmission) + .ThenInclude(x => x.Patient) + .ThenInclude(x => x.PatientNavigation) + .Include(x => x.HospitalAdmission) + .ThenInclude(x => x.PreliminaryDisease) + .ToList(); + + if (id == null) + return res; + else + return res + .Where(item => item.HospitalDischargeId == id) + .ToList(); + } + + public int AddHospital(T type) where T : IUnionId + { + try + { + switch (typeof(T).Name) + { + case "HospitalAdmission": + _general.Context.HospitalAdmissions.Add(type as HospitalAdmission); + break; + case "HospitalDischarge": + _general.Context.HospitalDischarges.Add(type as HospitalDischarge); + break; + } + + _general.Context.SaveChanges(); + } + catch (DbUpdateException ex) + { + DeleteHospital(type); + string message = ""; + if (ex.GetBaseException() is PostgresException pgException) + { + if (pgException.ConstraintName != null) + { + message = "Нарушено ограничение " + pgException.ConstraintName; + } + else + { + message = pgException.Message; + } + } + + MessageBox.Show(message, "Ошибка добавления", + MessageBoxButtons.OK, MessageBoxIcon.Error); + return -1; + } + + return 0; + } + + public void DeleteHospital(T type) where T : IUnionId + { + switch (typeof(T).Name) + { + case "HospitalAdmission": + _general.Context.HospitalAdmissions.Remove(type as HospitalAdmission); + break; + case "HospitalDischarge": + _general.Context.HospitalDischarges.Remove(type as HospitalDischarge); + break; + } + _general.Context.SaveChanges(); + } + + public void Update() + { + try + { + _general.Context.SaveChanges(); + } + catch (DbUpdateException ex) + { + string message = ""; + if (ex.GetBaseException() is PostgresException pgException) + { + if (pgException.ConstraintName != null) + { + message = "Нарушено ограничение " + pgException.ConstraintName; + } + else + { + message = pgException.Message; + } + } + + MessageBox.Show(message, "Ошибка добавления", + MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + } +} diff --git a/Register office/Register office/ViewModel/LoginVM/LoginViewModel.cs b/Register office/Register office/ViewModel/LoginVM/LoginViewModel.cs new file mode 100644 index 0000000..c68c76d --- /dev/null +++ b/Register office/Register office/ViewModel/LoginVM/LoginViewModel.cs @@ -0,0 +1,43 @@ +using Microsoft.EntityFrameworkCore; +using Npgsql; + +namespace Register_office.ViewModel.LoginVM +{ + internal class LoginViewModel + { + private readonly GeneralViewModel _general; + + internal GeneralViewModel General => _general; + + public LoginViewModel() + { + _general = GeneralViewModel.Instance; + } + + /// + /// Проверяет логин и пароль на наличие и соответсствие в БД + /// + /// Логин пользователя + /// Пароль пользователя + /// + internal int CheckEnter(string login, string password) + { + login = login.Trim(); + password = password.Trim(); + return _general.Context.Database + .SqlQueryRaw("SELECT * FROM check_enter_in_person_account({0}, {1}) as Value", + login, password) + .AsEnumerable() + .First(); + } + + internal int GetDoctorId(int personId) + { + int id = _general.Context.Doctors + .Where(x => x.DoctorId == personId) + .Select(x => x.DoctorId) + .FirstOrDefault(); + return id; + } + } +} diff --git a/Register office/Register office/ViewModel/OnlyMenuViewModel.cs b/Register office/Register office/ViewModel/OnlyMenuViewModel.cs new file mode 100644 index 0000000..1de8141 --- /dev/null +++ b/Register office/Register office/ViewModel/OnlyMenuViewModel.cs @@ -0,0 +1,37 @@ +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.ChangeTracking.Internal; +using Npgsql; +using NpgsqlTypes; +using Register_office.Model; +using System.Collections.Generic; + +namespace Register_office.ViewModel +{ + internal class OnlyMenuViewModel + { + private readonly GeneralViewModel _general; + + internal GeneralViewModel General => _general; + + public OnlyMenuViewModel() + { + _general = GeneralViewModel.Instance; + } + + internal List GetReport() + { + List report = []; + switch (typeof(T).Name) + { + case "Analysis": + List temp = General.Context.Database + .SqlQueryRaw("SELECT * FROM get_results()") + .ToList(); + report = temp as List ?? []; + break; + } + + return report; + } + } +} diff --git a/Register office/Register office/ViewModel/PatientViewModel.cs b/Register office/Register office/ViewModel/PatientViewModel.cs new file mode 100644 index 0000000..0c96568 --- /dev/null +++ b/Register office/Register office/ViewModel/PatientViewModel.cs @@ -0,0 +1,169 @@ +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.ChangeTracking.Internal; +using Npgsql; +using Register_office.BaseClasses; +using Register_office.Model; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace Register_office.ViewModel +{ + internal class PatientViewModel + { + private readonly GeneralViewModel _general; + + internal GeneralViewModel General => _general; + + public PatientViewModel() + { + _general = GeneralViewModel.Instance; + } + + /// + /// Привязка данных к источникам данных таблицы + /// + /// + internal void SetDefaultDataSource(DataGridView dgv) + { + dgv.DataSource = new SortableBindingList(PatientWrapper.ToList(GetPatient())); + } + + /// + /// Настраивает таблицу под вывод данных + /// + /// + internal void ConfigureSettingsDGV(DataGridView dgv) + { + _general.SetDefaultSettingsToDGV(dgv); + _general.ConfigureGrid(dgv); + } + + public List GetPatient(int? id = null) + { + List res = _general.Context.Patients + .Include(x => x.HospitalAdmissions) + .Include(x => x.Prescriptions) + .Include(x => x.PatientNavigation) + .ToList(); + + if (id == null) + return res; + else + return res + .Where(item => item.PatientId == id) + .ToList(); + } + + public List GetPerson(int? id = null) + { + List res = _general.Context.People + .Include(x => x.Patient) + .ToList(); + + if (id == null) + return res; + else + return res + .Where(item => item.PersonId == id) + .ToList(); + } + + public bool AddPatient(Patient patient) + { + try + { + _general.Context.Patients.Add(patient); + _general.Context.SaveChanges(); + return true; + } + catch (DbUpdateException ex) + { + DeletePatient(patient); + string message = ""; + if (ex.GetBaseException() is PostgresException pgException) + { + if (pgException.ConstraintName != null) + { + message = "Нарушено ограничение " + pgException.ConstraintName; + } + else + { + message = pgException.Message; + } + } + + MessageBox.Show(message, "Ошибка добавления", + MessageBoxButtons.OK, MessageBoxIcon.Error); + return false; + } + } + + public int AddPerson(Person person) + { + try + { + _general.Context.People.Add(person); + _general.Context.SaveChanges(); + return _general.Context.People.OrderByDescending(x => x.PersonId).First().PersonId; + } + catch (DbUpdateException ex) + { + _general.Context.People.Remove(person); + string message = ""; + if (ex.GetBaseException() is PostgresException pgException) + { + if (pgException.ConstraintName != null) + { + message = "Нарушено ограничение " + pgException.ConstraintName; + } + else + { + message = pgException.Message; + } + } + + MessageBox.Show(message, "Ошибка добавления", + MessageBoxButtons.OK, MessageBoxIcon.Error); + return -1; + } + } + + public void Update() + { + try + { + _general.Context.SaveChanges(); + } + catch (DbUpdateException ex) + { + string message = ""; + if (ex.GetBaseException() is PostgresException pgException) + { + if (pgException.ConstraintName != null) + { + message = "Нарушено ограничение " + pgException.ConstraintName; + } + else + { + message = pgException.Message; + } + } + + MessageBox.Show(message, "Ошибка добавления", + MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + public void DeletePatient(Patient p) + { + Person person = p.PatientNavigation; + _general.Context.Patients.Remove(p); + _general.Context.People.Remove(person); + _general.Context.SaveChanges(); + } + } +} diff --git a/Register office/Register office/ViewModel/PrescriptionViewModel.cs b/Register office/Register office/ViewModel/PrescriptionViewModel.cs new file mode 100644 index 0000000..0521e43 --- /dev/null +++ b/Register office/Register office/ViewModel/PrescriptionViewModel.cs @@ -0,0 +1,175 @@ +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.ChangeTracking.Internal; +using Npgsql; +using Register_office.BaseClasses; +using Register_office.Model; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Register_office.ViewModel +{ + internal class PrescriptionViewModel + { + private readonly GeneralViewModel _general; + + internal GeneralViewModel General => _general; + + public PrescriptionViewModel() + { + _general = GeneralViewModel.Instance; + } + + /// + /// Привязка данных к источникам данных таблицы + /// + /// + internal void SetDefaultDataSource(DataGridView dgv) where T : IUnionId + { + switch (typeof(T).Name) + { + case "Prescription": + dgv.DataSource = new SortableBindingList( + PrescriptionWrapper.ToList(_general.Context.Prescriptions + .Include(x => x.Patient) + .ThenInclude(y => y.PatientNavigation) + .Where(x => x.DoctorId == _general.DoctorId) + .ToList())); + break; + case "DrugTypePrescription": + dgv.DataSource = new SortableBindingList( + DrugTypePrescriptionWrapper.ToList(_general.Context.DrugTypePrescriptions + .Include(x => x.DoseUnit) + .Include(x => x.DrugType) + .Include(x => x.IntakeMethod) + .ToList())); + break; + case "ExaminationTypePrescription": + dgv.DataSource = new SortableBindingList( + ExaminationTypePrescriptionWrapper.ToList(_general.Context.ExaminationTypePrescriptions + .Include(x => x.ExaminationType) + .Include(x => x.Result) + .ToList())); + break; + case "ProcedureTypePrescription": + dgv.DataSource = new SortableBindingList( + ProcedureTypePrescriptionWrapper.ToList(_general.Context.ProcedureTypePrescriptions + .Include(x => x.ProcedureType) + .ToList())); + break; + } + } + + /// + /// Настраивает таблицу под вывод данных + /// + /// + internal void ConfigureSettingsDGV(DataGridView dgv) + { + _general.SetDefaultSettingsToDGV(dgv); + _general.ConfigureGrid(dgv); + } + + public List GetPrescription(int? id = null) where T : IUnionId + { + List res = []; + switch (typeof(T).Name) + { + case "Prescription": + res = _general.Context.Prescriptions as List ?? []; + break; + case "DrugTypePrescription": + res = _general.Context.DrugTypePrescriptions as List ?? []; + break; + case "ExaminationTypePrescription": + res = _general.Context.ExaminationTypePrescriptions as List ?? []; + break; + case "ProcedureTypePrescription": + res = _general.Context.ProcedureTypePrescriptions as List ?? []; + break; + } + + if (id == null) + return res; + else + return res + .Where(item => item.GetId().Equals(id)) + .ToList(); + } + + public void Update() + { + _general.Context.SaveChanges(); + } + + public int AddPrescription(T type) where T : IUnionId + { + try + { + switch (typeof(T).Name) + { + case "Prescription": + _general.Context.Prescriptions.Add(type as Prescription); + _general.Context.SaveChanges(); + return _general.Context.Prescriptions + .OrderByDescending(x => x.PrescriptionId).First().PrescriptionId; + case "DrugTypePrescription": + _general.Context.DrugTypePrescriptions.Add(type as DrugTypePrescription); + break; + case "ExaminationTypePrescription": + _general.Context.ExaminationTypePrescriptions.Add(type as ExaminationTypePrescription); + break; + case "ProcedureTypePrescription": + _general.Context.ProcedureTypePrescriptions.Add(type as ProcedureTypePrescription); + break; + } + + _general.Context.SaveChanges(); + } + catch (DbUpdateException ex) + { + DeletePrescription(type); + string message = ""; + if (ex.GetBaseException() is PostgresException pgException) + { + if (pgException.ConstraintName != null) + { + message = "Нарушено ограничение " + pgException.ConstraintName; + } + else + { + message = pgException.Message; + } + } + + MessageBox.Show(message, "Ошибка добавления", + MessageBoxButtons.OK, MessageBoxIcon.Error); + return -1; + } + + return 0; + } + + public void DeletePrescription(T type) where T : IUnionId + { + switch (typeof(T).Name) + { + case "Prescription": + _general.Context.Prescriptions.Remove(type as Prescription); + break; + case "DrugTypePrescription": + _general.Context.DrugTypePrescriptions.Remove(type as DrugTypePrescription); + break; + case "ExaminationTypePrescription": + _general.Context.ExaminationTypePrescriptions.Remove(type as ExaminationTypePrescription); + break; + case "ProcedureTypePrescription": + _general.Context.ProcedureTypePrescriptions.Remove(type as ProcedureTypePrescription); + break; + } + _general.Context.SaveChanges(); + } + } +} diff --git a/Register office/Register office/ViewModel/ResultViewModel.cs b/Register office/Register office/ViewModel/ResultViewModel.cs new file mode 100644 index 0000000..abca08a --- /dev/null +++ b/Register office/Register office/ViewModel/ResultViewModel.cs @@ -0,0 +1,92 @@ +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.ChangeTracking.Internal; +using Npgsql; +using Register_office.BaseClasses; +using Register_office.Model; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Register_office.ViewModel +{ + internal class ResultViewModel + { + private readonly GeneralViewModel _general; + + internal GeneralViewModel General => _general; + + public ResultViewModel() + { + _general = GeneralViewModel.Instance; + } + + public void Update() + { + _general.Context.SaveChanges(); + } + + public int AddResult(T type) where T : IUnionId + { + try + { + switch (typeof(T).Name) + { + case "Result": + _general.Context.Results.Add(type as Result); + _general.Context.SaveChanges(); + return _general.Context.Results + .OrderByDescending(x => x.ResultId).First().ResultId; + case "NumericResult": + _general.Context.NumericResults.Add(type as NumericResult); + break; + case "QualitativeResult": + _general.Context.QualitativeResults.Add(type as QualitativeResult); + break; + } + + _general.Context.SaveChanges(); + } + catch (DbUpdateException ex) + { + DeleteResult(type); + string message = ""; + if (ex.GetBaseException() is PostgresException pgException) + { + if (pgException.ConstraintName != null) + { + message = "Нарушено ограничение " + pgException.ConstraintName; + } + else + { + message = pgException.Message; + } + } + + MessageBox.Show(message, "Ошибка добавления", + MessageBoxButtons.OK, MessageBoxIcon.Error); + return -1; + } + + return 0; + } + + public void DeleteResult(T type) where T : IUnionId + { + switch (typeof(T).Name) + { + case "Result": + _general.Context.Results.Remove(type as Result); + break; + case "NumericResult": + _general.Context.NumericResults.Remove(type as NumericResult); + break; + case "QualitativeResult": + _general.Context.QualitativeResults.Remove(type as QualitativeResult); + break; + } + _general.Context.SaveChanges(); + } + } +} diff --git a/Register office/Register office/ViewModel/TypeViewModel.cs b/Register office/Register office/ViewModel/TypeViewModel.cs new file mode 100644 index 0000000..238de76 --- /dev/null +++ b/Register office/Register office/ViewModel/TypeViewModel.cs @@ -0,0 +1,251 @@ +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.ChangeTracking.Internal; +using Npgsql; +using Register_office.BaseClasses; +using Register_office.Model; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Register_office.ViewModel +{ + internal class TypeViewModel + { + private readonly GeneralViewModel _general; + + internal GeneralViewModel General => _general; + + public TypeViewModel() + { + _general = GeneralViewModel.Instance; + } + + + + /// + /// Привязка данных к источникам данных таблицы + /// + /// + internal void SetDefaultDataSource(DataGridView dgv) where T : IUnionId + { + switch (typeof(T).Name) + { + case "Disease": + dgv.DataSource = new SortableBindingList(_general.Context.Diseases.ToList()); + break; + case "DrugIntakeMethod": + dgv.DataSource = new SortableBindingList(_general.Context.DrugIntakeMethods.ToList()); + break; + case "DrugType": + dgv.DataSource = new SortableBindingList(_general.Context.DrugTypes.ToList()); + break; + case "DiseaseSyndrome": + dgv.DataSource = new SortableBindingList( + DiseaseSyndromeWrapper.ToList(_general.Context.DiseaseSyndromes + .Include(x => x.Disease) + .Include(x => x.Syndrome) + .ToList())); + break; + case "ExaminationType": + dgv.DataSource = new SortableBindingList(_general.Context.ExaminationTypes.ToList()); + break; + case "ProcedureType": + dgv.DataSource = new SortableBindingList(_general.Context.ProcedureTypes.ToList()); + break; + case "ReferenceValue": + dgv.DataSource = new SortableBindingList( + ReferenceValueWrapper.ToList(_general.Context.ReferenceValues + .Include(x => x.ExaminationType).ToList())); + break; + case "SyndromeExaminationType": + dgv.DataSource = new SortableBindingList( + SyndromeExaminationTypeWrapper.ToList(_general.Context.SyndromeExaminationTypes + .Include(x => x.ExaminationType) + .Include(x => x.Syndrome) + .ToList())); + break; + case "SyndromeType": + dgv.DataSource = new SortableBindingList(_general.Context.SyndromeTypes.ToList()); + break; + case "Unit": + dgv.DataSource = new SortableBindingList(_general.Context.Units.ToList()); + break; + } + } + + /// + /// Настраивает таблицу под вывод данных + /// + /// + internal void ConfigureSettingsDGV(DataGridView dgv) + { + _general.SetDefaultSettingsToDGV(dgv); + _general.ConfigureGrid(dgv); + } + + public List GetType(int? id = null) where T : IUnionId + { + List res = []; + switch (typeof(T).Name) + { + case "Disease": + res = _general.Context.Diseases as List ?? []; + break; + case "DrugIntakeMethod": + res = _general.Context.DrugIntakeMethods as List ?? []; + break; + case "DrugType": + res = _general.Context.DrugTypes as List ?? []; + break; + case "DiseaseSyndrome": + res = _general.Context.DiseaseSyndromes as List ?? []; + break; + case "ExaminationType": + res = _general.Context.ExaminationTypes as List ?? []; + break; + case "ProcedureType": + res = _general.Context.ProcedureTypes as List ?? []; + break; + case "ReferenceNumericValue": + res = _general.Context.ReferenceNumericValues as List ?? []; + break; + case "ReferenceQualitativeValue": + res = _general.Context.ReferenceQualitativeValues as List ?? []; + break; + case "ReferenceValue": + res = _general.Context.ReferenceValues as List ?? []; + break; + case "SyndromeExaminationType": + res = _general.Context.SyndromeExaminationTypes as List ?? []; + break; + case "SyndromeType": + res = _general.Context.SyndromeTypes as List ?? []; + break; + case "Unit": + res = _general.Context.Units as List ?? []; + break; + } + + if (id == null) + return res; + else + return res + .Where(item => item.GetId().Equals(id)) + .ToList(); + } + + public void AddType(T type) where T : IUnionId + { + try + { + switch (typeof(T).Name) + { + case "Disease": + _general.Context.Diseases.Add(type as Disease); + break; + case "DrugIntakeMethod": + _general.Context.DrugIntakeMethods.Add(type as DrugIntakeMethod); + break; + case "DrugType": + _general.Context.DrugTypes.Add(type as DrugType); + break; + case "DiseaseSyndrome": + _general.Context.DiseaseSyndromes.Add(type as DiseaseSyndrome); + break; + case "ExaminationType": + _general.Context.ExaminationTypes.Add(type as ExaminationType); + break; + case "ProcedureType": + _general.Context.ProcedureTypes.Add(type as ProcedureType); + break; + case "ReferenceNumericValue": + _general.Context.ReferenceNumericValues.Add(type as ReferenceNumericValue); + break; + case "ReferenceQualitativeValue": + _general.Context.ReferenceQualitativeValues.Add(type as ReferenceQualitativeValue); + break; + case "ReferenceValue": + _general.Context.ReferenceValues.Add(type as ReferenceValue); + break; + case "SyndromeExaminationType": + _general.Context.SyndromeExaminationTypes.Add(type as SyndromeExaminationType); + break; + case "SyndromeType": + _general.Context.SyndromeTypes.Add(type as SyndromeType); + break; + case "Unit": + _general.Context.Units.Add(type as Unit); + break; + } + + _general.Context.SaveChanges(); + } + catch (DbUpdateException ex) + { + DeleteType(type); + string message = ""; + if (ex.GetBaseException() is PostgresException pgException) + { + if (pgException.ConstraintName != null) + { + message = "Нарушено ограничение " + pgException.ConstraintName; + } + else + { + message = pgException.Message; + } + } + + MessageBox.Show(message, "Ошибка добавления", + MessageBoxButtons.OK, MessageBoxIcon.Error); + } + + } + + public void DeleteType(T type) where T : IUnionId + { + switch (typeof(T).Name) + { + case "Disease": + _general.Context.Diseases.Remove(type as Disease); + break; + case "DrugIntakeMethod": + _general.Context.DrugIntakeMethods.Remove(type as DrugIntakeMethod); + break; + case "DrugType": + _general.Context.DrugTypes.Remove(type as DrugType); + break; + case "DiseaseSyndrome": + _general.Context.DiseaseSyndromes.Remove(type as DiseaseSyndrome); + break; + case "ExaminationType": + _general.Context.ExaminationTypes.Remove(type as ExaminationType); + break; + case "ProcedureType": + _general.Context.ProcedureTypes.Remove(type as ProcedureType); + break; + case "ReferenceNumericValue": + _general.Context.ReferenceNumericValues.Remove(type as ReferenceNumericValue); + break; + case "ReferenceQualitativeValue": + _general.Context.ReferenceQualitativeValues.Remove(type as ReferenceQualitativeValue); + break; + case "ReferenceValue": + _general.Context.ReferenceValues.Remove(type as ReferenceValue); + break; + case "SyndromeExaminationType": + _general.Context.SyndromeExaminationTypes.Remove(type as SyndromeExaminationType); + break; + case "SyndromeType": + _general.Context.SyndromeTypes.Remove(type as SyndromeType); + break; + case "Unit": + _general.Context.Units.Remove(type as Unit); + break; + } + _general.Context.SaveChanges(); + } + } +} diff --git a/artifacts/gui/2025-12-07_18-27.png b/artifacts/gui/2025-12-07_18-27.png new file mode 100644 index 0000000000000000000000000000000000000000..986c5b616aada0078ae0d1147bf8c92d51e97277 GIT binary patch literal 40461 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 Hu0mjfE=&zL literal 0 HcmV?d00001 diff --git a/artifacts/gui/2025-12-07_18-28.png b/artifacts/gui/2025-12-07_18-28.png new file mode 100644 index 0000000000000000000000000000000000000000..32a9a8815440d99b6de5bbebaa0ac489cfdefca0 GIT binary patch literal 24250 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 M07*qoM6N<$f(?tOy#N3J literal 0 HcmV?d00001 diff --git a/artifacts/gui/2025-12-07_18-53.png b/artifacts/gui/2025-12-07_18-53.png new file mode 100644 index 0000000000000000000000000000000000000000..995f6d3d8e7a166ea1f72cd5c7ef257769e180f6 GIT binary patch literal 48484 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 T=dkkP00000NkvXXu0mjf;*|Jr literal 0 HcmV?d00001 diff --git a/artifacts/gui/2025-12-07_18-53_1.png b/artifacts/gui/2025-12-07_18-53_1.png new file mode 100644 index 0000000000000000000000000000000000000000..dda786584c31fe4f755df4ca3e00df2b6915650d GIT binary patch literal 251100 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

I04V5#05lUTwVoiQykw;jUN7&- znSq_F@!V|=oF3-x$j?vyTg;?@D)4m#ozr>{)sxqF^+MJV*miei!7|fT3ZAt z;?0L*XFw7tzVIMZDdSe*NOz6F=uiwk2p~~vM>9qiFaA=`Q3U-Ohcm4!N!ez$9kkkPl{6?c`RAoeB$5DQ#lYTXXdUmPC7C3$2hAqMi~8w{MkLwDRn5 z0-(^>#0gujtU*+uf<%MFGh6fP%k6$*5~&3_x5Gvb7cabW_|~u378Pa_6;Xjx8mWTH zA!aecdtug;MTD~`y#P@6W)zsf1uhSLrA%3>nxKf#6=g;x6oGdlnqlbs-@Y+FTnyAz zFHPG;uAVw#0}PcS&-l#Oz9X69#(SH^#zz^yF8sw+wS^w zc4xjE)zwy0ZP(R2rst>gK?qmss!~*~sC zGbVM8vxwU1W~G(0#_2ac+WVbrY1!FBqy8-BNlZp`*-rQBj~^~iRQ{=*U>UBolfe>= z06>JxC`~X?vBXdt1ZJu(Q{fuH0y#^+VUE+fDWKcKzsB zKY2$1In~2vzhi_nD7m*3@n($Oa`)uPwq1^^V3efx!RKPn;qfgjqwc5lFFvvV!nM5x z^lKj4{;qeNTCk9&96oCKv z%J{OFnQ>)&;E60C1fq^8Q%=2`mc1^Ucu%=@*OqzB2V!E$>M@WR?DbA( zl}hEf%)0Gj;Yj5qE`Tizkl=LS2r;Krh-ewaY8y31S(j@Nuq>rg+9rSzicF762g?Np z0w?fl6xrDN&<9?A=fgXKVh9Wtqc9^>L=vYXavt25&#L=>#_>U85lpUJ*nTIMEPb zaOjMissL&y%Pb_F%Al(DmlA~CL_=dfrU=O!8&@tLH8(6WjT(Gn-`;*^E5)?m#uMXu zmb>Q;+Mah#1mwwnukYQ7#!uTcNp@v23#w1;j&~XyEZbXip_4A*uysw=;20cLsY(Zo zdnraID-&ZuhPWb{gcCB$VQ1r@m1^x$(FZ(zGF+LZ|9EY3qHeaU@X}<~s${ZO={a|0 z%5y{U0%rI?vz6EbhLojWXK~DPakW{5b2(*o4QxTCRZ}gss*aY$c_W1;>N6k|N#}O{ z@R?gr?)IIa1R=;e@x2(Zz1qX}un0(T4_UL>%IO^(%-~eA75{3Dort(;8#_hTy}4eW z=1)!+U%uNvH^RZv{_utl98_i4k2DdbIAtb{p!l4#ckafGYj1n>kuN*j|Miy-FHV+E zo!Je{|L?Q=BZoh{bh&YS+nXMF&!a=B72Prg`kvUmk)Fpm#xag@j4vIM!Jv*+ZR#l? zv#8^m1h%pbE3&dRM+_1~y;x@wga&#Cubf2@Xz3HIdHUjEO~pFsbOG_m`C@x! zD_JMAEIRGgc5CJvg#eRiPEo5&BX@^srT#1-R{|P*MOzpa=7bcY2tq0J!d?}71Ibwz zou({Kt!2>|-VHfm21fxG_p630vXV*)HI9~UA-iJ}w_**7cgzOAu0WHO2uJO@)gc*B zIUFXbJ(Ky7%nu+YO_gF&?^*2iY2s=V1%rck%%&nD;(~7U`iC(;zA@+wi6pVtc7%>X z2$eYHG)l^Ff?39>(w<0g%o*1gR)&x%Qyk9roBhr9F#$32{ZTYST>mrVjawB9QKofCUJiTLoWNp*F9ZfW`ZQGoQZQB#unb;HC=-9SBaVH(yp4iqu z=k@&Vr$4~a>&3CER_#^$R#U{T&~GVWr(+P<$jzMD)^{X_)Cv;pHD$RJ%}oQ7ils?P zp-a6NGik`NIqh%b=*R+3%b*7b!yYf5jP)+R?x^$6yBNd!eR5G$=bYly<3I$7Cb9C^ zPTT)o!E5TkT|Rn0@p^1csS`5-^4&lvp^IZ@=^c=+g$gaZ7JuYuR}z^9&5wOBDoaYR zs+#%m?V_k%uuCIoc&cjK2Pf~yo>pA|{_$BX#uST=GGmnt<8}@RS7YVqO6UUvA5}Xh z%+-vIp3bZxR0IivL(Wt5l^_xGLUa(rMTL0yNq)Y6h3$7euIr&*sVT2A zZse+Nnd*m4Iwr$v2UjL$Le=;6ts3^Xe5;D*(ns}ZKpmU2I+9MLOvbGty6opfPOqc4 z((_2`dsrb@{%;uT-{F%-&DP8E zC)9x=>k* z0R6Z3BQ57`d_<9kU8O+St0&8Zg~f?vk+$^z!XYaTI4t`%Nk_>uNhN6AIy}iYK$U@?XF(e%oTnUwtun+wIn~rtGsEzGX{H+advBtl{Pm74XdLD`+@n&3&2v;V0H<`FMsa4d? zC1JRqcSd@g{Ib#Xa)M3jDAQIJH9)%vTE}vt_6>&vq(;U z(n@nly6X_j5ije-QqW*S&}-||Lux?ANvN!jpkO7EIvqg*UQ82BM>-^F-E2veJ7Myx zvjOAwryoX_P>>es3jS!GO?;UWAu~=tTdF|4x?U?c?+gW+3rADg5U-fNSZPgi3n-)Ubt+24d;cq(d*)HT3EhWQGs6bJ zBdX9gmP4|6E|E8?B&t|}jA~2ulg(PKZG^Qn@V;H({kada0uy6wJQtdV@e&`;jG;@6 z)=n4i`Zl%fN!)N-B=SA9QY!?^abWjCjItxtm-J6evcasql~52%a$T!=t@I; zd3J)u4v>NKM%G9!(Ra?3d)Cgiwt@&$CMC->>lU$wtnv`euBti*dc$QDw`E&`z?P+@ z&A`Bz$wsRk=|`J09){4Gu|VV?`>wakTEF*qYEgi2xT-reb3s5AC2aBTzD!S_N~rm- z{8P$0jVQdrhe|oAGUqV{5Apa)lYa8wErdabW~Mf;w|DbZPY~>v}n-3%*BuY^WiQmM1}&WUCeMXW4XMWumt4 z6b zV~%HbY`NY89o|k#w^&s2n-a)8;kfVgOg&6kI#-ciOoKRrG)Er(|Ck5M7*Z!=_HVFH zOgS(i!bFevvXv@D%hBYI9DeVl&qDF=aeFbeg>QuRG*KQ)LjWA{c->o$QIq`nV9a&wac=_xg(-KQo7;-k{@@DPs z)$CPlG)udNJF+T_dtzP)y#6MqkiA~lV;^oziBF`&*u$N*#r-F+;+=dE5xbQem z{t2F2?H0%uxjPr{fXi3JmZhi)#)k7r9>itKDp`UAXv-43U{##Kl^2S`(PT>4L|nFR zg7l+=kct3Ha^ZQTA@ZSzgCT3JVNzu>JbQ!kpt&QvSa&amL;#LcXBhU8eocQm4xJrA z;sEbl4$LfQH&|6g_&YcUwMNV#507hlf68yRx zQ_3(IMo}cW9K=Jhf|t1?5ChgN!5n?gryH}+;k8xx89HpRR!FW_)Jj*O_Q4&A#iZCS z$ncf-7$uBnkQC|qcRZpR@1ytD&m8K3h_3xl;#}!$k=qJwLb?yf> zgtX*sTRkf-)0FHgU{!WGjks8RGDi5QeQo6T&Ye-75r%h$Xo+?$Kww?j{z0>jRiVCl zL?0;wP>aBg87Rkr6Z0B5v-^;bN@kfP*FEWS!AHH{4fG>#a{>C?Q~cnGU_JC zXD>9r-dk=}krz5+j|q`TWw4WdZRqJA4?&o>|E-srO@=J*`i15du=;kCdN0M85Ll7A zRNCshpMR<;k&gmQ#g(?K%{t^ciyBxS4|Vmb%yY+^_W)vZqHfIz&9w=~s~ z2!|gNM$pvR>W_kCZqF+_v(NZKkF@9UNRk|k5&*S;m+#W$rvkSk10`?c(G@+9f@?3jAf1cc7KIaJBDUXQOK@U#P?G7_aOK8fSJyjYJ_UL=an;Lo+0Jf|pVH#-8c*?SAvRfwK?#x!eUjsgZh zpeDv)k!YC&%Ltp9ry}x||7gdX8q(Vr*5-jc>9`m?^{Ed!>z-pd?Z+yqOyegsL;Laa zWxHTx;+ipuCnz^M6*TOTt;-R}B^iI;18$)+XFW7+eRf;s3|nWEU_^zz=x4JN)pU6Z zD)O{W06f410ZUY~PUZ4*9!DW*s^&oCq4*+|oMO5kG_17mv-x>PR*&j@g@>ZCm zm2e9p)qqTSg6J=Qy_$|=t{`JWck_L6Op5_4zH9tnchD)k)+rtX3&>&9tllmltR+L8H0;;136}af2 zpt=NXNKz`tKlcvA+KokgQ6gxPl(CVY>}pgQ|M%fS>l+o8i_3y?hA_m*9bxVonZ076 zOLZasQ|Gl>pmx!|5@?fRE51?2Q^9$^E7~IGL@`hHU`UfkV7SUnP(B_U&&i1g$*>aN zPcn_bCHLJtT#d}vMCe3F(rpt?L4fDArE+n*__x0hIH`5%Op`iZ9?hM-O_xGef7^hZ zcjCm)W2f>^$dmYAmxCG89Oxje?_geGRcBr(RC09Khh64#&deyqmT-CyGt30Wy!@9k z{Beps4gRYUu*$)UAfbm08)2pvZTT7^?hJm#hZ&Nb4)CCx+wmBJirL&0DcF@|Uj8SH|Wbf*k< z+{gnSz%rW{kT))O&3;57 z*LNOt=?M=@w0zNr%Ikt#o2k_EIJEWl%m4EWQLyJq+QV*L*9ohuIK}af-3K&JOJ-h&R4W+kV0ejD8pjqfRn+YUNHEE= zfzBO~v}7RH`LgrQu>5MyE7#bnjP;_Nw-)rzuz>?7Dh}qjyoO`5&1-1+;3+A% zYPL{HD2u2?eSV~))Rqm4FY|XG@wY zR)_eQif2LVi-5kCMM?|=Hr4EDX~9ft`=rqR-A{}8JDP>f9_nH1J&ZuzX7T!sS_9C! z{6#y&TKXv*i;|8j&f#Vw6VJ?7S9*F5(ZBh<*i*&G}RW^>c^M`4tP| zwcq2bcg)NeRqFYZJiJTzOYd__>pG4e=ZD>?^2PGS6$Ke!a$!8Qst?t&-LlFm7}S>h zGYtLZg$H6Z();_XgNd0~3#Nv|de$6`?|fTQZ1k}6Nc|aO!oEYvQe?Dg8Az}ocy^`1 z29Xq#E)z=Xy=~hhD{Fax4~wj;-<1W^1%c??60As92`EYxAI}OUO+CFvE5q0PQtUvl z*j3bYg=L+=P|WqoCrC8F*GaF0on5NVWZ~gzqzgrS($bN(KI*pkhb!y+z?A(^%64uu z>&JBY%28|DmQPoY{l@zU|Kp;D$@3W&d&2JR1XJsy8>W2E^LQi_#PR-H4mHiDQdES{ zB-YFciiKx`eL1J*UmeJFe!u-Y&1w_iW6!PlNSyzxBJn%m{2TzD>($-$u6=s?c^3SB zV6%Dupegw5%}iMJaM@G%VoiAaUo;ebOG(J0i#zS&Qz(=eAvaISHtlh3EH0uzaxKVk z12#HQMSxu(@6FYAIi5|dO$V6LoK!#ea+OqgKYvE~BIo>xc zL%}#115rNY6wH-n1BowK)GU zU0`^9@!{Et_x8+Wz>a%weahL*J-I8=eo^sI6l|u$#nU+Z&52+_GE!JneJ+%FpC@@zzo^BQU_>EDYl1b1S8J}Je)2=*PbN6tKoautY)kl?O?)P)hlr4t9nA44hh z3-B5nCN;hv!m;eX!zzQB;pm9b*cIVTXsL^*YXAPz@=xD!Q6lvVFgD8+8J^kS&=)z3 z9U?CwliMk0Bn7Mf3w0-z3RnBh4Q4?50?=lX^vhL44aur{Mq%suI?2$(6$+mtpW|yT zu5L3@tO@7H8ag0ZreY*s6dBx?7CvkMqeO{?8hytgYC^;5^T&dMhV^G(L-)JM<6ZM1 z@j8z{<2rkyD1q1S!@;hA3G<3CVd>jUa*UP zkVo-`eB8QmZAvB8j>8kdy;$4*z5k=(`scl%=h|_r!6IYlVe=OU-|(})wEMi%@Zs_j zx6AkT%R8R$e{JZut>5dqtoC2VzHY^vy;n0Mrj%&q_Gm1|aPa-s-4}t!ij@6WB$Y;C zMJpzhj+R4mECZIjax#jbG^w6fu7;#N$*Tl?>Bnxxf9Lfmtt)ZN&V|2`U6h<&*e5m8 zwcZ<0j+hx7%+45=K#|R27Lm~mj_N_~)aZR7hoX0{&7U~fg4pJAn zoLAzpzmT@B)uJiL{g_S@=dmxv?-f5M%rvO6Q!oa zEK$Nl?Km`)Lx7*m+_cfvbCQI#mv9HIlY~0mYy0G zBvQxr`WIyoF7eAiw@MvO8vf0JHbn*rf|RiW>|dfw2%R(^46~~k8x)MBX^L-;Aa8v2 za=E8x8)A`;^E^o(#q>R5U5-)pJ%Sm{bA6F2`jlHR-q{1(~5H zsp4)=5PLyZ1-E#OOEJfy9u9(!%jO62>qOgYYaR+9%GS z;iWTT&(Oj-T%cNXI^B1TTD04_+NopyE}%c(s=7Zad?JoioM+ru^OW)i7juB%MGcmV z#%kC+>%1kmHfJ2k^L^&-!9U+pJdfi(-bv{hn&6Vx9`<^ zZ`y&}KA-sZo(1A@Ivp(!1;Knb^|HNB!8O&@KacKvAI&bFYg&6>SjD<^{r6XGkdZFy z>66Q^4@Uf-3EH=n0YFiLT@*uO$MW@4v(_Yl#tVmD%y=IwZP0WeE2+6^Gt)pI=D++< zyxgdv8dC6na4O&;l^g3Jo-dI4|7HOK4*MGj10b{$lBK7ne%Jp!dbn{d>R)?c5DMk+ zva#Tx_k<2@ZmFH@vK7$@*IWF3Zvb~|q5v(Ef!Gkd(|gkf&8PDRw=;Sp)DUj@q*`_3 zVppM|(avL`t$q1`oU<~IHnJ9j1j=4cW7|uLu^9%RO$v2(Ah1S?NehZVv`u87=O-ASi2v5{!15)u|(xrRWqsl!h_kG?CHU=J{>0V^l|CaP*&cc*RI*Y zm~t~l#Fm{D%ENBhg@}sCaOV@pAt*aB*pr_XBtQ+YvSMYoqm1YJNqOTE)g>^IEHy0& zRCJsn6O8g>4Y5LDQlfT9u*(G)#GrCXd;mo3BAQFm)+-Rk*nMfGQP~Y|;L_)#hg{y* zYt!Il&+dq+yx1&RK;~eQH<&er3Jbh10+(cS)c}@HIM)iAnPkQSHJvV4D+{sCRE-4I zxAGejT4^R_&UEH=YmD)8MlhpedN5EawuiO2*=5F5O;S+K|~T||KiOCj4swn77P zCi$td2II!Mac%|2FRT0K2;n^Oa7ZN*)xM|lsi|5++%F7gYMEYoqMPy!-eXGXD2;>a zGY*f15Gx*((i_i1FT5)p*}vBv9IW;jul$A5s+Tx}W$)okL9WC{!20XJ=G*f~rM86y zmR_wmEGKI*k0={fHTMn$P`+~2`^RyGPRD4OBgbXcq~ieBc$2}!m%lyAM8br31+vr2 zZ*$A-aKi8i?ie^UhWvI|TI)Ue`2e}}I->g$q}g>cnDKenSxnac3VJP>>UpjJp2Ur) zu~To|%v${Tq-J`%ImZSr-~IhOSxLLRxZuC+yx_dtT>1KWZVBoc_S%kB3p$@S*S=3Y z`dNE>TUc0}qC0Fpr)_;K7gXDN?{wGt?r+3>?LxCS+WL$m_C0usVrK4=D7@^n-G1$H zc&#SpTlVaE1UM|@ZW=b-o(l53&K&jZD<5q8f4BGji`;X1v$Yqt`TI`Y;d$pVoB4I? zWiYF^-s+=*U+}-AuoP@Y-&hRn9{lEJl`4-u8A7JP59x9x8qXs=i^ed^7O9SJDPf5< zj|9EshM`l2`@{JUGD}@Nu&XYPV{S2M9FyF4(`ha`ihT=8{*U(2OS?x1ZDjE`SR&Wz zc`b-=>so_piDIELH#>P8KI?-93xcKsadU19;GOWUYRQ^17uBd$FawF8$OL{FJipB%3vkYt#eiiX}9dgjYfZ|D2Hyk3S zT>g01;^@WAUux!!x>*fhi{1R6z{Z*hLVdH;W;yt|8d7Ym&Tx|G z`NIs#r-o8kv1HKAv{fUQ)Bah0$byBv-__sTjOY;z)&;;&0orqmO>O(>tO7?AtA1z4 zO&|=@MN!wkB1H!4M3XROKXc3hIogo$du=)k-{h)j?I5jEwY?u~X3C=DiyhXR4w6{Pcp{Q{_kZvLGj^f5{GFKHK{E4!w~O~RH;b(znU#~# z80m0ez|cSDU?%Ryb5?9>u9{q|yl@ppKU$nWvEAuU)NSB}ppPNdNQD_tA<)YLb9}$b zSz)7Ol^Q1$F&kt)N7xKbs>Y&O{MY?VA7h~Kf#tb<@A5kUeUf3V+TsYEnz`NUK7ZqB z<~GWr#v2UdyMZha3#?(FOnVg+aof?rS2S)@sRFLO6H=mWMaCH=u*iWIpo;yE;dACE za>)~HS{M&IGH z)ZuM3!m#HZ66StO{_~00pO<{TbMp%{=el(ti`><6_q^`5^-2Hva`|!G>vd~(u>Id5 z-s^i`DaG&Y#_l?Oar>9!`J`g*rpwXB0k+4+%5f zL$6y`d%fOs^q(_~ngr{&VVAGl^}2qCVLfWUZvNBTG|?1TZj{7ft#LDHITIR&7_5~F z(XEnxv(Psr1fzqqk+6U%6b0UAAW2zomS?~vEI<>|qArM4aZ7Bh-TJyJ8tg5Kxbv^z z906jH&z;ViIS%!LO|qj*v=5+OAFxgUyiT-hJSdRwxwN9je9Otne?qLTnS?Ud2LfD)~`a9e|g&9?{ zF<(89Uf}7QUIe6Z%qY-BATs&`egJ$vJ{~et#v+;#iaoS3Yq-=*Bug|R&KSj#xG)>7 zF&SVzj@p*_lp&o9T+C(4d3D3dhm)Wz{N$DRizx2%&Rn8u(rc8<0&qU|_a9a}8VIP% z1^Q^BpCQ$_nm?9e#sVf~i5{|H|xQd-k-^yNV*XOBkj^s;bR3mAYY{<-5EULgA5J;3vj_ItjsPSqd~BaONS>%WEF-g zQl5Zu0TIY!_NRd0d^DS?AZd|aJx-SRv<&PqZP*7X{u zO$0BIXii*bwTuL|g0XkJQ||(~WBOHFwP=#+%7WXPfC5)J-2yy*Z?kV!r#m(ovl zZ=-8bhqoM$_2-k^-|zCyG^1bIaZiad&xV2#Md>d7s$Rsqw0z}RB4zV$ArM4>2nIK# z4c0NPjV2n*Hk3j-I}r0*0GRSZl)F$CXtG^t-7j`cmS14<=7;?+6k6H}5W=}Y zP#g>0)U7$bu5<+w?9(yE1~)V6nB%r^k~VmDF7|kLWBNLEs@M#V^J3Rh85Ko!ie*1( z4od?vhvXDb8`Il2icitzwGb|BYL7a8sYT9Y@uqnvuD5H!!>)H?*6_``P{1;^Cgbr2 zg8m7?WRS=)M5__tm3q2#b+27qFdXWCzsf|{G++e?xcQ!ctn5aX2yD5NU$(B=V+=5q zl-7R91w8<1Gn3I`!f<0}Bob=qIJH^Y37Oo9=oOSfw)kWN+ZyZXGH8;&cwq<>!AWdI z1bOg~4_|$b^JIfo(PSp= z)Ux-uup6aLNIy4(Rmg!-bS~r7`akU@Vwroq64gJh0;|7l2K7YQxF2_KK9#3AeAUbh zc53HYGfxFh?j=-E<-2kdV3%dqV@fk!q8icG=kqZXph?u!?-me`4r5g|Q&Z-oKa^8$ zn?sN19DFD?&NI{Af-OJ-&+V^Z+aFUuh4F2PAN?<4S0=d)9?QIMyC2tQT8Lk^dXJq; zmS!}&4-!t_t{r@L2k8xO{sGeLh#!TSnV(XDhTaD+UMsf=M{i#tc~mq`rQKlI?X||k z&Oy*w5ZU3ijs9$Jk^61Cv&MU})Bl41>6ytyFc)dl}zjZH_>B z$Yu}dpTr-h8~&HHngV8fqllV0IAM-eR;$^yL@`p?IGpsLpB66fTB=bj___YJ2mQFv zR?Jb?tl6Sm`z8*hOuu8arDW+S)tjU98V3SAXPuH#ty3^&u9S*1NO8d_2z{10*ekz* zTSCDd(tw$uF{fhq9u}$KgpO)kBab+Y zInfACP9JQmCyny4)@TiLK%ij+GaJh=rd09&!cp z1iOmK2v62#Ey&C?%Y&y3(1=HEKBpAV6h>E_TAO0J;Pqz>p&QPLD+}onpN!zd7Li8-Lk-6nin8W&it4V>in0q6HwiCkk`U*L`%G+n>f0%^W0o zv;1)|V(|NK;8WhbHS?!`kDLGeD^1WwVT*4zCj7YL!({JUgX9LW!CfQv=Id&!?_>SD z*R>n5T`wP6(tpJ;49UcVTpt(!pOB;|Z2(Y8t{%pe86TJm9tf4L?Y_xHbr`}*ZpK4O z`y8P3XXno>fw7O#Vs6GU+v?~ql_P!+wHTWehQ@o`O7iN={UF5d1m9jglrwf!le{vg zP3ddrQ5ks^Xm>W26+5G#%ekex%a1%1R?@D&_j4~MOWp}zEsbiVW=H0dFNNWm38s`c z3SU^lGzyLqvE<){n16KP%32O(APlrJDgi+tTDcdU-~+)MS_ z?uyHGHh7FQEWf?O$*H#??2j>*8tvX5I%}R$UNTq0vuEmEL5nNJq3Dds*bD%bSMjJM=0q9VJ!l7 zVFvV2wZG$*G)L+~o~psH^Mg^LMzsC>vKc)b;VB~NY}C>Kuptx3A}e>OCebZEFo}JN z-DD0yQrHS@8z+gFmQL!cOpQ#y?X?ysJZ4tPzC>QSL~tKQdoetYW!}8W&#tLVaS??K zb-+TjXqlz4d%^F#bX>?up{Xto_Ctdl{~;N!_u5jAoDSvO|5`OqjV>djLv4hJC(yZ#o@eKmMfM4HiA<|Efuw!O&_- zeq*T{&9wE;HOwZ^LcSVa{A3iy%U5ayX4$mx?Gz+s!;#>wnu_4Wvx~`rsjA}1;U%QA zJsGWW_Ak;sPf(UQlebNsi-EWNQYp4ET4BI%yX;R*p>ZwhD;kwSEn+Y~D+I@aH$Ej{ zN#wv{nr7+6)FFD>%$L3;I$CXU2EhSF*@|8Cd$l!zreKF~(xLRE=lO;_sC9JMvh)Iu zV39i^9w!7QmlS90@$jPbje3bYZJlK&RHDWiXqIrU({xJDYaTg0A5w^Y)#13j_VEo- zV_$5=KPhRlE*Xrt6pzz6t3Y8seZB2fIBZ~DC+vBF%nD=SM5_Htr&%)Buhf4~!qa9oKZ`&5 z?5MeiRhg@PC^Fu9%@N>pHYQ7ez8R;vHCH^SU^!RA^ZWXpSl{n7c5+v%`yLjgm5foo zq=Yb==+=ce@TNw>OG~F?pWWI1c=W2IRXsYCuHi2L$|*)_u^xLr?a9F}OSEeA2Pol2 z^ClIPr)|eKs3`#0+3}>v=+%ws^d&UH`*<-?M(>_ovW<+gPs4w%dWx*9`%`*Xw3QL!BRrsp%Be5 zaG?wR(XghXS@SA9U(59Rw~Z-J(e!LH{yCe>!XMkxV^f-xBe&iJld2q8@%lxZ$0*pRCo03|1nJVeE6UAL(U0L z5|@9L4aj%GU5H)UfwU?D2yT+%eYi`p4xHF6x8WFG@ZU zunDb7V`wQBkRcw70<9s&RvzySoKxmw6X{Ie(C5J`UqJ}K#+g8PeU3{-jFpoR71+{% zZPl9zzbeG;ppM&6|K;h3TALB_C35jEhTq~II05qpY)NvnXpQ=9xLgzpMJCl|DD!aA zFHSM)97-zYee*3d#xn;n^2f3Hvvo_H9FZrnXisNK{2U$peAKqMZKwlTqL*$rc{jRE z47}aV(RuW?^Y039}EbG`RU5o$%>i-!Y#EB0P|_H}57`M>wYP ztIQXWvIr~_>1W_6SDOYnUZ_5rSnyYAh8$O=MM!GsS>9%Z!dJOtiG`MR)x>d_@mTBG zq|#3g7xW&8iJz<#Q!M~ms>Q&npnBINA%NM`AUiiFP97BO)MMQmElwGX?f!D3X1Yh&k0`d$E$10z~AK<$Qelk(elL03rlVhbS}WjC{b%s_7P;blA*YQ z@|gXVxsshse1RG(t@edu{_gHama2v)dr>(Y?}acPHD3hDlNSr(jCFpSTK#G!_ZGew z4xohW3Y~-XSz^Cj`XaTStBKiDHaI*)6fa?_viK@5LA@Lrxu84O`GZrvUd5r3CYgO6 zl@I1s5chkUfA{mL;MJ&BMUsQ(F?-Ju;hg_tsRLh`_dt~2gK|#CrT<_5&*8Z2-|wei z@DQEI-p`$JV&1ac&Cg$g8umxtThCFKIYd>@G(JbCeowd$ImA9=x=2VQTdyF^Gi0XE z?Ma8u&r|=Ki2c+9;jdZJ2BlCl>UF=f*K(9G z4lgP%5`ZG8Oa>eQx&Z!sr5jtn9nB|od>dAh!7CavG5@BG1w9?a?zNCpQpB#Vf?*U3 zf|DUhG`E((yxWeiN{6Nn4g^)fAQmSE9K8x~dv9V^h6tzA^?Gv|&OLd%-)e+e#jD=> z)GR326{Z#5zRP+v6xpFc^qBzdCe^$jvU^B54s zRqfK7T*bmdFHdQn7;n_hNzCxT6q2p}2Fq8y7;BPzlC@a6*!}hs;Sr8=F1WAR_(iaMZY86yjkjWvzSHWj|Ncb5&4&uM zgBIXSynEgPCux9JHbDiIYhM*JNrZ3#D}>b(Do)&isA79iH!a%WCWjmGaIheql*84DiZ`k=(?rY+B*Y;n-w=#Fle|_fP>&M*j*3;C| zd!ee~;rG@!?DzFGqQ`Q~`+sh=o{#9K7XQ6PKAa>%>Rr`fI6)YSDnN}x2@;$^6X*nP z&52h>cOYHdv6y?BWfDh;>@2=mG)?e)Ka2>bkzQYA3qTOL+keyl@8P~)mhf}QuLT(5 z%x3FWf~-uM!N`~l1f3RNH|qoAKgxADya`@|DautdK2uaQWPr<5FGPP9ZN18`m0$b9GeS(>k_#Cr zn|V+`02oUB^6O5doth{jg{Z==HDS+eDh7C<+Yn>H)p4GgQq~#sMfYoa>yH?djhgSL zbs6XGUG66zyKm0TH9dZ!U5x-r4{v_H0wu|m`-noigEKbUro=-{qR(Xug`c%$y2&a{hvr{Gh9L6k@{EIOd9LWrle!C;nL%MO%9;f%nAQJ zEn~-!&U^ZjC1b}O=%zIh2TEnWeni~@!47VJeaE#ED|GH||f7#}=ZS$jt zF2#Phkts88tm~N(MX}h$m;KIDI~y+1w%U>5p)hpdcRYzwkxd>}FiB$0z%*Y(3u7Ug zyx6R!4wBZ1@vX7fu?Yh9`aTxpFKH5IPWB%Ednp&M9hAA!1sHUb&9YoH5NUHMO=e4t z&$i9am(kl^UVjMwhH>wN;dnt9Xf7XxNgKI8@*r6&1lZ$^Hm6;Jv{!+VVB7? z40wK9MtzOQeToQ{c*O2iwimRX>3>fe+pqm3cvSBjYwfx-^MBjwe*Ah7ZqqzI|2J6U z1NZhe_1PtO-(Fe6b2Gm;Qp@L6bgiDwBTp5$iVMkr8{8M+MoXwKj=A1$2W=tJggQeZ zdxN+E6v1@+U(LcYxerjv?_jq6&iEFVw!aBDmyjTPHo~F=q+v7#jY999-_!54D zmSsT8jAVsWr!`PN&c^+-VyUrjAW|L5eoz*$rcE{Pqwy*wH2?(nZOfYJri+~#!a?&ZG7gwCIwGX z$A8J;?cnnbQFD%z+IY-;Wa{4<^oS5E{t3CU81ll{S}Q5r7`)B z11#Q&ZTnzXeT{q|NH*MSE0w=9oZIeZu*9l&>n~T?cyQ;x!XKU@(~(gICqryQS$%RV z_dPXemKaH3oU=1t!Q@s5)3AI@t>RxxMF;`~*1{CW%EEj8Zx-M(CPAzOO0YxTJjMPNex?$E~g|KmVuQUHO0d%$FKzh+o{2iZnD_O4mZKb&<}eJovzFvEK^HS5g`-BSA{CW=jVF27d8==D&G zYt&d)($t@TZ&a62(#hTuglNk!kjz!1_+?|-8;_Vt*fh@2{&wMpM!*bm;}%Uw)GGNd zqoYtm(Rp;HMr-1FQXwoW+mH+a0~3#Kti(u$hF7h|TRL?iH@v6Q7XJ1G`OG{u;yKH8 zY90UGZaw0JW{q_!3D4z9NsCMU4b1P+1-V|3FyX{o2CP8W1)2>S~25?Hcd z%>hN_*Y*Kr%RQN3;L&01AdOOEGMx7kF9ZNDSwC4?34&I&EKuW>RK#G?gvqz(29zq@ z#F(VkT;V(;3)`|0i47}7GS5p*`^J7*wupvrX0z4l{=oe$qO$bsrX$A3?JWV zafw=>%g$gl_`Q&@cohm*vA)Xfay<6bta6YfTw0t0I5eP^1&J4jKd?|s(b3u*d{b5} z2&RJ5GRIS~@l922{CWhm#^2BZ`}TweE*x-7VS&K zYGeXKZcTi!z$h!LSm6c4@?`zxjkccf!uf(?lLqi$#N_Y_=hq`@{w&6pJtPR;yGG?7 z;?`%)@cO*29=djNF;U62>7*YKm^K>qbVOu?xp7R5)nUaA6b^3+i5XmwVy}}g3-(eb zg)}ZI!|N1lG?^qJ*sYKY?{rr|$+&;7SDrHi6uZ8^Sf@3DBZIIE_D^fC;`2kv?Wb`G z>MZR9>6%zpq7dATTF#N>WJf|@k?bfaz*h2DM8t`@>TbJ!A!g^Joi_63$)cfK5T@dq zvqlhSKt)vpm9tgpt)V7ih_6H!2sNX9D) zLO2?~IF{9)GBfPC)U`P<&c&NSE0prX8B=;!MpV<(1gu)*&RNtpF8aTJh&^`P-E?%$ zTy@qwGpIzjXQa7f4juOgtOVw$-^$w@Ro(zvvBm6% zrYn}%hKYnnr=SHbX;vt$mw%eU2NBk!($d25CnR;k&iCy$mY`${3EM_1Q$sXfUQH<2 zyZ$O+uuLLwI2cyLzvf&1edDrI1!d$=Qa`)WRQDT}oFua&$QH+QW&*{8CuD=5bfhvE2k=%5m^QO;Qs#M zT@t3YmMg_;IixMB-+1X4RkKcYh#tRERl;m7Y)$bf- zeVoOpz)xq+n`VsDsm~& zf2^2?>UWQ2w9zK!PiKgc9kox0Eg0@+FE&p@J z;~Z6ZP%>!PjPW7t*g5SHy>C>X{ZZCojfbWCY%HezlH|8Lydx^^7dOStjsWZr@*lJF zqZI0w>GDfW8V0HjVH*}uI?N*zgq8;3<=F8HNQ0ehk9?OYiG z%e%7FYr)bkGo@zw8#xLWO&eMIpC9jIlM;Q&^Cfc-+q+FQ%l#kwjmBEfH}3C(Z_K&x zSzFIf=>~&mI-}7OzRV$KM6lKTsEj7IA!G?`>7#@qG=~UnqBu|}g*0Qj_|RbM?Dk(mG|q1!QW1|D=&{fq}FZJ1d{2z}pr@lCNt?V^!^;DbTtQADktL8U}g!?VEdE zk$~{u+n0!buw`8=EWp@Lj}Vh{dMH`CA_&Vzh&JUyaI3%hxw!-2tQo z&)%*Hg_@4qc?7I?p;gP?SgEg6hkSjq9&}@;F$FIX>bXBOW!Vt{vQC%Kr+7t0W4N*cTIJJIjk_TySkIFQf@@%F?OYZXi-IB zTBp3p`D0HU3CUYqryRyq&2K8sM&^hCyLhGDIFcFeV`%42rX$1)?jzuTJjsMcaMJBp zP6VD2k`Xbrh1A^;YGZaYE}2D)*|l&^EbL4+o*!l(mr}=E3RhAi8rdb|ZY;YQ+Zcgr za03&HGK^k$aB|SppLz3a8p3%$Eb5re-t77h9L&D!Xs*s4Y(6bbt#GW?kpKx6mhRi6 zkL>;Kmma)hZ+?3gF(wKq8GKA8H}}0LBP@T6e_BKy%xk9070vLhKc00x0AjxR2_S2ki&Y+p2&=}kqf{7@|Log8& zF$$=cB~DAVr`1gB#wN=$pA=$e5cBwS^D$julZXj}^4LN??_oyjlnr%6U$_dSMx}5u zDoU~OK8O8T`Smxp%+jgbjoJD@_`26wt)XYzZ;o4+!RL8yA zn&2h#a-JL`3(%azM~n`Ehhja*olOxKZF~3rU11?2 zV(R-|wS;ihV7t*!&mK(fw1a|f&YI`Xw#Qu}qCxesh4`+-aoa`9j~jaKy?b)b zM!9%aN=if41UIT`olZ2=u3MwZdCEK#az`aQBCDf}g$u}yh@dJbtwoV#T@|yol%hJ1 z;iMnhQubqf|8?Q9W>sb}x68nL-<1h(jf~x3SwL_l;>%UH(QhOpQePYU1b}h+P|G zQhn+-U;YojX0^Y2DcgZ0jKnez(O8UwvABX{ z=JANa%)rDIv4A3Y0=S20A!s&_jgDB2u|ujh_AI?>N*bgRYzB5mC7udIJn1e}UdVdo z<ve*Ce+fA>92)o7eqoSGX-5*T-FfYYM3n*F(BYATye3qWVva4_+`sa~HM z7&7Ahz$4(-3kYyES7L&xSRs&W#^Hot-;^fAcP^*Dcf4BE)nOfN01g7>$@p@5FfR*t?>~+pW5r`+B>6^Zxzglar>N zjPGHFVIXEA&N;o!FIiW*(v`0C7gW0u9)U2%Q2IFKjG$r|XIMi)uPEjU7(}2-t_YQl zxPKxb3P#*6dr1sc7cMOU-fx9Kwr`I3Gp%ok$Yh~_ML1~Oqz2uMhTijrB zsE#R_FvqXHaokk#Vb=p#rF>AuiO{nL^Iv%5_}h-+dk#a_Nz;_Tc6?qHr@As?@QtXO zB2Vr8^v{0jBaa`B1I!&Sg#e6&1!j?Z^-eVs0a!*>L&G!?1|W>$m@w^XT87%_r5dN| z1VDljyAx(p)qcme2$iZ*No-0(FFCOr5yK2-T#QzoQJ1&K%m4kdbEkrKjB+d+; zbKD07peRM=2?1`&y|^1tQ&@1lXNL#HjQlbf%8aLxl2Q~fuo-Bt^0uH;uLWwvKqY3G z5`kt|+@cWtnQKOlk3CwyxL*C{-JG-NfNm|R4{ql+oHGX34)IvrR)%Z*&UeI=(4EgH3@rB4q{q}$ssT$ zjyA6CAu_grkgGE}_vY@~j;iRdp8MA~>8u-wD4Ux5;k0>u(|+>yQWYV9+0-eBlabT7 zY5-=pLU1xg*mIbB0U3x%3q5+6Uq23yi&YbI0z^<000j`EI7n$UyqmKd4TX}qxwmRg zw9Wak`D~rbdKiwT({*+$yn|q244b;FO7NDie@DX|G516c5VM!U%;S;)`EE7U$IcvG z656~t0{LK%FKBeIX$K-`rm?k2gfa-oIT#$JFx-j!vNXhqsAC>GZR3V0MpM5VnG*r3 zS0qqf42D>?>c}JSSL-+eP|O4LD;5K zMNOLBV#r3Xy}A9b{_<1ffO9wSH4s}We6y+gVx8I|#$;A8A4JZVuwioy#U}xQF%+Lo ze9Uy;F(j8T4`nq2kg>cX%vFz!cQ)zgL)Kx@BaK(?mXyoURLpw zj~%?(mBWDS#=+eQ4#eQ@aHk=8Q;ltPBDyu<`zx>&CxT@=PdMMmo%L|mwg9qf+jVe{ zF{+uF=91mLlrozy0JPioZGOqR(v_}srN5vWONud;bDRJgya1JWF%QC4bmPosP9k1* z*BFLFqB|IoO=Jg}P=~Vwv(DW7%P0N|FAu-{aC>LHomXKq45{e%+}J93wA)PwGy||6`es>{%d{4VpbYNogY>0y56xF#KzbN0A`~dj5yeCg?8uE z-*L=L3C3;&=TKQ51nw-JQz%M+8{_rWa5$Z=yLP{6`cfX7O#RP+VL7!+-qh4?c5iEL%aN&5OX!j7_3x6ac5gkjxs9;$8qI%8q0J zaF#6)sbgNd1KDVNbVkRZL?wbT#W{wJw7rC=!@#Q41P5VAqJ`DiL6J$s1Now{$X-`g z1-rJ)`->uC95h4?(TKrw!ZMn>D}01PC#6b6+>627d!ypJwG1K_lLng%kgHO1kkQx$ z)WYV}4qP$K1Gi>97_?#0(n&Q3q{jwdQ&RVvED z&f>%-!9sMdv{@Dc;=~|`a}SNz6A$|`yQW0Azm{$Y6QP4et^=%)D+Te3^GL8#2r};X zIFZ+N>59IxNgq6zeerZgE8p05IjPy`O$0o|sA>Sr-Q8x>>0~l(+cw5(xwrQ=zFb}DN>{qlm3F&$ z7*jmQ%|{|K_+}jUF#t0H!9YaD3^n+*nO<9XF%&}pb%}&%9`nFdOo%o^4otHc?{C^i zW|I$G+yAYH=Rx@0%W#osR#{eXu-z4$E*<>f6tT}49L0)Q3%=BD6$T2d?80q#E7 zxLz769Sf#b$C}2^Tj|t$)v1U9ZOV@>7Mqd@P%{vk5Ptu3=+g)nA-|jsi3S%zVG&O7QAT+ zz?!Aa+!xxPD6@kg3$o+Emh~GCx;Ngu^RDZS`)JC?809K#08X2-Am7o|#XB(3{f!RYa1=Vx!FCc95c|P4li8iTi$TZS4E}xDLm?;sF z8Hl|oIE*kggxaJ67~Bvo#K1_3I#3`Q)QeFu-)0|dm*N$H3J&51GGhq(3w~s3uCz(C z7kxbt$T|4B4Uv)5TeV?9d*432{%rjG-TaS!@wG4hUi)MdfA~Gm{3q|Z^^seXUwq|_ zZQJfImOt>szM2O?Dmx%B#?BuhG}z^Nj8B*hj^jSBI+4_NbWoD|P`GP@UoN=hfv3T? z+lt`rCP*;LJCe>s=z1N0=Xm|F>)WpT!KZG%xax}Ay6EvxB7+FR4kidg6%srHGzQxf zNX`@7!Q|w?3#Z#nE*C@Uha}9osF{^qOx4U%8VH!r7emgbI-5-;hO1rCD_!YISNby$ z{Q+zq#ht`ANfS9x28KbENPOpE0{QK|Jgq!sjzFK?$p?oiOwSUPM2i3-GIO{;bFfFC z-?;n0%|CcJ-)8JLS_%vA#;WcZ$?sk;qEq8^tWeNp$%B~EklBn%W_RSw?x>nlI`&ND z26X~BAh1VqGnf$reP)2n-Qd#@ies;i$88VL;bda&lOXro;eUVe>{G98KmU#L;%U)K z^sYN-_Xl8DA?zR~7=txgd<34Ef<`MF#ybNwqDTfZkPYrirEp4Y%34@6mrN=1*tXoY zu#`t4uNEGcXUEwqvE!}iB+%$5^U)Tj#B3Z)l~|xkDM=J(hAM&a`MbI|n{89NF`w_% z)p@Pq2n=k(8_q;cVk0v?h%Z&;mI9((S zM4jq9NH&Yii!g?Dd2tlSRxuk5VZq%{cB=-vW@=UII)!TL?F9vRald~a_ohY2`(D%p zj-q2X(V5{!PUP@nMB>wFVRj;fF_D(Y7tyL<>cma})*0*KJ$xW9z_?7HDuT!_hVtS%pDye@-#zJ;@oUeW{@gD=ym(kXe&gEHdy`G!>l0Mb z-rU+**PR?c_$yD{5^@l25;f66)KWN9>h2W4HESjca0LmV4(zf9Ji|bfISvmCllPh1 z#LT8jBfqy28?w~FwrwEB$vU`Gr~c*B)wXCU`J+$X{>oW*+zsFNM0ozRo5V1$c2Gbk za^`Vtuj8gbpuPm_%iXrTyvkgZ+@Kmxwp!F!*xlVNr39k3Yt3{vo5c_}o6V$d7R#kO zf=J(WZ}ZF4m9BK9EB!^6I|;C(b-W`Jf>Bxf>D zPUOB-RN-i9?ZCHZREO}%+k4;h$nx&CefeUw-_+l6{owhFZWfK4i&CuBlzcZ*bhpuE z?_(ZRHLKmWB?&6u3XfL#j>D4B_U=p{te!XtuT zg4<=1)oz6Xq{>pe8weQI(p_-L+$Sz7YEVKkQlqNU5RHR_pf&~>!A3eOxfxhS_tlR1 zw(I9P+{u;9X^i0#b{LxyfdX5si#p6f?*H)jzA|Z=ZQp~aEgGzR_al|TMW9I@Zlxkj z1I$r1nlsCcy;B@C+t;?M({?$}0L+-#02%JCG}nZ#{t`&JQzwV?MYZYjN8-LpGWQ43Na{%cbO-Z^_e@x zw9@UCQOEE2=;1TBCO`G_cYgIV_a67=L)VrElco|<#Zk@E=tIF5?w_pI>#A_;)BQlxO%jZIZx>gZf^df}wZ3w{0 zIy6FePs3MFSNAvD`>WLtJ@x4Gr|XL$A5Cf!-J0)LsKd?*=|W&8gR{3;*d2@t+IRA< zMg02dmWxvhVynypj?UrX&Ab$ZR)0qRp0mKzQ2DcLEJrr&~+^f<4RY$(v`0C z_UJ9o7VUgl7){)H2VZdV)CCFV#<4Q0*l#U;$Q&4EW(wXVBXNNCyMP}!&IWmGUjOrZ z7r*qzF&rPeee~4+{Q2|syOvcYIPMUFrxZBu%<^236_9``@+jU2W)f@5g$(4r`>>Ik z0gMiz(s78;%$jNBrB#g*Fbm%0k>EP+Gk9@N=8G5~_CsJHV85x{Y@2f}(&ch6Y0NRL zA`{)&4FB5~xBvW=9*iA|76gVVl8*a!Zb}l|38UX`Ol~lTvq`iv&~_!IrC8}?rq!&> zmt{WB&7{oddA^qy2PMutOiZFlv=}TzlVBr3!yF>cBgjL(#pr3ou(*TBauQW&p_C~$ zrDT!dA$V^nC7U}FU2E#&w*5DszLphLaLuyrdBRi$Hz3w(MsWh`43nty*-!oQ=Rf)0 zCtPXlF^cTgQg=;O!y}Wh&ZS|_?n!MXk_>^69S!4TDEm>exe!3ajN%l;%_-Jeln)O| zx8YeZ67MtbHRy&=l%^4C6dA?HX_qjOmEEzoNJJ-C~R)l7>MfT=Cehbfqg@>1~tmoKiH}<^jNom`X<>j65)e zXj+Kasb)Qzn=lD^6=8-_d}Oc%QY8YsvufhUJq@bQovtqWe0|cqb2)oy)ooJ#@b%>r zi}2FQ_ZtULH$^kE7)BJ_IBx}D@C@&5Gytg*lau>6y=fC=#mPmL3$a+qAa*w{!{~?G z1&8}CZrnS?^`;usA`=MbDLedQxA#7BeKtmtt9v%fsz;Mr&CGGy4+m9z?Yw;DF4QOw zvbqpeBBm<17A{Fd%nVkD$;}u94lZo2+-)T%o=!C`Jv2L_7?Xn_4X7H2s_qIBk_m+c zg&B;=K@tt@m%FOixd_Kk$H&JohS1lSflFrOP6nDzO6p?>Hg=U>U2PBc54xdms``bK z(@#8hFptz!3gDt62BwvEnd^V>1-SqKAOJ~3K~!3aK;j4h!4}PfJKZ$S-gy|A{{SyS z1XB_*cXCi$Ojs^b&Su%H65bRAkkr@NW@Bi#)UjDx82mktw{YsdKviYFCA9yf- z?|u{5)$!`uAFNhz|Eo_fH;F58a~MH_6{AqO8=+<|JJt&c+!z4HmE>$@gaGX^Y{Py; zSEwzhnJv5;NQQ#iAS*o+DEPbpxsj zPN<{TmF-V0LmDnU#|G;QL7;hU&!2Y$de61JZPCv?I1#3I?@ecczI2iwosog6+SG`} zh>06G5ltD5c&7f;ZS6Wh6N9`}SEKV@&O6>_TKCcw+Y~?DRB4b9F7E@m6>{@BT2WGm zxew+^@%S><%r~c#nq?ZoJD2l!9`MoJvzB=knP^c}2AuT6V~cq)Q}b6=n@Z%j?wpTo z4tS+n7x>M!a8YjGC|=V`Ln@p)05>Ek#5W>;`b~)p@ync+?F^O@;C9 z!-~m>u-b&kRExKn#_UeOrGa*Clc-JoKmCJW`{XkR0MrP8>|AsN8`CMg%`^`@b}j>v z0fX91_+DQ+^Vhfi^(N>TOGTcQrqLbXpb|}jxw&T|Le9LL*a#{cEpD~As@H;~aO129 z(PCw)5O!je%p>2}dLE-!weaX^19?u;ZNm8Gfq8Urd2F27#v^C37)*$Aks(VvhzQz5 zb#P)oQ=WZrNon{yKl9wvSpLw{k1nckoOBVmVyu$hngn8ZqsVX|F#fOSUg^8;nWKY7 zLM0fKYC#pPB&mYA6UZTCY6N&90=&2cHzldOv=o9__BT&s1WG|MZvtwjCuZ~;_qWr) z%ZmTmoy`|djESyK@U?TjIja`2GNLx)wC|e`&inq+sT6k@Eo-?k5ir%kykeMBQ83xy zOir1s_uNb6dNK@mFV4fD`22&5b=QtW=C0ck@sN5|T`raq;(EK8PiF@2(vbQ-R#hpb z@B6N6Z(hItcE4s_=}K3+(qBmJf`n{m9UEIIqZcPK<;*dtDNPT&NWhJyKU~qG!Ffwj zxKFm2AS*F>(!r!6yT3uzxB^k6X8zjQs?FuQuJ89o=6;^^v00c$Cvh8jvqCIzFe*l| zi&LIf#EhAAaW)J9ov$$sJSZ)v+IJy} z|H2z5AHB7IV-bJr{`s4yXF=qzz5CH={Q3@6|-Z*HzF zmui+v`J3;1lHeqG;h1kvoSd@Jw6d|gMv<(5YUKUtb6TW3A0gSoegCV+uA2YY5oZK2gr9-JJT z>c_wBon0njWW$t<34>8H(UK`dC%rriv|C}3#yz_gG6jg=IF-GCRl+3TBKuK8+YER5 z*RIdM(GKSFmyQ;nJ6>(IVfUvO^;gbXAg0<1Edlo8{rit!JK`w(_4^Oq+}-jpm{~vcfy4Eq8xjKGO*1KGrdo0e zRn@lb#l?BsZtMDrp!=_Ye&I(ya`WbY_UX(0@+*ByCc0h zLF46J-5h3sLC8(16c%xJ#EE$TuFa{>R0-6XTvjb@G9Pca6bNZYvr0=(Hzxk|`*OC$ ztLH0X2JrO$qBuD=>*b591|5wn6j15TwE zPo#;cfDzxvRR zYE~z(_v*qs&_9b?0cI6q_|@Nd_22vO2S>1mJ2CC1v1&wO?gV&I-V`lnOq5hB=KEd0 zE_$BwgRVbnVsgylxHXH4y*M=!b484n5?8?rCVwUTSSTkcU*5MDGA{#$E%`tba?peVP%f4 zU={&FQDVZbdL9dRh8ZZp3v%J{+-_GwpfBA=Dz+(b;4Jx#hWbLYXoDHEJ+l|55wC9g z_Z`mftv5vU<@5G^`x8}rece7XpC$J|n8e6zw`a{8YkJ?&tX1dWBkuYO1gNy-z&y$ba)suClYnQ?%2k|LtG9ckh4x*dJIeuJkPwKk)#lG-x^X`Ma^)S5maM=VQ(1iJoO?k(R)=6qX zE)t`yyAUeN85HRFIL<12=`=iC^Cknzk6tUAgokTcZRI@aMY2x)EZJ7wfnt7|d{%1} z>|w{Iq{<=ed^J_0#k?4%f|*cV*+*_HPKNUIzQ}W|@6Yu6pIZF;?>We( zvk>6UL_#!?pyo_;(ske1i;l5;7{)YSFi!L`rdJ^8Vp`Q0`_ z8gn-UE(71cS8Y4_<(KkPnBQ)V7F0;8G3l-xnVK7IFWKAk)~J0s#7v+1O^7fNKC{K5-BqI%#TSMis120%r%EcETVxDh30F0(C_8iv%Jx0jZCs z#A9SC?Q%a;Vt16nL436hupR8pM(DA#8`)(PL_I52lVda(Z`;^sIq9T0LdY-l`S!Oj zfAhJs?zQq)AHVk52Nxf{(SWEJ{nmp-j*6&eQeY8eStA+kS4c|P@R`@{3`76@Pv0zs zn?U9y|%VpHP6S;!fRoNX~C+47tS5HV7o1Wdsoi7G6hdSE4TfBg?5M`wsjePsz z_dIfVceAZne)aD8tyy!})Yqqzub;0Lb=8$JnBJU(*VgHJW33ripo*Q~Ea(d5 z;xUwg<`sYX?xtco?}vkfgL~^WU-W%0#msWab=^FA^OmVHV=wg@z+*CI?L#5ec$f{2+DQOeoN|>^mJ8>9oY-z#OK#17N{LPYw@^hWXk32^^bJirM)vT=e}D^SQbUdogb!21Q+K zNmK{x2d-)}Wi@QNP?SddntFpdXvU?>psO7QX9^WT2BddG6^ zWPml7=_`NlZ~fRm z`;Y(r|9I6@`_t>AKk?dYW10KXFZ~x+<=U10Txonds*wY#G#a``>@5c)fGQY^?@f`F zHp%Krx?*Vz;3NlWrZS9Bdg?O8pf6uwS%ud&0|T4FciaBjqxZa_pt!r%S$SO5O+9X~anZc6#m+4j{o zeQh-WJPG0DO}^V@hZAeV9to?AH#Tpw!eB zf)P=lq>7#ko4YAB!QEXL4)nHzhO~;QxEf`p$k=9L!k~09a4zg)#im3+DMIW-U@-zf znAJKcic#Ck#VVG}YT$7|$<7Qbl#{3-DIL`MyQkgtXJ#+E{p>$|<>R-PUpU>q_po|p z-959Yhm1gYZIf@!rd_c`l-1+wAB%Ec7gk-)5RCX+DA7Rc+1j4e$4?MPf zZQahQIE~?~A2uo7oK4rmaNG~m5Z>JSUgOX1O_I@~wzqIBuBJxbsrT8Ka-lAzub!=P z$$$MlPrvx^A%Etzd(&p}t|y;tQxXZ&rfG+v?Yh;)Ie=2i#l?kcDJ27_syd|s4lR0k zcpRDR<~QH?pXyG1{g;0JEA%)1txx{{fLFfxc>d^V`Id+J zM}PGnJ;*=)JpA#G#ooWDKXlsvm|Om%=Mea{|NO}(|Kun6U+z)3(v{v$IqmW*K}eZF zP$MEELKO|5a8!FXs)C$tDYD<)QjPN!mx4)UP4F>?XV}twQc4cf3N`bcwx5c8_-OLl zdV6a&ap0Ycib41LWCnvv@DR+MOObUa&z<6a2M4`l&ktwzg@@$Ejqp?dFMDqqHQ9Al z3GQ?5y>E($FX9_>Qf4YsskAJ~BgO+@jLTrlQ-Oghpqp+euhmUatC*^R?y4?|8fX?! z)PlC%P+q+j6zyJRr~(^|UB+Mowme(5Y+16#RL+@Sep5tzF}&g4drtp&nTZBVN;8So zEBCJ$ZoGGgi1$w1v(MgxxVIlCB`2x$ikN58APy2EO7p1Gpt*(0Wn#Wc8(Yv{@bm?V z)uln01riXm&T4zZ0ildz1tMg5v`*?7X{5}`qa&S$aG)sqX)^OZH^wms6;X{*K6Pml zL>?aR?lg^$F{sXcNUSAd=Un5xsxWhsW{ZQRhcB)F`X@iXT-ZHXa=e$VWp3odsYy9V zOcW{%?JKaDqY@n?w6~x^3TGrW>Wsw55=ext6=teDL0U6Wv?ixS%B0LNr0vn#s*%j# zKyJ=#xu~>0vSn44Royhr^HBDeL-3uTzP3tg!}O0790A;JNXXSQR15 zDv=E9aL$&vj^yaFJ$xOgu<%N?z%iN#08ub$&`*U3#!2wZM!h$Zf8zQzM4a zOK``*#YcCiQE{x_3##)FnYap(2&pky8p|k9Z~_2o4G7AxPUbr>Q3@;PC;F{7tZa^l zH!ThR?80Us;+1aa*n#~Uqj5Jcm}oMe)pe~v2yrwT&dWJ70c4G3Hg#PAh%v0Jto)tN zir)E84u-K?Ow)dL>peg6HFX<6o`3(LuH$bTWJ!ct zwX<168i)unvauQ?kyEXs5bO3#O5NB|Q}ArY!Z=oq05#PtU5% z@Iqofcy_d>$YvqbAr2CAW*QH4vcgiwf=FjIlS&iyGwY#_>KHFr!EPg8+Mu4}L8`Z| zXcJ8nX>mCaKnBs%-pn#Vft3u01~JbUTX< z<3vH!-qL){#;9dIGqhW!uBK@%F*7DHX4Eu;B+0C`#6%cX^`0V2m@m!dxwD2SLXWQP z0aR79EEUlhgNlIA?R1O0^UhD)Jr8q0ebn0*)79K`E!J`d=_G2N%8kn*P1GbZSd%2v z3$>7;BomuyTa#d1%+hF_f;GtH2*ntf)|`U13R*^#qOA$hrAmV0!F7J;=O1i+hJNtt zj*}7$NFjntGd@G1; zP(3oxVTlE26q>N9W6Yde&75OYB8IgR?RR`t+Ys5=cAE)NV699mX2!&W38f%6m<9!D z713@b5C37s3- zvs-Rs%6DB52tK|!d&4UazxPk>Ib`xT+_bc*1wl0+c&-9AW<2xZw#D9U z%iZ(yQdFP6vRFmEb>JS{)#b!Qr~rmgMQKYP01B<{UhCdQ`l@|{#L%h9Y+tA7Id^=i zpBjF}TK`awo5(i~6j70w%LfvWhzfQ~NTUEkG+VVe=K^?KmZab`NzZQYbn<*&SHs;g zGuKr)8tyc{X}?Ay3Md=XG_|V65Z2cAhyL*R@t0(O zQ73DT{J;nP&o^9s`r04;CojqF{lgEP_{;VA1IOR|KfY}3FFU9+kK8}q{LIhX@k@K2 zDmHrPoj>(2KehK)@BYv~I%=;Lv!KKXCn_Ly++%p>rHAPR>$)v=CTlDa5l@JBh zjExt$vD+bF>V4PRD)`je&3Sn+cU6qcT!jcCM=Xj#(Gd}eVvG^dx~?S(6vmjO=zQ?r z6Q_ooiy3W~)z=*`s|#4`%Yl`!wpH8F4G=ugbvGVMdBu?f2yDPsT6+$ETWeJo*Fe2QF=Hs$CJ&3jObg_&?a4v$h5so5lp@t9fhJ{|E$PMqw zv00&?i$wCCol#~HB^6k!b>LZGR!SKn=vws=s+wE)s1eFUGq0(kaU%vKz^oxs5TPtB zld{n$WURD-9RLuC5D_4hFfI4OW{E~fp$OaKk>-R_a3~l zTWnPF`zN=TvXo4$qAVsx6ij+<))dxUDyx;mMAeQX1zE-{z%gb)PhVP>D6e|XO&Upr zqJlw|)dxxpUA_B-08zw-MimM4!{@eFQg>=v-m^VPtxXI~ny|lcwGe|0kq8PylLon= zDk5_ll`OToZsdbWjHZTPywtsYu}hFi)9jS>P5m^gE~XGgl1D@$LmHsgsVbnvlreAa zSXG&Lf3d6&4i-0Nvm#ArWyzzm>J^=x@i@fbT(YyXT~(Darp<)5o>a`Hs!A1!As#<= zJVwvVmviRN4(|H#7cD;_kGAx}AHA!pt~9vw1MgYi`#o=bd@SAq{8Y69*EFcrm;JjxeOzqxUw`fu>;K0;{gt_u`}t3Q!_WTcV^4kL*v)16z=c2+-7Q3EIj=kU~_5Ae7|_LE)mYdUo69%!494G}N6Y zrWPBOkb!u0tQ#X|30tKc>vt41^FU^nT;_E{r-P@@a*<%r=MqMcdScdlEh}t$k^Q2 zu`5<0nO^FaQp=vkHCGMiU;|D-DYpds7?`LP7;BB@SrlF=3YcgXqGRb5p_gDK=WZ6y z4JTQe5%DW;SlgJIZYrvpIN7OWCF4@m8fAtEIDrZzF}vsMFPu2{11~r}uZbBxz!-s2 z>mmw9YsqzCm-gi@h%V-s)wXM)K%)u*Gu=AqS*FAQtd5XcU7y&5BeRMylcuQvxHRR$ zpb=Gtvnq;4u$*wpGKRs>sW=2&FAz=V09A);hk_#JZ z|9u2#RPutTxUrMGXeE2|;l*#iX>i+KGYMi7Y17#u5=bSIwi3okB1!>Ld)}C9;lia^ zIj(DC%=U2TLtuq&?rb~fs(CpaZX071Xqs9?h$u(462%z1XYbyNmo61W$69-C zef_IkSN@jplB-F*tJwMC+pcbX#gmWTUsYc|JE^mqk_BgbxjLi;=3bjQj6 z^dGM5QQi50_b&YX*WL2u!#;+I^`>`?Mvs5<^n>?LpL6WU(~juQpLpxLj{M-ef8pEG zr)qJHgX%u_*yCCAhhF!V+o$(DcRoM5{gMCerH>7fSHAP@k8ks5zyHO( zkB@-AhHjVT|NG{_;7aiQ|9ttiy=}_ zPVHs3v$dk2B*Vr!nassfT!Aw?Zgn9PY5dfA$qjcb-LunVEt|-oiZlxtHCjcjW4wQ7 z{QSkvN}5cA+}uyTye(c;RQG1oI#Zt*@gPa6s4JO%W#~^$<=BE#U@_BS#S7iw3MC7O z#)daXwk&PRs3L&N+N~-eMQk_*_JKiUj1nM$iIt5g$QWr`CmktrUF>KSa+!!%Yvaa* zw#IhWXdUHfHwh{`jo*_c+jY%^)zr?s?@jeRS6U@=Ibm?h>&SGy_g%uNtZ7~=|~l9kX)By*DI zveeNcMPf_`Nf&7^!U+h(U{)v`tB=~6J?!lubCAfbA}(9~!p78C^OF607BihiF{Dg5 zGct>b)Dg>>K#4Bv@d8A$()~{#`tL_0bt9@BYni~nAjR2T-MbJjj7?_X68PBKWq%b0jg8KD(^ zQ$&TAE1J##piBq?wg4*|jlL~4QBg!CCS`(kLZo%zQ%iTXn3N$9TBN98+e{L{ebrW5*#X z-Fbe?H_hL>X;15l7PO^vX@rCb<3t6OXLdTP*pNQ3TO~$kjo#98500l7%j#0y+&ai_ z>F0NC?=D!}I&e`jk3vMVpsg<`S{Hj%j!+6F4Jq{W1ZjqYUE>=jqoE-X zG=LLmlxQu-7#fN$+&7wk;#^HI!`bxULU%lwh)7~BmsORf*=V#=H#IYhNQ^Ot2*4QY zeG@`Z(Iic~-JWm!U~$P9vpwATTf0;}yKt}hpMUNZ>unD1p?ALHEVkL_Q7{?#{KEk1b08Gig{pOP&2jFbE~y$aWH9e;T+Y3ubK6$B=Y z!LWfUk%$9y-qbbiY}x(2SbKVS%iOk@sLFlAYG3YDNxYIJ1s(2(Dh4ll@Amjrdlwqj zNr*QOl14Q#G;X{h&7F$k(wrRQV3$?(#IEk|xRun5JbDgg)YV>KgQlkOE}zLBy&;B21=Lry#P3fnbm=Xu6=jG8ae51D6u- z&D86#@rOHZvkDjI^}akEHz6@*;F1evQ&`(EX6F4`o|Sc_Dpd&m#I=z^6{9oknClo; z7WzcQ%&MrX%6o5&VWKFpuBy86wXZ+;$gXxAZs^NuPj_dgX~-(iDw2r8Xg`bHR4l_7 zsTv)YVH(sc2oHFDC{> z@#&4pQsz{Z4XCwmN}&qLT{)BcPwhPK@PX)Ag(syoPU_l3fe5Qm6j&!;+6uWLfi4!} z123g&jjrXix5&N7-cC-0L4tYE<(xKlEh#T#F$8Mu>Os0WHK|1zVHvgPAdT~Yj-`}! z+_c|EG@>0#V=tMZxu_~yC;KLnv(i?EssPjqjR`ThWxg35&&;^Aqe_<&M}*9yi zZq>4snkvwxs=2tcZLPU|&p?IzWdkv-8v~`b7Keb~DFiAT+M1Y`uO=5Ku@?NUJBbqKayWwi_u7f`CAEL~2w7MA}4R(hyaF!d~|EvIJK3 zkq6y4ttm<5{KOV%oX;5rQ&n?frEHM!Qew8|)u^n8C2n0?IX4=I;6>u?2lg|w+1R{v zS&uOW?|tx%bXU-4p;D(-_o`wfU4HRc*O=g&YP{DP~ z*4(b;wh?*5p{28BJU8&Rs8&TJ&-HtpFFpPR*T6HiPV16s@6ft*9xT#H2$?avji1N3x5zKdO9jO! zBC+&MH%(^Vi>f8=B#9SU?Gyl7c{Jx-jIs6&0B5bJ80Lju|C?@J4SRYB-fj$?MyW)Z zp%(>#h;%Y zsz~mVeI4f`6?tIROY?Bspd*4bQ3Z^Z0Omj$zZjWwRzd6}?|lD>!C>&hm3|Ns0E*$R zO`Rw}EUjAacF7rA$9QnJ>gSl(lsF}5R6f{AtEyVgv##ZYIVd^ixyN!5p#)aLYOFrA z%?zG4um+9DVj)VD86=F&8VO?_G>ST+d63MY7Gz9bks6u>?PkHb%jTi2k-2fIAQ6xe zHZt0EP2lZD7E-Q70Ze?nP(?%d=;rwE-*NL@pF446X?4NcDEj4{@UlJW$Jd9)7YAKO zXQ$N*mU>Nuk`C**mS?jVR; zMGd2slp|0pLpTp~Ic^6E%NwQk9G4Z@4xpf@mX(b*wII!?36Q8luFsXHHy-J4&889ub-e9s?z=))iSgD-!}6NEF` zl;2}t@gMon6H;;?e*d3*)ljBISw8Sfzx3Nje(>GbAa(o9gZkDtecR?|e&*L7Q!3GN z*RC{pO$6}r zwe0k+1d)D1yS3k+yYn-tBBlWkj&x7%9@_QiXE@l&Iu^$kc)Qe3pU1h0?$ojL3IPLM z#{*})sG-;hqNuZK2r+_y7!f0`X3i)jy3DkO>w+z{UX#+m86`q9=SMHPhtAsn_QC?@tt~B>TFy;29&W;zM2w~u*6O4p5g2BT97J~;nw9E<%H`z| z0f>>ZwvxfD)~W`?s2X9R&L}ftgtM{LWO?-brK0G3-z^6kZ#oVdnT*aFbEIoUk=o0S zoXVtLB(;|&xclxee9O%@ieMVRgwm5LO-ow^mdHNRtfBjMf&nH$jt?@46cj$9i7dd8 zK8`Le?#V5HMo<`hdVRi90Du=5hB5l^mRWQxibx>Haz{n5F{jjEql!7BiEs?BAR>Qd zMQ1^CLs79(2s4OOB1vSn!YomUSzRK&G1c78J-Sx+=2V6D)LJY079Zc-eemi@i#4GokW^wmNIH0LFr=YbEbKShdYVAT=0N%WylR`K^bs% zysIMLb9}iiI2d{@9Gb|B83braY-gsCfIX@C`1#3Z8BWjiE92Q0x2I=k{&O4Sp2eGQ zTpFZir@~@}+ybB~s%3c58wzHC2tE>D`IQC%wSP<$tu+Dz1l_2l@31`;7!;Y#yj?Cd z3Nlhv)xhjMWfsguD)$eggO1AbQzuVJjBEXcg(TV8oia0vM3E>WqGGLe)>Y*^dT$K( zdJ6!IHO?ifVvQM%hRkG)@lE|VewF$w;Pt=q%io>8|E;fk`_&DnubT7vweNoY)jG-# z{=`qdYjo_#e(beRIFvc^>hE~r`cHlLPi=ko6C(_Bh^7ujhgMay{y;qOl9^oJE`=?jq zrw{(KfA+B}oqw9HzV=7|$!+?(k3Drf`CD(ilDPcixBc4b7yR!({1iHH*SHps!C%C4 z&p5-^hG(4Qr)hBJ?RVUE?6q%eOE;e4@pW9s-z-$2LJYJ-B>P@|tQAJTkRYer4YBOzUSYu<3MQ7Tt$KgSoH=OWgZ_~`GDjyqk1_@8R z3^Mu3&_8b}cLq@?O9ZNCM!f7;l**{xM7t?OsgAsw>9EFv<)Ig5Dx-ER51W`V)ls7= z5genNNScbV+Q#KJjh78itx`gDX(W;l+)pu!xHy-sI?RGLf}HW?arw%Z?f=AQA70G| z`#Z%X#9B}M@Rl_qFLtkAo*r#s`( zo_=>BWg;y-6{gjDLm7}Kty``{&;49ZjH|-AM@HqBhr83JSxPv>c*|nJqz{e#O3Dif z%{v@4Y-GOClB z9P2!4o@murCntAj*1FB%klEa_clkwoSMNP@CP^F<$Tv+(Uvt(aX*!?JL6l_a!or}e z=6RMI!y*x&x~@YE#u#QZ8V#SFOV_pHmG3xx=a2C_pLd0m{?FxSpWv{W=imRn;lKL) zt8Z!>{G)fjHm+e13^BY*TC?|AS(v}ZZ+iqHP5i~r>ciR#ST z@3?L0g+KbzcYW}wYcm1hHNWs{Pv78c8r1858Y@QjoEwXDK*T*tG6%T@4f7}m2RGi&sd7n+nHs`qY>M8qo+ zA|foNNl@)D&3#CX$*obva+=P3n8jE&jjF!k*kLAJ1^PQ^M(^+`OpP%`c zMksRvQc;Qmauk)s-~*q1`0x!kEF@VYT3D(gqAC;0h)K}7=O&UDoqA!SG6YfeQ8Oz9 zvJ3(YOV^r-*Zm!OcsDR)F@r!`U#Uljrpu;|R7F`Xq?f5ccS?$)qlU@=ubLaKq9leV zK~ko%*Mw0S~0x78?w?=`4@r9k~tH15w zop(JrpW9m(dzMfz?KHZa+TE%uL)_o#EF}Duv0uz=9np0dH?o}CTI4|CaM=?K=jU>$ zuo1dlhvhsS?e4zdrlT5Il!g^nGOgLVm+-XF&#rInG@+j+uUPFb=IPm4 zJqdF6*5pzdZ|InLK;_|}byNTuQ&14Ji6nwDT>c-`D!DWPOj-v-Rj<;jCKD)Ulu?|r z22e_i4nzozOH-Ne61oX|1TzxnJ%8H`y(UTsK}G)Fk-dL@@@$spzVY-O-}OJWg~&;g zh{U?8h`A^_sv2YL_XkZ~bNl-P&8Cw)FN`%Y%GTz_3!i_(Pyh5!>y<1Ft9a<0-}B8syYgQyzT-M?>92+}Z@=U9fA;O~dCw0&=h|Msj_bINuMNNW zi@(UH9@@9EbZ}*Vx3jX^OH!vIWSuH7smxM8Oy~Uh&3a=J1z648@m_ZKaCWehY}N62 z-|g$FS1z)!HFSV}X0tld%a$`{Bb`Lfj<^x@5*XrLFDJ(3YMyLY&8TWti@b_)Eq5Jf zre2ROnB^jdNNhE+Qr5;9X*{3VB~=U@=T_Nh~? z08tWz5<9!@d?}7p!F|VH+?k#nPZDE9HMcgX9_Zu?Nm4M68*dGlF&a=1SxDUJ$xMLL zqtVTa3oqZZm>b-+U8cs&LO4I2C&pyPY?b9|p5J%=JP6EYcQU?V&)ypcgA>Ein~&^& zcv7#XZnO4-Ea_Vgi2Dos#jV*3R|`kP#ExaB;@oNGw3CJ=vSBr>s;HxJMy(MtXbVL_ zkXkhor{qf@Fj!+CV>LvwR)6w+pUbl1pMUf7pakeb5kueycVvHVYoWzFIwt^34rL%W z@B6}~_uYBVkAK^17OdH6;-1`2yf~%+Bm~Pe4>Ah^&^*Lh2*(#)&sbIMrAn9gc&PNW zS;ghVW-fkuqxt%^bi2a7LYeWFNjm z^j;(R^H!D@6FoEa%qC?XIQq?d9yqkJ`r?(vn-}b#UYvZxT6fs!N=j$uGHOEK*#o%& z0g7E8XAujQBJ_dL{P05Oop*lf=il&h2nW&9Q{mu@&OGH#i!8Fii7j(zK|XoDHe^mu z=S*aoMfFMvMJ${h)y>P+`ujVsj@YiE0VRe;KJLpc6A~gXa13iTH4-96(uDBnt}Zy9 z$G9&yRcM_*WHD1H?^}$fgQg^k7}dPe3m10Wp5qB-jY*)^mg{xK;s5&N#jRO&^PWA^ za<(xmCB~|$nF!X}EXzb$r~VxQ_o{L19>fYFpr@1nZ>sywDG)xADNH`i2JyAL-`=`S8VIVa?R*&AoIf2N4Xb zG6iVn^yY$MCL7Zr)&Cd5$_$F-iH#iI-P zpPronbb3~wndl_=k&kn)m*x`0(PYu&owu1!^o0u{g zgIQzdf#w12rpm@#4bd#9B}{{)%rmcDOS2%Y;(yPXP7$mF3_?XF5mi9QCJNEAw9A=B z#XQomLGF}E2dUX^q9J^7G{5~tE1&t?qbWMiTUqQmeQ;EDEH^>6s^;YG#CyM1hB&=nipeRxu)znK=iHw!G zm)sx-PEN|)n0-a=Rj1w$>v|SKBjQzubu&oQdv<1bu1_tI5(%`5@B&Lz2KAy|lu4t2 z2(thN)k3qNqedJvfS`z?3DdAbVX-wa2aj=Ws*Q*!X{y6%n!>Bf zqubl(M`L45Syx$-urU@yP1Dp>ofk!#W>r-hV>+E~2#s^D^^>1WcA1T+q-o-trY=ik zuBVW$<2tV6I{uc>R$MZXVGTk`07FDaLo=^TKQ%8~OJA~MR#P`d-kI1z7MQg3>~e7iqLdjdrf{r_sT$VANS?nJN}I;`uX z3%%DJUf!zXYGxjuRC}@{W!j&)u5$zkU=4ebEX%Dm*4Uetmp3QV*WP&G#I#|+tIkED zY87P`q8C}8Hy>Z$z2jj2_a52ov+G&YPwCEc<2=))oD--tsAm)_iH&O1rUU?E6-2Cv zHHC^aBFbgwBE#wfIU^_6r%9SVf3@cWO&elT6)G!}8U`S$)@tyarBOXJx3e?D?YY1G z;NI;@f+&NAb*x2O4p|vx9@P90Sy6vfn$$^c_fc}k2xQ6vGtXlmCw`k71fwLDwSj3Fw$4)b+;MAgFD zCdzwHZ7f>uJF{6gDbuKtQ7u)}c@%&M8Uj~AQzN^TbS!UGP1n*+ji?%-j%nD4WjZ$% zjbI~DsYt{6gpvU@!$=0I&?++1&Rkz`=tvZu&1Nfu#inV9D9Z~bqNb@;CChUFP1B@l z+Uxb2x+db_12NBMGa>>saS1@<-4TfNI^p^{0N~J%{Ly`1E%o_SuV2S?T*qGuq(rD9 zRAHSs7V*4M;?i919Zol^@Ue^YcR#d!V=udXWzb<9?RPe+a6^}XmQqG4a8A$6g~4US zS~t!r(=!0kVoEy|j`WK4()XO(n$Hh*(mfq_=Y`?(mW$`F+VRXR7qLjS^rrSS$ffkA zY*HQiX8K^1>vZdl$ ze-W(!03ZNKL_t({o4|J*TwWj3pPZQ0jS0e|hJ7?`!pUXIPDKzrNg!gh6$Y0@$cPjW zfLQpOWKw^{#s^k@^)iR=&DgYnJbx_vCUH3Ep`Ll~l%eO8qPJ{NHHH1>N zRl%)9s;DWW7EPHlL!%}x<}|EvQ_m0~0*R3zWEf{=!3zkkmr%w8U}MS#+_C)P<-C^= zNZakW#K@&mPfoNJodmT+Rn)c20jQ%cCZ-Cqn3$=LgG}>oRDnrJyxL4-WRplN5j~}; zFKc6sbdq>>f_t{(dL_Fd?n}+3Mqc*P)%ShufeRPrw=eeh73RV5{N`Tz@NSb>Q%8Z~ z-GNZajf7C?X74S?6+o z9^=?&i!|R+cC^;j?b0_*O+>@Vq-pB4<(1)R$i8XXN`kidAWhSv=u~CZKDExx=kp*z zRjsksxzTVZhR96IOUuvJh3l^c$A9Q|o-akhVkKy1G)ZM%8)NY0OV}<$ z&(i)*zEw4wRejT-n_FXuYUQby!`+sYt*WR4K`A2!5F;6m%o>DhLD$)fW!$Pm8Kmp% z`ROc(E@sI+JM$N=4xY1Ux8{^O5g{MQvMdzd5ge%n?NqWkHS<70aHKDWVT}SRLdIzD z#0Dw^B}7$GRpNvv+q^NR@tn3M_QZzy#Kq?9BwE78y!4k{Cn2hdVK%H#W+p-qWgs(H zFPmBMTZV$;5xz?s1gW4P&guxwGstj z1tH1wzVp+`Wc-37H&#(cO-v0o>sT-WFib%-VblW0)TmZbRx&dx$&wmeR&$NYhE$c- zE5BXEMnY~uM#>=fjq1h3jJyzJ?jeA)lCX|SlwJv#2gwbMnvgLu(JY8S%P2j^vk(vU zOqyuYRYV|yEybElD!ySK$ylu`>sYsEW^>AQ(ACTu#!WqUs`NL%p#Q0d)=!<;ec_(9 z8#;Vqw>ns4n{`Z$5yi0aA31Y@h@5i+XH>CKR))wjH-bT8n7E&56V-RW$yJXqY^*#W>wnzmwW zF~%fGvMj5rI!a__W6fl;8)JZ?C<-=Q&gXSq11LJZCithjx?IO~T*q}>$6pg#J$H#j z&`D_$gR?_(e33?V_2Af_7*D;(EB7pRTypp3_)^*2w>3PvkPxBOSydttCf3~=hH$== zmE2Sfi@*{_O>;xXesODeH8W>+XF=rFmHyqE;{)CN_`rN=TMR>#MB$7$qw~t0*~OQ( zajC+YS*S&us4GQ`k#ZZ25tmDp%NCLn(MByqAV3>cQA_A2{Ky!US149eml*og#xRH` z#OQJ|hY>^_n+1>1WyYE!D?yc#oZ#eTF*2=?o zDKoT4$$C&nX8qo(aL)Pm`Sz)OcCF$651}w7w>mTWr0cZSv%bGJ9=yFQfB53o!^USy zt;+a}A}7+tD2P!YRaAR_SXIxA&Bu1~e{yH~TL+8#ReXAFa(h|bnwP))&QTM1e<}AC zfCvbvG$TOM>aNoqDR>fqz~nvohydWD%541XTMv>X{rJvEk@Sp%Bq9kjEWE75^+cd^ z+FJ1q&?NoL?>yYx*!tksTJ7UjYU&^a5C9ZF8<+t-OCNdef+=mL4?y<$*crL<78f;@7P??c-R}%Lk<)b`d+T4r^k8x#K7jMV3A$iUa^f z+9(-O7oViqu53h;F$$mpi69JQfdjEXl1tMV5ZIq%h}cCLT6NO%UP^~OfAAxdFTQj9 z+ppYz-`?(aj{9}oOl%W*pmi7H-1(tacOM-L@}e+iZ1v+drdmZt79oV%^KM3nIL<^w zh{Su+T7(eUppW9r0YkD z62hKE0Vslj!GTdrCraU2hp`7LR1B~+g1ZY;2nJZ{xH$^9j!-=AjRzpoHcggfC>&!L z42I;r(^`A)jWvYScRhe0qSm@;R>@F6#I|j{b7i?uS{Z8-YtBwj-nG^1oO8}O=er7o zm7+(QV*b>yi#SQ-HxK&FG#?sT%aZjp`Q4Lc8^Wbg5n}w&o12GiNY%>U5JkY6=vW38 z?=EW=7#Wy0DmQ$u4&Sq7UpXo_vgD0LTl=s#$lsY&nNrV9()~)V4QXJ7Pzdq%8GiK$ zzj)N|*8xQ`B`<8+i$lINj*-C_CM`(7QM8UR5(xC2LKI%raz!8#SK_NDaBCKy8mK~H zreVM7Pg>V_pBvr9NQfMtMA|}(hNuZ4MD94I1cd@5i42ZWBPI%iU?1_;yx+~~xa0SY zlQzo8QV?D`4*&$Xo24gBn;Wy0WhZs_JzJA|ZO9bWF(&%SzEC5s!gwRAA63n@VfvS^ z@4Y$ie&gZtz2o7?+S-TxvI>z$)?6J8zwl^rR5e!z^036#;dEh-DwP;XY-EPUQ|lA~ z1VL+<8AJpLZlBC9ZfqC=0U&_3SHjpwT6l>JMuQJ3f*2hG&{ytvZ``|oP2}Bz-d$*F7;r z|Jnihh^MVe6zw-25Fa%DVn)jdPro?)+?(^?fA#Q%t5@DXG1J!fEO)DRVikY@q9vNP zErSg6+!7TUXD(>Osf&hy1x}sc&5>DFq8=fjHcTi@r=pUsqkG3kgB)0J;b5q-3otOy z^{U7M1N`&-`o=_m>BwCk;J*mmNgS1`QZ09HxJLwv^K#z5&`dAnr4cW4?e^o!dmOP zsa9IX%pAN|q?U^X5{bxUvUYNOJXu?RH`lLo&N=6t?;Zq1Kq+yCV&j)BR6TrXBVYQ^ z382WGS!tD;_u;hZZ;p#sj+?zyKe6Xt^&ukmy-|Q?ol8(U59?X1J){Z^(NW{9qFL7$ zMvKTvU48G)=w219f=nqw0F>W9jSs7UfY(O)<9qtWT^J>h5CEcQOcFLJDMi`lRJ#iyG8?5T3(-ZR|Y8yjtvT6rce{KfmbpO7IEpk0BE9{qrxakG_@gikqfO>!N0&# z`;aNByf3@bs|A-YNm{Q92K$hpMM2s7Vf&w5aNj`}(uc?(B9-TB zV;rPR8YnU#goaT;a2N%b0T!jYImD%d+Q$ctzgn0khO3!g2DtKUakdCwdUe0Z2YV@o zh^I~vU@J`w(Zi-wPf+*-C5(zUQLWsx! zMdm+ycUl;IQ~|TFNUp=-}lCRPp>_=&y2ekHXJn^rN%#atsm9e6vVT#E}(7|{rZ z$SD1Zt-(NJ<@_iy8gbV5!!+qa7-;>t?fS@(Vd2@ch{$ITmsZhEmb9)PBqj)W0T6Hz z5+!rTYnI+xw25Nxk$W(fqr=fS9yc5XZj98ODO@hhqq3ScZSVR)UL4QPlu|`eI3I{P zrg_24&h;XKh)S8|a-oz)#FbZ-v1T!!DWesst*xD-!^eZs$e(9L&pGFubN*C71QGB| z>ud1nUY~0D!g2lDtY1qL1Q5ih*M^?sVO?JxW?wpIawefJ#ttnntCW1p-raEAMXvfDmZawYHKLKmdt&caBRJeB_IHsu4F*J8gTS=V127H`eV zTx$VTh=$ZEDY$U13nA6|pWZwD>S>7pU!J-qNTI+7yfu?Yl`K2VHGgf+vkpPv=U(3@ zQqOO10RREio+n0~HgH@=1c@LbFn1A2qE_>he*d(5`r?I?-sf6XK`v&tk75;`_6|X| zQmvjeHbBdKW2jy`^A~cnkwX(;qu}0?h*-n-muQI>y*x7+`KUG%eZTe_iK%_`3>sw> zq&sZ;mk+wrp2tQtL0ptobWIVs7}u?FEE;hU-R^`zAtHzeU?7DOAwS^_RcZS`yK(0TGvKiUA&2`35Eu}z=bS%Sjs4sveY0ziaEfgG2NNN z?ob|CX@l+Mzutn1Nm)YNsFSW-#_?}!Khi3k9yYH6)?eOH$i2rI1?^Mx`R z0Mjfh%Q8(f=IGt|j_sUt&N=5#0|6icQUYjpi?}t6pSY5?Asn}TAL5N+a%;9+bp2+Y zzj?L37G89@+GDmg0M3W>4KA;AXh#WBr=@gg&iG_g>S4k_8f7#$A z0&NsRYX1ZKVWF+MdK)V&|4$v8=Jt!_@nW#C?9;Q|Xp5e6u5PNLDM5*7x{yeoB`fic2$%r%Fy8ZM&|8he9tJoIi^Q73@xu5G6+!s zwa}Wym)^PGhE60Rz|d$BX$6Lw>L{7kAiQe7NC@jFhOp&0Hfq|hT4|wY$uymL|KVLL zf=Y`Ba1;G8)A@(d8AtEdtOe`qCi@7@PgagG0-T`Tpi0gTnD7CEB(C3wN3EOIoCEdi1dB$oU^Ib+O&166ak>IhDcS*xwhK-&@|P%vT~hs z&N=6Nw;?MZp2Easmue<0U2p%~rF1hf+qr#pTCs>#s`0*yacK1Afoh@?W!m%YMYxn%Cz2>g)Jl5{2;s2v0Adt*kt&2q znp_@ahfRBPoKJg~A}K=8oDeOYKW^IR*N3m2H7gsUKE|yqd1f-~B7OdN*@Xy*5g>k} zk2N8+p4!#atoD~aguwF3$^7=RxnFhD&I{nkn7dUsNt7WfW$B&3&0m2SIB&2n9sa;mXV=_kEue9IPH8w*!Vz*n~AAI6p=cF zLaWkqp>+faBALR+O?PRa@|2Zj_CN-Nku3NghedceRhP2t_B;sk&5>~uj(grr)Yq5& zd#~#_PXE@=e#wLW;mg}&Yri(@*Q}lOVLdU4!sFg4qQ`Z+nI`+w*=RUiJvNRxid@Xn zNtS+abAtf{;I*^z*YB4{O$ZSy2UGZ;kBBH+1&e?P7!*xn6yIKkO{*6!JSfXlDFAq|EC)%FX-xp@NiywR zu9QL~#D()qA5Ode`!**_?|bImqDYitfI5mLoEW-Sdj=R=D1%%`&3?tBJe0LY1Vn*| zTZ4GoAp+hQrZ3&O4~R->=e;o|#xNWWnT6hW{rZ3Nmp=I4{n$r;@B<$hXI2S^5QFoG z1OQE4BOxhGMB~wTxtOo5Z^aOs`h2@~&N=6t^QVMT5F#lI(o5ef9|%C&KugbOU6?i< ziy&g-ePG_n?4p-Kp#ZR~v^)e6kRVf-X(9jsTsqVQOAjj-!VAOvtZj?LHs1Zn<@H(T zf9=lWPhQ!2-}?CH-es z+sk${PrJx0@PYMVqV!Ya?6l>}gY4QkqJPiF63IzeAGmB2p0-^)bP;48&gs_{=zHw zw>CC!Oom6DPZce^2f&VDBhklwFoc;_0`d7xm?SDod3!*0pdyh}!~Q~*Es5ZrWjwC& z{v0dMZyrAWx1PFo)^SP*fUER!jDm<&2m*kJ6Kh@Mzycsmj44qYC!Va;lTIP0TAy0<93umCRGW-^`tK&n*~xjx9|K3vF?J7v9{CYGr7em&1W^LY01 zL1O@;C#CqPi%pDQd*`0f>gs6l-bucbsNGa2NlY{jGXBiN@>-FcG*AU*fbCSJN*v21 zV*$V?JtBfiX1$#C!4kcCRu|T?NE3pOaVyU?A|Z~9o^{=cbDp{M-V&WOU8?mfC-cPU zglIcYEm7mcUZNI(E#Y%(=3dFEfsuwb^19V`r#dxKR*DkvjMlK#a@_KzLB5h&tLkcf zZM`hZEX(V5!O{h@@njW{1YS|vh>(ihBPn$L~`r)$P8xBE4qy9&?9$pv@-?z2#t9Kv2 zxV`qHH`j(nW-ZKH+{h%$V-(8901Tl89BPFkOHT;BSBTPhl`5$m7=j4js(Crd13@T* zPK{YK&77Oe+TOd$xx(5IIEZMGmA#`iCh(Kuw#ZWZaCMM10Wu8-HC`Jej-_YVNT71K zo#HaeW{SrRw=w2Q-Cb5UM#JN-e|~-N)wAk7qvH0m)`$b6PrLp-qvG|m)*ID@pb#I| zO`*+|VRq2Et0PNFQpVf!rt|*hczCyLj@u3pH6Rc;mX*c@B8mvJ><))pS#r>H2uIsz?L=&cnkbO}6q(06a?*cwl4|v`Yzk4+DkE9-hAx|Iu$hR7(BW(^o-Y zpw&nzuUH{WEFE^?xv@zNTFr@405Tc+x-|wRQ+(EiE(c}>O^U!^@q16b0@FQYfZSh$g-60oze4aqsnv7a^~DKqXGchh(pV( zTDT~X8D7PBUpels4YP+$x4$em@~n@s>fP1xI8&4*=FYO3SQABDOGO%iX$vdYCM|^a59hIO}m|5N}#|YaX7OVDB(7z&#qnuG1Gs@v!F8E)275 zx>zJh()YbFMiV*bzUS&yt+i$rjy!Ym?C8ureEeAeYtyaujSuaPK6dd2nZctDTOZ!K ze=kY0#e7Ccoo_$#+;e|gYt=dDoO8~1H7p3Z@jbFa0SpmYr0!tp{Nu7&%hE1*0F1)V zZ;tyY8ws+ARuXun1cr(LfvtjEp`bVct2k9grSir!%)36saJXC&QPcN{HXd-+yMOP- zZmK{c9Cm0FUl>JD0Gg5^#3}-d8YmWkDiFbnO!eH`j76CFo2F)3nDm=ZE3CIWlugJgUkb?2oYQ#(d|WaF+4RYe)Z1una%ZO zA1lv=!ZJt@nHY@#`%R~b8VOd>z^LP{k6Ig|Ai@G7unay`s*QZocOOd&Lkc5$eG@y+{0bbT`HS-!q#G|`njIc*>hJZ)j!=m_wr={~ep7y2 zMgfH)jDYfB$%WP#;qOfsMyW2wy6;D6>X|d8PP;y?%K8u!MNxnVE9VPirhV^XG)jqt zv7u=P9AmDND)4qnJ!6P4u+l|Hv|JhD{Sqz?u=A*hNrBSb_Uid{^~>*+K}1BdBrU6I zb8UTIE!T#lXEz2ELlkCG1S{iOlUS1|MQ6+TORv5C3$NV%hoAdFy`+Nx03ZNKL_t*Y zm)`pNSKfTx8ryZP>-!kP#@gDaUby*gEL`WDbIv*6b%+28#~u*jQH7Zn7Cduue^IUi zEuMMVwuQBusRfYA!#DvKaMi2XIf{%SB15R6AdqKvo<@eoR%O;$r4TVPGqcee5Dmf) zT$pU;aeWXH%a_;v&WJ&QNkL_@Je1y%>=q$FSOj2no+j(@tkxE>^GFCjz{-JJ1cASy z*dd@4?+ozyjj<9b($t0EW3a|Bvx_k@YeE+z0z_FwuLOx!eGF{~M{PgUxL<~y9J&xJ z;n-3eVW?3dD#Upo6T&Kl8>1WnedOI#J+9lawa0CrX=M;MjQaA?bTdt-UB7UCBTHP2 z7mIvo%*^q}E~XDkzmZ@UViZY~iY!F*psb!-8+wkV3wwjyhX4RRgpsxHSsTtn99lyF zTWLZ7o2enhGR86jA$;!95i@`E`n6TPR3AhHG{Us^7gDpGDP~y)-X6uD{ud9Qzi{F5 zXt-hN=0x3?;K#4>#Lz|&u8mOuY!+-LD6p(FMbgAyKNIh9>Epf14>au+Sh?^!$6bub z46mIn>%PA+8BSfCdp}NeV969I1SevMII;ljWtnFtKon4f)6S(@O`RKPZ4l48{)3x? z&M9Rjw167fGZMytzw?mCitbes8E-G!q1BcUfx+T?KeT@TVfha}duuYDJhQR>`m7!q zvy~-f2!c2^>QUnht#8kl0hrAPq*9LDa zn!P-EYAt_yq$de2owPv=f<>--Vy1zGofNAcEpgpz5Cn!ijrS^fZhh3WtxXaif>x?* zYY_R=`>v%*t?C(2m_a1Q5IK@kfEaurrI2X%!bM~3=H_~gnS=6O zT))ma=bUrCdmw{S2Sg|x9(VDqg{9}Ooi4i&jH0slKE_0=AG)~Jix9$A1}*}TES;>h z+?YWC4bj+Q6L_F03T8??vxp>$Rt5uB>(m&n=;5;b^!*c3uxK?fbWTw!W(b0SPKIMh zCWwtA5UrW4^bwDblolw1JnZ6eA2q?_HV^;+2q55-{3vP^#*gmlX;mu1#F(aSocF1< z)3RK7SpmQ*=ctrgy&4rgaY^rEoH@QWR0kDY9+*B#WI&KAh#<5P4w}%i>|}PR@ucgY zouprxR(nO}nEMzn=CM9p}a3&3d`MA@7;c{)zhW=Qe-zy~!tT;H6DJ8M@rCZ}j@eD+1J#6fA(QRMAsm zxa#n@#;XH5b*KY=y2t}#Puf04&Iso|GQfkfiY%v##r4VX3l9(T zyg)?n{lMDQj=T(EXuw6tHKM@5a(PfU0uWiM5JaSEoAuPba_@+U_O^F-vvlrbLImP_ z4tL8cH}Vi zEOI9@um%7x540kh^-fq4r2wGvelt({7=Q56;OX)3+A!N1g%>aL#=6^{_$!;?;)XXi zI>z-p-d}JNaGY};xeh1-eZ(kuw4@8Ud}Uf1Ye6{1Fd0uc^7mZY+DIYQE7#Z6Uz7+S z*d!4V-#Y+6#9}z~&Jn5Qa?#Wc5zS_2AAA4%+rWQnOVv5&obxTb^phXi-Tlvg>q%eT zIe$3*<)0dlKly*&34iF1f3`r4eNQaVM7)|SVDgav$Q27{ z!lN2`76Cy39}q;kAf@BE<5a^@4T@me`GGN8MP6v7m0Dfx>Uj8}?U4`R@BH3lgs4-= zFKI~>D@7?q0kH%=0wHLHxv6W70SI8`;H;OCrrL|=C&usqunH`#3^YXqNvwh&zPZ_S zeV(RimUn&6A|kSETSIEKyAuEw0i@OGL?|Mqa|vPX@NpXusbRKS9yd`T^ifVa--b9g zYHZZ~#(jLJ*sr}N62K7oJ>$Wvr;C{jBC>QoHCh1PGZ`&i7$^^D zd@x%SX=+h4K^?e`Jk*LsmfTz(!IiNnR;cCXUf7!`jUWud;#vg^HjB)JhIJy*AxE@n z5XQ14&onf2(!r&IyvS>_MnpcbJ9>64tph%&{c+QEUHjtJ+T+IUWywIRK8j%-|M!>jthltkzE>2loz1uNbn09i*(d_QY1gM3AJr`&2Is8N)7jZ* zI1~{=EQ|p}LM(k48O?%>0EidIMsNB^}CZG8OM;wS#{h*-r{^wV(j=zcX zci1`q2IF7;sXutsf9v1A|MT`1O2R-Q<} zyksg=?1c=V58~tU1QHdip6Vbmf+1P@xNgcV=W0c0hA9|Q#;*Lc|awZ!B`9d_Z_ zNp?`j)7CvT&aI-MRi8h2JW7+E*)#7BipX+hm`{5*P7I3#k)49?EPU(Zm655v5MmT* zgZCUXePvja57_SrW%TH-frNA;4Q?Pv{6QL|Yc$f`-5^~`N(@98NOws0q`Rf11Ep6%Lm_b*6F4H(23sx?)koyW-yp-&qtaHO?1NZZ8n^fq`n}L}Gn5>mwDc=Jlgd?Wx^$Yahmz?CQJx~(Eo#^NU2PIWK zf3Sr9(Y?BwI%{wPdQS^6eLAoJH9~SZxbsUCLcb`W&>=B^K49nFH)=x(rL@QXi-Cbi z9lM}r+TWHZzAuWB0j5%4?ZZ;Q%cIA=mCNncfwx%mGXBhiS~E^M?Q`6RPlxzl<--9; zuGgfpES3ssxK!VDKBvST(T69WUr?TmxeD&U68O8EDm#2z_7`>R(`}lM9y%{paTW1v z%LSh_KD3G<8 zffvkM=O)xo&P^20smP}zif5IYepIPZ{B&d^?Qu6~(Mv{+ zqtYA2hjxEWuU9K;cX-v36gmW!XH1By(`MY%XRS!?T6&+!P8=d!T$2#HC(5c&0haHe0(V%8VnLUFq5@r0`l zwBOV?VPFC%i3;7p|0b`{1S#|tq7670+U8rTt3buUL!#me%xBqdRHs-)AGGh6|bbY@kpH2Dc&?+U0lu5*v#XPW}OnA zVVw+1oWY8KfW>kHxD6?IH7}lYdXlxd?jtZwC)Yb>%I~fziEv^#;p!^)$liHWIpVi>Eog~yFecxl zCJ7IasIO-pU)c8j`u-Oe|Gc02yKGHWpd3rRdeM-MYgq~5`IEn^0g|g{G;PDBb_ml?gn@MY2 zF%fsq?$lzN(7ARkmp4{Oi7b8Gk^Bu+b4!7=->c`Cpy!G!+K^@w&Od53Hx#{&-iHA` zmY`xr;s1OXdmvN)9jIae#b2Ze!mJ0l;^1r`F1&dSO7D#wIJ7mp+<>!Kb;cv;slpz6 z5l&h!bZ?w;Q?ReJk)t^*!OOU4OQe)qax4z8J$$VyaJoEJgS=kxZ2K1TtbUxQQDSyH09TWg$wrRdg!Ph;J>&5n|PZ5{4OwN zbdac1Al0j8hl3B8#5`aoOeiSPAwh&tp+Uiy&dcpyX30jcQzdYt(Fw`d?Oo|qGchCN zRV}sMgVn-!8m4(d|I(A-er5oHxDzfNTg`J{Ah81PL9A>3QCcfOps(ojW#rBKmkGcmL(^)2npC zfcS~paubO+G^|QAU;wECXBS*j0`_p#w_0UT^*!PI?&H4|#Sz4;+LDtfGAf~(hAs>H z>ow0@%Q+h09^`fDK6OPt#m^QiP%M#=Zr0^#$H}0niSw0k8CpPjwZC7d>Fyx}qk8G% zZyhDfsg+t{Hg|;;{qg;j*%>KDe56`A7@);iVgQVIf$blb^IOljP|ONKLq+f}Uz2n* zJ)}l5x=U%0e>g`tThlo|FFIJ@K6AA#z*!oJ8ND8%sDQR^_e^VS(wlP22i2mE7fV=TZj$F~U7sFssN2ddNP=K+nwAOg*Py|04{5^@!A;wbEn&e&j zM4*pkPW+5eELT1fVyN%CEcDi%qWwK-X)Hk{E5x(gh8+v;+>Q~>rR0y7?xuZet(r>= z-H1wXOCgQb{!C4hb<{DVOa(9hC{s1Oo{zY`JBBk}jQ|0fi-@Ldm9` zGoBzcCQ=$5hq1eIt?|>@qJA1XBG+b68zD_eYM>h+qXehW|CwxuI19ABy9Z{1k*m6Y zB!&ArbPcn4KN)WS+~1Z@q=5-h&%5#AL|B>jrP`9dG=7-~G63Q$LqP6yWa0(dKLw+` z$R%h0&bKWn{gIf-2J&?|naMQdzy7Q-0Cv&hKu3d<4Zed^nbM$xH3}$bn@?LhP9c4* zfqpik=(eRJ9bVG@R|&|~gb3V!BQjSEPYfo{TW#&e_rH?-_redFB-V3-p0WO61>JB1 zeqIR{-e;_Jo|!z=pSmo}>95`8aCY1cS9Sl3iE>31qATv3R^@L2mxBSVu7MIya~qGY z()%V-rs*S31k884%EdBbkGX`mwSg-EQM~^QrJaQTIEyN-nNbGqdvsj31zmOr<()n! z1yP*(-xszg23_$!E$vF=5v*A!K24rK+e=}uIe9(}nLVeNEPDOCV7S}VbI zkx?+O>XCN-eBZayB%Xoy*#(v{b9Q=oiHm1ae!JNoKgD}0UowAsz!YKakpt;3@<|ns zn;i+IEZ6o-cENv~Ml21f^$C*ZEHVcDH^Uvz2#jZB4`yTx24tn&B^moy9!c19gZtOf zzPNonl@eqI2zqrhn}dwq+igyujUPNZugTE>89a@0PTWT^b2j-)s%aB+1;=Ffayw0z z+q+`N%o9rrM6e#7@B}WjU{`auVo}W{L3QHR0*#rsmU9tjJ=ZN3Ii4q@K2i0zLyRKj0!1QRU+R3KZjalQT_ykQi@F=`}Eywj1#hrC- zxO@tFoI^G>HY)l^tEKj~=&PrxRLph2v6+zf-%vv54X|PtqzAIGsl(+a1Pm?lJ=Ll8 zq(DJouk%|Ggfru7+{LUFc}b%{O8u7uvmY7s)T{*){mtA+0K)5Xb1D*|j)!6O^<|E6 zEF?sw2n`l+1UUsGYIls;6%QZGynZ&hUX?tYuCF9n@spXjRI_>7t<=)itWdVH1bzTU z$1<|uIrbJ^Rl1Mtta@lmY)&8BPo@26zXReNv=CF}ibdMv$Jqw~ zPy6R$iHj-O6VsW_r;QZTA4SJLD1YNXVM=0@8@5S|hq8bTFC&tXMIN@I*$uYL3dIVC z)L>b10!rGuU~%*LpQVEjq6ZO%rfckN=JvkNjGZk=oNm88r`3+D6Az?XIMt^r2^b@Z z;;Ik$VwEH{7^38$QbMYFQ71AmPmrQlGUKF+P~D7{Q!9`hXObilt$_&)*FOG!QDAIx z8#BWD{Hyl)>@i6p<>``e^>N^&YQmQ#&$%1k>9r>`dViAJbnL%`RgNotZ=tI$lU?R4 zMUqENAoD~QbY)>9g+X6`yeoA|_jKr`wkCC2py=GXb5HU7@7}MYk-znfW6_NsoxOyCHW3sR#DQHJUt=FV2;6hNe;~Mt)g;CZob^SM;bis@n zR)?fi^E1W>p4!Sxr;oF-nlEO+KgMtZ0PtjBE{?A9n$S=@P6!%=h0of+@z;JxN51-I zqs~kWI)_>Heu&(!QRIYYQ&TQ)p8ewu#$Eo%ysw_hEJadtB)0K4O3kS#zEn(Ct=EI! zjfTj$+cht)Rv=6zvDOLKT+u%##Xc6ZCJ|JI)*A;0M>7stCAeJfxIt6OmCym>`i}7k zVemZ&Agc$QeBeuC^|Nk?ofN>!XA8x8*l{Q!NVq8A=W$`1PwSc}JSxch8Tqw298_}A zk!GDU#BZ_yOAo2F6;)S@HFg+~9%Zc~Sy=hNu-eL>JHQF`@W9f=g|Q1WP$g)+m{<0& zVCG`{UOczF#L#YP)>r}KpV4iYmeVhwbts^AAZ^qePR-o4>;EWkFoCim>1-pxMJgmuce1eaBzwO`KsTnI^c+9RNCv-jba`^#18;Q^HE z5-5)ieMjZLw4dV9jxtu>VDgnmg5EBt^MA#R9}H+7`6F$Z}c&;|1@v zGYO|r#!de$$~Kyc>;ggYqFLo%IOyl#pUXouCHQidxEa{wXkaDbvd#U|-9O2}2e0fn z<_+B&AZ1ao%;NCcKT5`xA3xqcr1g)G*Q*jPLXf;;2z;Jb0}wnG#v-!R`iyA*Gi45P zkpYlq>k3CKI#HaYuCmW*P1`3geWWXG!i9f;V}RHn&Z~Hq1UjGFuS%DTD|<;!{ulW& z4=MNfL7#NShvA(!5;i-GCf?o9t&6H!NBU(y)BC{=8Q-;qrOJGn3#{k!*3Q2StA0swqGGf6s7N|ymn(B z{u~F@+f2lzZaWO~YA}osp1HZmH5%>zEq-9gsb0AoY5F(6nYN&yt{=f8Pg0;IuAT<7 z+e`A_yfN|GZAbo_P3mO#S$B5oWY3Uh;-|2@_@FuNOz|_A>kAR`byH~y`8;*0I4q;T zjt~!!5*iY5l|wc8(kytZbSyrWKH)tW9L64+tw+e^J)otr<_pU5&Jb$bZ`oGm9W{Rb z*Q^(zaeQJxWi+J%-2eUilwl!VNqB9tl7Q!XQ-h=q7l?z>P=Pdo5g3!&tcTXaj>$GD zVv13hr>1YAkR|d8fJQDW8{WkN1fLBb=O67#Xn&+4i2-1}1nfzn{{$Jhw&{~+Pf^1Z z%a$U+uXGzX$8yLvVy3MX=0;n^vvIqz$b-Ln@EVWWh3IVs-3H5>qHAp93rI(5PEPpNH6@ebX((76BfbEk*}#E zZ!Dn1zNiit@Fm)ASH+%)C}ibW$m^4(p1un zYi;DX2*r=ihrYKY6h-U?hweHT{?z!+ic{9wDVh;(T$*o8uxk9j<$0`jx>Vd8^ahj) zfmQc@fz36vl`CM)DAUZeunj5Bst3i!AM-x72s6MDEjqzKF-X2@X379LT9tM_W|%2b zEu-@}+-0T5e`mRY#%&|O^qZb0HxDEFUrqz~?MT(*0*hRqnf5q}atyROle;aA6EyjF zWM4`_4Qq|#_4Aqdt0@bBeu*&;xHsVhe-{SUGdATE#oIywl{IsgJp}>GuJw+hYp(V1 z~jkKf}HBjg$qTQ$G&)mXis*)C{FVGYl1^t?&>L-vvArM-6RMq*M#c)yS0yO1!Q z9Q{oe?$~90&KUy7RZ(iyy?_jsc|VAx&qWr03VZ@zEdUopK1SON!_F)G+Jb_IRg>q7k-(ku@m0^gld9oQry+0m z&K2p~A1w&~_%A*C?CL*|p6LnDhrvL1Sb`VCTuX(FwfEZ!#L^t&NPLWz+ z=K)gshH`1Y_q4<3PUdm{At}}meb0TKn+cVkHMWu(2r8iU{o;KBGBVNvQ@iyPo5C$^T*j!gmDz45=JINpOO}pcL3e zofU^9ZkO-zqC)+UJW|p*O6TiK0(gc|QHnZRyI0mQ`E zs`7G-kp+ZALoieFyrjeXb&f29W}=e&>#m&mKaj8i_!zb-mZ9(XH9CJF$1HE06I)$B z`#pE-}~)q@#B<3e6`^)nCKU&WSf3X=GC`GE6Y#*aw%=svt1&@8n+dVK`GEU(>7ekSt+L@698k-DC29Z_342T374hW^6CR3gt zW=tMef+RZ@3Ad>4n-$D+(}2kXt~G+aW6_r};|3wbrktBEWdA{ylS!lDq-cFgAUQL} z7xP4dzHu}t@I>X)iUh;`?AI+X_+N&@q>RC>p60HQcN@iJNijuYv70Q|Ay7RcG%!(y z_EjlHR3wy$!^2&304FS3-hq9t_SoP2WQDd*f!F%pISDT#PBLaIN&b2Ql4%x@Zl!$_DFLMryA_<1y*1-lTdX*wO0=zp{@U z*9+b-yh$zN;MmE_H^>gQ&Cge($YK?vH(C*s=7}D9!v=ur_iG4o#TBt<`P^770lNg8 zVO~Nh3eicN+uo!FF2dGd2rQ&njMA`0YEKGOrws_Zc!%j}#JMsJXO*0%7gK>I3$ z+2i?`T>^=~CPR1o8HdtOCjTpi|Kol-Jsy9cRm&A-bxp#`9p+c)H zntzO09i98mLh+6>ni&)>@RNUZFpJ$o8);i~2kG3X7r>4d_!ULcAW4=g=lA1;6UK#EqksH&qA@!@8!jXsd@z$P%3PFV9a{%&9U!DU4j6 z9!D-Pod0;1cUNTZJ!dwpx|$!N>t}?l_iTI~eNSyX5;QK$X-_v3hqc zvvk);_%v`cV8infoKK;&N<#bBTU;Vvt^6`lh6Zok7(@{8RC}WDTdjYMUvePaO23q7 zhDs3QPhbk>LBmy-k+09EUJO_70yan(?4PSp-9I@R1!AI~{~xU+hau0^-@&`||C<$5 zPW*29P-o};p?G+^Gl4t*5~PUNvs|IaVGlCih~cRiZ7*NS9)^$kKb zx;#^{&=y#1bdLbVlmXKgwFNrVRG-z@6ESNy7Kcr4Tqfv2&kYENB{hhD{a0Y`v6u1Det;c9BI&l2TZsH1*T2jO5vp ziTC<@HmsXGS$LS&F!}6I){Bp&26UWwPVu7v^kR?W_b-40bjkjY<{q2i;H`}*qclWXtkDcy7X-qZ59cXD-|{;a5j9Z zw=8)g9Wcmz?1=@L7OTmFzm<}=X4Ft9<@w;}jp zIgYYpuV2b$Io9F-bQ_nM<*g~~&g4SW@(|jyIX<>`{K5YGe+Vs_%x}_v(w*Vx4Zq8+uNx)7`{bhy8 z6^$4EM88d8;`5)16#jl8r>oVQ<@?*DAh!d_3Av=w%X1&CE-Z#S@jUyC05>z^tDv@r z-5pq;;~GQzY24b)c++W%Ecx@6D?e)X-ZL8!eL=B@7v{3R{`Trbs&yZGO$rr~st0*d zun&gE9?!=+Ns+!2+VQw{JcU~?lAU+olOymP?}`$W}U25ZoqpU8$u3b5B637;-evMJNi>>(%ibC~7@3O9c#Nu{v@_;Lpfru>V@G-f6z z?;sxpH%TlQOM26a%>KGrrv<)}V~p;@;hd;fYRh^RaO8=YPMCJG7a>Tv?D3PIM)4c6 z7GEhd7imJiq1P7@faK+6(d7E37u99XCijwRPd>^K^Aok^47@mqcKqsC0qjq=Ycn%P z5%!hql_c|c;K35=@PN%D`=GPA4d;Nn+mNwJO!QzSePRwcnV^lU3Zxi?vne&6@FN7) z@uz@`D!e{~y5y8a3tbtYnWmP6{rX)mli@a!HH<~kQ={{#twB0`Z$juqtd1V)s-JF9 zp``6&4N!^C9v_H~o*zDJIg)@LuiYTM`jlb;2|{D`G&Ia$9R3+!y$ppE3#V7EI~YW0 zjP-hk&nWK9O#$_w1{dvTOR(?l8XP*sI^{4 zM~>w~B``!zVZKzEqf3utLgn2U`)i{iJiV8^e06$a9bWKSGVHEzTz>i@-;T1mM(iJY z;BgO8cZb%`9uu7oOSp{}vl6P|!TT>#{sYm4nNCtuxodQZQCR%$qs)pVadS^lOXRO* z$DBsT=1(itqoy|R(VB56@l_~=U~6K&4q;DQ^#?`NcDA${r_D2o(HhF5AHfVIs&{0g z_rnxRx|R>!^W2!iTPmTLXjLtL+*{C%^bJ2lgWSTPn0=5sA8W40`Y?0#_{-akGJ;%G zvrOvSLG&`m31!Tuy0=~taESd&%&p>SlvmnJo6mnYdiejwS&l&SIxKDwW53=$Fg$ba zI9!Y~7qiv3{Qs#p7iQvpS{rny-RX*)`Sa6Nj#Wl#=buQZ6^w)SH;Ujew9F@ZnP=?g zk?NQ6Xd&_4$eYT*NpUt|cJkMF*)W|J7ckk+>?L{p=g-m&_=%2;!H(_TfiHpCuN7l( zj!JD8UANj4vQ}0dY^cDyR?R7USXjj*X-ekqC;la~eT#lNqR_q=y^O0I!yMW$ifu>`UI$)Y?ct?o*qOH(z_a&*vPp|=XK1`~tDN(-;A;?=j$cOa5g~hKr za$oTjBc()^2mpE7B|lA{ZhP+}WIRu6123wAd~QN`3u)Q=-q}M;GrBE_p^UG8>zCj0@5QjfF5x3XX;3pj-zmZ9w->|sf~AvJOo0%hjOylPbNv@|Eu zVB*Sj@)2sBM`r}IfXW;%?e+{bAOP^i?p~u!CiUs_zBHi%5yJ4e=rvgiZZ~@=N>;@7 zZ8YLC+V(A~?0WQ%(qU{V<5#{;+?t_FMTMkGR!-I^9(d-BJ!IBNNKcQ043+@U)_$`G za1HcS<4l*3$Sf;fR47SQxfn4VyQ;M7PodC&RLs9|D{@y^#~>|WpeKWB3&(S`zXd~7 z8l>kK{`^7s)iocjZx|N%?Iehr5a7i82NN#E6JiR+WQfjwcPC5p7TmA&65#9efq~)M z6}mpltAnz(Qj%SXuQSP>D%e0AMNFJ8Kr_mpsmbrB%6;SeWyx~;$jJp)r(NrchNo1h zl@(#6iC1JmVkRcA+q-%d&X2lt2mks&pEcjd8RomeQax!BwgwXcvcPIYOuSEjoXI`B z%`CqgwM^>kJU$5$3fsdzk41L+9Ju=Y{eO`$Wi#=DLQ=SG^UB${Wme^9`F#cM7p|M9 zdFRLe@uq;Y7_e8S`{oPs!kaI+TVUdzlU1+vKPk5A8i}pOmn|cw4@XNfZVx7F&nrnN zpzjzm>b==WgnG~wO^4UzXcx+|fe4wbKX-YPw zs9l9#P7WRu21w~R0!@K{(sZUpuNz-C`FpVDZBbX&@t#>#RYgZfD^WJkK$v2TjFSWV5LhzO^s zYoOko#h$Uy+Alg!^J=Q3B*s_6@TFBd9xLnp9{l!Ot(_%>q=4VkJ?#NLsKilRsekL& zIN|gefL>MV$o{J5Jxs`x9@{X*0B)!HJr5aynD;Y8LJM@YwUJjs#hul|Q{F<91ow{} z9>QR2{S2#Y{+EDweudm~Z~spM6?ukK1kbkximQ*!4{MjDimR6q0Svyj5kx9|jhbM- z?`Lc#A0H8&D}FaI!eACCAlWJ*Ete)`emqK#^Cc0vJn^oOlHDnW8_*c$X6F{*C}y

tdU`@%mF&@78C@(JoU@x0ehdO&*yHPw|FRC3TVsP^O`ynJ9~9Y?r0b5;o9dP%+%BS1|`hhNruw%r|?0 zX=z9Rhb=8TiywmmZysGqCH5NlKXe+b^BrSh0D2@7(o!|Sni7g7dL`AbW%Edzfugx% z{ahYQ4JzANt*%BWCKs9cNthfan)R;+Wso2gyiQ4=Qi=F6t&EjX*_gl{n{GgtL?M2x zMtr(N%QHH*@^6@~hzKAC1pKf;Nm?`#fIvjU#G-6pQ(mGAQ;viX&B_UkE%`b<;N1wY z2D_3~W5Jn(r{hcWU5PD9_+HIn#)E{*vXKVhURT=RQ-@`5epJA*K-E$&KxmZuRQjx^ zbO4p!w=p%%j9t0J`b zGe{G5Pmx!<4^992M5%ioAA*8nUM_DHe)d}PK&Hz)&eZz!%weS0A33 zCmu>KZ|r=Y4V|Qz_tiTtZJr&zKa9Fk@G2rM)1U9}Mr3X>3Jp=_Hor+SYX~WXRCz+U zDI{0g4p)NCukGnaqJl1KBr?V~dP#=aQQu(g&h)YZ)^k^S>7G^Q*>PdACg#Q3&V>5J zFmV65ozhr}9M%8&kkhswXB>HT?zYcNC$RZEI%3LKOWII-H5z)s2~ZOsfj!fgl*?QX zZgfHZM7o>!3vha7_?J@tn`*RdIVOkMO%yQ^=kLh=cpzo!U7co~j>wrq1}(K}P7Z5Y?Pm&023^>=W= zt0{pBB?!=LQBB$VK3T!kGLo(xP(+NUdri$Y{3YFPK#5Js)05f)m3%&70Vx4`EZPmm z3y`Ubo@;xrPhyzCE63Gz7);*5dLt`Uy#NrWw&2YsJHTNcbqp6s<6uDvJKt;R zu;GmuW(fH&JjdA%x`V6XlarFFQhU2YTTC;GP#5oCR{0F=cP-CnhevBy!!&^ht+fvk zr$4VVjqln_T6bP_ei~7IMso88jNsn1S-!6-XGcfd0Lg1>Cve3v3%(xd>(kEzY^E=H zmcXx*4>snyodY-QJI{XkIX?`4O_Kcnum3|@0B7!(1}`UrH%mh~VDtEj>KEaNDL#P| zTx0u$lFyo>l8((0!3tDIy)lTnezo$Y6Yo=I5}(uX<`r82fcSo0m6YUby&8bvI_j~q zK(#0;>TamD;A>de4;QnX7qAA;)xm+!jjRysnDiXj6d6+VG{E%E`ScAXEUgq~`mzu9 zsg1CkJpwQq`azxMt42xmfE5}zE}>zil5A;-uQw@7L?U z6ClnpJ{5Gk1`gbKxG$5fhXqyNfh)MFd(5t{DL*iLzW6($+jcrc;ncb_zvmw0bB~%h z16+LWJZ#|Y>!EB={lN8v6~eqbx4k84?}=hnoY`@PyFbI}GOl-q6Arm$&W|G>PFp84 zYQ5J|m}`UfRGs~WRBfKhOdghJ7%gIT9|s-^xpQR+@UdvEsJP>F`SspBYd3()Bw z8P5^8JFw7sm(W_4zc>9C&LDpG$gtXcWb+b3EPv^5NBy6YxXi6YhR0^n_M@>TsqDf1 z&cDRFpi)b+n)TE7gMD8(qhjDq!C+_@3bm zh2=J-(^hu!xsC+s-nhrXcF_*+ey^rwKgkX|JUWI&ql^o?9;z% zEb4^F8>X1eHZFq%1&{`WOCXKqu`)J+$DW2N-w+vFtf7q^>h=UhPCT8{u`yeSVOrs- zygi6s_3Ju_$09}p5sVIGS*Om9M|1%gQ4Rd!Vyb4`@%7&&ZuQuarG&s^$`X?74iCe$ zpOzif3woS5FGqzq!UK=z;YYf2?w*e3V94^K1N|XkMoxm`*q^Uc`-7dQ;)xCDc>?4_ zi~vTL0utQh3}y?4Z*``BhR>cbp87>SB)?ecly2=z|4mMhT(s!a?8ZjNWWf)0zt2q8 z1ci#B$!Y;20V%S0?|88tm^3Rtc^3f(-F_BTuw{^)X_A~Fnx6h6?T2M#Kx4vJ#rKRz z2N_-FPF9K~ol6etwiGXw=zljE9DA0JZ~^(Klbn8fp6>-c?M-Oq7CiT7r=XmIJ$8MI zr*8K;cBJB*1^=g@8p=EeFi6di+@2$E9;XQX_i9HUcPefkCkn#<$}sV8<=aHo1f|@L zt^FH&TE)QN=Uqj(J^b-!PV|jo4bL*If63s@RC+}n3PAfFEk79!P0o;}E5&1E=B!E| zYoOQng67sNDmOw(p%|oOWChj+#^uDU(F!;jH~*5h%KbRQzaRq78{stRWE+8w`GjL) znvj@zk=u{?^H%t2uk*wXAV5G}sQ9}QwdbXQ95!+b{9@`|0S-DLuntQ}zrOJCxt){_ z8VyliR+s!z(7`v8Y!w3~%{!M~|CX#i%w$Ua5q`oS8h43b=N6mdrTJ*>i!iE=+I8Hd z-*6N%rjPPEINQ zx1!kJEdSd~Ve+?oX5!^TI%Uq2Yinm%NvKwKArNB<%pz06_c&N5?k%eiAaoAmjG`ep zLce&*L8zF0T6u2%9uz-6uCJN%Ho7Wwx7B&MzC3jEa1gz0mwc8xgekN9a?)KGhVdcntjFDVxFaGGP*QjZbT}TG`#`-M_ zBW+3!+JiPwiY;gU!XhprESymol%_Hl@q(mRK`@z-vHn&Tb3Lz;jy^wJylb2shAv-H zJ;gqv2|2uQr#I0i%lz2rp-Bo6`o)IgmcePp$T_64Rqk_Xun7K0c;2oHx}fYBCN}jY zH0nnVNA;_ap*aBL_o;3BqoWI$wDr7S0-$2&sjnNjVgZ0dK=y$6cOb}| zx4(sz1yuBwrUW3)Ur0M$=MhXwSPQEuTg7KZaRUpQ3v@n9Amdd)uz?i(YLJ|zw9-97 z5Gee1#&oO;fL9)rTpx|wgPtOP^p$SJS}B`|0SGF?elKkbs>JY^aq;ex@NFxoqOnfZ zsl567BSPiaHv4P38ns;%Ix$HjvxlXoCs?Y^NpB&omx!aKZDnyqE#|)zU@&;0`iq&n z)5_e61LCY5ctd!Uui6gly=Fb8i7YG9aAbyx@|0mIZukgtL;ix7roG#%{Zhz5kXSMY z`)-4s!SS_*QVC?PQo=CzOSv~vNob$qBEtdb7RT(bPWsz)x@71%qysE3($lJ-+MJMy zKiS!Dlv3LokGTx<^0gsb{^-H_8AK_XkZ?xxc-Qe%@M!>Pc7>P4Vso!S6=DNa#159< zYu6d}Ns1n@g?rRb$@Z}*0c7p9#c$Fvq7ogP6k`38?}V62bc$g|%J$qn^KU>f%68+~ zHN@;ntMq@$Xp8_#c*syxa0xYx8e;5mY~*M7&>47`A}MPsV(?0Xs|QkUxZbjE=qg!h z57pA6fZ<0cuxri)fYwm=EUd&DkzCc&KklGx0ATZAZ5KRR6m4zjXff(ge;~$~;#E#E zgkBG~lg~LA3w~EL_pOptW1}6NCAg>nh7kHx0GJwPAg!cXZdw* z79wZK^j_SxB*xf%Oy2%IE;@7l>?#9;xn-X#<#x$`_#+#xOXHUIym?|;`V(Wbe*(Ub zJ`md-um~)NKMeg7wVk z80XM|U-_e-mBs+%C&mj^DwOXG12_p7Q@Dw5ZMsq~%L}t^R{PgYi zlVDZek0Tk6K>06%V& zm|r~o=`g}}!|-miq>>Y!Fr5P}%NH$^YRq~SqslynUJusR+G!v;6!MLZ28ROBP4le? zf`3|BC(31rihR~=tV!Ts^@FGD_@Y)W42d=E4(}`9F?pnhL#y4u>!BnmJr9em9cexK zfV}&|X|aOOr8==7;Q0%~RH=zv8JCHH_M|)k*4TJ{4IvIz)>wol7dltYXI5%bE9RIe zk8B7LczfP}0rea%p0%8(rq;-IHPP_(JV#-J%dvr!1P=fUm~k5nCYi-f?10U`7$;0QTOl1IxF8|rK3oF354 zh=MIw+6C?LKW~;gFnv?NJZ1^U{)-Z8q7BxMo46r=W7ssC_Q!0YnI*27R$*QZw8Y&SnXV3MTG)lv|L<6F2s&wLDXGAgI6P8?_>?Q^1E8Mv0~2GvGz#h8sCj* zA+-WwaA9=)*Hn10&GSK>Ht4E`E-AjU{n3mqv9p6GE}?`dyLjttIeXh}5X)y>eCP{% zDm%3rYuwmwUEtcA!ZKJj!iHm*m`B^hsZ&sVO-$z?jBAyaT<3kVCFiiwAqYF8HB!V(wmd>uG zvFZMBc=$t$G0UXYI6sgK_p6iEUWAVgWD?LZX^xK4QtOAIB+nL+7WNq(w@|~#h{v>v z0B!*kN_ECk(K<0Y3u^C}uUgdLqGo@bonAD&z!eMm@YBI)4D(%9~n*BmOHN(&&CXjNoC>B0b$LLmmfThb$dB} z6f>UZwDNFIW!^MO{RLfQ&;~XmGCjn57f%iwGDeh1UMa6MOd?n&0)B;( zQQ*I)(*7>RgZx+?<6;Lu80PNlCm<$W(DOZizhQnr5=EG_Knrt*kZO2nX9IWN$mGV( zlGu*4D)uHstf}ps2rQN^3M6|kGjnn<0a9UvdIs7)ZO+>2=%I+mTc6vKVhv7qtY)6fF+q);>0Ak&Opo;(ZO)3t<#crL?E|B&UfkODlE& z{i*Yi?TR-b;Tpz^}ee#)A~^IO4!J! z5`!9g%ubq!C!Y+{sQg9=>0)POuF+W{x8jp4e#NheY%p?x=wVU)p5)7cUf)Ck1aeds z$8_j!eJ&HkWg(%;;PCWN!@5Hje(;rf9er*j1cXL1R*IqOtty)D*tI&AOsvhsRW>!$ z(l12+=9+7w(4L<1;SM6qOpDzAz0!(uRpZN!xy<=yq60*UddTmW9IP=&OFIUTaneBq zELgRLtL;zQaRYgdRM|i(t;pD+M5miG(`1Eng+Sj>^f*038Vf*QGvlauEHjDj{OeMG zAcO@_@)1dB7eUszXh5*>yuF;d%E@ z5+IZ&^!+nb1M62qLDJRAIE*9)NL)HlourV!f(9Y&*y;Z$a{u^z$N5c&h(AhbtQx@@ zTmH*te(5(Qy8Gy{81?5;jn~ryFHYY^$1?@%ew?{)@06OeZDjLNgAmJ?&lzwkYYzJn zf|WT~l#6W<)yhYo!NG#e0?FBqj%al&4pd-rxe)R2+>Bj%+IZa47j<;dTq_@_V1C?{ z?~ZR>pruwzS8>aD(YLd}_sleUds($74ULvl4w(|Vp7Pa2Es;-!hlA`N7eu0 zv%ljCVUMCc9e{#wM_P7&;E5`uZ8!Znq^F&K5P9j9_g5n4d`=LK(fg^r?CX{~-Ee|t zzS!bS3|5AXISEJg0$Zd7bNfpk1k?AI!LDE3V|2u(L5g6;^tX7H+&Dw-q||SY+HPjh zh@{1ei@EH>yA%l+XbD8}y&lJ|#uBbtYO+gfxEWbptN%M*ZGNC?^^^LaKB}O8rMc5+A4>a zmndQHEWNbxFQ2Nh_YAsym5GCX0NeHU3X;@g?^ss9`O|r8X1u#?i|{F(RZ)q_R{QV8 zTlpgBc8k*{v{B^DvYUtrqY11T&ZgX9rURu`SMzSi$$&xz#`kze2Yvr*&2)rG3$eHI zUu*s`WN)XXimLL1S5_*A$T>O!5nc$dbhqM41A2A9e?%`B6s+ogI}lXal}%-RwsM4P zv``IhwTLJn=ZQ6F2bqtIfawSXoSEc>wHZMOHW9$y5UmKv2J7hoZ02hl;9j~nmQ7I; z<$D;|Gqmwx5x^B@_{&jnEz*h#Z8q?+!Us@1zxKz+XOt^SvgLutn%DSU$ElN#TU9l@ zwd&@@OjvfeDUAauIWcAz87WsRlfH4NSri>H%rGf-J&gI^I#A*d)-+RO55b5~FRp5= zCL^P!&OE1Nq%bK*MlwrKG;G;FSclqZs>AF~KcRl7?VOdp+h_YAQzx<|;@5Tw9 z``Mf`RB-_Vl;Ao1Z=UzGkRdre!2hA?ETf`o-*7)5$^a@u2q;JlNOyNP0)phw-Q5k+ zEz<2vN(?<9-61J8BQR0&dMEHGPMW>L-}iwq{U#f7D<0{nF+@#oF0Cq?2=s#Gbx~AMN5^CcHFA*U!D$* zdnIWM?{GP}=tto)-F|Qd;Y-T3DA?;`WnKUG%Bu(XQ`3Ez!-?cVl0#sYIS5j434`Dif zLG@bBY=PTuKl?b~T#pEjrm?&qa1chI!oONA8r?Gzz~wMkeY5+<20)1Z0<5rVO|mM{ zn;bXS3&YvYoTK~@ek_#yuoo+{{wUV$aU4B1w(J{lo2-3b z{jnu7^?pTQ4Wg{g1lY++#o4bL64oaS?gEslEj(WI7luoW#_2+?pJF*S6=Xl}I8^Wl zOLSw%FvNYr6NQvzP=2Bu^V0fGn%Q@9Cah1o_o(jqDkOznTzs$pu#WSQ#of&*>b&FZ z-6liOE?V9=HyTkMUmcB>yBTjHEQ=*eqLado=L=O-AH5+64b;yGFeZ{XOp<@Q=j`#z zlPS>mqfzci>VGW)+in7j2D<3>0VIQJWBwK?OZq7jm6unHKAs}uua}s-=Wf(0$1m3t zm)mknbd4Euaj1fUKkiic0<`_jL3l2s7OIq+oR2y&)5O6m);P(F0&uX~70MJj=z)uQqzBy3|APwvRzMj7 zDkw~KSY25%|JzXr!?wN{#lgpe*2$d%^Cg_30gT}FTd=}c@F#Fmw3dg+@V%y9=VOnx zJB!b$?CBh_7c60l2CEzQE>u&E9vT3&A=EuyAF`Ga4HJ%uEqRH7f%@Wb7}z#zYyN5= z=vs&mj)1pa$JUWtU}AiKFJc!QE`x!^cjjM_E+UpI1Hmi6%{^2`ybP`|#fnlRblA9s zkcrR_Gp(O$zfE}Mvgo7E&}T8-5ztCO#f=VdF8%dJEw3n3%jztTN;p*}THR{khrZsr zp|pcu8)Oc`Ss1svlu17Dole+bFOXS(go(=|K-y=^UdgL;0Q0Gv%kH|I-DwlvlK@^1 z7jv;nBfb2Z&X-_^0&qokt=`>vbNw;Os{Sw$r2}cTUy!SKhjy|48+HiEn*e)Q%xD9d zBC9xgZxmvZHR}3Y#R1?q<3G+bmh(N^tGw&BZ8meUn1Y~nnLn!ht6>CBnkTmtL8xW~+gt;q zpQoL%F5N4v|IXj=S7M-1hbx05GicnaohLrW(Q+%!2g`=yc>C=-03|O*X-v9cG%X$t z7tC_~dyC%wUaKhh(RSSo7fq7?*`@(#R~TzK(ARA;g4P){H;gZp!jvkfRz90OQ7q=o zBO_H}Ve&1Q7EMIsA0H(;21Y>&{r5ur_MdN@%js~3zxe113d|NF(k^d#T+s@1hWuQN zRW5&fD(V3HsB!$=RJkSNVt_}4%BoD#5AapBb^VjToD!{#I|v(m<0UHZrw<;jbI+jP zlTp|C_xU1eb0nZ##5_yuZR1yzSs7iek47VLe5A(9v;{C^a{xsfcaw`HHLSRUmyfvoEJaYwLSXD z>bOa-d~4weKDydr7yuW-_;Y;>bj)r4tRjzTdT9Ig07>zTDeR2dC+kC>u5L<5xD@f% z#zxJU6m=n=vvo1&lB+YZr+PND_r)nuGz#{)a?-_wRM_Gx-=)=TKO4{O6l2PmG|>`$YJ7+~7GpVJ%9A1hpy9`3pX^@!Q5%w)6U;i}Q*beP~x7DpPXSwlu;ilYUOm z=j%_UQk5_iAy>_6*shjIG{`|VbJAMUbZs?kmgtr7p`r2)ER+RP;jl=L z`@6c9`tsxItUwH6%p~@MckC5I!KRVW$RTkt3vo&!Ph^aEmU+c&LD{}3j8S`}r7Trl zfs9T8K5{?axR9NF>^Inot5xy1iE_^@Jt8_%MVg>u1S(M6;H(Gk=B#Aq?Y=MjMj5R2 z<<(p@KaWQJj3IZo@3$uHt9UyI0sc2&EhX1K@pXR2T;inR7r@Uyto{C8ixNT~_Z}nV z_h!q+2(Ev2wbwCOg#?3EDn=AR1ch%*J~t#;OZ(gQKFo0Kl19Wx{P-`1cKFNRh;FXR zwo&E?@sMI{dx4SL(X3X3negOnuI7w=_#e-bZI*bhlwd^y8z4)Ur5LjwfiSywEY%R5 zQ&Yf;Fve+qhc*fQ#7h%hQs_us)S9>7KW#--bwUsxB|6?Oy(wwtoDZ)6Bjs4^oI_E5 zJb)p!5kDSG6u#(k*2HPkoCzhhff$fmE(=$2L62A$oX9n)3r+itkhw@h4WPF-w+PpV zF~|Z>VJ#4c5AI7L9-OJxB_uSiE{#pq0KZ$gZ?~UqMBT*Ot+g*OEd_N)#W~hw#u?WK+jRTg8 zuBH#XVqQ=IWxmKe?-%6Dsivq*e6Fht*+L|4+x(#Xp@kj2*Le8JW@(1P7m+qmVDv=C zrl%!sUJw;U$Y8|+=B!sA_F2vpogKfVuD6G3VFSR>H09#d4<7`?`qC-J0mhB`eQGl! zZpH2;9-D3FXyU$V?t$F@D)vy0U*(MKd=4YsOi;;_fs6uX004tG0yO~FARTelM>y$H zd`y|m3`D8AKx^#0qeWP#mOO5wFY2yB*?b)r-QE3V_Rr8)U3c?wv%1Ti_)M|rp?z-6 zH27lSsaNa%A)?IHd~Z zDdT4yUV+?(_qc%vgH=Y&p8HQC#k1zzjCxI(51L=_#s2SsKu}oz&X}f@Bz3m_LQo^_ zxMH&TT5|uB+TZDm{?NTLk8q$OM{vy$B^J>6A8&FLh>{i^FhU8S5ESAC%4=xMjy?8H z+xYrbvA!;LzN(#RmS6cR*hwT8TY?5qcDH{do#@`h!U^6D!Tu%_s~k)oB1ux5!NiHK zMG2G%4*oA>Wp}Cc(i2yubT8FnN9GrRNTsSOb0BG$qoF{ymM|VK5hDdmwJ5CNw47ij zqePrDWU?;nV*dUusUD9qS!oPC;_i+f51{-*`aqXZVQfYB4zG%gQquT}xfgiMa_jzz zFF}v(WU4X??!Y!R4Ryu+n~9Ja<@#+IC#x z2ADRujK=`M?gGv5#=lqwAav7G){)U%#~1h>Q+Bzgp&mql@K5okcqS&|>X0}0kIX8% zG++;X=4ATv`G^`Wf$!s_flj<5ega_RLO_b`J4x$>w9GR*c!Yb&_#@9wzm_GaSzOI3sT0^;FF(CkmgIcMN*~Atv;D?N0IsjWM zW^aXsW{-o;x{;`Jaa1={NUy#ZP&!CXsaca&r(V~oF82n%8xn^p!79u*@Y*Tx>11H! zNs?_2n$1R`$u{;_?Z0mFgs*9B>y>4ZJvGk8S{m1Mg*AoHWU_JZwj&!l!Qe9IA|#7u)KYoyf?o)He8Y zDBdKH9nDrpl1&jUCv2*_idp6 zKlybu44q*43=Vc%^lJWofR{c?~XwKxr$INE2hYznXVZ22Xs!xZZdDQ5n{A?jnx z%dR?C$QFW!a{3q}?^ws~hk$~En?cgX>N&FX!C}Ac zi!7qS@B7Kh0NB9H$ydVkDN(OY-}kTRz)ct5*QtXp(Xi04cnYqI)IJm1W~AP|F+(!- zp36B%|3?AUqG0TuMAQB|_a{!S^`&3n_I}(XX1SN^C1s7KveFr8yTs+tW0t zfrg=gCcga+sazho|0GpBB*+Ao-EFi1n|aEf7MEf+9jA6)#*3J}2B20rQnx8ls3RMg zC(IbijhB$@uGJ)M%c6uu!>+d-^e}fw+B(awSC3S+n&wu?@Zlt3p67)RzZ4svf-=J- z?rJmPJYYs?jF|ySd^h&_(S*{F7nBZFPC3U`#J+!UkL)`;bdJ(zizlrie9}6C*Bjoy zLhfFHKVj(TeX#mL!jKcBxpANuF*Y2q$`$z~LjKl?Z0vg9w#o5%)9zYC=_>-VZ-Va^ z5;%W9v$SMaC<-ish%pXF#`dFflGy8`C9C=V&_~T{eC6zPr zCrUN7RM<77Ojt{M0?YUdN5L!0l$774pAw5b!99Q}uBljlFe+M*gtgPN_-r*{O5ia= z$QYsWHoc*S;%_XA0`N4dyl2(Pm5QVY{`KB=CDr={A0z()e3$rx$=81S(HAzf})9lO`Q7cr*zof>!CSOX(Z zw`a9>L%h}=lvp+2Xrj}7-y6<7cCvv2;v@t+9simvCzCB}sinD6k!biKaBCHrXp~8qz_f~+qj!J9 zbRFs9>d1XFi9_nNd_a-nVR^BAU9Kv|n8q4M@Ux{#Yb0DCdi6&n_g#zauqgRN*-5y2bDBx>}k6p3Cl{q-hC35)- z6?wXe^4-3P0pc*8bFDam$ny;$c5p(_n-~vTixdiuy-QhK$D>EhMeSU>TuOX2mN4ytcC}Qqd7eOJc`NbCH1|UwK~wPkxziCH?pLm5+E!x!ZIBuQejG4b>^uC<+Bo4{{Pnk zkPRy2G{Qfa5ox9loQAF!R!t}~ut-B;5=Az80ATladmiq8%u0a25VQg}@|D_5+9+<1 zmjD+sFQ<@eLyV}DYYB!iDset8EMo`lP9i+=w-HO=T#jP(tW0g0T4p8n8BG=`;OId+ zm)gv2=nGT2ii#9$QU2{H_E-XG#`3*tvGzO%y60Y}MQcj*F8Uau?uAAh>EM*TGY_hp zKsMYSAHrsk=SaCt7N3Iy(z}6_flK}pGhadU6xLhH%SVP;?2%UDBo>6kp@GB>&91K4 zck)Fmf4(`puwEPibVsa6OM45Gpnjb5!iP}AdVbKd-o$6x`%h#kJwp=)C{1;$A<4cK zd<{2$0o<1d7Yj5w0D#d)NWvmS$Z4K#3q2bM`qS@&ZssDZJCH{gb;Jo<_nOJl3Pm%p z%RfcwMj3Ic7P}R(n_U@+20~5Abe-2HJH;}Ws}5NMg&+8A@ygtBp;|e%6mjl%?(wCGRB)ZCHxFoGy`S`dJ7MTxpIh&Db+Om^(g>tNz!E z4LjyLN`KM^XTHK6`j)kFG?o8n?J~@e-w|1xB!kTzeNKo0CP43X#JYdkQPXri3ioE> zOOTNUP1f~AVf1`s+Hb0B*eBzg2aY^nY$Aeo_ISbQ-+;-S)}6F8E3W2YEk&(Wxv+|< zAdRfJ57~1gYA}6?52H6}{EAg{3(8 zTWpUm8o<2QQcw05LfklgX*>}UN}Lp!W`k17NA`9D06AWo1~~P=>S~7+2NW;X>}@wD zDueg6glcGN1AZ!absXoWYgmcSG!xRO9aO#qfDbrL5{pH?(G|B}%kJNrR;8RF`_&c` z*EOfHou_9|-SLlH6^`P;8tDX{YA9p{UF`b(=PuZ5r1Rgb+xESmrl^# zSHGQ;Uk*n6!s?2-hui6qwKz9tZ9DJV>m27=>2tGYUHCprnue^uf%A|7V4Y?Lh>bmIGH{0@#X9{gulnD;VO z=J4x+9$xH`x?Pbb@abaw7WN0SFn?>C*{877D2gKCB9D(mhwfik9a@`RoORE*M6Hwj zd?a@=`+unwrUt7un9UfJ1&BGhs`Hufe8%w`p`+6^XP@lmXnbv_o54q)Kn{ICc;R}= z-g1$)>&D`RP{zpbN(0oxSz={rdQ3Wv;IL>gks(woznRbPzyWKBDmV&uC6ex5^OMt^ zXOf1<^4CXPQw@2U7b9s1e50EMHi6?1Jc=~s5{;5stpe&|k&z|I`7TUNKgX1|LuMV> zH}vR#z2hYCYJNKL51*{QNJm>@ogd?d%sKn%8h+TquC@4+0{n5!%Lxe{-^@beMhAxh z@D$QbrBkLP#0q*ps4M3$b8)(@ zY^w8V%O=lTPLXUe@8r{8^rB1*&_HOF9!b#&Tjzm!gK8QG%~DmOHo3l`KHVQF9u7a; zb&06hxf121KsLGioVK(vg1!G$wSUjdZhVIaO`ZAxX!Anh`=Acg4l#9qQCQE(b%E)> zGV$$(HXp%|ZIqg${{UL=Q+=L+zui75$X*|X{?n-x{@X2ta;BhV-Y(0smIG$@e1+*1 z!}xHw?PO&$K-OXjqfyx_;VkicOEU@v4Z7HWu5@?22-JmaOJ~CcfMXNFUbppZgov|) zk^8|sA1m%Xn}9Ex$=plhYZ{Y_cf4WQgXhw_@{{GTB(0=^Mh6r-<#v^B3e)dqpY3D7 zLG&03v?z76@vT3xgCk$t z?IC=}?f$35y9eE?COIYWd45i?t2_6{gn@SY@=BTD?8tLs@}tMr36awtllr-ljyvZT zo*|4MOjf7W2ER{E*~p$Zgb>Hae17*=bjwqnKFcg*`eIydzvC@FJs*Uhxf68;P~XE{ zeEv32w6%5coFcQ9L~bu6it+HoeSJD=n^}64r}2|ujm$Biwi*CBSE&u#@tg8;O7$4} zg!MYd4n+39|C?A{zs#yRp`rx^Q#$)09gFTz2V$i6Mx(@RER`CZQM7u+5pVYJ5O@kh z96z4Gln@94Hb9hgC5XDX1iCP(w)+x;@EhQDeWksvm4i80I%6U+b*d-spGR8qH90^7 zgX;TxYq(+p>5d#>nQhY*&jn)aseKD3_b|%u>vAM3D<(9q$i|~YK$8dpaJ{tRI^Xzr zfshIFh*%@xQNa1jS@Z$B)YrYOh)txt4fpupK|8x$`nd9sonJP7viT~7Q$EESb_-nl zq|>ICPr1{ng)Se+La7+^;@(Kp#Gs})-<(uPl`+7{+=_$&o5ue|$=cM_kdpv@UYgAD z7Si~zXQKrJaxyEa@z6A&dTGTl79jtzj*i_@gEF7(u9P#fMBxKEv4u^X0FPl1ceckT zm8}}yd7ZS)UkEp<8ILyr$~xpRA95lMM|uZiV6TL#&uL;S25#x#5U*Palb*@sr22N< z;bx1Erw(D#)UvpKg(lva-n!CSS_;Faa#y2F>KVM$!jL{bXi`ScNI?&F#Gl5bkV)de zqbhL`)*F4^@~d(odai!H=WBqEc4tIoM%Ta&*VVpSI>goUDt!%~Nn8g``ZjsFbCbVa z0A-n;<_BE7$qx!d7T#n}>+Ua+(%La?t1EAxsZmQtNvw32Gv|ynuvTUl{TVmEc{qCV ztEv>Kuf2rYct08XJ?dW_J5(-<(k6d#7gTo$js4(fX-%e0IaGx9E~cdK)hTEj#3-?0 zVM5MxR?-Az@!U^8B61=t;v<@s#pjAhG$iX3_F`k(Yf`yOwC%ij3Kc4B7i?>=X1yNU zjsM*sABI~l3y4U1ntz%sD7W-z&%93f(3)$dcY9mC)Sg~a=B8p3a5aHPEY@KnGu|FEWq)z$}Uci#(6$HK6uiQK4bw-53qJY1>q(blm&RcNoAGi=nJ}pcxj@2*zXE1sbZ7MZTwH#E45Q(yo}`f zK?F71nTR<6Bp!hg3iW>MA_Nbie#cWMAR z?UpQw#QYS$7D$Z^Tc47D`GSToZ~PgAX0+s{r{K>!ZIoFB=%N(Zn%T+I3Xn=vtjeN| zHkEQOSssat;UT~hl7SFX#nOM`6({Y(5@s%!Aj{poh7fPX@6%1z)dJN2SAGoNFKK$% z{_PAB#u=^Uu=5!QK;0_pDzmHbZKeMS;sByB{_Y-!dJzGz6zK4xXduL>9)43JT5up6 zLeZwUg_R4hX8f(M&!)a{)jq@qI%5`IIjBtvz>Cu&`)!lWtlUb8g_qTMh;IxoAant; zV&Lt9cWG3>#qZQ6xsiTmV7yvZY1&u8D%dm$1)y)&R54&MHu5XoNkkL?C@*giDux+2 zGCmJen&ZnCn`a@%*+54z*gnFPrNTxlQF8VuP!!zveUy2UkIS<-)BLF4dEH$zh0i*| zkwq%%SVOsTEIYDy3Z=vFeGQ=+{ArjCCD*#7PvA16bt$_0t<6)|@Yqc8+xz_Al5lw* zzetQ`25acPOnQ|aD5>DT6^ZZKT7>FTFw_J@o-_*dCM-+FxnoMHUwe55#gnyd)XrDD z?1|jw{feQ(@4fnatf7Td-jQv=tvQ--iJ@0EE}1`1_xk5IUUqN-H335oY<1XM=lWb` z0hvvHJ+<-R{Fk%y@}W8X3O9QN>gK0>o-jgeI3beHRl zeE$)^pL!1QE(C*^hvOS1OgJ$r(QNjD}>k-bw?U zS=1B@zH5(TQ1m-{cl!GfvpR*%3b%QZ=&uZ54)y?;*pi~fcZ;`|G%tVA8)dRUoh=^* zc=7ziL3kQNEM}D$;%$Jbv3pJ@{;8X}$8fdsGhvkiEpwYkdiX10`p)_SVswteZxTarquQ$wVnwa02OzhmBn^r6fm6s2+ zy0B4L>KYr)Uan56>87a>W)EQ;JM0UF2s*q50J#9X4t5O^1uFr%X)amgX(Ox+n;_Xx zH8YexO_8PI2M~?s_*&PzSwAF7ZNU1l@{mm6MLm385P@<&co&HZpa$yDig;6CUQ`Qf zlVO?Uy-`HN$%)>H_+i7v{+~|8a zl#awqIuAt}F6onQ^OeMAcu(G_E-g#-Siup5t3pk$bnSE2IxlBV+(jSSh5GA-c1g#t zokVOY#(JCW+F{DUns4r5z{vd}@$#DL86krUZdx|qMI zy~qE8g3)(b%jzwb9;dNA6q_0Day#QII=&$xVa17Ln&fzw`$}Sm zfM!|C#FpeG1|Fjwk0c0$HX;tR(Cl{sGo$EZk{?QCn)kMd&_H1eB^^GMdE^n|zMiA| z1Uet@jqcZ;mVI5VcyX_-e%NiIfMc`@l>qF0+!#qvfN?PpjmKpFflH{FUluR!%|AeG z2^^aqi2nYaTnA&c?h*6;qIGypnshZwj0--Fc-42bqsl#g1)3Web4UByJ^?y_O&-8& zY!v&#I3(S2)-C&X^scu6hek>XQBghL_JzAS$Rt+WMWHB zkwV9>9wjPyxDXC+0E$WQmMYTXU$G&AY#w;g>%YtF>>SKrC)v(t$$JDGg-M4wEHFCg zFMz4QC2IK6TNUp_wFWJ=h5dzeFac(9=N%P!AyL<&2?T+{gCLMN(?@^#wZ6y`iq3mi z-l)J^gb~TxNQY^3_h!(8ryX@vFkCSVjZ$?wgahcTftbEMm@1o=F?bxi&Rtm0YjZEk z=&gIB4ZqW#IB~lT6E+g#3bY`OOuCyqFFi^-EYskyG|Hbn7D#rm+-ow-dtND?R5h4* zN_YA!_Mq`RcARCbsW3St{1f{ z*DC?)p++7H{Z-4pV^=H_f?EJn$K;|}g=w@6{Tu{rKpOHe%P#y3@nmBXv|XLbC^t&K zev|}uhobc47=nXXP-?s#TufOxkFSiy@o*N&BG@H)?LMD*Fo8nj|LrOTZIV?F%Z1V! zH7u-e{IW%GdYJr7u+xvd-Kte>=-|@}+&$`T%3lg}b>np7WCs9J)AMMlUIAX2Cv{AQ zG+U?vzx|#5ZKMm>aqNQZwv@@^xz7=UqzOUd%sH4)%fvkx+9K+4w*8yP=QSi)%bih) z#cjXWg@8<{{IXx7V@?U17%USDPlY>PpT$y7s{*9|p$&Aw=--9O?*Yoz)Ez1IQm;LL zscu#gw}x{lMw2C*kmLLq^DGA5pTpkWadU?j{f_gCyWz+@G>|hI^^cxacD%x34?+w} zt+%nR8GYf~7W;2w&K|r^&fHySCn9XxYMzGYe|jRZHj*;aW+zQ2x!>S<(C%Ysq`Y(k zV2Ga~Z5)DSTH*@b0Ds>H_#UT38`M{3zd}o6lRh+uxGypTC;goi6sEG|rU) z6PZ}1{nZ_uZsHLI^a(V=$(?|Y``xg?{Sz2}mgvA{5 zko`8LH4Hq5g*{e%vn>@oFvcEwJFDF<4}(<5{&P}jNfr`C{O(Bka4~#|F=;y&mjx_nxORkLX|})Y zemBq}%YA^y`dki5+1W*vcRjr&O?i%+yV~Sh^$QP^O%AkDA3f8n)_A*&#pOreN--(E z=;+64l z?P1lB7D4l0nLYV?|1Wl57!{ixWIyVwq(F)PqhTlZCVp^S7ijf~zX(8v+ z6HpXH-}S{ZdHt0UDI@d`8apS&OQ+*Qba*hNw4#0JFLQ27N>eJJrDpkntJqZ-fJP)9 zo(v<&{yTyJ0{->kufo6^zs%(vlI->~kpNpBJ&7qWY*%uqk@cgSer5(2(JR+=eU=BV zd_xRBY&z*ZQ`{bQJ|`SAWv+7`pM(Zoa4jqZ9dj*fih1Negs(c^)EWiestN*D z>czaC9`aqg@|(ZiZ?HY=POK)1Oj4{)2p+c^-3^g;o`37SAJTi?v5M$jt$*HidaO;~ zNz6HFtzPhY-W9TXK6>%geLOGbIVQHb8Z;IA$W^`P6?ne%(3#(bMfac?4h#Sml9+`> zYTjN!{bx-pZ}#uwsUFLO{ERxzPhKEc4VHC;?7vB7>M`Va6A|ssXp1P3{zk~yhr9^J zWe)aO0Gq6U*Jlq%_q(k_*aDMZfB{D^?$YB2=2#pWbT^z@j_UE) zc^~NpQL^++y+*p}f)6y4sV+|Q|Du3s5F#x9?Hz9~-<@{Vdgh6Hg)E3&MT@$$3n2jr z9ayhU^Y>6~EmU=_fr+6+Vcw$|PYq~d<^c6%<)LMlE6QrT?B3QzW~zK7Qw{GYDU7c4 z6UH3wk=_t+=V1k~)2c&mLH@v{E{SV+!!j?4Oc&~%IS?aUX4IGm+*h^mIeY~MUrs~5 z1UQf5C4p@h(oj>oqmt#9TcefnM|4|s$l3t^fBsLY0n%s4*eI`~#R1Fw!kMc7?#UM4h>)K>@UGO|KoTY?tC39d^%D`h zq=Z@A2;y#Ml8c zpurg3|KvLdY0>_g$4N>$IRC>{KreFF%v_>2Me(k|QRbfsC5QZctUhPcl({8V9LT8k zxhw{_|F+Za3xd9LXM4JTUNEiAc-oqHE|UwmI(|N=e!3k$-!@uh+i3GL@>}aP6y72T zqJHX|2)s$}XsvZRMm*h8U}ZerIvqVGy$m{fxXpitcLtb=8Zi?MF5mR`2R$K=-)8LH z6+f>@rHh^y<{yrqZa(i(Kc6_+`)iM0SP4H&T<>)SoDsvtu9SkV`QEnHQv|IOFQ?Hw z2N9!`T0!SPQT-2B-~!U={zQHL!*2)hqb9?A+~gYqK10XK$A4T1M13DR8E@lTV~}e+ z`pQf4eIr0r6csjDv_>L|kS7F}G@aIltY7}$r@$=uR(qSB(SDdZ-iq;YFjmJY2x0m- zaCvGtR?WJ=Mv)e&>}QgZ_(KN(N&-gcFKyhKHCL=@fsbzI#g54|w?fYAyGL$? z@^T&KE!q83>(4Pd|45Q8bm_zv75u`wy6@>@K$9(={3Nr=ZvdnJya33$} z9#I##U7-}96^*k|n!4^%S@R^vOI}As;DYbKXEqcAXTGtu{5t0x0rkATZ@5OfEo>mO zQM>L6!Rdf+VaDF*XMJ@w9}9;q{|QG9*C40s3`HV)EoVUCl4aVxXQ^*l0{)4J`$|w6 zOD2C8u*{p7}fM~0j*x<7yg?l-~bw<|>^oW^e-3+O21u)y^1 zM@J^}T)*MJRzrADrowqRr6U-DgzKr3uTNT?gyN{~5516dMRoA;&^E^kkNb}PsrkplaebdmK-+n)r4mOTBaCCD zWO`RMXn_Y8*K&b62yyDXnI)}1JJ}UNg>9@G9m)aE5)2Xh8)mqHy${q<4FjDK*xh{O zBfHt@9|^kIX*MJgu1RNjl}c@9%wfzqa2oM7mXSZ>B&~r!85SDm_r{#e^(@(zyk%9ec_-M#e@Tf&RuHmE?xPI-t9M5J^F6wE+Pl1=KV6~d z#or0WT+107BHa69-!FeS{Vc_2qVJ4>VXm&Yt>3h;or5U>lAZMCT+2at6cK zv>DH<@Pm-S39(DJ`>pKiVy}*CDWj7R9*V%{)~b%XOo@pyueQV7OM}k)Cki7e3_#$` zeIUx9ZI|wO+DU|Z{QmR$<*{Fj=gA($-KCN5>eKVpekWHVPG`jG#Ma)5)bZ0w56knd zoZ;zMYo%W}(?hbW`+xh<c>#n&+My>xNp5 zEGtU!NmF9TzaYwO%Hx;Ycu!m{+`MQMyL?{urevl~`9C-hWt(wx(^p8h!03X82$}>4 z14>W$+REcy#+{#$>)Fv@`GS@n;-lTvDtQCgvXVV3vDDNlVud4GzsaPq3jrsPki)XO zxr(#Hj_Y*nd`PSo^&M2Mcs=%$UX&|Cf7!v>>3DfE-@m|?6-fBmN&B*|HUb?hMJOSU z@n?_Qg)fFKUX59MZ0X>>Rb8HG>r1*3*6QolbuxxYzc4(mFs*jvBvn>aWcS}*-QZd~7Zu=cmy zFuE>Ksqbcp)~|rtZJndrbWs{_6JBQs6Aw15W(!-9r0hMl?h6O$0|47O z!W`q4TnMDBxR-__~z-DYRNB->Np;e-yK zi2p%(o&UjTb7@-l>TPxNdZxt5{Kx86N9PHnz?+==`G{vTgQa&>C)IdT&bHh_a0RJ^ zW6}CrwVg?3p{8aR#3h|?yrpA1?FXCe_k$qB)XAhmwD`b_o@C`$;{@og5wGVAb<>du zax#>K4LSpkL8SVaWqmVm-}zgLl{o62#V!A%9}RkcWwmn2Rizm8BtSrynoKfVo;w#p zpve|d^7!Vw&ar@5E$CbAz8}N(Uo5Qe-+_4tY8aH_Z;h=5OWdaKT(ufge2v+W2*v7s zK2calE(Rl?mQcDP9(Kwi@qD8s&lIm_U70wCD{5yR?{hp~Ude#NyAn=M9e91Y=)B$a zx;0aEv^e`~0lj#OQ5U9aawIbOn~2l%-dII!COlgxRQ^wDf3fWRUx?Lh92fbZ%g>aQ zx<)swmmJ4~+yh|}zlz+)8Q-bIO1iv%Rla=a(ev|TIOc~xcg{L9#n&pR=JvkO8P#^- zuC!u5$#xC`G68eWb&DH2hxUO`B90K=0iE@>d_DsD_w42^Rax1BQs(zI0{E76q zfcdC!u?8j}C-xST@0i4Sd_1)`ZZ?hsBV%M+aJvDnM#jQZpyy<*3a?icb|(L>i?T+` zIhTr6iiG@e)HRrObR4x*FTagh={96jQ`Zy8`rNVp5>xc<2I-dAxPWMyd%}1(*j`4D z?f8*I>f5d1$fsJKw{6=%f34cfo(gU;+L;aVNJ;7@(;^=b;oSKS1iEvQN)UExsz*t zG)7I6I3WUd|M$+gwbHP0O0Z+mXZ7+w1&osD#1AUexFJrs66^>&NHltMId<{IXPuf+ zyJ1U}|8T=56cJ7m_*6cXcCH&g{wlsj-j-hoO1&Hc&^G5=BR<#W*3}Kzyrqilr(KUr zMyY6g+fjArE2~3eFUlf!xRysMO&Krk>)vL=*Ldva^VT;J|brm!IW2&!FAu_VgoS-pZ|yan>hQ%M^*v5^^`?{(lIcyL>Cz zgpR*jm_IL^i@I(-E&E?`@wM+&Y3JUzKd+ZTS`s_AC$gWf5(reCJhsP0QF7R)=Is3U z7}rM6a4T}E7!@*+2bp-<$V7un7;aFS*X28}fc=#`qnkr3W&*=i?C0_f&C5TAZbH>! z{+=ROy>98O?rSHS2m?KVV`1euQUvX$e|7nFdGi_LYbFZk@2>^$&2%R8opRfID)hbAQ^DGTSw@KiUZZ5l-(MV`u4Q2LQA00goZB*_ z@lOiVz1At|<1)$!?mD7}heuR3TVhxppFw|G)rN&~(?w1fa%i(hOWXMQVXav)!< zDKkB)FARFh6~pecPm89)&j}7ymG_3Ho5&!(NY~>Fx##y@Nu80-gmjdU=^ z1Z|7p@=ehuRVzC{9cXt$WKD;1kfe_0;k+ePi~~AC(M~&j0%oONo<;#{C++EnUdtU* zoh6$u2itzeix9ao$Bl4%EO`EBW+&y*pX-&K+M$8A9a#Jax5N<0`91O{m6 zRV}>M*TIdhwx3Q#v64=xTYUy{1r8@1&z3&p|HO=wvZbrKdiv5jhg}#uJx9muDcaQD zq^BXL7oVMWzl?JI{D?{9cmPXZ+Zpw4(Irf8vujB}j4Ztnl{`bDuG z!}!Na+g@|yFMuDT*dJ7=UYoR2uPaEH59OavmE9p7XOk$R>}NkVSLeXGyBa! zpTFN|qg)4Grs2rXle92(iNZPKq3y?E3tgM9Oz%haG`_J*_q9~5@xx_t#_bGVGCISt zPL;C?&aCpiNjkXOZt#)!U&YSH@2bRnMsfk^9p+yN+jmuYm#^YB3lg9Ib@MqqNF|(T z`fL%FB2Nd1+g8Ubj{Tl-$!@a-0>gcdAL9LJJJA5d%Xj6ZX~#jkT-A~t4?$1G#83UL z$e=CEz>S;#WyA!_PhXvc7{#vpdySr$u0^>{9wX0EBgIBq8I7KlT7zCaBG}p<-#Z~6 zJo5KZ0hTR(le>eRA>}KEw~5*MRWjXznvU-=7V{UIT+hJL%Jem7o!#cZC;5fP=)ZaB zZviV<{NK(+3ELXD87f}5)QGSEQDqmk!oYOdk6{uwQy(hC!`>rPzDR&$RjU9Zu)JJw zrLCcgAY#6G{>OEo?PnSc^tUkuq~R5{AGAs?8qx*`%--@y_Wy?`u%h~OI4yj?J^6lx z3{F>*w_oyO!NQ{s@m3%((25M0WH*LK&G1oNJNk<+L)35gjbw2i!o-x1#Qq)MtcAzp zG;>}|s%Xh7veK=t_x@>^vLRvaGqE{@P|ri%BkVcS;B^yDiF7dC&+Eln^_+JH&YUcY z{XSgE0_zY&c5gd7PzVawCp06+U_uS9i6x~&vNnC8%Pmjh^M=+{uRb2JP|)JTH_!pojg`p$AM#l@sLz&}~jLVGkZ^LyNW**Mf)jybh7~3jh78c2zK{r1C z5k#v&60TYznv2^@AHQBnk0!3T+wN3kqp68e6qcbx;dc!9LfYQg#+jp%f5hxQ{!&rX z!y#^6ziln+@o@H}TGYRVcD#}Y4lzqr$Gm&&|1QSCSft+Sa}>Q*{B^K(x3aO+>(#QW z{qyN37gwGEZt?ZsRimRZfuXOyE&~HvL*TdNTlkMZBYMg+?h_i+C>fo2UB9kx#zDD% zWqRij|FJ{IFb4e}0LMT$zj}7lRs8u^E!=%(^7xLqzSq2}BiA=6jIi6lv~67l7;y)j z`i)EH#`$i2s2v!^JNp>SDv-$f0cBM-^pl)%&K6QymY#7W=fDFXl{s<{cOK;98a6WS zDefpSsN6`KVWo#<_1VqZ69q!F!muf2VGIB;#FyUGu;j4YwhkFnghtc`0qZ1^QaWuA zzyT35h2Te1@(x>xAI@+gv`S%KsaZwFx`n1i64pUgu)IdbV5&WkYd0|zZl~a7iQUkq zAs}bunKdxW#p1%^G@D5Y&e)5PD zIT?nZc!W+l0KKyIpYq`3)4xc;sUtf9ao1e{GSGdBz zEG|v+I6`0T9yxH}-yA)XIiESFo#%*>vD#5X$(c5lbBf`xHcN3}Jk_2ALxw03N7f@^ zT>Bm@z(!*DMz`i-<9MIulM@*Y>x;Gt1<+rGBq^M(fWgcI#!&Ze~u1Vo&r zVX!X=@7vn-1kEVyN5R%CkCfUgGs##l4z>$3tLr1(RzDPvjfz2Dj>{4~wbRr(2LR*g z*l4qVX}LDWSf@D4YE9$=rL>*9j>dw~T{j%N>99agmRSda1sojc+|3Gc$H7MBFxT<} zXSYr)_D=6j!XPNBiZLEX(cG##P{DltQYvYk^o*OP9*Oy7%#=qb^c5F}>Wj4Hm;r1cRU=olfT^VU?{(dKEJD5N2x-R!>5}Wk+I$B?1n?V^OGzTe5H{n z#x{%Ml?Pf3SmiJlP--ATCBQg9Kn~alJrDp#Gz1LD6EXx(NVq;_+hvti=4d-<3ij8R zb|mAHi)mdIMk^t_bAqvEfDB1{IM|F%?``cn6z2}SM_O|^?T%(PAdIn@>sKfAdb z2;Pt5QB^&qOz`chr8W&XQ9)b zmgT&gQVOoMo`+4=SVZU*L4sCjA0mtTAMhG?mD@DalcY= zm@-06XdM!O^FU9UTUn(FM|Dw}q5i-V#lz>%Ico^8-|HV1nQ9o>%&*a3>={!56t6_=FjP}P>~~Ow+J*m ze1SGH^Md_BV}Ag(o~!k<+Jf=SAvplTm#-xr-S(a=o!{5=0vv3YqSM^joP6r>>LvSA z$=xs)pE@;tK|lTM*?cKZZd{<}c0Dc%lE?)f8j1mcVE#Eu)fR4A zh~IZ^Cket>Nl&B%-2&?AE18xs#iBk~vaR6nB1z-GQRgGQ6H!x1m*V6PbLvgJf?&qNx7IMgKXAG>#$ zT7O_aU?Z?I&0_(x3M9i&`oa)_0D!8l4=ybt+KKY8-DSNZvsF3ve(}DYd`yjpFRBjfAn|b zs#pHRk6!zSZ~nnMj{o&j{hsdJfBm;_S$NMg>fzr0WcF47z@7d}%CCL+ z*L`(=ce*d;;#*&J=WqHS`s?@q_!?gNGOxd>m1wSTg|Etyh3@fv`%)zZ!{s2*L<-eJ zn^X#Iz4ugEr@e0|b!JlZLuEZ7K)^X7SONeLa}|7mkn`HP0I{fbS=XUblj%gN00DJf zUbE1g8H*?i>rZr(OM?NxT#|zk`AI%=K#>%&lriT5;ad;195F-)7+IRf52zgg07p7C ztzX>Yo)CzfAZ9LIUYyEx?K6>xw=I*H5>yamG zEEgh)(&+*2etXm7p?_lZ75i&QHp%M=p1X9^-Q)B7X@f4 zHp;xmPd`#zb4@H##O>+>k7lb8d%;Rrd%y^kptGCy%)qU6#Y;{Gyve-NoD&sL553@k z$hmM#q9;N`?)ci8%Z7YXnFqFAVXEWThG#eZcis?P-l4xaU*)ws+zKDu9W{eQ34Pzd z;I;zb`xAWmzI3E5dEQb88oUQY&<-3?>3nX;d4BW0h0?gqyq?zeMpX@pVlj@=K+XSH zGHtZ;uenw_j?_tQu0^ECS~)8*jlA(PQ81jcG&cE+MFA8A&9qnw+@(F0LOm#9;?4}| z;31)w0y8##rhVx{qER85YoTb#-HZ9ohB?$^jb#o*#hw+6>ah+3KqBWoB@(q4E1ga! zju7ZzGZKsqO3e{lkvcys2BXnJ8ud>cx6bWMrU1Yg8fzJ6K%jN~4SasR{S9AK(gg7Q z-?;C;rZ~uWK&nl(+m5)%CfAE_2AAHH1 z&pd}O+2KduIrtjS=PS(n;h(#?^>a_YUby8y-@EyD!<4lj{@K_4{OjL(=Uso#0wh2D zeIMRF@?!_z^z^NpSDrn+LlnK~k2k*aza2jM@5kf$kMA0Pp)T#K4u3XRH}4)j{QZCQ zEI+j?T;X3XE6unaqT(PKGep``Wql<0xYmH!Qj)-0_hdKNpwzc6HBL>c6(JD86LLl~ z;{;>YdqDIAg|W_iCFLy3nrSny3dZz=a5TYi^tc|0@JI@85>!>;F0pRRlZ?)5M z-j~+iwl66iGz9>FaUdC5BJvan@IAi71j;%q7{aYydx3}(ffxlZy-Xa*-FFEI5#TGKq|pm zD1yf)x~}Rd4h82DQDXhtTaN5sQeOLFbf?@cp~!d+pb%#E&ci5KGtZq>bmA!SZksvL1fOmPzA$c6b2z@Ok3l<55nM%wQka2 zt+iNcLo;u+^5lsm}#~b-0`$6V4i5X`H(|HMvKG z%JapTh;USii<63TUOQJCQ&iO?%aSNE))J8t;+mxfZwZ}*zy#^iE5)59&b;#|Lozip z&Kb`Fg<98JWpuEA`SW{+y0+dXTl32^dt_h87lOg*OlZ#0U7E3j3oXFULb|OPrDh5JMLR!`*7@984;}-}p~&y{;R^lI@fv80N-5wl{VJw=Opu zQXs)2<8rI0F6|9D=Rjbcb=KrXIUSFlchjLazxmBi$@IZje(|(@>@zn#{eF@p&-$5m z@vX1A^CRE>XMd;u{mZ@o&&fB#Ieh(`ddC}Y|Hb|nw+>w43Rn1N;#Yt5S7H71a;tM- zd8LHz$YSM*0nUu+g=)8~J%B)zoNH?>5fI(JuQRS~JCKn8?I7gv_{8kwWkX5D*~7b| zd9_nk=5aXxS^@yN>#9TNvT`knD)QvLWc>F&cDD-D{5kEcWt=5J_?%-`3GjCuY2=y( z3KWK&)7;%Bt65{{}SpU-WVX_TC?%U z*7i!fJ+3P2d@qg#$56@_EhpWW2nZZ()v(s2$M@Jm44m+DyLu%K&P_{4WSrlaW(V4h z3&U|`OcI99`=YL;5QjUhZWPXHdwDv`>nc=ATl>6y%aY;eHg^}(s4$K*rmgivg*FT^ zQWA(lDYvH66AQfuE^joFzGU``zAnHjRQXEApd@ zOW%E6gATSFI<{Hi{~$hoFTYp zW9zm9OIIzpT+67>vYAy%lw)$*|K9!QYGT$|rBpvnM|p0Yzh&RjS|hB%=hk;5->L0N zsM-O9oIFBp(Rr*aRo0J<;|u}lXj8uT?9S=kNh3{DDYvK7C~ z`h~s$fU;mognLugZQ5DE8xh~yBc-g67%;vyA>`SJheFRvsB5`V=xYy&IH3og@YnVI zy_*p7>iCU4CHWH%=dxx^g{{;*Hl$%rCl;Wau&m^bmYZbw*XL)ocCie!^Cx#Jag)3a)3jdn$ z2BtNh8v2@7-8ck*OlyWXsZAsW(39V@#=BUEeTmx4?P? zDch(6opw76GHpJ;xuc}?KvGD_g?0YSc$O-8pxtB$h4r4uIA@$|hJoaK?)^|2lLkR< z+>HnOuYAD*h72l4+fzyuHU)VPM9e##ldu&4AP25kk%6SjG4vpKlkHnXW^I{KUWlz3 zJ2My^Y08uR1DB@trSW8%&&E@)l)B|`^F;@H+nOFcJJ}q%jjYnvqIV0C3Z=ZXx3|#i zhhgNbon~2{XU<0mjB#X)k@1$uSvz-A0H9{0U6iE;I&<`XumG?dLSg*e@|9uc#0N~t(GKu57ETvN3c_CzNv=A~31T9BS3E|NS zh5-wAXEqLy3%fhzhnjnjjzViMoYBoFxZyB=-zO&r(pEE253P@9I;cEu%&NsWzPi)M zYxk-9%iU6!+8j*9frZYns-M_44{h3uvsqKBqIQVvSR(*{TbGx)XOC~=V$*M(uh*7B z&snos|Lqxfe0g~#33rQXyQp^Zq7%o*+tHy`TshkjxEhH_(n>=B&2>_kLa!tOBZlMv z4kD{G<~5v~*0-)MjSM7GYGbZlUVMCaPiv!%an>eE?qBpa2rUq|#tVjd366}_42f#Z zD(i(}p4c?=H8SsJImQWIoYL_Hx3o`AD%d@b34;%v$(Ot8Iahafx64nT*9X(&e4*EO z%1$U(Vi|B67h+Udfmmp^Q<@&fCu%pT@~hi{;aWVfS9Jn;Im?E5bycr*vK<| zdap8x68qE81GWP-m}QJHAR3QH)5#dFthQX?3Rk$oKMPz!tf(KeEr)xR_5ci#0cisC zcmG#6F!-?@tWB|mTN^5u`#h53WCpet<);Wf(s>*J^w_EBX?bLZ1 zlzJr&JYciY9F2#5ZUc(w$qQuGS;deec*4SfKnevo588X?>D;7x?-T2RQh`!j*kQ(( zo6dVgM*!$OY!;RiUy7s4S-BLeUKsq%g$+d348!g5IF2HQSUKX1bpoY0Fr;zC3r7na zfPe!O28k%sCgd!$){`%cRh-X^QBoCkm8jrQr#aK+;$+5=C1F?@<2-SOo@k+w0zhGG zrVRq*bqxRk=bbb~gsj$#G2>YknY`_^}Bt3&RWmfNqsddb9ec|HF>Ke^7l zH{L5DruocSr>&WlVxiM{!*fr3Zew_Hd&dFxJDsI&Z*zCsSj!kQ#v>vCIp@jG%__LH zmdJ4~RG<(UBAb@^XV1+(ea0yjTz_Eow!=%Y10*eh@wfJ?dx{`-3_S+A}QGJj4d~*D9NF3H7A>8ugmlG$^ECY@C)&AW1($WVmY_2xj zhf)QIxnYqY$;o@1Sj;RCKtr;o1ml1+5Zre{XonKWJ*S_3dUL##CJ$|Hz4q#ZXC~QJ zQQy405JcX!0!Si653_>xn|OAQmQp^gSgdfIZ*R+m7Vu$4onUidLS&DO>h+u*Zi}D^ zf?QY7!V27b&fc=G(P+^pK0o`+#-tsF8@WY}C)NZ`$@FEdtf(tXfUDPe5mgA5!*oD_p$cl?|b;~vl0Dr@Bef1&2SD^xWX0wrBYSsVx~Agrx`d@kIicBsI)c~ zOmIBZNERYa1ONy?g(dAR01Fwj1et}Vf{qfSa;{$HiJ&$%3M21{A+ydh&ihfgRaEe# z0X!K3PH?c-8;*tmz&T@#>AEIPr?D@rW1yXu>c?h z7}Y2l2m}w18BYNe4(8$}rEv`vjH@cEYQcr~{={Ox_Hp1W+4ud3*a$wzp!b4lFMpX}3P|_^GliJKgR=6z`2j#u_3*WQ=(a z$dLy@NC1e8Gw!*Vi-vG6iHs1!X#JVfXRlr8{K37CU4QUU$c0w&#aACYJsfQe21H&P zE4TonxmP^^WM$QelWSIDyA*pO?ktQ9?{XSfJd(gwlJBvmde>)mB?O;4y`DzV#)KTe zu+rZ9Gzgh>^QF^v6m5*h1h6%ou8&9H+-kSKl5{T4@WOPmznR>;An!WVMt}<3a3%}u z&dkb_?S!GW1%uaVra*#GNu zm%rx~N1foPBo;LgQdV;3EiykeER=rF#*#r+gQj~vTRyNoX@}u*5?Zeq?z1_0wHS0-F2p382_dG_$v0cD zc7=aZuKuAv-uj_$^hsRd3jc};Ly98biv2(UkiUWu+ zmuAhfY(002AvXky5hwc0<>3Q6(_9;549Ht+=QYaroV)P7&pW!E<4Ovi5D7TqsCJpL z9U;z5i!;NK;Cvx&=CwA~Nx>!OiIT&rZYr^wfIu2m?82 z`|+cXZVzX5{joYyd}3!;DP@dF($rWhIS-Tsz~^7xKu3t= zt790CQ0qR zu})iq3itB-FCQEC<8ZARW!gQk%Pje&Nc1DQl6Xhh4U?^+I6rZzWZfPYLF@+h|9)Tu zrn-7%IWP0Se0==eeT!GMBE=TYOmc$Y;w*n;Z!9@)D2V_~$$Am*$Ep#CM1UhKERANA z8M4H*vx*aePXtc{zI0#Im+g;ljG1%iN0UH^7q0E^c9~^dWHsiM54k&=*O3TjwMv2Z z>W#5r1UMtKaAFC&&E~As!tu`!bmdvdAQCPSyf$)JA|kZ{=*Bdv_{$Eo&Q0}ZrfnF1 zetYz}Eq}vuiz9z%Fax5GUY_+s@tlR^j>Fv#o*QmVrtLW9|I2rNmtf2iUC4Cdd?NW` z6r_T2gv$Bad(JR3PCM@qou~8X&z5C@h~D`_hn8Oa;urs;Jdc#RqO)~{D_r3Ue-C%x zeK(DVQ4j}FyBS9fDcTY5Cvd2V0T-F0sdlyV2w(^}V~9uq4nQ&%37A?)C2p106Ir4} zh>fgp&Le^p!V?ies3b!MfSfY~D6A8lam3|--FtBp0g$0{9>@cL3ZhOVjxWTuF`wC( z{^>*K*YnEwCyVLkUYXu|B66MV$4TvL@ni0TGLF39O&Mr=8u?hkqtn;(Fl7iP- zcatQNB2ls*iPaQ^@Mp(VIcNuhGY||fOkFDY)c9#_n}OWU%3Rly^QA_@8Q&`_M5egV z))7&pBqACjZQSPWE*D}n9;acTq~wg1#wIEVgfPy}?;8Nj9h`2vIzD>1?SXhR!lKrL z8U=_}z$4|1A>)~17>B;n&Uip%;O)%%%roiHK^#!Ohuyx2V$KLbJF2~@$Qx3e1oN#J z_IJeoG`MfOeBk`W3xm!aJM!`nz8Zh z!pu5i5l8EhNZh#0bFZ$yv14|MKfZ7HinaEx;pc}V&t)%3KXv}{1H02h&2Tl11?Q6U zP8`Kb=Ej6lXkdGldt#K|w>^GhY6qo9U=4}=)a`4q)kGLV2e_G4pWParn%d1mZp)>Ld zX9w37uS9HDxWW~#@K4I!ci#<@y+9>Wr4D0F!g(f<$YUsQC1Fb`Qz$rReZ?ye5l2gi zfQq39a2`UzwhODBXAB8&C(Ai!N{B?Mc|#>*Ofue$Lqwcv6LJ=CW<50&zwh$aJgLGM z^Uec67)E=gesFts_xZtQULk^a9)O&6&bfJcoKi{%!8kuPm~O{9L?D18d~U~%Yg<^@tL%Y>*v!E?Uwh(= zF@#a2+i|>-CYiRoc|izSS+(P^8-=xV!z>q^8|%(*ZVDlYC@=CjjvXKXq=71psf=NW z#(C@JCzE~WExnbc7=_?K<>d;DQ=I^xH2ZQaRA{}+9MzgaA%Mz}-`awd!9+98Sk&P% z0N{)&uct)T14HDBWFw{bu;d@QVQ&mIcTUhRg@U)`MjTq-DqwDT)*YvWsFj zyQ{mas=KPPrp&B}jL3+%H|}(XJ+0-36WP=sFa+4O-y(4Cz31$+_TJz6*07 zAqJxjB0A@kQp}7~~>w}LW0D@9#(>9NvK23>_ws#&a*LSAV zqv_;$eno^YZcW+{e)4PkR1ihLJcs2bwGdZsH{*Z$z18_jj@Rw1>z}Sx>#oyE-PxKR zj_R|vyJ)-1w%Z?%@9pgd#Lm0(s~M5Hv9)#8wwH?qr!*doDq~!XgjnX~y6Zk%Y>qb_ z1MU?0N2?%+TN(ZE(mj7z)D?g82lMYfJbmM2w(;)f*0v&gvf5aiIoCb7xO(q=wuALG) zKG+wK)5UU~WZv^vk0#n!^;3WOuQ9-3nN^C0YCe$x5eab>h*HGDT5GM10D2Z88oHRn&=di2h_o7G1Ox#AQ5*AQ-5u7&N6WZZnWwFM z|9qv0##QA~8fV#6*A-dTI9Fyl3-8r+6XJHB-JdF>VB_hBm+e*WCb{jRlv?)@kJp{m zDvE4;1jItCi>9458>Pq+-Q5}|=9ATW-S>b{SUX=XeT+)0lv40vGMOSG4}v|!#G(}$ zr4sW_#lQYjx2v%tLfHgvlbI?il_&y26v50imw`f38K700Id85243v2~YjJOi#TW^M zgCqwajD!n^59eXosMdkiQdlW7$g~)Rm4QiyFO0MMJENVtZoIgZL_`r0DMgAoiLh20 z5q%8jvsu%&R_na1g7>rKa$HrD@wja^B9Ph4hmbfar9$vTG^ovoHU=rBo$Vb4IGtTu zYh#MuI{;*6L`1~iyT_LoQ)@-(wGS`sY~QT%^UeXJuf9A{Ap)6V-R^D9Cq@}jhM*|vQM zBWp%^5mGGk97Hy4+op89X{Xj)1&)$#?Pdp`9r1bpyFa=R!Vp5+_ZO>G=X_b@h_G9a z1R((|*P9P6X5T-%Y`nLaZjQ%0MUEm*+wP)id+#ja$lAhaMC@XmckX1r0RS=Hcp#hn8xrEo>KfvX)Azu~Bc$ z-P49kV+f)1*e2P@6#ze6_1`&PoHl(MQ=wI+bf3~EtLBq+pExn7i#|0WYNc+~`N*0k zFe%-8|HyK>%{1q*N2)aFiBSD?&?jP*?9iZ4wIrbSVv}Zj{+vsdb3!z?C&V zMgTx0B85mp8F~R3@EIp&W}Dd*lTu14HDoLT0wNHRQtI`O9)JGMoj*J4U)#(7=);Av zRuNU!&YQ*>+c{^o_A%tvhQwCUR&I;}P4a^a-}u;j-}tx*@edz1U%jz=(e{%(b0Hb6 znh-CVw)GwWcFM9c>f@_b?_FlCQVInc=hjVA6nRQXYeR}AW!ZaISQ}De5v|A&A@X1U z{Oc@0u{>?+t)h6cigzXo0RHeJ ze^eMRpb_tn^QV3MqvK_+)T=wiPEMz7dbAGPMRr(aA1s>lwo4*bDTN3EE9Vwnuhizb z$@tbN`*78dv^py7ezo(-+FiNv>1w@dnm0dwc(AjxHyWKS7W1~%T}rvqhHxEXD^P2- z3emG@#O=(w#1n0jK@uZ~o?gi0$js@#*+-#7byxDltQz{>)2Q0=%5xtd2a@qq}J$Cib7UlA3-5BA!WuYBmfWq zqZAP-A{H4W%SNfS3nQ%rpyyO%`Mhaq=Z}Kdwi*nPo0x-&p^Z6x!fPhkZ;H#Ju zBDUUJtqEY+_rLPx!<{{&d;~+sAFU5+WpkZSQCUFe+Ose^$X@^6RjJIE?vn5L&)$vi z&%3|%6QlQ!{U3bX{MzR$oom^|^97bl`as`0YjZ_kJh1nV6frC}@VoCcO5nw<;&8-U zg#ar6h>S~b3`(g%p*Y5vaO0(mtVDK-ys$RJGEKKitq9=V^ULLO8Dk(qX1u(-P^8W; zFLG<2zj^C)K6lR9EK8hX49u*Q8Mx0F;pEDOsfs$D>T)S8wc}H~nSTkBr&Q)Gt4G*vErXOQztXRd~H=zIb#LIURfd zwOdC^*EiO@G9CZhPo5x=*7|ezx4-@R#Ygk@*I(MY+UP&};P}@5;j}0gT~DNX*N4RO z<<)AlwwX2B6j_!}rkbeGYUNz6&3W5LPBA7<(OP?>s&+H`?;f9k@bkNSQPSV}mHVcE zr|)j291D~FbQb!U0`qdU{J-7}-?)1xFkH3GD9cV8`t$EJKYwfdS8u`Ze%wB7+-G*C zZHza|{L4Gzk2mgHPd5OvliM$Bl>+I{&f86hlRV$b?I+94yxC}_>O3dJ#`_;VJ%8sZ zjLY(9JbKdfBcpe6yPYGz_^_@%p3P4$FPLR_dncrT|Kz{_tt0{f8qqT^TrfnrA^<29 z&3pd`-}%nT#d%Q_gP1ggfJj58HzIoP5e8BmWAG`37`<~{2%cHA(S!&BUDpmPlZXJW zKLChIYeHZa5e7i!bob^hZHyu!K+nmNaw%p?oz3PyrrA?U#u#huZe5B%69S85S~EZl zp>>`V4Xy(r4f`G95Y5LQ|9NvfI$o}}>uR>%q{MyS0|+9DfWR}J|Ct98gI7u=W<^w# zH6eP}ClTQ!0x3lRh$%h4zw_A}`#!-kq>HxCv}#@Gyw8jo$m$qko@a^KXdO~Q5$Aka zme)yJghr{vl41xk4RbO~l_E8&%MfCSF@z{0Wu8r{a*`Pq5CH)&1OS*s2tgwZGFn0$ z>acW)W8x^{lem-;vkx(*IF#^t=44%mHjqe|y?2TfDW$beoB%L*&m0r8Qfer?nb|zX zfJ6!@aw5dUJp3p;n^AL`Jl#&Q!c?JMR8|I{xMnt@RaY%{~QJ9BY z0sufDQbfosoRU&1_z+WwF(|E5N{T3^1OiAns5*S`L&H8qAf@swXJ)0e_kD~Jkwo~J zVGO@}-H^lB3=s&4nTcrl9z-HvCbd|v@9l4qGP@ax$e%tui!pld z@;r|*vM>&8!O+4SfQU5dnBwrA%*kj=iUz||O7(p^)UX&Xh%u5<&-ez>+6V}ts;aW@ z`kT8uN>O65iUz|5fXKqkf!W6tnFkQV%qj6u+hTiMuiB1T4!0)j-rd{Ic4{jkn1B=X z4Ch_n1{z!AQ(^$0q)=EH-Nx9*#7J8i?iSi=0l_TKcSqBs{ev4@ld7-?$iuxO2ulJC z5kw#fY7&Fs5^9n@kVaT|)&wgr3m29yM1k{7b2zFBtpu^xX@)yN&m`*11x- zQ4^yVKGsIP{p869C#M2nj7cdDW>c2sp6bqr001BWNkl1R&0b6oFXc#pPyGDtw5H8e8Mi=ywk zs;UpSrYWU1gjbG6FW#!}?r8CXAgdKWJP!|M%U}Q6t^ndVJ3bAEDy~BM?H??D@r8PS zYQFj2)k@0yQ}f)O`R(tYe13oQmHQKkyxgF$Ec*23>1LFfR}PD{=5ydw(tA?$0jGwY8@j$OfkkN!h>*d zNccUvanyEQj6o^wz4yTn2W|{uJQ|Oy>e0zDDH_6{F+@Z_BtS6QY>y{JSx$>$?R_6Y zO369bb`1#J-r3&Y+O|Y};$_z=rGmhGwE{#%WR=QoMue?%z4t7V8?#enOuAGgAU;G< zS`*zJm9^0$J=ArDaRwT2?gRmLGx}iJEh8M3X4Z6%8jpy}uDd<1eM%q7_;iS5d5vJtuo7=uGYeQdu!T; zcvxn&HRqjwvT2V-RTmSX?B*E@th|4+ZUXa8Sv)_k0?U(id%9j*rAljApbftFen7g2 z*n6LtCuKoMwKaDpb*|LoRWoaQm*Q%(Uai+fp6fQILQxx2mlyy_tq5^s6mj_WqvL=5 zt#1`&ndgP~9ub2NN-0v5QX--O!)c`fhpj4QS%E0SDF`4o%MsAIF3Sr5AX0<5C{i(o zyeJVs1QN$GKn(!2)|?m-BrC=v+MkRzK?J0#M{U~z09p2}Qno|K5w+<=RUK9K_w&uGc4oh{om&>z1hxtcqE$4U zTLMCWe$b#qW&wpj2n6Vued5js7gLBKrt6l3GE~$gQc5+OHH&0<9=x~Nbxa|K001JO zG$CS&X}UEI-UFf)8Iu3i&~5GdS-`tMs0Td697TjkiSUq9HW<%nG!_A^HFHv0BOnri z01*P$Vh*UX$D3Nxpqj8RHylL_-MbpWE2DXToj zP*$U^ZJE>Hf)Ai|*un-3ofk!laX6ERNIN&YBlApliAY0Pa3Zag3Bd`--u?|{?m9iJAr55 zdoW9DZH#fatKhxO?4oz~k8VEQG`TUJ#W_zze*tp=5Rr)L(KyE7z1P}kZHA9Of9qgE z_^&?L6jjZ9eE6vawb2D0Ia#*=B+wIUFl8^jXKOr!>L8qDCi z8#me*Z&Z_utJ(H+`<0{ZH!u9bwte&CM`cwHHZ!cX6eA#PPqqT{o$WoJlJ|alYv<1X zo>GJiA3iygWnzsOnKlvG4nV8HzFGc|K$>4!{>laZ1DWDWxnM z7Q2W55fLFX@9!Thm&^Nip9jQAW<?03b3Cak>Nv6&4w3QiK?X5TS60F{QNX+ArL_ z``*(Flh?m=_i*Le5}misC5bGvwlC}iFf}4Oe zDr>gK^`z9KDatj3CP7Y+gajbhj0ix2j4Ou*Ato}4XPqd7O_0HTMTB9B2+$C%d{hXz zR>@c&V;`edYN$!(nUhG*smKcvA$9F?59Xn@iR_KFi8*-RyFR7#W1mW{6=JBh;gke` z0D})t=2t0Q)Ya(h;@lWJ9*ujYhVs8Lr83JA5kz)!OF+!&&2z`XF8FaV_AzOdriDFO zxBF$b*?1AT>iYe<+=Tey`6U1r)~?#dd0$r*0)jx>v;(-#Q%2yn%Pty!3p#($g}YtmK=ISKD>5RoFYV zt}XPEmOVUNfQu>DG&1V$SPKAxMJx!wB|w3Y@^y5F;SCt`+7Y&x^c>DGI>M1!gw` zc;#U4OGj0qMF5%rfZ!6Bide89aY^Pb-KrFzyg1EPLEfHimVu9|qKWC1t?@fo>&b}p z*#4V8ez&ShX8zIf6JzqP-kALSOSk{UTklWC6KgX-Ow2`5I_D6O6xC(bx!yU4M1*LK zC89p1hl?cwWX619Z~H6ziTJ(*VcaSVE=TzIlHe06?NV@!Q;hE(7*I7aK$x*m@>CFlHjJQ|!QLTbBCM8Qc@bmOMq6V-jNS#7WR1DKyLWG^LWJ`!1{M%8iV8)VaAYX5 z^hvD3L~5F5fGW&Mks4&q!}O*Y01*U8sk$BwX9*x0YX^J= z0!kS~xXyb5NHOF^F%U~JCZ$!1aj}>iYhsAT7)}fbi8+R#jn1maMPky z?>>@$`Nlh_RMRvptd&wq^}Vy1K^UsmOG<35B}5h`BJaJT>qgyWRqsxxT@2f0{i6>a z3}mE$T;oxZ(RjiskMm27w@M?fBz5O(Mrb@0DzGA-*evw8WIsRo0C%3 zn#n3ZYfBW$_<<^No}^v$pGdqc!t0uM7vU zrHZlw5kT;L&mzJMi0XPOKq*B;tJTsNGhnnqbmg5RtwlsVV{ogoI@q30s!^^KASMwJ ze!AWWz`&RqrF{&Au~w_r2N4Fum^eyuz3bZc)td*mrsH?7npbwmO$^_D|KZQP^xU6( zd|H-e=N%!vc4N;ozk4yOib|7ub+2R%nTS5 zA^?FT$bu}87}^LAuKL>Q=SNB*p11Phs{h<1Kj~tn)kPm%j8WiX)7+ViHQ_o0ANjIv z5kM0S`|UWhxmK2F8xji!g*CH0L?bDd#fBoX_V|C^0$B`BWHh z=bX=^GC57igdECYv=}*`Kl}dh{R8&cUXQ)*>$f?rp6T(ov%PFS zf1=or!Wwb9Ea@y!Ep#cc`>B!fV^E9L0=GNm@2%3k_leGvd*srimCQmp&e^nA4BMI$ zJ@Ny*i!Dixg^HX#zR};xhhB-a9|lggXEn$F9y+-~bEop_Vrt+Ome#+gGq3TnUxgVJ z`iOD>-+6kpySJb`Xj)*iwUh7ThqfbL#C6+x>4D+|m-@zOm7db;!M*V2Af5 zuoOwXGUUA3w==OVG$DLHFk-_d$04MRH)Y6L*x)%&ofGZoe+J^Tqxuevm}+%i9>A?| zM;207#JE3>c(E=zkF~#8IN#y651Q|=PMML+&82@GL6&&Uoo{o-tr)0pde3e5BdsSA zprN92A7E_lq?$;smeQGhOEzawb$Bj?G>*R@ECkvIZFV2w*XOnme^q!12dMX5V?_b` zT~6&LtoGbfr;|vgLk^#Zjm?^@EbNY|H>&L^QeigieSiNTA*aheRGfMvVMtb#KS-he zxWeZeNd*APsX?cBnXQ^<;z3`R`s$rId4+du9VM^A9=10JbbZi3F0K1k3f8piW*w;c z*}>a7wez-mPHHcnmzEQk(}vl1q`4Jjb4L(ym-1zjYc8EUj^S(&KA6AWzmbfPKSX^h zV&iZ@V+eaOSavvXliTNE<#$opO)!`mLXyZtJBfV?y^$i?bNs@AO4s1MYH+WqR|wbq z?{5c1G4PhKvI}F8t*+d}dj7y#{f+`&Tq0waUaw%cmleXo>Gs<5hmz{DS%LlZqLRc; ztME+s!kxrhR+9gI!*ung=lzNx9HX>M*l?zRzOH_PCtW-xwMIBUD;!3JgV zCouZ}c`rTSzaJ|I$Za-8GQ?5BuyK*Xu3zm`MTWyDsb4;=1_U&3dgv8>Oize{zX2d@ zq1Zo$Id;ubSXA(dcaTCMbX;Ut&LS+yx#32`6;Mw&M&_wiz!iHYK7 z#%kQ!4s7MW#^r|&IWCpz$AYWsF1f69O_W$nxtR!|wJ`=M$h<}rp#$RM77(G>M;8h0 zt8s4cZjx%j+o{6zKOo6{p;xHYa}><40kxN!Al~@p$>fFXA~#9d8{^n=OJPVCH)1Xh zmXV#^R--ODAGTTCpM=-~{%9Prt6#CqWLLeanWY>bvBPC^w4Y|?Jy#pLv41vubB|DW zoTUDQlh(Cm{$T;jfowq*e5`%Rqo5yR^K^|2cNQU&Qa)Y zNW76hTvN_n0f_&#MOLo+4jn1rm-D%K$Knnr4hk<~L-zBBR=Fc~lyOFku)cTIG?8rM zdw;Hg&2=t)^p(|tT91%MUuMZq=QQW~KfQN|iEhKY#ROT0uHZ7~6(0-5+cr%%TAc*+ z>?7ZAZ3rFod-NpivR61Nfv&9X;zACHkj<&RBL|-*^UR?A*xc8J)8dTl5f}R%q)N4? zp`PZ@qdIp$B=$;j^}2tmOehY~Wcjc`UcG4T^T!)dTzfNX%6tC4j~~Q`-ccZ^9JU9k zSpNeicM3(fYQxqWT74o?g5|mfh=qk=Oi~a?UfdWCCL(@`_2bNIhP*1x7pv ztf^9@Z|iig#p_waeM2L`!J9lE?L|pp`jH{ooEA9;Kh@k>Yc0jDrhT07qoQIAC3={+ zvdZh%sHXl{yqO8-Tx@H)Mdg3vk^$Sy;amJr<6Ejod6|t%o*eP&j0Sos5T@XV1srR3 zxIIv?;nYJ>2wrS4k)|sa)Y9Ax5*w;-7i>-_`o6nYZ18+}WM_Y5XQYUVjpJ3}Hno^0 z>Ha0NDabPoO=^zdC}pFdTAJ>gtm%sCG8P)9(6b9!Hrr3nl{-1vPmk6tcq}oLq3BNK zAEb;4P{$RH`K}*-Z|-YJH;4VZ*#Erq^>lFLvoXor#Z=+`>ervLj)~6g8JF3fr>rQu z#N=1VTX;|l19y_m!ir?SRHic1Cj;rrrE=8rBvbl_H|Hd=Wx_7N96ePCM* z^Z{yO;BdV!DE>`s)A$?1cm|e(fP=UG{xjgRAbwgkD0?x0aqL2s0`K#i-Jd4~ZRY#T zCwKxOIO+>dmQjt z6R?<360T%tBpBKyu*m8w8v2}?7Tv$F!7HxL`zSBfYTRnZRW!?Cs!t< za}N`7{A)mtJACc9n{yJM6?J^;7h8603Q#4!Q@FCi#iIW)^eTkWaR=aFhDu4FDr-gI z?U3t`j;Bza5`aqDxOrJty*&4)($R2@O~r%Xgg~MA7_7IdRUF0>Eq*h_cmX<&bS_S` zTyhj1w6!$3v(zZe9%kdf5w~po98Q^es~SuK)zt{;-at^ndhB44nA%En`{RlQxT2`* z{=f>3I?tw)vUdtt4+!>VDJ1(@sxeMX778`P(?C>HdG#WO=n(b?IGJhFeb6`C60^M# zBzNHLDC>T5UY(@yU}(@GBU{34un62*Tv3r*3PFkZ`#rv@Ac#vhF?VseYsO{!w`1PH zB;~Fz96=Yiv>n)Hc?24)|3Etrzx;97ZPr1mQho1(H@B#Xp45gT)4oSyrC*#DJH5Nd zFU$9PLEI(=q@3{m%|wdhpN)QjVcujQbo82w>%u|8img#n*FjuoLxYc>Uph&3*4-9! z$>~-G#F5eKV-8l2KWyqnwdyk^SE$wKO_sKrDP#jM(oX82drI~igb|Y>rB=`+N1mxs z0GEMwiZC!imn&^oio{i5eAPE;X_Mogx?JIB1T>Bl9e9#g+5)VFqGQx%X_P=O?0w^& zxEM~};|?ug&%2S53IX?bb~UtgwzuChL?G_d(ZxneKFvoxV7f{GCDtLGpYyArB~W&5 zx+Ph60Jk?bI`2Km^mFvLQ9DJE31)MK11sy}Q|P zH<3!Vj1@{^8+7PrKstu-+f5cpkl>9sKs zOKJja%AD0Gr*!7Qn+145z9@Ux)U@yp;fVn!`k%ZghGRxHQKB;WMRBS|rV6XMswN#k z8s;9n&=%fgUOlUWOm$TKZRfUWDKMp=Mwi^|CZ21mn*FpL%p9KwV*58BtDHbrEbl0@+Ma*5 zqM6%U^zD_SS(ucS;R?<`1{zOlQN#VV=hl-t+nyW@;eN@^f|_xXco;vrNg=klhf3Py zTjm9Hv-d`sUW$Ak@X6&NKMP1pRxu(tFz{aKm*L{z-Q`^)=f^UG@07AMS!k_?Ma&MH zIs)#BPATs#pkZEeHUamB>L(pC4m`ukNg&JsuGWUO3?1TL4FHft3&FM@M*^+@Ld3_mx}xU<>U zHCNf3cspXF$zrAYbk8Gy)EqP1pV+Z>oLLs+_Uxu-?Q)_imuP?PGtHaGi@zfq(vBnQ z4Q)i(QZTxnXgN$GX0=zCj5vfyn)_``mbO{eG?z_imlqp!{XHu_>iqhzxLw}GoR`zo zm~uwFM*~SxwL`QtiFNkY#~^CxHMUh)3-{f(K3(Qf?ud6+4yNDUT82AWV=wt^I-1#3 z2c0;nc1Z)n0x(3v{(+pnnctafcdOEb;@RlYoY*0aLv#=YBu{1ODrK1QPD+g^VVtXD z`kqcut!kFdbDtDSYVaKFGuw0o)F#5}RBq9=!fUF47*y3%+%7dE=Ch^DZq!K3u8B;KI(AXNX zrh$VGHN$`{s$NieOW9t-q0UU|wl%c$$y;t^&+d!b@I4pG@O{HSUDL;#t>?eikGLq0 z!N|EPQ)&z$g7HKyBw^(r;XJ(1mhm|#CTO8!v9SCr4M04X`EN1VYKz7$3q`BKGEmP5 znDM_vOEo)uc!S9e;S!P@#!e$xQG2h-* zb5M7M4|$R6dk#2_C?M_iU*8>H!oVu3Q&ol8&TceGm9Lg~VD8Xa&txrznx${ce!heyBFpFf;#2~! z8-hyytDpff&Xi(N8TQmfIOY4**LilsYSTGOAO{qMmKPn(T;60Qm*OT)4fR#Fu)y_s zEyu9q(eS-+eqEu^vys)p(~j5XyeJMeH@q z#vS&AlGCCzmawQejgmN9jEaV2=RGl^iK-cP(zY(y5z6+-GQ*hC&TSgbxv8dt0QQ{k zQN0qA<^z56R)QE)STA<-xlWAts~aYn7b5g5Lh=iFlr%n*PsWD|8F>8)Ch-c{BjJC} zcOv!=2clI&LQv;=5nFD#_B8>D{HHaAc}|g86YClBT1F}=4s}E(rVtD)kkrN9_#sBd z2r5pD0X_fbE)*MwWX`}$IvJ6UDgqSnTodIcFTM`YW|BC{N(8m}`j=ql|VpZ<=r1a!{0}$0<~N|AHzn*Q$T}fq@oqFFNPHgxji? zsY0V=)p8zrXkCB-j~EI02*&Ucf8<<1^Uk=DVcWJLo2}0VKGQBCGB4Y8*sIRGAgd65 z@YlA^tVPEVi!+g>qgT zwc*kJs-S411KuOw+K-T+;V@k9{3_tfr?etZSlgn2YTc&neeZb-mul3`(P;zyY|r+! z(XgeX^=6ZZ-KdjHMVX`h*F(~Z)52VriU_m*b>;;ltB&~=0alFN0pTw4cT?9_hgPOb z=W?~5ko#;?NJlHD<4+Ck`?gnB>?iEhrh>vJ{fJrl+lRIaqg8V<3wu^p*gdDlX-VZ8 z;$lZIsTrR(JQFmlpwQzBU6tyXsj_+e^Gs-TW4^$o!!O1^Bxk#ElnJKVLMleD*5fXn>tw5c`a5eG8A`tx8Wi)})}nf?fbfg#IlD5&^h z3}Dok2>>{ur-$`{CI(!)rL&ju@n4N+MP~fx{D$*TuKBZ)I#U6kc!%dtgohf59Tu~f zqRN`Q2-QTg{80FYL_pQU?t1B?pZ@tuwP-4%%#rRY4b7u?K5bh0!NUgunw5QKECJ|~HIu@q*%;cu)fak3qn zA~Oe0>Hw?q4E+-qmD+Hqv!>2pfEU$?CP5kOX15H@t4(yK0Ja(Ss@9UZBS(D`U-Q^w z+YiRsC34?r#96DnY9vJ|Dy!&rHZ?W01StJ?#V=^V56aXv6}VOMx@#O<$p-TQvalq= zcz^m;j|a=NU%7r8;1HyseXz)fQBNxj-+U+3x!Ak7$fzN6=8_c- zL9~2!3io&6;Oxcm6E{CiaCSR07X5%C{(Jj4{4fm+!BcMQXmVEc2c z359{qXKJN?1~-DI~1q=dx6|==cRBy z67mrH2+ax&MRJj#@53}=$2$ZB^h||*c!?Uu&v#_mT1XSku@MZQYN{d>&XuPJ)x^DA zfM>jWH-H(ho^%cvcyjr^dQ!uNMwF#E2vK)t)I4wJS~TXS&yECIYYen~3}6iD4JF?a za56_i83<7Tdqx+X_?14XgOA98r;hrFWaMYy2%iK#zX9$Du_wH_);%P3i_qF+0?qe% z3w@^}mx-Dhk|Z5$0OPQMlvvP*5Nwv>j|Igzs2fq}M>7vF*tm=NDcp?7JkxV1KB z6R{V&a5Pc)iuQ+EM223BRSnR-!LlAJ?zkM2LJcU|A#|{z2jKV*U8W$Vem&^rt0k>E z3I+(VAZ+FB@-yovromOF#o?6#iV|Q<1oe1LpLcY@UU%C$uOW zE-Ic63W?sHyx4l3nd(#M9ra1jkMI_+%WsIj4)OGfxajw|5XPy%KhJ6qSVZfH(?cV{ zyIwY0eNKXXF;2GfcmAf$Kj!=y4S9U`H%=!^TV%zg{*7>xApOnq%N)_yV2O2%5Pt>B zxBg3^58GB5eO?(tq!a}4p~w?tW8PomnWVX%!^N?K`LKvFKWJvNyG@7xN?MD1cks#n z6y@jXuQPf~9az45$H{5B-5`SH`jy=Wph#-IhJRhBFVqkzN4k4Z+;Am-kx!9}!59NW zT!pkU7f95Uw8N{Jh4!QS=RQ5fJo1E?kok~%ZpLk(l0^|Z-$yanM%0oFvFMb@Zlm3K zxmvy18!G%_94R5Md* zj47x#(f5|io@}4Nd-=@p{n3a*1aR@#YXcP+AFG}F=(bwQu;V_8F`k^9!0qveeJ=($ z7AjpH_Ib&TA@F&&@ldy4?Z|R4nmUJ%3Xa5lH#hZjtLhWX^4m`=%M|_FlxV{IIeT$ZVky!7wukL1+k@iOgqffN{u(lyb} ziHF4eXnu$l&w;Ic&xWyFjnT%A=M^4=4YV0l7?0z5N`71FBl4T(z6FGF+kRC7LJ*p2 z<#p&Ox8wJs08ITDW93TfT-V6})~gXXBjW^|9mzxmAM|B5&d-F2{a4@F$%DnS85{!u zNT>L^iU)v??wMEw@Oky;Tw#(t=@U2+_M#eg{95%nuF@mo*EKF~AwoZxZYd9ynYwHd z^3!O5o}C@?iWY>}nh#<}5|D!(Argg8yiL5^QQhL%y9%zy3MG=|WHaM7ECzZR{LE(3Z+;>yxpbuf$RrZfXOaEX-q^p5|&~3DZ&J~KYu2$aQZVu zD`GxLz-_1BqjURkmkqc*zp=r6Rpd{52I^tvHOqbItE15Qy*m{FPCUxi416Wr$DmN8 zCej%B#FPX3yGogXK3Z|2`5`>X!3Zf-{sIC#8%I zVO}=2EM5-_4*dY5O>Ww$oon6qor4j^KE6GBRE}-BcXtxGJ{b&c{Xks4^9$!J;BcD( zhc#HXd^Wt3t$IiG?P6HGh3{8lMdLjwx0Vwt$2^cA4iw48T8!17k*fB|xVEjO#+QTI z@AZhafPAoe8OyXE`#jU@V|0}MOyhO7AMIFR6Hy<5(l)j-L)Y04fbU^Tu^0}pecm<6 z#Y>Sj6^=Dkc_@s5XMtfnY;oQA>T+I-b5_?`ao5=iGq)OdEOtISI$D`@=Ny>V&~u!g z*?rW;`g^0#{+JSRu_3bD&>(?7vJ>Cy4I+a{n1-{iXj&jvFRdaTegb-dyNsTb`R)HV z{}Mn%Cj1bL9#DOt3WPsa?C|lP>}T_Ku6$8vIlQ_Run{T8+q`W_2+q(gHneRUU08IK2v=Tb8qlusl~94tMxHx})g0boc#t@Tlh!rnI5 z&MQFZLD%cFW^`S`@NWBwq3RFV0mjTv@O)X>&X;NF-AfJ*GPPL z{2cz4-#)W`i0_gn0E6OUjTJTva;`l-q;au}FYgS>wpQE_y(7pEXEk;43oF_rRGKp7 zm=9zxw+Q^RCUFv=mzO^0n>EyawJE5L*qVP$Q3&#$NdkyXOpg8fWpj2YbTOEp<}A_1 zsOp7}>huZE)@sJ1kT?{<9Aa>Op*q%iX6Rqp!DeiH5^_R>6SDmLBf10pz0?>U;#}?b zt$x6%M|z0Q*{Y{gu^fK16p|Dr#@(4bZmt#3#DnhSdevNkKo-Lgaf@LO>`_xKt05Q5 z8?W_?T|2=}IAM%lw3)NeHr0dzF?FbCYaw{E!GWg|&a;Sj6#C&fA)Hih z;;8eCBx*2xZ9AOH7Mpj1C5CZ(Tgw&F@FQP99^g1}B`8=R8skF<@#x~}AA9AAj<}dP z4@IBJFvaNe@qtpCyZ z))u*1@B-~s9ifscUt>V$K^_dEI;)Lo`uwf3;wA0LL=eX7HoY2${pp54SyKCUlMwxT zZ1%eo!uO7nRxGC?F*jg&m&i24p$t zQ;D0FZs)R!;Dfl__oCWi=YQtqhI;XF8Je8|EJ&8eCf;Ke?T^wfHUl;b6g+zl9GUqm z{=x4|?#(dTbOdFIf6p_?JEqgqd6SJPZ#4oYr{#DdDSrNO&it48?qkJe)uCxfJSe{b z19QQE!n{(Hh?5CeDQp$b`muI+yDDPC~K&vvpm5&m zw*bEOm$^$P;N3?t$zFeBv034F`dL(ocf@H?+R!VIk^`oY2^&My2!Fle*ZtdCN!x78F`Pn6phzsku^}p*ANAm@s8-U}Q+37mxS=~+_ z>W;j|g}N1M!!Bw1T>QP=CIRPj!B7*C1aY@RsO_sP4~;RlnhV)I?3*2>BFqf~U(^*j z4NZ-wJdgw|jE*h_biPV*XN{zE2dx@@y8gJ#C=!eE)}Fm30DzP@o1e$DtAk8l zGru$_Z7jl`SJ#H09~DPSkR4E=7u&WlbME5BPg&bXm8Rmq=A0H(RM~UpU{NI?tqZDa2qS%B!Lr?fU1qF^oQhYiy1WpLDac|5tgL zg8umY$Cj|`+u!btQQ~h^ubhj9R_R~07cM!i9JO(|eDPn)P%<4(Dl>V==$lJZtNB=V zNjwc8Tl27Ysc+$oc&+Dz_>Wq%w;(sJ;@h9!MqqS|b@(MHR$KG30i@Mxbw^Tk-Ncdg zf`^Rb+DJbiGk}jBdbuVgui;uZcmIe?JJy||(;Z|H_WNm}(Z9Wh?bmw8xTTz-;`pxm zS`VEsUL#CGvMIQfl3Rew)Fh0L>iI3O4(ybOYu?E~7rkQ8q1`ldda87-^~sNcNj=Ms zia)C#YM3ANGMJroZvRrEt{=Gz3eik#mtN)7VT(|*_`|=5radN9yyhL!T$775=-TA< zFl3Nac9j$twy-ev;JG8(kN90@NJi0hCS8lUon>hr#)MZdpySs8zOKiG03BuGoB~@JcLOR~dNr z?NTI%&V;Tl=7%;jOru;xbku8q)Vt~D*xPtw@NIQUKHClZm+dtjHJ=mTqGtT82H~ZW zg~Nz=JO*3mb-U{TX$n(adW`ODU`i-AVOY9{4xMS%vAPD0-YMqDZ>aPN_4Q)lGu81q z8N4~zXWPazd%c=X5UbA}j@W{$ z4n{XdLMTGz$6k4j)y(rxhoIFDx>`G{$PY5aojLjTUNj(K;vxtUs-kf|{p`r-f##dU z7$tZGkT1(gKp|@NBlK6*GD0TSC{jQ5J(d>EIxsYtW+BQ@@7Z&5e2Mhf{yW^%SbBoFPpY0b9EB9vu-iB|DaX4yga@>=x;K6^DF-3(RBTs72n%FnH z;O7e-^7ms}v6gWk*LF^J)Wg0ig*V^U)v=ASdV2B8AyoWn<`bV9!6@37+vG&CI{CYJ z?9SwRqmRg!lFA1wl1$O#=|0U^Z4Qg-DeSkiv#xFm+!3Bhoo*)&YOr1HDAb+C4b>@8 zVx`f)&U|g(hv|~USBvR2-h%{l$NUC=uDG8pa0KID;zlONQsCMR1ZvQHo!vUv3~7aY zPlu!-|0NpSEqcVC$%qph^d5*w&TByBfWE?U*w{r349)1ExD}=YHAKj;ztnQ=q5U|e zc%cf384Y5jF_?nbkECcS(-nsS6TB?lP2lK+>w_817Jn+b8+rns4;yJ_{+^hOXN|k8 z&4^R7FivY10TjcEIfSZN?%u;W`5MC<3>BRI1aK?de$|^*hZSyBO23(w`jXn@7Ti$~ z9GzV7bEKw*S5VM)lU{h9*O712QE?%ag6Ag4w_%4e*4ef8WUvTh2a_h&|Ni~!I^IYg zF-J~*r)FXD#=Iy;WAc1NWcHna5Ue;UZ|AK9m8e0@u zKCKKxxk5E?pm!(cmbs0OqIbr;5kh=gP$?C}*C3CpptM0ys_nA5#R!`;v?q9JCT(Rf zQ198St+KfT;c^t!-N|Ky;ACt|t)IoWg<^II32v=mzGN!)hsIZ4H)$_C5C<2aJeGxfBQZYO^qF~Ms?;CN zb_4NgSjLuSJ>P{tEpO*X0Ac`4%l^r{7%Kwr&nm%EySD67s!a?E#Eunc$N?>_6D1n zqSpz0gaeR`JpbkG7rwvj5kXGqxj445X1YZd5H>crh%jk9yFv5zw^S23`-WvbM#AwS zvTgKuF)&=t1yq)aMBK9?m;s}dK!~q0Zx!1Q7Uzayfq0rW2@ft^3tbmotth(Ws8*w3 zu5i+vK+oQh%f;wyW#MCa2_mm3XUN&h9lf8en_4t@AHv1{lwz~lepzk-%G|qxOf7(} zzu5supnG2%+wx01s6a6*?3}nP6rk4~?y~6}?!gif`lpa_{l6M_J#yGc*aL->{$e?< zxikfZwa=dkJ$}yfo!|wF=@YJ<|0ML+T7y(oqYHSEqdx_NU`T`? zSiOE?(3q`YapI)fh?gP7)hJrJ+Y;vC2Q zFiiwF*^sjr%@#)jt1AX&qi0ohImlKY z9au;(mFA`4elWT84b&UoH2zsE3tXdJ7VlHopjFP*kF_0~J^`TtJPLG>NwHld62YgYD1R8NbhM6CJ8)^^s~@ zpK29)4k~Rrj?QOu7lO{tXurs|%)8bMJBIk#BV_-xyLXr{@kdSQa_nPhjnwgrYL3f= z<2bFdVhTDw8;Got$}u>8N4^$$qlg?r;2@IoeCU3%B5ki)Eo_V&APFK@hDl6IfpzO( zJ|yyC%y{sFmFXALNzrWHQu#Lq5g1tTu7QVh4o)9w7#{;b=gqa9yqNB_vc*i*F0`Kf zyhEm?mVSP$EJ?qSUXX}^(8-$`$fGeUme|y%gI~bd@fdv!W@+*B}QZ($!z`YP-dvqfVguh#u&#NcCvYfv&|4Uz<(gnK` z9ZtP87!YKLnlU%j%;Lx3E%D3e)6=t*9&+bYdk%&B9j!p?GtAkidL0H_V|i|$w^yLA zD?Y{Rijp7%pMx}o9H+LFwB(6@35Plh(9JrsEdYN^8w!-~`&ub4EoUlr*UF>uM7(rlA zEoHB@IaypcbRA8%WMX3Oa6kK#?-D_hR{X5iP`4d%O43`9Bfs)WM!1`h{l)vl=VoAK zo%wt(e?CEYmA<@2v)xzRFw0z+z|r6C+zJ8@$HBgUDoVErki;rBAiOIgcz?h`+LRFX zuZ=Vxa>znrymMFZ^~Ld!v^(WZ#Hr7Ylh+#;j$d(XDc7+|)4UP?*Wm8nxm%Xi?jG&; z;8w(cAXbEyh|Te#P(wwI#=ht7%j9g~TE#gK0u|3k3c^{-&Qt~-ofU=w=ujAp#NSt$ zD1N`W=Co`RG_Y%rxj_DSv}ZfJ=i;@Z4EJBAK5hN`f&laQhijaG57i&`^l6t|*&X@e z_E6lTRkIy7N;Z^Vc+q>N0NrLs=xb-Zo$Wr?eD#3O8Pxuxe~>$81}xkyTj88QWN15v}xeQnTnaA@+6;vu0@PtiQAl>ufC z0GV5$nfDJehj7WM;;+_P^Ca%=;;na%I;6vQnz&kOoi+aD4;_-qJ`ZNlN|tnbpU-=r zZLa*uAKE+fi-?#jOmg377!f;u3cSp7lAfAp{8ETenA?uS*~&ow4%C`kDu=3D3m4<3xL z!#d+|sf3wsvOg=Rxo3Xk^JOK9j_&&Uk=djqAlbVVD?=J{ev6P>uo@8L!+@|W1{LaO z9=Fxm$Q)=3_D2vvWTOur++BmM0~e3qBvp-1dV5Xl@@EOLS-$JPv~4^eQvF?Q7mFes z$}njp_!7M#_&R2YAkH>^K7=oQhsi?}_NAi27DzNhDLLOnOZpGD0U?4Ag+K@!Dz4uP zi%Pdd4V?Wr!A9!y*p)6@8}1RFA7$Bk&uc=Mn3+16!=`X-?OuQ7aF_xBfR$fU<%!X2 zYiGZ`wJd#3!%xp_sETI65+sb4ZCCbr?ZdK|KrK8+FvI@-epf?-e-XA@Hs5;p@k;2H zNM`-h>Tjp4D;r*3~;&_D{r(^Y_D;vB|YuuP? zQSSg9ekXhYF}&`~K$-Ok+k4>+5oF*F4F4=&1!z`l3RCM`b(g!RB!*G@+B`WzUG%y# zM`E!E8nt(;Hpn_6l_yYWZ@GBG1G@`-go?r5bc|*WF>b0i@e%>Tt%O4{824DZ(^AZK zvpYf?wN+di)IJS-@7bt3&}UAsk7=TEm|3%k=~$|yAukc~^YPCJSxnxz`)%p4Ojcg0 z7EVp=F}b8oZ@?DeJ^!2BbKPUnB^f8&6xn{t%{I<$VsnF=$A_t@-R*Onfv=w!9{Ao( zuC22(OWT|hDl%Q93P~9lAnR zQ;FC=RKz5sn0m;m(+`6&7ugn?SD%=KNe+9+E|uqR#m9Hgw}+_U*qgn#?Y$NjrNxC$ zR+zy^?~|mHm^KRwpG3t4d;u#1VZW55cHw-!?^m%UslBfkFOjrey_kbCQq?0 zRn>7^Ep}DNj;x`Yz9FHpV!4!uBBJL*Jx43G3)vIP@eeQNC>Na)?p@Y*?%XNNSGb8J z`sI5U#n@H^Cyeua*b`qBe~U&kTpcc(XxNcpR12ioGWyLH@#gycBcKMU=%FXl6RgP_ z6UZIRZQbR+ckZnUovV^Yx(NTnz!rk{0{OpRoSsQY!vWU&^uH2fWN&BW_R?E9_qaU0@GiX?^qR;yc-Zjq4q@VR;GpPqJ>Vpj&ryv7 z@pw{J&B}CsD()5gtzpDLa%tfx zK;dBL^%=9GrS^duwz0qu->s&fk|fFW$IQwRftQ3v#a!5bezIXykHsDKz1y+c08IHLPvPY#|JpX?pM5caG7tpx1AY2 z+88Vj28_eGu6Yi!@nOdknd2n@Sz5mgIh6BEb7*&=WqA_G+3zSKQ;(pTbEWc^ZqdFA zi1#9Z_Y{o$(ohI$pxM#p9DDVn){)@eEVv@^;K?eX{S{J>;-)xNPNH&sGmGe58&18bc(U@F6| zqAJ=8bW7nR(7h$sF7u6zjrYzN2|}zOp9LCAT$0f)lOVYvHBFmf=m9flx5N}AE21+1 z#|HT##sob7;w*yCs;Cfr|5-*1UxLDnKVM6R-7onob%!0H$yajwwZe*#xCWF1T{(h} z;i2o9F%jh+wtV11wgvjlN$E`Z<-=ANx8hJzZ|?z0u%hglki+Ke#x!X65fq=7TJym1 z&h$vhrv@l&Fth6I7QN-#a)g>`!QCsy;scfu((4D@| z9%p~56)zIDFAlfq0b*~Xy&M#Bxm-j=MB3jg+K8Hx)BT#s()c6&#b4e>|8d=QYcGoq zlYA9$E0?)_yUp3>-HK7X#FD}vyjomZX^tSg6al@&gBtV#$ADU)w&jM#lfg|D73~!- z&{tFjnZxuVg+)X=-h0eyYNSX=34$@LpXG#&nDB9P@J z(H?K_jrQv_g*Ndtqn+JkF^{MRv)*2BLcr6ite)G?%)iMAlzhq2Mji=k$2$o7#`c3F zHW~`uX5PFRTe_Q*`fj-FKKL43h~NgiNyC2WrE6}Z4g zb3--gbBqL1gUSktdyjCjl4io{^VwIYdu{Ib&VQafekLB|dwd_)DL2@{k8up^VzWiQ zLA|V>mXNr2t7Eh#cRmPjHqof<*&Fx@5$U;|KodJ^9`jYx0EHSvVUR*-4968b+);j2 zFg6}qv~A`*k`)J8G)cGR1t7^|;Of1S{N+?>a+9BlP}ql_2(O@R&!#r<+@{oiS}OQ8 zG}!(WDWdABU|4j+)~#wZh)M^EEfQwUdaY%rF%B45fWKh;( zusJ2>4k0f!nHOiYCEg2%#O&B;Pk;KjD)UzECf&1ZN~7sDFnXnct+@JV=ZzYcmF#z) zVg=g-`FxP`C!kA6e(+yf+9esujhGwbZbVC9=!z}l;borzDiyAoqj}?Ny%!jz3y1}1 z!hcDNJNOb&v^!nVC~w9eAB5uiNEk1XxP4105lHCf4}ThNLsgh z=TCm^e77v#+bE^~Qi)}0>S?bWvn_#-o#Y1m#U(oThU5J7?BEilRrTGc98~c7@*nZl zS36+_=exz~J=;g7=e^wB-Cit0Vn5Y@5Oeb9=u7B__Elrlmx(y=h~Kza2p^>VmG_CT z#4nW6^l^=+{&>SPIg_JNekZpBNuDghBDOTO**4>+FWCfPR|qN?17O|Hs)gXgt-#v( z%Fkui@~1XE7k20~TQ7sD>$*2s5zpvvvBnW|77i!b8>`OO%JghxWnDGfi>4{(ha<(s zXlM!Bzw`Bp+D=b$ZRp=aX~nP>{Xnww!CZ@o^~GA~SQ6eGJseCmHyUwropKW~8EWV& z;=1y%?}>$$+QEY`9}oX`E1;K23}&q^?1%?G)#8x}&NW|Vj)HJjNRd)RB&gosT1+iU zL-##a<*TJPVnA+av$foH@H(2iN{+^}+k6T7(obLa%|ADRC?EG~=RZVx?r23Bnfr`O zmoJw!%w4Q0-`+4s_O3+p3caoBOQ5;s7`UxOuR2vt^Um2^US{h?tY+w!Pl@oByl~HO z=e!}fso(Y3!$kmK$OZWyZ0Vcd*Dd9C5J(V!h@19(WoZ1*|JuuL%1m?Lhvx({%{zv> z1TT@}n$LtQ{t`X}*p+f4Mw;3$RCBzKG>V69c5%I;x!RcK zzjgwaCs{(RuD*di6D}Q>#kX?wH@JI#bl1+6qi;~^Yo8UCc0p>$WvftZk#2HOTnyMt zeo=-gY{BhLWnS^AGQ*Qf;0)uoB|kPjPjCtFp{Ix9o$V5)Uk*_j=$jb9!xN&lL*p*T zAKdMoQ)*^ZRfAJu#@M_j6byId8!zICm&u?T@(LyU?)>~^Jp?Vge?OJRq9}$ZXJ6zpufc_dVhhh7!CaWAxuOR=a%q;m}|$BGMHQK|QsZpR#dK#lAf$l1)&Mh&vDvNQI! z0Jh$+Tg%GIn_DFPd^7?_5;3SuR9}#Gc5&TX5FpSqIKCO)n2453xZ%CA_^!nt<*d6n zwqonzFetNQkaFkC?Ya9Rhc%QY6lVLZ)C_#`^Zc}{U++V6q|HozghAH^C$GiFFa9RX zQK%{jxdiP2I4h46z!967nz9qaeJkvyVE&?m05wC%^6~!yEd|p0Ja~M1iapbm(pJEu zw9-12;=RXhuBs{m#5r34D51{#rm3-yGn>wY6vm8w-vOc5Pp&Oj%O{J)-gLTOX%iEp zlo8@nN~NrmRkgD==L}GuouE4bwUkmA z7qFYfu9SAh>biE;ASO_1onn+)<&;ARA%@9hvR3x0y_5QpsWH0e}+9xyUIitpN&Fa?WpYtdubV#CeN@!(Vys`3FxP zhu{gN2Q~axf9oqpBoa>lw;wJ3*^l4%!7HJfwsj#4Lk9p#Y5aAC5Tf^F#{)x9h4+3O zy1H(-;3=hx#S*7Vcpp-Xx~{h`BtXg8jH9YF0i?cV@0`*KaW;(ei^YQ14JGtoK7aJ& z3F;zkRe$C7m7hPkytlDCmL8M>m=s1g3;^Vml~N&wTSrHowae9NJ5oLuA;hQeoctHx zeD%{eW|dT0!JdW(qbG#U6fAB2>7z3Mh|#B*t{fjfKW{2VfAIc&AT*~)w-A zVB`j;?|sg>X_}O>brt~jr_*WMK7V|C z?db5eo7d;l`K_y0fbr#Og})pCz#<;aaL;alDJLNWmh1(}cE$!2j2UsxxDdM1N~*S< zFh-}dxzhD)J`+-L&M2WT-e|x5<>!9qUp~Blu{u9L(^bv5h`~!K1?M3|Ap`(0%D?il zo3DNH%0KwWfAQMM@y6OuU9Eoir|*CE#TR-XIODTP`^xp}M~eOEasN+#{`iCQZWR*J z?eUXSMzq$*!^i!kloDdNT&^B37L`)hr_I6!59IEwJ*f4@2NPl=g-x;ZQ7~p>?43Vu z>V>hb;7enHkVf!@v8|Mh(poT+(oAwrsY&_L293SQ0*|_(04!E30C=W{m7FPM-g~?` z5JE6lZjHTm?Ya-1afalS5AVHSS2ZPUyM1qCMmxwo*2L&j*p0S>9UD1#zh18x7iv4U zt{{G>QWazD?Be3G>q5!|U^1B^D>S9dc7r!Io0T<&3xVH(QkG&s-^F}yA6_ zg&c=Ir`$Fz{;$!DlXl{qEv0bIF?WUT8ssJ-loXAvfL7gBsooUhkQA7d`B9na^}+30<5Mr&;WqNEBT z)J=nKV@fF(f)E;m4PyV}ep_$$$3I)4K0;vEe zKmiCXCQtxk60xc5O<8lu{^<|zKV65M%e-yAbLS)ip#VdKyHojO3#Cz7eDL&_aEP@b-mgw$8l)eNr=IFhd&hV54ek_ z7@T(nh*sJflX9wcMHmec!*<|GSz0G3?_;_(sk;!zm>H#7@JdLN5|?T)11^OaQ{EW| zo5^IoTuP}3rP!z5-BdGWEXOpC{V)upbxO+ha*0@J*zprm3XCzOHQqD-e_;h23Lqqp Q1^@s607*qoM6N<$f?Iqr1^@s6 literal 0 HcmV?d00001 diff --git a/artifacts/gui/2025-12-07_18-54.png b/artifacts/gui/2025-12-07_18-54.png new file mode 100644 index 0000000000000000000000000000000000000000..ab1f17f64f8ec15a1fb1c1d3a39db61abd5046c7 GIT binary patch literal 133289 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%0D8p6(E7Lcw4VQuON0nuz}h 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 z zi!=^lp|NLN>PJQh$DxO<7p!x zLkZ8UbHs*9Nt9#wNC_fSf4QZ)r$q-R{MU=K?J2vfm$0_xG2}#Z0Y~rL81CeR+GnT;BfT4O@&uL&!!In1qOY?c?^h zKU%-`!KXj}{wMeMcl+Hwv%m#%zFb;c=V^CY&TU=NiCza^P*sJ&-dj4|FH4)|sZJ9} z@6p<7T7uqt2k6}Zc=Cfl&(B_md_$Awui)#?v>x`>oxZ zZ@=+FUwHTPPdFV!OmZ$qj}0pp6k{&y$MP>cfmXfT$!^Dm@TPNR-ASBDBD!iFzRj7=jUIGHsCQ8d zx{d&i8nHsaaMd!-Qt>*|zHOLUL=J{Q_IO+RYnU+GF+AKJu@z?Hfn*T! zM;^ww&9=jgjZ=h35K$h^*D>t`C9~B812VkMB?HJg!YjLX_HZ%~K>UqwoS#mGkme(P z;P!kLk?ygqZ8zgLZvE0f_?f#$zvcVB^#8Vs@?ZRK|JZ->zyHzy?i;V`u-EIK-x7rs zN^zTDC2TktCME-v2P_B3>P3jy_(+5O0}=MCy8M+U&$laiE{`Gq%RfOF;6VB(Z5sk! zxl%pUPeDY$w~*{q=%h+IrABEBk;ac1CkX*T1st+%W!KhDHq#Amn+&(UlbM0chiwkm zUvKN7D!caNTj`V8d}*_Wt$$=zT#;EOA_h@Nh-ZbQ8|Vf!4^x2gQY?>M4|TZMn-&!6apCpF@Je$g345V;8)8#J~5izWv|)#MgiNm%j1r$y4vWdq3_E-+KRBqI&b> zNrF0UUH8WWMQ--T?|=6#NHSFL-n;MQG0X@A#ALnjXFjlBe!2dguYXej5jmgFhy8(M zt<@t)dbpY`>t$UQHEGMTu1m2Jk;!?Sr`?O&=kv5%+XBGD(_Br(Jo=@Np&>T)ViMZ{ zB| zmSr{5tiAF!BugntD}UpSH!tT)DTUxP&#LnF+wcCq-}0p&{_bjz$`)}iQY_yIo3nQm z!+r+{!^K^qsgs1%f?DVynZ?w{yUURoce|la?k>F{0;!wM6Sx$T*wqNaU3#EuRtAxr zbP;^=F;V5|G42-a)T!{&B%G=Ypv6}3Z;!%!*h*~<<_U^Owdmq32uBWHZKfZtSc(&-@^Y;3sH!klzy?pNJ<;~-HrMVJFmvsHP~b0pnxgH zcAWj1po&zYKr7UsW7Em!edSMgIK?UX>^&fWlTPHH#M>UuX^ub4nwYnD@x|lx$$7b3 z*UwI;kMB>JizmQwp1%C%Q~XA*um9Z7+gsv;Gs_{mGMmTiG5)3v|yV^5wu`Gfz} z&;6Q*9V>s;{>qR2swesm>({=9S0C!1_fxq_0zx?HY z?1%83U-tjc7Kt8kqC4G5XT)}K1~hep1O9^QXxlQzC9l8{>@GPtj6ig_Gn|5uM|Y(;I!IuZV`;&{y<^Xb=3Ykv$Fy zAwfZ?gdo`ID?gGFVAYTmWYvxb^q-vOXDN$;aiPMgUW86G~N&M~~ z_|oNkxqbPQ?YwvSTX5Q)DH`c5t2~7w!!eVM$xUtYs3~e(7v@Oig(b1Ry0tF5Q;eb%PZDWja zNJ0dd=!P%>1~;fhJ3tab63{BJ5U3GoKsBi9)m*P$z2OcyoMErE`p4cU@2!%mq(TB= ztX&Zm?`EFNJmcPLed}A_M*!) zenA$g$Ysrx($EhnX^b((YGbx}=FGWMr_Y_c{)QJm@45f;E5GQwzwwLz`Tz2jul=!Q+FrVzbM$8LP+2uWsKbdVY{B>M>8Tx;NYj9; ztxweAF?R#%| z^>01*2S2ozE0}ouYrgdBcE0KjA9%-iJ~IHg`}TV`Ui7!GfAf8$T(4@@SnKF-Lp&9>UWck2{L>&#h0gUigJqeA!og1K#r_ zC*g79DNe#?dbdBTBU3@G^e#~@b*!IDJ4V=)B6xcA{N`=OPUrGs@#x6!m1+fY(36#5 zv-0CHc6oWodE7of>s)B~BQD@sg!*xjvpcdhygA?uFW!yrZtgl(4@ZrLlFE%cKU!LY zgp*|p5a-fY2oRZN;_6XlAn$Shl>3 zU!hc}aO?x?J0*9078dn!w6J`nwA&w@NH2{XnJskJ<-L58>#Cj~9K=|e9;8uF-rR=1 zk5#N^nr)J;Ph7C^|Q^bJ0Dp5Nryjw^y)?>f9ILkz3Z+^Cnn9|Vh%#zwFF|~ z&%d$YQ#=4oF1V zK4^WqvcZv?W#>mYh$&lu=Xjrp)inE-!aa*ts3`y@uBs|SUrcOjEcvvtSrQ2`L?SZF zOzuoyLoW5!^`vf^*>rl#soCk%+t0lI> z1d&Xoax=0-X$&DGmiRt#vs_E!J76V?Nb|vrhycT$Ky6!idO;TpA`#1~MaN&o*6@ zJSl^ys^Nl*|-n0%jKX&W`GKHkvj$)_ue4xaA1CD)WXjIVns_ z0Q0!{PT?p$2W#vZRyuUbgCs<74w*&aBp5r=ef?_%fiGYoWegGqFFdgE=M2Odz#cL1 zF%|@ot7WZ53WNe;m&dovp}AX>K|*eR`2Y_sQkK`RLO3~_s@tOLTlZ;<`)xa`tMu6; z?%O?geT2U0bx)3Iz5O-+^v&JZ{%T>80l=-V|A}vV%d6k`#^3(VH-2@lZ$9?EA9>Y} z|BDap?R~;nP0oM&Tib>eR0YNz+f&+OV5<)T(f;!aDB_O*9jW|D(XR@tuo>hvz`53Ku2GxQTDd#*@ zWeP=(5XR=BZ0Ax^JRXVh>qIY?9c?W$;SNxCh;w&Ct|!_!_h9@k2XZyFbnq2v28_TN z?JarLqhj2#uTkXw{rT5Cd$SI{K0tDqk_%kH1Y)?33Ls@C%arEh`EZ~}rU5B&5vh25 ze1b7u9hq&&uVhPJHP7N?qj51Y%yZ*7n~;Y9BF`dL>-m^Qd8NWtDOF!eX=Ew`$d)lE z7Y6{Bo=t$qu*ugmbGbO{AaoqZ4yUX$e#9uujhW+3;#MG!BgUEMN{eT$4NZQjr5NPu z)hod{;P3p%z1d#o;dXh?BadoI zSL=o)yZ;$8x9v(q>S`LQYB`^)Y1gfm^93_25fM~PM1(`qVI5#~T}K}`KgcMZn&nkP z2>IWc=@lark#NYNT;F#g#I9QbAZC$3gkcznsIKd#o(!oUhGFQ3+&k&+M1jYMt?zrH z(Z~{BRdrK0AX=>!DJ4xQ#5k!ccb`r+CbQ`<^wY^~)h>mlX(n*r*xER|d+Mvs?_7Tx zbaIL)M-LTIj;$#NM3&H}QZ%dr+|lQn?Qu)$0r zOdtgdg1`!&05Xa^nA2D#bYI70qb~-==aS%^nU3L)j$vD#I+=1?5HWc%GXUwBQjO|~ znxKZN$#u-~q?Ruvtn;D#sFz?aU&=L5zowHBipqXbKSSZ+<{4`ksUBu5aN&_ii_trk zT+P(3ET|&uRfXy1ovr)#=F_^$5*xi)5I$J7@v{d~yz4jLx$&ZZ^o%Ec|F*Zj<>I+- z`I^TE1TX#mfA(c>e%)K&^M+f$f&kzc>mLAaef_Wf%a7jrufF@IUv})p^^o(=e16kB zj88oD!tee+AGmz$4}R6hzcsx3hrjjbZ~rH6{-qoK-S7Sthhk3{PkjhaJwDM<-1d_{ z`iKAh>wf$ANk0GV&s(kDd-nzXiq9N^_37;PXMflj4>3J>nN})Y(!lBTlxMXudEG!F zXa8JeyITrn0nW><85D4b2!s&0O!sB(E4=$7?kE7j&9Zs|fRfT>Eu6Lgnrn_q;H9Iw zsJo70J?`)yC)S2mb$Ry>$L@6^`&AL+jA zhL~>|&S+hLqvY|bFh`*SBa@%V9BZxGbzGDota1jNkQE;R%T2vx`{ z6hIKpv~-jRiGV_`Eudn)2<~trGpM1kmY51v1`YgS$MPb3Q3lzRgGa3d#bp4!k|keGfiZHBH*vyZPoDE?l^qiVM(? zLCusBv$U(W?}y!!r{;_KLl0it+Sy5(4)*uW-BittscojyzVB@G<;*VTL|Cqtwm1wS zF6MJhNkYhg3W2JsR#mk`g@Ek7_M9l_?Yf;d)3eI|vzlwDV^-lJBGoKHW~)`p%x0bi zGMEE_nn?pdllDW`4PD4a=+nR~W;*n}1R-J~s;YYGP))Oq4FZKKE)VDK-gc`HB@t+1Z_)n>QynoS?~8+}xaOPeT=*0$IqCvsuugAR%xoF3oPxM9jGd zhcxBj!85+g0v2|K4sM$7MGzrGXUPWjFe6QrhWr?~a6aK6f|_R?yLDP6xtWH%j&9gF zrv#)15U!8j6h&^su=;^kw|WNu5E+!0bwD zmTlS0MZ8Gr5&Ih89UuN9{HfqbWbT0-iZQ$%!K@57S!THs$h}ZI*RfolOp3eeFwowL zWQB7lM%qWgrX3*DQRpvcK3QzWkwqMxX&A`W&B+}hdK9lGut76!J(e@PxM%<*l)zW_ zeA&_@pjQXs#FjUq%%$y;3_dvbNt-G>bgQzci)Fn0d%}Qofb=d7a$@=q`J#KsJ zTQ0unhhF()oc&zB{De%h)#~=UFX&f1697Jr^?&m#zy5{)>UDSA3*0=u^aRO_mp$&Q ze(CFWerf#cC2#n^L!YREcH3*d>le>|$FKa@%j-A&yHD}x-v0wHKKTRVA5VxE{{rJF z4&hTCpWrC+Nq+wieaZF@Jz?XQtpD}+Q}pz9;4`t?e+>o~hYeT0)?txUfJ&%W35lZ^ zx0)Prlerc+GHt62B4$EZck=*ct{>}ap855oSdC|po3aIN0j9k0y2`BWp#1MNVo5#* zi#|eLB~heozd}R^STCI8Cbab1^y#PmVw7DD4cij@2k*9PIv#v#0KO=;7VnlQ*0^aq-bfN@;iZOtGFGwgIshStyoB^!3!+lp)8yvN+^z4; za?es4hNQ{d0*9_^kH3}K{pAvkJ07xf6*${0W{N$J7GVwyeQ(7i3}zZ6kQZPxGAmZrOm3hUoj^&+ z3bN|4asVtYocoQ*jC4RslzSnCoy(0xYDil0v3z&AJCQMa6(IrzpxpOl8N105x#W4n z9YJbI2g8|dyK~PUp3@B*Je#Pkd@w{dO;m~PcR`4vjnhhDd2()6bVqF5gHT|%frztK zUoN-1Iup1iZ&P4ThAOz!>?>zss0q6ffrNPg!E!vCoE%bMq{6($t~zRh@zi|0v{ipEW@4?9UjQard%`-7dR`JttqoE1tO)_IY8m#CRx zxuntb36v)?P_Gn(vfi681W1GT$zzk4q3T=*q?E}XF5*yP+P~)a?{gp?%-pd|M#PIN z^vu)BOsU0S*of?IQFurim>0t!%ykHhRr`0&pT4w6cU?RDY`IVl?|#QG?mhbrulyvO z{lC~4W3`Y&fzx05FFv&QpVoRA$FZ4@u^c2jnr>3&~W$*T1hf!J}g+BPOEp51AEAF@2 zyD$56dfTh5AkzxaLXF3`td(M8aj7KW$byH~U`m1BGZ0c@ubjoIIf2ZO9E2mFE0cNG z)Gk79exf+0j~Rj)EsWN|&=GpGjy7_*RKlLet;ViU_3ef(E&OziYaJfzOb9n`@b5m@ z9rn6e)n^-Gf)fTSXj%rO`UJq40J7dFa*n+KzzJkUu0DUjjgn@?$+8y!vffY#SryT% zP&mt);Eut_tuf${Rkw7w*7XiRM)6ojXSsGy-jt2uP(m2_Q?H6A{!)((gsBqg`TB ziK*@H?|tl{;0|V4Eax#+ZkAoS&YZpO+Lg;^&YkPp)~xV-`nF4HV3EG-B?z;)Lx&-o zaOX9UI8;^Cl-!}3(vZxRh?suD%mN08Ic~*eL)677)nTNGT<_pe#4Nk%Lf2 zNGO%Gp{JbAiNLkEd87n|$B3!{A=oOBh?qWaOYUFdj%(?QCfJO+*UDy1IdaPPpN-Ea z++EAF$K>i18Y(T;Syt;fe-m&cikwy+1!e{VSL`cLaPJ2Qtcu?DBRp=XNL$Z3t9jzg z^Gc!C28_ApI-a8P5DMik0eVNZkm zpI?#}p2>a}1^OZZ6JT!6HV_D-OB!We5mnDQk{X!ZjT9JGh=JCRqbDOGGN`)sxH2aO zTGjbr56}Bsw(8!fBEPcFXLfx^=o4LOeL18$gk{$!STcj-#;wU#+q{*jN}@BV}kXWZbnpZw83eCjyk z@#A>)vwUIqu7CEeKY#o8y!p0IgE)2bE5H7QKm6MN{O$|i^YlsUPxlZ$@p!VM$S3*9 z=y9LM_{{9~Uz3q~U(D&^V|3~SU03n$j^5bNY#L&83IsJD`?E@YYh6+-l!IfnsuFj3 z?wu@6knT_;$2tuxpU=R&5IH=cNG1^0q0D;YQt5Pzb5>C<@MAixW%3$n_@x|Hb{j{L z-T2CV*Dwt7*s5P8T_v9cxwL3McFnh&dQkr_5A1#Qb53rE1|})0_#iR|MY!dxQZP}6 zP~TGwo;$*mmBY-HoGQ3bL4Wcn)mL{*)GOV-pG988 z%<`f$u03EZS3DR`Dvi~eG`!vocO9Wn9M!3cYr){_C^45P-C+Zq=!1{h2QNGXfP)ZG zQ#Y3`T|9H<+-x#CINT>DG8%?{GMjB~Zryk9JW&l(p#{UR4d;O_fE6D8yLAy|S4pp{b`5 zCF^5JFWI^L#K}|nN}Sj|IX^sD93D)kQ&k=MuHKmK?ChFp8io_QC#x85-r0Q7b&^_g#aQa`!VV)hN(rW1`eSmrEgW^wsM6rsht(x#Kjcmx0$7T*nWZe< z;7ka?heShi0cnDhHML8CJEe}21|PsPbbEZ}gx{ip z3IYRCIjTTHo(u*G?qw#R9PX%j6$pJQxIGhwge(H9?gp-7I$Vw5ty6;Q5e{C!Wc9*A zeZmTQ)TLN<(b-`%`j+J!v25UDQj$9)m;iMHJeAk^NP7W_xpg zb%4L}p%;GPCw}?f7yWNfTAc&{y!30n;oNur^C$4fZ~Ms~{ljzL@-z9Bulm}TKlbxK z@-y%H?tlIAbwqjpJAVDc=f36Neg#pkzHJ}-#^K%X_{F`wPrXdGTHXHRKYq{o@A#Et z-~U%SKK(<$Cpn6je$6+Wd-Jb6F8ciR$7f`>|N0CLm~GPaH_G)lRFi2fJnF@(BYB28 zj+L@N7=^Pk1>TI@OQB(8Yq7)D6#M+i5sY_uaY7txj(HMt9C??NDRUj(VMNymN3%c1 zX|-%vI{uD+(aljb>oMlVV--MVfmWsmgSCTqNe{YVNZO@zxLjsr;@$V|fAb4BpdOSm z-O7v{?uL27z1O<^frM$%r-$|qPi<}-wB2)0Po8&bvQvAOV%+jm_j*LrmP!cC5?9@xIbe%RCV1Qv=V}<^+OLw2qDIh!`5up zzPr17u)pVyq3`RaVG$y9t9Iwa?qWG7CJ8}AOx?&$lbLbWgD}ffu(i^Js%Ne}03sF^ zhgVVhp5vO_F?gnexse$S3GU7UFobAGWQpAYH)ESLCIWRH1{qR@%mdY+ z&ty`NgE@Cf z8KF~1X)^M`5Qqq9gp%bxZ3OW;BE;-a>z;B{=cWLgfosWnZ*;))*s7mIxqhR$us82h zde!Gm=Lcq$zxWn;>xU151P2yfUkP7cbyW~EKQ(L2d_{EmaPe88?ce>|Z+n0H!cSVA zy!G`z@l9`e^>@AUx$Dy2u__w?#Fzcc|MXq&{MK)}^*LiT@a?bp<{y6Vxi|duD*(v( zulxruKJ~_5f5-jb{hTb*@T!0Ke>~+6J}%A!0KET?{^%ud_}N!{dWU=4PyXm1p8nDw zdL_0E{onKXzx>+cCs{B2!vFY&({KGWhzH~vlh0_ zfeHabawuxXeV6w(r<1^ZxNM^c6D3DK46NGqxVSexyTKyn4i+#xwMc>A{DDWRs?PlG z7=pQ9+}q#X+WON6_eAP1zu5pD`C_?ri#)X>S2cu?@X$Wq`@q#{-7LEHUe(RXv>y_H z|N8@%ZrPrG&5LIQcP>^zWMgn-?!)oQV2&@x?uUS}KuIK&I=u7Fl>&8;NA?b8O&uj9 zwYS}I?c2Wi)JD|Y4O&iJ&dX&T9HaQu5jj(v2(yjNzH2pUh=D~kB@k_F zY}8df-PjP3VHmpA%H6A~s;lbM&h~RpZJ%wjelK>XwCX(ywq_?%N6o~!0@S>Bs(NhJ z0J(5(l%*ix04Glh0aek>UBo4na=ZhcIY|a{f@U%ih#*92#r&YTr`L>Bxm}S^ zksVd1egHsBaCIhgLRGs20MhlG2EeH(5mHDCglN))cF&)^_|epmV_=7R2IZ12Qxguo%2K#$r!FK7~BEG&@D`qIf5J#NF6Mc zD}03?#z%QbiNn^pAmzU3v2|IUtK4*5WJWz-g3u^w;|}ORB5scT z)|QDowJR&#?}p7L4(ewcyyBLPJFcbQyRd3POlFr?t8TE<8}h=FlaE|ITn)+u25mLf z!~63Xq#II|YuJCKee5A?}Gr26Wfo*fB2ua{{z0~&5!--msh|`f9k&5-t?+l zzhLJ_@|)+s<5w+9e5$IttgFCM>YGI{lH?5$C>o4@b3{{0=dygGk;GI{m? z^~kUO+WCKcyy*D^PWs0?V7~0fe)=yYh4q=D?LX~9$m0iIeDXJr)d!#ADCGRNzx&Z= ze((4b7|CHze^;O0ZvWRbGJKv}@65r(g^mhnf;pKLXOZj=`#893T{QIKVEy<(>q*kI zEYEprX6HbK_)ShnaZCB0;zyic&!YS#$s9{wIFg<&8+-8%aR5b6+JUw2WZChg)Ej@~ zYI|jssuiNs>FncuF+P7X=V3Z?k9CaL~YlZJHw|< zv%i?{&*$!b&*j4}x?!^pMSa#$f(` T%RNU$p4yS!Z_lRznOjZ@X3BhY$$phW`Eo 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%0DQ4Zgj+ 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%0A6bep_* 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 P00000NkvXXu0mjfBbLc? literal 0 HcmV?d00001 diff --git a/artifacts/gui/2025-12-07_22-45.png b/artifacts/gui/2025-12-07_22-45.png new file mode 100644 index 0000000000000000000000000000000000000000..92b4c877e2a6f542a3ee959233a6a4fd9f1e6fd9 GIT binary patch literal 68949 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È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 literal 0 HcmV?d00001 diff --git a/artifacts/gui/2025-12-07_22-45_1.png b/artifacts/gui/2025-12-07_22-45_1.png new file mode 100644 index 0000000000000000000000000000000000000000..df2f637d7d2f7dbed92fc332bcb6bf26e4a25fe6 GIT binary patch literal 64990 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

6aF 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 literal 0 HcmV?d00001 diff --git a/artifacts/gui/2025-12-07_22-46.png b/artifacts/gui/2025-12-07_22-46.png new file mode 100644 index 0000000000000000000000000000000000000000..e9ebd041f4fb424c2ee4ae56e6b82463fccb5e76 GIT binary patch literal 73538 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 literal 0 HcmV?d00001 diff --git a/artifacts/gui/2025-12-07_22-46_1.png b/artifacts/gui/2025-12-07_22-46_1.png new file mode 100644 index 0000000000000000000000000000000000000000..cf92e314cd5c15cfa49627e5b4414d5c35083ab0 GIT binary patch literal 62144 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 l)#`>B$`Uur1 0), + -- единица измерения дозы + dose_unit_id int NOT NULL REFERENCES unit (unit_id) ON DELETE RESTRICT, + -- способ приёма + intake_method_id int NOT NULL REFERENCES drug_intake_method (drug_intake_method_id) ON DELETE RESTRICT, + -- длительность приёма (в днях) + duration_days int NOT NULL CHECK (duration_days > 0), + UNIQUE (prescription_id) +); + +-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = +-- Процедуры (для пациента) +-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = +-- +-- Справочник типов процедур +CREATE TABLE procedure_type ( + procedure_type_id serial PRIMARY KEY, + -- наименование процедуры (например, "физиотерапия") + name text NOT NULL CHECK (default_word_check (name)), + UNIQUE (name) +); + +-- Журнал фактических назначений процедур пациенту +CREATE TABLE procedure_type_prescription ( + procedure_prescription_id serial PRIMARY KEY, + prescription_id int NOT NULL REFERENCES prescription (prescription_id) ON DELETE CASCADE, + procedure_type_id int NOT NULL REFERENCES procedure_type (procedure_type_id) ON DELETE RESTRICT, + scheduled_datetime timestamp NOT NULL, + UNIQUE (prescription_id) +); + + +-- Общая функция возвращения всех госпитализаций и периодов пациента +CREATE OR REPLACE FUNCTION get_hospitalization_periods (p_patient_id int) + RETURNS TABLE ( + admission_datetime timestamp, + discharge_datetime timestamp + ) + AS $$ +BEGIN + RETURN QUERY + SELECT + ha.admission_datetime, + hd.discharge_datetime + FROM + hospital_admission ha + LEFT JOIN hospital_discharge hd ON ha.hospital_admission_id = hd.hospital_admission_id +WHERE + ha.patient_id = p_patient_id; +END; +$$ +LANGUAGE plpgsql; + +-- Триггер: запрещает новую госпитализацию при наличии незавершённой +CREATE OR REPLACE FUNCTION check_active_hospitalization () + RETURNS TRIGGER + AS $$ +DECLARE + open_hospitalization boolean; +BEGIN + SELECT + EXISTS ( + SELECT + 1 + FROM + get_hospitalization_periods (NEW.patient_id) + WHERE + discharge_datetime IS NULL) INTO open_hospitalization; + IF open_hospitalization THEN + RAISE EXCEPTION + USING ERRCODE = 'P0001', MESSAGE = '10001: ACTIVE_HOSPITALIZATION_EXISTS'; + END IF; + RETURN NEW; +END; +$$ +LANGUAGE plpgsql; + +-- Триггер: запрещает перекрытие госпитализаций +CREATE OR REPLACE FUNCTION check_hospitalization_overlap () + RETURNS TRIGGER + AS $$ +DECLARE + overlap_found boolean; +BEGIN + SELECT + EXISTS ( + SELECT + 1 + FROM + get_hospitalization_periods (NEW.patient_id) + WHERE + discharge_datetime IS NOT NULL + AND NEW.admission_datetime < discharge_datetime + AND NEW.admission_datetime > admission_datetime) INTO overlap_found; + IF overlap_found THEN + RAISE EXCEPTION + USING ERRCODE = 'P0001', MESSAGE = '10002: HOSPITALIZATION_OVERLAP'; + END IF; + RETURN NEW; +END; +$$ +LANGUAGE plpgsql; + +-- Подключение триггеров на hospital_admissions +CREATE TRIGGER trg_check_active_hospitalization + BEFORE INSERT ON hospital_admission + FOR EACH ROW + EXECUTE FUNCTION check_active_hospitalization (); + +CREATE TRIGGER trg_check_hospitalization_overlap + BEFORE INSERT ON hospital_admission + FOR EACH ROW + EXECUTE FUNCTION check_hospitalization_overlap (); + + +-- Проверка: выписка должна быть позже поступления +CREATE OR REPLACE FUNCTION check_discharge_after_admission () + RETURNS TRIGGER + AS $$ +DECLARE + admission_time timestamp; +BEGIN + SELECT + admission_datetime INTO admission_time + FROM + hospital_admission + WHERE + hospital_admission_id = NEW.hospital_admission_id; + IF NEW.discharge_datetime <= admission_time THEN + RAISE EXCEPTION + USING ERRCODE = 'P0001', MESSAGE = '10003: DISCHARGE_BEFORE_ADMISSION'; + END IF; + RETURN NEW; +END; +$$ +LANGUAGE plpgsql; + +CREATE TRIGGER trg_check_discharge_after_admission + BEFORE INSERT OR UPDATE ON hospital_discharge + FOR EACH ROW + EXECUTE FUNCTION check_discharge_after_admission (); + +-- Триггер: нельзя создать выписку, если уже есть выписка по этой госпитализации +CREATE OR REPLACE FUNCTION check_unique_discharge () + RETURNS TRIGGER + AS $$ +DECLARE + discharge_count integer; +BEGIN + SELECT + COUNT(*) INTO discharge_count + FROM + hospital_discharge + WHERE + hospital_admission_id = NEW.hospital_admission_id + AND hospital_discharge_id <> COALESCE(NEW.hospital_discharge_id, -1); + IF discharge_count > 0 THEN + RAISE EXCEPTION + USING ERRCODE = 'P0001', MESSAGE = '10004: DISCHARGE_ALREADY_EXISTS'; + END IF; + RETURN NEW; +END; +$$ +LANGUAGE plpgsql; + +CREATE TRIGGER trg_check_unique_discharge + BEFORE INSERT OR UPDATE ON hospital_discharge + FOR EACH ROW + EXECUTE FUNCTION check_unique_discharge (); + + + +-- Триггер: запрет на запись числового результата, если есть качественный по тому же обследованию +CREATE OR REPLACE FUNCTION check_numeric_result_uniqueness () + RETURNS TRIGGER + AS $$ +DECLARE + qualitative_exists boolean; +BEGIN + SELECT + EXISTS ( + SELECT + 1 + FROM + qualitative_result + WHERE + result_id = NEW.result_id) INTO qualitative_exists; + IF qualitative_exists THEN + RAISE EXCEPTION + USING ERRCODE = 'P0001', MESSAGE = '10005: QUALITATIVE_RESULT_ALREADY_EXISTS_FOR_THIS_EXAMINATION'; + END IF; + RETURN NEW; +END; +$$ +LANGUAGE plpgsql; + +CREATE TRIGGER trg_check_numeric_result_uniqueness + BEFORE INSERT OR UPDATE ON numeric_result + FOR EACH ROW + EXECUTE FUNCTION check_numeric_result_uniqueness (); + + + +-- Триггер: запрет на запись качественного результата, если есть числовой по тому же обследованию +CREATE OR REPLACE FUNCTION check_qualitative_result_uniqueness () + RETURNS TRIGGER + AS $$ +DECLARE + numeric_exists boolean; +BEGIN + SELECT + EXISTS ( + SELECT + 1 + FROM + numeric_result + WHERE + result_id = NEW.result_id) INTO numeric_exists; + IF numeric_exists THEN + RAISE EXCEPTION + USING ERRCODE = 'P0001', MESSAGE = '10006: NUMERIC_RESULT_ALREADY_EXISTS_FOR_THIS_EXAMINATION'; + END IF; + RETURN NEW; +END; +$$ +LANGUAGE plpgsql; + +CREATE TRIGGER trg_check_qualitative_result_uniqueness + BEFORE INSERT OR UPDATE ON qualitative_result + FOR EACH ROW + EXECUTE FUNCTION check_qualitative_result_uniqueness (); + + + +CREATE OR REPLACE FUNCTION get_results() +RETURNS TABLE ("Пациент" text, "Обследование" text, "Результат" varchar) +AS $$ +BEGIN + RETURN QUERY(SELECT pa.policy_number, et.name, COALESCE(qr.value::varchar, CONCAT(nr.value || ' ' || u.name)) + FROM patient pa + LEFT JOIN prescription pr + ON pa.patient_id = pr.patient_id + LEFT JOIN examination_type_prescription etp + ON pr.prescription_id = etp.prescription_id + LEFT JOIN examination_type et + ON et.examination_type_id = etp.examination_type_id + LEFT JOIN result r + ON etp.result_id = r.result_id + LEFT JOIN qualitative_result qr + ON r.result_id = qr.result_id + LEFT JOIN numeric_result nr + ON r.result_id = nr.result_id + LEFT JOIN unit u + ON nr.unit_id = u.unit_id + WHERE et.name IS NOT NULL); +END; +$$ LANGUAGE plpgsql; + + + + +CREATE EXTENSION IF NOT EXISTS pgcrypto; + + + +CREATE TABLE person_account( + person_id int NOT NULL UNIQUE REFERENCES person, + login varchar(60) NOT NULL, + password varchar NOT NULL, + CONSTRAINT empty_login CHECK (trim(login) <> '') +); + +CREATE OR REPLACE FUNCTION check_password(_password varchar(60)) +RETURNS void AS +$BODY$ +BEGIN + IF (trim(_password) = '') + THEN + RAISE EXCEPTION 'Пароль не может быть пустым!'; + END IF; + + IF (trim(_password) <> _password) + THEN + RAISE EXCEPTION 'Пароль должен быть без пробелов!'; + END IF; + + IF (length(_password) < 8) + THEN + RAISE EXCEPTION 'Пароль должен иметь больше 8 знаков!'; + END IF; + + IF (lower(_password) = _password OR _password !~ '[0-9]') + THEN + RAISE EXCEPTION 'Пароль должен иметь прописные и заглавные буквы, а также цифры!'; + END IF; + + IF ((SELECT COUNT(*) AS letter_count + FROM ( SELECT regexp_split_to_table(_password, '') AS letter) AS letters + GROUP BY letter + ORDER BY letter + LIMIT 1) >= length(_password)/2) + THEN + RAISE EXCEPTION 'Пароль не должен иметь больше половины одинаковых символов!'; + END IF; +END +$BODY$ +LANGUAGE plpgsql VOLATILE; + +CREATE OR REPLACE FUNCTION create_person_account() +RETURNS TRIGGER AS $$ +DECLARE + role int; +BEGIN + PERFORM check_password(NEW.password); + NEW.password := crypt(NEW.password, gen_salt('bf')); + + RETURN NEW; +END; +$$ LANGUAGE plpgsql; + +-- Создаем триггер +CREATE TRIGGER trigger_create_account +BEFORE INSERT ON person_account +FOR EACH ROW +EXECUTE FUNCTION create_person_account(); + +CREATE OR REPLACE FUNCTION check_enter_in_person_account(_login varchar, _password varchar) +RETURNS int AS $$ +DECLARE + _hash_password varchar := null; + _person_id int; +BEGIN + -- Получаем person_id и проверяем авторизацию + SELECT pa.person_id, pa.password + INTO _person_id, _hash_password + FROM person_account pa + WHERE pa.login = _login + AND pa.password = crypt(_password, pa.password); + + -- Если запись не найдена + IF _person_id IS NULL THEN + RAISE EXCEPTION 'Неверный логин или пароль!'; + END IF; + + RETURN _person_id; +END; +$$ LANGUAGE plpgsql; + + +-- person +INSERT INTO public.person (person_id, middle_name, first_name, last_name, birth_date, gender, address) VALUES +(1, 'Иванов', 'Николай', 'Владимирович', '1954-10-26', 'male', 'ул. Чайковского, дом 32, квартира 46'), +(2, 'Сидоров', 'Владимир', 'Анатольевич', '1956-12-30', 'male', 'пр. Мира, дом 37, квартира 47'), +(3, 'Кузнецов', 'Пётр', 'Сергеевич', '1978-04-12', 'male', 'ул. Кирова, дом 29, квартира 55'), +(4, 'Петров', 'Иван', 'Владимирович', '2005-09-15', 'male', 'ул. Чайковского, дом 16, квартира 108'), +(5, 'Иванов', 'Николай', 'Андреевич', '1973-11-16', 'male', 'ул. Молодёжная, дом 28, квартира 41'), +(6, 'Иванов', 'Егор', 'Сергеевич', '1987-05-21', 'male', 'ул. Гагарина, дом 3, квартира 92'), +(8, 'апраоплр', 'апарспмориолтьмтич', 'выавпасрмо', '2001-11-28', 'Мужчина', 'вавпраоплдожропав'), +(7, 'впа', 'апр', 'авыпро', '2005-11-28', 'Женщина', 'впарплоро'); + +insert into doctor (doctor_id) +values (1), + (2), + (3); + +insert into registrar (registrar_id) +values (4), + (5), + (6); + +-- patient +INSERT INTO public.patient (patient_id, policy_number) VALUES +(7, '3456789787654322'), +(8, '1232567687654231'); + + +INSERT INTO person_account (person_id, login, password) +VALUES (1, 'Иванов Н.В.', 'Иванов123'), + (2, 'Сидоров В.А.', 'Сидоров123'), + (3, 'Кузнецов П.С.', 'Кузнецов123'), + (4, 'Петров И.В.', 'Петров123'), + (5, 'Иванов Н.А.', 'Иванов123'), + (6, 'Иванов Е.С.', 'Иванов123'); + +-- unit +INSERT INTO public.unit (unit_id, name) VALUES +(2, 'мг/л'), +(3, 'г/л'), +(4, 'ммоль/л'), +(5, 'мкмоль/л'), +(6, 'ед/л'), +(7, '%'), +(8, 'тыс/мкл'), +(9, 'мл'), +(10, 'мм'); + +-- disease +INSERT INTO public.disease (disease_id, name, icd_code) VALUES +(34, 'Губчатая энцефалопатия', 'A12.3'), +(35, 'Красная волчанка', 'A12.5'), +(29, 'Проказа', 'A12.4'), +(36, 'Грипп', 'A12.2'); + +-- syndrome_type +INSERT INTO public.syndrome_type (syndrome_type_id, name) VALUES +(1, 'Лихорадка'), +(2, 'Боль в груди'); + +-- disease_syndrome +INSERT INTO public.disease_syndrome (disease_syndrome_id, disease_id, syndrome_id) VALUES +(1, 29, 1); + +-- drug_intake_method +INSERT INTO public.drug_intake_method (drug_intake_method_id, name) VALUES +(2, 'Внутримышечно'); + +-- drug_type +INSERT INTO public.drug_type (drug_type_id, international_name_ru, international_name_en, international_name_la, brand_name_ru) VALUES +(3, 'Корвалол', NULL, NULL, NULL), +(2, 'Парацетамол', 'Paracetamol', NULL, NULL); + +-- drug_type_prescription +-- Таблица пустая + +-- examination_type +INSERT INTO public.examination_type (examination_type_id, name, category) VALUES +(2, 'ЭКГ', 'Физикальное'), +(3, 'ЭЭГ', 'Инструментальное'); + +-- reference_value +INSERT INTO public.reference_value (reference_value_id, examination_type_id, gender, age_min, age_max) VALUES +(4, 2, 'Мужчина', NULL, 18), +(5, 3, 'Женщина', NULL, 18); + +-- hospital_admission +INSERT INTO public.hospital_admission (hospital_admission_id, patient_id, preliminary_disease_id, admission_datetime) VALUES +(21, 8, 29, '2025-11-30 20:31:06.045'), +(30, 7, 35, '2025-11-30 20:45:06.045254'); + +-- hospital_discharge +INSERT INTO public.hospital_discharge (hospital_discharge_id, hospital_admission_id, discharge_datetime, final_disease_id, reason) VALUES +(1, 21, '2025-12-01 15:59:02.624121', 36, 'Ложная тревога'); + +-- result +INSERT INTO public.result (result_id, examination_id) VALUES +(5, 3), +(7, 3), +(8, 2), +(9, 3), +(10, 2); + +-- numeric_result +INSERT INTO public.numeric_result (result_id, value, unit_id) VALUES +(7, 1.00, 7), +(8, 1.00, 7), +(9, 12.00, 3), +(10, 1.00, 3); + +-- prescription +INSERT INTO public.prescription (prescription_id, patient_id, doctor_id) VALUES +(2, 8, 1), +(23, 7, 1), +(24, 7, 2); + +-- procedure_type +INSERT INTO public.procedure_type (procedure_type_id, name) VALUES +(3, 'Физиотерапия'); + +-- procedure_type_prescription +INSERT INTO public.procedure_type_prescription (procedure_prescription_id, prescription_id, procedure_type_id, scheduled_datetime) VALUES +(3, 2, 3, '2025-11-29 11:11:25.048055'); + +-- qualitative_result +INSERT INTO public.qualitative_result (result_id, value) VALUES +(5, true); + +-- reference_numeric_value +INSERT INTO public.reference_numeric_value (reference_value_id, min_value, max_value, unit_id) VALUES +(4, NULL, 1, 7); + +-- reference_qualitative_value +INSERT INTO public.reference_qualitative_value (reference_value_id, description_true, description_false) VALUES +(4, 'Отсутствует', 'Отсутствует'); + +-- examination_type_prescription +INSERT INTO public.examination_type_prescription (examination_prescription_id, prescription_id, result_id, examination_type_id) VALUES +(7, 2, 5, 3), +(11, 23, 9, 3), +(12, 24, 10, 2); + +-- syndrome_examination_type +INSERT INTO public.syndrome_examination_type (syndrome_id, examination_type_id) VALUES +(2, 3); \ No newline at end of file diff --git a/migrations/account.sql b/migrations/account.sql new file mode 100644 index 0000000..2e19b4f --- /dev/null +++ b/migrations/account.sql @@ -0,0 +1,94 @@ +CREATE EXTENSION IF NOT EXISTS pgcrypto; + + + +CREATE TABLE person_account( + person_id int NOT NULL UNIQUE REFERENCES person, + login varchar(60) NOT NULL, + password varchar NOT NULL, + CONSTRAINT empty_login CHECK (trim(login) <> '') +); + +CREATE OR REPLACE FUNCTION check_password(_password varchar(60)) +RETURNS void AS +$BODY$ +BEGIN + IF (trim(_password) = '') + THEN + RAISE EXCEPTION 'Пароль не может быть пустым!'; + END IF; + + IF (trim(_password) <> _password) + THEN + RAISE EXCEPTION 'Пароль должен быть без пробелов!'; + END IF; + + IF (length(_password) < 8) + THEN + RAISE EXCEPTION 'Пароль должен иметь больше 8 знаков!'; + END IF; + + IF (lower(_password) = _password OR _password !~ '[0-9]') + THEN + RAISE EXCEPTION 'Пароль должен иметь прописные и заглавные буквы, а также цифры!'; + END IF; + + IF ((SELECT COUNT(*) AS letter_count + FROM ( SELECT regexp_split_to_table(_password, '') AS letter) AS letters + GROUP BY letter + ORDER BY letter + LIMIT 1) >= length(_password)/2) + THEN + RAISE EXCEPTION 'Пароль не должен иметь больше половины одинаковых символов!'; + END IF; +END +$BODY$ +LANGUAGE plpgsql VOLATILE; + +CREATE OR REPLACE FUNCTION create_person_account() +RETURNS TRIGGER AS $$ +DECLARE + role int; +BEGIN + PERFORM check_password(NEW.password); + NEW.password := crypt(NEW.password, gen_salt('bf')); + + RETURN NEW; +END; +$$ LANGUAGE plpgsql; + +-- Создаем триггер +CREATE TRIGGER trigger_create_account +BEFORE INSERT ON person_account +FOR EACH ROW +EXECUTE FUNCTION create_person_account(); + +CREATE OR REPLACE FUNCTION check_enter_in_person_account(_login varchar, _password varchar) +RETURNS int AS $$ +DECLARE + _hash_password varchar := null; + _person_id int; +BEGIN + -- Получаем person_id и проверяем авторизацию + SELECT pa.person_id, pa.password + INTO _person_id, _hash_password + FROM person_account pa + WHERE pa.login = _login + AND pa.password = crypt(_password, pa.password); + + -- Если запись не найдена + IF _person_id IS NULL THEN + RAISE EXCEPTION 'Неверный логин или пароль!'; + END IF; + + RETURN _person_id; +END; +$$ LANGUAGE plpgsql; + +INSERT INTO person_account (person_id, login, password) +VALUES (1, 'Иванов Н.В.', 'Иванов123'), + (2, 'Сидоров В.А.', 'Сидоров123'), + (3, 'Кузнецов П.С.', 'Кузнецов123'), + (4, 'Петров И.В.', 'Петров123'), + (5, 'Иванов Н.А.', 'Иванов123'), + (6, 'Иванов Е.С.', 'Иванов123'); \ No newline at end of file diff --git a/migrations/backup.sql b/migrations/backup.sql new file mode 100644 index 0000000000000000000000000000000000000000..6a134d8e73081b38345f75f62d10217c7d0f1dcb GIT binary patch literal 92055 zcmdsg33y#qweW4INLwn%RAeZJQb+=6dUK~Fg#u}M+orTh$iP^7xlL}`K$@gCNohfp zf>pFAisHyaRDAmMJzjwp3Y6kQ!5I_fsZV4oqrW)o!vXbQYwvyb+4DVjDF65U7nO#1hsJWG$U*Rpeij+AnF%ku zdzN{Fsw)Cu^xCLJcZcPNYRq56qZ*+a8FFT$c8d+aImK!HX4z91M9?NC(eH${P+3^k4 zbzU|6Bh0BSnU802T#49YsaWJ-z@nkCG1(A}nA8J>ytJjKWl2kSIzrIC0iLvWrCWN^ zp8vvAl*+rXt!IVTlV07q3X3iF#&a7-hqB|jsOM`B*9mV`M{CQfbf&YbUBJ32BpzCNEDvnm{+6dH&S zvxr9-_IU#n!+qm}Bg11ZyMl(`!)>0l z7E>&LCwBr=V-t;m#x_Nchx)lKSup1;wuVNOTR)N?%#DHbnb=5#*K=_v)7(u^nu!G; zGIrNH0C+9kps~HHy_%UGe5yw`Y#kfy%MMl7(eFdqbtC!g_(*=M|736&+{(m8aDPy0 zCRi$Q$wZbR+hhVJWKxA7EFnL_Der$ccorjl!us5BKXd^G9;MAZ5-O-X*_a*5`P2{O z$Tvbab_N>V0-W;cyw^@=EJZq_4I^WtgCL1a|KM2PhHQR)E|bq?$3RmIq;E8n?uMaq zqd!NSHC2znjidRI%{kNtpF{cFz{HrZ8Vx2Ex!WtBYxmi?7EeUp4k%3w50XA;Jhufq zam|h{Ff&T4rt(HGG@l(CbNygXXuH%{=9@U80WO~jHRuS*hq{$ylKJ;&Lqm+HPTz)H z-<6pxc(Kj7j4zYHs|l_(wZssY^|rV6aHqcs`V8h>{1?85al`Vu(mlOh?cE;4BkR}a z@7;8WH^YOurIS+c6_TE*iYQ47ho(|7M^_c`P zbh4(GUeAg&Wdyd-)za3T1|GDgJ5hWRM!nq-OM2<9E(mfla;ff&MxzZ7d96-&ccVPu z(d0)b_f2h^d}MOZ)b*1)Cm)*JGkO2y&Z+mp_nW=RUGV5(_;26jy_5SqC`H~(?w))Y zOM8>Mr`|ug+k*n|1FB8l15d7-x)BRZ?u72r=R&%DDZ~uHcd8{Gu=C8B@b1i+^XEhF zk_06tUbZ-$E8l`@9Tt>|oD67Dtq+8m9l&8nwtwRw#B(FVMk9JlAtQ2tE60vFRvDsh z_ydLv8%G^B6jTYc6qPf0j!=j=C8O~TCEx@pBb$O=C^Og(x`)POe8<%vO9V{fsGYS~ zL9DVS(EwHwU*s)qgGjceYk4}eB)zPoE1hXsy1K0!1LL9<8%IYD#STc+)T(^lKFy}v z$>wNdq?PM7^y{F}gTv_TFsR7(^^HsnkJn(R0X;`9?`_WJx56N^&eI;5x{$9F(tcZm z85lVZ4(pB7c`$e!8@p;G-><){WRm!96}Sb;H#Azya=_-0Lw0LgC3h;4`PLgZI=i-b~)3p9J^04_*Y$ z_Cv&QXt(8!X6reSI`WO7M+%W{BR~oGB9XwY)JKF#65s^Ji9jiz7kiZ98o* z#$t~Qg=#o|By3L%7PKvyvN0CXj!Qy>+fXAAK6`$MM@ zLr3*50D!O&I-ebr4|vcVc1wFE9|k_twy}RgZa*}2)5*+8{hnvW%o(iH30fBWo-5rZ zT3KZ+->R!^Rt+&Sy7Tuku+_q{})AG%3zTNC%Q6W%-aV88I`e1-Q zHZe4wfkEGYVO-1gSI&M%LMF_33ROM1$UDCm)Vv4O{DO3*E8X3@swdO33MQJD zUYw!h)eMA`nVuDG-SE9-bz3{Jh@vf_Kw#<6oAPbpbekGIGmUMYb#@TwhHiToMm^Xt zMnk;eyW#u&eh7+RFl4&NfWuI3c>VYWk@B;=rqUYUGr1SZN4oE(p%~5wcug1?VkG#W z4TX`ba(NL02uyuhdmUZEmy_S+RbLui(0o~V(MaqOFr>jb30Fx}3DX!XguNGdh4UF0 zYr@mJr)~hu@0r?B=fS)OnJRe@+3k^;lJ~%*#|{HqYgjzr+R@wIQ*(MPP9hHF#&MuU z23Ip@%)sHaSHtG3aP29#Wi&H33Vt~=K9U*Ft{ch)Ou=zxftQ>xGx#zKpn%=p;2D#{(^j8HRi1O$=#)D92++=YMo zssKi^-GjjcO64BEti($&7dk(*#NF@v+7j@~;2FyId&k)PUbG<=i=4^_)M8H)E)F=g zP#jPIWI3^b-&Op-iUa)iD;5Lz0G0k`Aj2z1PgOp(Aw7{e&k3@0I$ZPW^ur@>vtsSucpu06qRw|68>bwOFFmZ#SG( zeaeipy=diaA|Xzu%3*NP5${5`=Ig3bzOtWTQ+5b+8zXa2*4Uzl!)k8m=S&I5{1>tLyDI0Ngy z<2BXm2C8eJ;tZlz=EWV{&1H63X1dFl+bI^g!3Lp3Gm%?=ZXk=}bJ*sPAuOrEWnz=u z4hC2jx#>Uv9PAPTKwNfg6_c<>9f^2tt5^5JrleJL6_l=v2CJQnn+TIF914}E`j$O3Lyh%IG9OmO&|msV>*ssOR&+kolT}%onG029jVUn2c+(K8d zq2I7jO5m776Hd3cfvyUzN-yj2R(7c|8M^ldM{DYX|kp3+ko- z5%z9n#z(xe`bZ?#i*4oOB{o5_9Z;Hkm6Oj{umw7m^GqMr(R*m~nZXJ(D4V!PjX=lFx z3C;;*po{eZ)p;AUTf_%Jq{|}fqC0)Rg)?9?FC2lWp^ewndZ&9eeq#%~pj1O`?V?4{ znCMGzf0=RAUkoMX%jjf_jL>g4MotGLK_Qe8Ffk7doE0;+j;wFS13_vS`=QdO?c%IRlYcJ7L9(`j(2vV zsj;~^9wUc-U|ti>M&!tW91>E~!%UArE!OLjr~amPR-7G;Vc#$uVYWj~JK+uitOw^j_UPEnPkIlo{R0-_{N= z@pKn1a?(fb9Ug3_xS(ZKFP%@r?=2Sv-&|mfa(S8 zvk=q+Z?We9l1_^)grY78!egrHcsy7?Ov|*oQ4z*DMjI|l2o9^B094#oU5HYfopWR1 z2G1c4_Lph-DTPPR0u}V5T7F}!iJVdEAL)Ywr)n>aVm9{Dq_l74#44Zpeq%2j+X@2Bvq=db$~bE3i}$!u*)(m6Phtr zF1ER$Y#GfBWs7YtKT$?=`3W`*JrQ)$;_y*wx+|d?j(w%0kM;e$?YCk!f2Ba-r`89@ zk`asnxYZN!a4H8>B*Do96*cFlNVsE z!*5><#5nvm5l|pB+A*8GG!~`KnMt)gpPW>Ki@yV=^rI;k3|z@@o%3H@Bvc*rk6=>8 z8srhw#oD5`7N6VWyl|yNp8At2%JfzL$XE_ey^^C#hF5ruiLB9~(}Nw8N)dP(1iE%? z`zIjD4Cc4#&u$&FAY$wWBr*|I*^AW>?9cXUqA&~1h;VvF8J>uh3RryS!46600dd;c z;Q^&pW!)YF&2qRy#ofKZ^wHq%U(K^F9DQ-K2QQh+LWG9;0N9@ zE(2T(I7SIC8>YH+!g|ZNBB3QlZ&`|D94_<*AiIzY4Mn%zuS&{7ovZ}0+_{3Jnj7n7 zpoxBDXWQ7^*w{p73DvC;s+)ZZs+-)bT8}wc^|9S!VH|7JU2PC05#YY&(Z98SeP<){JE9#H6-H&M%(b~iEh5S|p1CXOm> zOr3Z5Kfn$8Q5Ci+nuy?-MMX;TbgEDJ0aOU%QzRe;2c!5-OV|^x6yH+YKy^qvxMiR~2d#|o^a38_7;EkA>VmBWnVvStm)Fy>x|5Cj z%u5}5ySlZ3%;1CGFTB^Ra;QNAS>n)J<_Qd?(}fl%c_*M_agxPAKJY%#y2Mconz~Rz zy1=9wYNU-W5SKWL!G|O%zrZn|AdV$HI<<1Gj7E_h^(3B$O%0E~gX zZ&nCc*xiLdQx{4|cb8Jv0hSeZcOmd8)7^z=!S3#O<-pzXM_}pYxx17)TK^^0er5pT zZmp(RBR$a|B?(hQw{1|)3p3131<8I!BECbuY>^vBZn21 zrRs03)$#_g(uM^m1}?x^hFBB45XT&F8%f#@EMS=oOhHfBrx4VzL*=Xv3sexS9jZ_$ zEL@HV8*rKT@=?Z?Xdi68yTPCLR(~r~SD5~Req`qaSEwZ8#F_hAL$fBUcC;TV8-0|N zYdNGnS@I*-q@uNoDfl@(^drDZK|%fDcAN37EC(|?l~4nh60NRT(gFA2kkh#Yfm%#A zQ!RTkb8jKDrbK}$0{OWw552dDHbgK~VXd-X)^PBqKr(z3#>~hB;lPh_&j5ssGk+#@ zbY_MO?_z3rx7--sSsCe=r&|pKm`AN93bb&I77FrTGZG11B`grAVcCm-9sS6b4C{=k zhRC7tN}SbG?O4zjY4%*K<6ALwHU3F;`#92%Bn*@Fw6CK(q)h-weC7eddVD6LqpL_j ze)w6a7icB;sk1E_@!+}GrZi;=xLanPJ_*$lM<>kJgiNs zGbSsHHW`Z94*SdjVHW!=K$&iWPX&=1X2flY|K0E|IXMB%xTHFU&%MMh)fq`AnKC z+YgVah-bz^PEqdah^kqtC zGY8(aclx5K7|y!vLi+rq>gU>wKEFJrfv*Zh%FobCSRp~D;lEQ9uDtFe zsUAi92hd4BnmdE*Fz3Uo024;9j~MxCjbUzss@51r0--cOAs%>TKNAqN#4&}@D_yVE zGtVoHdL5ea4i(0$4nwN2L@*UV0c{l&l<7g4im7g-cnz?pA6YRQo0}k`5U%p;S)0`E zbv=|a#Ws3P)~iC;hG{RY{T`hzW;rM1Zq2;-t+%9WPC%t28c}*P3><=b;-qj>il*>{ zJ1BE`xSSd07uj?=L0)Ci7XgZiMV9KEPd;!0)Xp%L1Z9G6pQrI5%aWo#cFwr-@xL^{ zwBT78F8|hNvJ&fo4mPDotQRydO4`WjkHb`%o6{PIV!7QfjI1Fwjd63XScY6QU0~MN zL19LN6?P(1t7w=e4cjmhT1vZEkBuVCA*lm_64lEeQux0WqyDvB-Qeod!{BXzl2OI* z79O{Xk!r=Nm9~w{>K}zA25RV8xQrKkfWH7DJj`y99|}W5g-ThtH8nm=eqAV}`=t*7 zrv4CGKg%O^vRi7Iz)t~Q>SGY4-4cbY2=!MEp(Y~OYbeb^?n~9VTBeC^hssRcYQV0- zP`|%fK^AU&GzM8JLh5&lpe}-t!-u#!Wpth~%qoKYjzDV@5NQsyRI1ePmQYJ62H7H2 zjbMx++$etXH?9t@o&yT#M-8?b<4xq0HC(^~_h99-T26{I)HC}WR)KpP_T3aLkcoj4 z0g}lmSv_4B0*u24POs8R@Kd9-IZ8N5V?Z@d>W3O;GBIN0G`hn_(UBT_DB*&6O^+f~ z85X=^XF*dlSt4R#Fpq{U{zsVf*ZmLSgaqNh59xS_7zQ1knPGj4dPHlL(YN43BO@K2 z#J)sif}{=6XrUmvY?)p{T?+eyRdJdjvCBK)El-&vYC4V&Rdae56gHWY6#%m^{@!3d zG`LV(wz``IfP(IBcmpaNU0oQ z&;4+V4_hg}LQK_5D3v->e=?x%U^gOJB8x52^zR(3jzw_cK&DInMtf#MzP?WfB2c}I z3_Ub)gi7nI>eAHceuwvAkG|U$@IwIEJ2o3s9yR8KBGL> znNVHle!!f5RJ(74D_8It&V8s}auS}K%pJ=zE4NLVgf?yh0G)t3%p#6~Y|oqAxnSz% z$qz4>{LiV6Ol~`M?ZV5>;5+q5>S4Ao#E|_IfzZoRQvTQrFTv6s0iscs{Wqz{5T2*} zhMzji>A`72I%A+E#JMq$fNJe(?E@d)RQsGOgo@6{kfBXXT^?vRS~BLQRLOU3V8$_m z*=|)RT1bNh{Ji(&*ND@z49&XYNsSs;K9B?DewMHuiy$Dv52TR~8kN)fnKMouXvpGN;T zaRw+e`gztOC(PGKa~Y8IAW|9|Pk&^T)t%6URaTgLMTROHiuN9waLY@tVZ_rQvkMhO zeVJ(x6^+u~BaW4kTN9I4v;SL>+jDlg!HFO#4HFd?8wltYb)7=I!j1s)>60_|6X-$}OT8GIA*XIjFq=k5H4Iym>hag}%MkjKh0zAl8X zgb{)aSeJ;>N?~guB9v;Gur(OWB?`Kt!Dv7YMkBRZDVu>k=Tvqv_FFwW{!@z#VV7$Y zy^2j8_j~FCqn~s2Nh$!D8S2|YK29sIJt(G6QY#n6ts=Gt=UR!Jz)z9iT1uCnS>@Ce zZ6v$3RLo_|5Z@}Ard!_QiYkllPXtszt;M2Bn@&3v>uF6C%3Ps1(G3bI%qpEt*k!I# zQ5o4Y8;!HLF|O|Xc+nzzI8y=#-Y~5XKYYsb69kv@@kd5Gb;TnFsFH)#-xsn~Lk+_t zqrF<<5xu%BJ^el6SP{8FR(`+vzUw|HEZ8$Vte$c;ZLU2YtNg(v)dXt@P7 zIAeoHCCQCf4})VxJ@MEv71Nk(T=6@i3uUz> zTjHRco{^Q}g$-c{rXiz{rKr)}W<~fK^ZPKySMB7`Pwae6(fhAN|LTcfj5dJFZ6c`> zk74P@KU5=YmIBtzZvl$bp8`Gx-k+x+#5x;$kpmmo!p#XZrcjsu_gmzECnVw# z4~UR=pn@cn{g8Ud@G*sSSr%e-l>_3tLVid=MEPozNr!?Mmxl> zcBmFtzZ)&_d<8isGNo=oyeeXgaV8ho%tLHZ+aC2lR{1nG$4Lx8_ZEOy*cKPvC%R$) zR$H1vf zSWzp{nMt)}&5~Xf(s#MA{LQHA!M+tK3X^IUz^5YeNHBRMm^`$V=^tC=(U^>pQ_i^H zCEA9P=XfwkpC$xFdqbQp~Sw>w>4^y5KbU zM}E+ab7bL6zGZSI6rdUbc{^GNOkpJwH;1-%bZX0GH84nG8Nlj1x`OOqAX!TjEsTx# z55kR{#qWG%i&RxNttH4uBGnc`Y&Y<^DZ0o^QLyC0N#mw5*k8w&z3^}0McKsCZJt%{ z$S`6LGZU*^I_4%3=eZ@JvAf6kdHiy*j?p>Ws>MFmwI-~cmx;M4Xj3WB)^NNUG6^oN zO@Ys(%2+Oa3A$0C>T;jHGc5FJ_Zzv%+HN9?bSjh@GPQ_AU`|r)G9%;T+_3TSP`1vK zuMsNKD%ny?)xY>GSzuv_`+5;Kf5^ry(cAEaDKR8wq8A?#$!iaSwH{)@aP0=zFq%v^iB6$cUFowaZekP8pIh@I zyLoesq6~aCl+U(%HTpBk3b@oJH;iX0>u`$8koUOG<4|}yfpR&*Ca0@D?{g$+;fOuM zs+%KZW0>GgIQ78}$jBtS$4ag=gM9WTE=cx%%>tOtq9UB=gmpyC_xav1PdyY4; z2L|WnjErv9v?|KtpFd^eu^Pb^$Z@nfKin>tsyLltsyZ*ryv5thRH=Cr-Q=95ki#+) z!JXuyW{XJ@%cUbmN0C+Ad^%=Z=#Wzsy2-$ii|EhU40#QoT(5&$?|D8#R6RfYV4cVF z&OyJ=Qw-L5^t2zEFG(L*HraI3Y}F$^*(np**35El@|POP&tz#@IuIsJIERKvvbce> zf<1PaD6m|zQcRkIeM~ElGLdCTv*jkLT_p-ki?0II=)IDlu$2qf>2!P55jjTQLKAt` zY(#DXTQmawDN`EQ22-d!y2bHgxgtw4M{0E&>tcNf}01!Rvw6Q zcJM(=BY?;GVT2VpzzoT5P_8y4Xr9EXzxv#mYvG3Fgua^tYNxCS+k;q1J^5=KKnQ&? zJ#Y`5GX4Q4-pd@Cvz3CX=m2x?hnwlw&k4IJZ_s4Vj|=mo#-Quvq90=;qs>10$6C;r z5C6Jx$2nQqcIg>lA+Qw(kL6RrmKCZ#4Fx`apDunU5NRb@c^YT|1F{!UB zAh-mZ-T0A+4e@1zU=!detZB2s1&_c`!E}c!E`=gDeWv z@cE}oL_%!hzbdt!nSTdjO+NS_8lgYQW^?0#6|$zn&nv-3ak2;y!Oh;?=~e009&dDg z2BwR$5Ovp&<-#0+sq^BgI*+7pDepv3Lfv`TX(SGJ9QrE~TvfCObY09s?ghn=Td0ld zIxkik`qk53=Nsv-L;AHja=M*gog&8-EDH~C!+2ql7tv1T_@M3>>N4`-IG+#1FNpKM z4ysp#rrHP9347XxD@G8tKOcS`8IRF5+A1g_9{5_7-#nB4}b8 z5`6Kk^n!D$p)yWVyMFKjBdgF!8YXrPkDQ#jGz@19Kn;&LBjOE}@gS;~ys$7Mf{AaA zVDQMvh)}(S0jS{-XGCTApj~Kmk&zGhkWDJ`xkX1mu_TP(P4J+HXsU>OW9p3n7aQsF zkS<}KQQC9}fxm-BTv9A(_Jv?$ub-$4!D<$)ON<1Umty!(Li72(>GsyN$HQMtOd5g{ z(iEP;82_F0n5%kYML48o3%=CIq4`85e1w>`&B?OXNLa`$ zHD-Z!h9Q%W?}(+y-?%U<6TE17Xfj5cjrlyx6yn@TK|zu!2sRIaN>Mo>YDqkPuWsl} z(Ig(QBLrq-af2-zsRx_v`ua0{BmFGj4cXgFuX74Akdllsk@rAl!`4d%kEVNBy3`A* zS(@^6m~hH@z@ceJNOG?QGT8e z_54Qtk$@NZOoyM4KZUU#@~1#%pIqj80@Bf^MkQlB7f(OpHe` zSCYy^oYu?O7^tQmDUyLcY|cC~hX{%4R*q>g2h->!XDZW1Z4AS4MghWH zmX2_}PPhfGrR!qvy!6GeeUR^6Muo!#%mU!8d_&lk<5|MaGdQV*n_PU%{T_+CGyj2b zS3Td+j1j+$w;w1>Jcr|Aa)|c1!umwuvIMUOD=;97fg;ec3WdWA8saoCUX(5~TZW#L zLv}HeL)yp2M^BfX)dD7pU`r?|*=@qd4%df3AQ&wbFb>Y!!U8GJT-34PbSujn<8%`x z-9ZC;e*4Bp@);|8)r0(!M<#WRObwta?uEXf3`DE7GLRJ1*%kmUSx?yxeLNvTKTQ^9 z!LFZJB2o{9^z{Qze?(J@+Pq1S{E?n0kr=5h8yK0YmEtXO|KWFdc#^})S`CiQW~~Ts zs${mag98EE7dhA-i<};s?N;5zZNK4}5R&Bv_nUU33?S~OUc}_x2F?p6<01yG6 z>I(qJc~srWh)+5?VeLE%syo86vfSJd*K!F3bj9kiam~004diTD5VN~zDp||5v|DF8 znA{M-HE_OQB_L!tpE=CCXi8omYv_Y2;@)HM02(;h1FVabfraFIUX3LeY4y7U0d4%xWz&<>3xir^sB4iiEyB*6Oib zb1^E|P;ADQWG|(H2{9L=Rw>N(vK*7f@}sOQZ;CcY&IQ#}F_e6df&Zc{T7~h6B6MDA zFq~vm9PDB;_^B&O#Vv&FRK!ZR9d#M~7`q@F8ps&5EJ2EhJEo;?EtPjA$W=#)J3NC_ zUBgf}XVlouSz1!oawn~|^sQYMA>;9L+86OXTKoWXkOq`LvWLvBSt%W~Noaa0(wc06 zhC+pBrSwXg!RbXv<0V^}mWQ>+E&#~?h0}r@1z0xd+mOw#&jkYDkIEDPhvO6gFXa+I zP^bt2@Je<8@FL|2Kuf54tVIBD5E2sM&I1AXXZ*lD;O&9(S3Bcz+n8-WR)%3>x?IA* zaEc8J2v&t|OJlI1p^~+mo#_uIy{oLuZH&dp?S=jUegAyEwS#x9{j$m?K8kQ)}*Z9{F>xJd?P zOcY;JW5;toR)rLb>*^@HEUzDmsT=fHTG$H9vT)oLcdrH+1<0I${FM)$jWYsSC&A+G zTr-2k61*jD?EY+kYm0!4t%0$|CQ3GOmJ}i|@l|&A!lVm!^9qLYSG(qpRFbs@7r@g< z2vfwa?q0^b5Tna-4H}c%?M!ZNB-@r`?4+>`cnV1eM68INpF16*YmS_!*@whUx9CKq9V7iWOOiS|+>se1>6+xLm?U+S zN_Twf-l*d&g2hBHbbu-5?*L42jH5rYTcFDU>TpbkrZ6w7lv`(5j17GNeBSc)12p=LS37=Nw94_jbs zVzHDfQ#R^8pm}!LG^ZlCsXf3$R1{S{+PjRH&j!yuOAiL@dntB@;+@u>TZ~$92^$M~ z+!Ly#n3DB?)G-aGEs%C`Q5~o_%7#I^WW!CcYhhU8pdehF?@$uD0o#ExB~hN%5Xg7D1YGORf}*xcM3gab%qWL*5b|ZHI(Q!MSAH z4X($ar*(qwfvxVnj3+aW`X7l0M7Dn1(Z4-65u-hflC@3v#vkVz1 zygt~<>qfZl0Z&Nrgkj(%Sr##SaC5nnP*&Z{SrN7xN&4^TU~Ng5MhtxPp_Iizmh&vo z)+6j3go~DNE|SIQEFiY(rfV*e)-^MZTp451MDl{N%rzIu(9^qk4!Cr6Q*UfJ-O8+H zxbY1~t^5>=>JozkN9r5t7Edj>5Ns~T8)FT4G|A`BjYE1 zv-hS$m1C+ylL=3#I0BqX5_NaI2g=UYgT!c)jQ|R|?v9Fy) zWoeMco-GP{Al5h-&}x7s`b2Xi4uA4ZJA8{2*;D+zC7JU6D-^TfLgoKEj?+EJue8vTasSZ(Utbv+Pl+TJzht<$L=8W8_NU; zK|wFw(z?Ry>bTHLUzBd`g@%^(wzu}Q1@&AQ*I<}|Yf(fiL!%e~*OAgym<%uq=W6gT zylz&fVz0K#D%lW8iL&Bbj086GXPN8(+{6^HPZ!rtm$7Nn_{D_Np( zcI{`Qx})eCn?#dMaD6JC#rFLL=89okivwGv#uvQOg?PJ5h-&o^axF zE-JOWARQf%lBL6YHT4wOJMGd*HIZ}#Z1YWZ0WY;?OHl3 zuPePQ-GzxvyZs>mgC!=tLY-d)?xjZhhO4E7l6qz+Rs7;Jvz=;BiN00J!njjJh+@Gl1bXU0AxmzuHbfh zf@cn-E*LS9^+7FS)d{Jf`Ko%0mTWAVL@%VbkZ>xe%cdFvNBL-I)@;#~VY{Zlye;m( zC{9z9ecDb%`9aZKETYRWAtLLEQo^JrViENoSWz{C2;H@iXW?W>%@A=ZM=_YkU|mU* z-<7D7^Oso^1GZ*?QsFLdZF7c*VS!{3THONu%dZ@&qQMgJFlmglf^qYNKAzKHU@)%_ z?9^g4>I3T_;9aFsta%!(Ns&KRa!Za<;3jyYV(|o1ttRzCl(lx%YKW0+woa4_sFp-s z0kwL%R3;a%RwlIG1b=jOsT3BeMkew~R-ssvqC$t#N^M&fdVrWo>g;WeSjse==-SGqW26aN zFQOt{x(8r$O-*oaodzuGOmW^WV#t-<5?;jl+|VFg1fI=rRcCN*hX23;5w{%=MfApk zCN(h3D#J|2l|^A6O6W$6O15!-4w(ubCY8+!FlJYPL?Uvgr~tqSdwQM$ko{0t(f>yn z=JDp7md;CMj2Os5SBr!fw=3fyH(-v7UEI8g8QqdC9aiB~fh&s#<90zqy54g`3z}0K z`1b;S{n-N{Z95vW$c^Ppa@Pyi=#Q-9j4O(wF^ql~8!y=#5aZ`clCX6Lm)n#ing9<{ z2Sm!dG}K&Ca%f`n{GW9&ONMVUeYr$NZc-LLe`gXneJKWY?HxUyf6Eo#lxth0kTKAN zDZf?_EZM>#Tq73V)MVS>lC=mA6MZ$4OlvY`s_<}rzfiP(M`*T$5S`edEI9VYB(@N% z5U#`X3JcU(Bl$J%i{UIOMRHVPFj-9OFUHJH%OZB6RdS86Ms*VKoW-D?AB+0G3%K6* zJH*96nB?R`_kXiiWEll7O=2=F{IwOvMl&YA75_Iwr4(UM88GXCH9#sHZS8NuA`DDV z)Q#HXB3w39@b#V1x-ea;_plbMPJqkWrDG& zumal^5>Z`tb}UPg95XI91?5jgX?HbUYL{H9F;eT4oZ=E}qWe-vjuaG~(q2*C5Dq}( zhQ|v|C3J_x)h#^*(Ne@meWkyw;ZGlEsT@Zv;%kaFM5E;7ge!%R}Vf6^evg3)@^8bp{nFjLjxRf_k1sx)~ z)9fd((NgiPv+7VHNe|8FThL8uzrY?LAy^?7%c z9pcup(4?#vQ4lS~F;GXqhpzq*R&@;h7NNorwlNi14ul1nO#Go5%>rV14ygN?ifHbZ z0v^G&lo^1Mnl=gBQq+cxDtZ-Vvkpk5KpCX()|skJ4($kFNEB)+Vku`MuM~wL0SM1{ z)69C3W_7Dx&aN;`4J09_1y@MU;`2+QRT}c!LdtuJ=V38gBF;LW=xb>>;b#HApt9%^$g@HIx^KsXzy&gYg2)jLaBh(j9U$~;x?>gtq4f= zeOx6ShU*%Tpk)nphvsNyZDf|BNVKPEW>apy2hnn=_1P6El_0rS0@_sNp~^vNp_wIPYeyE0jEG4zVhM7tNqu0A;qauj zU4V$6L3%c{OBNpAqR3aK)GdnZt-@=DwGd3K!H;sOv=^DZ%r({S>Z+~nn?!FdY~B88 zR|!9fP(^pUx~7V($ZM)%EomjQWEBD*O9TBV3-GmFt{WUG)DT%(q6%>m3%Cf^-g*v0 zRo&uLhl63L$SNbeHMtP}x`=a;!w%=c;i)tgp(GpzBdBcUfV`S?E-0#u{-#AvJqn1q z7XEFyZNUfco_#~~@bs0>9`&h6ZR$fyzdiTRK5yk$ZoIyJ_8G^{pI$ZXj5nUDd8PXU z&+fhE^+&!t`|9C_-yi>x+#Pm z{N&Q7y5D!*?DNwd_eGCgde)I&|NSe?4=lfA_C;U(YuCWPedoqk-?}%w`t8tuBr+{h zjmY4?Ew{yAOx*Kg;>8b4y|90ORbNcP5sQ7Gsj;% z^5a++DxZOs@%9&h|MK4GFCX2vWA>cXWj`IwzP|n1Ih)5G|8vXXpLqK#+y62r6?rMO zX6T`ve_D5B=VNnse&D)qeEu6RK6%SGe*VS@U;g2-i|gy_Bj;XrDz2R&+yw}CHvHRi z+YU-p)nk!=!*}rV7<`F~yU^(Vy*vN+(SM)y(dLD95A1y5(aqj76WOnCe|pX}^{+j= z^EZ!PP~Z3AH!k_`8#m3mW?^dW(1Sl6z56eZ-ahNnZF^5U>ehy<*Q{9+sd~KOQG^SC zk3+!K@DBjLlGvYkDe-bF@nRzO@~-K3-_-QMRZX*JH+^u=x)|IyDF4eA_o6QWB;8@{4g2qi6(Z( zcJGQse;AL)8m6y&$7eRJ{p7XTXSZ*h^S^6>u*~!8e)QOTXI;8*sA}fMeLJ_EvFzp@ zJ7z^5dFZ$^5H!F(9$}vb{|J3g#-q$5kJL&vB;)t*Oxz!Bj3*mXvHkZvmq^4?RWm=mZTn3(&3=F~XIK4O ze~Oi%_H3;E>1kN|*6#D#zaBkm%~M}`b=v6BXMX=nS7pC`{fR$6dG--USIwAN^|`Mc zGV$1bE6@2@YV}>eedj5UFWkQC!}IRG=Wnr*foIOTaMsoTdedpUK6ibrW#O(nkG|{5 zkDWdJ=|AM&yRQAb&omwS#JP!Bm^SGA2nn+LW8@C)i{?>ON`Nyw)^5M^I{nfmlpVd73 z)is@iNA5Yc_sQMEPu_WaTW0d`$DjSL#rJ>W*57~i#GgJ{`=RsCyZqhzzHrQA-}(Aa z2S#3g{;KHi&;KG-bMUs;&W-H-#ZPW~>ea(u89HlW=h_Q@@!Uzxzueh!*)?|``j55u z&DwhKZ=dw0&_)PjlnzZ<+V- z!O^}AhaDbydhV`Sk6t%1{hV1({pXrPZm)gn=yjLQTD$HS`@X%RXXw(_UymMl*B8H> z+M9dVlIh1^(;L6{(wAR+J0p+(E_v4W z9d~tXtGYEexGg_t(VCS%A3gq#-REwbd&vdMj{M2M5g&d3`#<%)<3IWSWsOh7Z`=2g zkFGkQ`ma@wyz`$oe`7NFU~6V-;rPwJUVF#F$Ys-pmTo`g`V(*M?fTY7{%2X|Ei=FH z^b_}z&ts?gy{D{^~cs{={!yIqc@wW}kb1$IwXh#s0gt{OHGXf3)-`?MJQq*-1D3>FUP& z{`RRC{$y@)UZ}o#;J@|q-Z?ydOPu?+SZoc{6e}4G0x4-X< zIo``{mp2cjrk{Ut;)8n@efn$ne(?6m=dSO)>S1?sslvHh=nG4oYBID7+90qg#c- zFYn#?;-ep$_0+a4&p!6A;3!gSz)}Bm`-yY@#_YCd&k){SOtOvgEW#)*U zOx^>IXjj#|Q@R%)bmXjqy1Vb9-uqqW9_;(D6R<9JQ&9J%y662q=YnattrdZvgawX) ze^B80n|}8KIN4WNskc8}g)gy`hkr14_59xGZ@|4hzT^9s-}8${|8>Xr=iIk;=+TqE zck~y&`PgG`iCn$(BpSF)i_FDZDfox56Z`i@Us?ADaFI_fd~MIp*B?FjiDS=cZ=F@& z-QM@atRK}6J-qYvb=4nON}b-Xu0HmoP!Zcc9HFp|^ZD3Iu@@M6Guo%&v?dlg7K_Y< ze@G?t6mMNOtNoPv^Sq54BK_ZZbTjR{LJK@sqK^dpda2jxoh&l$(=KybN admission_datetime) INTO overlap_found; + IF overlap_found THEN + RAISE EXCEPTION + USING ERRCODE = 'P0001', MESSAGE = '10002: HOSPITALIZATION_OVERLAP'; + END IF; + RETURN NEW; +END; +$$; + + +ALTER FUNCTION public.check_hospitalization_overlap() OWNER TO postgres; + +-- +-- TOC entry 292 (class 1255 OID 180120) +-- Name: check_numeric_result_uniqueness(); Type: FUNCTION; Schema: public; Owner: postgres +-- + +CREATE FUNCTION public.check_numeric_result_uniqueness() RETURNS trigger + LANGUAGE plpgsql + AS $$ +DECLARE + qualitative_exists boolean; +BEGIN + SELECT + EXISTS ( + SELECT + 1 + FROM + qualitative_result + WHERE + result_id = NEW.result_id) INTO qualitative_exists; + IF qualitative_exists THEN + RAISE EXCEPTION + USING ERRCODE = 'P0001', MESSAGE = '10005: QUALITATIVE_RESULT_ALREADY_EXISTS_FOR_THIS_EXAMINATION'; + END IF; + RETURN NEW; +END; +$$; + + +ALTER FUNCTION public.check_numeric_result_uniqueness() OWNER TO postgres; + +-- +-- TOC entry 298 (class 1255 OID 185866) +-- Name: check_password(character varying); Type: FUNCTION; Schema: public; Owner: postgres +-- + +CREATE FUNCTION public.check_password(_password character varying) RETURNS void + LANGUAGE plpgsql + AS $$ +BEGIN + IF (trim(_password) = '') + THEN + RAISE EXCEPTION 'Пароль не может быть пустым!'; + END IF; + + IF (trim(_password) <> _password) + THEN + RAISE EXCEPTION 'Пароль должен быть без пробелов!'; + END IF; + + IF (length(_password) < 8) + THEN + RAISE EXCEPTION 'Пароль должен иметь больше 8 знаков!'; + END IF; + + IF (lower(_password) = _password OR _password !~ '[0-9]') + THEN + RAISE EXCEPTION 'Пароль должен иметь прописные и заглавные буквы, а также цифры!'; + END IF; + + IF ((SELECT COUNT(*) AS letter_count + FROM ( SELECT regexp_split_to_table(_password, '') AS letter) AS letters + GROUP BY letter + ORDER BY letter + LIMIT 1) >= length(_password)/2) + THEN + RAISE EXCEPTION 'Пароль не должен иметь больше половины одинаковых символов!'; + END IF; +END +$$; + + +ALTER FUNCTION public.check_password(_password character varying) OWNER TO postgres; + +-- +-- TOC entry 278 (class 1255 OID 180122) +-- Name: check_qualitative_result_uniqueness(); Type: FUNCTION; Schema: public; Owner: postgres +-- + +CREATE FUNCTION public.check_qualitative_result_uniqueness() RETURNS trigger + LANGUAGE plpgsql + AS $$ +DECLARE + numeric_exists boolean; +BEGIN + SELECT + EXISTS ( + SELECT + 1 + FROM + numeric_result + WHERE + result_id = NEW.result_id) INTO numeric_exists; + IF numeric_exists THEN + RAISE EXCEPTION + USING ERRCODE = 'P0001', MESSAGE = '10006: NUMERIC_RESULT_ALREADY_EXISTS_FOR_THIS_EXAMINATION'; + END IF; + RETURN NEW; +END; +$$; + + +ALTER FUNCTION public.check_qualitative_result_uniqueness() OWNER TO postgres; + +-- +-- TOC entry 293 (class 1255 OID 180118) +-- Name: check_unique_discharge(); Type: FUNCTION; Schema: public; Owner: postgres +-- + +CREATE FUNCTION public.check_unique_discharge() RETURNS trigger + LANGUAGE plpgsql + AS $$ +DECLARE + discharge_count integer; +BEGIN + SELECT + COUNT(*) INTO discharge_count + FROM + hospital_discharge + WHERE + hospital_admission_id = NEW.hospital_admission_id + AND hospital_discharge_id <> COALESCE(NEW.hospital_discharge_id, -1); + IF discharge_count > 0 THEN + RAISE EXCEPTION + USING ERRCODE = 'P0001', MESSAGE = '10004: DISCHARGE_ALREADY_EXISTS'; + END IF; + RETURN NEW; +END; +$$; + + +ALTER FUNCTION public.check_unique_discharge() OWNER TO postgres; + +-- +-- TOC entry 299 (class 1255 OID 185867) +-- Name: create_person_account(); Type: FUNCTION; Schema: public; Owner: postgres +-- + +CREATE FUNCTION public.create_person_account() RETURNS trigger + LANGUAGE plpgsql + AS $$ +DECLARE + role int; +BEGIN + PERFORM check_password(NEW.password); + NEW.password := crypt(NEW.password, gen_salt('bf')); + + RETURN NEW; +END; +$$; + + +ALTER FUNCTION public.create_person_account() OWNER TO postgres; + +-- +-- TOC entry 291 (class 1255 OID 177549) +-- Name: default_str_check(text); Type: FUNCTION; Schema: public; Owner: postgres +-- + +CREATE FUNCTION public.default_str_check(str text) RETURNS boolean + LANGUAGE plpgsql IMMUTABLE + AS $$ +BEGIN + RETURN str IS NULL + OR no_double_space (str) + AND no_space_start_end (str) + AND str_length_between (str, 1, 128); +END; +$$; + + +ALTER FUNCTION public.default_str_check(str text) OWNER TO postgres; + +-- +-- TOC entry 290 (class 1255 OID 177548) +-- Name: default_word_check(text); Type: FUNCTION; Schema: public; Owner: postgres +-- + +CREATE FUNCTION public.default_word_check(str text) RETURNS boolean + LANGUAGE plpgsql IMMUTABLE + AS $$ +BEGIN + RETURN str IS NULL + OR no_space (str) + AND str_length_between (str, 1, 64); +END; +$$; + + +ALTER FUNCTION public.default_word_check(str text) OWNER TO postgres; + +-- +-- TOC entry 264 (class 1255 OID 180111) +-- Name: get_hospitalization_periods(integer); Type: FUNCTION; Schema: public; Owner: postgres +-- + +CREATE FUNCTION public.get_hospitalization_periods(p_patient_id integer) RETURNS TABLE(admission_datetime timestamp without time zone, discharge_datetime timestamp without time zone) + LANGUAGE plpgsql + AS $$ +BEGIN + RETURN QUERY + SELECT + ha.admission_datetime, + hd.discharge_datetime + FROM + hospital_admission ha + LEFT JOIN hospital_discharge hd ON ha.hospital_admission_id = hd.hospital_admission_id +WHERE + ha.patient_id = p_patient_id; +END; +$$; + + +ALTER FUNCTION public.get_hospitalization_periods(p_patient_id integer) OWNER TO postgres; + +-- +-- TOC entry 327 (class 1255 OID 185911) +-- Name: get_results(); Type: FUNCTION; Schema: public; Owner: postgres +-- + +CREATE FUNCTION public.get_results() RETURNS TABLE("Пациент" text, "Обследование" text, "Результат" character varying) + LANGUAGE plpgsql + AS $$ +BEGIN + RETURN QUERY(SELECT pa.policy_number, et.name, COALESCE(qr.value::varchar, CONCAT(nr.value || ' ' || u.name)) + FROM patient pa + LEFT JOIN prescription pr + ON pa.patient_id = pr.patient_id + LEFT JOIN examination_type_prescription etp + ON pr.prescription_id = etp.prescription_id + LEFT JOIN examination_type et + ON et.examination_type_id = etp.examination_type_id + LEFT JOIN result r + ON etp.result_id = r.result_id + LEFT JOIN qualitative_result qr + ON r.result_id = qr.result_id + LEFT JOIN numeric_result nr + ON r.result_id = nr.result_id + LEFT JOIN unit u + ON nr.unit_id = u.unit_id + WHERE et.name IS NOT NULL); +END; +$$; + + +ALTER FUNCTION public.get_results() OWNER TO postgres; + +-- +-- TOC entry 285 (class 1255 OID 177544) +-- Name: no_double_space(text); Type: FUNCTION; Schema: public; Owner: postgres +-- + +CREATE FUNCTION public.no_double_space(str text) RETURNS boolean + LANGUAGE plpgsql IMMUTABLE + AS $$ +BEGIN + RETURN str !~ E'\s{2,}'; +END; +$$; + + +ALTER FUNCTION public.no_double_space(str text) OWNER TO postgres; + +-- +-- TOC entry 288 (class 1255 OID 177546) +-- Name: no_space(text); Type: FUNCTION; Schema: public; Owner: postgres +-- + +CREATE FUNCTION public.no_space(str text) RETURNS boolean + LANGUAGE plpgsql IMMUTABLE + AS $$ +BEGIN + RETURN str !~ E'\s'; +END; +$$; + + +ALTER FUNCTION public.no_space(str text) OWNER TO postgres; + +-- +-- TOC entry 286 (class 1255 OID 177545) +-- Name: no_space_start_end(text); Type: FUNCTION; Schema: public; Owner: postgres +-- + +CREATE FUNCTION public.no_space_start_end(str text) RETURNS boolean + LANGUAGE plpgsql IMMUTABLE + AS $_$ +BEGIN + RETURN str !~ E'^\s' + AND str !~ E'\s$'; +END; +$_$; + + +ALTER FUNCTION public.no_space_start_end(str text) OWNER TO postgres; + +-- +-- TOC entry 273 (class 1255 OID 180274) +-- Name: random_int(integer, integer); Type: FUNCTION; Schema: public; Owner: postgres +-- + +CREATE FUNCTION public.random_int(min_val integer, max_val integer) RETURNS integer + LANGUAGE plpgsql + AS $$ +BEGIN + RETURN min_val + trunc(random() * (max_val - min_val + 1))::int; +END; +$$; + + +ALTER FUNCTION public.random_int(min_val integer, max_val integer) OWNER TO postgres; + +-- +-- TOC entry 289 (class 1255 OID 177547) +-- Name: str_length_between(text, integer, integer); Type: FUNCTION; Schema: public; Owner: postgres +-- + +CREATE FUNCTION public.str_length_between(str text, min_len integer, max_len integer) RETURNS boolean + LANGUAGE plpgsql IMMUTABLE + AS $$ +BEGIN + RETURN LENGTH(str) BETWEEN min_len AND max_len; +END; +$$; + + +ALTER FUNCTION public.str_length_between(str text, min_len integer, max_len integer) OWNER TO postgres; + +SET default_tablespace = ''; + +SET default_table_access_method = heap; + +-- +-- TOC entry 245 (class 1259 OID 179932) +-- Name: disease; Type: TABLE; Schema: public; Owner: postgres +-- + +CREATE TABLE public.disease ( + disease_id integer NOT NULL, + name text NOT NULL, + icd_code text NOT NULL, + CONSTRAINT disease_name_check CHECK (public.default_str_check(name)) +); + + +ALTER TABLE public.disease OWNER TO postgres; + +-- +-- TOC entry 244 (class 1259 OID 179931) +-- Name: disease_disease_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres +-- + +CREATE SEQUENCE public.disease_disease_id_seq + AS integer + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER SEQUENCE public.disease_disease_id_seq OWNER TO postgres; + +-- +-- TOC entry 5181 (class 0 OID 0) +-- Dependencies: 244 +-- Name: disease_disease_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres +-- + +ALTER SEQUENCE public.disease_disease_id_seq OWNED BY public.disease.disease_id; + + +-- +-- TOC entry 247 (class 1259 OID 179947) +-- Name: disease_syndrome; Type: TABLE; Schema: public; Owner: postgres +-- + +CREATE TABLE public.disease_syndrome ( + disease_syndrome_id integer NOT NULL, + disease_id integer NOT NULL, + syndrome_id integer NOT NULL +); + + +ALTER TABLE public.disease_syndrome OWNER TO postgres; + +-- +-- TOC entry 246 (class 1259 OID 179946) +-- Name: disease_syndrome_disease_syndrome_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres +-- + +CREATE SEQUENCE public.disease_syndrome_disease_syndrome_id_seq + AS integer + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER SEQUENCE public.disease_syndrome_disease_syndrome_id_seq OWNER TO postgres; + +-- +-- TOC entry 5182 (class 0 OID 0) +-- Dependencies: 246 +-- Name: disease_syndrome_disease_syndrome_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres +-- + +ALTER SEQUENCE public.disease_syndrome_disease_syndrome_id_seq OWNED BY public.disease_syndrome.disease_syndrome_id; + + +-- +-- TOC entry 223 (class 1259 OID 179728) +-- Name: doctor; Type: TABLE; Schema: public; Owner: postgres +-- + +CREATE TABLE public.doctor ( + doctor_id integer NOT NULL +); + + +ALTER TABLE public.doctor OWNER TO postgres; + +-- +-- TOC entry 249 (class 1259 OID 180014) +-- Name: drug_intake_method; Type: TABLE; Schema: public; Owner: postgres +-- + +CREATE TABLE public.drug_intake_method ( + drug_intake_method_id integer NOT NULL, + name text NOT NULL, + CONSTRAINT drug_intake_method_name_check CHECK (public.default_word_check(name)) +); + + +ALTER TABLE public.drug_intake_method OWNER TO postgres; + +-- +-- TOC entry 248 (class 1259 OID 180013) +-- Name: drug_intake_method_drug_intake_method_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres +-- + +CREATE SEQUENCE public.drug_intake_method_drug_intake_method_id_seq + AS integer + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER SEQUENCE public.drug_intake_method_drug_intake_method_id_seq OWNER TO postgres; + +-- +-- TOC entry 5183 (class 0 OID 0) +-- Dependencies: 248 +-- Name: drug_intake_method_drug_intake_method_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres +-- + +ALTER SEQUENCE public.drug_intake_method_drug_intake_method_id_seq OWNED BY public.drug_intake_method.drug_intake_method_id; + + +-- +-- TOC entry 251 (class 1259 OID 180026) +-- Name: drug_type; Type: TABLE; Schema: public; Owner: postgres +-- + +CREATE TABLE public.drug_type ( + drug_type_id integer NOT NULL, + international_name_ru text NOT NULL, + international_name_en text, + international_name_la text, + brand_name_ru text, + CONSTRAINT drug_type_brand_name_ru_check CHECK (public.default_word_check(brand_name_ru)), + CONSTRAINT drug_type_international_name_en_check CHECK (public.default_word_check(international_name_en)), + CONSTRAINT drug_type_international_name_la_check CHECK (public.default_word_check(international_name_la)), + CONSTRAINT drug_type_international_name_ru_check CHECK (public.default_word_check(international_name_ru)) +); + + +ALTER TABLE public.drug_type OWNER TO postgres; + +-- +-- TOC entry 250 (class 1259 OID 180025) +-- Name: drug_type_drug_type_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres +-- + +CREATE SEQUENCE public.drug_type_drug_type_id_seq + AS integer + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER SEQUENCE public.drug_type_drug_type_id_seq OWNER TO postgres; + +-- +-- TOC entry 5184 (class 0 OID 0) +-- Dependencies: 250 +-- Name: drug_type_drug_type_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres +-- + +ALTER SEQUENCE public.drug_type_drug_type_id_seq OWNED BY public.drug_type.drug_type_id; + + +-- +-- TOC entry 253 (class 1259 OID 180047) +-- Name: drug_type_prescription; Type: TABLE; Schema: public; Owner: postgres +-- + +CREATE TABLE public.drug_type_prescription ( + drug_prescription_id integer NOT NULL, + prescription_id integer NOT NULL, + drug_type_id integer NOT NULL, + dose numeric NOT NULL, + dose_unit_id integer NOT NULL, + intake_method_id integer NOT NULL, + duration_days integer NOT NULL, + CONSTRAINT drug_type_prescription_dose_check CHECK ((dose > (0)::numeric)), + CONSTRAINT drug_type_prescription_duration_days_check CHECK ((duration_days > 0)) +); + + +ALTER TABLE public.drug_type_prescription OWNER TO postgres; + +-- +-- TOC entry 252 (class 1259 OID 180046) +-- Name: drug_type_prescription_drug_prescription_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres +-- + +CREATE SEQUENCE public.drug_type_prescription_drug_prescription_id_seq + AS integer + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER SEQUENCE public.drug_type_prescription_drug_prescription_id_seq OWNER TO postgres; + +-- +-- TOC entry 5185 (class 0 OID 0) +-- Dependencies: 252 +-- Name: drug_type_prescription_drug_prescription_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres +-- + +ALTER SEQUENCE public.drug_type_prescription_drug_prescription_id_seq OWNED BY public.drug_type_prescription.drug_prescription_id; + + +-- +-- TOC entry 230 (class 1259 OID 179778) +-- Name: examination_type; Type: TABLE; Schema: public; Owner: postgres +-- + +CREATE TABLE public.examination_type ( + examination_type_id integer NOT NULL, + name text NOT NULL, + category text NOT NULL, + CONSTRAINT examination_type_name_check CHECK (public.default_word_check(name)) +); + + +ALTER TABLE public.examination_type OWNER TO postgres; + +-- +-- TOC entry 229 (class 1259 OID 179777) +-- Name: examination_type_examination_type_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres +-- + +CREATE SEQUENCE public.examination_type_examination_type_id_seq + AS integer + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER SEQUENCE public.examination_type_examination_type_id_seq OWNER TO postgres; + +-- +-- TOC entry 5186 (class 0 OID 0) +-- Dependencies: 229 +-- Name: examination_type_examination_type_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres +-- + +ALTER SEQUENCE public.examination_type_examination_type_id_seq OWNED BY public.examination_type.examination_type_id; + + +-- +-- TOC entry 234 (class 1259 OID 179804) +-- Name: examination_type_prescription; Type: TABLE; Schema: public; Owner: postgres +-- + +CREATE TABLE public.examination_type_prescription ( + examination_prescription_id integer NOT NULL, + prescription_id integer NOT NULL, + result_id integer, + examination_type_id integer NOT NULL +); + + +ALTER TABLE public.examination_type_prescription OWNER TO postgres; + +-- +-- TOC entry 233 (class 1259 OID 179803) +-- Name: examination_type_prescription_examination_prescription_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres +-- + +CREATE SEQUENCE public.examination_type_prescription_examination_prescription_id_seq + AS integer + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER SEQUENCE public.examination_type_prescription_examination_prescription_id_seq OWNER TO postgres; + +-- +-- TOC entry 5187 (class 0 OID 0) +-- Dependencies: 233 +-- Name: examination_type_prescription_examination_prescription_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres +-- + +ALTER SEQUENCE public.examination_type_prescription_examination_prescription_id_seq OWNED BY public.examination_type_prescription.examination_prescription_id; + + +-- +-- TOC entry 259 (class 1259 OID 185812) +-- Name: hospital_admission; Type: TABLE; Schema: public; Owner: postgres +-- + +CREATE TABLE public.hospital_admission ( + hospital_admission_id integer NOT NULL, + patient_id integer NOT NULL, + preliminary_disease_id integer NOT NULL, + admission_datetime timestamp without time zone NOT NULL, + CONSTRAINT hospital_admission_admission_datetime_check CHECK ((admission_datetime <= CURRENT_TIMESTAMP)) +); + + +ALTER TABLE public.hospital_admission OWNER TO postgres; + +-- +-- TOC entry 258 (class 1259 OID 185811) +-- Name: hospital_admission_hospital_admission_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres +-- + +CREATE SEQUENCE public.hospital_admission_hospital_admission_id_seq + AS integer + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER SEQUENCE public.hospital_admission_hospital_admission_id_seq OWNER TO postgres; + +-- +-- TOC entry 5188 (class 0 OID 0) +-- Dependencies: 258 +-- Name: hospital_admission_hospital_admission_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres +-- + +ALTER SEQUENCE public.hospital_admission_hospital_admission_id_seq OWNED BY public.hospital_admission.hospital_admission_id; + + +-- +-- TOC entry 261 (class 1259 OID 185830) +-- Name: hospital_discharge; Type: TABLE; Schema: public; Owner: postgres +-- + +CREATE TABLE public.hospital_discharge ( + hospital_discharge_id integer NOT NULL, + hospital_admission_id integer NOT NULL, + discharge_datetime timestamp without time zone NOT NULL, + final_disease_id integer NOT NULL, + reason text NOT NULL, + CONSTRAINT hospital_discharge_discharge_datetime_check CHECK ((discharge_datetime <= CURRENT_TIMESTAMP)) +); + + +ALTER TABLE public.hospital_discharge OWNER TO postgres; + +-- +-- TOC entry 260 (class 1259 OID 185829) +-- Name: hospital_discharge_hospital_discharge_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres +-- + +CREATE SEQUENCE public.hospital_discharge_hospital_discharge_id_seq + AS integer + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER SEQUENCE public.hospital_discharge_hospital_discharge_id_seq OWNER TO postgres; + +-- +-- TOC entry 5189 (class 0 OID 0) +-- Dependencies: 260 +-- Name: hospital_discharge_hospital_discharge_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres +-- + +ALTER SEQUENCE public.hospital_discharge_hospital_discharge_id_seq OWNED BY public.hospital_discharge.hospital_discharge_id; + + +-- +-- TOC entry 235 (class 1259 OID 179827) +-- Name: numeric_result; Type: TABLE; Schema: public; Owner: postgres +-- + +CREATE TABLE public.numeric_result ( + result_id integer NOT NULL, + value numeric NOT NULL, + unit_id integer NOT NULL +); + + +ALTER TABLE public.numeric_result OWNER TO postgres; + +-- +-- TOC entry 222 (class 1259 OID 179715) +-- Name: patient; Type: TABLE; Schema: public; Owner: postgres +-- + +CREATE TABLE public.patient ( + patient_id integer NOT NULL, + policy_number text NOT NULL, + CONSTRAINT patient_policy_number_check CHECK ((policy_number ~ '^[0-9]{16}$'::text)) +); + + +ALTER TABLE public.patient OWNER TO postgres; + +-- +-- TOC entry 221 (class 1259 OID 179702) +-- Name: person; Type: TABLE; Schema: public; Owner: postgres +-- + +CREATE TABLE public.person ( + person_id integer NOT NULL, + middle_name text NOT NULL, + first_name text NOT NULL, + last_name text, + birth_date date NOT NULL, + gender text NOT NULL, + address text NOT NULL, + CONSTRAINT person_address_check CHECK (public.default_str_check(address)), + CONSTRAINT person_birth_date_check CHECK ((birth_date <= CURRENT_DATE)), + CONSTRAINT person_first_name_check CHECK (public.default_word_check(first_name)), + CONSTRAINT person_last_name_check CHECK (public.default_word_check(middle_name)), + CONSTRAINT person_middle_name_check CHECK (public.default_word_check(last_name)) +); + + +ALTER TABLE public.person OWNER TO postgres; + +-- +-- TOC entry 262 (class 1259 OID 185853) +-- Name: person_account; Type: TABLE; Schema: public; Owner: postgres +-- + +CREATE TABLE public.person_account ( + person_id integer NOT NULL, + login character varying(60) NOT NULL, + password character varying NOT NULL, + CONSTRAINT empty_login CHECK ((TRIM(BOTH FROM login) <> ''::text)) +); + + +ALTER TABLE public.person_account OWNER TO postgres; + +-- +-- TOC entry 220 (class 1259 OID 179701) +-- Name: person_person_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres +-- + +CREATE SEQUENCE public.person_person_id_seq + AS integer + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER SEQUENCE public.person_person_id_seq OWNER TO postgres; + +-- +-- TOC entry 5190 (class 0 OID 0) +-- Dependencies: 220 +-- Name: person_person_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres +-- + +ALTER SEQUENCE public.person_person_id_seq OWNED BY public.person.person_id; + + +-- +-- TOC entry 228 (class 1259 OID 179761) +-- Name: prescription; Type: TABLE; Schema: public; Owner: postgres +-- + +CREATE TABLE public.prescription ( + prescription_id integer NOT NULL, + patient_id integer NOT NULL, + doctor_id integer NOT NULL +); + + +ALTER TABLE public.prescription OWNER TO postgres; + +-- +-- TOC entry 227 (class 1259 OID 179760) +-- Name: prescription_prescription_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres +-- + +CREATE SEQUENCE public.prescription_prescription_id_seq + AS integer + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER SEQUENCE public.prescription_prescription_id_seq OWNER TO postgres; + +-- +-- TOC entry 5191 (class 0 OID 0) +-- Dependencies: 227 +-- Name: prescription_prescription_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres +-- + +ALTER SEQUENCE public.prescription_prescription_id_seq OWNED BY public.prescription.prescription_id; + + +-- +-- TOC entry 255 (class 1259 OID 180080) +-- Name: procedure_type; Type: TABLE; Schema: public; Owner: postgres +-- + +CREATE TABLE public.procedure_type ( + procedure_type_id integer NOT NULL, + name text NOT NULL, + CONSTRAINT procedure_type_name_check CHECK (public.default_word_check(name)) +); + + +ALTER TABLE public.procedure_type OWNER TO postgres; + +-- +-- TOC entry 257 (class 1259 OID 180092) +-- Name: procedure_type_prescription; Type: TABLE; Schema: public; Owner: postgres +-- + +CREATE TABLE public.procedure_type_prescription ( + procedure_prescription_id integer NOT NULL, + prescription_id integer NOT NULL, + procedure_type_id integer NOT NULL, + scheduled_datetime timestamp without time zone NOT NULL +); + + +ALTER TABLE public.procedure_type_prescription OWNER TO postgres; + +-- +-- TOC entry 256 (class 1259 OID 180091) +-- Name: procedure_type_prescription_procedure_prescription_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres +-- + +CREATE SEQUENCE public.procedure_type_prescription_procedure_prescription_id_seq + AS integer + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER SEQUENCE public.procedure_type_prescription_procedure_prescription_id_seq OWNER TO postgres; + +-- +-- TOC entry 5192 (class 0 OID 0) +-- Dependencies: 256 +-- Name: procedure_type_prescription_procedure_prescription_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres +-- + +ALTER SEQUENCE public.procedure_type_prescription_procedure_prescription_id_seq OWNED BY public.procedure_type_prescription.procedure_prescription_id; + + +-- +-- TOC entry 254 (class 1259 OID 180079) +-- Name: procedure_type_procedure_type_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres +-- + +CREATE SEQUENCE public.procedure_type_procedure_type_id_seq + AS integer + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER SEQUENCE public.procedure_type_procedure_type_id_seq OWNER TO postgres; + +-- +-- TOC entry 5193 (class 0 OID 0) +-- Dependencies: 254 +-- Name: procedure_type_procedure_type_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres +-- + +ALTER SEQUENCE public.procedure_type_procedure_type_id_seq OWNED BY public.procedure_type.procedure_type_id; + + +-- +-- TOC entry 236 (class 1259 OID 179844) +-- Name: qualitative_result; Type: TABLE; Schema: public; Owner: postgres +-- + +CREATE TABLE public.qualitative_result ( + result_id integer NOT NULL, + value boolean NOT NULL +); + + +ALTER TABLE public.qualitative_result OWNER TO postgres; + +-- +-- TOC entry 239 (class 1259 OID 179869) +-- Name: reference_numeric_value; Type: TABLE; Schema: public; Owner: postgres +-- + +CREATE TABLE public.reference_numeric_value ( + reference_value_id integer NOT NULL, + min_value numeric, + max_value numeric, + unit_id integer NOT NULL +); + + +ALTER TABLE public.reference_numeric_value OWNER TO postgres; + +-- +-- TOC entry 240 (class 1259 OID 179886) +-- Name: reference_qualitative_value; Type: TABLE; Schema: public; Owner: postgres +-- + +CREATE TABLE public.reference_qualitative_value ( + reference_value_id integer NOT NULL, + description_true text NOT NULL, + description_false text NOT NULL, + CONSTRAINT reference_qualitative_value_description_false_check CHECK (public.default_word_check(description_false)), + CONSTRAINT reference_qualitative_value_description_true_check CHECK (public.default_word_check(description_true)) +); + + +ALTER TABLE public.reference_qualitative_value OWNER TO postgres; + +-- +-- TOC entry 238 (class 1259 OID 179855) +-- Name: reference_value; Type: TABLE; Schema: public; Owner: postgres +-- + +CREATE TABLE public.reference_value ( + reference_value_id integer NOT NULL, + examination_type_id integer NOT NULL, + gender text, + age_min integer, + age_max integer, + CONSTRAINT reference_value_check CHECK (((age_min IS NULL) OR (age_max IS NULL) OR (age_min < age_max))) +); + + +ALTER TABLE public.reference_value OWNER TO postgres; + +-- +-- TOC entry 237 (class 1259 OID 179854) +-- Name: reference_value_reference_value_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres +-- + +CREATE SEQUENCE public.reference_value_reference_value_id_seq + AS integer + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER SEQUENCE public.reference_value_reference_value_id_seq OWNER TO postgres; + +-- +-- TOC entry 5194 (class 0 OID 0) +-- Dependencies: 237 +-- Name: reference_value_reference_value_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres +-- + +ALTER SEQUENCE public.reference_value_reference_value_id_seq OWNED BY public.reference_value.reference_value_id; + + +-- +-- TOC entry 224 (class 1259 OID 179738) +-- Name: registrar; Type: TABLE; Schema: public; Owner: postgres +-- + +CREATE TABLE public.registrar ( + registrar_id integer NOT NULL +); + + +ALTER TABLE public.registrar OWNER TO postgres; + +-- +-- TOC entry 232 (class 1259 OID 179790) +-- Name: result; Type: TABLE; Schema: public; Owner: postgres +-- + +CREATE TABLE public.result ( + result_id integer NOT NULL, + examination_id integer NOT NULL +); + + +ALTER TABLE public.result OWNER TO postgres; + +-- +-- TOC entry 231 (class 1259 OID 179789) +-- Name: result_result_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres +-- + +CREATE SEQUENCE public.result_result_id_seq + AS integer + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER SEQUENCE public.result_result_id_seq OWNER TO postgres; + +-- +-- TOC entry 5195 (class 0 OID 0) +-- Dependencies: 231 +-- Name: result_result_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres +-- + +ALTER SEQUENCE public.result_result_id_seq OWNED BY public.result.result_id; + + +-- +-- TOC entry 243 (class 1259 OID 179914) +-- Name: syndrome_examination_type; Type: TABLE; Schema: public; Owner: postgres +-- + +CREATE TABLE public.syndrome_examination_type ( + syndrome_id integer NOT NULL, + examination_type_id integer NOT NULL +); + + +ALTER TABLE public.syndrome_examination_type OWNER TO postgres; + +-- +-- TOC entry 242 (class 1259 OID 179903) +-- Name: syndrome_type; Type: TABLE; Schema: public; Owner: postgres +-- + +CREATE TABLE public.syndrome_type ( + syndrome_type_id integer NOT NULL, + name text NOT NULL, + CONSTRAINT syndrome_type_name_check CHECK (public.default_word_check(name)) +); + + +ALTER TABLE public.syndrome_type OWNER TO postgres; + +-- +-- TOC entry 241 (class 1259 OID 179902) +-- Name: syndrome_type_syndrome_type_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres +-- + +CREATE SEQUENCE public.syndrome_type_syndrome_type_id_seq + AS integer + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER SEQUENCE public.syndrome_type_syndrome_type_id_seq OWNER TO postgres; + +-- +-- TOC entry 5196 (class 0 OID 0) +-- Dependencies: 241 +-- Name: syndrome_type_syndrome_type_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres +-- + +ALTER SEQUENCE public.syndrome_type_syndrome_type_id_seq OWNED BY public.syndrome_type.syndrome_type_id; + + +-- +-- TOC entry 226 (class 1259 OID 179749) +-- Name: unit; Type: TABLE; Schema: public; Owner: postgres +-- + +CREATE TABLE public.unit ( + unit_id integer NOT NULL, + name text NOT NULL, + CONSTRAINT unit_name_check CHECK (((name ~ '^[а-яА-ЯёЁ%^/]+$'::text) AND public.str_length_between(name, 1, 16))) +); + + +ALTER TABLE public.unit OWNER TO postgres; + +-- +-- TOC entry 225 (class 1259 OID 179748) +-- Name: unit_unit_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres +-- + +CREATE SEQUENCE public.unit_unit_id_seq + AS integer + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER SEQUENCE public.unit_unit_id_seq OWNER TO postgres; + +-- +-- TOC entry 5197 (class 0 OID 0) +-- Dependencies: 225 +-- Name: unit_unit_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres +-- + +ALTER SEQUENCE public.unit_unit_id_seq OWNED BY public.unit.unit_id; + + +-- +-- TOC entry 4829 (class 2604 OID 179935) +-- Name: disease disease_id; Type: DEFAULT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.disease ALTER COLUMN disease_id SET DEFAULT nextval('public.disease_disease_id_seq'::regclass); + + +-- +-- TOC entry 4830 (class 2604 OID 179950) +-- Name: disease_syndrome disease_syndrome_id; Type: DEFAULT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.disease_syndrome ALTER COLUMN disease_syndrome_id SET DEFAULT nextval('public.disease_syndrome_disease_syndrome_id_seq'::regclass); + + +-- +-- TOC entry 4831 (class 2604 OID 180017) +-- Name: drug_intake_method drug_intake_method_id; Type: DEFAULT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.drug_intake_method ALTER COLUMN drug_intake_method_id SET DEFAULT nextval('public.drug_intake_method_drug_intake_method_id_seq'::regclass); + + +-- +-- TOC entry 4832 (class 2604 OID 180029) +-- Name: drug_type drug_type_id; Type: DEFAULT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.drug_type ALTER COLUMN drug_type_id SET DEFAULT nextval('public.drug_type_drug_type_id_seq'::regclass); + + +-- +-- TOC entry 4833 (class 2604 OID 180050) +-- Name: drug_type_prescription drug_prescription_id; Type: DEFAULT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.drug_type_prescription ALTER COLUMN drug_prescription_id SET DEFAULT nextval('public.drug_type_prescription_drug_prescription_id_seq'::regclass); + + +-- +-- TOC entry 4824 (class 2604 OID 179781) +-- Name: examination_type examination_type_id; Type: DEFAULT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.examination_type ALTER COLUMN examination_type_id SET DEFAULT nextval('public.examination_type_examination_type_id_seq'::regclass); + + +-- +-- TOC entry 4826 (class 2604 OID 179807) +-- Name: examination_type_prescription examination_prescription_id; Type: DEFAULT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.examination_type_prescription ALTER COLUMN examination_prescription_id SET DEFAULT nextval('public.examination_type_prescription_examination_prescription_id_seq'::regclass); + + +-- +-- TOC entry 4836 (class 2604 OID 185815) +-- Name: hospital_admission hospital_admission_id; Type: DEFAULT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.hospital_admission ALTER COLUMN hospital_admission_id SET DEFAULT nextval('public.hospital_admission_hospital_admission_id_seq'::regclass); + + +-- +-- TOC entry 4837 (class 2604 OID 185833) +-- Name: hospital_discharge hospital_discharge_id; Type: DEFAULT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.hospital_discharge ALTER COLUMN hospital_discharge_id SET DEFAULT nextval('public.hospital_discharge_hospital_discharge_id_seq'::regclass); + + +-- +-- TOC entry 4821 (class 2604 OID 179705) +-- Name: person person_id; Type: DEFAULT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.person ALTER COLUMN person_id SET DEFAULT nextval('public.person_person_id_seq'::regclass); + + +-- +-- TOC entry 4823 (class 2604 OID 179764) +-- Name: prescription prescription_id; Type: DEFAULT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.prescription ALTER COLUMN prescription_id SET DEFAULT nextval('public.prescription_prescription_id_seq'::regclass); + + +-- +-- TOC entry 4834 (class 2604 OID 180083) +-- Name: procedure_type procedure_type_id; Type: DEFAULT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.procedure_type ALTER COLUMN procedure_type_id SET DEFAULT nextval('public.procedure_type_procedure_type_id_seq'::regclass); + + +-- +-- TOC entry 4835 (class 2604 OID 180095) +-- Name: procedure_type_prescription procedure_prescription_id; Type: DEFAULT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.procedure_type_prescription ALTER COLUMN procedure_prescription_id SET DEFAULT nextval('public.procedure_type_prescription_procedure_prescription_id_seq'::regclass); + + +-- +-- TOC entry 4827 (class 2604 OID 179858) +-- Name: reference_value reference_value_id; Type: DEFAULT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.reference_value ALTER COLUMN reference_value_id SET DEFAULT nextval('public.reference_value_reference_value_id_seq'::regclass); + + +-- +-- TOC entry 4825 (class 2604 OID 179793) +-- Name: result result_id; Type: DEFAULT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.result ALTER COLUMN result_id SET DEFAULT nextval('public.result_result_id_seq'::regclass); + + +-- +-- TOC entry 4828 (class 2604 OID 179906) +-- Name: syndrome_type syndrome_type_id; Type: DEFAULT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.syndrome_type ALTER COLUMN syndrome_type_id SET DEFAULT nextval('public.syndrome_type_syndrome_type_id_seq'::regclass); + + +-- +-- TOC entry 4822 (class 2604 OID 179752) +-- Name: unit unit_id; Type: DEFAULT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.unit ALTER COLUMN unit_id SET DEFAULT nextval('public.unit_unit_id_seq'::regclass); + + +-- +-- TOC entry 5157 (class 0 OID 179932) +-- Dependencies: 245 +-- Data for Name: disease; Type: TABLE DATA; Schema: public; Owner: postgres +-- + +COPY public.disease (disease_id, name, icd_code) FROM stdin; +34 Губчатая энцефалопатия A12.3 +35 Красная волчанка A12.5 +29 Проказа A12.4 +36 Грипп A12.2 +\. + + +-- +-- TOC entry 5159 (class 0 OID 179947) +-- Dependencies: 247 +-- Data for Name: disease_syndrome; Type: TABLE DATA; Schema: public; Owner: postgres +-- + +COPY public.disease_syndrome (disease_syndrome_id, disease_id, syndrome_id) FROM stdin; +1 29 1 +\. + + +-- +-- TOC entry 5135 (class 0 OID 179728) +-- Dependencies: 223 +-- Data for Name: doctor; Type: TABLE DATA; Schema: public; Owner: postgres +-- + +COPY public.doctor (doctor_id) FROM stdin; +1 +2 +3 +\. + + +-- +-- TOC entry 5161 (class 0 OID 180014) +-- Dependencies: 249 +-- Data for Name: drug_intake_method; Type: TABLE DATA; Schema: public; Owner: postgres +-- + +COPY public.drug_intake_method (drug_intake_method_id, name) FROM stdin; +2 Внутримышечно +\. + + +-- +-- TOC entry 5163 (class 0 OID 180026) +-- Dependencies: 251 +-- Data for Name: drug_type; Type: TABLE DATA; Schema: public; Owner: postgres +-- + +COPY public.drug_type (drug_type_id, international_name_ru, international_name_en, international_name_la, brand_name_ru) FROM stdin; +3 Корвалол \N \N \N +2 Парацетамол Paracetamol \N \N +\. + + +-- +-- TOC entry 5165 (class 0 OID 180047) +-- Dependencies: 253 +-- Data for Name: drug_type_prescription; Type: TABLE DATA; Schema: public; Owner: postgres +-- + +COPY public.drug_type_prescription (drug_prescription_id, prescription_id, drug_type_id, dose, dose_unit_id, intake_method_id, duration_days) FROM stdin; +\. + + +-- +-- TOC entry 5142 (class 0 OID 179778) +-- Dependencies: 230 +-- Data for Name: examination_type; Type: TABLE DATA; Schema: public; Owner: postgres +-- + +COPY public.examination_type (examination_type_id, name, category) FROM stdin; +2 ЭКГ Физикальное +3 ЭЭГ Инструментальное +\. + + +-- +-- TOC entry 5146 (class 0 OID 179804) +-- Dependencies: 234 +-- Data for Name: examination_type_prescription; Type: TABLE DATA; Schema: public; Owner: postgres +-- + +COPY public.examination_type_prescription (examination_prescription_id, prescription_id, result_id, examination_type_id) FROM stdin; +7 2 5 3 +11 23 9 3 +12 24 10 2 +\. + + +-- +-- TOC entry 5171 (class 0 OID 185812) +-- Dependencies: 259 +-- Data for Name: hospital_admission; Type: TABLE DATA; Schema: public; Owner: postgres +-- + +COPY public.hospital_admission (hospital_admission_id, patient_id, preliminary_disease_id, admission_datetime) FROM stdin; +21 8 29 2025-11-30 20:31:06.045 +30 7 35 2025-11-30 20:45:06.045254 +\. + + +-- +-- TOC entry 5173 (class 0 OID 185830) +-- Dependencies: 261 +-- Data for Name: hospital_discharge; Type: TABLE DATA; Schema: public; Owner: postgres +-- + +COPY public.hospital_discharge (hospital_discharge_id, hospital_admission_id, discharge_datetime, final_disease_id, reason) FROM stdin; +1 21 2025-12-01 15:59:02.624121 36 Ложная тревога +\. + + +-- +-- TOC entry 5147 (class 0 OID 179827) +-- Dependencies: 235 +-- Data for Name: numeric_result; Type: TABLE DATA; Schema: public; Owner: postgres +-- + +COPY public.numeric_result (result_id, value, unit_id) FROM stdin; +7 1.00 7 +8 1.00 7 +9 12.00 3 +10 1.00 3 +\. + + +-- +-- TOC entry 5134 (class 0 OID 179715) +-- Dependencies: 222 +-- Data for Name: patient; Type: TABLE DATA; Schema: public; Owner: postgres +-- + +COPY public.patient (patient_id, policy_number) FROM stdin; +7 3456789787654322 +8 1232567687654231 +\. + + +-- +-- TOC entry 5133 (class 0 OID 179702) +-- Dependencies: 221 +-- Data for Name: person; Type: TABLE DATA; Schema: public; Owner: postgres +-- + +COPY public.person (person_id, middle_name, first_name, last_name, birth_date, gender, address) FROM stdin; +1 Иванов Николай Владимирович 1954-10-26 male ул. Чайковского, дом 32, квартира 46 +2 Сидоров Владимир Анатольевич 1956-12-30 male пр. Мира, дом 37, квартира 47 +3 Кузнецов Пётр Сергеевич 1978-04-12 male ул. Кирова, дом 29, квартира 55 +4 Петров Иван Владимирович 2005-09-15 male ул. Чайковского, дом 16, квартира 108 +5 Иванов Николай Андреевич 1973-11-16 male ул. Молодёжная, дом 28, квартира 41 +6 Иванов Егор Сергеевич 1987-05-21 male ул. Гагарина, дом 3, квартира 92 +8 апраоплр апарспмориолтьмтич выавпасрмо 2001-11-28 Мужчина вавпраоплдожропав +7 впа апр авыпро 2005-11-28 Женщина впарплоро +\. + + +-- +-- TOC entry 5174 (class 0 OID 185853) +-- Dependencies: 262 +-- Data for Name: person_account; Type: TABLE DATA; Schema: public; Owner: postgres +-- + +COPY public.person_account (person_id, login, password) FROM stdin; +1 Иванов Н.В. $2a$06$nodiIbOsbvGGiNskCgoZve5M5ZNvf6vAUKVy9GKg2.zgt1H9ZBOoa +2 Сидоров В.А. $2a$06$46RFLNbgnecMJjhCzEWQD.90I42GPoKiQMunNKJ.sVx1jjhXcMrai +3 Кузнецов П.С. $2a$06$wN513CJW7sR/40ts3J07wuNYYm/RwAUWwiUX5jXCOL.EE1BGL0/7. +4 Петров И.В. $2a$06$zmh10qXthU9anqEX/ErdKekAeQdd2p54hozsc.VtYJIHLpRSJEmfq +5 Иванов Н.А. $2a$06$89cvKSGddsBwzXzbAWNbveEaoevnF7VIQxp1VSrvoTBuEXMZcFt6q +6 Иванов Е.С. $2a$06$JT.cB1.QUOgzZbnirrFSxO.WRNw0LvD6JvIXpHapKi5FDkO9yRily +\. + + +-- +-- TOC entry 5140 (class 0 OID 179761) +-- Dependencies: 228 +-- Data for Name: prescription; Type: TABLE DATA; Schema: public; Owner: postgres +-- + +COPY public.prescription (prescription_id, patient_id, doctor_id) FROM stdin; +2 8 1 +23 7 1 +24 7 2 +\. + + +-- +-- TOC entry 5167 (class 0 OID 180080) +-- Dependencies: 255 +-- Data for Name: procedure_type; Type: TABLE DATA; Schema: public; Owner: postgres +-- + +COPY public.procedure_type (procedure_type_id, name) FROM stdin; +3 Физиотерапия +\. + + +-- +-- TOC entry 5169 (class 0 OID 180092) +-- Dependencies: 257 +-- Data for Name: procedure_type_prescription; Type: TABLE DATA; Schema: public; Owner: postgres +-- + +COPY public.procedure_type_prescription (procedure_prescription_id, prescription_id, procedure_type_id, scheduled_datetime) FROM stdin; +3 2 3 2025-11-29 11:11:25.048055 +\. + + +-- +-- TOC entry 5148 (class 0 OID 179844) +-- Dependencies: 236 +-- Data for Name: qualitative_result; Type: TABLE DATA; Schema: public; Owner: postgres +-- + +COPY public.qualitative_result (result_id, value) FROM stdin; +5 t +\. + + +-- +-- TOC entry 5151 (class 0 OID 179869) +-- Dependencies: 239 +-- Data for Name: reference_numeric_value; Type: TABLE DATA; Schema: public; Owner: postgres +-- + +COPY public.reference_numeric_value (reference_value_id, min_value, max_value, unit_id) FROM stdin; +4 \N 1 7 +\. + + +-- +-- TOC entry 5152 (class 0 OID 179886) +-- Dependencies: 240 +-- Data for Name: reference_qualitative_value; Type: TABLE DATA; Schema: public; Owner: postgres +-- + +COPY public.reference_qualitative_value (reference_value_id, description_true, description_false) FROM stdin; +4 Отсутствует Отсутствует +\. + + +-- +-- TOC entry 5150 (class 0 OID 179855) +-- Dependencies: 238 +-- Data for Name: reference_value; Type: TABLE DATA; Schema: public; Owner: postgres +-- + +COPY public.reference_value (reference_value_id, examination_type_id, gender, age_min, age_max) FROM stdin; +4 2 Мужчина \N 18 +5 3 Женщина \N 18 +\. + + +-- +-- TOC entry 5136 (class 0 OID 179738) +-- Dependencies: 224 +-- Data for Name: registrar; Type: TABLE DATA; Schema: public; Owner: postgres +-- + +COPY public.registrar (registrar_id) FROM stdin; +4 +5 +6 +\. + + +-- +-- TOC entry 5144 (class 0 OID 179790) +-- Dependencies: 232 +-- Data for Name: result; Type: TABLE DATA; Schema: public; Owner: postgres +-- + +COPY public.result (result_id, examination_id) FROM stdin; +5 3 +7 3 +8 2 +9 3 +10 2 +\. + + +-- +-- TOC entry 5155 (class 0 OID 179914) +-- Dependencies: 243 +-- Data for Name: syndrome_examination_type; Type: TABLE DATA; Schema: public; Owner: postgres +-- + +COPY public.syndrome_examination_type (syndrome_id, examination_type_id) FROM stdin; +2 3 +\. + + +-- +-- TOC entry 5154 (class 0 OID 179903) +-- Dependencies: 242 +-- Data for Name: syndrome_type; Type: TABLE DATA; Schema: public; Owner: postgres +-- + +COPY public.syndrome_type (syndrome_type_id, name) FROM stdin; +1 Лихорадка +2 Боль в груди +\. + + +-- +-- TOC entry 5138 (class 0 OID 179749) +-- Dependencies: 226 +-- Data for Name: unit; Type: TABLE DATA; Schema: public; Owner: postgres +-- + +COPY public.unit (unit_id, name) FROM stdin; +2 мг/л +3 г/л +4 ммоль/л +5 мкмоль/л +6 ед/л +7 % +8 тыс/мкл +9 мл +10 мм +\. + + +-- +-- TOC entry 5198 (class 0 OID 0) +-- Dependencies: 244 +-- Name: disease_disease_id_seq; Type: SEQUENCE SET; Schema: public; Owner: postgres +-- + +SELECT pg_catalog.setval('public.disease_disease_id_seq', 36, true); + + +-- +-- TOC entry 5199 (class 0 OID 0) +-- Dependencies: 246 +-- Name: disease_syndrome_disease_syndrome_id_seq; Type: SEQUENCE SET; Schema: public; Owner: postgres +-- + +SELECT pg_catalog.setval('public.disease_syndrome_disease_syndrome_id_seq', 2, true); + + +-- +-- TOC entry 5200 (class 0 OID 0) +-- Dependencies: 248 +-- Name: drug_intake_method_drug_intake_method_id_seq; Type: SEQUENCE SET; Schema: public; Owner: postgres +-- + +SELECT pg_catalog.setval('public.drug_intake_method_drug_intake_method_id_seq', 2, true); + + +-- +-- TOC entry 5201 (class 0 OID 0) +-- Dependencies: 250 +-- Name: drug_type_drug_type_id_seq; Type: SEQUENCE SET; Schema: public; Owner: postgres +-- + +SELECT pg_catalog.setval('public.drug_type_drug_type_id_seq', 3, true); + + +-- +-- TOC entry 5202 (class 0 OID 0) +-- Dependencies: 252 +-- Name: drug_type_prescription_drug_prescription_id_seq; Type: SEQUENCE SET; Schema: public; Owner: postgres +-- + +SELECT pg_catalog.setval('public.drug_type_prescription_drug_prescription_id_seq', 1, true); + + +-- +-- TOC entry 5203 (class 0 OID 0) +-- Dependencies: 229 +-- Name: examination_type_examination_type_id_seq; Type: SEQUENCE SET; Schema: public; Owner: postgres +-- + +SELECT pg_catalog.setval('public.examination_type_examination_type_id_seq', 3, true); + + +-- +-- TOC entry 5204 (class 0 OID 0) +-- Dependencies: 233 +-- Name: examination_type_prescription_examination_prescription_id_seq; Type: SEQUENCE SET; Schema: public; Owner: postgres +-- + +SELECT pg_catalog.setval('public.examination_type_prescription_examination_prescription_id_seq', 12, true); + + +-- +-- TOC entry 5205 (class 0 OID 0) +-- Dependencies: 258 +-- Name: hospital_admission_hospital_admission_id_seq; Type: SEQUENCE SET; Schema: public; Owner: postgres +-- + +SELECT pg_catalog.setval('public.hospital_admission_hospital_admission_id_seq', 31, true); + + +-- +-- TOC entry 5206 (class 0 OID 0) +-- Dependencies: 260 +-- Name: hospital_discharge_hospital_discharge_id_seq; Type: SEQUENCE SET; Schema: public; Owner: postgres +-- + +SELECT pg_catalog.setval('public.hospital_discharge_hospital_discharge_id_seq', 1, true); + + +-- +-- TOC entry 5207 (class 0 OID 0) +-- Dependencies: 220 +-- Name: person_person_id_seq; Type: SEQUENCE SET; Schema: public; Owner: postgres +-- + +SELECT pg_catalog.setval('public.person_person_id_seq', 8, true); + + +-- +-- TOC entry 5208 (class 0 OID 0) +-- Dependencies: 227 +-- Name: prescription_prescription_id_seq; Type: SEQUENCE SET; Schema: public; Owner: postgres +-- + +SELECT pg_catalog.setval('public.prescription_prescription_id_seq', 24, true); + + +-- +-- TOC entry 5209 (class 0 OID 0) +-- Dependencies: 256 +-- Name: procedure_type_prescription_procedure_prescription_id_seq; Type: SEQUENCE SET; Schema: public; Owner: postgres +-- + +SELECT pg_catalog.setval('public.procedure_type_prescription_procedure_prescription_id_seq', 7, true); + + +-- +-- TOC entry 5210 (class 0 OID 0) +-- Dependencies: 254 +-- Name: procedure_type_procedure_type_id_seq; Type: SEQUENCE SET; Schema: public; Owner: postgres +-- + +SELECT pg_catalog.setval('public.procedure_type_procedure_type_id_seq', 3, true); + + +-- +-- TOC entry 5211 (class 0 OID 0) +-- Dependencies: 237 +-- Name: reference_value_reference_value_id_seq; Type: SEQUENCE SET; Schema: public; Owner: postgres +-- + +SELECT pg_catalog.setval('public.reference_value_reference_value_id_seq', 5, true); + + +-- +-- TOC entry 5212 (class 0 OID 0) +-- Dependencies: 231 +-- Name: result_result_id_seq; Type: SEQUENCE SET; Schema: public; Owner: postgres +-- + +SELECT pg_catalog.setval('public.result_result_id_seq', 10, true); + + +-- +-- TOC entry 5213 (class 0 OID 0) +-- Dependencies: 241 +-- Name: syndrome_type_syndrome_type_id_seq; Type: SEQUENCE SET; Schema: public; Owner: postgres +-- + +SELECT pg_catalog.setval('public.syndrome_type_syndrome_type_id_seq', 2, true); + + +-- +-- TOC entry 5214 (class 0 OID 0) +-- Dependencies: 225 +-- Name: unit_unit_id_seq; Type: SEQUENCE SET; Schema: public; Owner: postgres +-- + +SELECT pg_catalog.setval('public.unit_unit_id_seq', 10, true); + + +-- +-- TOC entry 4850 (class 2606 OID 180455) +-- Name: disease disease_icd_code_check; Type: CHECK CONSTRAINT; Schema: public; Owner: postgres +-- + +ALTER TABLE public.disease + ADD CONSTRAINT disease_icd_code_check CHECK ((icd_code ~ '^[A-Z][0-9]{2}\.[0-9]$'::text)) NOT VALID; + + +-- +-- TOC entry 4910 (class 2606 OID 179945) +-- Name: disease disease_icd_code_key; Type: CONSTRAINT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.disease + ADD CONSTRAINT disease_icd_code_key UNIQUE (icd_code); + + +-- +-- TOC entry 4912 (class 2606 OID 179943) +-- Name: disease disease_name_key; Type: CONSTRAINT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.disease + ADD CONSTRAINT disease_name_key UNIQUE (name); + + +-- +-- TOC entry 4914 (class 2606 OID 179941) +-- Name: disease disease_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.disease + ADD CONSTRAINT disease_pkey PRIMARY KEY (disease_id); + + +-- +-- TOC entry 4916 (class 2606 OID 179954) +-- Name: disease_syndrome disease_syndrome_disease_id_syndrome_id_key; Type: CONSTRAINT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.disease_syndrome + ADD CONSTRAINT disease_syndrome_disease_id_syndrome_id_key UNIQUE (disease_id, syndrome_id); + + +-- +-- TOC entry 4918 (class 2606 OID 179952) +-- Name: disease_syndrome disease_syndrome_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.disease_syndrome + ADD CONSTRAINT disease_syndrome_pkey PRIMARY KEY (disease_syndrome_id); + + +-- +-- TOC entry 4868 (class 2606 OID 179732) +-- Name: doctor doctor_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.doctor + ADD CONSTRAINT doctor_pkey PRIMARY KEY (doctor_id); + + +-- +-- TOC entry 4920 (class 2606 OID 180024) +-- Name: drug_intake_method drug_intake_method_name_key; Type: CONSTRAINT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.drug_intake_method + ADD CONSTRAINT drug_intake_method_name_key UNIQUE (name); + + +-- +-- TOC entry 4922 (class 2606 OID 180022) +-- Name: drug_intake_method drug_intake_method_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.drug_intake_method + ADD CONSTRAINT drug_intake_method_pkey PRIMARY KEY (drug_intake_method_id); + + +-- +-- TOC entry 4924 (class 2606 OID 180045) +-- Name: drug_type drug_type_brand_name_ru_key; Type: CONSTRAINT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.drug_type + ADD CONSTRAINT drug_type_brand_name_ru_key UNIQUE (brand_name_ru); + + +-- +-- TOC entry 4926 (class 2606 OID 180041) +-- Name: drug_type drug_type_international_name_en_key; Type: CONSTRAINT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.drug_type + ADD CONSTRAINT drug_type_international_name_en_key UNIQUE (international_name_en); + + +-- +-- TOC entry 4928 (class 2606 OID 180043) +-- Name: drug_type drug_type_international_name_la_key; Type: CONSTRAINT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.drug_type + ADD CONSTRAINT drug_type_international_name_la_key UNIQUE (international_name_la); + + +-- +-- TOC entry 4930 (class 2606 OID 180039) +-- Name: drug_type drug_type_international_name_ru_key; Type: CONSTRAINT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.drug_type + ADD CONSTRAINT drug_type_international_name_ru_key UNIQUE (international_name_ru); + + +-- +-- TOC entry 4932 (class 2606 OID 180037) +-- Name: drug_type drug_type_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.drug_type + ADD CONSTRAINT drug_type_pkey PRIMARY KEY (drug_type_id); + + +-- +-- TOC entry 4934 (class 2606 OID 180056) +-- Name: drug_type_prescription drug_type_prescription_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.drug_type_prescription + ADD CONSTRAINT drug_type_prescription_pkey PRIMARY KEY (drug_prescription_id); + + +-- +-- TOC entry 4936 (class 2606 OID 180058) +-- Name: drug_type_prescription drug_type_prescription_prescription_id_key; Type: CONSTRAINT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.drug_type_prescription + ADD CONSTRAINT drug_type_prescription_prescription_id_key UNIQUE (prescription_id); + + +-- +-- TOC entry 4878 (class 2606 OID 179788) +-- Name: examination_type examination_type_name_key; Type: CONSTRAINT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.examination_type + ADD CONSTRAINT examination_type_name_key UNIQUE (name); + + +-- +-- TOC entry 4880 (class 2606 OID 179786) +-- Name: examination_type examination_type_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.examination_type + ADD CONSTRAINT examination_type_pkey PRIMARY KEY (examination_type_id); + + +-- +-- TOC entry 4884 (class 2606 OID 179809) +-- Name: examination_type_prescription examination_type_prescription_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.examination_type_prescription + ADD CONSTRAINT examination_type_prescription_pkey PRIMARY KEY (examination_prescription_id); + + +-- +-- TOC entry 4886 (class 2606 OID 179811) +-- Name: examination_type_prescription examination_type_prescription_prescription_id_key; Type: CONSTRAINT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.examination_type_prescription + ADD CONSTRAINT examination_type_prescription_prescription_id_key UNIQUE (prescription_id); + + +-- +-- TOC entry 4946 (class 2606 OID 185818) +-- Name: hospital_admission hospital_admission_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.hospital_admission + ADD CONSTRAINT hospital_admission_pkey PRIMARY KEY (hospital_admission_id); + + +-- +-- TOC entry 4948 (class 2606 OID 185838) +-- Name: hospital_discharge hospital_discharge_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.hospital_discharge + ADD CONSTRAINT hospital_discharge_pkey PRIMARY KEY (hospital_discharge_id); + + +-- +-- TOC entry 4888 (class 2606 OID 179833) +-- Name: numeric_result numeric_result_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.numeric_result + ADD CONSTRAINT numeric_result_pkey PRIMARY KEY (result_id); + + +-- +-- TOC entry 4866 (class 2606 OID 179722) +-- Name: patient patient_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.patient + ADD CONSTRAINT patient_pkey PRIMARY KEY (patient_id); + + +-- +-- TOC entry 4950 (class 2606 OID 185860) +-- Name: person_account person_account_person_id_key; Type: CONSTRAINT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.person_account + ADD CONSTRAINT person_account_person_id_key UNIQUE (person_id); + + +-- +-- TOC entry 4864 (class 2606 OID 179714) +-- Name: person person_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.person + ADD CONSTRAINT person_pkey PRIMARY KEY (person_id); + + +-- +-- TOC entry 4876 (class 2606 OID 179766) +-- Name: prescription prescription_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.prescription + ADD CONSTRAINT prescription_pkey PRIMARY KEY (prescription_id); + + +-- +-- TOC entry 4938 (class 2606 OID 180090) +-- Name: procedure_type procedure_type_name_key; Type: CONSTRAINT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.procedure_type + ADD CONSTRAINT procedure_type_name_key UNIQUE (name); + + +-- +-- TOC entry 4940 (class 2606 OID 180088) +-- Name: procedure_type procedure_type_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.procedure_type + ADD CONSTRAINT procedure_type_pkey PRIMARY KEY (procedure_type_id); + + +-- +-- TOC entry 4942 (class 2606 OID 180097) +-- Name: procedure_type_prescription procedure_type_prescription_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.procedure_type_prescription + ADD CONSTRAINT procedure_type_prescription_pkey PRIMARY KEY (procedure_prescription_id); + + +-- +-- TOC entry 4944 (class 2606 OID 180099) +-- Name: procedure_type_prescription procedure_type_prescription_prescription_id_key; Type: CONSTRAINT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.procedure_type_prescription + ADD CONSTRAINT procedure_type_prescription_prescription_id_key UNIQUE (prescription_id); + + +-- +-- TOC entry 4890 (class 2606 OID 179848) +-- Name: qualitative_result qualitative_result_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.qualitative_result + ADD CONSTRAINT qualitative_result_pkey PRIMARY KEY (result_id); + + +-- +-- TOC entry 4896 (class 2606 OID 179875) +-- Name: reference_numeric_value reference_numeric_value_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.reference_numeric_value + ADD CONSTRAINT reference_numeric_value_pkey PRIMARY KEY (reference_value_id); + + +-- +-- TOC entry 4898 (class 2606 OID 179896) +-- Name: reference_qualitative_value reference_qualitative_value_description_true_description_fa_key; Type: CONSTRAINT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.reference_qualitative_value + ADD CONSTRAINT reference_qualitative_value_description_true_description_fa_key UNIQUE (description_true, description_false); + + +-- +-- TOC entry 4900 (class 2606 OID 179894) +-- Name: reference_qualitative_value reference_qualitative_value_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.reference_qualitative_value + ADD CONSTRAINT reference_qualitative_value_pkey PRIMARY KEY (reference_value_id); + + +-- +-- TOC entry 4892 (class 2606 OID 185773) +-- Name: reference_value reference_value_examination_type_id_gender_age_min_age_max_key; Type: CONSTRAINT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.reference_value + ADD CONSTRAINT reference_value_examination_type_id_gender_age_min_age_max_key UNIQUE (examination_type_id, gender, age_min, age_max); + + +-- +-- TOC entry 4894 (class 2606 OID 179861) +-- Name: reference_value reference_value_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.reference_value + ADD CONSTRAINT reference_value_pkey PRIMARY KEY (reference_value_id); + + +-- +-- TOC entry 4870 (class 2606 OID 179742) +-- Name: registrar registrar_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.registrar + ADD CONSTRAINT registrar_pkey PRIMARY KEY (registrar_id); + + +-- +-- TOC entry 4882 (class 2606 OID 179795) +-- Name: result result_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.result + ADD CONSTRAINT result_pkey PRIMARY KEY (result_id); + + +-- +-- TOC entry 4906 (class 2606 OID 179920) +-- Name: syndrome_examination_type syndrome_examination_type_examination_type_id_key; Type: CONSTRAINT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.syndrome_examination_type + ADD CONSTRAINT syndrome_examination_type_examination_type_id_key UNIQUE (examination_type_id); + + +-- +-- TOC entry 4908 (class 2606 OID 179918) +-- Name: syndrome_examination_type syndrome_examination_type_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.syndrome_examination_type + ADD CONSTRAINT syndrome_examination_type_pkey PRIMARY KEY (syndrome_id); + + +-- +-- TOC entry 4902 (class 2606 OID 179913) +-- Name: syndrome_type syndrome_type_name_key; Type: CONSTRAINT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.syndrome_type + ADD CONSTRAINT syndrome_type_name_key UNIQUE (name); + + +-- +-- TOC entry 4904 (class 2606 OID 179911) +-- Name: syndrome_type syndrome_type_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.syndrome_type + ADD CONSTRAINT syndrome_type_pkey PRIMARY KEY (syndrome_type_id); + + +-- +-- TOC entry 4872 (class 2606 OID 179759) +-- Name: unit unit_name_key; Type: CONSTRAINT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.unit + ADD CONSTRAINT unit_name_key UNIQUE (name); + + +-- +-- TOC entry 4874 (class 2606 OID 179757) +-- Name: unit unit_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.unit + ADD CONSTRAINT unit_pkey PRIMARY KEY (unit_id); + + +-- +-- TOC entry 4984 (class 2620 OID 185849) +-- Name: hospital_admission trg_check_active_hospitalization; Type: TRIGGER; Schema: public; Owner: postgres +-- + +CREATE TRIGGER trg_check_active_hospitalization BEFORE INSERT ON public.hospital_admission FOR EACH ROW EXECUTE FUNCTION public.check_active_hospitalization(); + + +-- +-- TOC entry 4986 (class 2620 OID 185851) +-- Name: hospital_discharge trg_check_discharge_after_admission; Type: TRIGGER; Schema: public; Owner: postgres +-- + +CREATE TRIGGER trg_check_discharge_after_admission BEFORE INSERT OR UPDATE ON public.hospital_discharge FOR EACH ROW EXECUTE FUNCTION public.check_discharge_after_admission(); + + +-- +-- TOC entry 4985 (class 2620 OID 185850) +-- Name: hospital_admission trg_check_hospitalization_overlap; Type: TRIGGER; Schema: public; Owner: postgres +-- + +CREATE TRIGGER trg_check_hospitalization_overlap BEFORE INSERT ON public.hospital_admission FOR EACH ROW EXECUTE FUNCTION public.check_hospitalization_overlap(); + + +-- +-- TOC entry 4982 (class 2620 OID 180121) +-- Name: numeric_result trg_check_numeric_result_uniqueness; Type: TRIGGER; Schema: public; Owner: postgres +-- + +CREATE TRIGGER trg_check_numeric_result_uniqueness BEFORE INSERT OR UPDATE ON public.numeric_result FOR EACH ROW EXECUTE FUNCTION public.check_numeric_result_uniqueness(); + + +-- +-- TOC entry 4983 (class 2620 OID 180123) +-- Name: qualitative_result trg_check_qualitative_result_uniqueness; Type: TRIGGER; Schema: public; Owner: postgres +-- + +CREATE TRIGGER trg_check_qualitative_result_uniqueness BEFORE INSERT OR UPDATE ON public.qualitative_result FOR EACH ROW EXECUTE FUNCTION public.check_qualitative_result_uniqueness(); + + +-- +-- TOC entry 4987 (class 2620 OID 185852) +-- Name: hospital_discharge trg_check_unique_discharge; Type: TRIGGER; Schema: public; Owner: postgres +-- + +CREATE TRIGGER trg_check_unique_discharge BEFORE INSERT OR UPDATE ON public.hospital_discharge FOR EACH ROW EXECUTE FUNCTION public.check_unique_discharge(); + + +-- +-- TOC entry 4988 (class 2620 OID 185868) +-- Name: person_account trigger_create_account; Type: TRIGGER; Schema: public; Owner: postgres +-- + +CREATE TRIGGER trigger_create_account BEFORE INSERT ON public.person_account FOR EACH ROW EXECUTE FUNCTION public.create_person_account(); + + +-- +-- TOC entry 4969 (class 2606 OID 179955) +-- Name: disease_syndrome disease_syndrome_disease_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.disease_syndrome + ADD CONSTRAINT disease_syndrome_disease_id_fkey FOREIGN KEY (disease_id) REFERENCES public.disease(disease_id) ON DELETE CASCADE; + + +-- +-- TOC entry 4970 (class 2606 OID 179960) +-- Name: disease_syndrome disease_syndrome_syndrome_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.disease_syndrome + ADD CONSTRAINT disease_syndrome_syndrome_id_fkey FOREIGN KEY (syndrome_id) REFERENCES public.syndrome_type(syndrome_type_id) ON DELETE CASCADE; + + +-- +-- TOC entry 4952 (class 2606 OID 179733) +-- Name: doctor doctor_doctor_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.doctor + ADD CONSTRAINT doctor_doctor_id_fkey FOREIGN KEY (doctor_id) REFERENCES public.person(person_id); + + +-- +-- TOC entry 4971 (class 2606 OID 180069) +-- Name: drug_type_prescription drug_type_prescription_dose_unit_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.drug_type_prescription + ADD CONSTRAINT drug_type_prescription_dose_unit_id_fkey FOREIGN KEY (dose_unit_id) REFERENCES public.unit(unit_id) ON DELETE RESTRICT; + + +-- +-- TOC entry 4972 (class 2606 OID 180064) +-- Name: drug_type_prescription drug_type_prescription_drug_type_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.drug_type_prescription + ADD CONSTRAINT drug_type_prescription_drug_type_id_fkey FOREIGN KEY (drug_type_id) REFERENCES public.drug_type(drug_type_id) ON DELETE RESTRICT; + + +-- +-- TOC entry 4973 (class 2606 OID 180074) +-- Name: drug_type_prescription drug_type_prescription_intake_method_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.drug_type_prescription + ADD CONSTRAINT drug_type_prescription_intake_method_id_fkey FOREIGN KEY (intake_method_id) REFERENCES public.drug_intake_method(drug_intake_method_id) ON DELETE RESTRICT; + + +-- +-- TOC entry 4974 (class 2606 OID 180059) +-- Name: drug_type_prescription drug_type_prescription_prescription_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.drug_type_prescription + ADD CONSTRAINT drug_type_prescription_prescription_id_fkey FOREIGN KEY (prescription_id) REFERENCES public.prescription(prescription_id) ON DELETE CASCADE; + + +-- +-- TOC entry 4957 (class 2606 OID 179822) +-- Name: examination_type_prescription examination_type_prescription_examination_type_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.examination_type_prescription + ADD CONSTRAINT examination_type_prescription_examination_type_id_fkey FOREIGN KEY (examination_type_id) REFERENCES public.examination_type(examination_type_id) ON DELETE CASCADE; + + +-- +-- TOC entry 4958 (class 2606 OID 179812) +-- Name: examination_type_prescription examination_type_prescription_prescription_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.examination_type_prescription + ADD CONSTRAINT examination_type_prescription_prescription_id_fkey FOREIGN KEY (prescription_id) REFERENCES public.prescription(prescription_id) ON DELETE CASCADE; + + +-- +-- TOC entry 4959 (class 2606 OID 179817) +-- Name: examination_type_prescription examination_type_prescription_result_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.examination_type_prescription + ADD CONSTRAINT examination_type_prescription_result_id_fkey FOREIGN KEY (result_id) REFERENCES public.result(result_id) ON DELETE CASCADE; + + +-- +-- TOC entry 4977 (class 2606 OID 185819) +-- Name: hospital_admission hospital_admission_patient_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.hospital_admission + ADD CONSTRAINT hospital_admission_patient_id_fkey FOREIGN KEY (patient_id) REFERENCES public.patient(patient_id) ON DELETE CASCADE; + + +-- +-- TOC entry 4978 (class 2606 OID 185824) +-- Name: hospital_admission hospital_admission_preliminary_disease_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.hospital_admission + ADD CONSTRAINT hospital_admission_preliminary_disease_id_fkey FOREIGN KEY (preliminary_disease_id) REFERENCES public.disease(disease_id); + + +-- +-- TOC entry 4979 (class 2606 OID 185844) +-- Name: hospital_discharge hospital_discharge_final_disease_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.hospital_discharge + ADD CONSTRAINT hospital_discharge_final_disease_id_fkey FOREIGN KEY (final_disease_id) REFERENCES public.disease(disease_id); + + +-- +-- TOC entry 4980 (class 2606 OID 185839) +-- Name: hospital_discharge hospital_discharge_hospital_admission_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.hospital_discharge + ADD CONSTRAINT hospital_discharge_hospital_admission_id_fkey FOREIGN KEY (hospital_admission_id) REFERENCES public.hospital_admission(hospital_admission_id) ON DELETE CASCADE; + + +-- +-- TOC entry 4960 (class 2606 OID 180445) +-- Name: numeric_result numeric_result_result_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.numeric_result + ADD CONSTRAINT numeric_result_result_id_fkey FOREIGN KEY (result_id) REFERENCES public.result(result_id) NOT VALID; + + +-- +-- TOC entry 4961 (class 2606 OID 179839) +-- Name: numeric_result numeric_result_unit_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.numeric_result + ADD CONSTRAINT numeric_result_unit_id_fkey FOREIGN KEY (unit_id) REFERENCES public.unit(unit_id) ON DELETE RESTRICT; + + +-- +-- TOC entry 4951 (class 2606 OID 179723) +-- Name: patient patient_patient_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.patient + ADD CONSTRAINT patient_patient_id_fkey FOREIGN KEY (patient_id) REFERENCES public.person(person_id); + + +-- +-- TOC entry 4981 (class 2606 OID 185861) +-- Name: person_account person_account_person_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.person_account + ADD CONSTRAINT person_account_person_id_fkey FOREIGN KEY (person_id) REFERENCES public.person(person_id); + + +-- +-- TOC entry 4954 (class 2606 OID 179772) +-- Name: prescription prescription_doctor_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.prescription + ADD CONSTRAINT prescription_doctor_id_fkey FOREIGN KEY (doctor_id) REFERENCES public.doctor(doctor_id) ON DELETE RESTRICT; + + +-- +-- TOC entry 4955 (class 2606 OID 179767) +-- Name: prescription prescription_patient_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.prescription + ADD CONSTRAINT prescription_patient_id_fkey FOREIGN KEY (patient_id) REFERENCES public.patient(patient_id) ON DELETE CASCADE; + + +-- +-- TOC entry 4975 (class 2606 OID 180100) +-- Name: procedure_type_prescription procedure_type_prescription_prescription_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.procedure_type_prescription + ADD CONSTRAINT procedure_type_prescription_prescription_id_fkey FOREIGN KEY (prescription_id) REFERENCES public.prescription(prescription_id) ON DELETE CASCADE; + + +-- +-- TOC entry 4976 (class 2606 OID 180105) +-- Name: procedure_type_prescription procedure_type_prescription_procedure_type_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.procedure_type_prescription + ADD CONSTRAINT procedure_type_prescription_procedure_type_id_fkey FOREIGN KEY (procedure_type_id) REFERENCES public.procedure_type(procedure_type_id) ON DELETE RESTRICT; + + +-- +-- TOC entry 4962 (class 2606 OID 180450) +-- Name: qualitative_result qualitative_result_result_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.qualitative_result + ADD CONSTRAINT qualitative_result_result_id_fkey FOREIGN KEY (result_id) REFERENCES public.result(result_id) NOT VALID; + + +-- +-- TOC entry 4964 (class 2606 OID 179876) +-- Name: reference_numeric_value reference_numeric_value_reference_value_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.reference_numeric_value + ADD CONSTRAINT reference_numeric_value_reference_value_id_fkey FOREIGN KEY (reference_value_id) REFERENCES public.reference_value(reference_value_id) ON DELETE CASCADE; + + +-- +-- TOC entry 4965 (class 2606 OID 179881) +-- Name: reference_numeric_value reference_numeric_value_unit_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.reference_numeric_value + ADD CONSTRAINT reference_numeric_value_unit_id_fkey FOREIGN KEY (unit_id) REFERENCES public.unit(unit_id) ON DELETE RESTRICT; + + +-- +-- TOC entry 4966 (class 2606 OID 179897) +-- Name: reference_qualitative_value reference_qualitative_value_reference_value_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.reference_qualitative_value + ADD CONSTRAINT reference_qualitative_value_reference_value_id_fkey FOREIGN KEY (reference_value_id) REFERENCES public.reference_value(reference_value_id) ON DELETE CASCADE; + + +-- +-- TOC entry 4963 (class 2606 OID 179864) +-- Name: reference_value reference_value_examination_type_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.reference_value + ADD CONSTRAINT reference_value_examination_type_id_fkey FOREIGN KEY (examination_type_id) REFERENCES public.examination_type(examination_type_id) ON DELETE CASCADE; + + +-- +-- TOC entry 4953 (class 2606 OID 179743) +-- Name: registrar registrar_registrar_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.registrar + ADD CONSTRAINT registrar_registrar_id_fkey FOREIGN KEY (registrar_id) REFERENCES public.person(person_id); + + +-- +-- TOC entry 4956 (class 2606 OID 179798) +-- Name: result result_examination_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.result + ADD CONSTRAINT result_examination_id_fkey FOREIGN KEY (examination_id) REFERENCES public.examination_type(examination_type_id) ON DELETE CASCADE; + + +-- +-- TOC entry 4967 (class 2606 OID 179926) +-- Name: syndrome_examination_type syndrome_examination_type_examination_type_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.syndrome_examination_type + ADD CONSTRAINT syndrome_examination_type_examination_type_id_fkey FOREIGN KEY (examination_type_id) REFERENCES public.examination_type(examination_type_id) ON DELETE CASCADE; + + +-- +-- TOC entry 4968 (class 2606 OID 179921) +-- Name: syndrome_examination_type syndrome_examination_type_syndrome_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres +-- + +ALTER TABLE ONLY public.syndrome_examination_type + ADD CONSTRAINT syndrome_examination_type_syndrome_id_fkey FOREIGN KEY (syndrome_id) REFERENCES public.syndrome_type(syndrome_type_id) ON DELETE CASCADE; + + +-- Completed on 2025-12-01 18:47:43 + +-- +-- PostgreSQL database dump complete +-- + diff --git a/migrations/backup_tar.sql b/migrations/backup_tar.sql new file mode 100644 index 0000000000000000000000000000000000000000..12a86511c6741bd47c353adaa75e20d61327e40e GIT binary patch literal 188928 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 literal 0 HcmV?d00001 diff --git a/migrations/copy_from_csv.sql b/migrations/copy_from_csv.sql new file mode 100644 index 0000000..411f34a --- /dev/null +++ b/migrations/copy_from_csv.sql @@ -0,0 +1,3 @@ +TRUNCATE TABLE units RESTART IDENTITY CASCADE; + +\copy units(name) FROM 'csv/units.csv' WITH (FORMAT csv, HEADER); diff --git a/migrations/csv/female_first_names.csv b/migrations/csv/female_first_names.csv new file mode 100644 index 0000000..d26a90c --- /dev/null +++ b/migrations/csv/female_first_names.csv @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/migrations/csv/female_last_names.csv b/migrations/csv/female_last_names.csv new file mode 100644 index 0000000..d3b0089 --- /dev/null +++ b/migrations/csv/female_last_names.csv @@ -0,0 +1,10 @@ + + + + + + + + +Ը + diff --git a/migrations/csv/female_middle_names.csv b/migrations/csv/female_middle_names.csv new file mode 100644 index 0000000..3c8516f --- /dev/null +++ b/migrations/csv/female_middle_names.csv @@ -0,0 +1,10 @@ + + + + + + +Ը + + + diff --git a/migrations/csv/male_first_names.csv b/migrations/csv/male_first_names.csv new file mode 100644 index 0000000..559afe9 --- /dev/null +++ b/migrations/csv/male_first_names.csv @@ -0,0 +1,10 @@ + + +ϸ + + + + + + + diff --git a/migrations/csv/male_last_names.csv b/migrations/csv/male_last_names.csv new file mode 100644 index 0000000..dadd04a --- /dev/null +++ b/migrations/csv/male_last_names.csv @@ -0,0 +1,10 @@ + + + + + + + + +Ը + diff --git a/migrations/csv/male_middle_names.csv b/migrations/csv/male_middle_names.csv new file mode 100644 index 0000000..fee232d --- /dev/null +++ b/migrations/csv/male_middle_names.csv @@ -0,0 +1,10 @@ + + + + + + +Ը + + + diff --git a/migrations/csv/streets.csv b/migrations/csv/streets.csv new file mode 100644 index 0000000..6bcac85 --- /dev/null +++ b/migrations/csv/streets.csv @@ -0,0 +1,10 @@ +. +. +. +. +. +. +. +. +. +. diff --git a/migrations/csv/units.csv b/migrations/csv/units.csv new file mode 100644 index 0000000..e454a32 --- /dev/null +++ b/migrations/csv/units.csv @@ -0,0 +1,10 @@ +name +мг/л +г/л +ммоль/л +мкмоль/л +ед/л +% +тыс/мкл +мл +мм \ No newline at end of file diff --git a/migrations/functions.sql b/migrations/functions.sql new file mode 100644 index 0000000..10c8759 --- /dev/null +++ b/migrations/functions.sql @@ -0,0 +1,72 @@ +-- Функция: нет двойных пробелов подряд +CREATE OR REPLACE FUNCTION no_double_space (str text) + RETURNS boolean + AS $$ +BEGIN + RETURN str !~ E'\s{2,}'; +END; +$$ +LANGUAGE plpgsql +IMMUTABLE; + +-- Функция: нет пробелов в начале и конце строки +CREATE OR REPLACE FUNCTION no_space_start_end (str text) + RETURNS boolean + AS $$ +BEGIN + RETURN str !~ E'^\s' + AND str !~ E'\s$'; +END; +$$ +LANGUAGE plpgsql +IMMUTABLE; + +-- Функция: нет пробелов вообще +CREATE OR REPLACE FUNCTION no_space (str text) + RETURNS boolean + AS $$ +BEGIN + RETURN str !~ E'\s'; +END; +$$ +LANGUAGE plpgsql +IMMUTABLE; + +-- Функция: длина строки в заданных границах +CREATE OR REPLACE FUNCTION str_length_between (str text, min_len int, max_len int) + RETURNS boolean + AS $$ +BEGIN + RETURN LENGTH(str) BETWEEN min_len AND max_len; +END; +$$ +LANGUAGE plpgsql +IMMUTABLE; + +-- Функция: стандартная проверка для слова +CREATE OR REPLACE FUNCTION default_word_check (str text) + RETURNS boolean + AS $$ +BEGIN + RETURN str IS NULL + OR no_space (str) + AND str_length_between (str, 1, 64); +END; +$$ +LANGUAGE plpgsql +IMMUTABLE; + +-- Функция: стандартная проверка для строки +CREATE OR REPLACE FUNCTION default_str_check (str text) + RETURNS boolean + AS $$ +BEGIN + RETURN str IS NULL + OR no_double_space (str) + AND no_space_start_end (str) + AND str_length_between (str, 1, 128); +END; +$$ +LANGUAGE plpgsql +IMMUTABLE; + diff --git a/migrations/insert_persons.sql b/migrations/insert_persons.sql new file mode 100644 index 0000000..0bc876d --- /dev/null +++ b/migrations/insert_persons.sql @@ -0,0 +1,134 @@ +-- Генерация целочисленного значения в диапазоне +CREATE OR REPLACE FUNCTION random_int (min_val int, max_val int) + RETURNS int + AS $$ +BEGIN + RETURN min_val + trunc(random() * (max_val - min_val + 1))::int; +END; +$$ +LANGUAGE plpgsql +VOLATILE; + +-- Генерация даты рождения в диапазоне +CREATE OR REPLACE FUNCTION random_date () + RETURNS date + AS $$ +DECLARE + from_date date := '1950-01-01'; + to_date date := '2010-12-31'; +BEGIN + RETURN from_date + random_int (0, to_date - from_date); +END; +$$ +LANGUAGE plpgsql +VOLATILE; + +-- Генерация адреса проживания +CREATE OR REPLACE FUNCTION random_address (street text) + RETURNS text + AS $$ +BEGIN + RETURN street || ', дом ' || random_int (1, 40) || ', квартира ' || random_int (40, 120); +END; +$$ +LANGUAGE plpgsql +VOLATILE; + +-- --- Подготовленные общие данные --- +CREATE TEMP TABLE streets ( + street text +); + +\copy streets FROM 'csv/streets.csv' (FORMAT csv); +-- --- Подготовленные данные для генерации мужских записей --- +CREATE TEMP TABLE male_last_names ( + last_name text +); + +\copy male_last_names FROM 'csv/male_last_names.csv' (FORMAT csv); +CREATE TEMP TABLE male_first_names ( + first_name text +); + +\copy male_first_names FROM 'csv/male_first_names.csv' (FORMAT csv); +CREATE TEMP TABLE male_middle_names ( + middle_name text +); + +\copy male_middle_names FROM 'csv/male_middle_names.csv' (FORMAT csv); +-- Подготовленные данные для генерации женских записей +CREATE TEMP TABLE female_last_names ( + last_name text +); + +\copy female_last_names FROM 'csv/female_last_names.csv' (FORMAT csv); +CREATE TEMP TABLE female_first_names ( + first_name text +); + +\copy female_first_names FROM 'csv/female_first_names.csv' (FORMAT csv); +CREATE TEMP TABLE female_middle_names ( + middle_name text +); + +\copy female_middle_names FROM 'csv/female_middle_names.csv' (FORMAT csv); +-- Генерация -- +-- Удаление старых данных +TRUNCATE TABLE persons RESTART IDENTITY CASCADE; + +-- Генерация записей +INSERT INTO persons (last_name, first_name, middle_name, birth_date, gender, address) +SELECT + last_name, + first_name, + middle_name, + random_date (), + gender_enum, + random_address (street) +FROM ( + -- Мужские записи + SELECT + ml.last_name, + mf.first_name, + mm.middle_name, + 'male'::gender_enum, + s.street + FROM + male_last_names ml + CROSS JOIN male_first_names mf + CROSS JOIN male_middle_names mm + CROSS JOIN streets s +UNION ALL +-- Женские записи +SELECT + fl.last_name, + ff.first_name, + fm.middle_name, + 'female'::gender_enum, + s.street +FROM + female_last_names fl + CROSS JOIN female_first_names ff + CROSS JOIN female_middle_names fm + CROSS JOIN streets s) all_people +ORDER BY + random(); + +DROP TABLE IF EXISTS streets; + +DROP TABLE IF EXISTS male_last_names; + +DROP TABLE IF EXISTS male_first_names; + +DROP TABLE IF EXISTS male_middle_names; + +DROP TABLE IF EXISTS female_last_names; + +DROP TABLE IF EXISTS female_first_names; + +DROP TABLE IF EXISTS female_middle_names; + +DROP FUNCTION IF EXISTS random_date (); + +DROP FUNCTION IF EXISTS random_address (TEXT); + diff --git a/migrations/reports.sql b/migrations/reports.sql new file mode 100644 index 0000000..008bfe4 --- /dev/null +++ b/migrations/reports.sql @@ -0,0 +1,23 @@ +CREATE OR REPLACE FUNCTION get_results() +RETURNS TABLE ("Пациент" text, "Обследование" text, "Результат" varchar) +AS $$ +BEGIN + RETURN QUERY(SELECT pa.policy_number, et.name, COALESCE(qr.value::varchar, CONCAT(nr.value || ' ' || u.name)) + FROM patient pa + LEFT JOIN prescription pr + ON pa.patient_id = pr.patient_id + LEFT JOIN examination_type_prescription etp + ON pr.prescription_id = etp.prescription_id + LEFT JOIN examination_type et + ON et.examination_type_id = etp.examination_type_id + LEFT JOIN result r + ON etp.result_id = r.result_id + LEFT JOIN qualitative_result qr + ON r.result_id = qr.result_id + LEFT JOIN numeric_result nr + ON r.result_id = nr.result_id + LEFT JOIN unit u + ON nr.unit_id = u.unit_id + WHERE et.name IS NOT NULL); +END; +$$ LANGUAGE plpgsql; \ No newline at end of file diff --git a/migrations/tables.sql b/migrations/tables.sql new file mode 100644 index 0000000..2aa4a67 --- /dev/null +++ b/migrations/tables.sql @@ -0,0 +1,286 @@ +-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = +-- Люди +-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = +-- +-- Справочник людей +CREATE TABLE person ( + person_id serial PRIMARY KEY, + -- фамилия + last_name text NOT NULL CHECK (default_word_check (last_name)), + -- имя + first_name text NOT NULL CHECK (default_word_check (first_name)), + -- отчество + middle_name text CHECK (default_word_check (middle_name)), + -- дата рождения + birth_date date NOT NULL CHECK (birth_date <= CURRENT_DATE), + -- пол + gender string NOT NULL, + -- место жительства + address text NOT NULL CHECK (default_str_check (address)) +); + +-- Справочник пациентов +CREATE TABLE patient ( + patient_id int PRIMARY KEY REFERENCES person (person_id), + policy_number text NOT NULL CHECK (policy_number ~ '^[0-9]{16}$') +); + +-- Справочник врачей +CREATE TABLE doctor ( + doctor_id int PRIMARY KEY REFERENCES person (person_id) +); + +CREATE TABLE registrar ( + registrar_id int PRIMARY KEY REFERENCES person (person_id) +); + +-- Справочник единиц измерения для числовых результатов +CREATE TABLE unit ( + unit_id serial PRIMARY KEY, + name text NOT NULL CHECK (name ~ '^[а-яА-ЯёЁ%^/]+$' AND str_length_between (name, 1, 16)), + UNIQUE (name) +); + +-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = +-- Назначения +-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = +-- +-- Базовая таблица назначения (TPT) +CREATE TABLE prescription ( + prescription_id serial PRIMARY KEY, + -- пациент + patient_id int NOT NULL REFERENCES patient (patient_id) ON DELETE CASCADE, + -- врач + doctor_id int NOT NULL REFERENCES doctor (doctor_id) ON DELETE RESTRICT +); + +-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = +-- Обследования +-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = +-- +-- Справочник типов обследований (Общий анализ крови", "ЭКГ", "УЗИ печени") +CREATE TABLE examination_type ( + examination_type_id serial PRIMARY KEY, + -- название типа обследования (одно слово, без пробелов) + name text NOT NULL CHECK (default_word_check (name)), + -- категория обследования + category text NOT NULL, + UNIQUE (name) +); + +-- Общая таблица результатов обследований (TPT) +CREATE TABLE result ( + result_id serial PRIMARY KEY, + examination_id int NOT NULL REFERENCES examination_type (examination_type_id) ON DELETE CASCADE, +); + +-- Журнал фактических обследований пациентов +CREATE TABLE examination_type_prescription ( + examination_prescription_id serial PRIMARY KEY, + prescription_id int NOT NULL REFERENCES prescription (prescription_id) ON DELETE CASCADE, + result_id int REFERENCES result (result_id) ON DELETE CASCADE, + -- тип обследования + examination_type_id int NOT NULL REFERENCES examination_type (examination_type_id) ON DELETE CASCADE, + UNIQUE (prescription_id) +); + +-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = +-- Фактические результаты обследований +-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = +-- + +-- Числовой результат обследования пациента (только один на обследование) +CREATE TABLE numeric_result ( + -- обследование пациента + result_id int PRIMARY KEY REFERENCES result (result_id) ON DELETE CASCADE, + -- значение результата + value numeric NOT NULL, + -- единица измерения + unit_id int NOT NULL REFERENCES unit (unit_id) ON DELETE RESTRICT +); + +-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = +-- Нормальные результаты обследований +-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = +-- +-- Качественный результат обследования пациента (только один на обследование) +CREATE TABLE qualitative_result ( + -- обследование пациента + result_id int PRIMARY KEY REFERENCES result (result_id) ON DELETE CASCADE, + -- признак отклонения + value boolean NOT NULL +); + +-- Общая таблица для справочника референсных (нормальных) значений (TPT) +CREATE TABLE reference_value ( + reference_value_id serial PRIMARY KEY, + examination_type_id int NOT NULL REFERENCES examination_type (examination_type_id) ON DELETE CASCADE, + gender text, -- пол (если норма специфична) + age_min int, -- нижняя граница возраста (если есть зависимость) + age_max int, -- верхняя граница возраста (если есть зависимость) + CHECK ( + (age_min IS NULL OR age_max IS NULL) -- если один из параметров не задан, не сравниваем + OR (age_min < age_max) -- если оба заданы, min < max + ), + UNIQUE (examination_type_id, gender, age_min, age_max) +); + +-- Справочник референсных (нормальных) значений для числовых обследований +CREATE TABLE reference_numeric_value ( + reference_value_id int PRIMARY KEY REFERENCES reference_value (reference_value_id) ON DELETE CASCADE, + min_value numeric, + max_value numeric, + unit_id int NOT NULL REFERENCES unit (unit_id) ON DELETE RESTRICT +); + +-- Справочник референсных (нормальных) значений для качественных обследований +CREATE TABLE reference_qualitative_value ( + reference_value_id int PRIMARY KEY REFERENCES reference_value (reference_value_id) ON DELETE CASCADE, + description_true text NOT NULL CHECK (default_word_check (description_true)), + description_false text NOT NULL CHECK (default_word_check (description_false)), + UNIQUE (description_true, description_false) +); + +-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = +-- Синдромы +-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = +-- +-- Справочник синдромов +CREATE TABLE syndrome_type ( + syndrome_type_id serial PRIMARY KEY, + name text NOT NULL CHECK (default_word_check (name)), + UNIQUE (name) +); + +-- Соответствие синдромов и типов обследований (определяет, какое обследование позволяет определить синдром) +CREATE TABLE syndrome_examination_type ( + syndrome_id int PRIMARY KEY REFERENCES syndrome_type (syndrome_type_id) ON DELETE CASCADE, + examination_type_id int NOT NULL REFERENCES examination_type (examination_type_id) ON DELETE CASCADE, + UNIQUE (examination_type_id) +); + +-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = +-- Болезни и диагнозы +-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = +-- +-- Справочник заболеваний +CREATE TABLE disease ( + disease_id serial PRIMARY KEY, + -- русское наименование + name text NOT NULL CHECK (default_str_check (name)), + -- код МКБ в формате A12.3 + icd_code text NOT NULL CHECK (icd_code ~ '^[A-Z][0-9]{2}\.[0-9]$'), + UNIQUE (name), + UNIQUE (icd_code) +); + +-- Соответствие заболеваний и синдромов +CREATE TABLE disease_syndrome ( + disease_syndrome_id SERIAL PRIMARY KEY, + disease_id int NOT NULL REFERENCES disease (disease_id) ON DELETE CASCADE, + syndrome_id int NOT NULL REFERENCES syndrome_type (syndrome_type_id) ON DELETE CASCADE, + UNIQUE (disease_id, syndrome_id) +); + +-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = +-- Госпитализация +-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = +-- +-- Госпитализация (начало) +CREATE TABLE hospital_admission ( + hospital_admission_id serial PRIMARY KEY, + -- пациент + patient_id int NOT NULL REFERENCES patient (patient_id) ON DELETE CASCADE, + -- предварительный диагноз + preliminary_disease_id int NOT NULL REFERENCES disease (disease_id), + -- дата и время поступления + admission_datetime timestamp NOT NULL CHECK (admission_datetime <= CURRENT_TIMESTAMP) +); + +-- Завершение госпитализации +CREATE TABLE hospital_discharge ( + hospital_discharge_id serial PRIMARY KEY, + hospital_admission_id int NOT NULL REFERENCES hospital_admission (hospital_admission_id) ON DELETE CASCADE, + -- дата и время выписки/смерти + discharge_datetime timestamp NOT NULL CHECK (discharge_datetime <= CURRENT_TIMESTAMP), + final_disease_id int NOT NULL REFERENCES disease (disease_id), + -- причина завершения + reason text NOT NULL +); + +-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = +-- Лекарства +-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = +-- +-- Справочник способов приёма лекарств +CREATE TABLE drug_intake_method ( + drug_intake_method_id serial PRIMARY KEY, + -- наименование способа (например, "перорально", "внутримышечно", "внутривенно", "ингаляционно", "ректально") + name text NOT NULL CHECK (default_word_check (name)), + UNIQUE (name) +); + +-- Справочник лекарств +CREATE TABLE drug_type ( + drug_type_id serial PRIMARY KEY, + international_name_ru text NOT NULL CHECK (default_word_check (international_name_ru)), + international_name_en text CHECK (default_word_check (international_name_en)), + international_name_la text CHECK (default_word_check (international_name_la)), + brand_name_ru text CHECK (default_word_check (brand_name_ru)), + UNIQUE (international_name_ru), + UNIQUE (international_name_en), + UNIQUE (international_name_la), + UNIQUE (brand_name_ru) +); + +-- Журнал фактических назначений лекарств пациенту +CREATE TABLE drug_type_prescription ( + drug_prescription_id serial PRIMARY KEY, + prescription_id int NOT NULL REFERENCES prescription (prescription_id) ON DELETE CASCADE, + drug_type_id int NOT NULL REFERENCES drug_type (drug_type_id) ON DELETE RESTRICT, + -- количество вещества за приём + dose numeric NOT NULL CHECK (dose > 0), + -- единица измерения дозы + dose_unit_id int NOT NULL REFERENCES unit (unit_id) ON DELETE RESTRICT, + -- способ приёма + intake_method_id int NOT NULL REFERENCES drug_intake_method (drug_intake_method_id) ON DELETE RESTRICT, + -- длительность приёма (в днях) + duration_days int NOT NULL CHECK (duration_days > 0), + UNIQUE (prescription_id) +); + +-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = +-- Процедуры (для пациента) +-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = +-- +-- Справочник типов процедур +CREATE TABLE procedure_type ( + procedure_type_id serial PRIMARY KEY, + -- наименование процедуры (например, "физиотерапия") + name text NOT NULL CHECK (default_word_check (name)), + UNIQUE (name) +); + +-- Журнал фактических назначений процедур пациенту +CREATE TABLE procedure_type_prescription ( + procedure_prescription_id serial PRIMARY KEY, + prescription_id int NOT NULL REFERENCES prescription (prescription_id) ON DELETE CASCADE, + procedure_type_id int NOT NULL REFERENCES procedure_type (procedure_type_id) ON DELETE RESTRICT, + scheduled_datetime timestamp NOT NULL, + UNIQUE (prescription_id) +); + + + + + + +insert into doctor (doctor_id) +values (1), + (2), + (3); + +insert into registrar (registrar_id) +values (4), + (5), + (6); \ No newline at end of file diff --git a/migrations/triggers_hospital_admission.sql b/migrations/triggers_hospital_admission.sql new file mode 100644 index 0000000..8b3ca5e --- /dev/null +++ b/migrations/triggers_hospital_admission.sql @@ -0,0 +1,82 @@ +-- Общая функция возвращения всех госпитализаций и периодов пациента +CREATE OR REPLACE FUNCTION get_hospitalization_periods (p_patient_id int) + RETURNS TABLE ( + admission_datetime timestamp, + discharge_datetime timestamp + ) + AS $$ +BEGIN + RETURN QUERY + SELECT + ha.admission_datetime, + hd.discharge_datetime + FROM + hospital_admission ha + LEFT JOIN hospital_discharge hd ON ha.hospital_admission_id = hd.hospital_admission_id +WHERE + ha.patient_id = p_patient_id; +END; +$$ +LANGUAGE plpgsql; + +-- Триггер: запрещает новую госпитализацию при наличии незавершённой +CREATE OR REPLACE FUNCTION check_active_hospitalization () + RETURNS TRIGGER + AS $$ +DECLARE + open_hospitalization boolean; +BEGIN + SELECT + EXISTS ( + SELECT + 1 + FROM + get_hospitalization_periods (NEW.patient_id) + WHERE + discharge_datetime IS NULL) INTO open_hospitalization; + IF open_hospitalization THEN + RAISE EXCEPTION + USING ERRCODE = 'P0001', MESSAGE = '10001: ACTIVE_HOSPITALIZATION_EXISTS'; + END IF; + RETURN NEW; +END; +$$ +LANGUAGE plpgsql; + +-- Триггер: запрещает перекрытие госпитализаций +CREATE OR REPLACE FUNCTION check_hospitalization_overlap () + RETURNS TRIGGER + AS $$ +DECLARE + overlap_found boolean; +BEGIN + SELECT + EXISTS ( + SELECT + 1 + FROM + get_hospitalization_periods (NEW.patient_id) + WHERE + discharge_datetime IS NOT NULL + AND NEW.admission_datetime < discharge_datetime + AND NEW.admission_datetime > admission_datetime) INTO overlap_found; + IF overlap_found THEN + RAISE EXCEPTION + USING ERRCODE = 'P0001', MESSAGE = '10002: HOSPITALIZATION_OVERLAP'; + END IF; + RETURN NEW; +END; +$$ +LANGUAGE plpgsql; + +-- Подключение триггеров на hospital_admissions +CREATE TRIGGER trg_check_active_hospitalization + BEFORE INSERT ON hospital_admission + FOR EACH ROW + EXECUTE FUNCTION check_active_hospitalization (); + +CREATE TRIGGER trg_check_hospitalization_overlap + BEFORE INSERT ON hospital_admission + FOR EACH ROW + EXECUTE FUNCTION check_hospitalization_overlap (); + diff --git a/migrations/triggers_hospital_discharge.sql b/migrations/triggers_hospital_discharge.sql new file mode 100644 index 0000000..a2a90c5 --- /dev/null +++ b/migrations/triggers_hospital_discharge.sql @@ -0,0 +1,55 @@ +-- Проверка: выписка должна быть позже поступления +CREATE OR REPLACE FUNCTION check_discharge_after_admission () + RETURNS TRIGGER + AS $$ +DECLARE + admission_time timestamp; +BEGIN + SELECT + admission_datetime INTO admission_time + FROM + hospital_admission + WHERE + hospital_admission_id = NEW.hospital_admission_id; + IF NEW.discharge_datetime <= admission_time THEN + RAISE EXCEPTION + USING ERRCODE = 'P0001', MESSAGE = '10003: DISCHARGE_BEFORE_ADMISSION'; + END IF; + RETURN NEW; +END; +$$ +LANGUAGE plpgsql; + +CREATE TRIGGER trg_check_discharge_after_admission + BEFORE INSERT OR UPDATE ON hospital_discharge + FOR EACH ROW + EXECUTE FUNCTION check_discharge_after_admission (); + +-- Триггер: нельзя создать выписку, если уже есть выписка по этой госпитализации +CREATE OR REPLACE FUNCTION check_unique_discharge () + RETURNS TRIGGER + AS $$ +DECLARE + discharge_count integer; +BEGIN + SELECT + COUNT(*) INTO discharge_count + FROM + hospital_discharge + WHERE + hospital_admission_id = NEW.hospital_admission_id + AND hospital_discharge_id <> COALESCE(NEW.hospital_discharge_id, -1); + IF discharge_count > 0 THEN + RAISE EXCEPTION + USING ERRCODE = 'P0001', MESSAGE = '10004: DISCHARGE_ALREADY_EXISTS'; + END IF; + RETURN NEW; +END; +$$ +LANGUAGE plpgsql; + +CREATE TRIGGER trg_check_unique_discharge + BEFORE INSERT OR UPDATE ON hospital_discharge + FOR EACH ROW + EXECUTE FUNCTION check_unique_discharge (); + diff --git a/migrations/triggers_numeric_results.sql b/migrations/triggers_numeric_results.sql new file mode 100644 index 0000000..c7bd914 --- /dev/null +++ b/migrations/triggers_numeric_results.sql @@ -0,0 +1,29 @@ +-- Триггер: запрет на запись числового результата, если есть качественный по тому же обследованию +CREATE OR REPLACE FUNCTION check_numeric_result_uniqueness () + RETURNS TRIGGER + AS $$ +DECLARE + qualitative_exists boolean; +BEGIN + SELECT + EXISTS ( + SELECT + 1 + FROM + qualitative_result + WHERE + result_id = NEW.result_id) INTO qualitative_exists; + IF qualitative_exists THEN + RAISE EXCEPTION + USING ERRCODE = 'P0001', MESSAGE = '10005: QUALITATIVE_RESULT_ALREADY_EXISTS_FOR_THIS_EXAMINATION'; + END IF; + RETURN NEW; +END; +$$ +LANGUAGE plpgsql; + +CREATE TRIGGER trg_check_numeric_result_uniqueness + BEFORE INSERT OR UPDATE ON numeric_result + FOR EACH ROW + EXECUTE FUNCTION check_numeric_result_uniqueness (); + diff --git a/migrations/triggers_qualitative_results.sql b/migrations/triggers_qualitative_results.sql new file mode 100644 index 0000000..3cc556a --- /dev/null +++ b/migrations/triggers_qualitative_results.sql @@ -0,0 +1,29 @@ +-- Триггер: запрет на запись качественного результата, если есть числовой по тому же обследованию +CREATE OR REPLACE FUNCTION check_qualitative_result_uniqueness () + RETURNS TRIGGER + AS $$ +DECLARE + numeric_exists boolean; +BEGIN + SELECT + EXISTS ( + SELECT + 1 + FROM + numeric_result + WHERE + result_id = NEW.result_id) INTO numeric_exists; + IF numeric_exists THEN + RAISE EXCEPTION + USING ERRCODE = 'P0001', MESSAGE = '10006: NUMERIC_RESULT_ALREADY_EXISTS_FOR_THIS_EXAMINATION'; + END IF; + RETURN NEW; +END; +$$ +LANGUAGE plpgsql; + +CREATE TRIGGER trg_check_qualitative_result_uniqueness + BEFORE INSERT OR UPDATE ON qualitative_result + FOR EACH ROW + EXECUTE FUNCTION check_qualitative_result_uniqueness (); + diff --git a/migrations/types.sql b/migrations/types.sql new file mode 100644 index 0000000..97c977b --- /dev/null +++ b/migrations/types.sql @@ -0,0 +1,26 @@ +-- Перечисление для пола +CREATE TYPE gender_enum AS ENUM ( + 'male', -- мужчина + 'female' -- женщина +); + +-- Перечисление для типа обследования +CREATE TYPE examination_categories_enum AS ENUM ( + 'physical', -- физикальное обследование + 'laboratory', -- лабораторное обследование + 'instrumental' -- инструментальное обследование +); + +-- Перечисление для исхода госпитализации (выписка) +CREATE TYPE hospital_discharge_reason_enum AS ENUM ( + 'death', -- смерть + 'improvement', -- улучшение состояния + 'refusal' -- отказ от госпитализации или дальнейшего лечения +); + +-- Перечисление для контекста использования единицы измерения +CREATE TYPE unit_context_enum AS ENUM ( + 'examination', -- используется только для обследований (лабораторные, инструментальные, физикальные) + 'medication' -- используется только для лекарственных средств (дозировка, количество) +); +