Project

General

Profile

Download (1.8 KB) Statistics
| Branch: | Tag: | Revision:

calebasse / calebasse / dossiers / models.py @ 2a928c61

1
# -*- coding: utf-8 -*-
2

    
3
import logging
4

    
5
from django.db import models
6
from django.contrib.auth.models import User
7

    
8
from calebasse.personnes.models import People
9
from calebasse.ressources.models import ServiceLinkedAbstractModel
10

    
11
logger = logging.getLogger('calebasse.dossiers')
12

    
13

    
14
class FileState(models.Model):
15

    
16
    class Meta:
17
        app_label = 'dossiers'
18

    
19
    patient = models.ForeignKey('dossiers.PatientRecord',
20
        verbose_name=u'Dossier patient', editable=False)
21
    state_name = models.CharField(max_length=150)
22
    created = models.DateTimeField(u'Création', auto_now_add=True)
23
    date_selected = models.DateTimeField()
24
    author = \
25
        models.ForeignKey(User,
26
        verbose_name=u'Auteur', editable=False)
27
    comment = models.TextField(max_length=3000, blank=True, null=True)
28
    previous_state = models.ForeignKey('FileState',
29
        verbose_name=u'Etat précédent',
30
        editable=False, blank=True, null=True)
31

    
32
    def get_next_state(self):
33
        try:
34
            return FileState.objects.get(previous_state=self)
35
        except:
36
            return None
37

    
38
    def save(self, **kwargs):
39
        self.date_selected = \
40
            datetime(self.date_selected.year,
41
                self.date_selected.month, self.date_selected.day)
42
        super(FileState, self).save(**kwargs)
43

    
44
    def __unicode__(self):
45
        return self.state_name + ' ' + str(self.date_selected)
46

    
47

    
48
class PatientRecord(ServiceLinkedAbstractModel, People):
49
    class Meta:
50
        verbose_name = u'Dossier'
51
        verbose_name_plural = u'Dossiers'
52

    
53
    created = models.DateTimeField(u'création', auto_now_add=True)
54
    creator = \
55
        models.ForeignKey(User,
56
        verbose_name=u'Créateur dossier patient',
57
        editable=False)
58
    contacts = models.ManyToManyField('personnes.People',
59
            related_name='contact_of')
(4-4/8)