void MainWindow::makeTree(int start_year, int end_year, QString CSV_type){ int count=0; if(CSV_type=="Teaching"){ ui->treeWidget->headerItem()->setText(0,""); ui->treeWidget->headerItem()->setText(1,"Academic Year"); ui->treeWidget->headerItem()->setText(2,"Hours"); ui->treeWidget->headerItem()->setText(3,"Students"); } else if(CSV_type=="Presentations"){ ui->treeWidget->headerItem()->setText(0,""); ui->treeWidget->headerItem()->setText(1,"Academic Year"); ui->treeWidget->headerItem()->setText(2,"# of Presentations"); ui->treeWidget->headerItem()->setText(3,""); } else if(CSV_type=="Publications"){ ui->treeWidget->headerItem()->setText(0,""); ui->treeWidget->headerItem()->setText(1,"Type of Publication "); ui->treeWidget->headerItem()->setText(2,"Total"); ui->treeWidget->headerItem()->setText(3,""); } else if (CSV_type == "Grants"){ ui->treeWidget->headerItem()->setText(0,""); ui->treeWidget->headerItem()->setText(1,"Funding or Grant Type"); ui->treeWidget->headerItem()->setText(2,"Total #"); ui->treeWidget->headerItem()->setText(3,"Total $"); } //get data for vectors Summary* summary = new Summary(); QVector<double> Tier_1_Tot, Tier_2_Tot, Tier_3_Tot; QVector<QString> Tier_1_Fields, Tier_2_Fields, Tier_3_Fields; QString faculty=ui->lineEdit->text(); //TEACHING if (CSV_type == "Teaching") { Tier_1_Fields = {"PME", "CME", "UME", "Other"}; //sets a one year range from start_year to end_year and stores each range in Tier_2_Fields for (int y = start_year; y <= end_year; y++) { Tier_2_Fields.insert(y-start_year,QString::number(y)); QCoreApplication::processEvents(); } if(faculty==""){ Tier_1_Tot=(summary->getTier1(Tier_1_Fields[0] ,start_year ,end_year ,CSV_type)); pme = root(Tier_1_Fields[0], Tier_1_Tot); Tier_1_Tot=(summary->getTier1(Tier_1_Fields[1] ,start_year ,end_year ,CSV_type)); cme = root(Tier_1_Fields[1], Tier_1_Tot); Tier_1_Tot=(summary->getTier1(Tier_1_Fields[2] ,start_year ,end_year ,CSV_type)); ume = root(Tier_1_Fields[2], Tier_1_Tot); Tier_1_Tot=(summary->getTier1(Tier_1_Fields[3] ,start_year ,end_year ,CSV_type)); teaching_other = root(Tier_1_Fields[3], Tier_1_Tot); } else{ Tier_1_Tot=(summary->getTier1Filter(Tier_1_Fields[0] ,faculty ,start_year ,end_year ,CSV_type)); pme = root(Tier_1_Fields[0], Tier_1_Tot); Tier_1_Tot=(summary->getTier1Filter(Tier_1_Fields[1] ,faculty ,start_year ,end_year ,CSV_type)); cme = root(Tier_1_Fields[1], Tier_1_Tot); Tier_1_Tot=(summary->getTier1Filter(Tier_1_Fields[2] ,faculty ,start_year ,end_year ,CSV_type)); ume = root(Tier_1_Fields[2], Tier_1_Tot); Tier_1_Tot=(summary->getTier1Filter(Tier_1_Fields[3] ,faculty ,start_year ,end_year ,CSV_type)); teaching_other = root(Tier_1_Fields[3], Tier_1_Tot); } //iterate once on each Tier_2 element for (int i = 0; i < Tier_2_Fields.length(); i++) { QCoreApplication::processEvents(); count++; QTreeWidgetItem *t2_pme; QTreeWidgetItem *t2_cme; QTreeWidgetItem *t2_ume; QTreeWidgetItem *t2_other; if(faculty==""){ Tier_2_Tot=(summary->getTier2(Tier_1_Fields[0], Tier_2_Fields[i], start_year, end_year, CSV_type)); t2_pme = tier2_root(pme, Tier_2_Fields[i], Tier_2_Tot); Tier_2_Tot=(summary->getTier2(Tier_1_Fields[1], Tier_2_Fields[i], start_year, end_year, CSV_type)); t2_cme = tier2_root(cme, Tier_2_Fields[i], Tier_2_Tot); Tier_2_Tot=(summary->getTier2(Tier_1_Fields[2], Tier_2_Fields[i], start_year, end_year, CSV_type)); t2_ume = tier2_root(ume, Tier_2_Fields[i], Tier_2_Tot); Tier_2_Tot=(summary->getTier2(Tier_1_Fields[3], Tier_2_Fields[i], start_year, end_year, CSV_type)); t2_other = tier2_root(teaching_other, Tier_2_Fields[i], Tier_2_Tot); } else{ Tier_2_Tot=(summary->getTier3(Tier_1_Fields[0], Tier_2_Fields[i], faculty, start_year, end_year, CSV_type)); t2_pme = tier2_root(pme, Tier_2_Fields[i], Tier_2_Tot); Tier_2_Tot=(summary->getTier3(Tier_1_Fields[1], Tier_2_Fields[i], faculty, start_year, end_year, CSV_type)); t2_cme = tier2_root(cme, Tier_2_Fields[i], Tier_2_Tot); Tier_2_Tot=(summary->getTier3(Tier_1_Fields[2], Tier_2_Fields[i], faculty, start_year, end_year, CSV_type)); t2_ume = tier2_root(ume, Tier_2_Fields[i], Tier_2_Tot); Tier_2_Tot=(summary->getTier3(Tier_1_Fields[3], Tier_2_Fields[i], faculty, start_year, end_year, CSV_type)); t2_other = tier2_root(teaching_other, Tier_2_Fields[i], Tier_2_Tot); } //This function from Summary will return the names/faculties involved Tier_1_Fields[x] and Tier_2_Fields[y] Tier_3_Fields = (summary->getFaculty(Tier_1_Fields[0], Tier_2_Fields[i], start_year, end_year, CSV_type)); for (int j = 0; j < Tier_3_Fields.length(); j++) { QCoreApplication::processEvents(); count++; if(faculty=="" || faculty==Tier_3_Fields[j]){ Tier_3_Tot=(summary->getTier3(Tier_1_Fields[0], Tier_2_Fields[i], Tier_3_Fields[j], start_year, end_year, CSV_type)); tier3_root(t2_pme, Tier_3_Fields[j], Tier_3_Tot); } } Tier_3_Fields = (summary->getFaculty(Tier_1_Fields[1], Tier_2_Fields[i], start_year, end_year, CSV_type)); for (int j = 0; j < Tier_3_Fields.length(); j++) { QCoreApplication::processEvents(); count++; if(faculty=="" || faculty==Tier_3_Fields[j]){ Tier_3_Tot=(summary->getTier3(Tier_1_Fields[1], Tier_2_Fields[i], Tier_3_Fields[j], start_year, end_year, CSV_type)); tier3_root(t2_cme, Tier_3_Fields[j], Tier_3_Tot); } } Tier_3_Fields = (summary->getFaculty(Tier_1_Fields[2], Tier_2_Fields[i], start_year, end_year, CSV_type)); for (int j = 0; j < Tier_3_Fields.length(); j++) { QCoreApplication::processEvents(); count++; if(faculty=="" || faculty==Tier_3_Fields[j]){ Tier_3_Tot=(summary->getTier3(Tier_1_Fields[2], Tier_2_Fields[i], Tier_3_Fields[j], start_year, end_year, CSV_type)); tier3_root(t2_ume, Tier_3_Fields[j], Tier_3_Tot); } } Tier_3_Fields = (summary->getFaculty(Tier_1_Fields[3], Tier_2_Fields[i], start_year, end_year, CSV_type)); for (int j = 0; j < Tier_3_Fields.length(); j++) { QCoreApplication::processEvents(); count++; if(faculty=="" || faculty==Tier_3_Fields[j]){ Tier_3_Tot=(summary->getTier3(Tier_1_Fields[3], Tier_2_Fields[i], Tier_3_Fields[j], start_year, end_year, CSV_type)); tier3_root(t2_other, Tier_3_Fields[j], Tier_3_Tot); } } } } //GRANTS else if (CSV_type == "Grants"){ Tier_1_Fields = {"Grants", "Clinical Trials"}; Tier_2_Fields = {"Peer Reviewed", "Industry Sponsored"}; if(faculty==""){ Tier_1_Tot=(summary->getTier1(Tier_1_Fields[0] ,start_year ,end_year ,CSV_type)); grants = root(Tier_1_Fields[0], Tier_1_Tot); Tier_1_Tot=(summary->getTier1(Tier_1_Fields[1] ,start_year ,end_year ,CSV_type)); funding = root(Tier_1_Fields[1], Tier_1_Tot); } else{ Tier_1_Tot=(summary->getTier1Filter(Tier_1_Fields[0] ,faculty, start_year ,end_year ,CSV_type)); grants = root(Tier_1_Fields[0], Tier_1_Tot); Tier_1_Tot=(summary->getTier1Filter(Tier_1_Fields[1] ,faculty, start_year ,end_year ,CSV_type)); funding = root(Tier_1_Fields[1], Tier_1_Tot); } //iterate once on each Tier_2 element for (int i = 0; i < Tier_2_Fields.length(); i++) { QCoreApplication::processEvents(); count++; QTreeWidgetItem *t2_grants; QTreeWidgetItem *t2_funding; if(faculty==""){ Tier_2_Tot=(summary->getTier2(Tier_1_Fields[0], Tier_2_Fields[i], start_year, end_year, CSV_type)); t2_grants = tier2_root(grants, Tier_2_Fields[i], Tier_2_Tot); Tier_2_Tot=(summary->getTier2(Tier_1_Fields[1], Tier_2_Fields[i], start_year, end_year, CSV_type)); t2_funding = tier2_root(funding, Tier_2_Fields[i], Tier_2_Tot); } else{ Tier_2_Tot=(summary->getTier3(Tier_1_Fields[0], Tier_2_Fields[i], faculty, start_year, end_year, CSV_type)); t2_grants = tier2_root(grants, Tier_2_Fields[i], Tier_2_Tot); Tier_2_Tot=(summary->getTier3(Tier_1_Fields[1], Tier_2_Fields[i], faculty, start_year, end_year, CSV_type)); t2_funding = tier2_root(funding, Tier_2_Fields[i], Tier_2_Tot); } //This function from Summary will return the names/faculties involved Tier_1_Fields[x] and Tier_2_Fields[y] Tier_3_Fields = (summary->getFaculty(Tier_1_Fields[0], Tier_2_Fields[i], start_year, end_year, CSV_type)); for (int j = 0; j < Tier_3_Fields.length(); j++) { QCoreApplication::processEvents(); count++; if(faculty=="" || faculty==Tier_3_Fields[j]){ Tier_3_Tot=(summary->getTier3(Tier_1_Fields[0], Tier_2_Fields[i], Tier_3_Fields[j], start_year, end_year, CSV_type)); tier3_root(t2_grants, Tier_3_Fields[j], Tier_3_Tot); } } Tier_3_Fields = (summary->getFaculty(Tier_1_Fields[1], Tier_2_Fields[i], start_year, end_year, CSV_type)); for (int j = 0; j < Tier_3_Fields.length(); j++) { QCoreApplication::processEvents(); count++; if(faculty=="" || faculty==Tier_3_Fields[j]){ Tier_3_Tot=(summary->getTier3(Tier_1_Fields[1], Tier_2_Fields[i], Tier_3_Fields[j], start_year, end_year, CSV_type)); tier3_root(t2_funding, Tier_3_Fields[j], Tier_3_Tot); } } } } //PUBLICATIONS else if (CSV_type == "Publications"){ Tier_1_Fields = {"Publications"}; Tier_2_Fields = {"Published Abstracts", "Journal Articles", "Books", "Book Chapters", "Letters to Editor"}; if(faculty==""){ Tier_1_Tot=(summary->getTier1(Tier_1_Fields[0] ,start_year ,end_year ,CSV_type)); pub = root(Tier_1_Fields[0], Tier_1_Tot); } else{ Tier_1_Tot=(summary->getTier1Filter(Tier_1_Fields[0] ,faculty ,start_year ,end_year ,CSV_type)); pub = root(Tier_1_Fields[0], Tier_1_Tot); } //iterate once on each Tier_2 element for (int i = 0; i < Tier_2_Fields.length(); i++) { QCoreApplication::processEvents(); count++; QTreeWidgetItem *t2_pub; if(faculty==""){ Tier_2_Tot=(summary->getTier2(Tier_1_Fields[0], Tier_2_Fields[i], start_year, end_year, CSV_type)); t2_pub = tier2_root(pub, Tier_2_Fields[i], Tier_2_Tot); } else{ Tier_2_Tot=(summary->getTier3(Tier_1_Fields[0], Tier_2_Fields[i], faculty, start_year, end_year, CSV_type)); t2_pub = tier2_root(pub, Tier_2_Fields[i], Tier_2_Tot); } //This function from Summary will return the names/faculties involved Tier_1_Fields[x] and Tier_2_Fields[y] Tier_3_Fields = (summary->getFaculty(Tier_1_Fields[0], Tier_2_Fields[i], start_year, end_year, CSV_type)); for (int j = 0; j < Tier_3_Fields.length(); j++) { QCoreApplication::processEvents(); count++; if(faculty=="" || faculty==Tier_3_Fields[j]){ Tier_3_Tot=(summary->getTier3(Tier_1_Fields[0], Tier_2_Fields[i], Tier_3_Fields[j], start_year, end_year, CSV_type)); tier3_root(t2_pub, Tier_3_Fields[j], Tier_3_Tot); } } } } //PRESENTATIONS else if (CSV_type == "Presentations") { Tier_1_Fields = {"Invited Lectures", "Abstracts Presented", "Other"}; //sets a one year range from start_year to end_year and stores each range in Tier_2_Fields for (int y = start_year; y <= end_year; y++){ QCoreApplication::processEvents(); count++; Tier_2_Fields.insert(y-start_year,QString::number(y)); } if(faculty==""){ count++; Tier_1_Tot=(summary->getTier1(Tier_1_Fields[0] ,start_year ,end_year ,CSV_type)); invite = root("Invited Lectures", Tier_1_Tot); Tier_1_Tot=(summary->getTier1(Tier_1_Fields[1] ,start_year ,end_year ,CSV_type)); abstract = root("Abstracts Presented", Tier_1_Tot); Tier_1_Tot=(summary->getTier1(Tier_1_Fields[2] ,start_year ,end_year ,CSV_type)); pres_other = root("Other", Tier_1_Tot); } else{ count++; Tier_1_Tot=(summary->getTier1Filter(Tier_1_Fields[0] ,faculty ,start_year ,end_year ,CSV_type)); invite = root("Invited Lectures", Tier_1_Tot); Tier_1_Tot=(summary->getTier1Filter(Tier_1_Fields[1] ,faculty ,start_year ,end_year ,CSV_type)); abstract = root("Abstracts Presented", Tier_1_Tot); Tier_1_Tot=(summary->getTier1Filter(Tier_1_Fields[2] ,faculty ,start_year ,end_year ,CSV_type)); pres_other = root("Other", Tier_1_Tot); } //iterate once on each Tier_2 element for (int i = 0; i < Tier_2_Fields.length(); i++) { QCoreApplication::processEvents(); count++; QTreeWidgetItem *t2_invite; QTreeWidgetItem *t2_abstract; QTreeWidgetItem *t2_next; if(faculty==""){ Tier_2_Tot=(summary->getTier2(Tier_1_Fields[0], Tier_2_Fields[i], start_year, end_year, CSV_type)); t2_invite = tier2_root(invite, Tier_2_Fields[i], Tier_2_Tot); Tier_2_Tot=(summary->getTier2(Tier_1_Fields[1], Tier_2_Fields[i], start_year, end_year, CSV_type)); t2_abstract = tier2_root(abstract, Tier_2_Fields[i], Tier_2_Tot); Tier_2_Tot=(summary->getTier2(Tier_1_Fields[2], Tier_2_Fields[i], start_year, end_year, CSV_type)); t2_next = tier2_root(pres_other, Tier_2_Fields[i], Tier_2_Tot); } else{ Tier_2_Tot=(summary->getTier3(Tier_1_Fields[0], Tier_2_Fields[i], faculty, start_year, end_year, CSV_type)); t2_invite = tier2_root(invite, Tier_2_Fields[i], Tier_2_Tot); Tier_2_Tot=(summary->getTier3(Tier_1_Fields[1], Tier_2_Fields[i], faculty, start_year, end_year, CSV_type)); t2_abstract = tier2_root(abstract, Tier_2_Fields[i], Tier_2_Tot); Tier_2_Tot=(summary->getTier3(Tier_1_Fields[2], Tier_2_Fields[i], faculty, start_year, end_year, CSV_type)); t2_next = tier2_root(pres_other, Tier_2_Fields[i], Tier_2_Tot); } //This function from Summary will return the names/faculties involved Tier_1_Fields[x] and Tier_2_Fields[y] Tier_3_Fields = (summary->getFaculty(Tier_1_Fields[0], Tier_2_Fields[i], start_year, end_year, CSV_type)); for (int j = 0; j < Tier_3_Fields.length(); j++) { QCoreApplication::processEvents(); count++; if(faculty=="" || faculty==Tier_3_Fields[j]){ Tier_3_Tot=(summary->getTier3(Tier_1_Fields[0], Tier_2_Fields[i], Tier_3_Fields[j], start_year, end_year, CSV_type)); tier3_root(t2_invite, Tier_3_Fields[j], Tier_3_Tot); } } Tier_3_Fields = (summary->getFaculty(Tier_1_Fields[1], Tier_2_Fields[i], start_year, end_year, CSV_type)); for (int j = 0; j < Tier_3_Fields.length(); j++) { QCoreApplication::processEvents(); count++; if(faculty=="" || faculty==Tier_3_Fields[j]){ Tier_3_Tot=(summary->getTier3(Tier_1_Fields[1], Tier_2_Fields[i], Tier_3_Fields[j], start_year, end_year, CSV_type)); tier3_root(t2_abstract, Tier_3_Fields[j], Tier_3_Tot); } } Tier_3_Fields = (summary->getFaculty(Tier_1_Fields[2], Tier_2_Fields[i], start_year, end_year, CSV_type)); for (int j = 0; j < Tier_3_Fields.length(); j++) { QCoreApplication::processEvents(); count++; if(faculty=="" || faculty==Tier_3_Fields[j]){ Tier_3_Tot=(summary->getTier3(Tier_1_Fields[2], Tier_2_Fields[i], Tier_3_Fields[j], start_year, end_year, CSV_type)); tier3_root(t2_next, Tier_3_Fields[j], Tier_3_Tot); } } } } //resize columns for(int n = 0; n < 4; n++) { count++; ui->treeWidget->resizeColumnToContents(n); } }