Advertisement
Guest User

Untitled

a guest
Jul 20th, 2017
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 7.46 KB | None | 0 0
  1. from django.http import HttpResponseRedirect,Http404,HttpResponse
  2. from django.shortcuts import render_to_response,get_object_or_404,redirect,get_list_or_404
  3. from django.template import RequestContext
  4. from django.views.generic.create_update import create_object,update_object
  5. from django.core.mail import mail_admins,mail_managers,BadHeaderError
  6. from django.core.urlresolvers import reverse
  7. from django.utils import simplejson
  8. from django.views.decorators.cache import never_cache
  9. from django.contrib import messages
  10. from django.contrib.auth.decorators import login_required
  11. from django.views.decorators.csrf import csrf_protect
  12. from django.template.defaultfilters import slugify
  13. from django.conf import settings
  14. from django.views.generic.list_detail import object_list,object_detail
  15. from annoying.decorators import ajax_request
  16. from input_function import *
  17. import datetime,os,urllib,re
  18. from models import *
  19. from form import *
  20.  
  21. dmu_regex=re.compile( r'^p\s[0-9]{6}[a-zA-Z]{2}[a-zA-Z0-9]{2}')
  22.  
  23. @login_required
  24. def index(request): #Fonction de la page d'index
  25.     #return render_to_response("input/index.html")
  26.     return HttpResponseRedirect(reverse("search-page"))#DD redirection
  27.  
  28. @login_required
  29. @csrf_protect
  30. def search(request):     #Fonction pour la gestion du input de recherche
  31.     if request.POST:
  32.         formulaire = PatientSearchForm(request.POST)
  33.         if formulaire.is_valid():
  34.             dmu = request.POST['dmu_number']
  35.             data =  p(dmu)
  36.             return add_patient(request,data)
  37.     else:     formulaire= PatientSearchForm()
  38.     return render_to_response("input/index.html", {'form':formulaire},context_instance=RequestContext(request))
  39.  
  40. @login_required
  41. @csrf_protect
  42. def add_patient(request,dico):
  43.     return render_to_response(dico.get("template"), {'forms':dico.get("forms"),"dmu":dico.get("dmu"),"search_form":dico.get("search_form")},context_instance=RequestContext(request))
  44.  
  45. @login_required
  46. @csrf_protect
  47. def patient(request, pat_id, **kwargs):
  48.     pat =get_object_or_404(Patient,dmu_number=pat_id)
  49.     form = completePatientForm(pat)
  50.     events, newevents = eventOrder(pat)
  51.     return render_to_response("input/patient.html", {'forms': form, 'dmu': pat_id, 'formdialog': kwargs.get('formdialog'),
  52.                                                      'dialogtitle': kwargs.get('dialogtitle'), 'events': events,
  53.                                                      'newevents': newevents, 'size': kwargs.get('size'),
  54.                                                      'event_id': kwargs.get('event_id', ''),
  55.                                                      'error_message':kwargs.get('error_message')},context_instance=RequestContext(request))
  56.  
  57. @login_required
  58. @csrf_protect
  59. def edit(request):
  60.     pat =get_object_or_404(Patient,dmu_number=request.POST['dmu_number'])
  61.     forms = completePatientForm(req=request.POST, pat=pat)
  62.  
  63.     valid = True
  64.     for form in forms: #forms est cree ici forms = completePatientForm(req=request.POST, pat=pat) (un peu plus haut)
  65.         if not form.is_valid():
  66.             valid = False
  67.     if valid:
  68.         forms[0].save()
  69.         for i in range (1, len(forms)):
  70.             model = forms[i].save(commit=False)
  71.             model.add(pat)
  72.             model.save()
  73.         return HttpResponseRedirect(reverse('get-patient-data', args=(request.POST['dmu_number'],)))
  74.     else:
  75.         forms = completePatientForm(req=request.POST)
  76.         return render_to_response("input/patient.html", {'forms': forms, 'dmu': request.POST['dmu_number']},context_instance=RequestContext(request))
  77.  
  78.  
  79. @login_required
  80. @csrf_protect
  81. def create(request):
  82.     form = completePatientForm(req = request.POST)
  83.     valid = True
  84.     for element in form:
  85.         if not element.is_valid():
  86.             valid = False
  87.     if valid:
  88.         pat = form[0].save()
  89.         for i in range (1, len(form)):
  90.             model = form[i].save(commit=False)
  91.             model.add(pat)
  92.             model.save()
  93.         return HttpResponseRedirect(reverse('get-patient-data', args=(request.POST['dmu_number'],)))
  94.     return patient(request, request.POST['dmu_number'])
  95.  
  96. @login_required
  97. def editDialog(request, event_id):
  98.     print("editDialog")
  99.     """
  100.        get event information in a form and return the corresponding page
  101.  
  102.        Argument:
  103.        event_id : int with the id of the event
  104.    """
  105.  
  106.     try:    event= Event.objects.select_related().get(id = event_id)
  107.     except: raise Http404
  108.     pat_id = event.patient_id
  109.     model = event.content_type.model_class()
  110.     formdialog, dialogtitle = dialogForm(event_name=model.__name__, instance=event)
  111.    
  112.     return patient(request, pat_id, event_id=event_id, formdialog = formdialog, dialogtitle = dialogtitle,
  113.                    size = len(formdialog)>1)
  114.  
  115. @login_required
  116. def req(request, pat_id):
  117.     print("req")
  118.     """
  119.        check the instruction when a patient is selected and return the corresponding page
  120.    """
  121.  
  122.     req = request.POST['instruction']
  123.     #req vaut p 123456MD13 avec notre dmu de test
  124.    
  125.     if (req[:2]=='p '):
  126.         return p(req)
  127.  
  128.     elif (req[:2]=='e '):
  129.         try:
  130.             formdialog, dialogtitle = exam(req)
  131.         except:
  132.             return patient(request, pat_id, error_message= "L'examen n'existe pas")
  133.  
  134.     elif (req=='s'):
  135.         formdialog = [SymptomsForm()]
  136.         dialogtitle = "Symptoms"
  137.  
  138.     elif (req[:2]=='t '):
  139.         try:
  140.             formdialog, dialogtitle = treat(req)
  141.         except:
  142.             return patient(request, pat_id, error_message= "Le traitement n'existe pas")
  143.  
  144.     elif (req=='tumor'):
  145.         formdialog = completeTumorForm()
  146.         dialogtitle = "Tumor"
  147.  
  148.     else:
  149.         return patient(request, pat_id, error_message= "La requete n'existe pas")
  150.  
  151.     return patient(request, pat_id, formdialog = formdialog, dialogtitle = dialogtitle, size = len(formdialog)>1)
  152.  
  153. @login_required
  154. def patientEventSave(request, pat_id, event_name, event_id=None):
  155.     print("patientEventSave")
  156.     """
  157.        save the event of a patient from the event form
  158.  
  159.        Arguments:
  160.        pat_id : string with the dmu number of the patient
  161.        event: string with the name of the event
  162.    """
  163.     pat =Patient.objects.get(dmu_number = pat_id)
  164.     event=None
  165.     if (event_id):
  166.         event = Event.objects.get(id = event_id)
  167.  
  168.     formdialog, dialogtitle = dialogForm(event_name=event_name, post=request.POST, instance=event)
  169.  
  170.     if formdialog[0].is_valid():
  171.         dialog=formdialog[0].save(commit=False)
  172.         dialog.patient=pat
  173.         dialog.before=None
  174.         dialog.after=None
  175.         dialog.save()
  176.         for i in range (1, len(formdialog)):
  177.             model = formdialog[i].save(commit=False)
  178.             model.add(dialog)
  179.             model.save()
  180.  
  181.         return  patient(request, pat_id)
  182.  
  183. @login_required
  184. def beforeAfterSave(request, event_id,before_id,after_id):
  185.     print("beforeAfterSave")
  186.     """
  187.        save values of before and after fields when the user puts the event element between two events
  188.  
  189.        Arguments:
  190.        event_id : int with the id of the event
  191.        before_id: int with the id of the event before
  192.        after_id: int with the id of the event after
  193.    """
  194.     event= Event.objects.get(id = event_id)
  195.     event_bef = Event.objects.get(id=before_id)
  196.     event_aft = Event.objects.get(id=after_id)
  197.  
  198.     if (event_bef.date):
  199.         event.before= event_bef.date
  200.     else:
  201.         event.before= event_bef.after
  202.     if (event_aft.date):
  203.         event.after= event_aft.date
  204.     else:
  205.         event.after= event_aft.before
  206.     event.save()
  207.     dmu = event.patient.dmu_number
  208.  
  209.     return HttpResponseRedirect(reverse('get-patient-data', args=(dmu,)))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement