54 lines
1.7 KiB
Python
54 lines
1.7 KiB
Python
from django.db import models
|
|
|
|
class Hospital(models.Model):
|
|
STATES_CHOICES = [
|
|
('BW', 'Baden-Württemberg'),
|
|
('BY', 'Bayern'),
|
|
('BE', 'Berlin'),
|
|
('BB', 'Brandenburg'),
|
|
('HB', 'Bremen'),
|
|
('HH', 'Hamburg'),
|
|
('HE', 'Hessen'),
|
|
('MV', 'Mecklenburg-Vorpommern'),
|
|
('NI', 'Niedersachsen'),
|
|
('NW', 'Nordrhein-Westfalen'),
|
|
('RP', 'Rheinland-Pfalz'),
|
|
('SL', 'Saarland'),
|
|
('SN', 'Sachsen'),
|
|
('ST', 'Sachsen-Anhalt'),
|
|
('SH', 'Schleswig-Holstein'),
|
|
('TH', 'Thüringen'),
|
|
]
|
|
|
|
name = models.CharField(max_length=255)
|
|
state = models.CharField(max_length=2, choices=STATES_CHOICES)
|
|
city = models.CharField(max_length=100)
|
|
address = models.TextField(blank=True)
|
|
website = models.URLField(blank=True)
|
|
|
|
def __str__(self):
|
|
return f"{self.name} ({self.get_state_display()})"
|
|
|
|
class Meta:
|
|
verbose_name_plural = "Hospitals"
|
|
|
|
class DepartmentChief(models.Model):
|
|
DEPARTMENT_CHOICES = [
|
|
('AN', 'Anesthesia'),
|
|
('NU', 'Nursing'),
|
|
('IC', 'Intensive Care'),
|
|
('SU', 'Surgery'),
|
|
('IM', 'Internal Medicine'),
|
|
('PE', 'Pediatrics'),
|
|
('GY', 'Gynecology'),
|
|
('OT', 'Other'),
|
|
]
|
|
|
|
hospital = models.ForeignKey(Hospital, on_delete=models.CASCADE, related_name='chiefs')
|
|
name = models.CharField(max_length=255)
|
|
title = models.CharField(max_length=100, help_text="e.g. Chief of Medicine, Head Nurse")
|
|
department = models.CharField(max_length=2, choices=DEPARTMENT_CHOICES)
|
|
email = models.EmailField()
|
|
|
|
def __str__(self):
|
|
return f"{self.name} - {self.get_department_display()} at {self.hospital.name}" |