Skip to content

Commit 0c6c9b7

Browse files
Merge pull request #20 from swiftss-org/feat/add-base-models
Feat: add base models
2 parents 3f7495a + 868f9e2 commit 0c6c9b7

File tree

13 files changed

+282
-9
lines changed

13 files changed

+282
-9
lines changed

config/settings/base.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@
7272
LOCAL_APPS = [
7373
"tmh_registry.users.apps.UsersConfig",
7474
"tmh_registry.common",
75+
"tmh_registry.registry.apps.RegistryConfig",
7576
]
7677
# https://docs.djangoproject.com/en/dev/ref/settings/#installed-apps
7778
INSTALLED_APPS = DJANGO_APPS + THIRD_PARTY_APPS + LOCAL_APPS

tmh_registry/registry/__init__.py

Whitespace-only changes.

tmh_registry/registry/admin.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
from django.contrib import admin
2+
3+
from tmh_registry.registry.models import (
4+
Hospital,
5+
Patient,
6+
PatientHospitalMapping,
7+
)
8+
9+
10+
@admin.register(Hospital)
11+
class HospitalAdmin(admin.ModelAdmin):
12+
model = Hospital
13+
14+
15+
@admin.register(Patient)
16+
class PatientAdmin(admin.ModelAdmin):
17+
model = Patient
18+
19+
20+
@admin.register(PatientHospitalMapping)
21+
class PatientHospitalMappingAdmin(admin.ModelAdmin):
22+
model = PatientHospitalMapping

tmh_registry/registry/apps.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
from django.apps import AppConfig
2+
from django.utils.translation import gettext_lazy as _
3+
4+
5+
class RegistryConfig(AppConfig):
6+
name = "tmh_registry.registry"
7+
verbose_name = _("Registry")
8+
9+
def ready(self):
10+
try:
11+
import tmh_registry.registry.signals # noqa F401 # pylint: disable=unused-import
12+
except ImportError:
13+
pass
Lines changed: 122 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,122 @@
1+
# Generated by Django 3.1.3 on 2021-06-04 14:06
2+
3+
from django.db import migrations, models
4+
import django.db.models.deletion
5+
6+
7+
class Migration(migrations.Migration):
8+
9+
initial = True
10+
11+
dependencies = []
12+
13+
operations = [
14+
migrations.CreateModel(
15+
name="Hospital",
16+
fields=[
17+
(
18+
"id",
19+
models.AutoField(
20+
auto_created=True,
21+
primary_key=True,
22+
serialize=False,
23+
verbose_name="ID",
24+
),
25+
),
26+
(
27+
"name",
28+
models.CharField(blank=True, max_length=255, null=True),
29+
),
30+
(
31+
"address",
32+
models.CharField(blank=True, max_length=255, null=True),
33+
),
34+
],
35+
),
36+
migrations.CreateModel(
37+
name="Patient",
38+
fields=[
39+
(
40+
"id",
41+
models.AutoField(
42+
auto_created=True,
43+
primary_key=True,
44+
serialize=False,
45+
verbose_name="ID",
46+
),
47+
),
48+
(
49+
"first_name",
50+
models.CharField(blank=True, max_length=255, null=True),
51+
),
52+
(
53+
"last_name",
54+
models.CharField(blank=True, max_length=255, null=True),
55+
),
56+
(
57+
"national_id",
58+
models.IntegerField(blank=True, null=True, unique=True),
59+
),
60+
("age", models.PositiveIntegerField(blank=True, null=True)),
61+
(
62+
"day_of_birth",
63+
models.PositiveIntegerField(blank=True, null=True),
64+
),
65+
(
66+
"month_of_birth",
67+
models.PositiveIntegerField(blank=True, null=True),
68+
),
69+
(
70+
"year_of_birth",
71+
models.PositiveIntegerField(blank=True, null=True),
72+
),
73+
(
74+
"gender",
75+
models.IntegerField(
76+
choices=[
77+
("GENDER_MALE", "Male"),
78+
("GENDER_FEMALE", "Female"),
79+
]
80+
),
81+
),
82+
("phone_1", models.IntegerField(blank=True, null=True)),
83+
("phone_2", models.IntegerField(blank=True, null=True)),
84+
(
85+
"address",
86+
models.CharField(blank=True, max_length=255, null=True),
87+
),
88+
],
89+
),
90+
migrations.CreateModel(
91+
name="PatientHospitalMapping",
92+
fields=[
93+
(
94+
"id",
95+
models.AutoField(
96+
auto_created=True,
97+
primary_key=True,
98+
serialize=False,
99+
verbose_name="ID",
100+
),
101+
),
102+
(
103+
"hospital",
104+
models.ForeignKey(
105+
on_delete=django.db.models.deletion.CASCADE,
106+
to="registry.hospital",
107+
),
108+
),
109+
(
110+
"patient",
111+
models.ForeignKey(
112+
on_delete=django.db.models.deletion.CASCADE,
113+
to="registry.patient",
114+
),
115+
),
116+
],
117+
options={
118+
"verbose_name_plural": "Patient-Hospital mapping",
119+
"unique_together": {("patient", "hospital")},
120+
},
121+
),
122+
]

tmh_registry/registry/migrations/__init__.py

Whitespace-only changes.

tmh_registry/registry/models.py

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
from django.db import models
2+
3+
4+
class Hospital(models.Model):
5+
name = models.CharField(max_length=255, null=True, blank=True)
6+
address = models.CharField(max_length=255, null=True, blank=True)
7+
8+
def __str__(self):
9+
return self.name
10+
11+
12+
class Patient(models.Model):
13+
first_name = models.CharField(max_length=255, null=True, blank=True)
14+
last_name = models.CharField(max_length=255, null=True, blank=True)
15+
national_id = models.IntegerField(null=True, blank=True, unique=True)
16+
age = models.PositiveIntegerField(null=True, blank=True)
17+
day_of_birth = models.PositiveIntegerField(null=True, blank=True)
18+
month_of_birth = models.PositiveIntegerField(null=True, blank=True)
19+
year_of_birth = models.PositiveIntegerField(null=True, blank=True)
20+
gender = models.IntegerField(
21+
choices=[("GENDER_MALE", "Male"), ("GENDER_FEMALE", "Female")]
22+
)
23+
phone_1 = models.IntegerField(null=True, blank=True)
24+
phone_2 = models.IntegerField(null=True, blank=True)
25+
address = models.CharField(max_length=255, null=True, blank=True)
26+
27+
def __str__(self):
28+
return f"{self.first_name} - {self.last_name}"
29+
30+
31+
class PatientHospitalMapping(models.Model):
32+
patient = models.ForeignKey(Patient, on_delete=models.CASCADE)
33+
hospital = models.ForeignKey(Hospital, on_delete=models.CASCADE)
34+
35+
class Meta:
36+
unique_together = ("patient", "hospital")
37+
verbose_name_plural = "Patient-Hospital mapping"
38+
39+
def __str__(self):
40+
return f"{self.patient.last_name} - {self.hospital.name}"

tmh_registry/users/admin.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
from django.contrib import admin
2+
3+
from tmh_registry.users.models import MedicalPersonnel
4+
5+
6+
@admin.register(MedicalPersonnel)
7+
class MedicalPersonnelAdmin(admin.ModelAdmin):
8+
model = MedicalPersonnel

tmh_registry/users/api/serializers.py

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,14 @@
22
from django.db import transaction
33
from rest_framework import serializers
44

5-
from tmh_registry.users.models import Profile
5+
from tmh_registry.users.models import MedicalPersonnel
66

77
User = get_user_model()
88

99

10-
class ProfileSerializer(serializers.ModelSerializer):
10+
class MedicalPersonnelSerializer(serializers.ModelSerializer):
1111
class Meta:
12-
model = Profile
12+
model = MedicalPersonnel
1313
fields = ["user"]
1414

1515

@@ -21,18 +21,16 @@ class Meta:
2121
def create(self, validated_data):
2222
with transaction.atomic():
2323
user = User.objects.create(**validated_data)
24-
profile = Profile(user=user)
25-
profile.save()
24+
medical_personnel = MedicalPersonnel(user=user)
25+
medical_personnel.save()
2626
user.save()
2727
return user
2828

2929

3030
class UserReadSerializer(serializers.ModelSerializer):
31-
profile = ProfileSerializer()
32-
3331
class Meta:
3432
model = User
35-
fields = ["email", "profile"]
33+
fields = ["email"]
3634

3735

3836
class SignInSerializer(serializers.Serializer):
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# Generated by Django 3.1.3 on 2021-06-04 10:37
2+
3+
from django.conf import settings
4+
from django.db import migrations
5+
6+
7+
class Migration(migrations.Migration):
8+
9+
dependencies = [
10+
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
11+
("users", "0003_auto_20210530_1148"),
12+
]
13+
14+
operations = [
15+
migrations.RenameModel(
16+
old_name="Profile",
17+
new_name="MedicalPersonnel",
18+
),
19+
]

0 commit comments

Comments
 (0)