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)
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)
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})
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})
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)
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)
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)
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)
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)
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 )
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
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)
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})
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})
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)
def form(): patientform = PatientForm() return render_template('form.html', patientform=patientform)
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)