diff-031b78048f50cd180d6d36b3f8a24ccca3557205R1">1
+# Generated by Django 3.2.5 on 2021-07-17 15:54
2
+
3
+import django.contrib.gis.db.models.fields
4
+from django.db import migrations
5
+
6
+
7
+class Migration(migrations.Migration):
8
+
9
+    dependencies = [
10
+        ('backend', '0003_alter_hospital_address'),
11
+    ]
12
+
13
+    operations = [
14
+        migrations.AlterField(
15
+            model_name='hospital',
16
+            name='location',
17
+            field=django.contrib.gis.db.models.fields.PointField(blank=True, null=True, srid=4326),
18
+        ),
19
+    ]

+ 18 - 0
backend/migrations/0005_hospital_address_text.py

@@ -0,0 +1,18 @@
1
+# Generated by Django 3.2.5 on 2021-07-17 15:56
2
+
3
+from django.db import migrations, models
4
+
5
+
6
+class Migration(migrations.Migration):
7
+
8
+    dependencies = [
9
+        ('backend', '0004_alter_hospital_location'),
10
+    ]
11
+
12
+    operations = [
13
+        migrations.AddField(
14
+            model_name='hospital',
15
+            name='address_text',
16
+            field=models.TextField(blank=True, null=True),
17
+        ),
18
+    ]

+ 34 - 0
backend/migrations/0006_bed_patient.py

@@ -0,0 +1,34 @@
1
+# Generated by Django 3.2.5 on 2021-07-17 16:17
2
+
3
+from django.db import migrations, models
4
+import django.db.models.deletion
5
+
6
+
7
+class Migration(migrations.Migration):
8
+
9
+    dependencies = [
10
+        ('backend', '0005_hospital_address_text'),
11
+    ]
12
+
13
+    operations = [
14
+        migrations.CreateModel(
15
+            name='Patient',
16
+            fields=[
17
+                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
18
+                ('first_name', models.CharField(max_length=100)),
19
+                ('last_name', models.CharField(max_length=100)),
20
+            ],
21
+        ),
22
+        migrations.CreateModel(
23
+            name='Bed',
24
+            fields=[
25
+                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
26
+                ('code', models.CharField(max_length=30)),
27
+                ('occupy', models.BooleanField(default=False)),
28
+                ('created_at', models.DateTimeField(auto_now_add=True, null=True)),
29
+                ('updated_at', models.DateTimeField(auto_now=True)),
30
+                ('hospital', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='backend.hospital')),
31
+                ('patient', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='backend.patient')),
32
+            ],
33
+        ),
34
+    ]

+ 24 - 0
backend/migrations/0007_auto_20210718_0249.py

@@ -0,0 +1,24 @@
1
+# Generated by Django 3.2.5 on 2021-07-18 02:49
2
+
3
+from django.db import migrations, models
4
+
5
+
6
+class Migration(migrations.Migration):
7
+
8
+    dependencies = [
9
+        ('backend', '0006_bed_patient'),
10
+    ]
11
+
12
+    operations = [
13
+        migrations.AddField(
14
+            model_name='patient',
15
+            name='age',
16
+            field=models.IntegerField(default=5),
17
+            preserve_default=False,
18
+        ),
19
+        migrations.AddField(
20
+            model_name='patient',
21
+            name='prefix',
22
+            field=models.CharField(choices=[('นางสาว', 'นางสาว'), ('นาย', 'นาย'), ('นาง', 'นาง'), ('ด.ช.', 'เด็กชาย'), ('ด.ญ.', 'เด็กหญิง')], max_length=30, null=True),
23
+        ),
24
+    ]

+ 23 - 0
backend/migrations/0008_auto_20210718_0659.py

@@ -0,0 +1,23 @@
1
+# Generated by Django 3.2.5 on 2021-07-18 06:59
2
+
3
+from django.db import migrations, models
4
+
5
+
6
+class Migration(migrations.Migration):
7
+
8
+    dependencies = [
9
+        ('backend', '0007_auto_20210718_0249'),
10
+    ]
11
+
12
+    operations = [
13
+        migrations.AddField(
14
+            model_name='patient',
15
+            name='idcard',
16
+            field=models.CharField(max_length=20, null=True),
17
+        ),
18
+        migrations.AddField(
19
+            model_name='patient',
20
+            name='sex',
21
+            field=models.CharField(choices=[('Male', 'male'), ('Female', 'female')], max_length=30, null=True),
22
+        ),
23
+    ]

+ 23 - 0
backend/migrations/0009_auto_20210718_0702.py

@@ -0,0 +1,23 @@
1
+# Generated by Django 3.2.5 on 2021-07-18 07:02
2
+
3
+from django.db import migrations, models
4
+
5
+
6
+class Migration(migrations.Migration):
7
+
8
+    dependencies = [
9
+        ('backend', '0008_auto_20210718_0659'),
10
+    ]
11
+
12
+    operations = [
13
+        migrations.AddField(
14
+            model_name='patient',
15
+            name='photo',
16
+            field=models.FileField(blank=True, upload_to='uploads/%Y/%m/%d/', verbose_name='Photo'),
17
+        ),
18
+        migrations.AlterField(
19
+            model_name='patient',
20
+            name='sex',
21
+            field=models.CharField(choices=[('male', 'Male'), ('female', 'Female')], max_length=30, null=True),
22
+        ),
23
+    ]

+ 24 - 0
backend/migrations/0010_auto_20210718_0713.py

@@ -0,0 +1,24 @@
1
+# Generated by Django 3.2.5 on 2021-07-18 07:13
2
+
3
+from django.db import migrations
4
+import django_google_maps.fields
5
+
6
+
7
+class Migration(migrations.Migration):
8
+
9
+    dependencies = [
10
+        ('backend', '0009_auto_20210718_0702'),
11
+    ]
12
+
13
+    operations = [
14
+        migrations.AddField(
15
+            model_name='patient',
16
+            name='address',
17
+            field=django_google_maps.fields.AddressField(blank=True, max_length=200, null=True),
18
+        ),
19
+        migrations.AddField(
20
+            model_name='patient',
21
+            name='geolocation',
22
+            field=django_google_maps.fields.GeoLocationField(blank=True, max_length=100, null=True),
23
+        ),
24
+    ]

+ 29 - 0
backend/migrations/0011_auto_20210718_0722.py

@@ -0,0 +1,29 @@
1
+# Generated by Django 3.2.5 on 2021-07-18 07:22
2
+
3
+from django.db import migrations, models
4
+import django_google_maps.fields
5
+
6
+
7
+class Migration(migrations.Migration):
8
+
9
+    dependencies = [
10
+        ('backend', '0010_auto_20210718_0713'),
11
+    ]
12
+
13
+    operations = [
14
+        migrations.AddField(
15
+            model_name='patient',
16
+            name='condition_level',
17
+            field=models.CharField(choices=[('green', 'Green'), ('yellow', 'Yellow'), ('red', 'Red')], max_length=30, null=True),
18
+        ),
19
+        migrations.AlterField(
20
+            model_name='patient',
21
+            name='address',
22
+            field=django_google_maps.fields.AddressField(max_length=200, null=True),
23
+        ),
24
+        migrations.AlterField(
25
+            model_name='patient',
26
+            name='geolocation',
27
+            field=django_google_maps.fields.GeoLocationField(max_length=100, null=True),
28
+        ),
29
+    ]

+ 18 - 0
backend/migrations/0012_patient_comment.py

@@ -0,0 +1,18 @@
1
+# Generated by Django 3.2.5 on 2021-07-18 07:24
2
+
3
+from django.db import migrations, models
4
+
5
+
6
+class Migration(migrations.Migration):
7
+
8
+    dependencies = [
9
+        ('backend', '0011_auto_20210718_0722'),
10
+    ]
11
+
12
+    operations = [
13
+        migrations.AddField(
14
+            model_name='patient',
15
+            name='comment',
16
+            field=models.TextField(blank=True, null=True),
17
+        ),
18
+    ]

+ 28 - 0
backend/migrations/0013_patientlog.py

@@ -0,0 +1,28 @@
1
+# Generated by Django 3.2.5 on 2021-07-18 07:29
2
+
3
+from django.db import migrations, models
4
+import django.db.models.deletion
5
+
6
+
7
+class Migration(migrations.Migration):
8
+
9
+    dependencies = [
10
+        ('backend', '0012_patient_comment'),
11
+    ]
12
+
13
+    operations = [
14
+        migrations.CreateModel(
15
+            name='PatientLog',
16
+            fields=[
17
+                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
18
+                ('notes', models.TextField(blank=True, null=True)),
19
+                ('condition_level', models.CharField(choices=[('green', 'Green'), ('yellow', 'Yellow'), ('red', 'Red')], max_length=30, null=True)),
20
+                ('status', models.CharField(choices=[('active', 'Active'), ('inactive', 'Inactive'), ('transfer', 'Transfer')], max_length=30, null=True)),
21
+                ('created_at', models.DateTimeField(auto_now_add=True, null=True)),
22
+                ('updated_at', models.DateTimeField(auto_now=True)),
23
+                ('bed', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='backend.bed')),
24
+                ('hospital', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='backend.hospital')),
25
+                ('patient', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='backend.patient')),
26
+            ],
27
+        ),
28
+    ]

+ 20 - 0
backend/migrations/0014_alter_patientlog_bed.py

@@ -0,0 +1,20 @@
1
+# Generated by Django 3.2.5 on 2021-07-18 07:49
2
+
3
+from django.db import migrations
4
+import django.db.models.deletion
5
+import smart_selects.db_fields
6
+
7
+
8
+class Migration(migrations.Migration):
9
+
10
+    dependencies = [
11
+        ('backend', '0013_patientlog'),
12
+    ]
13
+
14
+    operations = [
15
+        migrations.AlterField(
16
+            model_name='patientlog',
17
+            name='bed',
18
+            field=smart_selects.db_fields.GroupedForeignKey(group_field='hospital', null=True, on_delete=django.db.models.deletion.CASCADE, to='backend.bed'),
19
+        ),
20
+    ]

+ 20 - 0
backend/migrations/0015_alter_patientlog_bed.py

@@ -0,0 +1,20 @@
1
+# Generated by Django 3.2.5 on 2021-07-18 07:59
2
+
3
+from django.db import migrations
4
+import django.db.models.deletion
5
+import smart_selects.db_fields
6
+
7
+
8
+class Migration(migrations.Migration):
9
+
10
+    dependencies = [
11
+        ('backend', '0014_alter_patientlog_bed'),
12
+    ]
13
+
14
+    operations = [
15
+        migrations.AlterField(
16
+            model_name='patientlog',
17
+            name='bed',
18
+            field=smart_selects.db_fields.ChainedForeignKey(auto_choose=True, chained_field='hospital', chained_model_field='hospital', null=True, on_delete=django.db.models.deletion.CASCADE, to='backend.bed'),
19
+        ),
20
+    ]

+ 29 - 0
backend/migrations/0016_auto_20210718_1031.py

@@ -0,0 +1,29 @@
1
+# Generated by Django 3.2.5 on 2021-07-18 10:31
2
+
3
+from django.db import migrations, models
4
+import django.db.models.deletion
5
+
6
+
7
+class Migration(migrations.Migration):
8
+
9
+    dependencies = [
10
+        ('backend', '0015_alter_patientlog_bed'),
11
+    ]
12
+
13
+    operations = [
14
+        migrations.AddField(
15
+            model_name='patientlog',
16
+            name='checkin_at',
17
+            field=models.DateTimeField(blank=True, null=True),
18
+        ),
19
+        migrations.AddField(
20
+            model_name='patientlog',
21
+            name='checkout_at',
22
+            field=models.DateTimeField(blank=True, null=True),
23
+        ),
24
+        migrations.AlterField(
25
+            model_name='bed',
26
+            name='patient',
27
+            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='backend.patient'),
28
+        ),
29
+    ]

+ 43 - 0
backend/migrations/0017_ambulance_driver.py

@@ -0,0 +1,43 @@
1
+# Generated by Django 3.2.5 on 2021-07-18 10:43
2
+
3
+from django.db import migrations, models
4
+
5
+
6
+class Migration(migrations.Migration):
7
+
8
+    dependencies = [
9
+        ('backend', '0016_auto_20210718_1031'),
10
+    ]
11
+
12
+    operations = [
13
+        migrations.CreateModel(
14
+            name='Ambulance',
15
+            fields=[
16
+                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
17
+                ('code', models.CharField(max_length=100)),
18
+                ('license_plate', models.CharField(max_length=100)),
19
+                ('brand', models.CharField(max_length=100)),
20
+                ('model_name', models.CharField(max_length=100)),
21
+                ('comment', models.TextField(blank=True, null=True)),
22
+                ('status', models.CharField(choices=[('working', 'Working'), ('free', 'Free'), ('ma', 'MA')], max_length=30, null=True)),
23
+                ('created_at', models.DateTimeField(auto_now_add=True, null=True)),
24
+                ('updated_at', models.DateTimeField(auto_now=True)),
25
+            ],
26
+        ),
27
+        migrations.CreateModel(
28
+            name='Driver',
29
+            fields=[
30
+                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
31
+                ('first_name', models.CharField(max_length=100)),
32
+                ('last_name', models.CharField(max_length=100)),
33
+                ('age', models.IntegerField()),
34
+                ('idcard', models.CharField(max_length=20, null=True)),
35
+                ('prefix', models.CharField(choices=[('นางสาว', 'นางสาว'), ('นาย', 'นาย'), ('นาง', 'นาง'), ('ด.ช.', 'เด็กชาย'), ('ด.ญ.', 'เด็กหญิง')], max_length=30, null=True)),
36
+                ('sex', models.CharField(choices=[('male', 'Male'), ('female', 'Female')], max_length=30, null=True)),
37
+                ('photo', models.FileField(blank=True, upload_to='uploads/%Y/%m/%d/', verbose_name='Photo')),
38
+                ('address', models.TextField(blank=True, null=True)),
39
+                ('created_at', models.DateTimeField(auto_now_add=True, null=True)),
40
+                ('updated_at', models.DateTimeField(auto_now=True)),
41
+            ],
42
+        ),
43
+    ]

+ 19 - 0
backend/migrations/0018_ambulance_color.py

@@ -0,0 +1,19 @@
1
+# Generated by Django 3.2.5 on 2021-07-18 10:56
2
+
3
+import colorfield.fields
4
+from django.db import migrations
5
+
6
+
7
+class Migration(migrations.Migration):
8
+
9
+    dependencies = [
10
+        ('backend', '0017_ambulance_driver'),
11
+    ]
12
+
13
+    operations = [
14
+        migrations.AddField(
15
+            model_name='ambulance',
16
+            name='color',
17
+            field=colorfield.fields.ColorField(default='#FF0000', max_length=18),
18
+        ),
19
+    ]

+ 27 - 0
backend/migrations/0019_ambulanceticket.py

@@ -0,0 +1,27 @@
1
+# Generated by Django 3.2.5 on 2021-07-18 16:25
2
+
3
+from django.db import migrations, models
4
+import django.db.models.deletion
5
+
6
+
7
+class Migration(migrations.Migration):
8
+
9
+    dependencies = [
10
+        ('backend', '0018_ambulance_color'),
11
+    ]
12
+
13
+    operations = [
14
+        migrations.CreateModel(
15
+            name='AmbulanceTicket',
16
+            fields=[
17
+                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
18
+                ('status', models.CharField(choices=[('working', 'Working'), ('free', 'Free'), ('ma', 'MA')], max_length=30, null=True)),
19
+                ('checkin_at', models.DateTimeField(blank=True, null=True)),
20
+                ('checkout_at', models.DateTimeField(blank=True, null=True)),
21
+                ('created_at', models.DateTimeField(auto_now_add=True, null=True)),
22
+                ('updated_at', models.DateTimeField(auto_now=True)),
23
+                ('ambulance', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='backend.ambulance')),
24
+                ('driver', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='backend.driver')),
25
+            ],
26
+        ),
27
+    ]

+ 18 - 0
backend/migrations/0020_driver_status.py

@@ -0,0 +1,18 @@
1
+# Generated by Django 3.2.5 on 2021-07-18 16:51
2
+
3
+from django.db import migrations, models
4
+
5
+
6
+class Migration(migrations.Migration):
7
+
8
+    dependencies = [
9
+        ('backend', '0019_ambulanceticket'),
10
+    ]
11
+
12
+    operations = [
13
+        migrations.AddField(
14
+            model_name='driver',
15
+            name='status',
16
+            field=models.CharField(choices=[('working', 'Working'), ('free', 'Free'), ('block', 'Block')], max_length=30, null=True),
17
+        ),
18
+    ]

+ 24 - 0
backend/migrations/0021_auto_20210719_0014.py

@@ -0,0 +1,24 @@
1
+# Generated by Django 3.2.5 on 2021-07-18 17:14
2
+
3
+from django.db import migrations
4
+import django_google_maps.fields
5
+
6
+
7
+class Migration(migrations.Migration):
8
+
9
+    dependencies = [
10
+        ('backend', '0020_driver_status'),
11
+    ]
12
+
13
+    operations = [
14
+        migrations.AddField(
15
+            model_name='hospital',
16
+            name='address2',
17
+            field=django_google_maps.fields.AddressField(max_length=200, null=True),
18
+        ),
19
+        migrations.AddField(
20
+            model_name='hospital',
21
+            name='geolocation2',
22
+            field=django_google_maps.fields.GeoLocationField(max_length=100, null=True),
23
+        ),
24
+    ]

+ 21 - 0
backend/migrations/0022_auto_20210719_0024.py

@@ -0,0 +1,21 @@
1
+# Generated by Django 3.2.5 on 2021-07-18 17:24
2
+
3
+from django.db import migrations
4
+
5
+
6
+class Migration(migrations.Migration):
7
+
8
+    dependencies = [
9
+        ('backend', '0021_auto_20210719_0014'),
10
+    ]
11
+
12
+    operations = [
13
+        migrations.RemoveField(
14
+            model_name='hospital',
15
+            name='address2',
16
+        ),
17
+        migrations.RemoveField(
18
+            model_name='hospital',
19
+            name='geolocation2',
20
+        ),
21
+    ]

+ 25 - 0
backend/migrations/0023_place.py

@@ -0,0 +1,25 @@
1
+# Generated by Django 3.2.5 on 2021-07-18 17:29
2
+
3
+from django.db import migrations, models
4
+import django_google_maps.fields
5
+
6
+
7
+class Migration(migrations.Migration):
8
+
9
+    dependencies = [
10
+        ('backend', '0022_auto_20210719_0024'),
11
+    ]
12
+
13
+    operations = [
14
+        migrations.CreateModel(
15
+            name='Place',
16
+            fields=[
17
+                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
18
+                ('address', django_google_maps.fields.AddressField(max_length=200)),
19
+                ('geolocation', django_google_maps.fields.GeoLocationField(max_length=100)),
20
+                ('created_at', models.DateTimeField(auto_now_add=True, null=True)),
21
+                ('updated_at', models.DateTimeField(auto_now=True)),
22
+                ('more_info', models.JSONField(blank=True, null=True)),
23
+            ],
24
+        ),
25
+    ]

+ 0 - 0
backend/migrations/__init__.py


BIN
backend/migrations/__pycache__/0001_initial.cpython-39.pyc


BIN
backend/migrations/__pycache__/0002_hospital_geolocation.cpython-39.pyc


BIN
backend/migrations/__pycache__/0003_alter_hospital_address.cpython-39.pyc


BIN
backend/migrations/__pycache__/0004_alter_hospital_location.cpython-39.pyc


BIN
backend/migrations/__pycache__/0005_hospital_address_text.cpython-39.pyc


BIN
backend/migrations/__pycache__/0006_bed_patient.cpython-39.pyc


BIN
backend/migrations/__pycache__/0007_auto_20210718_0246.cpython-39.pyc


BIN
backend/migrations/__pycache__/0007_auto_20210718_0249.cpython-39.pyc


BIN
backend/migrations/__pycache__/0008_alter_patient_prefix.cpython-39.pyc


BIN
backend/migrations/__pycache__/0008_auto_20210718_0659.cpython-39.pyc


BIN
backend/migrations/__pycache__/0009_auto_20210718_0702.cpython-39.pyc


BIN
backend/migrations/__pycache__/0010_auto_20210718_0711.cpython-39.pyc


BIN
backend/migrations/__pycache__/0010_auto_20210718_0713.cpython-39.pyc


BIN
backend/migrations/__pycache__/0011_auto_20210718_0722.cpython-39.pyc


BIN
backend/migrations/__pycache__/0012_patient_comment.cpython-39.pyc


BIN
backend/migrations/__pycache__/0013_patientlog.cpython-39.pyc


BIN
backend/migrations/__pycache__/0014_alter_patientlog_bed.cpython-39.pyc


BIN
backend/migrations/__pycache__/0015_alter_patientlog_bed.cpython-39.pyc


BIN
backend/migrations/__pycache__/0016_auto_20210718_1031.cpython-39.pyc


BIN
backend/migrations/__pycache__/0017_ambulance_driver.cpython-39.pyc


BIN
backend/migrations/__pycache__/0018_ambulance_color.cpython-39.pyc


BIN
backend/migrations/__pycache__/0019_ambulanceticket.cpython-39.pyc


BIN
backend/migrations/__pycache__/0020_driver_status.cpython-39.pyc


BIN
backend/migrations/__pycache__/0021_auto_20210719_0014.cpython-39.pyc


BIN
backend/migrations/__pycache__/0022_auto_20210719_0024.cpython-39.pyc


BIN
backend/migrations/__pycache__/0023_place.cpython-39.pyc


BIN
backend/migrations/__pycache__/__init__.cpython-39.pyc


+ 192 - 0
backend/models.py

@@ -0,0 +1,192 @@
1
+#from django.db import models
2
+from django.contrib.gis.db import models
3
+from django_google_maps import fields as map_fields
4
+from colorfield.fields import ColorField
5
+#from smart_selects.db_fields import GroupedForeignKey
6
+from smart_selects.db_fields import (
7
+    ChainedForeignKey,
8
+    ChainedManyToManyField,
9
+    GroupedForeignKey,
10
+)
11
+# Create your models here.
12
+GENDER_CHOICES = (
13
+    ('นางสาว','นางสาว'),
14
+    ('นาย','นาย'),
15
+    ('นาง', 'นาง'),
16
+    ("ด.ช.","เด็กชาย"),
17
+    ("ด.ญ.","เด็กหญิง"),
18
+)
19
+
20
+class Ambulance(models.Model):
21
+    code = models.CharField(max_length=100)
22
+    license_plate = models.CharField(max_length=100)
23
+    brand = models.CharField(max_length=100)
24
+    model_name = models.CharField(max_length=100)
25
+    comment  = models.TextField(blank=True, null=True)
26
+
27
+    color = ColorField(default='#FF0000')
28
+    status = models.CharField(
29
+        max_length=30,
30
+        choices=(("working", "Working"), ("free", "Free"), ("ma", "MA")),
31
+        null=True,
32
+    )
33
+
34
+    created_at = models.DateTimeField(auto_now_add=True, null=True)
35
+    updated_at = models.DateTimeField(auto_now=True)
36
+
37
+    def __str__(self):
38
+        return f"{self.license_plate} ({self.get_status_display()}) {self.code} {self.brand} / {self.model_name}"
39
+
40
+class Driver(models.Model):
41
+    first_name = models.CharField(max_length=100)
42
+    last_name = models.CharField(max_length=100)
43
+    age = models.IntegerField()
44
+    idcard = models.CharField(max_length=20, null=True, blank=False)
45
+    prefix = models.CharField(
46
+        max_length=30,
47
+        choices=GENDER_CHOICES,
48
+        null=True,
49
+    )
50
+    sex = models.CharField(
51
+        max_length=30,
52
+        choices=(("male", "Male"), ("female", "Female"),),
53
+        null=True,
54
+    )
55
+    photo  = models.FileField(upload_to="uploads/%Y/%m/%d/", blank=True, verbose_name="Photo")
56
+
57
+    address  = models.TextField(blank=True, null=True)
58
+    #test
59
+    status = models.CharField(
60
+        max_length=30,
61
+        choices=(("working", "Working"), ("free", "Free"), ("block", "Block")),
62
+        null=True,
63
+    )
64
+    created_at = models.DateTimeField(auto_now_add=True, null=True)
65
+    updated_at = models.DateTimeField(auto_now=True)
66
+
67
+    def __str__(self):
68
+        return f"{self.first_name} {self.last_name} ({self.get_status_display()})"
69
+
70
+class AmbulanceTicket(models.Model):
71
+    driver = models.ForeignKey(Driver, on_delete=models.SET_NULL, null=True)
72
+    ambulance = models.ForeignKey(Ambulance, on_delete=models.SET_NULL, null=True)
73
+
74
+    status = models.CharField(
75
+        max_length=30,
76
+        choices=(("working", "Working"), ("free", "Free"), ("ma", "MA")),
77
+        null=True,
78
+    )
79
+
80
+    checkin_at = models.DateTimeField(null=True, blank=True)
81
+    checkout_at = models.DateTimeField(null=True, blank=True)
82
+
83
+
84
+    created_at = models.DateTimeField(auto_now_add=True, null=True)
85
+    updated_at = models.DateTimeField(auto_now=True)
86
+
87
+
88
+    def save(self, *args, **kwargs):
89
+        super(AmbulanceTicket, self).save(*args, **kwargs)
90
+        self.ambulance.status = self.status
91
+        self.ambulance.save()
92
+        self.driver.status = "working"
93
+        self.driver.save()
94
+
95
+    def __str__(self):
96
+        return f"{self.driver}@{self.ambulance}"
97
+
98
+class Patient(models.Model):
99
+    first_name = models.CharField(max_length=100)
100
+    last_name = models.CharField(max_length=100)
101
+    age = models.IntegerField()
102
+    idcard = models.CharField(max_length=20, null=True, blank=False)
103
+    prefix = models.CharField(
104
+        max_length=30,
105
+        choices=GENDER_CHOICES,
106
+        null=True,
107
+    )
108
+    sex = models.CharField(
109
+        max_length=30,
110
+        choices=(("male", "Male"), ("female", "Female"),),
111
+        null=True,
112
+    )
113
+    photo  = models.FileField(upload_to="uploads/%Y/%m/%d/", blank=True, verbose_name="Photo")
114
+
115
+    address = map_fields.AddressField(max_length=200, null=True)
116
+    geolocation = map_fields.GeoLocationField(max_length=100, null=True)
117
+    condition_level = models.CharField(
118
+        max_length=30,
119
+        choices=(("green", "Green"), ("yellow", "Yellow"), ("red", "Red")),
120
+        null=True,
121
+    )
122
+    comment  = models.TextField(blank=True, null=True)
123
+    #test
124
+    def __str__(self):
125
+        return f"{self.first_name} {self.last_name}"
126
+
127
+class Place(models.Model):
128
+    address = map_fields.AddressField(max_length=200)
129
+    geolocation = map_fields.GeoLocationField(max_length=100)
130
+
131
+    created_at = models.DateTimeField(auto_now_add=True, null=True)
132
+    updated_at = models.DateTimeField(auto_now=True)
133
+
134
+    more_info  = models.JSONField(null=True, blank=True)
135
+
136
+class Hospital(models.Model):
137
+    title = models.CharField(max_length=200)
138
+    location = models.PointField(blank=True, null=True)
139
+    address_text = models.TextField(blank=True, null=True)
140
+    #address = models.CharField(max_length=100)
141
+    address = map_fields.AddressField(max_length=200)
142
+    geolocation = map_fields.GeoLocationField(max_length=100)
143
+
144
+    created_at = models.DateTimeField(auto_now_add=True, null=True)
145
+    updated_at = models.DateTimeField(auto_now=True)
146
+
147
+    def __str__(self):
148
+        return f"{self.title} {self.address_text}"
149
+
150
+
151
+class Bed(models.Model):
152
+    code = models.CharField(max_length=30)
153
+    occupy = models.BooleanField(default=False)
154
+    patient = models.ForeignKey(Patient, on_delete=models.SET_NULL, null=True, blank=True)
155
+    hospital = models.ForeignKey(Hospital, on_delete=models.CASCADE)
156
+    created_at = models.DateTimeField(auto_now_add=True, null=True)
157
+    updated_at = models.DateTimeField(auto_now=True)
158
+
159
+
160
+    def __str__(self):
161
+        return self.code
162
+
163
+
164
+class PatientLog(models.Model):
165
+    patient = models.ForeignKey(Patient, on_delete=models.SET_NULL, null=True)
166
+    hospital = models.ForeignKey(Hospital, on_delete=models.CASCADE, null=True)
167
+    bed = ChainedForeignKey(
168
+        "Bed",
169
+        chained_field="hospital",
170
+        chained_model_field="hospital",
171
+        show_all=False,
172
+        auto_choose=True,
173
+        null=True
174
+    )
175
+    notes  = models.TextField(blank=True, null=True)
176
+    condition_level = models.CharField(
177
+        max_length=30,
178
+        choices=(("green", "Green"), ("yellow", "Yellow"), ("red", "Red")),
179
+        null=True,
180
+    )
181
+    status = models.CharField(
182
+        max_length=30,
183
+        choices=(("active", "Active"), ("inactive", "Inactive"), ("transfer", "Transfer")),
184
+        null=True,
185
+    )
186
+    checkin_at = models.DateTimeField(null=True, blank=True)
187
+    checkout_at = models.DateTimeField(null=True, blank=True)
188
+
189
+    created_at = models.DateTimeField(auto_now_add=True, null=True)
190
+    updated_at = models.DateTimeField(auto_now=True)
191
+
192
+

+ 3 - 0
backend/tests.py

@@ -0,0 +1,3 @@
1
+from django.test import TestCase
2
+
3
+# Create your tests here.

+ 7 - 0
backend/urls.py

@@ -0,0 +1,7 @@
1
+from django.urls import path
2
+
3
+from . import views
4
+
5
+urlpatterns = [
6
+    path('', views.index, name='index'),
7
+]

+ 8 - 0
backend/views.py

@@ -0,0 +1,8 @@
1
+from django.shortcuts import render
2
+
3
+# Create your views here.
4
+from django.http import HttpResponse
5
+
6
+
7
+def index(request):
8
+    return HttpResponse("Hello, world. You're at the polls index.")

+ 1 - 0
data/db/PG_VERSION

@@ -0,0 +1 @@
1
+13

BIN
data/db/base/1/112


BIN
data/db/base/1/113


BIN
data/db/base/1/1247


BIN
data/db/base/1/1247_fsm


BIN
data/db/base/1/1247_vm


BIN
data/db/base/1/1249


BIN
data/db/base/1/1249_fsm


BIN
data/db/base/1/1249_vm


BIN
data/db/base/1/1255


BIN
data/db/base/1/1255_fsm


BIN
data/db/base/1/1255_vm


BIN
data/db/base/1/1259


BIN
data/db/base/1/1259_fsm


BIN
data/db/base/1/1259_vm


BIN
data/db/base/1/13245


BIN
data/db/base/1/13245_fsm


BIN
data/db/base/1/13245_vm


+ 0 - 0
data/db/base/1/13247


BIN
data/db/base/1/13249


BIN
data/db/base/1/13250


BIN
data/db/base/1/13250_fsm


BIN
data/db/base/1/13250_vm


+ 0 - 0
data/db/base/1/13252


BIN
data/db/base/1/13254


BIN
data/db/base/1/13255


BIN
data/db/base/1/13255_fsm


BIN
data/db/base/1/13255_vm


+ 0 - 0
data/db/base/1/13257


BIN
data/db/base/1/13259


BIN
data/db/base/1/13260


BIN
data/db/base/1/13260_fsm


BIN
data/db/base/1/13260_vm


+ 0 - 0
data/db/base/1/13262


+ 0 - 0
data/db/base/1/13264


Einige Dateien werden nicht angezeigt, da zu viele Dateien in diesem Diff geändert wurden.

tum/network_report_server - Gogs: Simplico Git Service

Нет описания

LICENSE 1.1KB

12345678910111213141516171819202122
  1. MIT License
  2. Copyright (c) 2022 The Cheerio contributors
  3. Permission is hereby granted, free of charge, to any person obtaining a copy
  4. of this software and associated documentation files (the "Software"), to deal
  5. in the Software without restriction, including without limitation the rights
  6. to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  7. copies of the Software, and to permit persons to whom the Software is
  8. furnished to do so, subject to the following conditions:
  9. The above copyright notice and this permission notice shall be included in all
  10. copies or substantial portions of the Software.
  11. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  12. IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  13. FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  14. AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  15. LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  16. OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  17. SOFTWARE.