From b5e9c5c194ec78c8c85b55ffa7e014f35a6d9623 Mon Sep 17 00:00:00 2001 From: ValAnn Date: Sun, 5 May 2024 02:46:56 +0400 Subject: [PATCH] =?UTF-8?q?=D0=BE=D1=82=D1=87=D0=B5=D1=82=D1=8B=20=D0=BE?= =?UTF-8?q?=20=D0=BF=D0=B0=D1=86=D0=B8=D0=B5=D0=BD=D1=82=D0=B0=D1=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BusinessLogics/DoctorReportLogic.cs | 83 +++++++++++++------ .../IDoctorReportLogic.cs | 4 +- .../SearchModels/DiseaseSearchModel.cs | 3 +- .../SearchModels/MedicineSearchModel.cs | 4 +- .../SearchModels/RecipeSearchModel.cs | 3 +- .../ReportPatientRecipeViewModel.cs | 14 ++++ .../ReportProcedureRecipeViewModel.cs | 16 ---- 7 files changed, 81 insertions(+), 46 deletions(-) create mode 100644 Hospital/HospitalContracts/ViewModels/ReportPatientRecipeViewModel.cs delete mode 100644 Hospital/HospitalContracts/ViewModels/ReportProcedureRecipeViewModel.cs diff --git a/Hospital/HospitalBusinessLogic/BusinessLogics/DoctorReportLogic.cs b/Hospital/HospitalBusinessLogic/BusinessLogics/DoctorReportLogic.cs index b0135e0..6959cd0 100644 --- a/Hospital/HospitalBusinessLogic/BusinessLogics/DoctorReportLogic.cs +++ b/Hospital/HospitalBusinessLogic/BusinessLogics/DoctorReportLogic.cs @@ -1,8 +1,10 @@ -using HospitalContracts.BindingModels; +using DocumentFormat.OpenXml.Office2010.ExcelAc; +using HospitalContracts.BindingModels; using HospitalContracts.BusinessLogicContracts; using HospitalContracts.SearchModels; using HospitalContracts.StoragesContracts; using HospitalContracts.ViewModels; +using HospitalDataModels.Models; using Microsoft.Extensions.Logging; using System; using System.Collections.Generic; @@ -32,40 +34,71 @@ namespace HospitalBusinessLogic.BusinessLogics _diseaseStorage = diseaseStorage; } - public List GetPatients(ReportBindingModel model, PatientBindingModel patientModel) + //отчет по лекарствам и болезням у пациента за период + public List GetMedicineDiseases(ReportBindingModel model, PatientBindingModel patientModel) { var list = new List(); var patients = _patientStorage.GetFilteredList(new PatientSearchModel { DateFrom = model.DateFrom, DateTo = model.DateTo, Id = patientModel.Id }); foreach (var patient in patients) { - var record = new ReportPatientViewModel - { - Id = patient.Id, - Medicines = new List(), - Diseases = new List() - }; + var purchase = _patientStorage.GetElement(new() { Id = patient.Id })!; + List diseaseList = new List(); + List medicineList = new List(); + foreach (var recipe in _recipeStorage.GetFilteredList(new RecipeSearchModel {PatientId = patient.Id})) + { + foreach (var medicine in _medicineStorage.GetFilteredList(new MedicineSearchModel { RecipeId = recipe.Id})) + { + medicineList.Add(new(medicine.Name)); + } + foreach (var disease in _diseaseStorage.GetFilteredList(new DiseaseSearchModel {RecipeId = recipe.Id})) + { + diseaseList.Add(disease.Name); + } + } + var record = new ReportPatientViewModel + { + Id = purchase.Id, + FIO = patient.FIO, + + Diseases = diseaseList, + Medicines = medicineList + }; + list.Add(record); + } + return list; + } - var allRecipes = _recipeStorage.GetFullList(); - var patientRecipes = new List(); + public List GetPatients() + { + var list = new List(); + var patients = _patientStorage.GetFullList(); - foreach (var recipe in allRecipes) - { - if (recipe.Id == patient.Id) - { - record.Diseases.Add(_diseaseStorage.GetElement(new DiseaseSearchModel { Id = recipe.DiseaseId }).Description); - } - } + foreach (var patient in patients) + { + var purchase = _patientStorage.GetElement(new() { Id = patient.Id })!; + List diseaseList = new List(); + List recipeList = new List(); + foreach (var recipe in _recipeStorage.GetFilteredList(new RecipeSearchModel { PatientId = patient.Id })) + { + recipeList.Add(recipe.IssueDate.ToString()); + foreach (var disease in _diseaseStorage.GetFilteredList(new DiseaseSearchModel { RecipeId = recipe.Id })) + { + diseaseList.Add(disease.Name); + } + } + var record = new ReportPatientRecipeViewModel + { + Diseases = diseaseList, + Recipes = recipeList + }; + list.Add(record); + } + return list; + } - list.Add(record); - } - return list; - } + - public List GetProcedureRecipes() - { - throw new NotImplementedException(); - } public void SavePatientsToPdfFile(ReportBindingModel model) { diff --git a/Hospital/HospitalContracts/BusinessLogicContracts/IDoctorReportLogic.cs b/Hospital/HospitalContracts/BusinessLogicContracts/IDoctorReportLogic.cs index 7b1927d..0e2c1b0 100644 --- a/Hospital/HospitalContracts/BusinessLogicContracts/IDoctorReportLogic.cs +++ b/Hospital/HospitalContracts/BusinessLogicContracts/IDoctorReportLogic.cs @@ -10,8 +10,8 @@ namespace HospitalContracts.BusinessLogicContracts { public interface IDoctorReportLogic { - List GetProcedureRecipes(); - List GetPatients(ReportBindingModel model, PatientBindingModel patientModel); + List GetPatients(); + List GetMedicineDiseases(ReportBindingModel model, PatientBindingModel patientModel); void SaveProcedureRecipesToWordFile(ReportBindingModel model); void SaveProcedureRecipesToExcelFile(ReportBindingModel model); void SavePatientsToPdfFile(ReportBindingModel model); diff --git a/Hospital/HospitalContracts/SearchModels/DiseaseSearchModel.cs b/Hospital/HospitalContracts/SearchModels/DiseaseSearchModel.cs index 78a7be5..2391738 100644 --- a/Hospital/HospitalContracts/SearchModels/DiseaseSearchModel.cs +++ b/Hospital/HospitalContracts/SearchModels/DiseaseSearchModel.cs @@ -14,5 +14,6 @@ namespace HospitalContracts.SearchModels public string? Description { get; set; } public int? DoctorId { get; set; } - } + public int? RecipeId { get; set; } + } } diff --git a/Hospital/HospitalContracts/SearchModels/MedicineSearchModel.cs b/Hospital/HospitalContracts/SearchModels/MedicineSearchModel.cs index f32f3bd..592bacf 100644 --- a/Hospital/HospitalContracts/SearchModels/MedicineSearchModel.cs +++ b/Hospital/HospitalContracts/SearchModels/MedicineSearchModel.cs @@ -13,5 +13,7 @@ namespace HospitalContracts.SearchModels public string? CountryOrigin { get; set; } public double? Price { get; set; } public int? PharmacistId { get; set; } - } + + public int? RecipeId { get; set; } + } } diff --git a/Hospital/HospitalContracts/SearchModels/RecipeSearchModel.cs b/Hospital/HospitalContracts/SearchModels/RecipeSearchModel.cs index 70aaded..162c0a5 100644 --- a/Hospital/HospitalContracts/SearchModels/RecipeSearchModel.cs +++ b/Hospital/HospitalContracts/SearchModels/RecipeSearchModel.cs @@ -12,6 +12,7 @@ namespace HospitalContracts.SearchModels public int? DoctorId { get; set; } public int? MedicineId { get; set; } - DateTime IssueDate { get; } + public int? PatientId { get; set; } + DateTime IssueDate { get; } } } diff --git a/Hospital/HospitalContracts/ViewModels/ReportPatientRecipeViewModel.cs b/Hospital/HospitalContracts/ViewModels/ReportPatientRecipeViewModel.cs new file mode 100644 index 0000000..5cc8176 --- /dev/null +++ b/Hospital/HospitalContracts/ViewModels/ReportPatientRecipeViewModel.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace HospitalContracts.ViewModels +{ + public class ReportPatientRecipeViewModel + { + public List Recipes { get; set; } = new(); + public List Diseases { get; set; } = new(); + } +} diff --git a/Hospital/HospitalContracts/ViewModels/ReportProcedureRecipeViewModel.cs b/Hospital/HospitalContracts/ViewModels/ReportProcedureRecipeViewModel.cs deleted file mode 100644 index fbeb0ab..0000000 --- a/Hospital/HospitalContracts/ViewModels/ReportProcedureRecipeViewModel.cs +++ /dev/null @@ -1,16 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace HospitalContracts.ViewModels -{ - public class ReportProcedureRecipeViewModel - { - public DateTime DateCreate { get; set; } - public string MedicineName { get; set; } = string.Empty; - public int Number { get; set; } - public string ProcedureName { get; set; } = string.Empty; - } -}