20124. EPMO Open Source Coordination Office Redaction File Detail Report

Produced by Araxis Merge on 4/2/2019 9:48:11 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.

20124.1 Files compared

# Location File Last Modified
1 JLV_JLV 2_7_2_0_0.zip\JLV_Src\JLV\grails-app\assets\javascripts\view\widgets\patient PatientVLER.js Wed Mar 20 21:44:22 2019 UTC
2 JLV_JLV 2_7_2_0_0.zip\JLV_Src\JLV\grails-app\assets\javascripts\view\widgets\patient PatientVLER.js Mon Apr 1 18:20:40 2019 UTC

20124.2 Comparison summary

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

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

20124.4 Active regular expressions

No regular expressions were active.

20124.5 Comparison detail

  1   //= requir e ./Patien tWidget.js
  2   //= requir e ./window s/PatientV LERWidgetW indow.js
  3  
  4  
  5   /*------ V A VLER Wid get ------ -*/
  6  
  7   JLV.VLERCo llection =  JLV.Patie ntDataColl ection.ext end({
  8       url: ' patientVLE R/list.jso n',
  9       model:  JLV.Patie ntDataMode l.extend({
  10           pa rse: funct ion (data)  {
  11  
  12                if (data .authors & & data.aut hors[0].in stitution)  {
  13                    var  source = d ata.author s[0].insti tution;
  14                    if ( source.ind exOf('^')  > 0) {
  15                         source = s ource.subs tring(0, s ource.inde xOf('^'));
  16                    }
  17                    data .instituti on = sourc e;
  18                }
  19  
  20                //date r ules
  21                //JLVENT -2625 : st rip timezo ne from da ta
  22                if(data. creationTi me && data .creationT ime.length  > 24){
  23                    data .creationT ime = data .creationT ime.substr ing(0,19);
  24                }
  25  
  26                if(data. serviceSta rtTime &&  data.servi ceStartTim e.length >  24){
  27                    data .serviceSt artTime =  data.servi ceStartTim e.substrin g(0,19);
  28                }
  29                if (data .codes &&  data.codes .length >  0
  30                    && d ata.codes[ 0].code
  31                    && d ata.codes[ 0].code.in dexOf("341 33-9") > - 1) {
  32  
  33                    //pr ocess C32/ CCDA
  34                    if ( !data.crea tionTime)  {
  35                         data.creat ionTime =  new Date() ;
  36                    }
  37                    else  {
  38                         data.creat ionTime =  new Date(d ata.creati onTime);
  39                         if (!data. creationTi me.isValid ()) {
  40                             data.c reationTim e = null;
  41                         }
  42                    }
  43  
  44                } else {
  45                    //pr ocess c62/ others
  46                    if ( data.servi ceStartTim e) {
  47                         data.creat ionTime =  new Date(d ata.servic eStartTime );
  48                    } el se if (!da ta.creatio nTime) {
  49                         data.creat ionTime =  null;
  50                    }
  51  
  52                }
  53  
  54                return t his._super (data);
  55           }
  56       })
  57   });
  58  
  59   JLV.VLERSi tes = Back bone.Colle ction.exte nd({
  60       url: ' patientVLE R/siteList .json'
  61   });
  62  
  63  
  64   JLV.Patien tVLER = JL V.PatientW idget.exte nd({
  65       option s: {
  66           wi dgetId: 'v ler_widget ',
  67           na me: 'Commu nity Healt h Summarie s and Docu ments - VA ',
  68           st atus: true ,
  69           cl ipboard: f alse,
  70           pr int: true,
  71           da svlerDomai n: true,
  72           re fresh: tru e,
  73  
  74           co lumns: [
  75                {
  76                    titl e: 'Date',
  77                    widt h: '50%',
  78                    id:  'creationT ime',
  79                    form atter: JLV .common.da teFormatte r,
  80                    sort able: true ,
  81                    widt h: 120
  82                },
  83                {
  84                    titl e: 'Docume nt',
  85                    widt h: 140,
  86                    id:  'name',
  87                    sort able: true ,
  88                    sort er: JLV.co mmon.linkT extSorter,
  89                    form atter: fun ction (val ue, model)  {
  90                         if (!(/^Er ror/).test (value) &&  !(/availa ble for/). test(value )) {
  91                             return  JLV.commo n.linkForm atter(valu e, model);
  92                         } else {
  93                             return  value;
  94                         }
  95                    }
  96                },
  97                {
  98                    titl e: 'Source ',
  99                    widt h: 150,
  100                    id:  'instituti on',
  101                    sort able: true ,
  102                    sort er: JLV.co mmon.linkT extSorter,
  103                    form atter: fun ction (val ue) {
  104                         var author  = "";
  105                         if (value)  {
  106                             author  = value;
  107                         } else {
  108                             author  = "";
  109                         }
  110                         return JLV .common.fo rmatVLERMo nikerDispl ay(author) ;
  111                    }
  112                }
  113           ],
  114           de faultSort:  {
  115                id: 'cre ationTime' ,
  116                asc: fal se
  117           },
  118           da ta: JLV.VL ERCollecti on
  119       },
  120       initia lize: func tion (opti ons) {
  121           th is._super( options);
  122  
  123           th is._siteLi stBtn = $( '<div titl e="Site Li st" class= "jlv-widge t-toolbutt on">')
  124                .append( '<div clas s="icon-li st">')
  125                .button( )
  126                .insertA fter(this. _settingsB tn)
  127                .tooltip ({
  128                    show : false,
  129                    hide : false,
  130                    cont ent: '<ul> Fetching s ites....</ ul>',
  131                    tool tipClass:  'vlerSiteL ist'
  132                }).off(' mouseover' )
  133                .on('foc usout, mou seleave',  function ( evt) {
  134                    evt. stopImmedi atePropaga tion();
  135                })
  136                .on('cli ck', funct ion (evt)  {
  137                    evt. stopPropag ation();
  138                    $(th is).toolti p('open');
  139  
  140                    $(do cument).on ('click.vl erSiteList , keydown. vlerSiteLi st', _.bin d(function  (evt) {
  141                         $(this).to oltip('clo se');
  142                         $(document ).off('cli ck.vlerSit eList, key down.vlerS iteList');
  143                    }, t his));
  144                });
  145  
  146  
  147           va r self = t his;
  148  
  149           ne w JLV.VLER Sites().fe tch({
  150                reset: t rue,
  151                type: 'P OST',
  152                success:  function  (data) {
  153                    var  content =  '<div clas s="vlerSit eListHeade r">Site Li st</div><u l>';
  154                    data .each(func tion (mode l) {
  155                         if (model. get('sourc eName')) {
  156                             conten t += '<li> ' + model. get('sourc eName') +  '</li>';
  157                         }
  158  
  159                    });
  160  
  161                    cont ent += '</ ul>';
  162                    self ._siteList Btn.toolti p('option' , 'content ', content );
  163                },
  164                error: f unction (c ollection,  err) {
  165                    if ( err.status  !== 200)
  166                         self._site ListBtn.to oltip('opt ion', 'con tent', '<u l>An error  occurred  when fetch ing the si te list.</ ul>');
  167                }
  168           }) ;
  169  
  170           if (this._ref reshBtn){
  171                this._re freshBtn.h ide();
  172           }
  173  
  174           th is._vlerLo adBtn = $( '<div titl e="Force R efresh" ta bindex="0"  class="jl v-widget-t oolbutton  refresh">' )
  175                .append( '<div clas s="icon-re fresh">')
  176                .attr('a ria-label' , 'Force R efresh but ton, press  space bar  to activa te.')
  177                .button( )
  178                .insertB efore(this ._settings Btn).on('c lick', fun ction (evt ) {
  179                                 if  (_.isFunc tion(self. loadData))  {
  180                                      JLV.Sess ion.forceR efresh = t rue;
  181                                      self.loa dData(func tion(){
  182                                          JLV. Session.fo rceRefresh  = false;
  183                                      });
  184                                 }
  185                             });
  186       },
  187       itemCl icked: fun ction (mod el, item,  event) {
  188  
  189           if  (model.ge t('recordD etailsToke n') && mod el.get('se ssionCache dRecord'))  {
  190                var docU RL = Strin g.format(" VLER/getDo cument?pat Token={0}& recToken={ 1}",
  191                    JLV. ActivePati entModel.g et('patien tToken'),  model.get( 'recordDet ailsToken' ));
  192  
  193                JLV.comm on.openAux BrowserWin dow(docURL , "JLV - "  + model.g et('instit ution') +  " : " + mo del.get('n ame'));
  194  
  195  
  196           }  else if (m odel.get(' recordDeta ilsToken') ) {
  197                var docU RL = Strin g.format(" VLER?patTo ken={0}&re cToken={1} ",
  198                    JLV. ActivePati entModel.g et('patien tToken'),  model.get( 'recordDet ailsToken' ));
  199  
  200                JLV.comm on.openAux BrowserWin dow(docURL , "JLV - "  + model.g et('instit ution') +  " : " + mo del.get('n ame'));
  201  
  202           }  else if (_ .startsWit h(item.tex t(), 'Unab le')) {
  203                // alert ('works');
  204  
  205                event.st opPropagat ion();
  206  
  207                var html  = "<div a ria-live=' assertive' ><p class= 'jlv-scree nreader-te xt'>" +
  208                    "JLV  was unabl e to retri eve commun ity partne r document s for this  patient,  from one o r more com munity par tners, for  one or mo re of the  following  reasons:"  +
  209                    "</p >" +
  210                    "<ul >" +
  211                    "<li  class='jl v-screenre ader-text' >The partn er require s patient  consent to  release t heir data  and the pa tient has  not yet co nsented on  the partn er side</l i>" +
  212                    "<li  class='jl v-screenre ader-text' >The patie nt was see n outside  of the dat es that th e partner  can provid e records  for</li>"  +
  213                    "<li  class='jl v-screenre ader-text' >VA has no t yet esta blished an  identity  correlatio n for the  patient wi th the par tner</li>"  +
  214                    "<li  class='jl v-screenre ader-text' >A system  issue occu rred which  prevented  retrieval  of docume nts from t he partner  (could "  +
  215                    "be  technical  issues wit h the part ner, the e xchange ga teway, net work or ot her factor s)</li>" +
  216                    "</u l>" +
  217                    "<p  class='jlv -screenrea der-text'> For furthe r informat ion please  contact y our local  VHIE Coord inator. If  you need  assistance  " +
  218                      "identifyi ng your lo cal contac t please e -mail <a  P I                                            ' class='j lv-VLER-em ail-link j lv-clickab le-link'> P I                              </a>" +
  219                    "</p ></div>";
  220  
  221                JLV.Inte rfaceStatu sDialog.de tailsPopov er.html(ht ml);
  222  
  223                JLV.Inte rfaceStatu sDialog.de tailsPopov er.css({
  224                    left : (item.of fset().lef t -
  225                         item.outer Width() /  2 + 12),
  226                    top:  item.offs et().top +  24
  227                }).show( );
  228           }
  229  
  230       },
  231       loadDa ta: functi on(callbac k) {
  232           if (!JLV.Sess ion.vaData Source) {
  233                this._da tagrid.sho wMessage(" Data Sourc e not enab led")
  234           }  else {
  235                this._su per(callba ck);
  236           }
  237       }
  238  
  239   });
  240  
  241   JLV.regist erJLVWidge t('vler_wi dget', JLV .PatientVL ER);
  242  
  243  
  244   /*------ D oD VLER Wi dget ----- --*/
  245  
  246   JLV.Patien tDoDVLER =  JLV.Patie ntWidget.e xtend({
  247       option s: {
  248           wi dgetId: 'v ler_dod_wi dget',
  249           na me: 'Commu nity Healt h Summarie s and Docu ments - Do D',
  250           te xtSearchFi lter: fals e,
  251           cl ipboard: f alse,
  252           pr int: false ,
  253           re fresh: tru e,
  254           mo reWindowCl ass: 'JLV. PatientDoD VLERWidget Window',
  255           if rameUrl: u ndefined,
  256           se ttings: fa lse
  257       },
  258       initia lize: func tion (opti ons) {
  259  
  260           th is._iframe  = $('<ifr ame>')
  261                .addClas s("jlv-dod -vler-ifra me");
  262  
  263           th is._super( options);
  264  
  265           th is._iframe .appendTo( this._body );
  266       },
  267       loadDa ta: functi on () {
  268  
  269  
  270  
  271                this._bo dy.find('. jlv-dod-vl er-no-url' ).remove() ;
  272  
  273                //this._ moreBtn.hi de();
  274  
  275                var self  = this;
  276  
  277                if(JLV.A ctivePatie ntModel.ge t('edipi')  == null)  {
  278                    self ._body.pre pend($('<d iv class=" jlv-dod-vl er-no-url" >').text(" No Data")) ;
  279                } else {
  280                    $.po st('Patien tDODVLER/g etWidgetUr l.json', {
  281                         patToken:  JLV.Active PatientMod el.get('pa tientToken '),
  282                         theme: JLV .Session.u i_conf.opt ions[0].th eme
  283                    }, f unction (d ata) {
  284                         //console. info("got  url");
  285  
  286                         if (data)  {
  287                             self._ iframe.pro p('src', d ata);
  288                             self._ moreBtn.sh ow();
  289  
  290                         } else {
  291                             self._ body.prepe nd($('<div  class="jl v-dod-vler -no-url">' ).text("No  URL set") );
  292                         }
  293  
  294                    }).f ail(functi on (respon se) {
  295                         self._body .prepend($ ('<div cla ss="jlv-do d-vler-no- url">').te xt("No URL  set"));
  296                         AppKit.Ale rtDialog.a lert('Warn ing', "An  error occu rred get t he Communi ty Health  Summaries  Viewer URL  - " + res ponse.resp onseText);
  297                    });
  298                }
  299       },
  300       iframe Url: funct ion (aStri ng) {
  301  
  302           if  (aString  !== undefi ned) {
  303                this._if rameURL =  aString;
  304           }
  305  
  306           re turn this. _iframeURL ;
  307  
  308       },
  309       doPrin t: functio n () {
  310  
  311           va r dataHTML  = '<html> <head><tit le>{{title }}</title> \n{{cssLin k}}</head> ';
  312           da taHTML +=  '<body><di v style="t ext-align:  center;fo nt-weight:  bold;">Fo r Official  Use Only< /div>';
  313  
  314           if  (JLV.comm on.isDoDPr ovider(JLV .ActivePro vider)) {
  315                dataHTML  += '<div> <b>Patient  Name: </b >{{name}}  &nbsp;<b>D OB: </b>{{ dob}} &nbs p;<b>Gende r: </b>{{g ender}} &n bsp;<b>DoD  ID: </b>{ {edipi}}</ div>';
  316           }
  317           el se {
  318                dataHTML  += '<div> <b>Patient  Name: </b >{{name}}  &nbsp;<b>D OB: </b>{{ dob}} &nbs p;<b>Gende r: </b>{{g ender}} &n bsp;<b>SSN : </b>{{fm pssn}}</di v>';
  319           }
  320  
  321           da taHTML +=  '<div styl e="positio n:absolute ;top:40px; left:0;rig ht:0;botto m:0;overfl ow:hidden; ">{{bodyHT ML}}</div> </body></h tml>';
  322  
  323  
  324           va r printHTM L = _.temp late(dataH TML)(_.ext end({
  325                title: t his.get('n ame') + "  Print out  - " + JLV. ActivePati entModel.g et('name') ,
  326                cssLink:  '<link re l="stylesh eet" type= "text/css"  href="ass ets/view/p rint.css"> ',
  327                bodyHTML : this._bo dy.html()
  328           },  JLV.Activ ePatientMo del.toJSON ()));
  329  
  330  
  331           va r printWin dow = wind ow.open("" , "Print") ;
  332           pr intWindow. document.w rite(print HTML);
  333  
  334           pr intWindow. document.c lose();
  335           se tTimeout(f unction ()  {
  336                printWin dow.print( );
  337                printWin dow.close( );
  338           },  2000);
  339       }
  340       //,
  341       ////TO DO: NOT SU RE WHAT TH IS SHOULD  DO
  342       //doCl ipboard: f unction ()  {
  343       //     if (window .clipboard Data) {
  344       //         clipbo ardData.se tData('tex t', "VLER  DOD clipbo ard data h ere");
  345       //     }
  346       //}
  347  
  348  
  349   });
  350  
  351   JLV.regist erJLVWidge t('vler_do d_widget',  JLV.Patie ntDoDVLER) ;