Example #1
0
def demographics_edit(request, demographics_id  = None):
    if request.user:
        user = request.user
        try:
          if demographics_id:
            demographics_id = int(demographics_id)
          else:
            demographics_id = int(request.GET.get('demographics_id'))

          demographics_obj = Demographics.objects.get(pk=demographics_id)
          patient_detail_obj = demographics_obj.patient_detail
          demographics_obj.save()
          d_urls = demographics_obj.urls

        except TypeError or ValueError or AttributeError:
            raise Http404("BadRequest")

        except Demographics.DoesNotExist:
            raise Http404("BadRequest: Patient DemographicsData Data Does Not Exist")

        if request.method == "GET" and request.is_ajax():
            demographics_form = DemographicsForm(instance=demographics_obj, auto_id = False )
            variable = RequestContext(request,
                                      {"user": user,
                                        "patient_detail_obj": patient_detail_obj,
                                        "demographics_form": demographics_form,
                                        "demographics_obj": demographics_obj,
                                        'action': d_urls['edit'],
                                        'button_label': "Edit",
                                        'canDel': True,
                                        'addUrl': None,
                                        'editUrl': d_urls['edit'],
                                        'delUrl': d_urls['del'],
                                        })
            return render_to_response('demographics/add_or_edit_form.html', variable)

        elif request.method == 'POST' and request.is_ajax():
            demographics_form = DemographicsForm(request.POST, instance=demographics_obj)

            if demographics_form.is_valid():
                demographics_obj = demographics_form.save()
                success = True
                error_message = "Demographics Data Edited Successfully"
                form_errors = None

            else:
                success = False
                error_message = aumodelformerrorformatter_factory(demographics_form)
                form_errors = error_message

            data = {'success': success, 
                    'error_message': error_message, 
                    'form_errors':form_errors
                    }
            json = simplejson.dumps(data)
            return HttpResponse(json, content_type='application/json')
    
        else:
            raise Http404("BadRequest: Unsupported Request Method")
Example #2
0
def patient_detail_add(request, clinic_id = None):

    user = request.user
    print "Received a request to add a New Patient...."

    try:
      if clinic_id :
        clinic_id = int(clinic_id)
      else:
        clinic_id = int(request.GET.get('clinic_id'))
    except (KeyError,NameError,AttributeError,ValueError,TypeError):
        clinic_id = 1

    try:
      clinic = Clinic.objects.get(pk = clinic_id)          
      patient_detail_obj = PatientDetail(parent_clinic = clinic)
      if request.method == "GET" and request.is_ajax():
          patient_detail_form = PatientDetailForm(
              instance=patient_detail_obj)
          variable = RequestContext(request,
                                    {"user": user,
                                    "patient_detail_obj": patient_detail_obj,
                                    "patient_detail_form": patient_detail_form
                                    }
                                    )
          return render_to_response('patient_detail/add.html', variable)

      elif request.method == "POST"  and request.is_ajax():
          patient_detail_form = PatientDetailForm(request.POST,
                                                  instance = patient_detail_obj)
          if patient_detail_form.is_valid():
              saved_patient = patient_detail_form.save(commit = False)
              saved_patient.parent_clinic = clinic
              saved_patient.save()
              success = True
              error_message = "Patient Saved Successfully"
              form_errors = None
              #json = return_patient_json(saved_patient,success)
          else:
              form_errors = aumodelformerrorformatter_factory(patient_detail_form)
              saved_patient = None
              success = False
          data = {'success':success,
                  'error_message':form_errors,
                  'form_errors': form_errors
                  }
          json = simplejson.dumps(data)

      else:
          raise Http404('Bad Request:: Unsupported Request Method.')

    except(Clinic.DoesNotExist):
        saved_patient = None
        success = False
        data = {'success':success,'error_message':"No Clinic by the specified id"}
        json = simplejson.dumps(data)

    return HttpResponse(json, content_type='application/json')
Example #3
0
def patient_detail_add(request, clinic_id = None):

    user = request.user
    print "Received a request to add a New Patient...."

    try:
      if clinic_id :
        clinic_id = int(clinic_id)
      else:
        clinic_id = int(request.GET.get('clinic_id'))
    except (KeyError,NameError,AttributeError,ValueError,TypeError):
        clinic_id = 1

    try:
      clinic = Clinic.objects.get(pk = clinic_id)          
      patient_detail_obj = PatientDetail(parent_clinic = clinic)
      if request.method == "GET" and request.is_ajax():
          patient_detail_form = PatientDetailForm(
              instance=patient_detail_obj)
          variable = RequestContext(request,
                                    {"user": user,
                                    "patient_detail_obj": patient_detail_obj,
                                    "patient_detail_form": patient_detail_form
                                    }
                                    )
          return render_to_response('patient_detail/add.html', variable)

      elif request.method == "POST"  and request.is_ajax():
          patient_detail_form = PatientDetailForm(request.POST,
                                                  instance = patient_detail_obj)
          if patient_detail_form.is_valid():
              saved_patient = patient_detail_form.save(commit = False)
              saved_patient.parent_clinic = clinic
              saved_patient.save()
              success = True
              error_message = "Patient Saved Successfully"
              form_errors = None
              #jsondata = return_patient_json(saved_patient,success)
          else:
              form_errors = aumodelformerrorformatter_factory(patient_detail_form)
              saved_patient = None
              success = False
          data = {'success':success,
                  'error_message':form_errors,
                  'form_errors': form_errors
                  }
          jsondata = json.dumps(data)

      else:
          raise Http404('Bad Request:: Unsupported Request Method.')

    except(Clinic.DoesNotExist):
        saved_patient = None
        success = False
        data = {'success':success,'error_message':"No Clinic by the specified id"}
        jsondata = json.dumps(data)

    return HttpResponse(jsondata, content_type='application/json')
Example #4
0
  def add_phyexam():
        if request.method == 'GET':
            exam_form = exam_form_class(instance = exam_obj, auto_id = False )
            variable = RequestContext(request, {'user': user, 
                                                'visit_detail_obj': visit_detail_obj, 
                                                'visit_phyexam_form': exam_form,
                                                'exam_obj': exam_obj,
                                                'visit_phyexam_action': 'add',
                                                'exam_name': exam_name
                                                })
            return render_to_response('visit_phyexam/add_or_edit_form.html', variable )

        elif request.method == 'POST':
            exam_form = exam_form_class(request.POST, instance = exam_obj)

            if exam_form.is_valid():
                saved_exam = exam_form.save()
                saved_exam.visit_detail = visit_detail_obj
                saved_exam.save()
                success = True
                error_message= "Exam Saved Successfully"
                form_errors = None
                redirectUrl = reverse('visit_phyexam_edit', args=[exam_name, saved_exam.id])

            else:
                success = False
                error_message = "Error! Exam Could not be saved"
                form_errors =  aumodelformerrorformatter_factory(exam_form)
                error_message += "\n" + form_errors + "\n"
                redirectUrl = None


            data = {'success': success, 
                    'error_message': error_message, 
                    'form_errors': form_errors,
                    'redirectUrl': redirectUrl
                    }
            jsondata = json.dumps(data)
            return HttpResponse(jsondata, content_type = 'json/application')

        else:
            raise Http404("Bad Request")
Example #5
0
def social_history_edit(request, social_history_id=None):

    if request.user:
        user = request.user

        try:
            if social_history_id:
                social_history_id = int(social_history_id)
            else:
                social_history_id = int(request.GET.get('social_history_id'))
            social_history_obj = SocialHistory.objects.get(
                pk=social_history_id)
            patient_detail_obj = social_history_obj.patient_detail

            if not getattr(patient_detail_obj, 'urls', None):
                patient_detail_obj.save()

            if not getattr(social_history_obj, 'urls', None):
                social_history_obj.save()
                urls = social_history_obj.urls
            else:
                urls = social_history_obj.urls

        except ValueError or AttributeError or TypeError:
            raise Http404("BadRequest: Server Error")
        except SocialHistory.DoesNotExist:
            raise Http404(
                "BadRequest: Requested Patient SocialHistory Data DoesNotExist"
            )

        if request.method == "GET" and request.is_ajax():
            social_history_form = SocialHistoryForm(
                instance=social_history_obj)
            patient_detail_obj = social_history_obj.patient_detail
            addData = {
                "marital_status": social_history_obj.marital_status,
                "marital_status_notes":
                social_history_obj.marital_status_notes,
                "occupation": social_history_obj.occupation,
                "occupation_notes": social_history_obj.occupation_notes,
                "exercise": social_history_obj.exercise,
                "exercise_notes": social_history_obj.exercise_notes,
                "diet": social_history_obj.diet,
                "diet_notes": social_history_obj.diet_notes,
                "home_occupants": social_history_obj.home_occupants,
                "home_occupants_notes":
                social_history_obj.home_occupants_notes,
                "pets": social_history_obj.pets,
                "pets_notes": social_history_obj.pets_notes,
                "alcohol": social_history_obj.alcohol,
                "alcohol_no": social_history_obj.alcohol_no,
                "alcohol_notes": social_history_obj.alcohol_notes,
                "tobacco": social_history_obj.tobacco,
                "tobacco_no": social_history_obj.tobacco_no,
                "tobacco_notes": social_history_obj.tobacco_notes,
                "drug_abuse": social_history_obj.drug_abuse,
                "drug_abuse_notes": social_history_obj.drug_abuse_notes,
                "sexual_preference": social_history_obj.sexual_preference,
                "sexual_preference_notes":
                social_history_obj.sexual_preference_notes,
                "current_events": social_history_obj.current_events
            }
            variable = RequestContext(
                request, {
                    "user": user,
                    "patient_detail_obj": patient_detail_obj,
                    "social_history_form": social_history_form,
                    "social_history_obj": social_history_obj,
                    "addData": addData,
                    'action': urls['edit'],
                    'button_label': "Edit",
                    'canDel': True,
                    'addUrl': None,
                    'editUrl': urls['edit'],
                    'delUrl': urls['del'],
                })
            return render_to_response('social_history/add_or_edit_form.html',
                                      variable)

        elif request.method == 'POST' and request.is_ajax():
            copy_post = request.POST.copy()
            copy_post['home_occupants'] = ",".join(
                copy_post.getlist('home_occupants'))
            copy_post['pets'] = ",".join(copy_post.getlist('pets'))
            social_history_form = SocialHistoryForm(
                copy_post, instance=social_history_obj)
            patient_detail_obj = social_history_obj.patient_detail

            if social_history_form.is_valid():
                social_history_obj = social_history_form.save()
                success = True
                error_message = "SocialHistory Data Edited Successfully"
                form_errors = ''
                addData = {
                    "marital_status": social_history_obj.marital_status,
                    "marital_status_notes":
                    social_history_obj.marital_status_notes,
                    "occupation": social_history_obj.occupation,
                    "occupation_notes": social_history_obj.occupation_notes,
                    "exercise": social_history_obj.exercise,
                    "exercise_notes": social_history_obj.exercise_notes,
                    "diet": social_history_obj.diet_notes,
                    "home_occupants": social_history_obj.home_occupants,
                    "home_occupants_notes":
                    social_history_obj.home_occupants_notes,
                    "pets": social_history_obj.pets,
                    "pets_notes": social_history_obj.pets_notes,
                    "alcohol": social_history_obj.alcohol,
                    "alcohol_no": social_history_obj.alcohol_no,
                    "alcohol_notes": social_history_obj.alcohol_notes,
                    "tobacco": social_history_obj.tobacco,
                    "tobacco_no": social_history_obj.tobacco_no,
                    "tobacco_notes": social_history_obj.tobacco_notes,
                    "drug_abuse": social_history_obj.drug_abuse,
                    "drug_abuse_notes": social_history_obj.drug_abuse_notes,
                    "sexual_preference": social_history_obj.sexual_preference,
                    "sexual_preference_notes":
                    social_history_obj.sexual_preference_notes,
                    "current_events": social_history_obj.current_events
                }
                data = {
                    'success': success,
                    'error_message': error_message,
                    'form_errors': form_errors,
                    "addData": addData
                }
            else:
                data = {
                    'success':
                    False,
                    'error_message':
                    aumodelformerrorformatter_factory(social_history_form),
                    'form_errors':
                    error_message,
                    'addData':
                    None
                }
            jsondata = json.dumps(data)
            return HttpResponse(jsondata, content_type='application/json')

        else:
            raise Http404("BadRequest: Unsupported Request Method")
Example #6
0
def visit_detail_edit(request, visit_id=None):

    user = request.user
    error_message = None
    success = False

    try:
        if visit_id:
            visit_id = int(visit_id)
        else:
            visit_id = int(request.GET.get("visit_id"))

        visit_detail_obj = VisitDetail.objects.get(pk=visit_id)
        patient_detail_obj = visit_detail_obj.patient_detail

        form_field_auto_id = "id_edit_visit_detail_" + str(visit_id)
        data = {"visit_date": visit_detail_obj.visit_date.date().isoformat()}

        if not getattr(visit_detail_obj, "urls", None):
            visit_detail_obj.save()
        if not getattr(patient_detail_obj, "urls", None):
            patient_detail_obj.save()

        if request.method == "GET" and request.is_ajax():

            visit_detail_form = VisitDetailForm(
                initial=data, instance=visit_detail_obj, auto_id=form_field_auto_id + "_%s"
            )

            variable = RequestContext(
                request,
                {
                    "user": user,
                    "visit_detail_obj": visit_detail_obj,
                    "visit_detail_form": visit_detail_form,
                    "patient_detail_obj": patient_detail_obj,
                    "error_message": error_message,
                    "form_action": "edit",
                },
            )
            return render_to_response("visit_detail/edit.html", variable)

        elif request.method == "POST" and request.is_ajax():

            visit_detail_form = VisitDetailForm(request.POST, instance=visit_detail_obj)

            if visit_detail_form.is_valid():
                saved_visit = visit_detail_form.save()
                success = True
                error_message = "Visit Edited Successfully"

            else:
                error_message = """ <h4>
                                        Visit Could not be Saved.
                                        Please check the forms for errors
                                    </h4>
                                """
                errors = aumodelformerrorformatter_factory(visit_detail_form) + "\n"
                error_message += "\n" + errors

            data = {"success": success, "error_message": error_message}
            json = simplejson.dumps(data)
            return HttpResponse(json, content_type="application/json")

        else:
            raise Http404(" Error ! Unsupported Request..")

    # except (TypeError, NameError, ValueError, AttributeError, KeyError):
    # raise Http404("Error ! Invalid Request Parameters. ")

    except (VisitDetail.DoesNotExist):
        raise Http404("Requested Patient Does not exist.")
Example #7
0
def contact_edit(request, contact_id=None):
    print "Received request for editing Contact"
    if request.user:
        user = request.user
        try:
            if contact_id:
                contact_id = int(contact_id)
            else:
                contact_id = int(request.GET.get('contact_id'))

            contact_obj = Contact.objects.get(pk=contact_id)
            patient_detail_obj = contact_obj.patient_detail

            if not getattr(contact_obj, 'urls'):
                contact_obj.generate_urls()

            if request.method == "GET" and request.is_ajax():

                contact_form = ContactForm(instance=contact_obj, auto_id=False)
                variable = RequestContext(
                    request, {
                        "user": user,
                        "patient_detail_obj": patient_detail_obj,
                        "contact_form": contact_form,
                        "contact_obj": contact_obj,
                    })
                return render_to_response('contact/edit.html', variable)

            elif request.method == 'POST' and request.is_ajax():
                contact_form = ContactForm(request.POST, instance=contact_obj)
                if contact_form.is_valid():
                    #print "now there are " , len(Contact.objects.all()), " Contact objects"
                    contact_object = contact_form.save()
                    #print "now there are " , len(Contact.objects.all()), " Contact objects"
                    success = True
                    error_message = "Contact Saved Successfully"
                    form_errors = None
                    data = {
                        "success": success,
                        "error_message": error_message,
                        "form_errors": form_errors,
                        "id": contact_object.id,
                        'pat_id': contact_object.patient_detail.id,
                        "address_type": contact_object.address_type,
                        "address": contact_object.address,
                        "city": contact_object.city,
                        "state": contact_object.state,
                        "country": contact_object.country,
                        "zip_code": contact_object.zip_code,
                        "edit": contact_object.urls['edit'],
                        "del": contact_object.urls['del']
                    }
                else:
                    success = False
                    error_message = aumodelformerrorformatter_factory(
                        contact_form)
                    form_errors = error_message
                    data = {
                        'success': success,
                        'error_message': error_message,
                        'form_errors': form_errors
                    }
                json = simplejson.dumps(data)
                return HttpResponse(json, content_type='application/json')

            else:
                raise Http404("BadRequest: Unsupported Request Method")

        except TypeError or ValueError or AttributeError:
            raise Http404("BadRequest")

        except Contact.DoesNotExist:
            raise Http404("BadRequest: Contact Data Does Not Exist")
Example #8
0
def visit_ros_edit(request, visit_ros_id = None):

    user = request.user
    error_message = None    
    
    try:

        if visit_ros_id:
          visit_ros_id = int(visit_ros_id)

        else:
          visit_ros_id = int(request.GET.get('visit_ros_id'))

        visit_ros_obj = VisitROS.objects.get(pk=visit_ros_id)
        visit_detail_obj = visit_ros_obj.visit_detail
        patient_detail_obj = visit_detail_obj.patient_detail

        if not getattr(visit_detail_obj,'urls',None):
          visit_detail_obj.save()

        if not getattr(patient_detail_obj,'urls',None):
          patient_detail_obj.save()

        if not getattr(visit_ros_obj,'urls',None):
          visit_ros_obj.save()
        
        if request.method == "GET" and request.is_ajax():

            visit_ros_form = VisitROSForm(instance = visit_ros_obj, 
                                          auto_id = "id_edit_visit_ros"+ str(visit_ros_id)+"_%s"
                                          )

            variable = RequestContext(
                request, {'user': user,
                          'visit_detail_obj': visit_detail_obj,
                          'visit_ros_obj': visit_ros_obj,
                          'visit_ros_form'  : visit_ros_form  ,
                          'patient_detail_obj': visit_detail_obj.patient_detail,
                          'error_message': error_message,
                          'visit_ros_action':'edit'
                          })

            return render_to_response('visit_ros/add_or_edit_form.html', variable)

        if request.method == "POST" and request.is_ajax():

            visit_ros_form   = VisitROSForm(request.POST, instance = visit_ros_obj )

            if visit_ros_form.is_valid()    :                

                saved_visit_ros = visit_ros_form.save(commit=False)
                saved_visit_ros.visit_detail = visit_detail_obj
                saved_visit_ros.save()
                success = True
                error_message = "Visit ROS Edited Successfully"
                redirectUrl = saved_visit_ros.urls['edit']

            else:
                success = False
                error_message = ''' <h4>
                                      Visit Could not be Saved.
                                      Please check the forms for errors
                                    </h4>
                                '''
                errors += aumodelformerrorformatter_factory(visit_ros_form)
                error_message += ('\n' + errors)
                redirectUrl = None

            data = {'success': success, 'error_message': error_message , 'redirectUrl': redirectUrl }
            json = simplejson.dumps(data)
            return HttpResponse(json, content_type='application/json')

        else:
             raise Http404(" Error ! Unsupported Request..")


    except (TypeError, NameError, ValueError, AttributeError, KeyError):
        raise Http404("Error ! Invalid Request Parameters. ")

    except (VisitROS.DoesNotExist):
        raise Http404("Requested VisitROS Does not exist.")
Example #9
0
def phone_edit(request, phone_id):
    if request.user:
        user = request.user
        try:
          if phone_id: 
            phone_id = int(phone_id)
          else:
            phone_id = int(request.GET.get('phone_id'))

          phone_obj = Phone.objects.get(pk=phone_id)
          patient_detail_obj = phone_obj.patient_detail

          if not getattr(phone_obj,'urls'):
            phone_obj.generate_urls()                  

          if request.method == "GET" and request.is_ajax():
              phone_form = PhoneForm(instance=phone_obj, auto_id = False )
              variable = RequestContext(request,
                                        {"user": user,
                                          "patient_detail_obj": patient_detail_obj,
                                          "phone_form": phone_form,
                                          "phone_obj": phone_obj,
                                          })
              return render_to_response('phone/edit.html', variable)

          elif request.method == 'POST' and request.is_ajax():
              phone_form = PhoneForm(request.POST, instance=phone_obj)
              if phone_form.is_valid():
                  phone_object = phone_form.save()
                  success = True
                  error_message = "Phone Saved Successfully"
                  form_errors = None
                  data = {"success": success,
                          "error_message": error_message,
                          "form_errors": form_errors,
                          "id": phone_object.id,
                          'phone_type': phone_object.phone_type,
                          'STD_Code': phone_object.STD_Code,
                          'ISD_Code': phone_object.ISD_Code,
                          'phone': phone_object.phone,
                          'pat_id': phone_object.patient_detail.id,
                          "edit": phone_object.urls['edit'],
                          "del": phone_object.urls['del']
                          }
              else:
                  success = False
                  error_message = aumodelformerrorformatter_factory(phone_form)
                  form_errors = error_message
                  data = {'success'       : success,
                          'error_message' : error_message,
                          'form_errors'   : form_errors
                          }
              jsondata = json.dumps(data)
              return HttpResponse(jsondata, content_type='application/json')

          else:
              raise Http404("BadRequest: Unsupported Request Method")

        except TypeError or ValueError or AttributeError:
            raise Http404("BadRequest")

        except Phone.DoesNotExist:
            raise Http404("BadRequest: Phone Data Does Not Exist")
Example #10
0
def guardian_edit(request, guardian_id):
    if request.user:
        user = request.user
        try:
          if guardian_id: 
            guardian_id = int(guardian_id)
          else:
            guardian_id = int(request.GET.get('guardian_id'))

          guardian_obj = Guardian.objects.get(pk=guardian_id)
          patient_detail_obj = guardian_obj.patient_detail

          if not getattr(guardian_obj,'urls'):
              guardian_obj.generate_urls()                  

          if request.method == "GET" and request.is_ajax():
              guardian_form = GuardianForm(instance=guardian_obj, auto_id = False )
              variable = RequestContext(request,
                                        {"user": user,
                                          "patient_detail_obj": patient_detail_obj,
                                          "guardian_form": guardian_form,
                                          "guardian_obj": guardian_obj,
                                          })
              return render_to_response('guardian/edit.html', variable)

          elif request.method == 'POST' and request.is_ajax():
              guardian_form = GuardianForm(request.POST, instance=guardian_obj)

              if guardian_form.is_valid():
                  guardian_object = guardian_form.save()
                  success = True
                  error_message = "Guardian Saved Successfully"
                  form_errors = None
                  data = {"success": success,
                          "error_message": error_message,
                          "form_errors": form_errors,
                          "id": guardian_object.id,
                          'pat_id': guardian_object.patient_detail.id,
                          "guardian_name": guardian_object.guardian_name,
                          "relation_to_guardian": guardian_object.relation_to_guardian,
                          "guardian_phone": guardian_object.guardian_phone,       
                          "edit": guardian_object.urls['edit'],
                          "del": guardian_object.urls['del']
                  }

              else:
                  success = False
                  error_message = aumodelformerrorformatter_factory(guardian_form)
                  form_errors = error_message
                  data = {'success'       : success,
                          'error_message' : error_message,
                          'form_errors'   : form_errors
                          }
              json = simplejson.dumps(data)
              return HttpResponse(json, content_type='application/json')

          else:
              raise Http404("BadRequest: Unsupported Request Method")

        except TypeError or ValueError or AttributeError:
            raise Http404("BadRequest")

        except Guardian.DoesNotExist:
            raise Http404("BadRequest: Guardian Data Does Not Exist")
Example #11
0
def visit_prescription_add(request,visit_detail_id = None):
    """ 
    Adds a Visit prescription
    """

    user = request.user
    success = False
    error_message = None
    form_errors = []

    try:
        if visit_detail_id:
          visit_detail_id = int(visit_detail_id)
        else:
          visit_detail_id = int(request.GET.get('visit_detail_id'))

        visit_detail_obj = VisitDetail.objects.get(pk=visit_detail_id)
        patient_detail_obj = visit_detail_obj.patient_detail
        visit_prescription_obj = VisitPrescription(visit_detail=visit_detail_obj)

        if not getattr(patient_detail_obj, 'urls', None):
          patient_detail_obj.save()

        if not getattr(visit_detail_obj, 'urls', None):
          visit_detail_obj.save()

        if request.method == "GET" and request.is_ajax():

            visit_prescription_form = VisitPrescriptionForm(instance = visit_prescription_obj,
                                                      auto_id  =
                                                      "id_add_visit_prescription"+
                                                      str(visit_detail_id)+"_%s")
            variable = RequestContext(request, {
                                                'user': user,
                                                'visit_detail_obj': visit_detail_obj,
                                                'form': visit_prescription_form,
                                                'patient_detail_obj': patient_detail_obj,
                                                'error_message': error_message,
                                                'success': success,
                                            })

            return render_to_response('visit_prescription/forms/add.html', variable)

        elif request.method == "POST" and request.is_ajax():

            visit_prescription_form = VisitPrescriptionForm(request.POST, instance = visit_prescription_obj)

            if visit_prescription_form.is_valid() :
                saved_visit_prescription = visit_prescription_form.save(commit=False)
                saved_visit_prescription.visit_detail = visit_detail_obj
                #TODO: Custom date-range handling
                #TODO: Custom admin hours handling
                saved_visit_prescription.save()
                success = True
                error_message = "Prescription Added Successfully"

            else:
                error_message = ''' <h4>
                                      Prescription could not be saved.
                                      Please check the forms for errors
                                    </h4>
                                '''
                errors += aumodelformerrorformatter_factory(visit_prescription_form)
                error_message += ('\n' + errors)

            data = {'success': success,
                    'error_message': error_message
                    }
            jsondata = json.dumps(data)
            return HttpResponse(jsondata, content_type='application/json')

        else:
            raise Http404(" Error ! Unsupported Request..")

    except (TypeError, NameError, ValueError, AttributeError, KeyError):
        raise Http404("Error ! Invalid Request Parameters. ")

    except (VisitDetail.DoesNotExist):
        raise Http404("Requested Visit Does not exist.")
Example #12
0
def phone_edit(request, phone_id):
    if request.user:
        user = request.user
        try:
            if phone_id:
                phone_id = int(phone_id)
            else:
                phone_id = int(request.GET.get('phone_id'))

            phone_obj = Phone.objects.get(pk=phone_id)
            patient_detail_obj = phone_obj.patient_detail

            if not getattr(phone_obj, 'urls'):
                phone_obj.generate_urls()

            if request.method == "GET" and request.is_ajax():
                phone_form = PhoneForm(instance=phone_obj, auto_id=False)
                variable = RequestContext(
                    request, {
                        "user": user,
                        "patient_detail_obj": patient_detail_obj,
                        "phone_form": phone_form,
                        "phone_obj": phone_obj,
                    })
                return render_to_response('phone/edit.html', variable)

            elif request.method == 'POST' and request.is_ajax():
                phone_form = PhoneForm(request.POST, instance=phone_obj)
                if phone_form.is_valid():
                    phone_object = phone_form.save()
                    success = True
                    error_message = "Phone Saved Successfully"
                    form_errors = None
                    data = {
                        "success": success,
                        "error_message": error_message,
                        "form_errors": form_errors,
                        "id": phone_object.id,
                        'phone_type': phone_object.phone_type,
                        'STD_Code': phone_object.STD_Code,
                        'ISD_Code': phone_object.ISD_Code,
                        'phone': phone_object.phone,
                        'pat_id': phone_object.patient_detail.id,
                        "edit": phone_object.urls['edit'],
                        "del": phone_object.urls['del']
                    }
                else:
                    success = False
                    error_message = aumodelformerrorformatter_factory(
                        phone_form)
                    form_errors = error_message
                    data = {
                        'success': success,
                        'error_message': error_message,
                        'form_errors': form_errors
                    }
                jsondata = json.dumps(data)
                return HttpResponse(jsondata, content_type='application/json')

            else:
                raise Http404("BadRequest: Unsupported Request Method")

        except TypeError or ValueError or AttributeError:
            raise Http404("BadRequest")

        except Phone.DoesNotExist:
            raise Http404("BadRequest: Phone Data Does Not Exist")
Example #13
0
def demographics_edit(request, demographics_id=None):
    if request.user:
        user = request.user
        try:
            if demographics_id:
                demographics_id = int(demographics_id)
            else:
                demographics_id = int(request.GET.get('demographics_id'))

            demographics_obj = Demographics.objects.get(pk=demographics_id)
            patient_detail_obj = demographics_obj.patient_detail
            demographics_obj.save()
            d_urls = demographics_obj.urls

        except TypeError or ValueError or AttributeError:
            raise Http404("BadRequest")

        except Demographics.DoesNotExist:
            raise Http404(
                "BadRequest: Patient DemographicsData Data Does Not Exist")

        if request.method == "GET" and request.is_ajax():
            demographics_form = DemographicsForm(instance=demographics_obj,
                                                 auto_id=False)
            variable = RequestContext(
                request, {
                    "user": user,
                    "patient_detail_obj": patient_detail_obj,
                    "demographics_form": demographics_form,
                    "demographics_obj": demographics_obj,
                    'action': d_urls['edit'],
                    'button_label': "Edit",
                    'canDel': True,
                    'addUrl': None,
                    'editUrl': d_urls['edit'],
                    'delUrl': d_urls['del'],
                })
            return render_to_response('demographics/add_or_edit_form.html',
                                      variable)

        elif request.method == 'POST' and request.is_ajax():
            demographics_form = DemographicsForm(request.POST,
                                                 instance=demographics_obj)

            if demographics_form.is_valid():
                demographics_obj = demographics_form.save()
                success = True
                error_message = "Demographics Data Edited Successfully"
                form_errors = None

            else:
                success = False
                error_message = aumodelformerrorformatter_factory(
                    demographics_form)
                form_errors = error_message

            data = {
                'success': success,
                'error_message': error_message,
                'form_errors': form_errors
            }
            jsondata = json.dumps(data)
            return HttpResponse(jsondata, content_type='application/json')

        else:
            raise Http404("BadRequest: Unsupported Request Method")
Example #14
0
def social_history_add(request, patient_id=None):

    if request.user:
        user = request.user
        try:
            if patient_id:
                patient_id = int(patient_id)
            else:
                patient_id = int(request.GET.get("patient_id"))

            patient_detail_obj = PatientDetail.objects.get(pk=patient_id)
            # patient_detail_obj.generate_urls()

            if not getattr(patient_detail_obj, "urls", None):
                patient_detail_obj.save()

            social_history_obj = SocialHistory.objects.filter(patient_detail=patient_detail_obj)

            if social_history_obj:
                return social_history_edit(request, social_history_obj[0].id)
            else:
                social_history_obj = SocialHistory(patient_detail=patient_detail_obj)

            if request.method == "GET" and request.is_ajax():
                social_history_form = SocialHistoryForm(instance=social_history_obj)

                variable = RequestContext(
                    request,
                    {
                        "user": user,
                        "patient_detail_obj": patient_detail_obj,
                        "social_history_form": social_history_form,
                        "social_history_obj": social_history_obj,
                        "button_label": "Add",
                        "action": patient_detail_obj.urls["add"]["social_history"],
                        "addUrl": patient_detail_obj.urls["add"]["social_history"],
                        "canDel": False,
                        "editUrl": None,
                        "delUrl": None,
                    },
                )
                return render_to_response("social_history/add_or_edit_form.html", variable)

            elif request.method == "POST" and request.is_ajax():
                copy_post = request.POST.copy()

                # print "Received POST Request with", request.POST
                # print "Home Occupants received are", copy_post.getlist('home_occupants')

                copy_post["home_occupants"] = ",".join(copy_post.getlist("home_occupants"))
                copy_post["pets"] = ",".join(copy_post.getlist("pets"))

                social_history_form = SocialHistoryForm(copy_post, instance=social_history_obj)

                if social_history_form.is_valid():
                    try:
                        social_history_obj = social_history_form.save()
                        success = True
                        error_message = "SocialHistory Data Added Successfully"
                        form_errors = None
                        addData = {
                            "marital_status": social_history_obj.marital_status,
                            "marital_status_notes": social_history_obj.marital_status_notes,
                            "occupation": social_history_obj.occupation,
                            "occupation_notes": social_history_obj.occupation_notes,
                            "exercise": social_history_obj.exercise,
                            "exercise_notes": social_history_obj.exercise_notes,
                            "diet": social_history_obj.diet,
                            "diet_notes": social_history_obj.diet_notes,
                            "home_occupants": social_history_obj.home_occupants,
                            "home_occupants_notes": social_history_obj.home_occupants_notes,
                            "pets": social_history_obj.pets,
                            "pets_notes": social_history_obj.pets_notes,
                            "alcohol": social_history_obj.alcohol,
                            "alcohol_no": social_history_obj.alcohol_no,
                            "alcohol_notes": social_history_obj.alcohol_notes,
                            "tobacco": social_history_obj.tobacco,
                            "tobacco_no": social_history_obj.tobacco_no,
                            "tobacco_notes": social_history_obj.tobacco_notes,
                            "drug_abuse": social_history_obj.drug_abuse,
                            "drug_abuse_notes": social_history_obj.drug_abuse_notes,
                            "sexual_preference": social_history_obj.sexual_preference,
                            "sexual_preference_notes": social_history_obj.sexual_preference_notes,
                            "current_events": social_history_obj.current_events,
                        }

                        if not hasattr(social_history_obj, "urls"):
                            social_history_obj.save()
                            urls = social_history_obj.urls

                        data = {
                            "success": success,
                            "error_message": error_message,
                            "form_errors": form_errors,
                            "canDel": True,
                            "addUrl": None,
                            "addData": addData,
                            "editUrl": social_history_obj.urls["edit"],
                            "delUrl": social_history_obj.urls["del"],
                        }
                    except (Exception("SocialHistoryExistsError")):
                        data = {
                            "success": False,
                            "error_message": "Social History Already Exists ! Cannot add More",
                            "form_errors": error_message,
                            "addData": None,
                        }
                else:
                    error_message = aumodelformerrorformatter_factory(social_history_form)
                    data = {
                        "success": False,
                        "error_message": error_message,
                        "form_errors": error_message,
                        "addData": None,
                    }
                jsondata = json.dumps(data)
                return HttpResponse(jsondata, content_type="application/json")

            else:
                raise Http404("BadRequest: Unsupported Request Method. AJAX status is:: " + unicode(request.is_ajax()))

        except TypeError or ValueError or AttributeError:
            raise Http404("BadRequest")

        except (PatientDetail.DoesNotExist):
            raise Http404("BadRequest: Patient Data Does Not Exist")
Example #15
0
def visit_assessment_and_plan_add(request, visit_id=None):
    """ 
    Adds a Visit assessment_and_plan
    """

    user = request.user
    success = False
    error_message = None
    form_errors = []

    try:
        if visit_id:
            visit_id = int(visit_id)
        else:
            visit_id = int(request.GET.get('visit_id'))

        visit_detail_obj = VisitDetail.objects.get(pk=visit_id)
        patient_detail_obj = visit_detail_obj.patient_detail

        if not getattr(patient_detail_obj, 'urls', None):
            patient_detail_obj.save()

        if not getattr(visit_detail_obj, 'urls', None):
            visit_detail_obj.save()

        visit_assessment_and_plan_objs = VisitAssessmentAndPlan.objects.filter(
            visit_detail=visit_detail_obj)
        if visit_assessment_and_plan_objs:
            return visit_assessment_and_plan_edit(
                request,
                visit_assessment_and_plan_id=visit_assessment_and_plan_objs[0].
                id)

        visit_assessment_and_plan_obj = VisitAssessmentAndPlan(
            visit_detail=visit_detail_obj)

        if request.method == "GET" and request.is_ajax():

            visit_assessment_and_plan_form = VisitAssessmentAndPlanForm(
                instance=visit_assessment_and_plan_obj,
                auto_id="id_add_visit_assessment_and_plan" + str(visit_id) +
                "_%s")
            variable = RequestContext(
                request, {
                    'user': user,
                    'visit_detail_obj': visit_detail_obj,
                    'visit_assessment_and_plan_form':
                    visit_assessment_and_plan_form,
                    'patient_detail_obj': patient_detail_obj,
                    'error_message': error_message,
                    'success': success,
                    'visit_assessment_and_plan_action': 'add'
                })

            return render_to_response(
                'visit_assessment_and_plan/add_or_edit_form.html', variable)

        elif request.method == "POST" and request.is_ajax():

            visit_assessment_and_plan_form = VisitAssessmentAndPlanForm(
                request.POST, instance=visit_assessment_and_plan_obj)

            if visit_assessment_and_plan_form.is_valid():
                saved_visit_assessment_and_plan = visit_assessment_and_plan_form.save(
                    commit=False)
                saved_visit_assessment_and_plan.visit_detail = visit_detail_obj
                saved_visit_assessment_and_plan.save()
                success = True
                error_message = "History Added Successfully"
                redirectUrl = saved_visit_assessment_and_plan.urls['edit']

            else:
                error_message = ''' <h4>
                                      History Could not be Saved.
                                      Please check the forms for errors
                                    </h4>
                                '''
                errors += aumodelformerrorformatter_factory(
                    visit_assessment_and_plan_form)
                error_message += ('\n' + errors)
                redirectUrl = None
                success = False

            data = {
                'success': success,
                'error_message': error_message,
                'redirectUrl': redirectUrl
            }
            jsondata = json.dumps(data)
            return HttpResponse(jsondata, content_type='application/json')

        else:
            raise Http404(" Error ! Unsupported Request..")

    except (TypeError, NameError, ValueError, AttributeError, KeyError):
        raise Http404("Error ! Invalid Request Parameters. ")

    except (VisitDetail.DoesNotExist):
        raise Http404("Requested Visit Does not exist.")
Example #16
0
def social_history_edit(request, social_history_id=None):

    if request.user:
        user = request.user

        try:
            if social_history_id:
                social_history_id = int(social_history_id)
            else:
                social_history_id = int(request.GET.get("social_history_id"))
            social_history_obj = SocialHistory.objects.get(pk=social_history_id)
            patient_detail_obj = social_history_obj.patient_detail

            if not getattr(patient_detail_obj, "urls", None):
                patient_detail_obj.save()

            if not getattr(social_history_obj, "urls", None):
                social_history_obj.save()
                urls = social_history_obj.urls
            else:
                urls = social_history_obj.urls

        except ValueError or AttributeError or TypeError:
            raise Http404("BadRequest: Server Error")
        except SocialHistory.DoesNotExist:
            raise Http404("BadRequest: Requested Patient SocialHistory Data DoesNotExist")

        if request.method == "GET" and request.is_ajax():
            social_history_form = SocialHistoryForm(instance=social_history_obj)
            patient_detail_obj = social_history_obj.patient_detail
            addData = {
                "marital_status": social_history_obj.marital_status,
                "marital_status_notes": social_history_obj.marital_status_notes,
                "occupation": social_history_obj.occupation,
                "occupation_notes": social_history_obj.occupation_notes,
                "exercise": social_history_obj.exercise,
                "exercise_notes": social_history_obj.exercise_notes,
                "diet": social_history_obj.diet,
                "diet_notes": social_history_obj.diet_notes,
                "home_occupants": social_history_obj.home_occupants,
                "home_occupants_notes": social_history_obj.home_occupants_notes,
                "pets": social_history_obj.pets,
                "pets_notes": social_history_obj.pets_notes,
                "alcohol": social_history_obj.alcohol,
                "alcohol_no": social_history_obj.alcohol_no,
                "alcohol_notes": social_history_obj.alcohol_notes,
                "tobacco": social_history_obj.tobacco,
                "tobacco_no": social_history_obj.tobacco_no,
                "tobacco_notes": social_history_obj.tobacco_notes,
                "drug_abuse": social_history_obj.drug_abuse,
                "drug_abuse_notes": social_history_obj.drug_abuse_notes,
                "sexual_preference": social_history_obj.sexual_preference,
                "sexual_preference_notes": social_history_obj.sexual_preference_notes,
                "current_events": social_history_obj.current_events,
            }
            variable = RequestContext(
                request,
                {
                    "user": user,
                    "patient_detail_obj": patient_detail_obj,
                    "social_history_form": social_history_form,
                    "social_history_obj": social_history_obj,
                    "addData": addData,
                    "action": urls["edit"],
                    "button_label": "Edit",
                    "canDel": True,
                    "addUrl": None,
                    "editUrl": urls["edit"],
                    "delUrl": urls["del"],
                },
            )
            return render_to_response("social_history/add_or_edit_form.html", variable)

        elif request.method == "POST" and request.is_ajax():
            copy_post = request.POST.copy()
            copy_post["home_occupants"] = ",".join(copy_post.getlist("home_occupants"))
            copy_post["pets"] = ",".join(copy_post.getlist("pets"))
            social_history_form = SocialHistoryForm(copy_post, instance=social_history_obj)
            patient_detail_obj = social_history_obj.patient_detail

            if social_history_form.is_valid():
                social_history_obj = social_history_form.save()
                success = True
                error_message = "SocialHistory Data Edited Successfully"
                form_errors = ""
                addData = {
                    "marital_status": social_history_obj.marital_status,
                    "marital_status_notes": social_history_obj.marital_status_notes,
                    "occupation": social_history_obj.occupation,
                    "occupation_notes": social_history_obj.occupation_notes,
                    "exercise": social_history_obj.exercise,
                    "exercise_notes": social_history_obj.exercise_notes,
                    "diet": social_history_obj.diet_notes,
                    "home_occupants": social_history_obj.home_occupants,
                    "home_occupants_notes": social_history_obj.home_occupants_notes,
                    "pets": social_history_obj.pets,
                    "pets_notes": social_history_obj.pets_notes,
                    "alcohol": social_history_obj.alcohol,
                    "alcohol_no": social_history_obj.alcohol_no,
                    "alcohol_notes": social_history_obj.alcohol_notes,
                    "tobacco": social_history_obj.tobacco,
                    "tobacco_no": social_history_obj.tobacco_no,
                    "tobacco_notes": social_history_obj.tobacco_notes,
                    "drug_abuse": social_history_obj.drug_abuse,
                    "drug_abuse_notes": social_history_obj.drug_abuse_notes,
                    "sexual_preference": social_history_obj.sexual_preference,
                    "sexual_preference_notes": social_history_obj.sexual_preference_notes,
                    "current_events": social_history_obj.current_events,
                }
                data = {
                    "success": success,
                    "error_message": error_message,
                    "form_errors": form_errors,
                    "addData": addData,
                }
            else:
                data = {
                    "success": False,
                    "error_message": aumodelformerrorformatter_factory(social_history_form),
                    "form_errors": error_message,
                    "addData": None,
                }
            jsondata = json.dumps(data)
            return HttpResponse(jsondata, content_type="application/json")

        else:
            raise Http404("BadRequest: Unsupported Request Method")
Example #17
0
def visit_detail_edit(request, visit_id=None):

    user = request.user
    error_message = None
    success = False

    try:
        if visit_id:
            visit_id = int(visit_id)
        else:
            visit_id = int(request.GET.get('visit_id'))

        visit_detail_obj = VisitDetail.objects.get(pk=visit_id)
        patient_detail_obj = visit_detail_obj.patient_detail

        form_field_auto_id = 'id_edit_visit_detail_' + str(visit_id)
        data = {'visit_date': visit_detail_obj.visit_date.date().isoformat()}

        if not getattr(visit_detail_obj, 'urls', None):
            visit_detail_obj.save()
        if not getattr(patient_detail_obj, 'urls', None):
            patient_detail_obj.save()

        if request.method == "GET" and request.is_ajax():

            visit_detail_form = VisitDetailForm(initial=data,
                                                instance=visit_detail_obj,
                                                auto_id=form_field_auto_id +
                                                "_%s")

            variable = RequestContext(
                request, {
                    'user': user,
                    'visit_detail_obj': visit_detail_obj,
                    'visit_detail_form': visit_detail_form,
                    'patient_detail_obj': patient_detail_obj,
                    'error_message': error_message,
                    'form_action': 'edit'
                })
            return render_to_response('visit_detail/edit.html', variable)

        elif request.method == "POST" and request.is_ajax():

            visit_detail_form = VisitDetailForm(request.POST,
                                                instance=visit_detail_obj)

            if visit_detail_form.is_valid():
                saved_visit = visit_detail_form.save(commit=False)
                saved_visit.op_surgeon = user.staff
                saved_visit.save()
                success = True
                error_message = "Visit Edited Successfully"

            else:
                error_message = ''' <h4>
                                        Visit Could not be Saved.
                                        Please check the forms for errors
                                    </h4>
                                '''
                errors = aumodelformerrorformatter_factory(
                    visit_detail_form) + '\n'
                error_message += ('\n' + errors)

            data = {'success': success, 'error_message': error_message}
            jsondata = json.dumps(data)
            return HttpResponse(jsondata, content_type='application/json')

        else:
            raise Http404(" Error ! Unsupported Request..")

    #except (TypeError, NameError, ValueError, AttributeError, KeyError):
    #raise Http404("Error ! Invalid Request Parameters. ")

    except (VisitDetail.DoesNotExist):
        raise Http404("Requested Patient Does not exist.")
Example #18
0
def visit_detail_add(request, patient_id=None, nature='initial'):
    """ 
        Adds a new VisitDetail Object
        Takes request and id of PatientDetail object
        the nature of visit is defaulted to 'initial'.
        Implementation of separate visits for 'initial' , 'fu' etc.. can be implemented later.
    """
    print "Received request to add VisitDetail"

    user = request.user
    success = False
    error_message = None
    form_errors = []

    try:
        if patient_id:
            patient_id = int(patient_id)
        else:
            patient_id = int(request.GET.get('patient_id'))

        patient_detail_obj = PatientDetail.objects.get(pk=patient_id)

        if not getattr(patient_detail_obj, 'urls', None):
            patient_detail_obj.save()

        if not patient_detail_obj.can_add_new_visit(patient_detail_obj):
            error_message = '''
                              Cannot add new visit now.
                              There may be a active admission / visit. 
                              Please close that and try again
                            '''
            raise Http404(error_message)

        else:
            print patient_detail_obj, " can add VisitDetail"
            visit_detail_obj = VisitDetail(patient_detail=patient_detail_obj)

            if request.method == "GET" and request.is_ajax():

                if nature == 'initial':
                    visit_detail_form = VisitDetailForm(
                        initial={
                            'visit_date': datetime.now().date().isoformat(),
                            'consult_nature': 'initial',
                            'status': 'examining',
                            'op_surgeon': user
                        },
                        instance=visit_detail_obj,
                        auto_id="id_new_visit_detail" + str(id) + "_%s")

                    if not getattr(patient_detail_obj, 'urls', None):
                        patient_detail_obj.save()

                    variable = RequestContext(
                        request, {
                            'user': user,
                            'visit_detail_obj': visit_detail_obj,
                            'visit_detail_form': visit_detail_form,
                            'patient_detail_obj': patient_detail_obj,
                            'error_message': error_message,
                            'success': success,
                            'form_action': 'add'
                        })
                    return render_to_response('visit_detail/add_working.html',
                                              variable)

                elif nature == 'fu':
                    # TODO
                    pass

            elif request.method == "POST" and request.is_ajax():
                print "Received request to add visit..."
                visit_detail_form = VisitDetailForm(request.POST,
                                                    instance=visit_detail_obj)

                if visit_detail_form.is_valid():
                    saved_visit = visit_detail_form.save(commit=False)
                    saved_visit.op_surgeon = user.staff
                    saved_visit.save()
                    success = True
                    error_message = "Visit Added Successfully"
                    returnData = {
                        'id': 'EDIT_ACTIVE_VISIT_' + str(saved_visit.id),
                        'title': saved_visit.visit_date.date().isoformat(),
                        'url': saved_visit.urls['edit']
                    }

                else:
                    error_message = ''' <h4>
                                          Visit Could not be Saved.
                                          Please check the forms for errors
                                        </h4>
                                    '''
                    errors = aumodelformerrorformatter_factory(
                        visit_detail_form) + '\n'
                    returnData = None

                data = {
                    'success': success,
                    'error_message': error_message,
                    'returnData': returnData
                }
                jsondata = json.dumps(data)
                return HttpResponse(jsondata, content_type='application/json')

            else:
                raise Http404(" Error ! Unsupported Request..")

    except (TypeError, NameError, ValueError, AttributeError, KeyError):
        raise Http404("Error ! Invalid Request Parameters. ")

    except (PatientDetail.DoesNotExist):
        raise Http404("Requested Patient Does not exist.")
Example #19
0
def demographics_add(request, patient_id = None):
    if request.user:
        user = request.user
        try:
          if patient_id:
            patient_id = int(patient_id)
          else:
            patient_id = int(request.GET.get('patient_id'))

          patient_detail_obj = PatientDetail.objects.get(pk=patient_id)
          patient_detail_obj.save()
          p_urls = patient_detail_obj.urls
          demographics_obj = Demographics.objects.filter(patient_detail=patient_detail_obj)

          if not demographics_obj:
              demographics_obj = Demographics(patient_detail=patient_detail_obj)            
          else:
              demographics_obj = demographics_obj[0]
              return demographics_edit(request, demographics_id = demographics_obj.id)

          if request.method == "GET" and request.is_ajax():
                demographics_form = DemographicsForm(instance=demographics_obj, auto_id = False)
                variable = RequestContext(request,
                                          {"user": user,
                                            "patient_detail_obj": patient_detail_obj,
                                            "demographics_form": demographics_form,
                                            "demographics_obj": demographics_obj,
                                            'button_label': "Add",
                                            "action": p_urls['add']['demographics'],
                                            "addUrl": p_urls['add']['demographics'],
                                            'canDel': False,
                                            'editUrl': None,
                                            'delUrl': None
                                          })
                return render_to_response('demographics/add_or_edit_form.html', variable)

          elif request.method == 'POST' and request.is_ajax():
              demographics_form = DemographicsForm(request.POST, instance=demographics_obj)

              if demographics_form.is_valid():

                  try:
                    demographics_obj = demographics_form.save()
                    success = True
                    error_message = "Demographics Data Added Successfully"
                    form_errors = None
                    data = {'success': success,
                            'error_message': error_message,
                            'form_errors': form_errors,
                            'canDel': True,
                            'addUrl': None,
                            'editUrl': demographics_obj.urls['edit'],
                            'delUrl': demographics_obj.urls['del'],
                            }

                  except (DemographicsDataExistsError):
                    success = False
                    error_message = "Demographics Data Already Exists ! Cannot add more.."
                    form_errors = ''
                    data = {'success': success,
                            'error_message': error_message,
                            'form_errors': form_errors
                            }

              else:
                  success = False
                  error_message = aumodelformerrorformatter_factory(demographics_form)
                  form_errors = error_message
                  data = {'success': success,
                          'error_message': error_message,
                          'form_errors': form_errors
                          }
              json = simplejson.dumps(data)
              return HttpResponse(json, content_type='application/json')

          else:
              raise Http404("BadRequest: Unsupported Request Method")

        except ValueError or AttributeError or TypeError:
            raise Http404("BadRequest: Server Error")

        except PatientDetail.DoesNotExist:
            raise Http404("BadRequest: Requested Patient DoesNotExist")
Example #20
0
def demographics_add(request, patient_id=None):
    if request.user:
        user = request.user
        try:
            if patient_id:
                patient_id = int(patient_id)
            else:
                patient_id = int(request.GET.get('patient_id'))

            patient_detail_obj = PatientDetail.objects.get(pk=patient_id)
            patient_detail_obj.save()
            p_urls = patient_detail_obj.urls
            demographics_obj = Demographics.objects.filter(
                patient_detail=patient_detail_obj)

            if not demographics_obj:
                demographics_obj = Demographics(
                    patient_detail=patient_detail_obj)
            else:
                demographics_obj = demographics_obj[0]
                return demographics_edit(request,
                                         demographics_id=demographics_obj.id)

            if request.method == "GET" and request.is_ajax():
                demographics_form = DemographicsForm(instance=demographics_obj,
                                                     auto_id=False)
                variable = RequestContext(
                    request, {
                        "user": user,
                        "patient_detail_obj": patient_detail_obj,
                        "demographics_form": demographics_form,
                        "demographics_obj": demographics_obj,
                        'button_label': "Add",
                        "action": p_urls['add']['demographics'],
                        "addUrl": p_urls['add']['demographics'],
                        'canDel': False,
                        'editUrl': None,
                        'delUrl': None
                    })
                return render_to_response('demographics/add_or_edit_form.html',
                                          variable)

            elif request.method == 'POST' and request.is_ajax():
                demographics_form = DemographicsForm(request.POST,
                                                     instance=demographics_obj)

                if demographics_form.is_valid():

                    try:
                        demographics_obj = demographics_form.save()
                        success = True
                        error_message = "Demographics Data Added Successfully"
                        form_errors = None
                        data = {
                            'success': success,
                            'error_message': error_message,
                            'form_errors': form_errors,
                            'canDel': True,
                            'addUrl': None,
                            'editUrl': demographics_obj.urls['edit'],
                            'delUrl': demographics_obj.urls['del'],
                        }

                    except (DemographicsDataExistsError):
                        success = False
                        error_message = "Demographics Data Already Exists ! Cannot add more.."
                        form_errors = ''
                        data = {
                            'success': success,
                            'error_message': error_message,
                            'form_errors': form_errors
                        }

                else:
                    success = False
                    error_message = aumodelformerrorformatter_factory(
                        demographics_form)
                    form_errors = error_message
                    data = {
                        'success': success,
                        'error_message': error_message,
                        'form_errors': form_errors
                    }
                jsondata = json.dumps(data)
                return HttpResponse(jsondata, content_type='application/json')

            else:
                raise Http404("BadRequest: Unsupported Request Method")

        except ValueError or AttributeError or TypeError:
            raise Http404("BadRequest: Server Error")

        except PatientDetail.DoesNotExist:
            raise Http404("BadRequest: Requested Patient DoesNotExist")
Example #21
0
def visit_phyexam_edit(request, exam_name , visit_phyexam_id=None):
  user = request.user
  exam_class = EXAM_NAME_MODEL_MAP.get(exam_name,'')    
  exam_form_class = EXAM_NAME_MODEL_FORM_MAP.get(exam_class,'')

  try:
      if visit_phyexam_id:
        visit_phyexam_id  = int(visit_phyexam_id)
      else:
        visit_phyexam_id = int( request.GET.get('visit_phyexam_id') )

      if not exam_class:
          raise Http404("Invalid Exam Requested")
      else:
          exam_obj = exam_class.objects.get(pk = visit_phyexam_id)
          visit_detail_obj = exam_obj.visit_detail

      if not getattr(exam_obj,'urls',None):
          exam_obj.save()

      if not getattr(visit_detail_obj,'urls',None):
          visit_detail_obj.save()

  except (NameError, TypeError, ValueError, AttributeError, KeyError):
    raise Http404("Error! : Bad Parameters supplied ! ")

  except (exam_class.DoesNotExist):
      raise Http404("Error! : Requested Examination Does not Exist !")


  if request.method == 'GET':
      exam_form = exam_form_class(instance = exam_obj, auto_id = False )
      variable = RequestContext(request, {'user': user, 
                                          'visit_detail_obj': visit_detail_obj, 
                                          'visit_phyexam_form': exam_form,
                                          'exam_obj': exam_obj,
                                          'visit_phyexam_action': 'edit',
                                          'exam_name': exam_name
                                          })
      if exam_name != 'vasc':
        return render_to_response('visit_phyexam/add_or_edit_form.html', variable )
      else:
        return render_to_response('visit_phyexam/snippets/forms/vasc.html', variable )

  elif request.method == 'POST':
      exam_form = exam_form_class(request.POST, instance = exam_obj)

      if exam_form.is_valid():
            saved_exam = exam_form.save()
            saved_exam.visit_detail = visit_detail_obj
            saved_exam.save()
            success = True
            error_message= "Exam Saved Successfully"
            form_errors = None
            redirectUrl = reverse('visit_phyexam_edit', args=[exam_name, saved_exam.id])

      else:
            success = False
            error_message = "Error! Exam Could not be saved"
            form_errors =  aumodelformerrorformatter_factory(exam_form)
            error_message += "\n" + form_errors + "\n"
            redirectUrl = None


      data = {'success': success, 
              'error_message': error_message, 
              'form_errors': form_errors,
              'redirectUrl': redirectUrl
              }
      jsondata = json.dumps(data)
      return HttpResponse(jsondata, content_type = 'json/application')

  else:
      raise Http404("Bad Request")
Example #22
0
def email_and_fax_edit(request, email_and_fax_id):
    if request.user:
        user = request.user
        try:
          if email_and_fax_id: 
            email_and_fax_id = int(email_and_fax_id)
          else:
            email_and_fax_id = int(request.GET.get('email_and_fax_id'))

          email_and_fax_obj = EmailAndFax.objects.get(pk=email_and_fax_id)
          patient_detail_obj = email_and_fax_obj.patient_detail

          if not getattr(email_and_fax_obj,'urls'):
            email_and_fax_obj.generate_urls()

          if request.method == "GET" and request.is_ajax():
              email_and_fax_form = EmailAndFaxForm(instance=email_and_fax_obj, auto_id = False )
              variable = RequestContext(request,
                                        {"user": user,
                                          "patient_detail_obj": patient_detail_obj,
                                          "email_and_fax_form": email_and_fax_form,
                                          "email_and_fax_obj": email_and_fax_obj,
                                          })
              return render_to_response('email_and_fax/edit.html', variable)

          elif request.method == 'POST' and request.is_ajax():
              email_and_fax_form = EmailAndFaxForm(request.POST, instance=email_and_fax_obj)
              if email_and_fax_form.is_valid():
                  email_and_fax_object = email_and_fax_form.save()
                  success = True
                  error_message = "EmailAndFax Saved Successfully"
                  form_errors = None
                  data = {"success": success,
                          "error_message": error_message,
                          "form_errors": form_errors,
                          "id": email_and_fax_object.id,
                          "email": email_and_fax_object.email,
                          "fax": email_and_fax_object.fax,
                          "web": email_and_fax_object.web,
                          'pat_id': email_and_fax_object.patient_detail.id,
                          "edit": email_and_fax_object.urls['edit'],
                          "del": email_and_fax_object.urls['del']
                          }
              else:
                  success = False
                  error_message = aumodelformerrorformatter_factory(email_and_fax_form)
                  form_errors = error_message
                  data = {'success'       : success,
                          'error_message' : error_message,
                          'form_errors'   : form_errors
                          }
              jsondata = json.dumps(data)
              return HttpResponse(jsondata, content_type='application/json')

          else:
              raise Http404("BadRequest: Unsupported Request Method")

        except TypeError or ValueError or AttributeError:
            raise Http404("BadRequest")

        except EmailAndFax.DoesNotExist:
            raise Http404("BadRequest: EmailAndFax Data Does Not Exist")
Example #23
0
def visit_prescription_edit(request, visit_prescription_id):
  
    user = request.user
    error_message = None    
    try:
        if visit_prescription_id:
          visit_prescription_id = int(visit_prescription_id)
        else:
          visit_prescription_id = int(request.GET.get('visit_prescription_id'))
        visit_prescription_obj = VisitPrescription.objects.get(pk=visit_prescription_id)
        visit_detail_obj = visit_prescription_obj.visit_detail
        patient_detail_obj = visit_detail_obj.patient_detail

        if not getattr(visit_detail_obj,'urls',None):
          visit_detail_obj.save()

        if not getattr(patient_detail_obj,'urls',None):
          patient_detail_obj.save()

        if not getattr(visit_prescription_obj,'urls',None):
          visit_prescription_obj.save()
        
        if request.method == "GET" and request.is_ajax():
            visit_prescription_form = VisitPrescriptionForm(instance = visit_prescription_obj, 
                                                          auto_id = False
                                                        )
            variable = RequestContext(
                request, {'user': user,
                          'visit_detail_obj': visit_detail_obj,
                          'visit_prescription_obj': visit_prescription_obj,
                          'form'  : visit_prescription_form  ,
                          'patient_detail_obj': visit_detail_obj.patient_detail,
                          'error_message': error_message,
                          'form_action':'edit'
                          })
            return render_to_response('visit_prescription/forms/edit.html', variable)

        if request.method == "POST" and request.is_ajax():
            visit_prescription_form   = VisitPrescriptionForm(request.POST, instance = visit_prescription_obj )
            if visit_prescription_form.is_valid():
                saved_visit_prescription = visit_prescription_form.save(commit=False)
                saved_visit_prescription.visit_detail = visit_detail_obj
                saved_visit_prescription.save()
                success = True
                error_message = "Visit Edited Successfully"
                #if check_duplicates(saved_visit_prescription, visit_detail_obj):
                    #saved_visit_prescription.save()
                    #success = True
                    #error_message = "Visit Edited Successfully"
                #else:
                    #success = False
                    #error_message = ''' <h4>
                                        #Visit Could not be Saved as there are duplicate prescription.
                                        #Please check the forms for errors
                                        #</h4>
                                    #'''
            else:
                success = False
                error_message = ''' <h4>
                                      Visit Could not be Saved.
                                      Please check the forms for errors
                                    </h4>
                                '''
                errors += aumodelformerrorformatter_factory(visit_prescription_form)
                error_message += ('\n' + errors)
            data = {'success': success, 'error_message': error_message }
            jsondata = json.dumps(data)
            return HttpResponse(jsondata, content_type='application/json')
        else:
             raise Http404(" Error ! Unsupported Request..")
    except (TypeError, NameError, ValueError, AttributeError, KeyError):
        raise Http404("Error ! Invalid Request Parameters. ")
    except (VisitPrescription.DoesNotExist):
        raise Http404("Requested VisitPrescription Does not exist.")
Example #24
0
def email_and_fax_add(request, patient_id = None):

    if request.user:
        user = request.user

        try:
          if patient_id:
            patient_id = int(patient_id)
          else:
            patient_id = int(request.GET.get('patient_id'))

          patient_detail_obj = PatientDetail.objects.get(pk=patient_id)
          email_and_fax_obj = EmailAndFax(patient_detail=patient_detail_obj)

          if request.method == "GET" and request.is_ajax():
              email_and_fax_form = EmailAndFaxForm(instance=email_and_fax_obj, auto_id = False )
              variable = RequestContext(request,
                                        {"user": user,
                                        "patient_detail_obj": patient_detail_obj,
                                        "email_and_fax_form": email_and_fax_form,
                                        "email_and_fax_obj": email_and_fax_obj,
                                        })
              return render_to_response('email_and_fax/add.html', variable)

          elif request.method == 'POST' and request.is_ajax():
              email_and_fax_form = EmailAndFaxForm(request.POST, instance=email_and_fax_obj)
              if email_and_fax_form.is_valid():
                  email_and_fax_object = email_and_fax_form.save()
                  if not getattr(email_and_fax_object,'urls'):
                    email_and_fax_object.generate_urls()                                    
                  success = True
                  error_message = "EmailAndFax Saved Successfully"
                  form_errors = None
                  addData = {
                            "id": email_and_fax_object.id,
                            'pat_id': email_and_fax_object.patient_detail.id,
                            "email": email_and_fax_object.email,
                            "fax": email_and_fax_object.fax,
                            "web": email_and_fax_object.web,
                            "edit": email_and_fax_object.urls['edit'],
                            "del": email_and_fax_object.urls['del'],
                  }
              else:
                  success = False
                  error_message = aumodelformerrorformatter_factory(email_and_fax_form)
                  form_errors = error_message
                  addData = None
              data = {"success": success,
                      "error_message": error_message,
                      "form_errors": form_errors,
                      "addData": addData
                      }
              jsondata = json.dumps(data)
              return HttpResponse(jsondata, content_type='application/json')

          else:
              raise Http404("BadRequest: Unsupported Request Method")

        except TypeError or ValueError or AttributeError:
            raise Http404("BadRequest")

        except PatientDetail.DoesNotExist:
            raise Http404("BadRequest: Patient Data Does Not Exist")          
Example #25
0
def guardian_edit(request, guardian_id):
    if request.user:
        user = request.user
        try:
            if guardian_id:
                guardian_id = int(guardian_id)
            else:
                guardian_id = int(request.GET.get('guardian_id'))

            guardian_obj = Guardian.objects.get(pk=guardian_id)
            patient_detail_obj = guardian_obj.patient_detail

            if not getattr(guardian_obj, 'urls'):
                guardian_obj.generate_urls()

            if request.method == "GET" and request.is_ajax():
                guardian_form = GuardianForm(instance=guardian_obj,
                                             auto_id=False)
                variable = RequestContext(
                    request, {
                        "user": user,
                        "patient_detail_obj": patient_detail_obj,
                        "guardian_form": guardian_form,
                        "guardian_obj": guardian_obj,
                    })
                return render_to_response('guardian/edit.html', variable)

            elif request.method == 'POST' and request.is_ajax():
                guardian_form = GuardianForm(request.POST,
                                             instance=guardian_obj)

                if guardian_form.is_valid():
                    guardian_object = guardian_form.save()
                    success = True
                    error_message = "Guardian Saved Successfully"
                    form_errors = None
                    data = {
                        "success": success,
                        "error_message": error_message,
                        "form_errors": form_errors,
                        "id": guardian_object.id,
                        'pat_id': guardian_object.patient_detail.id,
                        "guardian_name": guardian_object.guardian_name,
                        "relation_to_guardian":
                        guardian_object.relation_to_guardian,
                        "guardian_address": guardian_object.guardian_address,
                        "guardian_city": guardian_object.guardian_city,
                        "guardian_state": guardian_object.guardian_state,
                        "guardian_country": guardian_object.guardian_country,
                        "guardian_zip_code": guardian_object.guardian_zip_code,
                        "guardian_phone": guardian_object.guardian_phone,
                        "next_of_kin": guardian_object.next_of_kin,
                        "emergency_contact": guardian_object.emergency_contact,
                        "edit": guardian_object.urls['edit'],
                        "del": guardian_object.urls['del']
                    }

                else:
                    success = False
                    error_message = aumodelformerrorformatter_factory(
                        guardian_form)
                    form_errors = error_message
                    data = {
                        'success': success,
                        'error_message': error_message,
                        'form_errors': form_errors
                    }
                json = simplejson.dumps(data)
                return HttpResponse(json, content_type='application/json')

            else:
                raise Http404("BadRequest: Unsupported Request Method")

        except TypeError or ValueError or AttributeError:
            raise Http404("BadRequest")

        except Guardian.DoesNotExist:
            raise Http404("BadRequest: Guardian Data Does Not Exist")
Example #26
0
def guardian_add(request, patient_id=None):

    if request.user:
        user = request.user

        try:
            if patient_id:
                patient_id = int(patient_id)
            else:
                patient_id = int(request.GET.get('patient_id'))

            patient_detail_obj = PatientDetail.objects.get(pk=patient_id)
            patient_detail_obj.save()
            p_urls = patient_detail_obj.urls
            guardian_obj = Guardian(patient_detail=patient_detail_obj)

            if request.method == "GET" and request.is_ajax():
                guardian_form = GuardianForm(instance=guardian_obj,
                                             auto_id=False)
                variable = RequestContext(
                    request, {
                        "user": user,
                        "patient_detail_obj": patient_detail_obj,
                        "guardian_form": guardian_form,
                        "guardian_obj": guardian_obj,
                        'addUrl': p_urls['add']['guardian']
                    })
                return render_to_response('guardian/add.html', variable)

            elif request.method == 'POST' and request.is_ajax():
                guardian_form = GuardianForm(request.POST,
                                             instance=guardian_obj)
                if guardian_form.is_valid():
                    guardian_object = guardian_form.save()
                    if not getattr(guardian_object, 'urls'):
                        guardian_object.generate_urls()
                    success = True
                    error_message = "Guardian Saved Successfully"
                    form_errors = None
                    addData = {
                        "id": guardian_object.id,
                        'pat_id': guardian_object.patient_detail.id,
                        "guardian_name": guardian_object.guardian_name,
                        "relation_to_guardian":
                        guardian_object.relation_to_guardian,
                        "guardian_phone": guardian_object.guardian_phone,
                        "edit": guardian_object.urls['edit'],
                        "del": guardian_object.urls['del'],
                    }
                else:
                    success = False
                    error_message = aumodelformerrorformatter_factory(
                        guardian_form)
                    form_errors = error_message
                    addData = None
                data = {
                    "success": success,
                    "error_message": error_message,
                    "form_errors": form_errors,
                    "addData": addData
                }
                jsondata = json.dumps(data)
                return HttpResponse(jsondata, content_type='application/json')

            else:
                raise Http404("BadRequest: Unsupported Request Method")

        except TypeError or ValueError or AttributeError:
            raise Http404("BadRequest")
        except PatientDetail.DoesNotExist:
            raise Http404("BadRequest: Patient Data Does Not Exist")
Example #27
0
def visit_complaint_add(request, visit_id=None):
    """ 
    Adds a Visit complaint
    """

    user = request.user
    success = False
    error_message = None
    form_errors = []

    try:
        if visit_id:
            visit_id = int(visit_id)
        else:
            visit_id = int(request.GET.get('visit_id'))

        visit_detail_obj = VisitDetail.objects.get(pk=visit_id)
        patient_detail_obj = visit_detail_obj.patient_detail
        visit_complaint_obj = VisitComplaint(visit_detail=visit_detail_obj)

        if not getattr(patient_detail_obj, 'urls', None):
            patient_detail_obj.save()

        if not getattr(visit_detail_obj, 'urls', None):
            visit_detail_obj.save()

        if request.method == "GET" and request.is_ajax():

            visit_complaint_form = VisitComplaintAddForm(
                instance=visit_complaint_obj,
                auto_id="id_add_visit_complaint" + str(visit_id) + "_%s")
            variable = RequestContext(
                request, {
                    'user': user,
                    'visit_detail_obj': visit_detail_obj,
                    'visit_complaint_form': visit_complaint_form,
                    'patient_detail_obj': patient_detail_obj,
                    'error_message': error_message,
                    'success': success,
                })

            return render_to_response('visit_complaints/forms/add.html',
                                      variable)

        elif request.method == "POST" and request.is_ajax():

            visit_complaint_form = VisitComplaintAddForm(
                request.POST, instance=visit_complaint_obj)

            if visit_complaint_form.is_valid():
                saved_visit_complaint = visit_complaint_form.save(commit=False)
                saved_visit_complaint.visit_detail = visit_detail_obj

                if check_duplicates(saved_visit_complaint, visit_detail_obj):
                    saved_visit_complaint.save()
                    success = True
                    error_message = "Visit Added Successfully"

                else:
                    success = False
                    error_message = ''' <h4>
                                        Visit Could not be Saved as there are duplicate complaints.
                                        Please check the forms for errors
                                        </h4>
                                    '''

            else:
                error_message = ''' <h4>
                                      Visit Could not be Saved.
                                      Please check the forms for errors
                                    </h4>
                                '''
                errors += aumodelformerrorformatter_factory(
                    visit_complaint_form)
                error_message += ('\n' + errors)

            data = {'success': success, 'error_message': error_message}
            jsondata = json.dumps(data)
            return HttpResponse(jsondata, content_type='application/json')

        else:
            raise Http404(" Error ! Unsupported Request..")


#    except (TypeError, NameError, ValueError, AttributeError, KeyError):
#        raise Http404("Error ! Invalid Request Parameters. ")

    except (VisitDetail.DoesNotExist):
        raise Http404("Requested Visit Does not exist.")
Example #28
0
def visit_hpi_add(request, visit_id = None):

    """ 
    Adds a Visit hpi
    """

    user = request.user
    success = False
    error_message = None
    form_errors = []

    try:
        if visit_id:
          visit_id = int(visit_id)
        else:
          visit_id = int(request.GET.get('visit_id'))

        visit_detail_obj = VisitDetail.objects.get(pk=visit_id)
        patient_detail_obj = visit_detail_obj.patient_detail

        if not getattr(patient_detail_obj, 'urls', None):
          patient_detail_obj.save()

        if not getattr(visit_detail_obj, 'urls', None):
          visit_detail_obj.save()

        visit_hpi_objs = VisitHPI.objects.filter(visit_detail = visit_detail_obj)
        if visit_hpi_objs:
          return visit_hpi_edit(request, visit_hpi_id = visit_hpi_objs[0].id)

        visit_hpi_obj = VisitHPI(visit_detail=visit_detail_obj)

        if request.method == "GET" and request.is_ajax():

            visit_hpi_form = VisitHPIForm(instance = visit_hpi_obj,
                                                      auto_id  = "id_add_visit_hpi"+ str(visit_id)+"_%s")
            variable = RequestContext(request, {
                                                'user': user,
                                                'visit_detail_obj': visit_detail_obj,
                                                'visit_hpi_form': visit_hpi_form,
                                                'patient_detail_obj': patient_detail_obj,
                                                'error_message': error_message,
                                                'success': success,
                                                'visit_hpi_action':'add'
                                            })

            return render_to_response('visit_hpi/add_or_edit_form.html', variable)

        elif request.method == "POST" and request.is_ajax():

            visit_hpi_form = VisitHPIForm(request.POST, instance = visit_hpi_obj)

            if visit_hpi_form.is_valid() :
                saved_visit_hpi = visit_hpi_form.save(commit=False)
                saved_visit_hpi.visit_detail = visit_detail_obj
                saved_visit_hpi.save()
                success = True
                error_message = "History Added Successfully"
                redirectUrl = saved_visit_hpi.urls['edit']

            else:
                error_message = ''' <h4>
                                      History Could not be Saved.
                                      Please check the forms for errors
                                    </h4>
                                '''
                errors += aumodelformerrorformatter_factory(visit_hpi_form)
                error_message += ('\n' + errors)
                redirectUrl = None
                success = False

            data = {'success': success,
                    'error_message': error_message,
                    'redirectUrl': redirectUrl
                    }
            jsondata = json.dumps(data)
            return HttpResponse(jsondata, content_type='application/json')

        else:
            raise Http404(" Error ! Unsupported Request..")


    except (TypeError, NameError, ValueError, AttributeError, KeyError):
        raise Http404("Error ! Invalid Request Parameters. ")

    except (VisitDetail.DoesNotExist):
        raise Http404("Requested Visit Does not exist.")
Example #29
0
def visit_detail_add(request, patient_id=None, nature="initial"):

    """ 
        Adds a new VisitDetail Object
        Takes request and id of PatientDetail object
        the nature of visit is defaulted to 'initial'.
        Implementation of separate visits for 'initial' , 'fu' etc.. can be implemented later.
    """
    print "Received request to add VisitDetail"

    user = request.user
    success = False
    error_message = None
    form_errors = []

    try:
        if patient_id:
            patient_id = int(patient_id)
        else:
            patient_id = int(request.GET.get("patient_id"))

        patient_detail_obj = PatientDetail.objects.get(pk=patient_id)

        if not getattr(patient_detail_obj, "urls", None):
            patient_detail_obj.save()

        if not patient_detail_obj.can_add_new_visit(patient_detail_obj):
            error_message = """
                              Cannot add new visit now.
                              There may be a active admission / visit. 
                              Please close that and try again
                            """
            raise Http404(error_message)

        else:
            print patient_detail_obj, " can add VisitDetail"
            visit_detail_obj = VisitDetail(patient_detail=patient_detail_obj)

            if request.method == "GET" and request.is_ajax():

                if nature == "initial":
                    visit_detail_form = VisitDetailForm(
                        initial={
                            "visit_date": datetime.now().date().isoformat(),
                            "consult_nature": "initial",
                            "status": "examining",
                            "op_surgeon": user,
                        },
                        instance=visit_detail_obj,
                        auto_id="id_new_visit_detail" + str(id) + "_%s",
                    )

                    if not getattr(patient_detail_obj, "urls", None):
                        patient_detail_obj.save()

                    variable = RequestContext(
                        request,
                        {
                            "user": user,
                            "visit_detail_obj": visit_detail_obj,
                            "visit_detail_form": visit_detail_form,
                            "patient_detail_obj": patient_detail_obj,
                            "error_message": error_message,
                            "success": success,
                            "form_action": "add",
                        },
                    )
                    return render_to_response("visit_detail/add_working.html", variable)

                elif nature == "fu":
                    # TODO
                    pass

            elif request.method == "POST" and request.is_ajax():
                print "Received request to add visit..."
                visit_detail_form = VisitDetailForm(request.POST, instance=visit_detail_obj)

                if visit_detail_form.is_valid():
                    saved_visit = visit_detail_form.save()
                    success = True
                    error_message = "Visit Added Successfully"
                    returnData = {
                        "id": "EDIT_ACTIVE_VISIT_" + str(saved_visit.id),
                        "title": saved_visit.visit_date.date().isoformat(),
                        "url": saved_visit.urls["edit"],
                    }

                else:
                    error_message = """ <h4>
                                          Visit Could not be Saved.
                                          Please check the forms for errors
                                        </h4>
                                    """
                    errors = aumodelformerrorformatter_factory(visit_detail_form) + "\n"
                    returnData = None

                data = {"success": success, "error_message": error_message, "returnData": returnData}
                json = simplejson.dumps(data)
                return HttpResponse(json, content_type="application/json")

            else:
                raise Http404(" Error ! Unsupported Request..")

    except (TypeError, NameError, ValueError, AttributeError, KeyError):
        raise Http404("Error ! Invalid Request Parameters. ")

    except (PatientDetail.DoesNotExist):
        raise Http404("Requested Patient Does not exist.")
Example #30
0
def visit_ros_edit(request, visit_ros_id=None):

    user = request.user
    error_message = None

    try:

        if visit_ros_id:
            visit_ros_id = int(visit_ros_id)

        else:
            visit_ros_id = int(request.GET.get('visit_ros_id'))

        visit_ros_obj = VisitROS.objects.get(pk=visit_ros_id)
        visit_detail_obj = visit_ros_obj.visit_detail
        patient_detail_obj = visit_detail_obj.patient_detail

        if not getattr(visit_detail_obj, 'urls', None):
            visit_detail_obj.save()

        if not getattr(patient_detail_obj, 'urls', None):
            patient_detail_obj.save()

        if not getattr(visit_ros_obj, 'urls', None):
            visit_ros_obj.save()

        if request.method == "GET" and request.is_ajax():

            visit_ros_form = VisitROSForm(instance=visit_ros_obj,
                                          auto_id="id_edit_visit_ros" +
                                          str(visit_ros_id) + "_%s")

            variable = RequestContext(
                request, {
                    'user': user,
                    'visit_detail_obj': visit_detail_obj,
                    'visit_ros_obj': visit_ros_obj,
                    'visit_ros_form': visit_ros_form,
                    'patient_detail_obj': visit_detail_obj.patient_detail,
                    'error_message': error_message,
                    'visit_ros_action': 'edit'
                })

            return render_to_response('visit_ros/add_or_edit_form.html',
                                      variable)

        if request.method == "POST" and request.is_ajax():

            visit_ros_form = VisitROSForm(request.POST, instance=visit_ros_obj)

            if visit_ros_form.is_valid():

                saved_visit_ros = visit_ros_form.save(commit=False)
                saved_visit_ros.visit_detail = visit_detail_obj
                saved_visit_ros.save()
                success = True
                error_message = "Visit ROS Edited Successfully"
                redirectUrl = saved_visit_ros.urls['edit']

            else:
                success = False
                error_message = ''' <h4>
                                      Visit Could not be Saved.
                                      Please check the forms for errors
                                    </h4>
                                '''
                errors += aumodelformerrorformatter_factory(visit_ros_form)
                error_message += ('\n' + errors)
                redirectUrl = None

            data = {
                'success': success,
                'error_message': error_message,
                'redirectUrl': redirectUrl
            }
            jsondata = json.dumps(data)
            return HttpResponse(jsondata, content_type='application/json')

        else:
            raise Http404(" Error ! Unsupported Request..")

    except (TypeError, NameError, ValueError, AttributeError, KeyError):
        raise Http404("Error ! Invalid Request Parameters. ")

    except (VisitROS.DoesNotExist):
        raise Http404("Requested VisitROS Does not exist.")
Example #31
0
def guardian_add(request, patient_id = None):

    if request.user:
        user = request.user

        try:
          if patient_id:
            patient_id = int(patient_id)
          else:
            patient_id = int(request.GET.get('patient_id'))

          patient_detail_obj = PatientDetail.objects.get(pk=patient_id)
          patient_detail_obj.save()
          p_urls = patient_detail_obj.urls
          guardian_obj = Guardian(patient_detail=patient_detail_obj)

          if request.method == "GET" and request.is_ajax():
              guardian_form = GuardianForm(instance=guardian_obj, auto_id = False )
              variable = RequestContext(request,
                                        {"user": user,
                                        "patient_detail_obj": patient_detail_obj,
                                        "guardian_form": guardian_form,
                                        "guardian_obj": guardian_obj,
                                        'addUrl': p_urls['add']['guardian']
                                        })
              return render_to_response('guardian/add.html', variable)

          elif request.method == 'POST' and request.is_ajax():
              guardian_form = GuardianForm(request.POST, instance=guardian_obj)
              if guardian_form.is_valid():
                  guardian_object = guardian_form.save()
                  if not getattr(guardian_object,'urls'):
                    guardian_object.generate_urls()                                    
                  success = True
                  error_message = "Guardian Saved Successfully"
                  form_errors = None
                  addData = {
                      "id": guardian_object.id,
                      'pat_id': guardian_object.patient_detail.id,
                      "guardian_name": guardian_object.guardian_name,
                      "relation_to_guardian": guardian_object.relation_to_guardian,
                      "guardian_address": guardian_object.guardian_address,       
                      "guardian_city": guardian_object.guardian_city,       
                      "guardian_state": guardian_object.guardian_state,       
                      "guardian_country": guardian_object.guardian_country,       
                      "guardian_zip_code": guardian_object.guardian_zip_code,       
                      "guardian_phone": guardian_object.guardian_phone,       
                      "next_of_kin": guardian_object.next_of_kin,       
                      "emergency_contact": guardian_object.emergency_contact,       
                      "edit": guardian_object.urls['edit'],
                      "del": guardian_object.urls['del']
                  }
              else:
                  success = False
                  error_message = aumodelformerrorformatter_factory(guardian_form)
                  form_errors = error_message
                  addData = None
              data = {"success": success,
                      "error_message": error_message,
                      "form_errors": form_errors,
                      "addData": addData
                      }
              json = simplejson.dumps(data)
              return HttpResponse(json, content_type='application/json')

          else:
              raise Http404("BadRequest: Unsupported Request Method")

        except TypeError or ValueError or AttributeError:
            raise Http404("BadRequest")
        except PatientDetail.DoesNotExist:
            raise Http404("BadRequest: Patient Data Does Not Exist")          
Example #32
0
def medication_list_add(request, patient_id = None):

    success = True
    error_message = None
    form_errors = None
    addData = None

    if request.user:
        user = request.user
        try:
          if patient_id:
            patient_id = int(patient_id)
          else:
            patient_id  = int(request.GET.get('patient_id'))
          patient_detail_obj = PatientDetail.objects.get(pk=patient_id)
          patient_detail_obj.generate_urls()
          p_urls = patient_detail_obj.urls
          medication_list_obj = MedicationList(patient_detail=patient_detail_obj)
        except TypeError or ValueError or AttributeError:
            raise Http404("BadRequest")
        except PatientDetail.DoesNotExist:
            raise Http404("BadRequest: Patient Data Does Not Exist")

        if request.method == "GET" and request.is_ajax():
            medication_list_form = MedicationListForm( instance=medication_list_obj, auto_id = False )
            variable = RequestContext(request,
                                      {"user": user,
                                        "patient_detail_obj": patient_detail_obj,
                                        "medication_list_form": medication_list_form,
                                        "medication_list_obj": medication_list_obj,
                                        'addUrl' : p_urls['add']['medication_list']
                                        })
            return render_to_response('medication_list/add.html', variable)

        elif request.method == 'POST' and request.is_ajax():
            medication_list_form = MedicationListForm(request.POST, 
                                                      instance=medication_list_obj)
            if medication_list_form.is_valid():
                medication_list_obj = medication_list_form.save()
                medication_list_obj.generate_urls()
                m_urls = medication_list_obj.urls
                print "MedicationList URLS: "
                print m_urls
                patient_detail_obj.generate_urls()
                p_urls = patient_detail_obj.urls

                fields_list = [field for field in medication_list_obj._meta.fields if field.serialize]

                success = True
                error_message = "MedicationList Data Edited Successfully"
                form_errors = None

                addData = {f.name:f.value_to_string(medication_list_obj) for f in fields_list}
                addData['add'] = p_urls['add']['medication_list']
                addData['json']= p_urls['json']['medication_list']
                addData['edit']= m_urls['edit']
                addData['del'] = m_urls['del']

            else:
                success = False
                error_message = aumodelformerrorformatter_factory(medication_list_form)
                form_errors = True
                addData = None

            data = {
                'success': success,
                'error_message': error_message,
                "form_errors": None,
                "addData": addData
            }
            json = simplejson.dumps(data)
            return HttpResponse(json, content_type='application/json')

        else:
            raise Http404("BadRequest: Unsupported Request Method")
    else:
        raise Http404("You need to Login")
Example #33
0
def contact_add(request, patient_id=None):

    if request.user:
        user = request.user

        try:
            if patient_id:
                patient_id = int(patient_id)
            else:
                patient_id = int(request.GET.get('patient_id'))

            patient_detail_obj = PatientDetail.objects.get(pk=patient_id)
            patient_detail_obj.save()
            contact_obj = Contact(patient_detail=patient_detail_obj)

            if not getattr(patient_detail_obj, 'urls', None):
                patient_detail_obj.save()

            if request.method == "GET" and request.is_ajax():
                contact_form = ContactForm(instance=contact_obj, auto_id=False)
                variable = RequestContext(
                    request, {
                        "user": user,
                        "patient_detail_obj": patient_detail_obj,
                        "contact_form": contact_form,
                        "contact_obj": contact_obj,
                    })
                return render_to_response('contact/add.html', variable)

            elif request.method == 'POST' and request.is_ajax():
                contact_form = ContactForm(request.POST, instance=contact_obj)
                if contact_form.is_valid():
                    contact_object = contact_form.save()
                    if not getattr(contact_object, 'urls'):
                        contact_object.generate_urls()
                    success = True
                    error_message = "Contact Saved Successfully"
                    form_errors = None
                    addData = {
                        "id": contact_object.id,
                        'pat_id': contact_object.patient_detail.id,
                        "address_type": contact_object.address_type,
                        "address": contact_object.address,
                        "city": contact_object.city,
                        "state": contact_object.state,
                        "country": contact_object.country,
                        "zip_code": contact_object.zip_code,
                        "edit": contact_object.urls['edit'],
                        "del": contact_object.urls['del'],
                    }
                else:
                    success = False
                    error_message = aumodelformerrorformatter_factory(
                        contact_form)
                    form_errors = error_message
                    addData = None
                data = {
                    "success": success,
                    "error_message": error_message,
                    "form_errors": form_errors,
                    "addData": addData
                }
                json = simplejson.dumps(data)
                return HttpResponse(json, content_type='application/json')

            else:
                raise Http404("BadRequest: Unsupported Request Method")

        except TypeError or ValueError or AttributeError:
            raise Http404("BadRequest")

        except PatientDetail.DoesNotExist:
            raise Http404("BadRequest: Patient Data Does Not Exist")
Example #34
0
def contact_edit(request, contact_id = None):
    print "Received request for editing Contact"
    if request.user:
        user = request.user
        try:
          if contact_id: 
            contact_id = int(contact_id)
          else:
            contact_id = int(request.GET.get('contact_id'))

          contact_obj = Contact.objects.get(pk=contact_id)
          patient_detail_obj = contact_obj.patient_detail

          if not getattr(contact_obj,'urls'):
            contact_obj.generate_urls()

          if request.method == "GET" and request.is_ajax():

              contact_form = ContactForm(instance=contact_obj, auto_id = False)
              variable = RequestContext(request,
                                        {"user": user,
                                          "patient_detail_obj": patient_detail_obj,
                                          "contact_form": contact_form,
                                          "contact_obj": contact_obj,
                                          })
              return render_to_response('contact/edit.html', variable)

          elif request.method == 'POST' and request.is_ajax():
                  contact_form = ContactForm(request.POST, instance=contact_obj)
                  if contact_form.is_valid():
                      #print "now there are " , len(Contact.objects.all()), " Contact objects"
                      contact_object = contact_form.save()
                      #print "now there are " , len(Contact.objects.all()), " Contact objects"                      
                      success = True
                      error_message = "Contact Saved Successfully"
                      form_errors = None
                      data = {"success": success,
                              "error_message": error_message,
                              "form_errors": form_errors,
                              "id": contact_object.id,
                              'pat_id': contact_object.patient_detail.id,
                              "address_type": contact_object.address_type,
                              "address": contact_object.address,
                              "city": contact_object.city,
                              "state": contact_object.state,
                              "country": contact_object.country,
                              "pincode": contact_object.pincode,
                              "edit": contact_object.urls['edit'],
                              "del": contact_object.urls['del']
                              }
                  else:
                      success = False
                      error_message = aumodelformerrorformatter_factory(contact_form)
                      form_errors = error_message
                      data = {'success'       : success,
                              'error_message' : error_message,
                              'form_errors'   : form_errors
                              }
                  jsondata = json.dumps(data)
                  return HttpResponse(jsondata, content_type='application/json')

          else:
              raise Http404("BadRequest: Unsupported Request Method")

        except TypeError or ValueError or AttributeError:
            raise Http404("BadRequest")

        except Contact.DoesNotExist:
            raise Http404("BadRequest: Contact Data Does Not Exist")
Example #35
0
def social_history_add(request, patient_id=None):

    if request.user:
        user = request.user
        try:
            if patient_id:
                patient_id = int(patient_id)
            else:
                patient_id = int(request.GET.get('patient_id'))

            patient_detail_obj = PatientDetail.objects.get(pk=patient_id)
            #patient_detail_obj.generate_urls()

            if not getattr(patient_detail_obj, 'urls', None):
                patient_detail_obj.save()

            social_history_obj = SocialHistory.objects.filter(
                patient_detail=patient_detail_obj)

            if social_history_obj:
                return social_history_edit(request, social_history_obj[0].id)
            else:
                social_history_obj = SocialHistory(
                    patient_detail=patient_detail_obj)

            if request.method == "GET" and request.is_ajax():
                social_history_form = SocialHistoryForm(
                    instance=social_history_obj)

                variable = RequestContext(
                    request, {
                        "user": user,
                        "patient_detail_obj": patient_detail_obj,
                        "social_history_form": social_history_form,
                        "social_history_obj": social_history_obj,
                        'button_label': "Add",
                        "action":
                        patient_detail_obj.urls['add']['social_history'],
                        "addUrl":
                        patient_detail_obj.urls['add']['social_history'],
                        'canDel': False,
                        'editUrl': None,
                        'delUrl': None
                    })
                return render_to_response(
                    'social_history/add_or_edit_form.html', variable)

            elif request.method == 'POST' and request.is_ajax():
                copy_post = request.POST.copy()

                #print "Received POST Request with", request.POST
                #print "Home Occupants received are", copy_post.getlist('home_occupants')

                copy_post['home_occupants'] = ",".join(
                    copy_post.getlist('home_occupants'))
                copy_post['pets'] = ",".join(copy_post.getlist('pets'))

                social_history_form = SocialHistoryForm(
                    copy_post, instance=social_history_obj)

                if social_history_form.is_valid():
                    try:
                        social_history_obj = social_history_form.save()
                        success = True
                        error_message = "SocialHistory Data Added Successfully"
                        form_errors = None
                        addData = {
                            "marital_status":
                            social_history_obj.marital_status,
                            "marital_status_notes":
                            social_history_obj.marital_status_notes,
                            "occupation": social_history_obj.occupation,
                            "occupation_notes":
                            social_history_obj.occupation_notes,
                            "exercise": social_history_obj.exercise,
                            "exercise_notes":
                            social_history_obj.exercise_notes,
                            "diet": social_history_obj.diet,
                            "diet_notes": social_history_obj.diet_notes,
                            "home_occupants":
                            social_history_obj.home_occupants,
                            "home_occupants_notes":
                            social_history_obj.home_occupants_notes,
                            "pets": social_history_obj.pets,
                            "pets_notes": social_history_obj.pets_notes,
                            "alcohol": social_history_obj.alcohol,
                            "alcohol_no": social_history_obj.alcohol_no,
                            "alcohol_notes": social_history_obj.alcohol_notes,
                            "tobacco": social_history_obj.tobacco,
                            "tobacco_no": social_history_obj.tobacco_no,
                            "tobacco_notes": social_history_obj.tobacco_notes,
                            "drug_abuse": social_history_obj.drug_abuse,
                            "drug_abuse_notes":
                            social_history_obj.drug_abuse_notes,
                            "sexual_preference":
                            social_history_obj.sexual_preference,
                            "sexual_preference_notes":
                            social_history_obj.sexual_preference_notes,
                            "current_events": social_history_obj.current_events
                        }

                        if not hasattr(social_history_obj, 'urls'):
                            social_history_obj.save()
                            urls = social_history_obj.urls

                        data = {
                            'success': success,
                            'error_message': error_message,
                            'form_errors': form_errors,
                            'canDel': True,
                            'addUrl': None,
                            "addData": addData,
                            'editUrl': social_history_obj.urls['edit'],
                            'delUrl': social_history_obj.urls['del'],
                        }
                    except (Exception("SocialHistoryExistsError")):
                        data = {
                            'success': False,
                            'error_message':
                            "Social History Already Exists ! Cannot add More",
                            'form_errors': error_message,
                            'addData': None
                        }
                else:
                    error_message = aumodelformerrorformatter_factory(
                        social_history_form)
                    data = {
                        'success': False,
                        'error_message': error_message,
                        'form_errors': error_message,
                        'addData': None
                    }
                jsondata = json.dumps(data)
                return HttpResponse(jsondata, content_type='application/json')

            else:
                raise Http404(
                    "BadRequest: Unsupported Request Method. AJAX status is:: "
                    + unicode(request.is_ajax()))

        except TypeError or ValueError or AttributeError:
            raise Http404("BadRequest")

        except (PatientDetail.DoesNotExist):
            raise Http404("BadRequest: Patient Data Does Not Exist")
Example #36
0
def immunisation_edit(request, immunisation_id = None):

    if request.user:
        user = request.user
        try:
          immunisation_id = int(immunisation_id)
          immunisation_obj = Immunisation.objects.get(pk= immunisation_id)
          patient_detail_obj = immunisation_obj.patient_detail
          if not getattr(immunisation_obj, 'urls', None):
            immunisation_obj.save()
          #immunisation_obj.generate_urls()
          m_urls = immunisation_obj.urls
          if not getattr(patient_detail_obj, 'urls', None):
            patient_detail_obj.save()
          

        except TypeError or ValueError or AttributeError:
                raise Http404("BadRequest")
        except Immunisation.DoesNotExist:
            raise Http404("BadRequest: Patient Data Does Not Exist")

        if request.method == "GET" and request.is_ajax():
            print "Received request for Editing Immunisation"
            #print "Immunisation URLS is, ", m_urls
            immunisation_form = ImmunisationForm(instance=immunisation_obj, auto_id = False )
            variable = RequestContext(request,
                                      { "user": user,
                                        "patient_detail_obj"  : immunisation_obj.patient_detail,
                                        "immunisation_form": immunisation_form,
                                        "immunisation_obj" : immunisation_obj,
                                        'editUrl'            : m_urls['edit'],
                                        'delUrl'             : m_urls['del'],
                                      })
            return render_to_response('immunisation/edit.html', variable)

        elif request.method == 'POST' and request.is_ajax():
            immunisation_form = ImmunisationForm(request.POST, 
                                                           instance=immunisation_obj)

            if immunisation_form.is_valid():
                immunisation_obj = immunisation_form.save()

                #immunisation_obj.generate_urls()
                m_urls = immunisation_obj.urls

                #immunisation_obj.patient_detail.generate_urls()
                p_urls = immunisation_obj.patient_detail.urls

                fields_list = [field for field in immunisation_obj._meta.fields if field.serialize]

                success = True
                error_message = "Immunisation Data Edited Successfully"
                form_errors = None

                addData = {f.name:f.value_to_string(immunisation_obj) for f in fields_list}
                addData['add'] = p_urls['add']['immunisation']
                addData['json']= p_urls['json']['immunisation']
                addData['edit']= m_urls['edit']
                addData['del'] = m_urls['del']

            else:
                success = False
                error_message = aumodelformerrorformatter_factory(immunisation_form)
                form_errors = True
                addData = None

            data = {
                'success': success,
                'error_message': error_message,
                "form_errors": None,
                "addData": addData
            }
            json = simplejson.dumps(data)
            return HttpResponse(json, content_type='application/json')

        else:
            raise Http404("BadRequest: Unsupported Request Method")
    else:
        raise Http404("You need to Login")
Example #37
0
def allergy_list_edit(request, allergy_list_id=None):

    if request.user:
        user = request.user
        try:
            allergy_list_id = int(allergy_list_id)
            allergy_list_obj = Allergy.objects.get(pk=allergy_list_id)
            allergy_list_obj.generate_urls()
            m_urls = allergy_list_obj.urls

        except TypeError or ValueError or AttributeError:
            raise Http404("BadRequest")
        except Allergy.DoesNotExist:
            raise Http404("BadRequest: Patient Data Does Not Exist")

        if request.method == "GET" and request.is_ajax():
            print "Received request for Editing Allergy"
            print "Allergy URLS is, ", m_urls
            allergy_list_form = AllergyForm(instance=allergy_list_obj,
                                            auto_id=False)
            variable = RequestContext(
                request, {
                    "user": user,
                    "patient_detail_obj": allergy_list_obj.patient_detail,
                    "allergy_list_form": allergy_list_form,
                    "allergy_list_obj": allergy_list_obj,
                    'editUrl': m_urls['edit'],
                    'delUrl': m_urls['del'],
                })
            return render_to_response('allergy_list/edit.html', variable)

        elif request.method == 'POST' and request.is_ajax():
            allergy_list_form = AllergyForm(request.POST,
                                            instance=allergy_list_obj)

            if allergy_list_form.is_valid():
                allergy_list_obj = allergy_list_form.save()

                allergy_list_obj.generate_urls()
                m_urls = allergy_list_obj.urls

                allergy_list_obj.patient_detail.generate_urls()
                p_urls = allergy_list_obj.patient_detail.urls

                fields_list = [
                    field for field in allergy_list_obj._meta.fields
                    if field.serialize
                ]

                success = True
                error_message = "Allergy Data Edited Successfully"
                form_errors = None

                addData = {
                    f.name: f.value_to_string(allergy_list_obj)
                    for f in fields_list
                }
                addData['add'] = p_urls['add']['allergy_list']
                addData['json'] = p_urls['json']['allergy_list']
                addData['edit'] = m_urls['edit']
                addData['del'] = m_urls['del']

            else:
                success = False
                error_message = aumodelformerrorformatter_factory(
                    allergy_list_form)
                form_errors = True
                addData = None

            data = {
                'success': success,
                'error_message': error_message,
                "form_errors": None,
                "addData": addData
            }
            jsondata = json.dumps(data)
            return HttpResponse(jsondata, content_type='application/json')

        else:
            raise Http404("BadRequest: Unsupported Request Method")
    else:
        raise Http404("You need to Login")
Example #38
0
def visit_detail_add(request, patient_id = None, nature='initial'):

    """ 
        Adds a new VisitDetail Object
        Takes request and id of PatientDetail object
        the nature of visit is defaulted to 'initial'.
        Implementation of separate visits for 'initial' , 'fu' etc.. can be implemented later.
    """
    print "Received request to add VisitDetail"

    user = request.user
    success = False
    error_message = None
    form_errors = []

    try:
        if patient_id:
          patient_id = int(patient_id)
        else:
          patient_id = int(request.GET.get('patient_id'))

        patient_detail_obj = PatientDetail.objects.get(pk=patient_id)

        if not getattr(patient_detail_obj, 'urls', None):
          patient_detail_obj.save()

        if not patient_detail_obj.can_add_new_visit(patient_detail_obj):
            error_message = '''
                              Cannot add new visit now.
                              There may be a active admission / visit. 
                              Please close that and try again
                            '''
            raise Http404(error_message)

        else:
            print patient_detail_obj, " can add VisitDetail"
            visit_detail_obj = VisitDetail(patient_detail=patient_detail_obj)

            if request.method == "GET" and request.is_ajax():

                if nature == 'initial':
                    visit_detail_form = VisitDetailForm(initial={'visit_date': datetime.now().date().isoformat(),
                                                                'consult_nature': 'initial',
                                                                'status': 'examining',
                                                                'op_surgeon': user
                                                                },
                                                        instance = visit_detail_obj,
                                                        auto_id = "id_new_visit_detail" + str(id) + "_%s")

                    if not getattr(patient_detail_obj, 'urls' , None):
                      patient_detail_obj.save()

                    variable = RequestContext(
                        request, {
                            'user': user,
                            'visit_detail_obj': visit_detail_obj,
                            'visit_detail_form': visit_detail_form,
                            'patient_detail_obj': patient_detail_obj,
                            'error_message': error_message,
                            'success': success,
                            'form_action':'add'
                        })
                    return render_to_response('visit_detail/add_working.html', variable)

                elif nature == 'fu':
                    # TODO
                    pass

            elif request.method == "POST" and request.is_ajax():
                print "Received request to add visit..."
                visit_detail_form = VisitDetailForm(request.POST, instance=visit_detail_obj)

                if visit_detail_form.is_valid():
                    saved_visit = visit_detail_form.save(commit=False)
                    saved_visit.op_surgeon = user.staff
                    saved_visit.save()
                    success = True
                    error_message = "Visit Added Successfully"
                    returnData = {'id': 'EDIT_ACTIVE_VISIT_'+ str(saved_visit.id), 
                                  'title': saved_visit.visit_date.date().isoformat(), 
                                  'url': saved_visit.urls['edit']
                                }

                else:
                    error_message = ''' <h4>
                                          Visit Could not be Saved.
                                          Please check the forms for errors
                                        </h4>
                                    '''
                    errors = aumodelformerrorformatter_factory(visit_detail_form) + '\n'
                    returnData = None

                data = {'success': success, 
                        'error_message': error_message, 
                        'returnData' : returnData 
                      }
                jsondata = json.dumps(data)
                return HttpResponse(jsondata, content_type='application/json')

            else:
                raise Http404(" Error ! Unsupported Request..")

    except (TypeError, NameError, ValueError, AttributeError, KeyError):
        raise Http404("Error ! Invalid Request Parameters. ")

    except (PatientDetail.DoesNotExist):
        raise Http404("Requested Patient Does not exist.")
Example #39
0
def surgical_history_add(request, patient_id=None):

    success = True
    error_message = None
    form_errors = None
    addData = None

    if request.user:
        user = request.user
        try:
            if patient_id:
                patient_id = int(patient_id)
            else:
                patient_id = int(request.GET.get('patient_id'))
            patient_detail_obj = PatientDetail.objects.get(pk=patient_id)
            #patient_detail_obj.generate_urls()
            if not getattr(patient_detail_obj, 'urls', None):
                patient_detail_obj.save()
            p_urls = patient_detail_obj.urls
            surgical_history_obj = SurgicalHistory(
                patient_detail=patient_detail_obj)
        except TypeError or ValueError or AttributeError:
            raise Http404("BadRequest")
        except PatientDetail.DoesNotExist:
            raise Http404("BadRequest: Patient Data Does Not Exist")

        if request.method == "GET" and request.is_ajax():
            surgical_history_form = SurgicalHistoryForm(
                instance=surgical_history_obj, auto_id=False)
            variable = RequestContext(
                request, {
                    "user": user,
                    "patient_detail_obj": patient_detail_obj,
                    "surgical_history_form": surgical_history_form,
                    "surgical_history_obj": surgical_history_obj,
                    'addUrl': p_urls['add']['surgical_history']
                })
            return render_to_response('surgical_history/add.html', variable)

        elif request.method == 'POST' and request.is_ajax():
            surgical_history_form = SurgicalHistoryForm(
                request.POST, instance=surgical_history_obj)
            if surgical_history_form.is_valid():
                surgical_history_obj = surgical_history_form.save()
                #surgical_history_obj.generate_urls()
                m_urls = surgical_history_obj.urls
                print "Surgical History URLS: "
                print m_urls
                #patient_detail_obj.generate_urls()
                p_urls = patient_detail_obj.urls

                fields_list = [
                    field for field in surgical_history_obj._meta.fields
                    if field.serialize
                ]

                success = True
                error_message = "Surgical History Data Edited Successfully"
                form_errors = None

                addData = {
                    f.name: f.value_to_string(surgical_history_obj)
                    for f in fields_list
                }
                addData['add'] = p_urls['add']['surgical_history']
                addData['json'] = p_urls['json']['surgical_history']
                addData['edit'] = m_urls['edit']
                addData['del'] = m_urls['del']

            else:
                success = False
                error_message = aumodelformerrorformatter_factory(
                    surgical_history_form)
                form_errors = True
                addData = None

            data = {
                'success': success,
                'error_message': error_message,
                "form_errors": None,
                "addData": addData
            }
            jsondata = json.dumps(data)
            return HttpResponse(jsondata, content_type='application/json')

        else:
            raise Http404("BadRequest: Unsupported Request Method")
    else:
        raise Http404("You need to Login")
Example #40
0
def visit_detail_edit(request, visit_id = None):

    user = request.user
    error_message = None    
    success = False

    try:
        if visit_id:
          visit_id = int(visit_id)
        else:
          visit_id = int(request.GET.get('visit_id'))

        visit_detail_obj = VisitDetail.objects.get(pk=visit_id)
        patient_detail_obj = visit_detail_obj.patient_detail

        form_field_auto_id = 'id_edit_visit_detail_' + str(visit_id)
        data = {'visit_date': visit_detail_obj.visit_date.date().isoformat()}

        if not getattr(visit_detail_obj,'urls',None):
          visit_detail_obj.save()
        if not getattr(patient_detail_obj, 'urls', None):
          patient_detail_obj.save()

        if request.method == "GET" and request.is_ajax():

            visit_detail_form = VisitDetailForm(initial=data, 
                                                instance=visit_detail_obj, 
                                                auto_id=form_field_auto_id + "_%s"
                                               )

            variable = RequestContext(request, 
                                      {'user': user,
                                        'visit_detail_obj': visit_detail_obj,
                                        'visit_detail_form': visit_detail_form,
                                        'patient_detail_obj': patient_detail_obj,
                                        'error_message': error_message,
                                        'form_action':'edit'
                                      })
            return render_to_response('visit_detail/edit.html', variable)

        elif request.method == "POST" and request.is_ajax():

            visit_detail_form = VisitDetailForm(request.POST, instance=visit_detail_obj)

            if visit_detail_form.is_valid():
                saved_visit = visit_detail_form.save(commit=False)
                saved_visit.op_surgeon = user.staff
                saved_visit.save()
                success = True
                error_message = "Visit Edited Successfully"

            else:
                error_message = ''' <h4>
                                        Visit Could not be Saved.
                                        Please check the forms for errors
                                    </h4>
                                '''
                errors = aumodelformerrorformatter_factory(visit_detail_form) + '\n'
                error_message += ('\n' + errors)

            data = {'success': success,
                    'error_message': error_message
                    }
            jsondata = json.dumps(data)
            return HttpResponse(jsondata, content_type='application/json')

        else:
            raise Http404(" Error ! Unsupported Request..")          

    #except (TypeError, NameError, ValueError, AttributeError, KeyError):
        #raise Http404("Error ! Invalid Request Parameters. ")

    except (VisitDetail.DoesNotExist):
        raise Http404("Requested Patient Does not exist.")    
Example #41
0
def contact_add(request, patient_id = None):

    if request.user:
        user = request.user

        try:
          if patient_id:
            patient_id = int(patient_id)
          else:
            patient_id = int(request.GET.get('patient_id'))

          patient_detail_obj = PatientDetail.objects.get(pk=patient_id)
          patient_detail_obj.save()
          contact_obj = Contact(patient_detail=patient_detail_obj)

          if not getattr(patient_detail_obj, 'urls', None):
            patient_detail_obj.save()

          if request.method == "GET" and request.is_ajax():
              contact_form = ContactForm(instance=contact_obj, auto_id = False)
              variable = RequestContext(request,
                                        {"user": user,
                                        "patient_detail_obj": patient_detail_obj,
                                        "contact_form": contact_form,
                                        "contact_obj": contact_obj,
                                        })
              return render_to_response('contact/add.html', variable)

          elif request.method == 'POST' and request.is_ajax():
              contact_form = ContactForm(request.POST, instance=contact_obj)
              if contact_form.is_valid():
                  contact_object = contact_form.save()
                  if not getattr(contact_object,'urls'):
                    contact_object.generate_urls()
                  success = True
                  error_message = "Contact Saved Successfully"
                  form_errors = None
                  addData = {
                      "id": contact_object.id,
                      'pat_id': contact_object.patient_detail.id,
                      "address_type": contact_object.address_type,
                      "address": contact_object.address,
                      "city": contact_object.city,
                      "state": contact_object.state,
                      "country": contact_object.country,
                      "pincode": contact_object.pincode,
                      "edit": contact_object.urls['edit'],
                      "del": contact_object.urls['del'],
                  }
              else:
                  success = False
                  error_message = aumodelformerrorformatter_factory(contact_form)
                  form_errors = error_message
                  addData = None
              data = {"success": success,
                      "error_message": error_message,
                      "form_errors": form_errors,
                      "addData": addData
                      }
              jsondata = json.dumps(data)
              return HttpResponse(jsondata, content_type='application/json')

          else:
              raise Http404("BadRequest: Unsupported Request Method")

        except TypeError or ValueError or AttributeError:
            raise Http404("BadRequest")

        except PatientDetail.DoesNotExist:
            raise Http404("BadRequest: Patient Data Does Not Exist")          
Example #42
0
def allergy_list_edit(request, allergy_list_id = None):

    if request.user:
        user = request.user
        try:
          allergy_list_id = int(allergy_list_id)
          allergy_list_obj = Allergy.objects.get(pk= allergy_list_id)
          allergy_list_obj.generate_urls()
          m_urls = allergy_list_obj.urls

        except TypeError or ValueError or AttributeError:
                raise Http404("BadRequest")
        except Allergy.DoesNotExist:
            raise Http404("BadRequest: Patient Data Does Not Exist")

        if request.method == "GET" and request.is_ajax():
            print "Received request for Editing Allergy"
            print "Allergy URLS is, ", m_urls
            allergy_list_form = AllergyForm(instance=allergy_list_obj, auto_id = False )
            variable = RequestContext(request,
                                      { "user": user,
                                        "patient_detail_obj"  : allergy_list_obj.patient_detail,
                                        "allergy_list_form": allergy_list_form,
                                        "allergy_list_obj" : allergy_list_obj,
                                        'editUrl'            : m_urls['edit'],
                                        'delUrl'             : m_urls['del'],
                                      })
            return render_to_response('allergy_list/edit.html', variable)

        elif request.method == 'POST' and request.is_ajax():
            allergy_list_form = AllergyForm(request.POST, 
                                                           instance=allergy_list_obj)

            if allergy_list_form.is_valid():
                allergy_list_obj = allergy_list_form.save()

                allergy_list_obj.generate_urls()
                m_urls = allergy_list_obj.urls

                allergy_list_obj.patient_detail.generate_urls()
                p_urls = allergy_list_obj.patient_detail.urls

                fields_list = [field for field in allergy_list_obj._meta.fields if field.serialize]

                success = True
                error_message = "Allergy Data Edited Successfully"
                form_errors = None

                addData = {f.name:f.value_to_string(allergy_list_obj) for f in fields_list}
                addData['add'] = p_urls['add']['allergy_list']
                addData['json']= p_urls['json']['allergy_list']
                addData['edit']= m_urls['edit']
                addData['del'] = m_urls['del']

            else:
                success = False
                error_message = aumodelformerrorformatter_factory(allergy_list_form)
                form_errors = True
                addData = None

            data = {
                'success': success,
                'error_message': error_message,
                "form_errors": None,
                "addData": addData
            }
            jsondata = json.dumps(data)
            return HttpResponse(jsondata, content_type='application/json')

        else:
            raise Http404("BadRequest: Unsupported Request Method")
    else:
        raise Http404("You need to Login")