def create_new_participant(): """ Creates a new user, generates a password and keys, pushes data to s3 and user database, adds user to the study they are supposed to be attached to and returns a string containing password and patient id. """ study_id = request.values['study_id'] patient_id, password = Participant.create_with_password(study_id=study_id) participant = Participant.objects.get(patient_id=patient_id) study = Study.objects.get(id=study_id) add_fields_and_interventions(participant, study) # Create an empty file on S3 indicating that this user exists study_object_id = Study.objects.filter(pk=study_id).values_list( 'object_id', flat=True).get() s3_upload(patient_id, b"", study_object_id) create_client_key_pair(patient_id, study_object_id) repopulate_all_survey_scheduled_events(study, participant) response_string = 'Created a new patient\npatient_id: {:s}\npassword: {:s}'.format( patient_id, password) flash(response_string, 'success') return redirect('/view_study/{:s}'.format(study_id))
def participant_credential_generator(study_id, number_of_new_patients, desired_filename): si = StreamingBytesIO() filewriter = writer(si) filewriter.writerow(['Patient ID', "Registration password"]) study_object_id = Study.objects.filter(pk=study_id).values_list('object_id', flat=True).get() study_name = Study.objects.filter(pk=study_id).values_list('name', flat=True).get() for _ in xrange(number_of_new_patients): patient_id, password = Participant.create_with_password(study_id=study_id) # Creates an empty file on s3 indicating that this user exists s3_upload(construct_s3_raw_data_path(study_object_id, patient_id), "", study_object_id, raw_path=True) filewriter.writerow([patient_id, password]) yield si.getvalue() si.empty()
def csv_generator(study_id, number_of_new_patients): si = StreamingStringsIO() filewriter = writer(si) filewriter.writerow(['Patient ID', "Registration password"]) study_object_id = Study.objects.filter(pk=study_id).values_list( 'object_id', flat=True).get() for _ in range(number_of_new_patients): patient_id, password = Participant.create_with_password( study_id=study_id) # Creates an empty file on s3 indicating that this user exists s3_upload(patient_id, "", study_object_id) create_client_key_pair(patient_id, study_object_id) filewriter.writerow([patient_id, password]) yield si.getvalue() si.empty()
def create_new_patient(): """ Creates a new user, generates a password and keys, pushes data to s3 and user database, adds user to the study they are supposed to be attached to and returns a string containing password and patient id. """ study_id = request.values['study_id'] patient_id, password = Participant.create_with_password(study_id=study_id) # Create an empty file on S3 indicating that this user exists study_object_id = Study.objects.filter(pk=study_id).values_list('object_id', flat=True).get() s3_upload(construct_s3_raw_data_path(study_object_id, patient_id), "", study_object_id, raw_path=True) response_string = 'Created a new patient\npatient_id: {:s}\npassword: {:s}'.format(patient_id, password) flash(response_string, 'success') return redirect('/view_study/{:s}'.format(study_id))
def participant_csv_generator(study_id, number_of_new_patients): study = Study.objects.get(pk=study_id) si = StreamingStringsIO() filewriter = writer(si) filewriter.writerow(['Patient ID', "Registration password"]) for _ in range(number_of_new_patients): patient_id, password = Participant.create_with_password( study_id=study_id) participant = Participant.objects.get(patient_id=patient_id) add_fields_and_interventions(participant, Study.objects.get(id=study_id)) # Creates an empty file on s3 indicating that this user exists s3_upload(patient_id, b"", study.object_id) create_client_key_pair(patient_id, study.object_id) repopulate_all_survey_scheduled_events(study, participant) filewriter.writerow([patient_id, password]) yield si.getvalue() si.empty()