示例#1
0
 function &_getCriterias($sectionId, $decisionType, $decisionStatus, $decisionAfter, $decisionBefore, $studentResearch, $startAfter, $startBefore, $endAfter, $endBefore, $kiiField, $multiCountry, $countries, $geoAreas, $researchDomains, $researchFields, $withHumanSubjects, $proposalTypes, $dataCollection, $budgetOption, $budget, $sources, $identityRevealed, $unableToConsent, $under18, $dependentRelationship, $ethnicMinority, $impairment, $pregnant, $newTreatment, $bioSamples, $exportHumanTissue, $exportReason, $radiation, $distress, $inducements, $sensitiveInfo, $reproTechnology, $genetic, $stemCell, $biosafety)
 {
     $institutionDao =& DAORegistry::getDAO('InstitutionDAO');
     $proposalDetailsDao =& DAORegistry::getDAO('ProposalDetailsDAO');
     $criterias = array();
     if ($decisionType && $decisionStatus) {
         $decisionTypesMap = array(INITIAL_REVIEW => 'submission.initialReview', PROGRESS_REPORT => 'submission.progressReport', PROTOCOL_AMENDMENT => 'submission.protocolAmendment', SERIOUS_ADVERSE_EVENT => 'submission.seriousAdverseEvents', FINAL_REPORT => 'submission.finalReport');
         $decisionStatusMap = array(98 => 'editor.reports.aDecisionsIUR', 99 => 'editor.reports.aDecisionsEUR', SUBMISSION_SECTION_DECISION_APPROVED => 'editor.article.decision.approved', SUBMISSION_SECTION_DECISION_RESUBMIT => 'editor.article.decision.resubmit', SUBMISSION_SECTION_DECISION_DECLINED => 'editor.article.decision.declined');
         if ($sectionId != 0) {
             $sectionDao =& DAORegistry::getDAO('SectionDAO');
             $section =& $sectionDao->getSection($sectionId);
             $string = Locale::translate('editor.reports.fromCommittee') . ' ' . $section->getLocalizedAbbrev();
         } else {
             $string = Locale::translate('editor.reports.fromCommittee') . ' ' . Locale::translate('editor.reports.anyCommittee');
         }
         array_push($criterias, Locale::translate('editor.reports.oneDecisionIs') . ': ' . Locale::translate($decisionTypesMap[$decisionType]) . ' ' . Locale::translate($decisionStatusMap[$decisionStatus]) . ' ' . $string);
     }
     if ($decisionAfter && $decisionAfter != "") {
         if ($decisionStatus != 98) {
             array_push($criterias, Locale::translate('editor.reports.criterias.decisionAfter') . ' ' . $decisionAfter . ' ' . Locale::translate('editor.reports.dateInclusive'));
         } else {
             array_push($criterias, Locale::translate('editor.reports.criterias.submittedAfter') . ' ' . $decisionAfter . ' ' . Locale::translate('editor.reports.dateInclusive'));
         }
     }
     if ($decisionBefore && $decisionBefore != "") {
         if ($decisionStatus != 98) {
             array_push($criterias, Locale::translate('editor.reports.criterias.decisionBefore') . ' ' . $decisionBefore . ' ' . Locale::translate('editor.reports.dateInclusive'));
         } else {
             array_push($criterias, Locale::translate('editor.reports.criterias.submittedBefore') . ' ' . $decisionBefore . ' ' . Locale::translate('editor.reports.dateInclusive'));
         }
     }
     $proposalDetails = new ProposalDetails();
     if ($studentResearch) {
         array_push($criterias, Locale::translate('proposal.studentInitiatedResearch') . ': ' . Locale::translate($proposalDetails->getYesNoKey($studentResearch)));
     }
     if ($startAfter && $startAfter != "") {
         array_push($criterias, Locale::translate('editor.reports.researchStartAfter') . ' ' . $startAfter . ' ' . Locale::translate('editor.reports.dateInclusive'));
     }
     if ($startBefore && $startBefore != "") {
         array_push($criterias, Locale::translate('editor.reports.researchStartBefore') . ' ' . $startBefore . ' ' . Locale::translate('editor.reports.dateInclusive'));
     }
     if ($endAfter && $endAfter != "") {
         array_push($criterias, Locale::translate('editor.reports.researchEndAfter') . ' ' . $endAfter . ' ' . Locale::translate('editor.reports.dateInclusive'));
     }
     if ($endBefore && $endBefore != "") {
         array_push($criterias, Locale::translate('editor.reports.researchEndBefore') . ' ' . $endBefore . ' ' . Locale::translate('editor.reports.dateInclusive'));
     }
     $kiiField = array_filter($kiiField);
     if (!empty($kiiField)) {
         $string = Locale::translate('proposal.keyImplInstitution') . ': ';
         for ($i = 0; $i < count($kiiField); $i++) {
             $institution = $institutionDao->getInstitutionById($kiiField[$i]);
             if ($i == 0) {
                 $string .= $institution->getInstitutionName();
             } else {
                 $string .= ' ' . Locale::translate('common.or') . ' ' . $institution->getInstitutionName();
             }
         }
         array_push($criterias, $string);
         unset($string);
     }
     if ($multiCountry) {
         array_push($criterias, Locale::translate('proposal.multiCountryResearch') . ': ' . Locale::translate($proposalDetails->getYesNoKey($multiCountry)));
         if ($multiCountry == PROPOSAL_DETAIL_YES) {
             $countries = array_filter($countries);
             if (!empty($countries)) {
                 $string = Locale::translate('common.country') . ': ';
                 for ($i = 0; $i < count($countries); $i++) {
                     $countryDao =& DAORegistry::getDAO('CountryDAO');
                     if ($i == 0) {
                         $string .= $countryDao->getCountry($countries[$i]);
                     } else {
                         $string .= ' ' . Locale::translate('common.or') . ' ' . $countryDao->getCountry($countries[$i]);
                     }
                 }
                 array_push($criterias, $string);
                 unset($string);
             }
         }
     }
     $geoAreas = array_filter($geoAreas);
     if (!empty($geoAreas)) {
         $extraFieldDao =& DAORegistry::getDAO('ExtraFieldDAO');
         $string = Locale::translate('proposal.geoArea') . ': ';
         for ($i = 0; $i < count($geoAreas); $i++) {
             $extraField =& $extraFieldDao->getExtraField($geoAreas[$i]);
             if ($i == 0) {
                 $string .= isset($extraField) ? $extraField->getLocalizedExtraFieldName() : null;
             } else {
                 $string .= ' ' . Locale::translate('common.or') . ' ' . (isset($extraField) ? $extraField->getLocalizedExtraFieldName() : null);
             }
             unset($extraField);
         }
         array_push($criterias, $string);
         unset($string);
     }
     $researchDomains = array_filter($researchDomains);
     if (!empty($researchDomains)) {
         $string = Locale::translate('proposal.researchDomains') . ': ';
         for ($i = 0; $i < count($researchDomains); $i++) {
             $extraField =& $extraFieldDao->getExtraField($researchDomains[$i]);
             if ($i == 0) {
                 $string .= isset($extraField) ? $extraField->getLocalizedExtraFieldName() : null;
             } else {
                 $string .= ' ' . Locale::translate('common.or') . ' ' . (isset($extraField) ? $extraField->getLocalizedExtraFieldName() : null);
             }
             unset($extraField);
         }
         array_push($criterias, $string);
         unset($string);
     }
     $researchFields = array_filter($researchFields);
     if (!empty($researchFields)) {
         $string = Locale::translate('proposal.researchField') . ': ';
         for ($i = 0; $i < count($researchFields); $i++) {
             $extraField =& $extraFieldDao->getExtraField($researchFields[$i]);
             if ($i == 0) {
                 $string .= isset($extraField) ? $extraField->getLocalizedExtraFieldName() : null;
             } else {
                 $string .= ' ' . Locale::translate('common.or') . ' ' . (isset($extraField) ? $extraField->getLocalizedExtraFieldName() : null);
             }
             unset($extraField);
         }
         array_push($criterias, $string);
         unset($string);
     }
     if ($withHumanSubjects) {
         array_push($criterias, Locale::translate('proposal.withHumanSubjects') . ': ' . Locale::translate($proposalDetails->getYesNoKey($withHumanSubjects)));
         if ($withHumanSubjects == PROPOSAL_DETAIL_YES) {
             $proposalTypes = array_filter($proposalTypes);
             if (!empty($proposalTypes)) {
                 $string = Locale::translate('proposal.proposalType') . ': ';
                 for ($i = 0; $i < count($proposalTypes); $i++) {
                     $extraField =& $extraFieldDao->getExtraField($proposalTypes[$i]);
                     if ($i == 0) {
                         $string .= isset($extraField) ? $extraField->getLocalizedExtraFieldName() : null;
                     } else {
                         $string .= ' ' . Locale::translate('common.or') . ' ' . (isset($extraField) ? $extraField->getLocalizedExtraFieldName() : null);
                     }
                     unset($extraField);
                 }
                 array_push($criterias, $string);
                 unset($string);
             }
         }
     }
     if ($dataCollection) {
         array_push($criterias, Locale::translate('proposal.dataCollection') . ': ' . Locale::translate($proposalDetails->getYesNoKey($dataCollection)));
     }
     if ($budget && $budget != "") {
         array_push($criterias, Locale::translate('proposal.fundsRequired') . ' ' . $budgetOption . ' ' . $budget);
     }
     $sources = array_filter($sources);
     if (!empty($sources)) {
         $string = Locale::translate('proposal.source') . ': ';
         for ($i = 0; $i < count($sources); $i++) {
             $institution = $institutionDao->getInstitutionById($sources[$i]);
             if ($i == 0) {
                 $string .= $institution->getInstitutionName();
             } else {
                 $string .= ' ' . Locale::translate('common.or') . ' ' . $institution->getInstitutionName();
             }
         }
         array_push($criterias, $string);
         unset($string);
     }
     $riskAssessment = new RiskAssessment();
     if ($identityRevealed != null) {
         array_push($criterias, Locale::translate('proposal.researchIncludesHumanSubject') . ' ' . Locale::translate('proposal.identityRevealed') . ' ' . Locale::translate($riskAssessment->getYesNoKey($identityRevealed)));
     }
     if ($unableToConsent != null) {
         array_push($criterias, Locale::translate('proposal.researchIncludesHumanSubject') . ' ' . Locale::translate('proposal.unableToConsent') . ' ' . Locale::translate($riskAssessment->getYesNoKey($unableToConsent)));
     }
     if ($under18 != null) {
         array_push($criterias, Locale::translate('proposal.researchIncludesHumanSubject') . ' ' . Locale::translate('proposal.under18') . ' ' . Locale::translate($riskAssessment->getYesNoKey($under18)));
     }
     if ($dependentRelationship != null) {
         array_push($criterias, Locale::translate('proposal.researchIncludesHumanSubject') . ' ' . Locale::translate('proposal.dependentRelationship') . ' ' . Locale::translate($riskAssessment->getYesNoKey($dependentRelationship)));
     }
     if ($ethnicMinority != null) {
         array_push($criterias, Locale::translate('proposal.researchIncludesHumanSubject') . ' ' . Locale::translate('proposal.ethnicMinority') . ' ' . Locale::translate($riskAssessment->getYesNoKey($ethnicMinority)));
     }
     if ($impairment != null) {
         array_push($criterias, Locale::translate('proposal.researchIncludesHumanSubject') . ' ' . Locale::translate('proposal.impairment') . ' ' . Locale::translate($riskAssessment->getYesNoKey($impairment)));
     }
     if ($pregnant != null) {
         array_push($criterias, Locale::translate('proposal.researchIncludesHumanSubject') . ' ' . Locale::translate('proposal.pregnant') . ' ' . Locale::translate($riskAssessment->getYesNoKey($pregnant)));
     }
     if ($newTreatment != null) {
         array_push($criterias, Locale::translate('proposal.researchIncludes') . ' ' . Locale::translate('proposal.newTreatment') . ' ' . Locale::translate($riskAssessment->getYesNoKey($newTreatment)));
     }
     if ($bioSamples != null) {
         array_push($criterias, Locale::translate('proposal.researchIncludes') . ' ' . Locale::translate('proposal.bioSamples') . ' ' . Locale::translate($riskAssessment->getYesNoKey($bioSamples)));
         if ($bioSamples == RISK_ASSESSMENT_YES) {
             if ($exportHumanTissue != null) {
                 array_push($criterias, Locale::translate('proposal.researchIncludes') . ' ' . Locale::translate('proposal.exportHumanTissue') . ' ' . Locale::translate($riskAssessment->getYesNoKey($exportHumanTissue)));
                 if ($exportHumanTissue == RISK_ASSESSMENT_YES) {
                     if ($exportReason != null) {
                         array_push($criterias, Locale::translate('proposal.researchIncludes') . ' ' . Locale::translate('proposal.exportReason') . ' ' . Locale::translate($riskAssessment->getExportReasonKey()));
                     }
                 }
             }
         }
     }
     if ($radiation != null) {
         array_push($criterias, Locale::translate('proposal.researchIncludes') . ' ' . Locale::translate('proposal.radiation') . ' ' . Locale::translate($riskAssessment->getYesNoKey($radiation)));
     }
     if ($distress != null) {
         array_push($criterias, Locale::translate('proposal.researchIncludes') . ' ' . Locale::translate('proposal.distress') . ' ' . Locale::translate($riskAssessment->getYesNoKey($distress)));
     }
     if ($inducements != null) {
         array_push($criterias, Locale::translate('proposal.researchIncludes') . ' ' . Locale::translate('proposal.inducements') . ' ' . Locale::translate($riskAssessment->getYesNoKey($inducements)));
     }
     if ($sensitiveInfo != null) {
         array_push($criterias, Locale::translate('proposal.researchIncludes') . ' ' . Locale::translate('proposal.sensitiveInfo') . ' ' . Locale::translate($riskAssessment->getYesNoKey($sensitiveInfo)));
     }
     if ($reproTechnology != null) {
         array_push($criterias, Locale::translate('proposal.researchIncludes') . ' ' . Locale::translate('proposal.reproTechnology') . ' ' . Locale::translate($riskAssessment->getYesNoKey($reproTechnology)));
     }
     if ($genetic != null) {
         array_push($criterias, Locale::translate('proposal.researchIncludes') . ' ' . Locale::translate('proposal.genetic') . ' ' . Locale::translate($riskAssessment->getYesNoKey($genetic)));
     }
     if ($stemCell != null) {
         array_push($criterias, Locale::translate('proposal.researchIncludes') . ' ' . Locale::translate('proposal.stemCell') . ' ' . Locale::translate($riskAssessment->getYesNoKey($stemCell)));
     }
     if ($biosafety != null) {
         array_push($criterias, Locale::translate('proposal.researchIncludes') . ' ' . Locale::translate('proposal.biosafety') . ' ' . Locale::translate($riskAssessment->getYesNoKey($biosafety)));
     }
     return $criterias;
 }