Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in
Toggle navigation
H
HIAST-Clinics
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
almohanad.hafez
HIAST-Clinics
Commits
f37a8f42
Unverified
Commit
f37a8f42
authored
Aug 15, 2024
by
Almouhannad Hafez
Committed by
GitHub
Aug 15, 2024
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #1 from Almouhannad/B_add-entities
B add entities
parents
c417bc62
4b0c3296
Changes
30
Hide whitespace changes
Inline
Side-by-side
Showing
30 changed files
with
726 additions
and
0 deletions
+726
-0
Clinics.Backend.sln
Clinics.Backend/Clinics.Backend.sln
+47
-0
Disease.cs
Clinics.Backend/Domain/Entities/Medicals/Diseases/Disease.cs
+19
-0
Hospital.cs
...cs.Backend/Domain/Entities/Medicals/Hospitals/Hospital.cs
+12
-0
MedicalImage.cs
...nd/Domain/Entities/Medicals/MedicalImages/MedicalImage.cs
+14
-0
MedicalTest.cs
...kend/Domain/Entities/Medicals/MedicalTests/MedicalTest.cs
+14
-0
Medicine.cs
...cs.Backend/Domain/Entities/Medicals/Medicines/Medicine.cs
+25
-0
MedicineForm.cs
...ies/Medicals/Medicines/MedicineFormValues/MedicineForm.cs
+12
-0
MedicineForms.cs
...es/Medicals/Medicines/MedicineFormValues/MedicineForms.cs
+12
-0
Doctor.cs
Clinics.Backend/Domain/Entities/People/Doctors/Doctor.cs
+23
-0
DoctorStatus.cs
...ctors/Shared/Constants/DoctorStatusValues/DoctorStatus.cs
+12
-0
DoctorStatuses.cs
...ors/Shared/Constants/DoctorStatusValues/DoctorStatuses.cs
+14
-0
DoctorPhone.cs
...kend/Domain/Entities/People/Doctors/Shared/DoctorPhone.cs
+15
-0
Employee.cs
Clinics.Backend/Domain/Entities/People/Employees/Employee.cs
+36
-0
EmployeeFamilyMember.cs
...s/Relations/EmployeeFamilyMembers/EmployeeFamilyMember.cs
+32
-0
FamilyRole.cs
...ions/EmployeeFamilyMembers/FamilyRoleValues/FamilyRole.cs
+12
-0
FamilyRoles.cs
...ons/EmployeeFamilyMembers/FamilyRoleValues/FamilyRoles.cs
+16
-0
EmployeeAdditionalInfo.cs
...ntities/People/Employees/Shared/EmployeeAdditionalInfo.cs
+25
-0
FamilyMember.cs
...kend/Domain/Entities/People/FamilyMembers/FamilyMember.cs
+13
-0
Patient.cs
Clinics.Backend/Domain/Entities/People/Patients/Patient.cs
+33
-0
PatientDisease.cs
...ople/Patients/Relations/PatientDiseases/PatientDisease.cs
+30
-0
PatientMedicine.cs
...le/Patients/Relations/PatientMedicines/PatientMedicine.cs
+32
-0
Gender.cs
...kend/Domain/Entities/People/Shared/GenderValues/Gender.cs
+13
-0
Genders.cs
...end/Domain/Entities/People/Shared/GenderValues/Genders.cs
+12
-0
PersonalInfo.cs
...ics.Backend/Domain/Entities/People/Shared/PersonalInfo.cs
+19
-0
VisitMedicalImage.cs
.../Visits/Relations/VisitMedicalImages/VisitMedicalImage.cs
+32
-0
VisitMedicalTest.cs
...es/Visits/Relations/VisitMedicalTests/VisitMedicalTest.cs
+32
-0
VisitMedicine.cs
...Entities/Visits/Relations/VisitMedicines/VisitMedicine.cs
+31
-0
Visit.cs
Clinics.Backend/Domain/Entities/Visits/Visit.cs
+34
-0
WaitingListRecord.cs
....Backend/Domain/Entities/WaitingList/WaitingListRecord.cs
+32
-0
Entity.cs
Clinics.Backend/Domain/Primitives/Entity.cs
+73
-0
No files found.
Clinics.Backend/Clinics.Backend.sln
View file @
f37a8f42
...
...
@@ -3,10 +3,57 @@ Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.11.35208.52
MinimumVisualStudioVersion = 10.0.40219.1
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Source", "Source", "{26CA1441-8533-428E-9DD2-26F2FB428488}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Core", "Core", "{6FC36DEB-2BC3-4980-B46B-7E518DAF09BF}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "External", "External", "{878AE2C9-3E34-4332-ACC0-E6B601085710}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Infrastructure", "Infrastructure", "{FDA56BCD-A53D-4BA1-A59D-3F44FA32DDD7}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Domain", "Domain\Domain.csproj", "{B14D8AA9-67E7-400C-A833-D791681ABDF6}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Application", "Application\Application.csproj", "{CE41FA28-76D7-4DC0-A980-B953F87253F5}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Presentation", "Presentation\Presentation.csproj", "{D04C0D6C-3FC9-4359-A017-DFCFA1475639}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Persistence", "Persistence\Persistence.csproj", "{2B5111ED-7AB8-46E2-90F8-AF0C70265618}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{B14D8AA9-67E7-400C-A833-D791681ABDF6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B14D8AA9-67E7-400C-A833-D791681ABDF6}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B14D8AA9-67E7-400C-A833-D791681ABDF6}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B14D8AA9-67E7-400C-A833-D791681ABDF6}.Release|Any CPU.Build.0 = Release|Any CPU
{CE41FA28-76D7-4DC0-A980-B953F87253F5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{CE41FA28-76D7-4DC0-A980-B953F87253F5}.Debug|Any CPU.Build.0 = Debug|Any CPU
{CE41FA28-76D7-4DC0-A980-B953F87253F5}.Release|Any CPU.ActiveCfg = Release|Any CPU
{CE41FA28-76D7-4DC0-A980-B953F87253F5}.Release|Any CPU.Build.0 = Release|Any CPU
{D04C0D6C-3FC9-4359-A017-DFCFA1475639}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D04C0D6C-3FC9-4359-A017-DFCFA1475639}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D04C0D6C-3FC9-4359-A017-DFCFA1475639}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D04C0D6C-3FC9-4359-A017-DFCFA1475639}.Release|Any CPU.Build.0 = Release|Any CPU
{2B5111ED-7AB8-46E2-90F8-AF0C70265618}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2B5111ED-7AB8-46E2-90F8-AF0C70265618}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2B5111ED-7AB8-46E2-90F8-AF0C70265618}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2B5111ED-7AB8-46E2-90F8-AF0C70265618}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{6FC36DEB-2BC3-4980-B46B-7E518DAF09BF} = {26CA1441-8533-428E-9DD2-26F2FB428488}
{878AE2C9-3E34-4332-ACC0-E6B601085710} = {26CA1441-8533-428E-9DD2-26F2FB428488}
{FDA56BCD-A53D-4BA1-A59D-3F44FA32DDD7} = {878AE2C9-3E34-4332-ACC0-E6B601085710}
{B14D8AA9-67E7-400C-A833-D791681ABDF6} = {6FC36DEB-2BC3-4980-B46B-7E518DAF09BF}
{CE41FA28-76D7-4DC0-A980-B953F87253F5} = {6FC36DEB-2BC3-4980-B46B-7E518DAF09BF}
{D04C0D6C-3FC9-4359-A017-DFCFA1475639} = {878AE2C9-3E34-4332-ACC0-E6B601085710}
{2B5111ED-7AB8-46E2-90F8-AF0C70265618} = {FDA56BCD-A53D-4BA1-A59D-3F44FA32DDD7}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {E9FC9252-1283-485F-8F84-3574CFA12633}
EndGlobalSection
...
...
Clinics.Backend/Domain/Entities/Medicals/Diseases/Disease.cs
0 → 100644
View file @
f37a8f42
using
Domain.Entities.People.Patients.Relations.PatientDiseases
;
using
Domain.Primitives
;
namespace
Domain.Entities.Medicals.Diseases
;
public
sealed
class
Disease
(
int
id
)
:
Entity
(
id
)
{
#
region
Properties
public
string
Name
{
get
;
set
;
}
=
null
!;
#
region
Navigations
public
ICollection
<
PatientDisease
>
Patients
{
get
;
set
;
}
=
[];
#
endregion
#
endregion
}
Clinics.Backend/Domain/Entities/Medicals/Hospitals/Hospital.cs
0 → 100644
View file @
f37a8f42
using
Domain.Primitives
;
namespace
Domain.Entities.Medicals.Hospitals
;
public
sealed
class
Hospital
(
int
id
)
:
Entity
(
id
)
{
#
region
Properties
public
string
Name
{
get
;
set
;
}
=
null
!;
#
endregion
}
Clinics.Backend/Domain/Entities/Medicals/MedicalImages/MedicalImage.cs
0 → 100644
View file @
f37a8f42
using
Domain.Primitives
;
namespace
Domain.Entities.Medicals.MedicalImages
;
public
sealed
class
MedicalImage
(
int
id
)
:
Entity
(
id
)
{
#
region
Properties
public
string
Name
{
get
;
set
;
}
=
null
!;
public
string
?
Description
{
get
;
set
;
}
#
endregion
}
Clinics.Backend/Domain/Entities/Medicals/MedicalTests/MedicalTest.cs
0 → 100644
View file @
f37a8f42
using
Domain.Primitives
;
namespace
Domain.Entities.Medicals.MedicalTests
;
public
sealed
class
MedicalTest
(
int
id
)
:
Entity
(
id
)
{
#
region
Properties
public
string
Name
{
get
;
set
;
}
=
null
!;
public
string
?
Description
{
get
;
set
;
}
#
endregion
}
Clinics.Backend/Domain/Entities/Medicals/Medicines/Medicine.cs
0 → 100644
View file @
f37a8f42
using
Domain.Entities.Medicals.Medicines.MedicineFormValues
;
using
Domain.Entities.People.Patients.Relations.PatientMedicines
;
using
Domain.Primitives
;
namespace
Domain.Entities.Medicals.Medicines
;
// TODO: Convert Dosage to value object
public
sealed
class
Medicine
(
int
id
)
:
Entity
(
id
)
{
#
region
Properties
public
MedicineForm
MedicineForm
{
get
;
set
;
}
=
null
!;
public
string
Name
{
get
;
set
;
}
=
null
!;
public
decimal
Dosage
{
get
;
set
;
}
#
region
Navigations
public
ICollection
<
PatientMedicine
>
Patients
{
get
;
set
;
}
=
[];
#
endregion
#
endregion
}
Clinics.Backend/Domain/Entities/Medicals/Medicines/MedicineFormValues/MedicineForm.cs
0 → 100644
View file @
f37a8f42
using
Domain.Primitives
;
namespace
Domain.Entities.Medicals.Medicines.MedicineFormValues
;
public
sealed
class
MedicineForm
(
int
id
)
:
Entity
(
id
)
{
#
region
Properties
public
string
Name
{
get
;
set
;
}
=
null
!;
#
endregion
}
Clinics.Backend/Domain/Entities/Medicals/Medicines/MedicineFormValues/MedicineForms.cs
0 → 100644
View file @
f37a8f42
namespace
Domain.Entities.Medicals.Medicines.MedicineFormValues
;
public
static
class
MedicineForms
{
#
region
Constant
id
values
public
static
int
Tablet
=>
1
;
public
static
int
Syrup
=>
2
;
#
endregion
}
Clinics.Backend/Domain/Entities/People/Doctors/Doctor.cs
0 → 100644
View file @
f37a8f42
using
Domain.Entities.People.Doctors.Shared
;
using
Domain.Entities.People.Doctors.Shared.Constants.DoctorStatusValues
;
using
Domain.Entities.People.Shared
;
using
Domain.Primitives
;
namespace
Domain.Entities.People.Doctors
;
public
sealed
class
Doctor
(
int
id
)
:
Entity
(
id
)
{
#
region
Properties
public
PersonalInfo
PersonalInfo
{
get
;
set
;
}
=
null
!;
public
DoctorStatus
Status
{
get
;
set
;
}
=
null
!;
#
region
Navigations
public
ICollection
<
DoctorPhone
>
Phones
{
get
;
set
;
}
=
[];
#
endregion
#
endregion
}
Clinics.Backend/Domain/Entities/People/Doctors/Shared/Constants/DoctorStatusValues/DoctorStatus.cs
0 → 100644
View file @
f37a8f42
using
Domain.Primitives
;
namespace
Domain.Entities.People.Doctors.Shared.Constants.DoctorStatusValues
;
public
sealed
class
DoctorStatus
(
int
id
)
:
Entity
(
id
)
{
#
region
Properties
public
string
Name
{
get
;
set
;
}
=
null
!;
#
endregion
}
Clinics.Backend/Domain/Entities/People/Doctors/Shared/Constants/DoctorStatusValues/DoctorStatuses.cs
0 → 100644
View file @
f37a8f42
namespace
Domain.Entities.People.Doctors.Shared.Constants.DoctorStatusValues
;
public
static
class
DoctorStatuses
{
#
region
Constant
id
values
public
static
int
Available
=>
1
;
public
static
int
Working
=>
2
;
public
static
int
Busy
=>
3
;
#
endregion
}
Clinics.Backend/Domain/Entities/People/Doctors/Shared/DoctorPhone.cs
0 → 100644
View file @
f37a8f42
using
Domain.Primitives
;
namespace
Domain.Entities.People.Doctors.Shared
;
// TODO: Convert phone property to a value object
public
sealed
class
DoctorPhone
(
int
id
)
:
Entity
(
id
)
{
#
region
Properties
public
string
?
Name
{
get
;
set
;
}
public
string
Phone
{
get
;
set
;
}
=
null
!;
#
endregion
}
Clinics.Backend/Domain/Entities/People/Employees/Employee.cs
0 → 100644
View file @
f37a8f42
using
Domain.Entities.People.Employees.Relations.EmployeeFamilyMembers
;
using
Domain.Entities.People.Employees.Shared
;
using
Domain.Entities.People.Patients
;
using
Domain.Primitives
;
namespace
Domain.Entities.People.Employees
;
public
sealed
class
Employee
(
int
id
)
:
Entity
(
id
)
{
#
region
Properties
public
Patient
Patient
{
get
;
set
;
}
=
null
!;
public
EmployeeAdditionalInfo
?
AdditionalInfo
{
get
;
set
;
}
public
string
SerialNumber
{
get
;
set
;
}
=
null
!;
public
string
CenterStatus
{
get
;
set
;
}
=
null
!;
public
bool
IsMarried
{
get
;
set
;
}
=
false
;
#
region
Navigations
public
ICollection
<
EmployeeFamilyMember
>
FamilyMembers
{
get
;
set
;
}
=
[];
public
ICollection
<
Employee
>
RelatedEmployees
{
get
;
set
;
}
=
[];
public
ICollection
<
Employee
>
RelatedTo
{
get
;
set
;
}
=
[];
#
endregion
#
endregion
}
Clinics.Backend/Domain/Entities/People/Employees/Relations/EmployeeFamilyMembers/EmployeeFamilyMember.cs
0 → 100644
View file @
f37a8f42
using
Domain.Entities.People.Employees.Relations.EmployeeFamilyMembers.FamilyRoleValues
;
using
Domain.Entities.People.FamilyMembers
;
using
Domain.Primitives
;
namespace
Domain.Entities.People.Employees.Relations.EmployeeFamilyMembers
;
public
sealed
class
EmployeeFamilyMember
(
int
id
)
:
Entity
(
id
)
{
#
region
Properties
#
region
Employee
public
int
EmployeeId
{
get
;
set
;
}
public
Employee
Employee
{
get
;
set
;
}
=
null
!;
#
endregion
#
region
Family
member
public
int
FamilyMemberId
{
get
;
set
;
}
public
FamilyMember
FamilyMember
{
get
;
set
;
}
=
null
!;
#
endregion
#
region
Additional
public
FamilyRole
Role
{
get
;
set
;
}
=
null
!;
#
endregion
#
endregion
}
Clinics.Backend/Domain/Entities/People/Employees/Relations/EmployeeFamilyMembers/FamilyRoleValues/FamilyRole.cs
0 → 100644
View file @
f37a8f42
using
Domain.Primitives
;
namespace
Domain.Entities.People.Employees.Relations.EmployeeFamilyMembers.FamilyRoleValues
;
public
sealed
class
FamilyRole
(
int
id
)
:
Entity
(
id
)
{
#
region
Properties
public
string
Name
{
get
;
set
;
}
=
null
!;
#
endregion
}
Clinics.Backend/Domain/Entities/People/Employees/Relations/EmployeeFamilyMembers/FamilyRoleValues/FamilyRoles.cs
0 → 100644
View file @
f37a8f42
namespace
Domain.Entities.People.Employees.Relations.EmployeeFamilyMembers.FamilyRoleValues
;
public
static
class
FamilyRoles
{
#
region
Constant
id
values
public
static
int
Husband
=>
1
;
public
static
int
Wife
=>
2
;
public
static
int
Son
=>
3
;
public
static
int
Daughter
=>
4
;
#
endregion
}
Clinics.Backend/Domain/Entities/People/Employees/Shared/EmployeeAdditionalInfo.cs
0 → 100644
View file @
f37a8f42
using
Domain.Primitives
;
namespace
Domain.Entities.People.Employees.Shared
;
// TODO: Convert to a value object containig value objects
public
sealed
class
EmployeeAdditionalInfo
(
int
id
)
:
Entity
(
id
)
{
#
region
Properties
public
DateOnly
?
StartDate
{
get
;
set
;
}
public
string
?
AcademicQualification
{
get
;
set
;
}
public
string
?
WorkPhone
{
get
;
set
;
}
public
string
?
Location
{
get
;
set
;
}
public
string
?
Specialization
{
get
;
set
;
}
public
string
?
JobStatus
{
get
;
set
;
}
public
string
?
ImageUrl
{
get
;
set
;
}
#
endregion
}
Clinics.Backend/Domain/Entities/People/FamilyMembers/FamilyMember.cs
0 → 100644
View file @
f37a8f42
using
Domain.Entities.People.Patients
;
using
Domain.Primitives
;
namespace
Domain.Entities.People.FamilyMembers
;
public
sealed
class
FamilyMember
(
int
id
)
:
Entity
(
id
)
{
#
region
Properties
public
Patient
Patient
{
get
;
set
;
}
=
null
!;
#
endregion
}
Clinics.Backend/Domain/Entities/People/Patients/Patient.cs
0 → 100644
View file @
f37a8f42
using
Domain.Entities.People.Patients.Relations.PatientDiseases
;
using
Domain.Entities.People.Patients.Relations.PatientMedicines
;
using
Domain.Entities.People.Shared
;
using
Domain.Entities.People.Shared.GenderValues
;
using
Domain.Entities.Visits
;
using
Domain.Primitives
;
namespace
Domain.Entities.People.Patients
;
// TODO: Potential aggregate?
public
sealed
class
Patient
(
int
id
)
:
Entity
(
id
)
{
#
region
Properties
public
PersonalInfo
PersonalInfo
{
get
;
set
;
}
=
null
!;
public
DateOnly
DateOfBirth
{
get
;
set
;
}
public
Gender
Gender
{
get
;
set
;
}
=
null
!;
#
region
Navigations
public
ICollection
<
PatientDisease
>
Diseases
{
get
;
set
;
}
=
[];
public
ICollection
<
PatientMedicine
>
Medicines
{
get
;
set
;
}
=
[];
public
ICollection
<
Visit
>
Visits
{
get
;
set
;
}
=
[];
#
endregion
#
endregion
}
Clinics.Backend/Domain/Entities/People/Patients/Relations/PatientDiseases/PatientDisease.cs
0 → 100644
View file @
f37a8f42
using
Domain.Entities.Medicals.Diseases
;
using
Domain.Primitives
;
namespace
Domain.Entities.People.Patients.Relations.PatientDiseases
;
public
sealed
class
PatientDisease
(
int
id
)
:
Entity
(
id
)
{
#
region
Properties
#
region
Patient
public
int
PatientId
{
get
;
set
;
}
public
Patient
Patient
{
get
;
set
;
}
=
null
!;
#
endregion
#
region
Disease
public
int
DiseaseId
{
get
;
set
;
}
public
Disease
Disease
{
get
;
set
;
}
=
null
!;
#
endregion
#
region
Additional
#
endregion
#
endregion
}
Clinics.Backend/Domain/Entities/People/Patients/Relations/PatientMedicines/PatientMedicine.cs
0 → 100644
View file @
f37a8f42
using
Domain.Entities.Medicals.Medicines
;
using
Domain.Primitives
;
namespace
Domain.Entities.People.Patients.Relations.PatientMedicines
;
public
sealed
class
PatientMedicine
(
int
id
)
:
Entity
(
id
)
{
#
region
Properties
#
region
Patient
public
int
PatientId
{
get
;
set
;
}
public
Patient
Patient
{
get
;
set
;
}
=
null
!;
#
endregion
#
region
Medicine
public
int
MedicineId
{
get
;
set
;
}
public
Medicine
Medicine
{
get
;
set
;
}
=
null
!;
#
endregion
#
region
Additional
public
int
Number
{
get
;
set
;
}
#
endregion
#
endregion
}
Clinics.Backend/Domain/Entities/People/Shared/GenderValues/Gender.cs
0 → 100644
View file @
f37a8f42
using
Domain.Primitives
;
namespace
Domain.Entities.People.Shared.GenderValues
;
// TODO: Convert to a value object
public
sealed
class
Gender
(
int
id
)
:
Entity
(
id
)
{
#
region
Properties
public
string
Name
{
get
;
set
;
}
=
null
!;
#
endregion
}
Clinics.Backend/Domain/Entities/People/Shared/GenderValues/Genders.cs
0 → 100644
View file @
f37a8f42
namespace
Domain.Entities.People.Shared.GenderValues
;
public
static
class
Genders
{
#
region
Constant
id
values
public
static
int
Male
=>
1
;
public
static
int
Female
=>
2
;
#
endregion
}
Clinics.Backend/Domain/Entities/People/Shared/PersonalInfo.cs
0 → 100644
View file @
f37a8f42
using
Domain.Primitives
;
namespace
Domain.Entities.People.Shared
;
// TODO: Convert props to value objects
public
sealed
class
PersonalInfo
(
int
id
)
:
Entity
(
id
)
{
#
region
Properties
public
string
FirstName
{
get
;
set
;
}
=
null
!;
public
string
MiddleName
{
get
;
set
;
}
=
null
!;
public
string
LastName
{
get
;
set
;
}
=
null
!;
#
endregion
}
Clinics.Backend/Domain/Entities/Visits/Relations/VisitMedicalImages/VisitMedicalImage.cs
0 → 100644
View file @
f37a8f42
using
Domain.Entities.Medicals.MedicalImages
;
using
Domain.Primitives
;
namespace
Domain.Entities.Visits.Relations.VisitMedicalImages
;
// TODO: Convert result to a value object
public
sealed
class
VisitMedicalImage
(
int
id
)
:
Entity
(
id
)
{
#
region
Properties
#
region
Visit
public
int
VisitId
{
get
;
set
;
}
public
Visit
Visit
{
get
;
set
;
}
=
null
!;
#
endregion
#
region
Medical
image
public
int
MedicalImageId
{
get
;
set
;
}
public
MedicalImage
MedicalImage
{
get
;
set
;
}
=
null
!;
#
endregion
#
region
Additional
public
string
?
Result
{
get
;
set
;
}
#
endregion
#
endregion
}
Clinics.Backend/Domain/Entities/Visits/Relations/VisitMedicalTests/VisitMedicalTest.cs
0 → 100644
View file @
f37a8f42
using
Domain.Entities.Medicals.MedicalTests
;
using
Domain.Primitives
;
namespace
Domain.Entities.Visits.Relations.VisitMedicalTests
;
// TODO: Convert result to a value object
public
sealed
class
VisitMedicalTest
(
int
id
)
:
Entity
(
id
)
{
#
region
Properties
#
region
Visit
public
int
VisitId
{
get
;
set
;
}
public
Visit
Visit
{
get
;
set
;
}
=
null
!;
#
endregion
#
region
Medical
test
public
int
MedicalTestId
{
get
;
set
;
}
public
MedicalTest
MedicalTest
{
get
;
set
;
}
=
null
!;
#
endregion
#
region
Additional
public
string
?
Result
{
get
;
set
;
}
#
endregion
#
endregion
}
Clinics.Backend/Domain/Entities/Visits/Relations/VisitMedicines/VisitMedicine.cs
0 → 100644
View file @
f37a8f42
using
Domain.Entities.Medicals.Medicines
;
using
Domain.Primitives
;
namespace
Domain.Entities.Visits.Relations.VisitMedicines
;
public
sealed
class
VisitMedicine
(
int
id
)
:
Entity
(
id
)
{
#
region
Properties
#
region
Visit
public
int
VisitId
{
get
;
set
;
}
public
Visit
Visit
{
get
;
set
;
}
=
null
!;
#
endregion
#
region
Medicine
public
int
MedicineId
{
get
;
set
;
}
public
Medicine
Medicine
{
get
;
set
;
}
=
null
!;
#
endregion
#
region
Additional
public
int
Number
{
get
;
set
;
}
#
endregion
#
endregion
}
Clinics.Backend/Domain/Entities/Visits/Visit.cs
0 → 100644
View file @
f37a8f42
using
Domain.Entities.Medicals.Hospitals
;
using
Domain.Entities.People.Doctors
;
using
Domain.Entities.People.Patients
;
using
Domain.Entities.Visits.Relations.VisitMedicalImages
;
using
Domain.Entities.Visits.Relations.VisitMedicalTests
;
using
Domain.Entities.Visits.Relations.VisitMedicines
;
using
Domain.Primitives
;
namespace
Domain.Entities.Visits
;
public
sealed
class
Visit
(
int
id
)
:
Entity
(
id
)
{
#
region
Properties
public
Patient
Patient
{
get
;
set
;
}
=
null
!;
public
Doctor
Doctor
{
get
;
set
;
}
=
null
!;
public
Hospital
?
Hospital
{
get
;
set
;
}
public
DateOnly
Date
{
get
;
set
;
}
public
string
Diagnosis
{
get
;
set
;
}
=
null
!;
#
region
Navigations
public
ICollection
<
VisitMedicalImage
>
MedicalImages
{
get
;
set
;
}
=
[];
public
ICollection
<
VisitMedicalTest
>
MedicalTests
{
get
;
set
;
}
=
[];
public
ICollection
<
VisitMedicine
>
Medicines
{
get
;
set
;
}
=
[];
#
endregion
#
endregion
}
Clinics.Backend/Domain/Entities/WaitingList/WaitingListRecord.cs
0 → 100644
View file @
f37a8f42
using
Domain.Entities.People.Doctors
;
using
Domain.Entities.People.Patients
;
using
Domain.Primitives
;
namespace
Domain.Entities.WaitingList
;
public
sealed
class
WaitingListRecord
(
int
id
)
:
Entity
(
id
)
{
#
region
Properties
#
region
Patient
public
int
PatientId
{
get
;
set
;
}
public
Patient
Patient
{
get
;
set
;
}
=
null
!;
#
endregion
#
region
Doctor
public
int
?
DoctorId
{
get
;
set
;
}
public
Doctor
?
Doctor
{
get
;
set
;
}
#
endregion
#
region
Additional
public
bool
IsServed
{
get
;
set
;
}
=
false
;
#
endregion
#
endregion
}
Clinics.Backend/Domain/Primitives/Entity.cs
0 → 100644
View file @
f37a8f42
namespace
Domain.Primitives
;
// To use nullable reference types within the file
#
nullable
enable
public
class
Entity
{
protected
Entity
(
int
id
)
{
Id
=
id
;
}
#
region
Properties
// Init is to ensure that Id is unchangable
public
int
Id
{
get
;
private
init
;
}
#
endregion
#
region
Equality
by
matching
Id
public
override
bool
Equals
(
object
?
obj
)
{
if
(
InvalidType
(
obj
))
{
return
false
;
}
if
(
obj
is
not
Entity
entity
)
{
return
false
;
}
return
entity
.
Id
==
Id
;
}
public
bool
Equals
(
Entity
other
)
{
if
(
InvalidType
(
other
))
{
return
false
;
}
return
other
.
Id
==
Id
;
}
public
static
bool
operator
==(
Entity
?
first
,
Entity
?
second
)
{
return
(
first
is
not
null
)
&&
(
second
is
not
null
)
&&
first
.
Equals
(
second
);
}
public
static
bool
operator
!=(
Entity
?
first
,
Entity
?
second
)
{
return
!(
first
==
second
);
}
private
bool
InvalidType
(
object
?
obj
)
{
return
(
obj
is
null
)
||
(
obj
.
GetType
()
!=
this
.
GetType
());
}
#
endregion
#
region
Custom
hash
code
for
collections
// For dealing with collections
public
override
int
GetHashCode
()
{
// It's a best practice to mult by prime number when defining custom hash code
return
Id
.
GetHashCode
()
*
41
;
}
#
endregion
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment