4521. EPMO Open Source Coordination Office Redaction File Detail Report

Produced by Araxis Merge on 6/9/2017 3:51:45 PM Eastern Daylight 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.

4521.1 Files compared

# Location File Last Modified
1 Fri Jun 9 19:51:45 2017 UTC
2 eHealth_Exch (eHealth Exchange Enhancements) Build 3 docs & code_May_2017.zip\VAP_CIF_CODE0502.zip\VAP_CIF_CODE0502\VAP_CIF_CODE0502\nvap-web\src\main\webapp\WEB-INF\web patientDiscoveryReport.jsp Fri Apr 21 20:15:58 2017 UTC

4521.2 Comparison summary

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

4521.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

4521.4 Active regular expressions

No regular expressions were active.

4521.5 Comparison detail

        1   <%--
        2       Docume nt   : Pat ient Disco very Repor t
        3       Create d By : Dav id Vasquez  / Robert  Snelling
        4       Modifi ed By: Ash a Amritraj
        5       Edited  By: Zacha ry Tubb
        6   --%>
        7  
        8   <%@taglib  uri="http: //java.sun .com/jsp/j stl/core"  prefix="c" %>
        9   <%@taglib  tagdir="/W EB-INF/tag s/cpp" pre fix="cpp"% >
        10   <%@taglib  tagdir="/W EB-INF/tag s/date" pr efix="date "%>
        11   <%@taglib  tagdir="/W EB-INF/tag s/formatti ng" prefix ="f" %>
        12  
        13   <f:mainTem plate head erText="Pa tient Disc overy Audi t Report">
        14       <scrip t type="te xt/javascr ipt">
        15           va lidateSSNs BeforeExpo rt = true;  //setting  the globa l variable  to true s o the ssns  are valid ated prior  to export
        16  
        17           fu nction val idateSsns( ) {
        18                var retV al = false ;
        19                var sans WhiteSpace  = $('#ssn ').val().r eplace(/ / g, '');
        20  
        21                if (sans WhiteSpace  === null)  {
        22                    $('# errorMessa ge').hide( );
        23                    retV al = true;
        24                } else {
        25                    if ( /^\d{9}(,\ d{9})*$/.t est(sansWh iteSpace)  || sansWhi teSpace == = '') {
        26                         $('#ssn'). val(sansWh iteSpace);
        27                         $('#errorM essage').h ide();
        28                         retVal = t rue;
        29                    } el se {
        30                         $('#errorM essage').h tml('Inval id SSN');
        31                         $('#errorM essage').s how();
        32                    }
        33                }
        34                return r etVal;
        35           };
        36  
        37           $( document). ready(func tion () {
        38                $("#star tDate").da tepicker({
        39                    maxD ate: 0,
        40                    date Format: 'm m/dd/yy',
        41                    onCl ose: funct ion (selec tedDate) {
        42                         $("#endDat e").datepi cker("opti on", "minD ate", sele ctedDate);
        43                    }
        44                });
        45  
        46                $("#endD ate").date picker({
        47                    maxD ate: 0,
        48                    date Format: 'm m/dd/yy',
        49                    onCl ose: funct ion (selec tedDate) {
        50                         $("#startD ate").date picker("op tion", "ma xDate", se lectedDate );
        51                    }
        52                });
        53  
        54                $.fn.dat aTable.ext .errMode =  'none';
        55  
        56                setProce ssingForDa taTable('r eportTable ');
        57  
        58                reportTa ble = $('# reportTabl e').DataTa ble({
        59                    defe rLoading:  0,
        60                    ajax :{
        61                         url:constr uctUrl("do Search"),
        62                         dataSrc: f unction(js on){
        63  
        64                             //Set  summary in formation  at bottom  of page wi th callbac k data
        65                             $('#re alPatientM essages'). html(json. realPatien tMessages) ;
        66                             $('#re alPatientF ails').htm l(json.rea lPatientFa ils);
        67                             $('#re alPatientM atches').h tml(json.r ealPatient Matches);
        68                             $('#te stPatientM essages'). html(json. testPatien tMessages) ;
        69                             $('#te stPatientF ails').htm l(json.tes tPatientFa ils);
        70                             $('#te stPatientM atches').h tml(json.t estPatient Matches);
        71                             $('#un iqueRealPa tients').h tml(json.u niqueRealP atients);
        72                             $('#un iqueTestPa tients').h tml(json.u niqueTestP atients);
        73  
        74                             config urePatient Informatio nDivs();
        75  
        76                             $('.da taTables_e mpty').rem ove();
        77  
        78                             //make  sure to r eturn main  data
        79                             return  json.data ;
        80                         },
        81                         error: fun ction(o){
        82                             handle ErrorsInDa taTable('r eportTable ', o, 11);
        83                         }
        84                    },
        85                    dest roy: true,
        86                    serv erSide: tr ue,
        87                    proc essing: tr ue,
        88                    sear ching: fal se,
        89                    pagi ng: true,
        90                    info :true,
        91                    dom:  'liptipr' ,
        92                    leng thMenu: [  10, 25, 50 , 100, 250 , 500 ],
        93                    page Length: 25 ,
        94                    orde r: [[0, "d esc"]],
        95                    lang uage: {
        96                         emptyTable : "No reco rds found" ,
        97                         loadingRec ords: ""
        98                    },
        99                    scro llX:true,
        100                    init Complete:  function() {
        101                         // Enable  THEAD scro ll bars
        102                         $('.dataTa bles_scrol lHead').cs s('overflo w', 'auto' );
        103  
        104                         // Sync TH EAD scroll ing with T BODY
        105                         $('.dataTa bles_scrol lHead').on ('scroll',  function  () {
        106                             $('.da taTables_s crollBody' ).scrollLe ft($(this) .scrollLef t());
        107                         });
        108                    },
        109                    colu mnDefs: [
        110                         {orderable : false, t argets: [9 , 10]},
        111                         {
        112                             target s: 1,
        113                             data:  null,
        114                             render : function (data,type ,full,meta ){
        115                                 re turn '<a h ref="#/" o nclick="li nkToPatien t(\''+data [11]+'\',  \''+data[2 ]+'\', \'' +data[3]+' \');">'+da ta[1]+'</a >';
        116                             }
        117                         },
        118                         {className : "vap-bre ak-word va p-col-min- 400 dt-hea d-center",  targets:  10},
        119                         {className : "vap-bre ak-word va p-col-min- 80 dt-head -center",  targets: [ 2,8]},
        120                         {className : "vap-col -min-80 dt -head-cent er", targe ts: 1},
        121                         {className : "vap-col -min-130 d t-head-cen ter", targ ets: 0},
        122                         {className : "dt-head -center",  targets: [ 3,4,5,6,7, 9]}
        123                    ]
        124                });
        125  
        126                function  configure PatientInf ormationDi vs(){
        127                    if($ ('#patient Types').va l() === "1 "){
        128                         $('#realPa tientInfo' ).show();
        129                         $('#testPa tientInfo' ).hide();
        130                    } el se if ($(' #patientTy pes').val( ) === "2")  {
        131                         $('#realPa tientInfo' ).hide();
        132                         $('#testPa tientInfo' ).show();
        133                    } el se {
        134                         $('#realPa tientInfo' ).show();
        135                         $('#testPa tientInfo' ).show();
        136                    }
        137                }
        138  
        139  
        140                reportTa ble.on('dr aw', funct ion () {
        141                    addA riaToDataT able('repo rtTable',  reportTabl e);
        142                });
        143  
        144                $('#sear chButton') .on('click ', functio n () {
        145                    // V alidate da ta before  submitting  to the se rver.
        146                    if ( validateSs ns()){
        147                         var startD ate = $('# startDate' ).val();
        148                         var endDat e = $('#en dDate').va l();
        149  
        150                         var errorM essage = v alidateSta rtAndEndDa te(startDa te, endDat e);
        151  
        152                         if (errorM essage !=  '')
        153                         {
        154                             //we h ave an err or so show  the error , and then  don't sen d the ajax  request
        155                             $('#er rorMessage ').html(er rorMessage );
        156                             $('#er rorMessage ').show();
        157  
        158                             return  false;
        159                         } else {
        160                             //no e rror, let' s make the  call to p opulate th e report
        161                             $('#re sults').sh ow();
        162                             report Table.ajax .url(const ructUrl('d oSearch')) .load();
        163                         }
        164                    }
        165                });
        166  
        167                setFocus (patientDi scoveryRep ortForm.ss n);
        168  
        169                $('#star tDate,#end Date,#ssn' ).on('chan ge', funct ion () {
        170                    //if  either da te changes  or ssn, h ide the er ror messag e if its n ot already  hidden
        171                    $('# errorMessa ge').hide( );
        172                });
        173  
        174                $('#resu lts').hide ();
        175           }) ;
        176  
        177           co nstructUrl  = functio n(methodNa me){
        178                var url  = 'Patient DiscoveryR eport.do_s ec?' + met hodName +' =true' +
        179                         '&ssn=' +  $('#ssn'). val() +
        180                         '&lastName =' + $('#l astName'). val() +
        181                         '&firstNam e=' + $('# firstName' ).val() +
        182                         '&userId='  + $('#use rId').val( ) +
        183                         '&startDat e=' + $('# startDate' ).val() +
        184                         '&endDate= ' + $('#en dDate').va l() +
        185                         '&organiza tion=' + $ ('#organiz ation').va l() +
        186                         '&organiza tionName='  + $('#org anizationN ame').val( ) +
        187                         '&mpiMatch =' + $('#m piMatch'). val() +
        188                         '&patientT ypes=' + $ ('#patient Types').va l() +
        189                         '&sortBy='  + $('#rep ortTable') .dataTable ().fnSetti ngs().aaSo rting[0][0 ] +
        190                         '&sortOrde r=' + $('# reportTabl e').dataTa ble().fnSe ttings().a aSorting[0 ][1];
        191  
        192                if (meth odName ===  'exportTo Csv' || me thodName = == 'export ToExcel')  {
        193                    url  = url + '& totalRows= ' + report Table.page .info().re cordsTotal ;
        194                }
        195                return u rl;
        196           };
        197       </scri pt>
        198  
        199       <div c lass="well ">
        200           Fi ll in the  fields bel ow to narr ow your se arch. All  dates will  be includ ed if Star t Date and  End Date  are left b lank.
        201       </div>
        202  
        203       <div c lass="form -container ">
        204           <f orm name=" patientDis coveryRepo rtForm" ac tion="Pati entDiscove ryReport.d o_sec" met hod="POST"  onsubmit= "return do Submit(thi s)">
        205                <fieldse t>
        206                    <inp ut type="h idden" id= "organizat ionName" n ame="organ izationNam e">
        207                    <leg end>Search  Details</ legend>
        208                    <div  id="error Message" c lass="bg-w arning pad -15" style ="display:  none;"></ div>
        209                    <div  class="pa d-top-10">
        210                         <label for ="ssn">SSN (s):</labe l>
        211                         <input tit le="One or  multiple  SSNs, with  no hyphen s, separat ed by comm a" id="ssn " name="ss n" type="t ext" size= "30" onblu r="validat eSsns();"  onfocus="$ ('#ssnErro r').hide() ;"
        212                                dat a-tooltip= "<c:out va lue="${des criptors[' patientDis coveryAudi tReportSSN Field']}"/ >"/>
        213                         <i><span s tyle="font -weight:no rmal;"> On e or multi ple SSNs,  with no hy phens, sep arated by  comma </sp an></i> &n bsp;
        214                    </di v>
        215                    <div >
        216                         <label for ="lastName ">Last Nam e</label>
        217                         <input tit le="Enter  Last Name"  id="lastN ame" name= "lastName"  type="tex t" maxleng th="255" s ize="30"
        218                                dat a-tooltip= "<c:out va lue="${des criptors[' lastNameFi eld']}"/>" />
        219                    </di v>
        220                    <div >
        221                         <label for ="firstNam e">First N ame</label >
        222                         <input tit le="Enter  First Name " id="firs tName" nam e="firstNa me" type=" text" maxl ength="255 " size="30 "
        223                                dat a-tooltip= "<c:out va lue="${des criptors[' firstNameF ield']}"/> "/>
        224                    </di v>
        225                    <div >
        226                         <label for ="userId"> User ID</l abel>
        227                         <input tit le="Enter  User ID" i d="userId"  name="use rId" type= "text" max length="25 5" size="3 0"
        228                                dat a-tooltip= "<c:out va lue="${des criptors[' genericUse rId']}"/>" />
        229                    </di v>
        230                    <div  class="wi dth-450" i d="dateTip " data-too ltip="<c:o ut value=" ${descript ors['start DateEndDat eField']}" />">
        231                         <div>
        232                             <label  for="star tDate">Sta rt Date</l abel>
        233                             <date: date id="s tartDate"  name="star tDate" val ue="${star tDateDefau lt}"/> <i> mm/dd/yyyy </i>
        234                         </div>
        235                         <div>
        236                             <label  for="endD ate">End D ate</label >
        237                             <date: date id="e ndDate" na me="endDat e" value=" ${endDateD efault}"/>  <i>mm/dd/ yyyy</i>
        238                         </div>
        239                    </di v>
        240                    <div >
        241                         <label tit le="Query  based on M PI results  from the  dropdown l ist" for=" mpiMatch"> MPI Result s</label>
        242                         <select id ="mpiMatch " name="mp iMatch" da ta-tooltip ="<c:out v alue="${de scriptors[ 'mpiResult sField']}" />">
        243                             <optio n value="A LL">ALL</o ption>
        244                             <optio n value="M ATCH FOUND ">Match Fo und</optio n>
        245                             <optio n value="M ATCH FAILE D">Match F ailed</opt ion>
        246                         </select>
        247                    </di v>
        248                    <div >
        249                         <label tit le="Query  based on < c:out valu e="${organ izationNam e}"/> Orga nization f rom the dr opdown lis t" for="or ganization "><c:out v alue="${or ganization Name}"/> O rganizatio n</label>
        250                         <select id ="organiza tion" name ="organiza tion" onch ange="docu ment.getEl ementById( 'organizat ionName'). value = th is.options [this.sele ctedIndex] .text;"
        251                                 da ta-tooltip ="<c:out v alue="${de scriptors[ 'eHealthEx changeOrga nizationFi eld']}"/>" >
        252                             <optio n value="" >ALL</opti on>
        253                             <c:for Each var=" r" items=" ${activeOr gs}">
        254                                 <o ption valu e="%<c:out  value="${ r.orgOid}" />"><c:out  value="${ r.orgName} "/></optio n>
        255                             </c:fo rEach>
        256                             <c:for Each var=" r" items=" ${inactive Orgs}">
        257                                 <o ption valu e="%<c:out  value="${ r.orgOid}" />">[INACT IVE] <c:ou t value="$ {r.orgName }"/></opti on>
        258                             </c:fo rEach>
        259                         </select>
        260                    </di v>
        261                    <div >
        262                         <label for ="patientT ypes">Pati ent Types< span style ="display: none;">"Ch oose wheth er you wou ld like to  filter by  real pati ents only,  test pati ents only,  or both." </span></l abel>
        263                         <select id ="patientT ypes" name ="patientT ypes" data -tooltip=" <c:out val ue="${desc riptors['p atientType sField']}" />">
        264                             <optio n value="3 ">ALL</opt ion>
        265                             <optio n value="1 " selected >Real Pati ents</opti on>
        266                             <optio n value="2 ">Test Pat ients</opt ion>
        267                         </select>
        268                    </di v>
        269                </fields et>
        270           </ form>
        271           <d iv>
        272                <input i d="searchB utton" nam e="search"  title="Se arch" clas s="button"  type="sub mit" value ="Search"  />
        273           </ div>
        274       </div>
        275       <%@inc lude file= "patientLi nkForm.jsp "%>
        276       <div i d="results ">
        277       <div a lign="righ t" class=" pad-top-5" >
        278           <i nput id="e xcelButton " name="ex celButton"  class="bu tton pad-r ight-5" ty pe="submit " value="E xport To E xcel" />
        279           <i nput id="c svButton"  name="csvB utton" cla ss="button " type="su bmit" valu e="Export  To CSV" />
        280       </div>
        281       <div i d="divRepo rtContent" >
        282           <t able id="r eportTable " class="d isplay" wi dth="100%"  cellspaci ng="0" rol e="present ation">
        283                <thead>
        284                    <tr  role="row" >
        285                         <th role=" columnhead er"><span  id="dateRe ceivedHead er" data-t ooltip="<c :out value ="${descri ptors['eve ntOccurred Column']}"  />">Date  Received ( CT)</span> </th>
        286                         <th role=" columnhead er"><span  id="ssnHea der" data- tooltip="< c:out valu e="${descr iptors['ss nColumn']} " />">SSN< /span></th >
        287                         <th role=" columnhead er"><span  id="lastNa meHeader"  data-toolt ip="<c:out  value="${ descriptor s['lastNam eColumn']} " />">Pati ent Last N ame</span> </th>
        288                         <th role=" columnhead er"><span  id="firstN ameHeader"  data-tool tip="<c:ou t value="$ {descripto rs['firstN ameColumn' ]}" />">Pa tient Firs t Name</sp an></th>
        289                         <th role=" columnhead er"><span  id="middle NameHeader " data-too ltip="<c:o ut value=" ${descript ors['middl eNameColum n']}" />"> Patient Mi ddle Name< /span></th >
        290                         <th role=" columnhead er"><span  id="sender Header" da ta-tooltip ="<c:out v alue="${de scriptors[ 'sendingOr ganization Column']}"  />">Sende r</span></ th>
        291                         <th role=" columnhead er"><span  id="pouHea der" data- tooltip="< c:out valu e="${descr iptors['pu rposeOfUse Column']}"  />">Purpo se of Use< /span></th >
        292                         <th role=" columnhead er"><span  id="receiv erHeader"  data-toolt ip="<c:out  value="${ descriptor s['receivi ngOrganiza tionColumn ']}" />">R eceiver</s pan></th>
        293                         <th role=" columnhead er"><span  id="messag eHeader" d ata-toolti p="<c:out  value="${d escriptors ['messageC olumn']}"  />">Messag e</span></ th>
        294                         <th role=" columnhead er"><span  id="explan ationHeade r" data-to oltip="<c: out value= "${descrip tors['expl anationOfF ailureColu mn']}" />" >Explanati on of Fail ure</span> </th>
        295                         <th role=" columnhead er"><span  id="detail sHeader" d ata-toolti p="<c:out  value="${d escriptors ['detailsC olumn']}"  />" data-t ooltip-pos ition="lef t">Details </span></t h>
        296                    </tr >
        297                </thead>
        298           </ table>
        299       </div>
        300       <div>
        301           <% --This are  filled in  via datat ables data  callback- -%>
        302           <d iv id='rea lPatientIn fo' style= "display:  none">
        303                <p><b>To tal Real P atient Mes sages: </b ><span id= "realPatie ntMessages "></span>< /p>
        304                <p><b>To tal Real P atient Fai ls: </b><s pan id="re alPatientF ails"></sp an></p>
        305                <p><b>To tal Real P atient Mat ches: </b> <span id=" realPatien tMatches"> </span></p >
        306                <p><b>To tal Unique  Real Pati ents: </b> <span id=" uniqueReal Patients"> </span></p >
        307           </ div>
        308           <d iv id='tes tPatientIn fo' style= "display:  none">
        309                <p><b>To tal Test P atient Mes sages: </b ><span id= "testPatie ntMessages "></span>< /p>
        310                <p><b>To tal Test P atient Fai ls: </b><s pan id="te stPatientF ails"></sp an></p>
        311                <p><b>To tal Test P atient Mat ches: </b> <span id=" testPatien tMatches"> </span></p >
        312                <p><b>To tal Unique  Test Pati ents: </b> <span id=" uniqueTest Patients"> </span></p >
        313           </ div>
        314       </div>
        315       </div>
        316   </f:mainTe mplate>