27. EPMO Open Source Coordination Office Redaction File Detail Report

Produced by Araxis Merge on 11/2/2017 7:18:12 AM Central 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.

27.1 Files compared

# Location File Last Modified
1 CAPRI_CIF.zip\CAPRI_CIF\Source VocRehabRerouteRequest.pas Wed Nov 1 18:09:32 2017 UTC
2 CAPRI_CIF.zip\CAPRI_CIF\Source VocRehabRerouteRequest.pas Thu Nov 2 11:55:49 2017 UTC

27.2 Comparison summary

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

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

27.4 Active regular expressions

No regular expressions were active.

27.5 Comparison detail

  1   { VocRehab ReRouteReq uest
  2  
  3   Added Patc h 197 JRL  2/1/17
  4  
  5   This unit  is called  when a Voc  Rehab 886 1 Medical  Request is  re-routed .
  6  
  7   RPCs calle d:
  8     DVBA VR  SEND REROU TE
  9     DVBA CAP RI REROUTE  VAMC
  10     DVBA VR  GET REROUT E CODE
  11     XWB DIRE CT RPC
  12     DVBA CHE CK PATCH
  13   }
  14  
  15   unit VocRe habReroute Request;
  16  
  17   interface
  18  
  19   uses
  20     Windows,  Messages,  SysUtils,  Variants,  Classes,  Graphics,  Controls,  Forms
  21     ,Dialogs
  22     ,StdCtrl s
  23     ,Trpcb
  24     ,VA508Ac cessibilit yManager
  25     ,VA508Ac cessibilit yRouter
  26     ,CAPRISu pport
  27     ,dialogs CAPRI
  28     ;
  29  
  30   type
  31     TfrmVocR ehabRerout eRequest =  class(TFo rm)
  32       lblReR outeReason : TLabel;
  33       cbReRo uteReason:  TComboBox ;
  34       lblVAM C: TLabel;
  35       cbVAMC : TComboBo x;
  36       lblSor tByState:  TLabel;
  37       cbxSor tByState:  TCheckBox;
  38       lblDes cription:  TLabel;
  39       memoRe RouteDescr iption: TM emo;
  40       btnRer outeReques t: TButton ;
  41       btnCan celReRoute : TButton;
  42       VA508A ccessibili tyManager1 : TVA508Ac cessibilit yManager;
  43       Label1 : TLabel;
  44       proced ure FormCr eate(Sende r: TObject );
  45       proced ure FormCl ose(Sender : TObject;  var Actio n: TCloseA ction);
  46       proced ure cbxSor tByStateCl ick(Sender : TObject) ;
  47       proced ure btnCan celReRoute Click(Send er: TObjec t);
  48       proced ure btnRer outeReques tClick(Sen der: TObje ct);
  49       proced ure cbVAMC Enter(Send er: TObjec t);
  50       proced ure memoRe RouteDescr iptionEnte r(Sender:  TObject);
  51       proced ure cbVAMC Exit(Sende r: TObject );
  52     private
  53       { Priv ate declar ations }
  54       VAMC_I EN : Strin g;
  55       VAMC_I EN_List :  TStringLis t;
  56       VAMC_S tation_Lis t : TStrin gList;
  57       VAMC_N ame_List :  TStringLi st;
  58       VAMC_S tate_List  : TStringL ist;
  59       ReRout eReasonIEN List : TSt ringList;
  60       SaveSt ationNumbe r : String ;
  61       Select edStation  : String;
  62       proced ure GetVAM CLocations ;
  63       proced ure GetRer outeReason s;
  64       functi on  CheckU serInputVa lues: Bool ean;
  65       functi on  Create ReRouteReq uest : Boo lean;
  66       functi on  CheckI fVAMCCanHa ndleRerout es: Boolea n;
  67     public
  68       { Publ ic declara tions }
  69     end;
  70  
  71   var
  72     frmVocRe habReroute Request: T frmVocReha bRerouteRe quest;
  73  
  74   implementa tion
  75  
  76   uses VocRe habMedical Request, m ain;
  77  
  78   const
  79     CLOSE_FO RM = '1';       // Pa tch 197 JR L 12/21/16
  80     DONT_CLO SE_FORM =  '2'; // Pa tch 197 JR L 12/21/16
  81  
  82   {$R *.dfm}
  83  
  84  
  85   //-------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
  86   // Form Cr eate
  87   //-------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
  88   procedure  TfrmVocReh abRerouteR equest.For mCreate(Se nder: TObj ect);
  89   begin
  90     // Creat e string l ists
  91     VAMC_IEN _List := T StringList .Create;
  92     VAMC_Sta tion_List  := TString List.Creat e;
  93     VAMC_Nam e_List :=  TStringLis t.Create;
  94     VAMC_Sta te_List :=  TStringLi st.Create;
  95     ReRouteR easonIENLi st := TStr ingList.Cr eate;
  96     // Popul ate initia l fields
  97     GetReRou teReasons;  // Popula te Re-Rout ing Reason s dropdown
  98     GetVAMCL ocations;   // Popula te VAMC Lo cations dr opdown
  99     SaveStat ionNumber  := '';
  100   end;
  101  
  102  
  103   //-------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
  104   // Form Cl ose
  105   //-------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
  106   procedure  TfrmVocReh abRerouteR equest.For mClose(Sen der: TObje ct; var Ac tion: TClo seAction);
  107   begin
  108     // Destr oy string  lists
  109     FreeAndN il(VAMC_IE N_List);
  110     FreeAndN il(VAMC_St ation_List );
  111     FreeAndN il(VAMC_Na me_List);
  112     FreeAndN il(VAMC_St ate_List);
  113     FreeAndN il(ReRoute ReasonIENL ist);
  114   end;
  115  
  116  
  117   //-------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
  118   // Cancel  Re-Route b utton Clic ked
  119   //-------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
  120   procedure  TfrmVocReh abRerouteR equest.btn RerouteReq uestClick( Sender: TO bject);
  121   var
  122     request_ rerouted :  Boolean;
  123     CloseFor m : Boolea n;
  124   begin
  125     if Check UserInputV alues then  // if all  inputs ar e satisfie d, allow r e-routing
  126     begin
  127        reque st_reroute d := Creat eReRouteRe quest;      // send t he re-rout ed request
  128        if re quest_rero uted = TRU E then //  re-route w as success ful
  129           fr mVRMedical Request.Re turnValue  := CLOSE_F ORM
  130        else
  131           fr mVRMedical Request.Re turnValue  := DONT_CL OSE_FORM;
  132        Close ;
  133     end;  //  CheckUser InputValue s
  134   end;
  135  
  136  
  137  
  138   //-------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
  139   // Cancel  Re-Route b utton Clic ked
  140   //-------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
  141   procedure  TfrmVocReh abRerouteR equest.btn CancelReRo uteClick(S ender: TOb ject);
  142   begin
  143     // No ac tion neede d except t o close th e form
  144     Close;
  145   end;
  146  
  147  
  148   //-------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
  149   // Sort By  State che ckbox clic ked
  150   //-------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
  151   procedure  TfrmVocReh abRerouteR equest.cbx SortByStat eClick(Sen der: TObje ct);
  152   begin
  153     GetVAMCL ocations;
  154   end;
  155  
  156  
  157   //-------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
  158   // Create  Re-Route R equest
  159   //-------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
  160   // RPC Inp ut:    
  161   //   Reque st IEN
  162   //   Patie nt IEN
  163   //   VAMC  IEN (Stati on Number)
  164   //   Routi ng Locatio n IEN
  165   //   Re-Ro ute Reason  IEN
  166   //   Re-Ro ute Descri ption
  167   //
  168   // RPC Out put:  
  169   //     1^Transmit ted as mes sage # 909 761 from t his site t S E R V ER . D O
M
A IN        
  170   //   0^Mes sage trans mission er ror! Reque st WILL NO T be rerou ted
  171   // ------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
  172   // FROM TH E AMIE TRA NSFER DOCU MENTATION:
  173   //   If th e mail mes sage is se nt out suc cessfully,  the user  will see:
  174   //   "Tran smitted as  message #  {number}  from this  site to {s ite name}. VA.GOV."
  175   // 
  176   //   If th e message  fails (and  therefore  the trans fer fails)  the user  will be so  informed:
  177   //   "Mess age transm ission err or!   Requ est WILL N OT be sent  !"
  178   // ------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
  179   function T frmVocReha bRerouteRe quest.Crea teReRouteR equest : B oolean;
  180   CONST
  181     RPCNAME  = 'DVBA VR  SEND RERO UTE';  
  182   var
  183     MailmanR PCStatus :  Integer;
  184     MailmanM essage : S tring;
  185     buffer :  string;
  186   begin
  187     Result : = FALSE; / / default  to re-rout e failed
  188     try
  189       Screen .Cursor :=  crHourGla ss;
  190       // Set up RPC
  191       frmMai n.RPCBroke r1.Results .Clear;
  192       frmMai n.RPCBroke r1.RemoteP rocedure : = RPCNAME;
  193       frmMai n.RPCBroke r1.Param[0 ].Value :=  frmVRMedi calRequest .SelectedM edicalRequ estIEN;  / / Request  IEN
  194       frmMai n.RPCBroke r1.Param[0 ].PType :=  literal;
  195       frmMai n.RPCBroke r1.Param[1 ].Value :=  PatientIE N;                                 // Patie nt IEN
  196       frmMai n.RPCBroke r1.Param[1 ].PType :=  literal;
  197       frmMai n.RPCBroke r1.Param[2 ].Value :=  VAMC_IEN;
  198       frmMai n.RPCBroke r1.Param[2 ].PType :=  literal;
  199       frmMai n.RPCBroke r1.Param[3 ].Value :=  ReRouteRe asonIENLis t[cbReRout eReason.It emIndex];
  200       frmMai n.RPCBroke r1.Param[3 ].PType :=  literal;
  201       frmMai n.RPCBroke r1.Param[4 ].Value :=  memoReRou teDescript ion.Text;
  202       frmMai n.RPCBroke r1.Param[4 ].Ptype :=  literal;
  203       
  204       frmMai n.RPCBroke rCall;
  205       Try
  206         frmM ain.RPCBro ker1.Call;
  207       Except
  208         On e : EBrokerE rror Do
  209         begi n
  210           bu ffer := RP CNAME + '  could not  be accesse d!  '+#10# 13 + E.Mes sage + '.' ;
  211           Sh owMessageC APRI(buffe r);
  212         end;
  213       End;
  214     finally
  215       Screen .Cursor :=  crDefault ;
  216     end;
  217  
  218     // Check  RPC resul ts  
  219     If frmMa in.RPCBrok er1.Result s.Count >  0 Then
  220     begin
  221       Mailma nRPCStatus  := StrToI ntDef(Piec e(frmMain. RPCBroker1 .Results[0 ], '^', 1) ,0);
  222       Mailma nMessage : = Piece(fr mMain.RPCB roker1.Res ults[0], ' ^', 2);
  223     
  224       if Mai lmanRPCSta tus > 0 th en // Succ ess, reque st was re- routed
  225       begin
  226         // F YI: An ema il is sent  to the or iginal req uester upo n successf ul re-rout ing (all M  code)
  227         Show MessageCAP RI(Mailman Message);   
  228         Resu lt := TRUE ;
  229         Clos e;
  230       end
  231     end;
  232     // if Re -Route mes sage faile d
  233     if not R esult then
  234       ShowMe ssageCAPRI (RPCNAME +  ' returne d a failur e.'+#10#13 +MailmanMe ssage);
  235   end;
  236  
  237  
  238   //-------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
  239   // Get VAM C Location s
  240   //-------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
  241   procedure  TfrmVocReh abRerouteR equest.Get VAMCLocati ons;
  242   var
  243     i : Inte ger;
  244   CONST
  245     RPCNAME  = 'DVBA CA PRI REROUT E VAMC';
  246     STRINGFO RMAT = '%- 28s%-15s%' ;
  247   begin
  248     // setup  and call  RPC
  249     frmMain. RPCBroker1 .Results.C lear;
  250     frmMain. RPCBroker1 .RemotePro cedure :=  RPCNAME;
  251     if cbxSo rtByState. Checked th en
  252        frmMa in.RPCBrok er1.Param[ 0].Value : = 'STATE'
  253     else
  254        frmMa in.RPCBrok er1.Param[ 0].Value : = 'NAME';
  255     frmMain. RPCBroker1 .Param[0]. PType := l iteral;
  256     frmMain. RPCBrokerC all;
  257     Try
  258       frmMai n.RPCBroke r1.Call;
  259     Except
  260       On E:  EBrokerErr or Do
  261         Show MessageCAP RI(RPCNAME  + ' could  not be ac cessed!'+# 13#10+E.Me ssage);
  262     End;
  263     // clear  all lists
  264     cbVAMC.I tems.Clear ;
  265     VAMC_Nam e_List.Cle ar;
  266     VAMC_Sta te_List.Cl ear;
  267     VAMC_IEN _List.Clea r;
  268     VAMC_Sta tion_List. Clear;
  269     // popul ate all li sts
  270     If frmMa in.RPCBrok er1.Result s.Count >  0 Then
  271     begin
  272       For i  := 0 To fr mMain.RPCB roker1.Res ults.Count  - 1 Do
  273       begin
  274         VAMC _Name_List .Add(Piece (frmMain.R PCBroker1. Results[i] , '^', 2)) ;
  275         VAMC _State_Lis t.Add(Piec e(frmMain. RPCBroker1 .Results[i ], '^', 1) );
  276         VAMC _IEN_List. Add(Piece( frmMain.RP CBroker1.R esults[i],  '^', 3));
  277         VAMC _Station_L ist.Add(Pi ece(frmMai n.RPCBroke r1.Results [i], '^',  4));
  278       end;
  279     end;
  280     // Add d ata to lis tbox and f ormat it i nto column s
  281     for i :=  0 to VAMC _Name_List .Count - 1  do
  282       cbVAMC .Items.Add (Format(ST RINGFORMAT ,[VAMC_Nam e_List[i], VAMC_State _List[i]]) );
  283   end;
  284  
  285  
  286  
  287   //-------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
  288   // Get Re- Route Reas ons
  289   //-------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
  290   // RPC:  D VBA CAPRI  REROUTEREA SONS
  291   //   Input :   None
  292   //   Outpu t:  Re-Rou te Code^IE N
  293   //-------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
  294   procedure  TfrmVocReh abRerouteR equest.Get ReRouteRea sons;
  295   const
  296     RPCNAME  = 'DVBA VR  GET REROU TE CODE';
  297   var
  298     i : Inte ger;
  299   begin
  300     frmMain. RPCBroker1 .Results.C lear;                                             
  301     frmMain. RPCBroker1 .RemotePro cedure :=  RPCNAME;           
  302     frmMain. RPCBrokerC all;                                                         
  303     try                                                                              
  304       frmMai n.RPCBroke r1.Call;                                                     
  305     except                                                                           
  306       On EBr okerError  Do                                                           
  307          Sho wMessageCA PRI('RPC:  '+RPCNAME  + ' could  not be acc essed!'); 
  308     end;                                                                             
  309     cbReRout eReason.It ems.Clear;                                         
  310     ReRouteR easonIENLi st := TStr ingList.Cr eate;                             
  311     if frmMa in.RPCBrok er1.Result s.Count >  0 then                                 
  312     begin                                                                            
  313       for i  := 0 To fr mMain.RPCB roker1.Res ults.Count  - 1 do                     
  314       begin                                                                          
  315         cbRe RouteReaso n.Items.Ad d(Piece(fr mMain.RPCB roker1.Res ults[i], ' ^', 2));
  316         ReRo uteReasonI ENList.Add (Piece(frm Main.RPCBr oker1.Resu lts[i], '^ ', 1));
  317       end;                                                                          
  318     end;
  319   end;
  320    
  321   //-------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
  322   // Check U ser Input  Values
  323   //-------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
  324   // Check a ll user in put values .  If valu es are inp ut correct ly, return  TRUE.
  325   // If valu es are mis sing, rout ine short  circuits b ack to inp ut form.
  326   //-------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
  327   function T frmVocReha bRerouteRe quest.Chec kUserInput Values: Bo olean;
  328   begin
  329     if cbReR outeReason .Text = ''  then
  330     begin
  331        ShowM essageCAPR I('Please  enter a Re -Routing R eason.');
  332        Resul t := FALSE ;
  333        exit;   // make  user compl ete form b efore send ing
  334     end;
  335     if cbReR outeReason .Text = 'O THER' then
  336     begin
  337       if Len gth(memoRe RouteDescr iption.Lin es.Text) =  0 then
  338       begin
  339          Sho wMessageCA PRI('Pleas e enter a  Re-Routing  Descripti on.');
  340          Res ult := FAL SE;
  341          exi t;  // mak e user com plete form  before se nding
  342       end;
  343     end;
  344     if cbVAM C.ItemInde x = -1 the n
  345     begin
  346       ShowMe ssageCAPRI ('Please e nter a VAM C.');
  347       Result  := FALSE;
  348       exit;   // make u ser comple te form be fore sendi ng
  349     end;
  350     Result : = TRUE;
  351   end;
  352    
  353  
  354   //-------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
  355   // Check i f VAMC Can  Handle Re -Routes
  356   //-------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
  357   // If the  destinatio n site doe sn't have  Patch 193  installed,  then it w ill not
  358   // know ho w to recei ve a re-ro uted reque st.  Don't  allow the  user to r e-route
  359   // to a si te where P atch 193 i sn't insta lled. 
  360   // Input:     Station  Number at  distant s ite
  361   // Output:    
  362   //    TRUE :  ok to r e-route
  363   //    FALS E: cannot  re-route t o this sit
  364   // ------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
  365   function T frmVocReha bReRouteRe quest.Chec kIfVAMCCan HandleRero utes: Bool ean;
  366   const
  367      RPC_DIR ECT = 'XWB  DIRECT RP C'; 
  368      RPCNAME  = 'DVBA C HECK PATCH ';
  369      PATCHNU M = 'DVBA* 2.7*197';    
  370   begin
  371           
  372     Result : = FALSE;
  373     // if It emIndex is  not selec ted (or fo rced to -1 ), don't t est.  Just  fail
  374     if cbVAM C.ItemInde x = -1 the n  
  375        exit;
  376     
  377     try
  378       Screen .Cursor :=  crHourGla ss;
  379       // che ck patch n umber at s elected si te.  If Pa tch 197 is  not insta lled, erro r
  380       frmMai n.RPCBroke r1.RemoteP rocedure : = RPC_DIRE CT;
  381       frmMai n.RPCBroke r1.Param[0 ].PType :=  literal;
  382       frmMai n.RPCBroke r1.Param[0 ].Value :=  SelectedS tation;
  383       frmMai n.RPCBroke r1.Param[1 ].PType :=  literal;
  384       frmMai n.RPCBroke r1.Param[1 ].Value :=  RPCNAME;
  385       frmMai n.RPCBroke r1.Param[2 ].PType :=  literal;
  386       frmMai n.RPCBroke r1.Param[2 ].Value :=  '';  // R PC version  parameter  (Optional )
  387       frmMai n.RPCBroke r1.Param[3 ].PType :=  literal;
  388       frmMai n.RPCBroke r1.Param[3 ].Value :=  PATCHNUM;
  389       try
  390         frmM ain.RPCBro kerCall;
  391         frmM ain.RPCBro ker1.Call;
  392         if f rmMain.RPC Broker1.Re sults.Coun t > 0 then
  393           if  piece(frm Main.RPCBr oker1.Resu lts[0], '^ ', 1) = '1 ' then
  394               Result :=  TRUE;
  395       except
  396         begi n
  397           Sh owMessageC APRI(RPCNA ME + ' cou ld not be  accessed a t Station  Number ' +  SelectedS tation + ' !');
  398           Re sult := FA LSE;
  399         end
  400       end;
  401     finally
  402       Screen .Cursor :=  crDefault ;
  403     end;
  404   end;
  405  
  406  
  407   //-------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
  408   // Exit VA MC Combobo x
  409   //-------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
  410   procedure  TfrmVocReh abRerouteR equest.cbV AMCExit(Se nder: TObj ect);
  411   var
  412     buffer :  string;
  413   begin
  414     if cbVAM C.ItemInde x <> -1 th en
  415        VAMC_ IEN := VAM C_IEN_list [cbVAMC.It emIndex]
  416     else
  417        exit;
  418  
  419     Selected Station :=  VAMC_Stat ion_List[c bVAMC.Item Index];
  420     if Selec tedStation  = SaveSta tionNumber  then
  421        Exit   // no nee d to repop ulate thin gs if just  tabbing t hrough con trols
  422     else
  423        SaveS tationNumb er := Sele ctedStatio n;
  424   //   If we  can't re- route to t he selecte d VAMC, se t the VAMC  to blank  and
  425   //   give  the user a  message.
  426     if Check IfVAMCCanH andleRerou tes = FALS E then
  427     begin
  428       buffer  := VAMC_N ame_List[c bVAMC.Item Index] + 
  429                  VAMC_S tate_List[ cbVAMC.Ite mIndex] + 
  430                  ' cann ot accept  re-routed  requests a t this tim e.';
  431       SaveSt ationNumbe r := '';   // make su re we rete st the sta tion numbe r if previ ous one er rored out
  432       cbVAMC .ItemIndex  := -1;
  433       ShowMe ssageCAPRI (buffer);
  434       cbVAMC .SetFocus;
  435     end;
  436     end;
  437  
  438  
  439   //-------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
  440   // 508 Hel p
  441   //-------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
  442   procedure  TfrmVocReh abRerouteR equest.cbV AMCEnter(S ender: TOb ject);
  443   begin
  444     if cbVAM C.ItemInde x <> -1 th en
  445        GetSc reenReader .Speak('VA MC');
  446   end;
  447  
  448  
  449   procedure  TfrmVocReh abRerouteR equest.mem oReRouteDe scriptionE nter(Sende r: TObject );
  450   begin
  451     GetScree nReader.Sp eak('Descr iption');
  452     GetScree nReader.Sp eak(memoRe RouteDescr iption.Tex t);
  453   end;
  454  
  455  
  456   end.