0% found this document useful (0 votes)
11 views5 pages

From Django

Uploaded by

tahirrou57
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
11 views5 pages

From Django

Uploaded by

tahirrou57
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 5

from django.

db import models
from django.utils import timezone

class Patient(models.Model):
nom = models.CharField(max_length=100)
prénom = models.CharField(max_length=100)
date_naissance = models.DateField()
sexe = models.CharField(max_length=10)
profession = models.CharField(max_length=100, blank=True, null=True)
ethnie = models.CharField(max_length=100, blank=True, null=True)
religion = models.CharField(max_length=100, blank=True, null=True)
adresse = models.TextField(blank=True, null=True)
téléphone = models.CharField(max_length=20, blank=True, null=True)
statut_matrimonial = models.CharField(max_length=20, blank=True, null=True)
nationalité = models.CharField(max_length=100, blank=True, null=True)

def __str__(self):
return f"{self.nom} {self.prénom}"

class DossierMedical(models.Model):
patient = models.ForeignKey(Patient, on_delete=models.CASCADE)
date_creation = models.DateField(default=timezone.now)
date_modification = models.DateField(auto_now=True)
etat = models.CharField(max_length=20)

def __str__(self):
return f"Dossier {self.id} pour {self.patient}"

class Consultation(models.Model):
dossier_medical = models.ForeignKey(DossierMedical, on_delete=models.CASCADE)
date = models.DateField(default=timezone.now)
motif = models.TextField()
diagnostique = models.TextField()
Traitement = models.TextField()
médecin_referant = models.CharField(max_length=100)
complication = models.BooleanField(default=False)

def __str__(self):
return f"Consultation {self.id} du {self.date}"

class Admission(models.Model):
dossier_medical = models.ForeignKey(DossierMedical, on_delete=models.CASCADE)
date_admission = models.DateField(default=timezone.now)
date_sortie = models.DateField(blank=True, null=True)
motif_admission = models.TextField()
mode_admission = models.CharField(max_length=20)
soignant_referant = models.CharField(max_length=100)
device = models.CharField(max_length=100)
is_readmission = models.BooleanField(default=False)
def __str__(self):
return f"Admission {self.id} du {self.date_admission}"

class Anamnese(models.Model):
dossier_medical = models.ForeignKey(DossierMedical, on_delete=models.CASCADE)
signes = models.TextField()
duree_evolution = models.CharField(max_length=100)
caracteristiques_symptomes = models.TextField()

def __str__(self):
return f"Anamnese {self.id}"

class Antecedent(models.Model):
dossier_medical = models.ForeignKey(DossierMedical, on_delete=models.CASCADE)
type = models.CharField(max_length=100)
description = models.TextField()

def __str__(self):
return f"Antecedent {self.id} ({self.type})"

class Examen(models.Model):
consultation = models.ForeignKey(Consultation, on_delete=models.CASCADE)
type = models.CharField(max_length=100)
resultat = models.TextField()

def __str__(self):
return f"Examen {self.id} ({self.type})"

class Traitement(models.Model):
consultation = models.ForeignKey(Consultation, on_delete=models.CASCADE)
description = models.TextField()

def __str__(self):
return f"Traitement {self.id}"

class Evolution(models.Model):
dossier_medical = models.ForeignKey(DossierMedical, on_delete=models.CASCADE)
date = models.DateField(default=timezone.now)
description = models.TextField()

def __str__(self):
return f"Évolution {self.id} du {self.date}"

class Statistique(models.Model):
date = models.DateField(default=timezone.now)
type = models.CharField(max_length=100)
valeur = models.FloatField()

def __str__(self):
return f"Statistique {self.type} ({self.date})"

class EpidemiologicalReport(models.Model):
date_generated = models.DateField(auto_now_add=True)
total_patients = models.IntegerField()
total_admissions = models.IntegerField()
total_consultations = models.IntegerField()
common_diagnoses = models.TextField()
common_treatments = models.TextField()
def __str__(self):
return f'Report generated on {self.date_generated}'
class EpidemiologicalIndicator(models.Model):
date_generated = models.DateField(auto_now_add=True)
incidence_rate_nosocomial_infections = models.FloatField()
prevalence_nosocomial_infections = models.FloatField()
incidence_rate_nosocomial_bacteremia = models.FloatField()
incidence_rate_surgical_site_infections = models.FloatField()
incidence_rate_cauti = models.FloatField() # Catheter-associated urinary tract
infections
incidence_rate_vap = models.FloatField() # Ventilator-associated pneumonia
colonization_rate_mdr_bacteria = models.FloatField() # Multidrug-resistant
bacteria
mortality_rate_nosocomial_infections = models.FloatField()
readmission_rate_nosocomial_infections = models.FloatField()
device_utilization_rate = models.FloatField()
hand_hygiene_protocol_compliance = models.FloatField()
flu_vaccination_rate_healthcare_staff = models.FloatField()
patient_satisfaction_rate = models.FloatField()
adverse_event_reporting_rate = models.FloatField()
pathogen_resistance_rate = models.FloatField()
antibiotic_consumption = models.FloatField()
hospital_mortality_rate = models.FloatField()
readmission_rate = models.FloatField()
surgical_reoperation_rate = models.FloatField()
postoperative_complication_rate = models.FloatField()
average_length_of_stay = models.FloatField()
staff_vaccination_coverage = models.FloatField()

def __str__(self):
return f'Indicators generated on {self.date_generated}'

# models.py

class Infection(models.Model):
INFECTION_TYPES = [
('bacteremia', 'Bactériémie'),
('surgical_site', 'Site Opératoire'),
('cauti', 'Infection Urinaire Associée aux Cathéters (CAUTI)'),
('vap', 'Pneumonie Associée à la Ventilation Mécanique (VAP)'),
# Ajoutez d'autres types d'infection si nécessaire
]

dossier_medical = models.ForeignKey(DossierMedical, on_delete=models.CASCADE)


type = models.CharField(max_length=50, choices=INFECTION_TYPES)
date = models.DateField()
description = models.TextField()
multi_drug_resistant = models.BooleanField(default=False)
def __str__(self):
return f'Infection {self.type} - {self.dossier_medical}'
class HandHygieneObservation(models.Model):
observer = models.ForeignKey('Staff', on_delete=models.CASCADE)
date_observed = models.DateField()
compliant = models.BooleanField()

def __str__(self):
return f'Observation {self.id} - {"Compliant" if self.compliant else "Non-
compliant"}'
class PatientSatisfactionSurvey(models.Model):
patient = models.ForeignKey('Patient', on_delete=models.CASCADE)
date_completed = models.DateField()
satisfied = models.BooleanField()
comments = models.TextField(blank=True, null=True)

def __str__(self):
return f'Survey {self.id} - {"Satisfied" if self.satisfied else "Unsatisfied"}'

class AdverseEvent(models.Model):
patient = models.ForeignKey('Patient', on_delete=models.CASCADE)
date_occurred = models.DateField()
description = models.TextField()
reported = models.BooleanField()

def __str__(self):
return f'AdverseEvent {self.id} - {self.description[:20]}'

# models.py
from django.db import models

class PathogenSample(models.Model):
patient = models.ForeignKey('Patient', on_delete=models.CASCADE)
date_collected = models.DateField()
pathogen = models.CharField(max_length=100)
resistant = models.BooleanField()

def __str__(self):
return f'Sample {self.id} - {self.pathogen}'
class AntibioticAdministration(models.Model):
patient = models.ForeignKey('Patient', on_delete=models.CASCADE)
date_administered = models.DateField()
antibiotic = models.CharField(max_length=100)
dose = models.FloatField()
def __str__(self):
return f'AntibioticAdministration {self.id} - {self.antibiotic}'
class Staff(models.Model):
name = models.CharField(max_length=100)
role = models.CharField(max_length=100)
vaccinated = models.BooleanField(default=False)

def __str__(self):
return self.name

You might also like