diff --git a/Medical/Medical.sln b/Medical/Medical.sln index 8009134..38bd9c0 100644 --- a/Medical/Medical.sln +++ b/Medical/Medical.sln @@ -5,9 +5,11 @@ VisualStudioVersion = 17.9.34714.143 MinimumVisualStudioVersion = 10.0.40219.1 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MedicalView", "MedicalView\MedicalView.csproj", "{9CEA3FF8-036C-4844-9376-8B09E8507E7F}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MedicalDatabaseContracts", "MedicalDatabaseContracts\MedicalDatabaseContracts.csproj", "{43A2B5DF-F305-412B-BE81-161E0B495AEB}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MedicalDatabaseContracts", "MedicalDatabaseContracts\MedicalDatabaseContracts.csproj", "{43A2B5DF-F305-412B-BE81-161E0B495AEB}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MedicalPostgresqlDatabase", "MedicalPostgresqlDatabase\MedicalPostgresqlDatabase.csproj", "{2BAF4C2E-DC1E-443B-85CC-4F44A8C98E17}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MedicalPostgresqlDatabase", "MedicalPostgresqlDatabase\MedicalPostgresqlDatabase.csproj", "{2BAF4C2E-DC1E-443B-85CC-4F44A8C98E17}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MedicalBusinessLogic", "MedicalBusinessLogic\MedicalBusinessLogic.csproj", "{91F8C37D-9865-42E2-A9AC-4A672259FD31}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -27,6 +29,10 @@ Global {2BAF4C2E-DC1E-443B-85CC-4F44A8C98E17}.Debug|Any CPU.Build.0 = Debug|Any CPU {2BAF4C2E-DC1E-443B-85CC-4F44A8C98E17}.Release|Any CPU.ActiveCfg = Release|Any CPU {2BAF4C2E-DC1E-443B-85CC-4F44A8C98E17}.Release|Any CPU.Build.0 = Release|Any CPU + {91F8C37D-9865-42E2-A9AC-4A672259FD31}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {91F8C37D-9865-42E2-A9AC-4A672259FD31}.Debug|Any CPU.Build.0 = Debug|Any CPU + {91F8C37D-9865-42E2-A9AC-4A672259FD31}.Release|Any CPU.ActiveCfg = Release|Any CPU + {91F8C37D-9865-42E2-A9AC-4A672259FD31}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/Medical/MedicalBusinessLogic/BusinessLogics/DiagnoseLogic.cs b/Medical/MedicalBusinessLogic/BusinessLogics/DiagnoseLogic.cs new file mode 100644 index 0000000..eaf605e --- /dev/null +++ b/Medical/MedicalBusinessLogic/BusinessLogics/DiagnoseLogic.cs @@ -0,0 +1,45 @@ +using MedicalDatabaseContracts; +using MedicalDatabaseContracts.Models; +using MedicalDatabaseContracts.SearchModels; +using MedicalDatabaseContracts.ViewModels; +using Microsoft.Extensions.Logging; + +namespace MedicalBusinessLogic.BusinessLogics +{ + public class DiagnoseLogic : ILogic + { + private readonly IStorage _diagnoseStorage; + private readonly ILogger _logger; + + public DiagnoseLogic(IStorage diagnoseStorage, ILogger logger) + { + _diagnoseStorage = diagnoseStorage; + _logger = logger; + } + + public bool Create(Diagnose model) + { + throw new NotImplementedException(); + } + + public bool Delete(Diagnose model) + { + throw new NotImplementedException(); + } + + public DiagnoseViewModel? ReadElement(DiagnoseSearchModel searchModel) + { + throw new NotImplementedException(); + } + + public List? ReadList(DiagnoseSearchModel? searchModel) + { + throw new NotImplementedException(); + } + + public bool Update(Diagnose model) + { + throw new NotImplementedException(); + } + } +} diff --git a/Medical/MedicalBusinessLogic/BusinessLogics/DoctorLogic.cs b/Medical/MedicalBusinessLogic/BusinessLogics/DoctorLogic.cs new file mode 100644 index 0000000..075504b --- /dev/null +++ b/Medical/MedicalBusinessLogic/BusinessLogics/DoctorLogic.cs @@ -0,0 +1,45 @@ +using MedicalDatabaseContracts; +using MedicalDatabaseContracts.Models; +using MedicalDatabaseContracts.SearchModels; +using MedicalDatabaseContracts.ViewModels; +using Microsoft.Extensions.Logging; + +namespace MedicalBusinessLogic.BusinessLogics +{ + public class DoctorLogic : ILogic + { + private readonly IStorage _doctorStorage; + private readonly ILogger _logger; + + public DoctorLogic(IStorage doctorStorage, ILogger logger) + { + _doctorStorage = doctorStorage; + _logger = logger; + } + + public bool Create(Doctor model) + { + throw new NotImplementedException(); + } + + public bool Delete(Doctor model) + { + throw new NotImplementedException(); + } + + public DoctorViewModel? ReadElement(DoctorSearchModel searchModel) + { + throw new NotImplementedException(); + } + + public List? ReadList(DoctorSearchModel? searchModel) + { + throw new NotImplementedException(); + } + + public bool Update(Doctor model) + { + throw new NotImplementedException(); + } + } +} diff --git a/Medical/MedicalBusinessLogic/BusinessLogics/PatientLogic.cs b/Medical/MedicalBusinessLogic/BusinessLogics/PatientLogic.cs new file mode 100644 index 0000000..f04d5b7 --- /dev/null +++ b/Medical/MedicalBusinessLogic/BusinessLogics/PatientLogic.cs @@ -0,0 +1,45 @@ +using MedicalDatabaseContracts; +using MedicalDatabaseContracts.Models; +using MedicalDatabaseContracts.SearchModels; +using MedicalDatabaseContracts.ViewModels; +using Microsoft.Extensions.Logging; + +namespace MedicalBusinessLogic.BusinessLogics +{ + public class PatientLogic : ILogic + { + private readonly IStorage _patientStorage; + private readonly ILogger _logger; + + public PatientLogic(IStorage patientStorage, ILogger logger) + { + _patientStorage = patientStorage; + _logger = logger; + } + + public bool Create(Patient model) + { + throw new NotImplementedException(); + } + + public bool Delete(Patient model) + { + throw new NotImplementedException(); + } + + public PatientViewModel? ReadElement(PatientSearchModel searchModel) + { + throw new NotImplementedException(); + } + + public List? ReadList(PatientSearchModel? searchModel) + { + throw new NotImplementedException(); + } + + public bool Update(Patient model) + { + throw new NotImplementedException(); + } + } +} diff --git a/Medical/MedicalBusinessLogic/BusinessLogics/SpecializationLogic.cs b/Medical/MedicalBusinessLogic/BusinessLogics/SpecializationLogic.cs new file mode 100644 index 0000000..a41a9a6 --- /dev/null +++ b/Medical/MedicalBusinessLogic/BusinessLogics/SpecializationLogic.cs @@ -0,0 +1,45 @@ +using MedicalDatabaseContracts; +using MedicalDatabaseContracts.Models; +using MedicalDatabaseContracts.SearchModels; +using MedicalDatabaseContracts.ViewModels; +using Microsoft.Extensions.Logging; + +namespace MedicalBusinessLogic.BusinessLogics +{ + public class SpecializationLogic : ILogic + { + private readonly IStorage _specializationStorage; + private readonly ILogger _logger; + + public SpecializationLogic(IStorage specializationStorage, ILogger logger) + { + _specializationStorage = specializationStorage; + _logger = logger; + } + + public bool Create(Specialization model) + { + throw new NotImplementedException(); + } + + public bool Delete(Specialization model) + { + throw new NotImplementedException(); + } + + public SpecializationViewModel? ReadElement(SpecializationSearchModel searchModel) + { + throw new NotImplementedException(); + } + + public List? ReadList(SpecializationSearchModel? searchModel) + { + throw new NotImplementedException(); + } + + public bool Update(Specialization model) + { + throw new NotImplementedException(); + } + } +} diff --git a/Medical/MedicalBusinessLogic/BusinessLogics/VisitLogic.cs b/Medical/MedicalBusinessLogic/BusinessLogics/VisitLogic.cs new file mode 100644 index 0000000..d5a40a0 --- /dev/null +++ b/Medical/MedicalBusinessLogic/BusinessLogics/VisitLogic.cs @@ -0,0 +1,45 @@ +using MedicalDatabaseContracts; +using MedicalDatabaseContracts.Models; +using MedicalDatabaseContracts.SearchModels; +using MedicalDatabaseContracts.ViewModels; +using Microsoft.Extensions.Logging; + +namespace MedicalBusinessLogic.BusinessLogics +{ + public class VisitLogic : ILogic + { + private readonly IStorage _visitStorage; + private readonly ILogger _logger; + + public VisitLogic(IStorage visitStorage, ILogger logger) + { + _visitStorage = visitStorage; + _logger = logger; + } + + public bool Create(Visit model) + { + throw new NotImplementedException(); + } + + public bool Delete(Visit model) + { + throw new NotImplementedException(); + } + + public VisitViewModel? ReadElement(VisitSearchModel searchModel) + { + throw new NotImplementedException(); + } + + public List? ReadList(VisitSearchModel? searchModel) + { + throw new NotImplementedException(); + } + + public bool Update(Visit model) + { + throw new NotImplementedException(); + } + } +} diff --git a/Medical/MedicalBusinessLogic/MedicalBusinessLogic.csproj b/Medical/MedicalBusinessLogic/MedicalBusinessLogic.csproj new file mode 100644 index 0000000..321fca0 --- /dev/null +++ b/Medical/MedicalBusinessLogic/MedicalBusinessLogic.csproj @@ -0,0 +1,14 @@ + + + + net6.0 + enable + enable + + + + + + + + diff --git a/Medical/MedicalDatabaseContracts/SearchModels/AbstractPersonSearchModel.cs b/Medical/MedicalDatabaseContracts/SearchModels/AbstractPersonSearchModel.cs new file mode 100644 index 0000000..041bd36 --- /dev/null +++ b/Medical/MedicalDatabaseContracts/SearchModels/AbstractPersonSearchModel.cs @@ -0,0 +1,9 @@ +namespace MedicalDatabaseContracts.SearchModels +{ + public class AbstractPersonSearchModel : AbstractSearchModel + { + public string? Name { get; set; } + public string? Surname { get; set; } + public string? Patronymic { get; set; } + } +} diff --git a/Medical/MedicalDatabaseContracts/SearchModels/DiagnoseSearchModel.cs b/Medical/MedicalDatabaseContracts/SearchModels/DiagnoseSearchModel.cs new file mode 100644 index 0000000..c2afcff --- /dev/null +++ b/Medical/MedicalDatabaseContracts/SearchModels/DiagnoseSearchModel.cs @@ -0,0 +1,4 @@ +namespace MedicalDatabaseContracts.SearchModels +{ + public class DiagnoseSearchModel : AbstractSearchModel { } +} diff --git a/Medical/MedicalDatabaseContracts/SearchModels/DoctorSearchModel.cs b/Medical/MedicalDatabaseContracts/SearchModels/DoctorSearchModel.cs new file mode 100644 index 0000000..512a986 --- /dev/null +++ b/Medical/MedicalDatabaseContracts/SearchModels/DoctorSearchModel.cs @@ -0,0 +1,7 @@ +namespace MedicalDatabaseContracts.SearchModels +{ + public class DoctorSearchModel : AbstractPersonSearchModel + { + public int? SpecializationId { get; set; } + } +} diff --git a/Medical/MedicalDatabaseContracts/SearchModels/PatientSearchModel.cs b/Medical/MedicalDatabaseContracts/SearchModels/PatientSearchModel.cs new file mode 100644 index 0000000..c0d6fee --- /dev/null +++ b/Medical/MedicalDatabaseContracts/SearchModels/PatientSearchModel.cs @@ -0,0 +1,7 @@ +namespace MedicalDatabaseContracts.SearchModels +{ + public class PatientSearchModel : AbstractPersonSearchModel + { + public char? Gender { get; set; } + } +} diff --git a/Medical/MedicalDatabaseContracts/SearchModels/SpecializationSearchModel.cs b/Medical/MedicalDatabaseContracts/SearchModels/SpecializationSearchModel.cs new file mode 100644 index 0000000..0553df9 --- /dev/null +++ b/Medical/MedicalDatabaseContracts/SearchModels/SpecializationSearchModel.cs @@ -0,0 +1,4 @@ +namespace MedicalDatabaseContracts.SearchModels +{ + public class SpecializationSearchModel : AbstractSearchModel { } +} diff --git a/Medical/MedicalDatabaseContracts/SearchModels/VisitSearchModel.cs b/Medical/MedicalDatabaseContracts/SearchModels/VisitSearchModel.cs new file mode 100644 index 0000000..380b25e --- /dev/null +++ b/Medical/MedicalDatabaseContracts/SearchModels/VisitSearchModel.cs @@ -0,0 +1,12 @@ +namespace MedicalDatabaseContracts.SearchModels +{ + public class VisitSearchModel : AbstractSearchModel + { + public DateOnly? DateFrom { get; set; } + public DateOnly? DateTo { get; set; } + public DateOnly? Date { get; set; } + public TimeOnly? TimeFrom { get; set; } + public TimeOnly? TimeTo { get; set; } + public TimeOnly? Time { get; set; } + } +} diff --git a/Medical/MedicalDatabaseContracts/ViewModels/AbstractPersonViewModel.cs b/Medical/MedicalDatabaseContracts/ViewModels/AbstractPersonViewModel.cs index e6b4338..042ecb0 100644 --- a/Medical/MedicalDatabaseContracts/ViewModels/AbstractPersonViewModel.cs +++ b/Medical/MedicalDatabaseContracts/ViewModels/AbstractPersonViewModel.cs @@ -3,7 +3,7 @@ using System.ComponentModel; namespace MedicalDatabaseContracts.ViewModels { - public abstract class AbstractPersonViewModel : AbstractModel + public abstract class AbstractPersonViewModel : AbstractViewModel { [DisplayName("Имя")] public string Name { get; set; } = string.Empty;