141. EPMO Open Source Coordination Office Redaction File Detail Report

Produced by Araxis Merge on 12/13/2018 10:35:23 AM Eastern Standard Time. See www.araxis.com for information about Merge. This report uses XHTML and CSS2, and is best viewed with a modern standards-compliant browser. For optimum results when printing this report, use landscape orientation and enable printing of background images and colours in your browser.

141.1 Files compared

# Location File Last Modified
1 v12.5_iter_7_build 51.zip\TRM_Upgrade\src\main\java\gov\va\med\ccht\persistent\hibernate PssDistributionReportDAOImpl.java Fri Dec 7 17:36:32 2018 UTC
2 v12.5_iter_7_build 51.zip\TRM_Upgrade\src\main\java\gov\va\med\ccht\persistent\hibernate PssDistributionReportDAOImpl.java Wed Dec 12 19:45:44 2018 UTC

141.2 Comparison summary

Description Between
Files 1 and 2
Text Blocks Lines
Unchanged 2 710
Changed 1 2
Inserted 0 0
Removed 0 0

141.3 Comparison options

Whitespace
Character case Differences in character case are significant
Line endings Differences in line endings (CR and LF characters) are ignored
CR/LF characters Not shown in the comparison detail

141.4 Active regular expressions

No regular expressions were active.

141.5 Comparison detail

  1   package go v.va.med.c cht.persis tent.hiber nate;
  2  
  3   import jav a.text.Sim pleDateFor mat;
  4   import jav a.util.Arr ayList;
  5   import jav a.util.Cal endar;
  6   import jav a.util.Dat e;
  7   import jav a.util.Lis t;
  8  
  9   import jav ax.persist ence.Query ;
  10   import jav ax.transac tion.Trans actional;
  11  
  12   import org .hibernate .Session;
  13   import org .hibernate .SessionFa ctory;
  14   import org .springfra mework.bea ns.factory .annotatio n.Autowire d;
  15   import org .springfra mework.ste reotype.Re pository;
  16  
  17   import gov .va.med.cc ht.model.p ssreport.D istributio nOfSurveys Report;
  18   import gov .va.med.cc ht.persist ent.PssDis tributionR eportDAO;
  19   import gov .va.med.cc ht.ui.mode l.PSSRepor tForm;
  20  
  21   /**
  22    * 
  23    * @author   D N S
  24    *
  25    */
  26  
  27   @Repositor y
  28   @Transacti onal
  29   public cla ss PssDist ributionRe portDAOImp l  impleme nts PssDis tributionR eportDAO{
  30  
  31           pr ivate stat ic final i nt ALL_SUR VEYS = 1;
  32           pr ivate stat ic final i nt PSS_V1  = 2;
  33           pr ivate stat ic final i nt PSS_V2  = 3;
  34           
  35           pu blic stati c final in t NATIONAL _SELECTION  = 1;
  36           pu blic stati c final in t VISN_SEL ECTION = 2 ;
  37           pu blic stati c final in t FACILITY _SELECTION  = 3;
  38           
  39           pr ivate stat ic final S tring DO_N OT_INCLUDE  = "-2";
  40           pr ivate stat ic final S tring ALL_ MODALITIES  = "-1";
  41           pr ivate stat ic final S tring BROW SER = "115 03";
  42           pr ivate stat ic final S tring IVR  = "11502";
  43           pr ivate stat ic final S tring HOME _DEVICE =  "11501";
  44           
  45           pr ivate stat ic final S tring BROW SER_DATA =  "Browser" ;
  46           pr ivate stat ic final S tring IVR_ DATA = "IV R";
  47           pr ivate stat ic final S tring HOME _DEVICE_DA TA = "Home  Device";
  48           
  49           pr ivate stat ic final S tring ALL_ VISNS = "- 1";
  50           pr ivate stat ic final S tring ALL_ FACILITIES  = "-1";
  51           
  52           pr ivate stat ic final i nt BREAKOU T_COL = 0;
  53           pr ivate stat ic final i nt VENDOR_ NAME = 1;
  54           pr ivate stat ic final i nt NUM_OF_ SURVEYS =  2;
  55           pr ivate stat ic final i nt MODALIT Y = 3;
  56           
  57           pr ivate stat ic final i nt NATIONA L = 1;
  58           pr ivate stat ic final i nt VISN =  2;
  59           pr ivate stat ic final i nt FACILIT Y = 3;
  60           
  61           @A utowired
  62           pr ivate Sess ionFactory  sessionFa ctory;
  63           
  64           pu blic PssDi stribution ReportDAOI mpl() {
  65           }
  66  
  67           pu blic PssDi stribution ReportDAOI mpl(Sessio nFactory f actory) {
  68                    sess ionFactory  = factory ;
  69           }
  70  
  71           pr otected Se ssion getS ession() {
  72                    retu rn this.se ssionFacto ry.getCurr entSession ();
  73           }
  74           
  75           @O verride
  76       public  Distribut ionOfSurve ysReport g etNational Report(PSS ReportForm  form)
  77       {
  78                    Stri ngBuilder  sql = new  StringBuil der();
  79           
  80                    sql. append("SE LECT 'na'  AS [Breako ut], ");
  81                    sql. append("v. vendor_nam e, COUNT(* ) AS [NumS urveys] ") ;
  82  
  83                    if(f orm.getMod alityName( ).equals(A LL_MODALIT IES)) {
  84                             sql.ap pend(addMo dalityBrea kout());
  85                    }
  86                    
  87                    sql. append("FR OM Surveye d_Activity  AS sa ");
  88                    sql. append("IN NER JOIN S urveyed_Ac tivity_Res ponse AS s ar ON sa.S urveyed_Ac tivity_ID  = sar.Surv eyed_Activ ity_ID ");
  89                    sql. append("IN NER JOIN V endor AS v  ON sa.Ven dor_ID = v .Vendor_ID  ");
  90                    sql. append("IN NER JOIN D evice ON s a.Device_I D = Device .Device_ID  ");
  91                    
  92                    Simp leDateForm at df = ne w SimpleDa teFormat(" MM/dd/yyyy ");
  93                    sql. append("WH ERE sar.co mpleted_da te >= '"   + df.forma t(form.get ReportFrom Date()) +  " 12:00:00  AM' ");
  94                    sql. append("AN D sar.comp leted_date  <= '" + d f.format(f orm.getRep ortToDate( )) + " 11: 59:59 PM'  ");
  95                    
  96                    sql. append("AN D sar.surv ey_accepte d_status =  1 ");
  97                    sql. append(add ReportVers ion(form.g etReportVe rsionButto nSelection ()));
  98           sq l.append(a ddModality ((form.get ModalityNa me())));
  99                    sql. append("GR OUP BY v.v endor_name  ");
  100  
  101                    if(f orm.getMod alityName( ).equals(A LL_MODALIT IES)) {
  102                             sql.ap pend(addMo dalityBrea kout());
  103                    }
  104                    
  105                    sql. append("OR DER BY v.v endor_name  ASC");
  106                    
  107                    fina l Query qu ery = getS ession().c reateNativ eQuery(sql .toString( ));
  108  
  109                    retu rn generat eReport(qu ery, NATIO NAL_SELECT ION, form)
  110                    
  111       }
  112           
  113           @O verride
  114       public  Distribut ionOfSurve ysReport g etVisnRepo rt(PSSRepo rtForm for m)
  115       {
  116                    Stri ngBuilder  sql = new  StringBuil der();
  117           
  118                    sql. append("SE LECT sa.VI SN_ID AS [ Breakout],  ");
  119                    sql. append("v. vendor_nam e, COUNT(* ) AS [NumS urveys] ") ;
  120                    
  121                    if(f orm.getMod alityName( ).equals(A LL_MODALIT IES)) {
  122                             sql.ap pend(addMo dalityBrea kout());
  123                    }
  124                    
  125                    sql. append("FR OM Surveye d_Activity  AS sa ");
  126                    sql. append("IN NER JOIN S urveyed_Ac tivity_Res ponse AS s ar ON sa.S urveyed_Ac tivity_ID  = sar.Surv eyed_Activ ity_ID ");
  127                    sql. append("IN NER JOIN V endor AS v  ON sa.Ven dor_ID = v .Vendor_ID  ");
  128                    sql. append("IN NER JOIN D evice ON s a.Device_I D = Device .Device_ID  ");
  129                    
  130                    Simp leDateForm at df = ne w SimpleDa teFormat(" MM/dd/yyyy ");
  131                    sql. append("WH ERE sar.co mpleted_da te >= '"   + df.forma t(form.get ReportFrom Date()) +  " 12:00:00  AM' ");
  132                    sql. append("AN D sar.comp leted_date  <= '" + d f.format(f orm.getRep ortToDate( )) + " 11: 59:59 PM'  ");
  133                    sql. append("AN D sar.surv ey_accepte d_status =  1 ");
  134                    
  135                    if(! form.getVi snId().equ als(ALL_VI SNS)) {
  136                             
  137                             sql.ap pend("AND  sa.VISN_ID  = " + for m.getVisnI d());
  138                    }
  139                    
  140                    sql. append(add ReportVers ion(form.g etReportVe rsionButto nSelection ()));
  141                    sql. append(add Modality(( form.getMo dalityName ())));
  142                    sql. append("GR OUP BY sa. VISN_ID, v .vendor_na me ");
  143                    
  144                    if(f orm.getMod alityName( ).equals(A LL_MODALIT IES)) {
  145                             sql.ap pend(addMo dalityBrea kout());
  146                    }
  147                    
  148                    sql. append("OR DER BY sa. VISN_ID, v .vendor_na me ASC");
  149                    
  150                    fina l Query qu ery = getS ession().c reateNativ eQuery(sql .toString( ));
  151                    
  152                    retu rn generat eReport(qu ery, VISN_ SELECTION,  form); 
  153       }
  154           
  155           @O verride
  156       public  Distribut ionOfSurve ysReport g etFacility Report(PSS ReportForm  form)
  157       {
  158                    Stri ngBuilder  sql = new  StringBuil der();
  159           
  160                    sql. append("SE LECT f.fac ility_id +  ' ' + f.f acility_na me AS [Bre akout], v. vendor_nam e, COUNT(* ) AS [NumS urveys] ") ;
  161                    
  162                    if(f orm.getMod alityName( ).equals(A LL_MODALIT IES)) {
  163                             sql.ap pend(addMo dalityBrea kout());
  164                    }
  165                    
  166                    sql. append("FR OM Surveye d_Activity  AS sa ");
  167                    sql. append("IN NER JOIN S urveyed_Ac tivity_Res ponse AS s ar ON sa.S urveyed_Ac tivity_ID  = sar.Surv eyed_Activ ity_ID ");
  168                    sql. append("IN NER JOIN V endor AS v  ON sa.Ven dor_ID = v .Vendor_ID  ");
  169                    sql. append("IN NER JOIN D evice ON s a.Device_I D = Device .Device_ID  ");
  170                    sql. append("IN NER JOIN F acilities  as f ON f. ID = sa.fa cility_ID  ");
  171                    
  172                    Simp leDateForm at df = ne w SimpleDa teFormat(" MM/dd/yyyy ");
  173                    sql. append("WH ERE sar.co mpleted_da te >= '"   + df.forma t(form.get ReportFrom Date()) +  " 12:00:00  AM' ");
  174                    sql. append("AN D sar.comp leted_date  <= '" + d f.format(f orm.getRep ortToDate( )) + " 11: 59:59 PM'  ");
  175                    sql. append("AN D sar.surv ey_accepte d_status =  1 ");
  176                    
  177                    if(! form.getFa cilityId() .equals(AL L_FACILITI ES)) {
  178                             sql.ap pend("AND  f.facility _id = '" +  form.getF acilityId( ) + "' ");
  179                    }
  180                    
  181                    sql. append(add ReportVers ion(form.g etReportVe rsionButto nSelection ()));
  182                    sql. append(add Modality(( form.getMo dalityName ())));
  183                    sql. append("GR OUP BY f.f acility_id , f.facili ty_name, v .vendor_na me ");
  184                    
  185                    if(f orm.getMod alityName( ).equals(A LL_MODALIT IES)) {
  186                             sql.ap pend(addMo dalityBrea kout());
  187                    }
  188                    
  189                    sql. append("OR DER BY f.f acility_id , f.facili ty_name, v .vendor_na me ASC");
  190                    
  191                    fina l Query qu ery = getS ession().c reateNativ eQuery(sql .toString( ));
  192                    
  193                    retu rn generat eReport(qu ery, FACIL ITY_SELECT ION, form)
  194       }
  195  
  196           pr ivate Dist ributionOf SurveysRep ort genera teReport(Q uery repor tQuery, in t typeOfRe port, PSSR eportForm  form) {
  197                    
  198                    List <Object[]>  reportDat a = report Query.getR esultList( );
  199                    
  200                    Dist ributionOf SurveysRep ort report  = new Dis tributionO fSurveysRe port();
  201                    Stri ng modalit y = form.g etModality Name();
  202                    
  203                    if ( reportData .isEmpty() ) {
  204                             return  report;
  205                    }
  206                    if(! modality.e quals(ALL_ MODALITIES )){
  207                             for(Ob ject[] rep ortRow : r eportData)  {
  208                                      
  209                                      report.a ddRow(repo rtRow, typ eOfReport,  form);
  210                             }
  211                    } el se {
  212                             String  vendor =  "";
  213                             String  facility  = "";
  214                             String  previousF acility =  "";
  215                             // get  vendor na me of firs t entry in  data set.
  216                             String  previousV endor = (S tring) rep ortData.ge t(0)[VENDO R_NAME];
  217                             if(typ eOfReport  == FACILIT Y) {
  218                             previo usFacility  =  String .valueOf(r eportData. get(0)[BRE AKOUT_COL] );
  219                             }
  220                             String  row[] = n ew String[ 6];
  221                             row[2]  = "0";
  222                             row[3]  = "0";
  223                             row[4]  = "0";
  224                             row[5]  = "0";
  225                             ArrayL ist<String []> report Builder =  new ArrayL ist<String []>();
  226                             int to talNumSurv eysPerVend or = 0;
  227                             for(Ob ject[] rep ortRow : r eportData)  {
  228                                      vendor =  (String)  reportRow[ VENDOR_NAM E];
  229                                      facility  = String. valueOf(re portRow[BR EAKOUT_COL ]);
  230                                      if(!vend or.equals( previousVe ndor) && t ypeOfRepor t != FACIL ITY) { 
  231                                               reportBuil der.add(ro w);
  232                                               totalNumSu rveysPerVe ndor = 0;
  233                                               row = new  String[6];
  234                                               row[2] = " 0";
  235                                               row[3] = " 0";
  236                                               row[4] = " 0";
  237                                               row[5] = " 0";
  238                                      }
  239                                      else if( (!vendor.e quals(prev iousVendor ) || !faci lity.equal s(previous Facility))  && typeOf Report ==  FACILITY)  {
  240                                               reportBuil der.add(ro w);
  241                                               totalNumSu rveysPerVe ndor = 0;
  242                                               row = new  String[6];
  243                                               row[2] = " 0";
  244                                               row[3] = " 0";
  245                                               row[4] = " 0";
  246                                               row[5] = " 0";
  247                                      }
  248                                               switch(typ eOfReport) {
  249                                                       ca se NATIONA L:
  250                                                                brea k;
  251                                                       ca se VISN:
  252                                                                row[ 0] = "VISN  " + Strin g.valueOf( reportRow[ BREAKOUT_C OL]);
  253                                                                brea k;
  254                                                       ca se FACILIT Y:
  255                                                                row[ 0] = "Faci lity " + S tring.valu eOf(report Row[BREAKO UT_COL]);
  256                                                                brea k;
  257                                               } // end s witch
  258                                              
  259                                               row[1] = ( String)rep ortRow[VEN DOR_NAME];
  260                                               totalNumSu rveysPerVe ndor += (i nt) report Row[NUM_OF _SURVEYS];
  261                                               row[2] = I nteger.toS tring(tota lNumSurvey sPerVendor );
  262                                              
  263                                               String mod alityType  = (String)  reportRow [MODALITY] ;
  264                                              
  265                                               switch(mod alityType)  {
  266                                                       //  not all c ases will  be hit, so  rows also  set to ze ro above.
  267                                                       ca se IVR_DAT A:
  268                                                                row[ 3] = Integ er.toStrin g((int)rep ortRow[NUM _OF_SURVEY S]);
  269                                                                brea k;
  270                                                       ca se BROWSER _DATA:
  271                                                                row[ 4] = Integ er.toStrin g((int)rep ortRow[NUM _OF_SURVEY S]);
  272                                                                brea k;
  273                                                       ca se HOME_DE VICE_DATA:
  274                                                                row[ 5] = Integ er.toStrin g((int)rep ortRow[NUM _OF_SURVEY S]);
  275                                                                brea k;
  276                                               }
  277                                      
  278                                      previous Vendor = v endor;
  279                                      previous Facility =  facility;
  280                             } // e nd for
  281                             report Builder.ad d(row);
  282                             report .setReport (reportBui lder);
  283                             // onc e all rows  are added , create t otals row.
  284                             report .createTot alsRow(6);
  285                             return  report;
  286                    } //  end else
  287                    // o nce all ro ws are add ed, create  totals ro w.
  288                    repo rt.createT otalsRow(3 );
  289                    
  290                    retu rn report;
  291           }
  292           
  293   //      pr ivate void  addRowAnd Reset() {
  294   //               repo rtBuilder. add(row);
  295   //               tota lNumSurvey sPerVendor  = 0;
  296   //               row  = new Stri ng[6];
  297   //               row[ 2] = "0";
  298   //               row[ 3] = "0";
  299   //               row[ 4] = "0";
  300   //               row[ 5] = "0";
  301   //      }
  302           
  303           pr ivate Stri ng addRepo rtVersion( int report Selection)  {
  304                    
  305                    Stri ng sql = " ";
  306                    
  307                    swit ch (report Selection)
  308           {
  309                case ALL _SURVEYS:
  310                    //sq l set up t o not incl ude vr-12  data
  311                    sql  = "AND sar .survey_id  != 1 ";
  312                    brea k;
  313                case PSS _V1:
  314                    sql  = "AND sar .survey_id  = 2 ";
  315                    brea k;
  316                case PSS _V2:
  317                    sql  = "AND sar .survey_id  = 3 ";
  318                    brea k;
  319                default:
  320                    sql  = "AND sar .survey_id  != 1 ";
  321                    brea k;
  322           }
  323                    retu rn sql;
  324           }
  325           
  326           pr ivate Stri ng addModa lity(Strin g selected Modality)  {
  327                    
  328                    Stri ng sql = " ";
  329                    
  330                    swit ch (select edModality )
  331           {
  332                    case  BROWSER:
  333                             sql =  "AND devic e_name = ' BROWSER' " ;
  334                         break;
  335                    case  IVR:
  336                             sql =  "AND devic e_name = ' IVR' ";
  337                         break;
  338                    case  HOME_DEVI CE:
  339                             sql =  "AND devic e_name NOT  IN ('IVR' , 'BROWSER ') ";
  340                         break;
  341                case DO_ NOT_INCLUD E:
  342                    brea k;
  343                case ALL _MODALITIE S:
  344                    sql  = "AND dev ice_name I S NOT NULL  ";
  345                    brea k;
  346           }
  347                    retu rn sql;
  348           }
  349           
  350           pr ivate Stri ng addModa lityBreako ut() {
  351                    
  352                    retu rn ",CASE  Device.dev ice_name W HEN 'IVR'  THEN Devic e.device_n ame " +
  353                                "WH EN 'BROWSE R' THEN De vice.devic e_name " +
  354                                "EL SE 'Home D evice' END  ";
  355           }
  356   }