Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- require 'csv'
- require 'progress_bar'
- clinic_admins = AdminUser.hc_clinic_admins;
- p_bar = ProgressBar.new(clinic_admins.count)
- CSV.open('tmp/CS-1324.csv', 'w') do |csv|
- csv << ['Clinic ID','Account Name','User ID','Login Email','Role (practitioner/administrator)','Has clinic admin permissions',
- 'Total # of patients created','Total # of assessments administered','Last patient creation date','Last assessment administration date']
- clinic_admins.find_each do |clinic_admin|
- p_bar.increment!
- practitioners = [clinic_admin] + ::Health::User.role_researcher.where(belongs_to_admin_user_id: clinic_admin.id).to_a
- practitioners.each_with_index do |p, index|
- p_bar.puts("#{index+1}/#{practitioners.count}")
- role = (p.id == clinic_admin.id) ? 'administrator' : 'practitioner'
- adm_perm = (p.id == clinic_admin.id || p.has_clinic_admin_permissions?) ? 'YES' : 'NO'
- row = [clinic_admin.id, p.full_name, p.id, p.dmail, role, adm_perm]
- patients = p.admin_users.role_user
- reports = BatchSession.status_complete.where(admin_user_id: patients.ids)
- row += [patients.count, reports.count, patients.maximum(:created_at), reports.maximum(:completed_at)]
- csv << row
- end
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement