コード例 #1
0
def add(username):
    form = PatientForm()
    if form.validate_on_submit():
        patient = Patient(
            name=form.name.data,
            age=form.age.data,
            hospital=form.hospital.data,
            mrn=form.mrn.data,
            height=form.height.data,
            weight=form.weight.data,
            user_id=User.query.filter_by(username=username).first().id)
        patient.set_bmi()
        patient.set_bsa()
        patient.set_ecoli()
        patient.set_vincristine()
        patient.set_daunorubicin()
        patient.set_methotrexate()
        patient.set_pegaspargase()
        patient.set_prednisolone()
        patient.set_cotrimoxazole()
        db.session.add(patient)
        db.session.commit()
        flash('Patient added!')
        return redirect(url_for('edit', username=username, name=patient.name))
    return render_template('patient.html', title='Patient', form=form)
コード例 #2
0
ファイル: views.py プロジェクト: rmoorman/rva-screening
def new_patient():
    """Display the form for a new patient, and create a new patient after submission."""
    form = PatientForm()

    if form.validate_on_submit():
        patient = Patient()
        update_patient(patient, form, request.files)
        # If the patient was created by a patient user, link the new patient to the
        # user account
        if current_user.is_patient_user():
            current_user.patient = patient
        db.session.add(patient)
        db.session.commit()
        return redirect(url_for('screener.patient_details', id=patient.id))
    else:
        index_search = {}
        if 'first_name' in session and session['first_name']:
            index_search['first_name'] = session['first_name']
        if 'last_name' in session and session['last_name']:
            index_search['last_name'] = session['last_name']
        if 'dob' in session and session['dob']:
            index_search['dob'] = 'test'
        if 'ssn' in session and session['ssn']:
            index_search['ssn'] = session['ssn']

        # Delete empty rows at end of many-to-one tables
        remove_blank_rows(form)

        return render_template('patient_details.html', patient={}, form=form, index_search=index_search)
コード例 #3
0
def new_patient():
    """Display the form for a new patient, and create a new patient after submission."""
    form = PatientForm()

    if form.validate_on_submit():
        patient = Patient()
        update_patient(patient, form, request.files)
        # If the patient was created by a patient user, link the new patient to the
        # user account
        if current_user.is_patient_user():
            current_user.patient = patient
        db.session.add(patient)
        db.session.commit()
        return redirect(url_for('screener.patient_details', id=patient.id))
    else:
        index_search = {}
        if 'first_name' in session and session['first_name']:
            index_search['first_name'] = session['first_name']
        if 'last_name' in session and session['last_name']:
            index_search['last_name'] = session['last_name']
        if 'dob' in session and session['dob']:
            index_search['dob'] = 'test'
        if 'ssn' in session and session['ssn']:
            index_search['ssn'] = session['ssn']

        # Delete empty rows at end of many-to-one tables
        remove_blank_rows(form)

        return render_template('patient_details.html',
                               patient={},
                               form=form,
                               index_search=index_search)
コード例 #4
0
def create_patient(request):
    instance = Patient()
    form = PatientForm(request.POST or None, instance=instance)
    if request.POST and form.is_valid():
        patient = form.save(commit=False)
        patient.author = UserProfile.objects.by_user(request.user)
        patient.save()
        return HttpResponseRedirect(reverse('patients'))
    return render(request, 'create_form.html', {'form': form})
コード例 #5
0
def edit_patient(request, pid):
    instance = Patient() if not pid else get_object_or_404(Patient, pk=pid)
    form = PatientForm(request.POST or None, instance=instance)
    if request.POST:
        if 'delete' in request.POST:
            Patient.objects.delete(pid)
            return HttpResponseRedirect(reverse('patients'))
        elif 'save' in request.POST and form.is_valid():
            form.save()
            return HttpResponseRedirect(reverse('patients'))
    return render(request, 'edit_form.html', {'form': form})
コード例 #6
0
ファイル: views.py プロジェクト: bpgriner01/rva-screening
def new_patient():
    """Display the form for a new patient, and create a new patient after submission."""
    form = PatientForm()

    if form.validate_on_submit():
        patient = Patient()
        update_patient(patient, form, request.files)
        db.session.add(patient)
        db.session.commit()
        return redirect(url_for('screener.patient_details', id=patient.id))
    else:
        return render_template('patient_details.html', patient={}, form=form)
コード例 #7
0
def patient_form():
    form = PatientForm()
    if form.validate_on_submit():
        c = db.connection.cursor()
        data = c.execute(
            "INSERT INTO patient (first_name, last_name, email, address, phone_no, occuptation, added_by) "
            "VALUES (%s, %s, %s, %s, %s, %s, %s)",
            (form.first_name.data, form.last_name.data, form.email.data,
             form.address.data, form.phone_no.data, form.occupation.data,
             int(session['user_id'])))
        db.connection.commit()
        #db.connection.close()
        flash("Patient created with name {}".format(form.first_name.data))
        return redirect(url_for('home'))
    return render_template('patient_form.html', title='New Patient', form=form)
コード例 #8
0
def export_csv(patient_id):
    """Create a CSV of a patient's information."""
    check_patient_permission(patient_id)
    patient = Patient.query.get(patient_id)
    form = PatientForm(obj=patient)
    fieldnames = []
    data = {}
    for field in form:
        if field.name not in ('document_images', 'csrf_token'):
            if field.type == 'FieldList':
                for entry in field.entries:
                    for subfield in entry:
                        fieldnames.append(subfield.name)
                        data[subfield.name] = subfield.data
            else:
                fieldnames.append(field.name)
                data[field.name] = field.data

    filename = 'zipscreen_patient_' + str(patient_id) + '.csv'
    csvf = StringIO()
    writer = csv.DictWriter(csvf, fieldnames=fieldnames)
    writer.writeheader()
    writer.writerow(data)
    csvf.seek(0)
    return send_file(csvf,
                     mimetype="text/csv",
                     attachment_filename=filename,
                     as_attachment=True)
コード例 #9
0
ファイル: views.py プロジェクト: mishmosh/rva-screening
def new_patient():
    """Display the form for a new patient, and create a new patient after submission."""
    form = PatientForm()

    if form.validate_on_submit():
        patient = Patient()
        update_patient(patient, form, request.files)
        # If the patient was created by a patient user, link the new patient to the
        # user account
        if current_user.is_patient_user():
            current_user.patient = patient
        db.session.add(patient)
        db.session.commit()
        return redirect(url_for('screener.patient_details', id=patient.id))
    else:
        return render_template('patient_details.html', patient={}, form=form)
コード例 #10
0
def edit_patient_form(id):
    c = db.connection.cursor()
    data = c.execute("select * from patient where id={}".format(id))
    data = c.fetchone()
    form = PatientForm(formdata=request.form, obj=data)
    if data:
        if form.validate_on_submit():
            c.execute(
                "update patient set first_name=%s, last_name=%s, email=%s, address=%s, phone_no=%s,"
                " occuptation=%s where id={}".format(int(id)),
                (form.first_name.data, form.last_name.data, form.email.data,
                 form.address.data, form.phone_no.data, form.occupation.data))
            db.connection.commit()
            c.close()
            flash("edit successful for patient {}".format(id))
            return redirect(url_for('view_patient'))
    return render_template('edit_patient_form.html',
                           title="edit patient",
                           form=form,
                           data=data)
コード例 #11
0
ファイル: views.py プロジェクト: bpgriner01/rva-screening
def patient_details(id):
    """Display the full patient details form for an existing user."""
    patient = Patient.query.get(id)
    form = PatientForm(obj=patient)

    if request.method == 'POST' and form.validate_on_submit():
        update_patient(patient, form, request.files)
        db.session.commit()
        patient.update_stats()
        return render_template(
            'patient_details.html',
            patient=patient,
            form=form,
            save_message=True
        )
    else:
        if request.method == 'GET':
            # If this patient has a referral to the current organization in SENT status,
            # update it to RECEIVED
            sent_referrals = [
                r for r in patient.referrals
                if r.to_service_id == current_user.service_id
                and r.in_sent_status()
            ]
            for referral in sent_referrals:
                referral.mark_received()
            if sent_referrals:
                db.session.commit()

            patient.update_stats()

        return render_template(
            'patient_details.html',
            patient=patient,
            form=form,
            save_message=False
        )
コード例 #12
0
ファイル: view.py プロジェクト: oloyedeolad/health_task
def create_patient():
    """
      Create Patient
    """

    form = PatientForm(request.form)
    if request.method == 'GET':
        patients = Patient.query.all()
        print(patients)
        table = data_in_table(patients)
        return render_template('hmo/claim.html', form=form, table=table), 200
    if request.method == 'POST' and form.validate():
        patient = Patient(name=form.data['name'],
                          age=form.data['age'],
                          gender=form.data['gender'],
                          diagnosis=form.data['diagnosis'],
                          hmo_provider=form.data['hmo_provider'])
        database.session.add(patient)
        database.session.commit()
        flash("Patient creation successful")
        patients = Patient.query.all()
        table = data_in_table(patients)
        return render_template('hmo/claim.html', form=form, table=table), 201
    return "Bad response", 400
コード例 #13
0
def export_pdf(patient_id):
    """Create a PDF of a patient's information."""
    check_patient_permission(patient_id)
    patient = Patient.query.get(patient_id)
    form = PatientForm(obj=patient)
    filename = 'zipscreen_patient_' + str(patient_id) + '.pdf'
    html = render_template('pdf_export.html',
                           patient=patient,
                           form=form,
                           is_production=current_app.config['IS_PRODUCTION'])
    pdf = StringIO()
    pisa.CreatePDF(StringIO(html.encode('utf-8')), pdf)
    pdf.seek(0)
    return send_file(pdf,
                     mimetype="application/pdf",
                     attachment_filename=filename,
                     as_attachment=True)
コード例 #14
0
def patient_new(request):
    if request.method == "POST":
        form = PatientForm(request.POST)
        if form.is_valid():
            data = form.save(commit=False)
            data.save()
            messages.success(request, "Successfully created patient")
            patient_id = data.patient_id
            return redirect("patient_detail", patient_id)
    else:
        form = PatientForm()
    return render(request, 'patients/edit.html', {'form': form})
コード例 #15
0
def patient_edit(request, pk):
    patient = get_object_or_404(Patient, pk=pk)

    if request.method == "POST":
        form = PatientForm(request.POST, instance=patient)
        if form.is_valid():
            data = form.save(commit=False)
            data.save()
            messages.success(request, "Successfully updated patient")
            return redirect("patient_detail", patient.patient_id)
    else:
        form = PatientForm(instance=patient)
    return render(request, 'patients/edit.html', {'form': form})
コード例 #16
0
def patient_details(id):
    """Display the full patient details form for an existing user."""
    check_patient_permission(id)
    patient = Patient.query.get(id)
    form = (get_unsaved_form(request, patient, 'patient_details', PatientForm)
            or PatientForm(obj=patient))

    if request.method == 'POST' and form.validate_on_submit():
        update_patient(patient, form, request.files)
        db.session.commit()
        patient.update_stats()
        return render_template('patient_details.html',
                               patient=patient,
                               form=form,
                               save_message=True)

    # Delete empty rows at end of many-to-one tables
    remove_blank_rows(form)

    return render_template('patient_details.html',
                           patient=patient,
                           form=form,
                           save_message=False)
コード例 #17
0
ファイル: routes.py プロジェクト: chicodespons/ambutransgit
def form():
    patientform = PatientForm()

    return render_template('form.html', patientform=patientform)
コード例 #18
0
def patient_print(patient_id):
    """Format the patient details page for printing."""
    check_patient_permission(patient_id)
    patient = Patient.query.get(patient_id)
    form = PatientForm(obj=patient)
    return render_template('patient_details.html', patient=patient, form=form)