33. EPMO Open Source Coordination Office Redaction File Detail Report

Produced by Araxis Merge on 9/19/2018 12:36:15 PM 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.

33.1 Files compared

# Location File Last Modified
1 ePharmacy_Bundle 12.zip TAS+ePhm+SDD+US597+US3969+v1.02.docx Wed Sep 12 15:17:00 2018 UTC
2 ePharmacy_Bundle 12.zip TAS+ePhm+SDD+US597+US3969+v1.02.docx Wed Sep 19 14:17:58 2018 UTC

33.2 Comparison summary

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

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

33.4 Active regular expressions

No regular expressions were active.

33.5 Comparison detail

  1   MCCF EDI T AS US597 /  US3969
  2   System Des ign Docume nt
  3  
  4  
  5  
  6  
  7  
  8   Department  of Vetera ns Affairs
  9   April 2018
  10   Version 1. 02
  11   User Story  Number: U SRX-27
  12   User Story  Name: Res ubmit clai ms outside  of the EC ME User Sc reen
  13   Product Ba cklog ID:  191
  14   Backlog Pr iority: 25
  15   Initial Si zing Estim ate:
  16   Rational I D: 828290
  17   Rally ID:  US597 / US 3969
  18  
  19   Design – S ummary
  20   US597 will  enhance t he existin g ECME opt ion: ROC R e Open CLO SED Claim.   The enha ncements w ill includ e the foll owing:
  21   Rename the  menu text  of the op tion to be : ROC Re O pen CLOSED /Resubmit  Claim. Thi s will req uire a pre -install r outine and  an Integr ation Cont rol Regist ration Num ber.
  22   Update the  initial f ilter ques tions to p rompt for  Patient Na me or Pres cription N umber. Cur rently the  option on ly allows  searches b y Patient  Name.
  23   If Patient  Name is u sed in the  initial s earch, the  user will  be prompt ed for a d ate range.  This is n ot a chang e from exi sting func tionality.
  24   If Prescri ption Numb er is used , the user  will NOT  be prompte d for a da te range.
  25   Update the  search lo gic to dis play OPEN  or CLOSED  Billable C laims. Cur rently the  option on ly display s CLOSED C laims. The  updated o ption will  need to d isplay OPE N and CLOS ED Claims  to allow t he user to  Resubmit  claims. No n-Billable  Claims wi ll not be  displayed.
  26   Model the  body of th e screen a fter the E CME User S creen. 
  27   Update the  structure  of the ^T MP file cr eated by L istMan. Th e updated  structure  will mimic  that of t he structu re used by  ECME User  Screen. T his will a llow the u se of exis ting ECME  User Scree n actions  to be used  by the RO C Re Open  CLOSED/Res ubmit Clai m option.
  28   Remove cur rent proto col action  BPS PRTCL  REOPEN. T his will b e replaced  by anothe r existing  protocol  action, BP S PRTCL US RSCR REOPE N CLOSED C LAIMS. Thi s action i s currentl y used by  ECME User  Screen and  allows fo r multiple  claims to  be select ed. 
  29   Add action  BPS PRTCL  USRSCR RE SUBMIT (RE S Resubmit  Claim). T his action  is curren tly used b y ECME Use r Screen.
  30  
  31   List of Co mponents:
  32   Routine: B PSREOP
  33   Routine: B PSREOP1
  34   Routine: B PSSCRRS 
  35   Routine:BP S24PRE
  36   Routine:BP SSCRU4
  37   List Templ ate:BPS LS TMN ECME R EOPEN
  38   Protocol:B PS PRTCL R EOPEN MENU  (menu)
  39   Protocol:B PS PRTCL U SRSCR REOP EN CLOSED  CLAIMS (ac tion)
  40   Protocol:  BPS PRTCL  USRSCR RES UBMIT (act ion)
  41   Protocol:B PS PRTCL R EOPEN EXIT  (action)
  42  
  43  
  44   Design – D etail
  45   Routine Na me
  46   ^BPSREOP
  47   Story
  48   US597
  49   Related Me nu Options  or ListMa n Actions
  50   ROC Reopen  CLOSED Cl aim
  51   Subroutine
  52   EN1
  53   Enhancemen t Category
  54    New
  55    Modify
  56    Delete
  57    No Change
  58   Related Ro utines
  59   This Subro utine is C alled By
  60   This Subro utine Call s
  61  
  62   ROC Option
  63   $$PTRX^BPS REOP
  64   $$PTINFO^B PSREOP
  65   $$ASKDATE^ BPSSCRU6
  66  
  67  
  68   Subroutine
  69   INIT
  70   Enhancemen t Category
  71    New
  72    Modify
  73    Delete
  74    No Change
  75   Related Ro utines
  76   This Subro utine is C alled By
  77   This Subro utine Call s
  78  
  79   ROC Option
  80   COLLPT^BPS REOP1
  81   COLLRX^BPS REOP1
  82   BUILD^BPSR EOP1
  83   $$FORMDATE ^BPSSCRU6
  84  
  85  
  86   Subroutine
  87   WHATTODO
  88   Enhancemen t Category
  89    New
  90    Modify
  91    Delete
  92    No Change
  93  
  94  
  95   Subroutine
  96   PTRX
  97   Enhancemen t Category
  98    New
  99    Modify
  100    Delete
  101    No Change
  102   Related Ro utines
  103   This Subro utine is C alled By
  104   This Subro utine Call s
  105  
  106   EN1^BPSREO P
  107   ^DIR
  108   Data Passi ng
  109    Parameter  Input
  110    Parameter  Output
  111    Function  Return Val ue
  112    Global Mo dified
  113   Input Attr ibute Name  and Defin ition
  114   Name: BPSI NPUT
  115   Definition : User Inp ut – Patie nt Name or  RX Number s
  116    New       Modify       Delete       No Cha nge
  117  
  118  
  119   Subroutine
  120   PTINFO
  121   Enhancemen t Category
  122    New
  123    Modify
  124    Delete
  125    No Change
  126   Related Ro utines
  127   This Subro utine is C alled By
  128   This Subro utine Call s
  129  
  130   EN1^BPSREO P
  131   ^DIC
  132   Data Passi ng
  133    Parameter  Input
  134    Parameter  Output
  135    Function  Return Val ue
  136    Global Mo dified
  137   Input Attr ibute Name  and Defin ition
  138   Name: BPSI NPUT
  139   Definition : User Inp ut Patient  Name
  140    New       Modify       Delete       No Cha nge
  141   Output Att ribute Nam e and Defi nition
  142   Name: BPSP TID
  143   Definition : Patient  IEN
  144    New       Modify       Delete       No Cha nge
  145  
  146  
  147   Subroutine
  148   RXP
  149   Enhancemen t Category
  150    New
  151    Modify
  152    Delete
  153    No Change
  154   Related Ro utines
  155   This Subro utine is C alled By
  156   This Subro utine Call s
  157  
  158   EN1^BPSREO P
  159   ^DIR
  160   $$RXNUM^PS OBPSU2
  161   DIC^PSODI
  162   DIQ^PSODI
  163  
  164  
  165   Subroutine
  166   DEL
  167   Enhancemen t Category
  168    New
  169    Modify
  170    Delete
  171    No Change
  172   Related Ro utines
  173   This Subro utine is C alled By
  174   This Subro utine Call s
  175  
  176   EN1^BPSREO P
  177   ^DIC
  178   Data Passi ng
  179    Parameter  Input
  180    Parameter  Output
  181    Function  Return Val ue
  182    Global Mo dified
  183   Input Attr ibute Name  and Defin ition
  184   Name: RXIE N
  185   Definition : Prescrip tion IEN
  186    New       Modify       Delete       No Cha nge
  187   Output Att ribute Nam e and Defi nition
  188   Name: BPSR X
  189   Definition : Array of  selected  RX IENs
  190    New       Modify       Delete       No Cha nge
  191   Current Lo gic
  192  
  193   BPSREOP ;B HAM ISC/SS  - REOPEN  CLOSED CLA IMS ;05-AP R-05
  194    ;;1.0;E C LAIMS MGMT  ENGINE;** 3**;JUN 20 04;Build 2 0
  195    ;; Per VH A Directiv e 10-93-14 2, this ro utine shou ld not be  modified.
  196    ;Reopen c losed clai ms
  197    ;Q
  198   EN1 ;
  199    N BPDFN,B PSTRT,BPEN D
  200    W @IOF
  201    I $$WHATT ODO(.BPDFN ,.BPSTRT,. BPEND)<0 Q
  202    ;
  203   EN ; -- ma in entry p oint for B PS LSTMN E CME REOPEN
  204    N VALMAR, VALMBCK,VA LMCNT,VALM HDR,X
  205    D EN^VALM ("BPS LSTM N ECME REO PEN")
  206    Q
  207    ;
  208   HDR ; -- h eader code
  209    ;S VALMHD R(1)="This  is a test  header fo r BPS LSTM N ECME REO PEN."
  210    ;S VALMHD R(2)="This  is the se cond line"
  211    Q
  212    ;
  213   INIT ; --  init varia bles and l ist array
  214    N BPTMPGL ,Y
  215    ;ask what  patient a nd what is  date rang e
  216    I ('$D(BP DFN))!('$D (BPSTRT))! ('$D(BPEND )) W !,"BP DFN,BPSTRT ,BPEND nee d to be de fined! " Q
  217    D COLLECT ^BPSREOP1( BPDFN,BPST RT,BPEND)
  218    S VALMHDR (1)="PATIE NT: "_$$PA TINF^BPSRE OP1(BPDFN) _"   Close d claims f rom "_$$FO RMDATE^BPS SCRU6(BPST RT,3)_" to  "_$$FORMD ATE^BPSSCR U6(BPEND,3 )
  219    Q
  220    ;
  221   HELP ; --  help code
  222    S X="?" D  DISP^XQOR M1 W !!
  223    Q
  224    ;
  225   EXIT ; --  exit code
  226    Q
  227    ;
  228   EXPND ; --  expand co de
  229    Q
  230    ;
  231    ;prompts  the user t o select p atient , s tart and e nd dates
  232    ;input/ou tput (by r eference):
  233    ;BPDFN -  patient ie n #2
  234    ;BPSTRT -  start dat e (fileman  format)
  235    ;BPEND -  end date ( fileman fo rmat)
  236    ;Return v alue:
  237    ;-1 quit
  238    ; 1 - con tinue (oka y)_
  239    ;
  240   WHATTODO(B PDFN,BPSTR T,BPEND) ;
  241    S BPDFN=$ $PROMPT^BP SSCRCV("P^ DPT(","Sel ect PATIEN T NAME","" )
  242    I BPDFN<0  Q -1
  243    S BPSTRT= $$ASKDATE^ BPSSCRU6(" START WITH  DATE:","T ODAY")
  244    I BPSTRT< 0 Q -1
  245    F  S BPEN D=$$ASKDAT E^BPSSCRU6 ("GO TO DA TE:","TODA Y") Q:(BPE ND<0)!(BPE ND'<BPSTRT )  D
  246    . W !,"Th e GO TO da te cannot  precede th e START da te."
  247    I BPEND<0  Q -1
  248    Q 1
  249    ;
  250  
  251   Modified L ogic (Chan ges are hi ghlighted)
  252  
  253   BPSREOP ;B HAM ISC/SS  - REOPEN  CLOSED CLA IMS ;05-AP R-05 ;;1.0 ;E CLAIMS  MGMT ENGIN E;**3,24** ;JUN 2004; Build 20 ; ;Per VA Di rective 64 02, this r outine sho uld not be  modified.  ; Referen ce to DIC^ PSODI supp orted by I A 4858 ; ; Reopen clo sed claims  ;QEN1 ; N  BPSDT1,BP SDT2,BPSIE N,BPSINPUT ,BPSINV,BP SINVC,BPSP TID,BPSPTR X,BPSRX,BP SRXF,I,XEN 1A ;  S BP SPTRX="" ;  Prompt Pa tient Name  or Rx I $ $PTRX(.BPS INPUT)<0 Q  ; ; Patie nt Name Se arch I BPS INPUT="P", $$PTINFO(. BPSPTID)>0  D . W ! .  S BPSPTRX =1 ; PATIE NT . S BPS DT1=$$ASKD ATE^BPSSCR U6("START  WITH DATE: ","TODAY")  . I BPSDT 1<0 Q . F   S BPSDT2= $$ASKDATE^ BPSSCRU6(" GO TO DATE :","TODAY" ) Q:(BPSDT 2<0)!(BPSD T2'<BPSDT1 ) D . . W  !,"The GO  TO date ca nnot prece de the STA RT date."  ; Check if  user inpu t is Rx re lated ; ;  Prescripti on Number  Search I B PSINPUT="N " D . S BP SPTRX=2 ;  PRESCRIPTI ON . K BPS RXAR . W !  . F  S RX IEN=$$RXP( ) Q:RXIEN= -1 D . . S  BPSRX=$$G ET1^DIQ(52 ,RXIEN,.01 ) . . I $$ STATUS^BPS OSRX(RXIEN ,0)="" D .  . . W !,"  Prescript ion "_BPSR X_"/0"_" i s not bill able and w ill not di splay." .  . S BPSRXF =0 . . F   S BPSRXF=$ O(^PSRX(RX IEN,1,BPSR XF)) Q:'BP SRXF  D .  . . I $$ST ATUS^BPSOS RX(RXIEN,B PSRXF)=""  D . . . .  W !," Pres cription " _BPSRX_"/" _BPSRXF_"  is not bil lable and  will not d isplay." .  . I $D(BP SRXAR(+RXI EN)) D DEL (RXIEN,BPS RX) . . E   S BPSRXAR (+RXIEN)=" " ; 
  254    I (BPSINP UT="P")&($ G(BPSPTID) ="") G EN1 A I (BPSIN PUT="P")&( ($G(BPSDT1 )'>0)!($G( BPSDT2)'>0 )) G EN1A  I (BPSINPU T="N")&($D (BPSRXAR)= 0) G EN1A  ;EN ; -- m ain entry  point for  BPS LSTMN  ECME REOPE N N VALMAR ,VALMBCK,V ALMCNT,VAL MHDR,X D E N^VALM("BP S LSTMN EC ME REOPEN" ) Q ;HDR ;  -- header  code ;S V ALMHDR(1)= "This is a  test head er for BPS  LSTMN ECM E REOPEN."  ;S VALMHD R(2)="This  is the se cond line"  Q ;INIT ;  -- init v ariables a nd list ar ray N BPTM PGL,Y ;ask  what pati ent and wh at is date  range ; B ased on us er input,  call speci fic routin e to build  BPSAR arr ay. ; BPSA R array wi ll contain  eligible  claims sor ted by pat ient. I BP SPTRX=1 D  COLLPT^BPS REOP1(BPSP TID,BPSDT1 ,BPSDT2,.B PSAR) I BP SPTRX=2 D  COLLRX^BPS REOP1(.BPS RXAR,.BPSA R) ; Pass  BPSAR arra y to BUILD  routine t o create t he actual  ListMan en tries. D B UILD^BPSRE OP1(BPSPTR X,$G(BPSPT ID),$G(BPS DT1),$G(BP SDT2),.BPS RXAR,.BPSA R) I BPSPT RX=1 S VAL MHDR(1)="A ctivity Da te Range:  "_$$FORMDA TE^BPSSCRU 6(BPSDT1,3 )_" to "_$ $FORMDATE^ BPSSCRU6(B PSDT2,3) E   S VALMHD R(1)="" Q  ;HELP ; --  help code  S X="?" D  DISP^XQOR M1 W !! Q  ;EXIT ; --  exit code  Q ;EXPND  ; -- expan d code Q ;  ; BPSINPU T - User I nput - Pat ient Info  or RX Info  ; Return  Value 0 or  -1=Invali d User Inp ut, 1=Valu e User Inp utPTRX(BPS INPUT) ;PT RX1 ;  N D IR,DIRUT,Y  S DIR(0)= "F^1:1" S  DIR("A")=" Select by  (P)atient  Name or Pr escription  (N)umber"  S DIR("?" ,1)="Enter :"  S DIR( "?",2)=" P  to search  by PATIEN T NAME or"  S DIR("?" ,3)=" N to  search by  PRESCRIPT ION NUMBER " S DIR("? ",4)=" " S  DIR("?")= "Enter ^ t o exit" D  ^DIR K DIR  I $D(DIRU T) Q -1 I  Y'="P"&(Y' ="N") D  G  PTRX1 . W  !,"Respon se must be  P or N."  . W !,"Ent er ^ to ex it." S BPS INPUT=Y Q  1 ; ; BPSP TID - Pati ent IEN (o utput) ; R eturn Valu e 0 or -1= Invalid Pa tient Info , 1=Valid  Patient In foPTINFO(B PSPTID) ;  N DIC,X,Y  W ! S DIC= "^DPT(" S  DIC(0)="AE MNQ" S DIC ("A")="Sel ect Patien t: " D ^DI C I Y=-1 Q  -1 S BPSP TID=+Y Q 1  ;RXP() ;  prompt the  user to e nter the p rescriptio n ; output  value of  function i s RXIEN^DF N ; N RXIE N,DIR,X,Y, DTOUT,DUOU T,DIRUT,DI ROUT,DIC,D R,DA,D0,DI Q,PSODIY,R XN,DFN,PNM ,DRUG,RXST RXPR ; S R XIEN="",DF N="" S DIR (0)="FAO"  S DIR("A") ="Select P rescriptio n: " S DIR ("?",1)="  A prescrip tion numbe r or ECME  number may  be entere d. To look -up a" S D IR("?",2)= " prescrip tion by th e ECME num ber, pleas e enter "" E."" follo wed by the  ECME" S D IR("?")="  number wit h or witho ut any lea ding zeros ." D ^DIR  K DIR I X= ""!$D(DIRU T) S RXIEN =-1 G RXPX  S X=$$UP^ XLFSTR(X)  ; ; ECME#  lookup I $ E(X,1,2)=" E." S RXIE N=+$$RXNUM ^PSOBPSU2( $E(X,3,$L( X))) G RXP 1     ; DB IA #4970 ;  ; Rx# loo kup S DIC= 52 S DIC(" S")="I $P( $G(^(0)),U ,2),$D(^(" "STA"")),$ P($G(^(""S TA"")),U,1 )'=13" D D IC^PSODI(5 2,.DIC,X)  K DIC    ;  DBIA# 485 8 S RXIEN= +Y ;RXP1 ;  ; I RXIEN '>0 W " In valid sele ction. Ple ase try ag ain.",$C(7 ) G RXPR     ; start  over ; ; D isplay Rx  data and g et confirm ation to p roceed S D IC=52,DR=" .01;2;6;10 0",DA=RXIE N,DIQ="BPS RXD",DIQ(0 )="IE" D D IQ^PSODI(5 2,DIC,DR,D A,.DIQ) ;  DBIA# 4858  S DFN=+$G (BPSRXD(52 ,DA,2,"I") ) S PNM=$G (BPSRXD(52 ,DA,2,"E") ) S DRUG=$ G(BPSRXD(5 2,DA,6,"E" )) W ?38,$ E(PNM,1,19 )," ",$E(D RUG,1,21)  ;RXPX ; Q  RXIEN ;DEL (RXIEN,BPS RX) ; Dele te RX from  list ; N  DIR,Y W !! ,"RX# "_BP SRX_" (ECM E# "_RXIEN _") is a d uplicate e ntry. Dele te from li st?" S DIR (0)="S^Y:Y ES;N:NO" S  DIR("A")= "Delete RX # "_BPSRX_ " (ECME# " _RXIEN_")  from your  list?" S D IR("B")="N O" D ^DIR  I Y="Y" K  BPSRXAR(+R XIEN) Q
  255  
  256  
  257   Routine Na me
  258   ^BPSREOP1
  259   Story
  260   US597
  261   Related Me nu Options  or ListMa n Actions
  262   ROC Reopen  CLOSED Cl aim
  263   Subroutine
  264   COLLECT
  265   Enhancemen t Category
  266    New
  267    Modify
  268    Delete
  269    No Change
  270  
  271  
  272   Subroutine
  273   COLLPT
  274   Enhancemen t Category
  275    New
  276    Modify
  277    Delete
  278    No Change
  279   Related Ro utines
  280   This Subro utine is C alled By
  281   This Subro utine Call s
  282  
  283   INIT^BPSRE OP
  284   REDRAW^BPS REOP1
  285   $$GET1^DIQ
  286   $$RXDEL^BP SREOP1
  287   STATS^BPSR EOP1
  288   Data Passi ng
  289    Parameter  Input
  290    Parameter  Output
  291    Function  Return Val ue
  292    Global Mo dified
  293   Input Attr ibute Name  and Defin ition
  294   Name: BPSP TID
  295   Definition : Patient  IEN
  296    New       Modify       Delete       No Cha nge
  297   Name: BPSD T1
  298   Definition : From Dat e
  299    New       Modify       Delete       No Cha nge
  300   Name: BPSD T2
  301   Definition : Thru Dat e
  302    New       Modify       Delete       No Cha nge
  303   Output Att ribute Nam e and Defi nition
  304   Name: BPSA R
  305   Definition : Array of  eligible  claims, so rted by Pa tient
  306    New       Modify       Delete       No Cha nge
  307  
  308  
  309   Subroutine
  310   COLLRX
  311   Enhancemen t Category
  312    New
  313    Modify
  314    Delete
  315    No Change
  316   Related Ro utines
  317   This Subro utine is C alled By
  318   This Subro utine Call s
  319  
  320   INIT^BPSRE OP
  321   REDRAW^BPS REOP1
  322   $$NB^BPSSC R03
  323   MESSAGE^BP SREOP1
  324   $$GET1^DIQ
  325   $$RXDEL^BP SREOP1
  326   STATS^BPSR EOP1
  327   PAUSE^VALM 1
  328   Data Passi ng
  329    Parameter  Input
  330    Parameter  Output
  331    Function  Return Val ue
  332    Global Mo dified
  333   Input Attr ibute Name  and Defin ition
  334   Name: BPSR XAR
  335   Definition : Array of  Claim IEN s from use r’s input
  336    New       Modify       Delete       No Cha nge
  337   Output Att ribute Nam e and Defi nition
  338   Name: BPSA R
  339   Definition : Array of  eligible  claims, so rted by Pa tient
  340    New       Modify       Delete       No Cha nge
  341  
  342  
  343   Subroutine
  344   BUILD
  345   Enhancemen t Category
  346    New
  347    Modify
  348    Delete
  349    No Change
  350   Related Ro utines
  351   This Subro utine is C alled By
  352   This Subro utine Call s
  353  
  354   INIT^BPSRE OP
  355   REDRAW^BPS REOP1
  356   CLEAN^VALM 10
  357   $$GETINSUR ^BPSSCRU2
  358   $$PATINF^B PSSCR02
  359   SAVEARR^BP SSCR02
  360   $$CLAIMINF ^BPSSCR02
  361   $$ADDINF^B PSSCR03
  362   Data Passi ng
  363    Parameter  Input
  364    Parameter  Output
  365    Function  Return Val ue
  366    Global Mo dified
  367   Input Attr ibute Name  and Defin ition
  368   Name: BPSP TRX
  369   Definition : Flag for  user inpu t type; 1= Patient in put, 2=RX  input
  370    New       Modify       Delete       No Cha nge
  371   Name: BPSP TID
  372   Definition : Patient  IEN
  373    New       Modify       Delete       No Cha nge
  374   Name: BPSD T1
  375   Definition : From Dat e
  376    New       Modify       Delete       No Cha nge
  377   Name: BPSD T2
  378   Definition : Thru Dat e
  379    New       Modify       Delete       No Cha nge
  380   Name: BPSR XAR
  381   Definition : Array of  Claim IEN s from use r’s input
  382    New       Modify       Delete       No Cha nge
  383   Name: BPSA R
  384   Definition : Array of  eligible  claims, so rted by Pa tient
  385    New       Modify       Delete       No Cha nge
  386  
  387  
  388   Subroutine
  389   RXDEL
  390   Enhancemen t Category
  391    New
  392    Modify
  393    Delete
  394    No Change
  395   Related Ro utines
  396   This Subro utine is C alled By
  397   This Subro utine Call s
  398  
  399   COLLPT^BPS REOP1
  400   COLLRX^BPS REOP1
  401   $$RXDEL^BP SOS
  402   Data Passi ng
  403    Parameter  Input
  404    Parameter  Output
  405    Function  Return Val ue
  406    Global Mo dified
  407   Input Attr ibute Name  and Defin ition
  408   Name: BPIE N59
  409   Definition : Claim IE N
  410    New       Modify       Delete       No Cha nge
  411  
  412  
  413   Subroutine
  414   STATS
  415   Enhancemen t Category
  416    New
  417    Modify
  418    Delete
  419    No Change
  420   Related Ro utines
  421   This Subro utine is C alled By
  422   This Subro utine Call s
  423  
  424   COLLPT^BPS REOP1
  425   COLLRX^BPS REOP1
  426   $$CLAIMST^ BPSSCRU3
  427   $$ELIGCODE ^BPSSCR05
  428   Data Passi ng
  429    Parameter  Input
  430    Parameter  Output
  431    Function  Return Val ue
  432    Global Mo dified
  433   Input Attr ibute Name  and Defin ition
  434   Name: BPSP TID
  435   Definition : Patient  IEN
  436    New       Modify       Delete       No Cha nge
  437   Name: BPS5 9
  438   Definition : Claim IE N
  439    New       Modify       Delete       No Cha nge
  440   Name: BPSA R
  441   Definition : Array of  eligible  claims, so rted by Pa tient
  442    New       Modify       Delete       No Cha nge
  443  
  444  
  445   Subroutine
  446   STATS1
  447   Enhancemen t Category
  448    New
  449    Modify
  450    Delete
  451    No Change
  452   Related Ro utines
  453   This Subro utine is C alled By
  454   This Subro utine Call s
  455  
  456   BUILD^BPSR EOP1
  457   N/A
  458   Data Passi ng
  459    Parameter  Input
  460    Parameter  Output
  461    Function  Return Val ue
  462    Global Mo dified
  463   Input Attr ibute Name  and Defin ition
  464   Name: BPSP TID
  465   Definition : Patient  IEN
  466    New       Modify       Delete       No Cha nge
  467   Name: BPSA R
  468   Definition : Array of  eligible  claims, so rted by Pa tient
  469    New       Modify       Delete       No Cha nge
  470  
  471  
  472   Subroutine
  473   EUSCREOP
  474   Enhancemen t Category
  475    New
  476    Modify
  477    Delete
  478    No Change
  479   Related Ro utines
  480   This Subro utine is C alled By
  481   This Subro utine Call s
  482  
  483   BPS PRTCL  USRSCR REO PEN CLOSED  CLAIMS ac tion 
  484   PAUSE^VALM 1
  485   FULL^VALM1
  486   $$ASKLINES ^BPSSCRU4
  487   $$LJ^BPSSC R02
  488   $$NB^BPSSC R03
  489   $$CLOSED02 ^BPSSCR03
  490   $$RXDEL^BP SOS
  491   $$YESNO^BP SSCRRS
  492   $$REOPEN^B PSBUTL
  493   REDRAW^BPS REOP1
  494   REDRAW^BPS SCRUD
  495  
  496  
  497   Subroutine
  498   REDRAW
  499   Enhancemen t Category
  500    New
  501    Modify
  502    Delete
  503    No Change
  504   Related Ro utines
  505   This Subro utine is C alled By
  506   This Subro utine Call s
  507  
  508   EUSCREOP^B PSREOP1
  509   RES^BPSSCR RS
  510   CLEAN^VALM 10
  511   COLLPT^BPS REOP1
  512   COLLRX^BPS REOP1
  513   BUILD^BPSR EOP1
  514   Current Lo gic
  515  
  516   BPSREOP1 ; BHAM ISC/S S - REOPEN  CLOSED CL AIMS ;03/0 7/08  14:5 4
  517    ;;1.0;E C LAIMS MGMT  ENGINE;** 3,7,10,11, 20**;JUN 2 004;Build  27
  518    ;;Per VA  Directive  6402, this  routine s hould not  be modifie d.
  519    ;Reopen c losed clai ms
  520    ;
  521    ;create a n ^TMP for  the list  manager
  522    ;
  523   COLLECT(BP DFN,BPSTRT ,BPEND) ;
  524    D CLEAN^V ALM10
  525    N LINE
  526    N BPIEN02 ,BPIEN59
  527    S LINE=1
  528    S BPIEN59 =0
  529    F  S BPIE N59=$O(^BP ST("AC",BP DFN,BPIEN5 9)) Q:+BPI EN59=0  D
  530    . I $P($G (^BPST(BPI EN59,12)), U,2)<BPSTR T Q
  531    . I $P($G (^BPST(BPI EN59,12)), U,2)>BPEND  Q
  532    . ; Don't  display d eleted pre scriptions
  533    . I $$RXD EL^BPSOS($ P(^BPST(BP IEN59,1),U ,11),$P(^B PST(BPIEN5 9,1),U,1))  Q
  534    . S BPIEN 02=+$P($G( ^BPST(BPIE N59,0)),U, 4)
  535    . ;if the  is no BPS  CLAIMS -  error
  536    . Q:BPIEN 02=0
  537    . ;if NOT  closed
  538    . I +$P($ G(^BPSC(BP IEN02,900) ),U)=0 Q
  539    . D SET^V ALM10(LINE ,$$LJ^BPSS CR02(LINE, 6)_$$CLAIM INF(BPIEN5 9),BPIEN59 )
  540    . S LINE= LINE+1
  541    S VALMCNT =LINE-1 ;" of PAGE" f ix - VALMC NT should  be EXACT n umber of l ines on th e screen
  542    Q
  543    ;claim in fo for lis t manager  screen
  544   CLAIMINF(B P59) ;*/
  545    Q $$CLAIM INF^BPSSCR 02(BP59)
  546    ;
  547    ;patient  info for h eader
  548   PATINF(BPD FN) ;*/
  549    N X
  550    S X=$E($$ PATNAME(BP DFN),1,22) _" "_$$SSN 4^BPSSCRU2 (BPDFN)
  551    Q $$LJ^BP SSCR02(X,2 9) ;name
  552    ;
  553    ;-------- ---- patie nt's name
  554   PATNAME(BP DFN) ;
  555    Q $E($P($ G(^DPT(BPD FN,0)),U), 1,30)
  556    ;
  557    ;/**
  558    ;ECME Use r Screen R eopen Clos ed Claim H idden Acti on (ROC)
  559    ;**/
  560   EUSCREOP ;
  561    N BPREOP, BP59,BPDFN ,BPDISP,BP CNT,BPI,BP J,BPCOMM,B PRETV,BPIE N02,BPSRXN UM
  562    ; Check f or BPS MAN AGER secur ity key
  563    I '$D(^XU SEC("BPS M ANAGER",DU Z)) D  Q
  564    . W !,"Yo u must hol d the BPS  MANAGER Se curity Key  to access  the",!,"R eopen Clos ed Claims  option."
  565    . S VALMB CK="R"
  566    . D PAUSE ^VALM1
  567    S (BP59,B PCNT,BPI,B PJ)=0
  568    I '$D(@(V ALMAR)) G  REOP
  569    D FULL^VA LM1
  570    ; Select  the claim( s) to reop en
  571    W !,"Ente r the line  number fo r the clai m you want  to reopen ."
  572    I $$ASKLI NES^BPSSCR U4("","C", .BPREOP,VA LMAR) D
  573    . ; Build  array to  display to  user
  574    . F  S BP 59=$O(BPRE OP(BP59))  Q:BP59=""   D
  575    . . S BPD FN=+$P($G( ^BPST(BP59 ,0)),U,6)
  576    . . S BPC NT=BPCNT+1
  577    . . I '$D (BPDISP(BP DFN)) S BP DISP(BPDFN ,BPCNT)=$$ LJ^BPSSCR0 2($$PATNAM E(BPDFN)_"  :",50),BP CNT=BPCNT+ 1
  578    . . S BPD ISP(BPDFN, BPCNT)=@VA LMAR@($P(B PREOP(BP59 ),U,1),0)
  579    . . ;
  580    . . ; che ck for non -billable  entry
  581    . . I $$N B^BPSSCR03 (BP59) D   Q
  582    . . . S B PCNT=BPCNT +1
  583    . . . S B PDISP(BPDF N,BPCNT)=" Entry is N ON BILLABL E.  There  is no clai m to reope n."
  584    . . . K B PREOP(BP59 )
  585    . . . Q
  586    . . ;
  587    . . ; Mak e sure thi s claim is  closed
  588    . . I '$$ CLOSED02^B PSSCR03($P ($G(^BPST( BP59,0)),U ,4)) D
  589    . . . S B PCNT=BPCNT +1
  590    . . . S B PDISP(BPDF N,BPCNT)=" Claim NOT  closed and  cannot be  reopened. "
  591    . . . K B PREOP(BP59 )
  592    . . ; Mak e sure the  Prescript ion isn't  deleted
  593    . . I $$R XDEL^BPSOS ($P(^BPST( BP59,1),U, 11),$P(^BP ST(BP59,1) ,U,1)) D
  594    . . . S B PCNT=BPCNT +1
  595    . . . S B PDISP(BPDF N,BPCNT)=" The prescr iption has  been mark ed DELETED  and canno t be reope ned."
  596    . . . K B PREOP(BP59 )
  597    . ; Displ ay the sel ected clai ms from th e display  array
  598    . W !!,"Y ou've chos en to reop en the fol lowing pre scriptions (s) for"
  599    . F  S BP I=$O(BPDIS P(BPI)) Q: BPI=""  D
  600    . . F  S  BPJ=$O(BPD ISP(BPI,BP J)) Q:BPJ= ""  D
  601    . . . W ! ,BPDISP(BP I,BPJ)
  602    . . Q
  603    . Q
  604    ; If ther e are any  closed cla ims select ed, verify  if the us ers still  wants to r eopen
  605    I $D(BPRE OP) D
  606    . W !!,"A ll Selecte d Rxs will  be reopen ed using t he same in formation  gathered i n the",!," following  prompts.", !!
  607    . I $$YES NO^BPSSCRR S("Are you  sure?(Y/N )")=1 D
  608    . . ; Get  the Reope n Comments  to be sto red in the  BPS CLAIM S file
  609    . . S BPC OMM=$$PROM PT("REOPEN  COMMENTS" ,"","F",1, 40)
  610    . . Q:BPC OMM["^"
  611    . . ; Do  we REALLY  want to re open the c laims?
  612    . . I $$Y ESNO^BPSSC RRS("ARE Y OU SURE YO U WANT TO  RE-OPEN TH IS CLAIM?  (Y/N)","No ")=1 D
  613    . . . S ( BPCNT,BP59 )=0
  614    . . . ; L oop throug h all sele cted claim s and reop en them on e at a tim e
  615    . . . ; u sing the s ame commen ts
  616    . . . F   S BP59=$O( BPREOP(BP5 9)) Q:BP59 =""  D
  617    . . . . S  BPIEN02=+ $P($G(^BPS T(BP59,0)) ,U,4)
  618    . . . . S  BPRETV=$$ REOPEN^BPS BUTL(BP59, BPIEN02,$$ NOW^XLFDT, +DUZ,BPCOM M)
  619    . . . . W  !,$P(BPRE TV,U,2)
  620    . . . . I  +BPRETV S  BPCNT=BPC NT+1
  621    . . . . Q
  622    . . . I B PCNT>1 W ! !,BPCNT_"  claims hav e been reo pened.",!  Q
  623    . . . I B PCNT=1 W ! !,"1 claim  has been  reopened." ,! Q
  624    . . . I B PCNT=0 W ! !,"Unable  to reopen  claim" Q
  625    I '$D(BPR EOP) S VAL MBCK="R" D  PAUSE^VAL M1 Q
  626    D PAUSE^V ALM1
  627    D REDRAW^ BPSSCRUD(" Updating s creen for  reopened c laims...")
  628    Q
  629    ;
  630   SELECT ;
  631    I VALMCNT <1 D  Q
  632    . W !,"No  claims to  select."  D PAUSE^VA LM1 S VALM BCK="R"
  633    N BP59,BP Q
  634    D FULL^VA LM1
  635    S BP59=0
  636    S BPQ=0
  637    F  S BPLI NE=$$PROMP T("Select  item",""," A") D  Q:B PQ
  638    . I BPLIN E="^" S BP Q=1 Q
  639    . I '(BPL INE?1N.N)  W !,"Pleas e select a  SINGLE Rx  Line Item ." Q
  640    . S BP59= +$$GET59(+ BPLINE) I  BP59>0 S B PQ=1 Q
  641    . W !,"Pl ease selec t a VALID  Rx Line It em."
  642    I BPLINE= "^" S VALM BCK="R" Q
  643    I BP59=0  S VALMBCK= "R" W !,"I nvalid sel ection." D  PAUSE^VAL M1 Q
  644    I $$SELCL AIM(BP59)< 1 S VALMBC K="R" Q
  645    ;D RE^VAL M4
  646    D REDRAW
  647    S VALMBCK ="R"
  648    Q
  649    ;
  650   GET59(BPLI NE) ;
  651    Q +$O(^TM P("BPSREOP ",$J,"VALM ","IDX",BP LINE,0))
  652    ;
  653    ;display  selected c laim infor mation
  654   SELCLAIM(B P59) ;
  655    D FULL^VA LM1
  656    W @IOF
  657    N BPX,BPX 1,BPDFN,BP IEN02,BPCL DATA,BPCOM M,BPRETV,B PQ
  658    S BPDFN=+ $P($G(^BPS T(BP59,0)) ,U,6)
  659    S BPX1=$$ RXREF^BPSS CRU2(BP59)
  660    W !,?1,$$ LJ^BPSSCR0 2("PATIENT  NAME: "_$ $PATNAME(B PDFN),30)
  661    W ?33,$$L J^BPSSCR02 ("RX#: "_$ $RXNUM^BPS SCRU2(+BPX 1)_" "_$P( BPX1,U,2), 22)
  662    W ?57,$$L J^BPSSCR02 ("DRUG: "_ $$DRGNAME^ BPSSCRU2(B P59),22)
  663    ;ien in B PS CLAIMS
  664    S BPIEN02 =+$P($G(^B PST(BP59,0 )),U,4)
  665    I BPIEN02 =0 W !,"BP S CLAIMS f ile error! " D PAUSE^ VALM1 Q -1
  666    ;Close in fo
  667    S BPCLDAT A=$G(^BPSC (BPIEN02,9 00))
  668    ;if the i s no BPS C LAIMS - er ror
  669    W !,?3,"C LOSED  ",$ $FORMDATE^ BPSSCRU6(+ $P($G(^BPS C(BPIEN02, 900)),U,2) ,2)
  670    W !,?4,"E CME#: "_$$ ECMENUM^BP SSCRU2(BP5 9)_", DOS:  "_$$LASTD OS^BPSUTIL 2(BP59,1)
  671    W ", RELE ASE DATE:  "_$$FORMDA TE^BPSSCRU 6($$RELDAT E^BPSSCRU6 (+BPX1,+$P (BPX1,U,2) ),2)
  672    W !,?4,"P LAN: ",$$P LANNAME^BP SSCRU6(BP5 9)," INSUR ANCE: ",$$ INSNAME^BP SSCRU6(BP5 9)
  673    W !,?4,"C LOSE REASO N: ",$$CLR EASON^BPSS CRU6(+$P(B PCLDATA,U, 4))
  674    W !,?4,"D ROP TO PAP ER: ",$S(+ $P(BPCLDAT A,U,5)=1:" YES",1:"NO ")
  675    W !,?4,"C LOSE USER:  ",$P($G(^ VA(200,+$P (BPCLDATA, U,3),0)),U )
  676    W !!,"You  have sele cted the C LOSED elec tronic cla im listed  above.",!
  677    S BPCOMM= $$PROMPT(" REOPEN COM MENTS","", "F",1,40)
  678    Q:BPCOMM[ "^" 0
  679    S BPQ=$$Y ESNO^BPSSC RRS("ARE Y OU SURE YO U WANT TO  RE-OPEN TH IS CLAIM?  (Y/N)","No ")
  680    Q:BPQ<1 0
  681    S BPRETV= $$REOPEN^B PSBUTL(BP5 9,BPIEN02, $$NOW^XLFD T,+DUZ,BPC OMM)
  682    W !,$P(BP RETV,U,2), !
  683    W !,"1 cl aim has be en reopene d.",!
  684    D PAUSE^V ALM1
  685    Q 1
  686    ;
  687   REDRAW ;
  688    N BPARR
  689    D CLEAN^V ALM10
  690    D COLLECT ^BPSREOP1( BPDFN,BPST RT,BPEND)
  691    S VALMBCK ="R"
  692    Q
  693    ;input:
  694    ;BPSPROM  - prompt t ext
  695    ;BPSDFVL  - default  value (opt ional)
  696    ;BPMODE -  N- to ent er numbers , F - free  text, A -  free text  w/o limit ations
  697    ;returns:
  698    ; "respon se"
  699    ; or "^"  for quit
  700   PROMPT(BPS PROM,BPSDF VL,BPMODE, MINLEN,MAX LEN) ;
  701    N IR,X,Y, DIRUT,DIR
  702    I BPMODE= "N" S DIR( 0)="N^::2"
  703    I BPMODE= "A" S DIR( 0)="F^::2"
  704    I BPMODE= "F" S DIR( 0)="F^"_MI NLEN_":"_M AXLEN_":2^ K:(X?1"" " "."" "") X "
  705    S DIR("A" )=BPSPROM
  706    I $L($G(B PSDFVL))>0  S DIR("B" )=$G(BPSDF VL)
  707    D ^DIR I  $D(DIRUT)  Q "^"
  708    I Y["^" Q  "^"
  709    Q Y
  710    ;
  711    ;Update r eopen reco rd in BPS  CLAIM
  712    ;Input:
  713    ; BP02 -  ien in BPS  CLAIMS fi le
  714    ; BPCLOSE D - value  for CLOSED  field
  715    ; BPREOPD T - reopen  date/time
  716    ; BPDUZ -  user DUZ  (#200 ien)
  717    ; BPCOMM  - reopen c omment tex t
  718    ;Output:
  719    ; 0^messa ge_error -  error
  720    ; 1 - suc cess
  721   UPDREOP(BP 02,BPCLOSE D,BPREOPDT ,BPDUZ,BPC OMM) ;
  722    ;Now upda te ECME da tabase
  723    N RECIENS ,BPDA,BPLC K,ERRARR
  724    S RECIENS =BP02_","
  725    S BPDA(90 02313.02,R ECIENS,901 )=BPCLOSED  ;CLOSED =  "NO"
  726    S BPDA(90 02313.02,R ECIENS,906 )=BPREOPDT  ;reopen d ate/time
  727    S BPDA(90 02313.02,R ECIENS,907 )=+BPDUZ ; user
  728    S BPDA(90 02313.02,R ECIENS,908 )=BPCOMM ; comment
  729    L +^BPST( 9002313.02 ,+BP02):10
  730    S BPLCK=$ T
  731    I 'BPLCK  Q "0^Locke d record"   ;quit
  732    D FILE^DI E("","BPDA ","ERRARR" )
  733    I BPLCK L  -^BPST(90 02313.02,+ BP02)
  734    I $D(ERRA RR) Q "0^" _ERRARR("D IERR",1,"T EXT",1)
  735    Q 1
  736    ;
  737    ; Reopen  Closed Cla im display ed in ECME  User Scre en
  738   REOP ;
  739    Q
  740  
  741   Modified L ogic (Chan ges are hi ghlighted)
  742  
  743   BPSREOP1 ; BHAM ISC/S S - REOPEN  CLOSED CL AIMS ;03/0 7/08  14:5 4
  744    ;;1.0;E C LAIMS MGMT  ENGINE;** 3,7,10,11, 20,24**;JU N 2004;Bui ld 27
  745    ;;Per VA  Directive  6402, this  routine s hould not  be modifie d.
  746    ;Reopen c losed clai ms
  747    ;
  748    ;create a n ^TMP for  the list  manager
  749    ;
  750   COLLECT(BP DFN,BPSTRT ,BPEND) ;
  751    Q
  752    D CLEAN^V ALM10
  753    N LINE
  754    N BPIEN02 ,BPIEN59
  755    S LINE=1
  756    S BPIEN59 =0
  757    F  S BPIE N59=$O(^BP ST("AC",BP DFN,BPIEN5 9)) Q:+BPI EN59=0  D
  758    . ; Verif y claim is  within sp ecified da te range
  759    . I $P($G (^BPST(BPI EN59,12)), U,2)<BPSTR T Q
  760    . I $P($G (^BPST(BPI EN59,12)), U,2)>BPEND  Q
  761    . ; Don't  display d eleted pre scriptions
  762    . I $$RXD EL^BPSOS($ P(^BPST(BP IEN59,1),U ,11),$P(^B PST(BPIEN5 9,1),U,1))  Q
  763    . S BPIEN 02=+$P($G( ^BPST(BPIE N59,0)),U, 4)
  764    . ;if the  is no BPS  CLAIMS -  error
  765    . Q:BPIEN 02=0
  766    . ;if NOT  closed
  767    . I +$P($ G(^BPSC(BP IEN02,900) ),U)=0 Q
  768    . D SET^V ALM10(LINE ,$$LJ^BPSS CR02(LINE, 6)_$$CLAIM INF(BPIEN5 9),BPIEN59 )
  769    . S LINE= LINE+1
  770    S VALMCNT =LINE-1 ;" of PAGE" f ix - VALMC NT should  be EXACT n umber of l ines on th e screen
  771    Q
  772    ;
  773    ; BPSPTID  - Patient  IEN ; BPS DT1 - From  Date ; BP SDT2 - Thr u Date ; B PSAR - Arr ay of elig ible claim s, sorted  by Patient COLLPT(BPS PTID,BPSDT 1,BPSDT2,B PSAR) ; Co llect info  based on  user input  of Patien t data N B PS59,BPSRX DEL S BPS5 9="" K BPS AR,BPSRXAR  ; Loop th rough Tran saction Fi le, for us er input P atient, by  Date F  S  BPS59=$O( ^BPST("AC" ,BPSPTID,B PS59)) Q:B PS59=""  D  . I $$GET 1^DIQ(9002 313.59,BPS 59,1202,"I ")<BPSDT1  Q . I $$GE T1^DIQ(900 2313.59,BP S59,1202," I")>BPSDT2  Q . S BPS RXDEL=$$RX DEL(BPS59)  . I BPSRX DEL=0 Q .  S BPSAR(BP SPTID,BPS5 9)="" . D  STATS(BPSP TID,BPS59, .BPSAR) Q  ; ; BPSRXA R - Array  of Claim I ENs from u ser's inpu t ; BPSAR  - Array of  eligible  claims, so rted by Pa tientCOLLR X(BPSRXAR, BPSAR) ; C ollect inf o based on  user inpu t of Rx da ta N BPS59 ,BPSIEN,BP SIEN1,BPSP TID,BPSRXD EL K BPSAR  S BPSIEN= "" F  S BP SIEN=$O(BP SRXAR(BPSI EN)) Q:BPS IEN=""  D  . S BPSIEN 1=BPSIEN .  F  S BPSI EN1=$O(^BP ST("B",BPS IEN1)) Q:B PSIEN1'[BP SIEN  D .  . S BPS59= "" . . F   S BPS59=$O (^BPST("B" ,BPSIEN1,B PS59)) Q:B PS59=""  D  . . . ; G et Patient  ID . . .  S BPSPTID= $$GET1^DIQ (9002313.5 9,BPS59,5, "I") . . .  I BPSPTID ="" Q . .  . S BPSRXD EL=$$RXDEL (BPS59) .  . . I BPSR XDEL=0 Q .  . . S BPS AR(BPSPTID ,BPS59)=""  . . . D S TATS(BPSPT ID,BPS59,. BPSAR) Q ;  ; BPSPTRX  - Flag fo r user inp ut type; 1 =Patient i nput, 2=RX  input ; B PSPTID - P atient IEN  ; BPSDT1  - From Dat e ; BPSDT2  - Thru Da te ; BPSRX AR - Array  of Claim  IENs from  user's inp ut ; BPSAR  - Array o f eligible  claims, s orted by P atientBUIL D(BPSPTRX, BPSPTID,BP SDT1,BPSDT 2,BPSRXAR, BPSAR) ; b uild the L istView N  BPS59,BPSC LCNT,BPSCL MINFO,BPSI NSDAT,BPSI NSUR,BPSLI NE,BPSLNS, BPSPTCNT,B PSPTID1 N  BPSPTINFO, BPSSTAT,BP SSTR D CLE AN^VALM10  ; Save All  User inpu t to "FILT ERS" porti on of ^TMP  file. ; T his will b e needed w hen the ca ll to REDR AW the lis t file is  made. S @V ALMAR@("FI LTERS","PT RX")=BPSPT RX I BPSPT RX=1 D . S  @VALMAR@( "FILTERS", "PTID")=BP SPTID . S  @VALMAR@(" FILTERS"," FROMDT")=B PSDT1 . S  @VALMAR@(" FILTERS"," THRUDT")=B PSDT2 I BP SPTRX=2 D  . M @VALMA R@("FILTER S","BPSRXA R")=BPSRXA R S (BPSLI NE,BPSPTCN T)=0 S (BP SPTID,BPSP TID1,BPS59 )="" F  S  BPSPTID=$O (BPSAR(BPS PTID)) Q:B PSPTID=""   D . S BPS PTCNT=BPSP TCNT+1 . S  BPSCLCNT= 0 . S BPSS TAT=$$STAT S1(BPSPTID ,.BPSAR) .  F  S BPS5 9=$O(BPSAR (BPSPTID,B PS59)) Q:B PS59=""  D  . . I BPS PTID'=BPSP TID1 D . .  . S BPSIN SDAT=$$GET INSUR^BPSS CRU2(BPS59 ) . . . S  BPSPTINFO= $$PATINF^B PSSCR02(BP SPTID,BPSI NSDAT) . .  . S BPSLI NE=BPSLINE +1 . . . S  BPSSTR=$$ LJ^BPSSCR0 2(BPSPTCNT ,4)_BPSPTI NFO_" "_BP SSTAT . .  . S BPSINS UR=+BPSINS DAT . . .  D SAVEARR^ BPSSCR02(V ALMAR,BPSP TCNT,BPSCL CNT,BPSPTI D,BPS59,BP SLINE,BPSS TR,BPSINSU R) . . . S  BPSPTID1= BPSPTID .  . S BPSCLM INFO=$$CLA IMINF^BPSS CR02(BPS59 ) . . S BP SCLCNT=BPS CLCNT+1 .  . S BPSLIN E=BPSLINE+ 1 . . S BP SSTR=" "_B PSPTCNT_". "_BPSCLCNT _" "_BPSCL MINFO . .  D SAVEARR^ BPSSCR02(V ALMAR,BPSP TCNT,BPSCL CNT,BPSPTI D,BPS59,BP SLINE,BPSS TR,BPSINSU R) . . N B PSCMT,X .  . S BPSLNS =$$ADDINF^ BPSSCR03(B PS59,.BPSC MT,74,"R")  . . F X=1 :1:BPSLNS  D . . . I  $G(BPSCMT( X))="" Q .  . . S BPS LINE=BPSLI NE+1 . . .  S BPSSTR= " "_BPSCMT (X) . . .  D SAVEARR^ BPSSCR02(V ALMAR,BPSP TCNT,BPSCL CNT,BPSPTI D,BPS59,BP SLINE,BPSS TR,BPSINSU R) S VALMC NT=BPSLINE -1 Q ;RXDE L(BPIEN59)  ; Check i f RX Delet ed N BPIEN 02,BPSTAR, BPST3,BPST 9,BPST11 D  GETS^DIQ( "9002313.5 9",BPIEN59 ,"1.11;9;3 ","I","BPS TAR") S BP ST11=$G(BP STAR("9002 313.59",BP IEN59_",", 1.11,"I"))  S BPST9=$ G(BPSTAR(" 9002313.59 ",BPIEN59_ ",",9,"I") ) S BPST3= $G(BPSTAR( "9002313.5 9",BPIEN59 _",",3,"I" )) ; Don't  display d eleted pre scriptions  I $$RXDEL ^BPSOS(BPS T11,BPST9)  Q 0 ;if t he is no B PS CLAIMS  - error I  +BPST3=0 Q  0 Q 1 ; ;  BPSPTID -  Patient I EN ; BPS59  - Claim I EN ; BPSAR  - Array o f eligible  claims, s orted by P atient ; U pdate the  BPSAR arra y, at the  patient le vel, with  counters ;  based on  each claim . Counters  will capt ure if the  claim is  ; Payable,  Rejected,  Reversal  Accepted o r Reversal  Rejected. STATS(BPSP TID,BPS59, BPSAR) ; C apture Pat ient Stats  N BPSACRV ,BPSELIG,B PSELIG1,BP SJRV,BPSPB ,BPSRJ,BPX  S BPSPB=$ P($G(BPSAR (BPSPTID)) ,"^",2) S  BPSRJ=$P($ G(BPSAR(BP SPTID)),"^ ",3) S BPS ACRV=$P($G (BPSAR(BPS PTID)),"^" ,4) S BPSJ RV=$P($G(B PSAR(BPSPT ID)),"^",5 ) S BPX=$P ($$CLAIMST ^BPSSCRU3( BPS59),"^" ) I BPX="E  PAYABLE"  S BPSPB=BP SPB+1 I BP X="E REJEC TED" S BPS RJ=BPSRJ+1  I BPX="E  REVERSAL A CCEPTED" S  BPSACRV=B PSACRV+1 I  BPX="E RE VERSAL REJ ECTED" S B PSJRV=BPSJ RV+1 S BPS ELIG=$$ELI GCODE^BPSS CR05(BPS59 ) S BPSELI G1="Unk" I  BPSELIG=" V" S BPSEL IG1="VET"  I BPSELIG= "T" S BPSE LIG1="TRI"  I BPSELIG ="C" S BPS ELIG1="CVA " S BPSAR( BPSPTID)=B PSELIG1_"^ "_BPSPB_"^ "_BPSRJ_"^ "_BPSACRV_ "^"_BPSJRV  Q ; ; BPS PTID - Pat ient IEN ;  BPSAR - A rray of el igible cla ims, sorte d by Patie nt ; Forma t the pati ent level  informatio n captured  in the ST ATS ; subr outine for  display i n the List View. The  display of  this ; in formation  will match  the displ ay format  used in EC ME User Sc reen.STATS 1(BPSPTID, BPSAR) ; F ormat Stat s line for  ListView  N BPSSTATS ,BPSSTAT1  S BPSSTATS =$G(BPSAR( BPSPTID))  S BPSSTATS 1=$P(BPSST ATS,"^")_"  " I +$P(B PSSTATS,"^ ",2)>0,$P( BPSSTATS," ^",3,5)="^ ^" S BPSST ATS1=BPSST ATS1_"ALL  payable" E   D . S BP SSTATS1=BP SSTATS1_"P b:"_+$P(BP SSTATS,"^" ,2)_" " .  S BPSSTATS 1=BPSSTATS 1_"Rj:"_+$ P(BPSSTATS ,"^",3)_"  " . S BPSS TATS1=BPSS TATS1_"AcR
  774   v:"_+$P(BP SSTATS,"^" ,4)_" " .  S BPSSTATS 1=BPSSTATS 1_"RjRv:"_ +$P(BPSSTA TS,"^",5)  Q BPSSTATS 1
  775   ;
  776    ;claim in fo for lis t manager  screen
  777   CLAIMINF(B P59) ;*/
  778    Q $$CLAIM INF^BPSSCR 02(BP59)
  779    ;
  780    ;patient  info for h eader
  781   PATINF(BPD FN) ;*/
  782    N X
  783    S X=$E($$ PATNAME(BP DFN),1,22) _" "_$$SSN 4^BPSSCRU2 (BPDFN)
  784    Q $$LJ^BP SSCR02(X,2 9) ;name
  785    ;
  786    ;-------- ---- patie nt's name
  787   PATNAME(BP DFN) ;
  788    Q $E($P($ G(^DPT(BPD FN,0)),U), 1,30)
  789    ;
  790    ;/**
  791    ;ECME Use r Screen R eopen Clos ed Claim H idden Acti on (ROC)
  792    ;**/
  793   EUSCREOP ;
  794    N BPREOP, BP59,BPDFN ,BPDISP,BP CNT,BPI,BP J,BPCOMM,B PRETV,BPIE N02,BPSRXN UM
  795    ; Check f or BPS MAN AGER secur ity key
  796    I '$D(^XU SEC("BPS M ANAGER",DU Z)) D  Q
  797    . W !,"Yo u must hol d the BPS  MANAGER Se curity Key  to access  the",!,"R eopen Clos ed Claims  option."
  798    . S VALMB CK="R"
  799    . D PAUSE ^VALM1
  800    S (BP59,B PCNT,BPI,B PJ)=0
  801    I '$D(@(V ALMAR)) G  REOP
  802    D FULL^VA LM1
  803    ; Select  the claim( s) to reop en
  804    W !,"Ente r the line  number fo r the clai m you want  to reopen ."
  805    I $$ASKLI NES^BPSSCR U4("","C", .BPREOP,VA LMAR) D
  806    . ; Build  array to  display to  user
  807    . F  S BP 59=$O(BPRE OP(BP59))  Q:BP59=""   D
  808    . . S BPD FN=+$P($G( ^BPST(BP59 ,0)),U,6)
  809    . . S BPC NT=BPCNT+1
  810    . . I '$D (BPDISP(BP DFN)) S BP DISP(BPDFN ,BPCNT)=$$ LJ^BPSSCR0 2($$PATNAM E(BPDFN)_"  :",50),BP CNT=BPCNT+ 1
  811    . . S BPD ISP(BPDFN, BPCNT)=@VA LMAR@($P(B PREOP(BP59 ),U,1),0)
  812    . . ;
  813    . . ; che ck for non -billable  entry
  814    . . I $$N B^BPSSCR03 (BP59) D   Q
  815    . . . S B PCNT=BPCNT +1
  816    . . . S B PDISP(BPDF N,BPCNT)=" Entry is N ON BILLABL E.  There  is no clai m to reope n."
  817    . . . K B PREOP(BP59 )
  818    . . . Q
  819    . . ;
  820    . . ; Mak e sure thi s claim is  closed
  821    . . I '$$ CLOSED02^B PSSCR03($P ($G(^BPST( BP59,0)),U ,4)) D
  822    . . . S B PCNT=BPCNT +1
  823    . . . S B PDISP(BPDF N,BPCNT)=" Claim NOT  closed and  cannot be  reopened. "
  824    . . . K B PREOP(BP59 )
  825    . . ; Mak e sure the  Prescript ion isn't  deleted
  826    . . I $$R XDEL^BPSOS ($P(^BPST( BP59,1),U, 11),$P(^BP ST(BP59,1) ,U,1)) D
  827    . . . S B PCNT=BPCNT +1
  828    . . . S B PDISP(BPDF N,BPCNT)=" The prescr iption has  been mark ed DELETED  and canno t be reope ned."
  829    . . . K B PREOP(BP59 )
  830    . ; Displ ay the sel ected clai ms from th e display  array
  831    . W !!,"Y ou've chos en to reop en the fol lowing pre scriptions (s) for"
  832    . F  S BP I=$O(BPDIS P(BPI)) Q: BPI=""  D
  833    . . F  S  BPJ=$O(BPD ISP(BPI,BP J)) Q:BPJ= ""  D
  834    . . . W ! ,BPDISP(BP I,BPJ)
  835    . . Q
  836    . Q
  837    ; If ther e are any  closed cla ims select ed, verify  if the us ers still  wants to r eopen
  838    I $D(BPRE OP) D
  839    . W !!,"A ll Selecte d Rxs will  be reopen ed using t he same in formation  gathered i n the",!," following  prompts.", !!
  840    . I $$YES NO^BPSSCRR S("Are you  sure?(Y/N )")=1 D
  841    . . ; Get  the Reope n Comments  to be sto red in the  BPS CLAIM S file
  842    . . S BPC OMM=$$PROM PT("REOPEN  COMMENTS" ,"","F",1, 40)
  843    . . Q:BPC OMM["^"
  844    . . ; Do  we REALLY  want to re open the c laims?
  845    . . I $$Y ESNO^BPSSC RRS("ARE Y OU SURE YO U WANT TO  RE-OPEN TH IS CLAIM?  (Y/N)","No ")=1 D
  846    . . . S ( BPCNT,BP59 )=0
  847    . . . ; L oop throug h all sele cted claim s and reop en them on e at a tim e
  848    . . . ; u sing the s ame commen ts
  849    . . . F   S BP59=$O( BPREOP(BP5 9)) Q:BP59 =""  D
  850    . . . . S  BPIEN02=+ $P($G(^BPS T(BP59,0)) ,U,4)
  851    . . . . S  BPRETV=$$ REOPEN^BPS BUTL(BP59, BPIEN02,$$ NOW^XLFDT, +DUZ,BPCOM M)
  852    . . . . W  !,$P(BPRE TV,U,2)
  853    . . . . I  +BPRETV S  BPCNT=BPC NT+1
  854    . . . . Q
  855    . . . I B PCNT>1 W ! !,BPCNT_"  claims hav e been reo pened.",!  Q
  856    . . . I B PCNT=1 W ! !,"1 claim  has been  reopened." ,! Q
  857    . . . I B PCNT=0 W ! !,"Unable  to reopen  claim" Q
  858    I '$D(BPR EOP) S VAL MBCK="R" D  PAUSE^VAL M1 Q
  859    D PAUSE^V ALM1
  860    I $D(@VAL MAR@("FILT ERS")) D R EDRAW Q
  861    E  D REDR AW^BPSSCRU D("Updatin g screen f or reopene d claims.. .")
  862    Q
  863    ;
  864   SELECT ;
  865    I VALMCNT <1 D  Q
  866    . W !,"No  claims to  select."  D PAUSE^VA LM1 S VALM BCK="R"
  867    N BP59,BP Q
  868    D FULL^VA LM1
  869    S BP59=0
  870    S BPQ=0
  871    F  S BPLI NE=$$PROMP T("Select  item",""," A") D  Q:B PQ
  872    . I BPLIN E="^" S BP Q=1 Q
  873    . I '(BPL INE?1N.N)  W !,"Pleas e select a  SINGLE Rx  Line Item ." Q
  874    . S BP59= +$$GET59(+ BPLINE) I  BP59>0 S B PQ=1 Q
  875    . W !,"Pl ease selec t a VALID  Rx Line It em."
  876    I BPLINE= "^" S VALM BCK="R" Q
  877    I BP59=0  S VALMBCK= "R" W !,"I nvalid sel ection." D  PAUSE^VAL M1 Q
  878    I $$SELCL AIM(BP59)< 1 S VALMBC K="R" Q
  879    ;D RE^VAL M4
  880    D REDRAW
  881    S VALMBCK ="R"
  882    Q
  883    ;
  884   GET59(BPLI NE) ;
  885    Q +$O(^TM P("BPSREOP ",$J,"VALM ","IDX",BP LINE,0))
  886    ;
  887    ;display  selected c laim infor mation
  888   SELCLAIM(B P59) ;
  889    D FULL^VA LM1
  890    W @IOF
  891    N BPX,BPX 1,BPDFN,BP IEN02,BPCL DATA,BPCOM M,BPRETV,B PQ
  892    S BPDFN=+ $P($G(^BPS T(BP59,0)) ,U,6)
  893    S BPX1=$$ RXREF^BPSS CRU2(BP59)
  894    W !,?1,$$ LJ^BPSSCR0 2("PATIENT  NAME: "_$ $PATNAME(B PDFN),30)
  895    W ?33,$$L J^BPSSCR02 ("RX#: "_$ $RXNUM^BPS SCRU2(+BPX 1)_" "_$P( BPX1,U,2), 22)
  896    W ?57,$$L J^BPSSCR02 ("DRUG: "_ $$DRGNAME^ BPSSCRU2(B P59),22)
  897    ;ien in B PS CLAIMS
  898    S BPIEN02 =+$P($G(^B PST(BP59,0 )),U,4)
  899    I BPIEN02 =0 W !,"BP S CLAIMS f ile error! " D PAUSE^ VALM1 Q -1
  900    ;Close in fo
  901    S BPCLDAT A=$G(^BPSC (BPIEN02,9 00))
  902    ;if the i s no BPS C LAIMS - er ror
  903    W !,?3,"C LOSED  ",$ $FORMDATE^ BPSSCRU6(+ $P($G(^BPS C(BPIEN02, 900)),U,2) ,2)
  904    W !,?4,"E CME#: "_$$ ECMENUM^BP SSCRU2(BP5 9)_", DOS:  "_$$LASTD OS^BPSUTIL 2(BP59,1)
  905    W ", RELE ASE DATE:  "_$$FORMDA TE^BPSSCRU 6($$RELDAT E^BPSSCRU6 (+BPX1,+$P (BPX1,U,2) ),2)
  906    W !,?4,"P LAN: ",$$P LANNAME^BP SSCRU6(BP5 9)," INSUR ANCE: ",$$ INSNAME^BP SSCRU6(BP5 9)
  907    W !,?4,"C LOSE REASO N: ",$$CLR EASON^BPSS CRU6(+$P(B PCLDATA,U, 4))
  908    W !,?4,"D ROP TO PAP ER: ",$S(+ $P(BPCLDAT A,U,5)=1:" YES",1:"NO ")
  909    W !,?4,"C LOSE USER:  ",$P($G(^ VA(200,+$P (BPCLDATA, U,3),0)),U )
  910    W !!,"You  have sele cted the C LOSED elec tronic cla im listed  above.",!
  911    S BPCOMM= $$PROMPT(" REOPEN COM MENTS","", "F",1,40)
  912    Q:BPCOMM[ "^" 0
  913    S BPQ=$$Y ESNO^BPSSC RRS("ARE Y OU SURE YO U WANT TO  RE-OPEN TH IS CLAIM?  (Y/N)","No ")
  914    Q:BPQ<1 0
  915    S BPRETV= $$REOPEN^B PSBUTL(BP5 9,BPIEN02, $$NOW^XLFD T,+DUZ,BPC OMM)
  916    W !,$P(BP RETV,U,2), !
  917    W !,"1 cl aim has be en reopene d.",!
  918    D PAUSE^V ALM1
  919    Q 1
  920    ;
  921   REDRAW ;
  922    N BPARR,B PSDT1,BPSD T2,BPSPTID ,BPSPTRX
  923    S BPSPTRX =@VALMAR@( "FILTERS", "PTRX")
  924    I BPSPTRX =1 D
  925    . S BPSPT ID=@VALMAR @("FILTERS ","PTID")
  926    . S BPSDT 1=@VALMAR@ ("FILTERS" ,"FROMDT")
  927    . S BPSDT 2=@VALMAR@ ("FILTERS" ,"THRUDT")
  928    I BPSPTRX =2 D
  929    . K BPSRX AR
  930    . M BPSRX AR=@VALMAR @("FILTERS ","BPSRXAR ")
  931    D CLEAN^V ALM10
  932    I BPSPTRX =1 D COLLP T^BPSREOP1 (BPSPTID,B PSDT1,BPSD T2,.BPSAR)
  933    I BPSPTRX =2 D COLLR X^BPSREOP1 (.BPSRXAR, .BPSAR)
  934    D BUILD^B PSREOP1(BP SPTRX,.BPS AR)
  935    D COLLECT ^BPSREOP1( BPDFN,BPST RT,BPEND)
  936    S VALMBCK ="R"
  937    Q
  938    ;input:
  939    ;BPSPROM  - prompt t ext
  940    ;BPSDFVL  - default  value (opt ional)
  941    ;BPMODE -  N- to ent er numbers , F - free  text, A -  free text  w/o limit ations
  942    ;returns:
  943    ; "respon se"
  944    ; or "^"  for quit
  945   PROMPT(BPS PROM,BPSDF VL,BPMODE, MINLEN,MAX LEN) ;
  946    N IR,X,Y, DIRUT,DIR
  947    I BPMODE= "N" S DIR( 0)="N^::2"
  948    I BPMODE= "A" S DIR( 0)="F^::2"
  949    I BPMODE= "F" S DIR( 0)="F^"_MI NLEN_":"_M AXLEN_":2^ K:(X?1"" " "."" "") X "
  950    S DIR("A" )=BPSPROM
  951    I $L($G(B PSDFVL))>0  S DIR("B" )=$G(BPSDF VL)
  952    D ^DIR I  $D(DIRUT)  Q "^"
  953    I Y["^" Q  "^"
  954    Q Y
  955    ;
  956    ;Update r eopen reco rd in BPS  CLAIM
  957    ;Input:
  958    ; BP02 -  ien in BPS  CLAIMS fi le
  959    ; BPCLOSE D - value  for CLOSED  field
  960    ; BPREOPD T - reopen  date/time
  961    ; BPDUZ -  user DUZ  (#200 ien)
  962    ; BPCOMM  - reopen c omment tex t
  963    ;Output:
  964    ; 0^messa ge_error -  error
  965    ; 1 - suc cess
  966   UPDREOP(BP 02,BPCLOSE D,BPREOPDT ,BPDUZ,BPC OMM) ;
  967    ;Now upda te ECME da tabase
  968    N RECIENS ,BPDA,BPLC K,ERRARR
  969    S RECIENS =BP02_","
  970    S BPDA(90 02313.02,R ECIENS,901 )=BPCLOSED  ;CLOSED =  "NO"
  971    S BPDA(90 02313.02,R ECIENS,906 )=BPREOPDT  ;reopen d ate/time
  972    S BPDA(90 02313.02,R ECIENS,907 )=+BPDUZ ; user
  973    S BPDA(90 02313.02,R ECIENS,908 )=BPCOMM ; comment
  974    L +^BPST( 9002313.02 ,+BP02):10
  975    S BPLCK=$ T
  976    I 'BPLCK  Q "0^Locke d record"   ;quit
  977    D FILE^DI E("","BPDA ","ERRARR" )
  978    I BPLCK L  -^BPST(90 02313.02,+ BP02)
  979    I $D(ERRA RR) Q "0^" _ERRARR("D IERR",1,"T EXT",1)
  980    Q 1
  981    ;
  982    ; Reopen  Closed Cla im display ed in ECME  User Scre en
  983   REOP ;
  984    Q
  985  
  986  
  987   Subroutine  Name
  988   RES^BPSSCR RS
  989   Enhancemen t Category
  990    New
  991    Modify
  992    Delete
  993    No Change
  994   Story
  995   US597
  996   Related Me nu Options  or ListMa n Actions
  997   ROC Reopen  CLOSED Cl aim
  998   Related Ro utines
  999   This Subro utine is C alled By
  1000   This Subro utine Call s
  1001  
  1002   BPS PRTCL  USRSCR RES UBMIT acti on
  1003   FULL^VALM1
  1004   $$ASKLINES ^BPSSCRU4
  1005   $$RESUBMIT ^BPSSCRRS
  1006   REDRAW^BPS REOP1
  1007   REDRAW^BPS SCRUD
  1008   Related In tegration  Control Re gistration s (ICRs)
  1009   n/a
  1010   Data Passi ng
  1011    Parameter  Input
  1012    Parameter  Output
  1013    Function  Return Val ue
  1014    Global Mo dified
  1015   Input Attr ibute Name  and Defin ition
  1016   Name: 
  1017   Definition
  1018    New       Modify       Delete       No Cha nge
  1019   Current Lo gic
  1020  
  1021   BPSSCRRS ; BHAM ISC/S S - ECME S CREEN RESU BMIT ;05-A PR-05
  1022    ;;1.0;E C LAIMS MGMT  ENGINE;** 1,3,5,7,8, 10,11,20** ;JUN 2004; Build 27
  1023    ;;Per VA  Directive  6402, this  routine s hould not  be modifie d.
  1024    Q
  1025    ;IA 4702
  1026    ;IA 5355  for call t o $$RXBILL ^IBNCPUT3
  1027    ;
  1028   RES ;
  1029    N BPRET,B PSARR59
  1030    I '$D(@(V ALMAR)) Q
  1031    D FULL^VA LM1
  1032    W !,"Ente r the line  numbers f or the cla im(s) to b e resubmit ted."
  1033    S BPRET=$ $ASKLINES^ BPSSCRU4(" Select ite m(s)","C", .BPSARR59, VALMAR)
  1034    I BPRET=" ^" S VALMB CK="R" Q
  1035    ;go thru  all select ed claims  and try to  resubmit  them separ ately
  1036    ;update t he content  of the sc reen and d isplay it
  1037    ;only if  at least o ne claim w as submitt ed success fully
  1038    I $$RESUB MIT(.BPSAR R59) D RED RAW^BPSSCR UD("Updati ng screen  for resubm itted clai ms...")
  1039    E  S VALM BCK="R"
  1040    Q
  1041  
  1042   Modified L ogic (Chan ges are hi ghlighted)
  1043  
  1044   BPSSCRRS ; BHAM ISC/S S - ECME S CREEN RESU BMIT ;05-A PR-05
  1045    ;;1.0;E C LAIMS MGMT  ENGINE;** 1,3,5,7,8, 10,11,20,2 4**;JUN 20 04;Build 2 7
  1046    ;;Per VA  Directive  6402, this  routine s hould not  be modifie d.
  1047    Q
  1048    ;IA 4702
  1049    ;IA 5355  for call t o $$RXBILL ^IBNCPUT3
  1050    ;
  1051   RES ;
  1052    N BPRET,B PSARR59
  1053    I '$D(@(V ALMAR)) Q
  1054    D FULL^VA LM1
  1055    W !,"Ente r the line  numbers f or the cla im(s) to b e resubmit ted."
  1056    S BPRET=$ $ASKLINES^ BPSSCRU4(" Select ite m(s)","C", .BPSARR59, VALMAR)
  1057    I BPRET=" ^" S VALMB CK="R" Q
  1058    ;go thru  all select ed claims  and try to  resubmit  them separ ately
  1059    ;update t he content  of the sc reen and d isplay it
  1060    ;only if  at least o ne claim w as submitt ed success fully
  1061    I $$RESUB MIT(.BPSAR R59) D 
  1062    . I '$D(@ VALMAR@("F ILTERS"))  D REDRAW^B PSSCRUD("U pdating sc reen for r esubmitted  claims... ")
  1063    . E  D RE DRAW^BPSRE OP1
  1064    E  S VALM BCK="R"
  1065    Q
  1066      
  1067  
  1068   Subroutine  Name
  1069   ^BPSSCRU4
  1070   Enhancemen t Category
  1071    New
  1072    Modify
  1073    Delete
  1074    No Change
  1075   Story
  1076   US597
  1077   Related Me nu Options  or ListMa n Actions
  1078   ROC Reopen  CLOSED Cl aim
  1079   Current Lo gic
  1080  
  1081   BPSSCRU4 ; BHAM ISC/S S - ECME S CREEN UTIL ITIES ;05- APR-05 ;;1 .0;E CLAIM S MGMT ENG INE;**1,3, 21**;JUN 2 004;Build  28 ;;Per V A Directiv e 6402, th is routine  should no t be modif ied. ;USER  SCREEN Q  ; ;repeate dly prompt s the user  for line#  ;the user  should "^ " to quit  or enter a  correct l ine # ;inp ut: ; BPRO MPT - prom pt string  ; BPTYPE e xpected us er's selec tion on le vel  ; of  P-patient  or C-claim  or PC - b oth ; BPER RMES - opt ional - th e message  to display  when the  user ; tri es to make  multi lin e selectio n ; BPDFLT  - default  value for  the promp t (optiona l) ;output : ; piece  1:  ; 1 -  okay ; <0  - errors ;  0 - user  wants to q uit ; piec e 2: patie nt ien #2  ; piece 3:  insurance  ien #36 ;  piece 4:  ptr to #90 02313.59 ;  piece 5:  1st line f or index(e s) in LM " VALM" arra y ; piece  6: patient 's index ;  piece 7:  claim's in dexASKLINE (BPROMPT,B PTYPE,BPER RMES,BPDFL T) ; N BPR ET,BPCNT S  BPRET="", BPCNT=0 F   S BPRET=$ $SELLINE(B PROMPT,BPT YPE,VALMAR ,$G(BPDFLT )) Q:BPRET '<0 D . ;D  RE^VALM4  . ; . I BP CNT<1 S BP CNT=BPCNT+ 1 W ! . E   S BPCNT=0  D RE^VALM 4 . I BPRE T=-1 W " -  Invalid l ine number " ; (inval id Patient  summary l ine)" . I  BPRET=-8 W  " - ",$S( $G(BPERRME S)]"":BPER RMES,1:" I nvalid lin e number")  . I BPRET =-4 W " -  Invalid li ne number"  ; (invali d RX line) " . I BPRE T=-2 W " -  Please se lect Patie nt's summa ry line."  . I BPRET= -3 W " - P lease spec ify RX lin e." . I BP RET<-4 W "  - Incorre ct format. " ; Corrup ted array  (",BPRET," )" Q BPRET  ;/** ;pro mpts the u ser for li ne# for va rious menu  option of  the User  Screen ;in put: ; BPR OMPT - pro mpt string  ; BPTYPE  - expected  user's se lection on  level  ;  of P-patie nt or C-cl aim or PC  - both ; B PTMP1 - te mporary gl obal (VALM AR) ; BPDF LT - defau lt value f or the pro mpt (optio nal) ;outp ut: ; piec e 1:  ; 1  - okay ; < 0 - errors  ; 0 - use r wants to  quit ; pi ece 2: pat ient ien # 2 ; piece  3: insuran ce ien #36  ; piece 4 : ptr to # 9002313.59  ; piece 5 : 1st line  for index (es) in LM  "VALM" ar ray ; piec e 6: patie nt's index  ; piece 7 : claim's  indexSELLI NE(BPROMPT ,BPTYPE,BP TMP1,BPDFL T) ;*/ N B PX,BPLINE, BPPATIND,B PCLMIND N  BPDFN,BPSI NSUR,BP59, BP1LN ; ;  Attempt to  determine  default i f none pas sed in I ' $G(BPDFLT)  S BPDFLT= $$DEFAULT( BPTYPE,BPT MP1) ; S B PLINE=$$PR OMPT(BPROM PT,$G(BPDF LT)) I BPL INE="^" Q  0 S BPPATI ND=+$P(BPL INE,".") I  (BPLINE[" -")!(BPLIN E[",") Q - 8 ;multipl e line inp ut in not  allowed I  '$D(@BPTMP 1@("LMIND" ,BPPATIND) ) Q -1 ;th e patient  level does n't exist  S BPCLMIND =+$P(BPLIN E,".",2) I  BPTYPE="P ",BPCLMIND >0 Q -2 ;P  was reque sted but c laim porti on was pro vided I BP TYPE="C",B PCLMIND=0  Q -3 ;C wa s requeste d but clai m portion  was not pr ovided I ' $D(@BPTMP1 @("LMIND", BPPATIND,B PCLMIND))  Q -4 ;the  claim leve l doesn't  exist S BP DFN=$O(@BP TMP1@("LMI ND",BPPATI ND,BPCLMIN D,0)) I +B PDFN=0 Q - 5 ;error S  BPSINSUR= $O(@BPTMP1 @("LMIND", BPPATIND,B PCLMIND,BP DFN,"")) I  BPSINSUR= "" Q -6 ;e rror ;if f ractional  part was e ntered I B PCLMIND>0  D  I +BP59 =0 Q -7 ;e rror . S B P59=$O(@BP TMP1@("LMI ND",BPPATI ND,BPCLMIN D,BPDFN,BP SINSUR,0))  I BPCLMIN D=0 S BP59 =0 S BP1LN =$O(@BPTMP 1@("LMIND" ,BPPATIND, BPCLMIND,B PDFN,BPSIN SUR,BP59,0 )) I +BP1L N=0 Q -7 ; error Q "1 "_U_BPDFN_ U_BPSINSUR _U_BP59_U_ BP1LN_U_BP PATIND_U_B PCLMIND ;  ;input: ;B PSPROM - p rompt text  ;BPSDFVL  - default  value (opt ional) ;re turns: ; " response^" PROMPT(BPS PROM,BPSDF VL) ; N BP RET,DIR,X, Y,DIRUT S  BPRET="^"  S DIR(0)=" F^::2",DIR ("A")=BPSP ROM I $L($ G(BPSDFVL) )>0 S DIR( "B")=$G(BP SDFVL) D ^ DIR I $D(D IRUT) Q "^ " S $P(BPR ET,U)=Y Q  BPRET ; ;/ ** ;check  and proces s user inp ut ;input:  ; BPLINE  - input st ring ; BPT YPE - expe cted user' s selectio n on level   ; of P-p atient or  C-claim or  PC - both  ; BPTMP1  - temporar y global ( VALMAR) ;o utput: ; p iece 1:  ;  1 - okay  ; <0 - err ors ; 0 -  user wants  to quit ;  piece 2:  patient ie n #2 ; pie ce 3: insu rance ien  #36 ; piec e 4: ptr t o #9002313 .59 ; piec e 5: 1st l ine for in dex(es) in  LM "VALM"  array ; p iece 6: pa tient's in dex ; piec e 7: claim 's indexCH ECKLN(BPLI NE,BPTYPE, BPTMP1) ;* / N BPX,BP PATIND,BPC LMIND N BP DFN,BPSINS UR,BP59,BP 1LN I BPLI NE="^" Q 0  S BPPATIN D=+$P(BPLI NE,".") I  '$D(@BPTMP 1@("LMIND" ,BPPATIND) ) Q -1 ;th e patient  level does n't exist  S BPCLMIND =+$P(BPLIN E,".",2) I  BPTYPE="P ",BPCLMIND >0 Q -2 ;P  was reque sted but c laim porti on was pro vided I BP TYPE="C",B PCLMIND=0  Q -3 ;C wa s requeste d but clai m portion  was not pr ovided I ' $D(@BPTMP1 @("LMIND", BPPATIND,B PCLMIND))  Q -4 ;the  claim leve l doesn't  exist S BP DFN=$O(@BP TMP1@("LMI ND",BPPATI ND,BPCLMIN D,0)) I +B PDFN=0 Q - 5 ;error S  BPSINSUR= $O(@BPTMP1 @("LMIND", BPPATIND,B PCLMIND,BP DFN,"")) I  BPSINSUR= "" Q -6 ;e rror ;if f ractional  part was e ntered I B PCLMIND>0  D  I +BP59 =0 Q -7 ;e rror . S B P59=$O(@BP TMP1@("LMI ND",BPPATI ND,BPCLMIN D,BPDFN,BP SINSUR,0))  I BPCLMIN D=0 S BP59 =0 S BP1LN =$O(@BPTMP 1@("LMIND" ,BPPATIND, BPCLMIND,B PDFN,BPSIN SUR,BP59,0 )) I +BP1L N=0 Q -7 ; error Q "1 "_U_BPDFN_ U_BPSINSUR _U_BP59_U_ BP1LN_U_BP PATIND_U_B PCLMIND ;  ; ;BPTMP =  VALMAR ;i nput: ; BP ROMPT - pr ompt text  ; BPTYPE -  expected  user's sel ection on  level  ; o f P-patien t or C-cla im or PC -  both ; BP TMP - temp orary glob al (like V ALMAR) ; B PARRLN2 -  to return  results ;o utput : ;  1 if okay  ; -1 -inva lid format  ; ^ - qui t ; BPARRL N2 - Array (B59)="lin e# in VALM "^"Patient Index.Clai
  1082   mIndex" ;e xample: ;  BPARR(3004 5.00001)=1 34^2.34ASK LINES(BPRO MPT,BPTYPE ,BPARRLN2, BPTMP) ; N  BPQ,BPXLN ,BPN,BPLN, BPZ N BPL, BPCLM,BPDF LT N BPARR LN1,BPX1 ;  ; Attempt  to determ ine defaul t S BPDFLT =$$DEFAULT (BPTYPE,BP TMP) ; S B PSPROM="Se lect item( s)" S BPLN =$$PROMPT( BPSPROM,BP DFLT) I BP LN="^" Q " ^" S BPLN= $P(BPLN,U)  S BPQ=0 F  BPN=1:1 S  BPX1=$P(B PLN,",",BP N) Q:$L(BP X1)=0 D  Q :BPQ'=0 .  S BPZ=$$MK INDEXS(BPX 1,BPTMP,.B PARRLN1) .  I BPZ<1 S  BPQ=-1 .  I (BPZ=-1) !(BPZ=-2)  W !,"Inval id format. ",! . I (B PZ=-3) W ! ,"Not a va lid select ion.",! Q: BPQ=-1 -1  ; N BPPAT, BPCLM S BP PAT=0 F  S  BPPAT=$O( BPARRLN1(B PPAT)) Q:B PPAT=""  D  . S BPCLM =0 F  S BP CLM=$O(BPA RRLN1(BPPA T,BPCLM))  Q:BPCLM=""   D . . S  BP1=$G(BPA RRLN1(BPPA T,BPCLM))  . . Q:$L(B P1)=0 . .  S BPARRLN2 (+$P(BP1,U ,4))=+$P(B P1,U,5)_U_ BPPAT_"."_ BPCLM Q 1  ; ;/** ;ch ecks for d ashes and  if so then  create a  number of  indexes fo r the rang e ;i.e. co nvert all  "1.2-2.3"  to "1.2,1. 3,1.4,2.1, 2.2,2.3" ; AND create  entries i n BPARR fo r all "rig ht" indexe s ;input:  ;BPVAL - v alue to ch eck (exmpl : "1.2-2.4 ") ;BPTMP1  - global  ref with d ata (exmpl : VALMAR)  ;BPARR - a rray with  parsed lin e indexes   ;output:  ;Exmpl: ;  BPARR(1.2) ="" ; BPAR R(1.3)=""  ; ... ; re turns: ; 1  - okay ;  <0 invalid  format MK INDEXS(BPV AL,BPTMP1, BPARR) ; N  BPFR,BPTO ,BPQ,BPRET  N BPPAT,B PCLM,BPCLS TRT,BPCLEN D,BPQ2 N B PFRPAT,BPT OPAT,BPFRC LM,BPTOCLM ,BP1 S BPQ =0 S BPRET =1 I BPVAL '["-" D  Q  BPRET . S  BPPAT=$P( BPVAL,".", 1) . I BPP AT'=+BPPAT  S BPRET=- 1 Q  ;inva lid format , patient  part is no t numeric  . S BPCLM= $P(BPVAL," .",2) . ;i f only pat ient index  . I $L(BP CLM)=0 D   Q . . S BP Q2=0 . . F  BPCLM=1:1  D  Q:BPQ2 '=0 . . .  ;quit if t here are n o more cla ims for th e patient  . . . S BP 1=$$CHECKL N(BPPAT_". "_BPCLM,"C ",BPTMP1)  . . . I BP 1<1 S BPQ2 =1 Q . . .  S BPARR(+ BPPAT,+BPC LM)=BP1 .  ;if only p atient+cla im index .  I BPCLM'= +BPCLM S B PRET=-2 Q   ;invalid  format, cl aim portio n is not n umeric . S  BP1=$$CHE CKLN(BPPAT _"."_BPCLM ,"C",BPTMP 1) . I BP1 <1 S BPRET =-3 Q  ;no t found .  S BPARR(+B PPAT,+BPCL M)=BP1 ;** ******* if  contains  "-" S BPFR =$P(BPVAL, "-",1) S B PTO=$P(BPV AL,"-",2)  I BPTO["-"  Q -3 ;inv alid forma t (to many  dashes) S  BPFRPAT=$ P(BPFR,"." ,1) S BPTO PAT=$P(BPT O,".",1) S  BPFRCLM=$ P(BPFR,"." ,2) I $L(B PFRCLM)=0  S BPFRCLM= 1 S BPTOCL M=$P(BPTO, ".",2) I $ L(BPTOCLM) =0 S BPTOC LM=999999  I BPFRPAT' =+BPFRPAT  Q -1 ;inva lid format , patient  part is no t numeric  I BPTOPAT' =+BPTOPAT  Q -1 ;inva lid format , patient  part is no t numeric  I BPFRCLM' =+BPFRCLM  Q -2 ;inva lid format , claim po rtion is n ot numeric  I BPTOCLM '=+BPTOCLM  Q -2 ;inv alid forma t, claim p ortion is  not numeri c F BPPAT= BPFRPAT:1: BPTOPAT D  . I BPPAT= BPFRPAT S  BPCLSTRT=B PFRCLM . E   S BPCLST RT=1 . I B PPAT=BPTOP AT S BPCLE ND=BPTOCLM  . E  S BP CLEND=9999 99 . S BPQ 2=0 . F BP CLM=BPCLST RT:1:BPCLE ND D  Q:BP Q2'=0 . .  ;quit if t here are n o more cla ims for th e patient  . . S BP1= $$CHECKLN( BPPAT_"."_ BPCLM,"C", BPTMP1) .  . I BP1<1  S BPQ2=1 Q  . . S BPA RR(+BPPAT, +BPCLM)=BP 1 Q 1 ; ;  DEFAULT wi ll return  a value to  be used a s the defa ult at the  ; Select  Item promp t if there  is only o ne item on  the list.  If the ;  user must  enter a pa tient-leve l item (BP TYPE of "P "), the th e ; patien t number w ill be ret urned if o nly one. O therwise t he claim ;  number wi ll be retu rned if on ly one pat ient and o ne claim.  ; Input: B PTYPE - P  if user sh ould enter  a Patient  ; C if us er should  enter a Cl aim ; PC i f user may  enter eit her ; BPLI ST - tempo rary globa l (VALMAR)  ; Output:  $$DEFAULT  - Either  a patient  number, or  a claim n umber, ; o r <blank>  if neither  could be  defaultedD EFAULT(BPT YPE,BPLIST ) ; Determ ine defaul t item num ber - BPS* 1.0*21 N B PSCLAIM,BP SPATIENT S  BPSPATIEN T=$O(@BPLI ST@("LMIND ",0)) I $O (@BPLIST@( "LMIND",BP SPATIENT)) '="" Q ""  ; if not o ne patient , Quit ""  I BPTYPE=" P" Q BPSPA TIENT ; if  BPTYPE is  P(atient) , then Qui t with the  patient S  BPSCLAIM= $O(@BPLIST @("LMIND", BPSPATIENT ,0)) I $O( @BPLIST@(" LMIND",BPS PATIENT,BP SCLAIM))'= "" Q "" ;  if not one  claim, Qu it "" Q BP SPATIENT_" ."_BPSCLAI M ;
  1083  
  1084   Modified L ogic (Chan ges are hi ghlighted)
  1085  
  1086   BPSSCRU4 ; BHAM ISC/S S - ECME S CREEN UTIL ITIES ;05- APR-05 ;;1 .0;E CLAIM S MGMT ENG INE;**1,3, 21,24**;JU N 2004;Bui ld 28 ;;Pe r VA Direc tive 6402,  this rout ine should  not be mo dified. ;U SER SCREEN  Q ; ;repe atedly pro mpts the u ser for li ne# ;the u ser should  "^" to qu it or ente r a correc t line # ; input: ; B PROMPT - p rompt stri ng ; BPTYP E expected  user's se lection on  level  ;  of P-patie nt or C-cl aim or PC  - both ; B PERRMES -  optional -  the messa ge to disp lay when t he user ;  tries to m ake multi  line selec tion ; BPD FLT - defa ult value  for the pr ompt (opti onal) ;out put: ; pie ce 1:  ; 1  - okay ;  <0 - error s ; 0 - us er wants t o quit ; p iece 2: pa tient ien  #2 ; piece  3: insura nce ien #3 6 ; piece  4: ptr to  #9002313.5 9 ; piece  5: 1st lin e for inde x(es) in L M "VALM" a rray ; pie ce 6: pati ent's inde x ; piece  7: claim's  indexASKL INE(BPROMP T,BPTYPE,B PERRMES,BP DFLT) ; N  BPRET,BPCN T S BPRET= "",BPCNT=0  F  S BPRE T=$$SELLIN E(BPROMPT, BPTYPE,VAL MAR,$G(BPD FLT)) Q:BP RET'<0 D .  ;D RE^VAL M4 . ; . I  BPCNT<1 S  BPCNT=BPC NT+1 W ! .  E  S BPCN T=0 D RE^V ALM4 . I B PRET=-1 W  " - Invali d line num ber" ; (in valid Pati ent summar y line)" .  I BPRET=- 8 W " - ", $S($G(BPER RMES)]"":B PERRMES,1: " Invalid  line numbe r") . I BP RET=-4 W "  - Invalid  line numb er" ; (inv alid RX li ne)" . I B PRET=-2 W  " - Please  select Pa tient's su mmary line ." . I BPR ET=-3 W "  - Please s pecify RX  line." . I  BPRET<-4  W " - Inco rrect form at." ; Cor rupted arr ay (",BPRE T,")" Q BP RET ;/** ; prompts th e user for  line# for  various m enu option  of the Us er Screen  ;input: ;  BPROMPT -  prompt str ing ; BPTY PE - expec ted user's  selection  on level   ; of P-pa tient or C -claim or  PC - both  ; BPTMP1 -  temporary  global (V ALMAR) ; B PDFLT - de fault valu e for the  prompt (op tional) ;o utput: ; p iece 1:  ;  1 - okay  ; <0 - err ors ; 0 -  user wants  to quit ;  piece 2:  patient ie n #2 ; pie ce 3: insu rance ien  #36 ; piec e 4: ptr t o #9002313 .59 ; piec e 5: 1st l ine for in dex(es) in  LM "VALM"  array ; p iece 6: pa tient's in dex ; piec e 7: claim 's indexSE LLINE(BPRO MPT,BPTYPE ,BPTMP1,BP DFLT) ;*/  N BPX,BPLI NE,BPPATIN D,BPCLMIND  N BPDFN,B PSINSUR,BP 59,BP1LN ;  ; Attempt  to determ ine defaul t if none  passed in  I '$G(BPDF LT) S BPDF LT=$$DEFAU LT(BPTYPE, BPTMP1) ;  S BPLINE=$ $PROMPT(BP ROMPT,$G(B PDFLT)) I  BPLINE="^"  Q 0 S BPP ATIND=+$P( BPLINE,"." ) I (BPLIN E["-")!(BP LINE[",")  Q -8 ;mult iple line  input in n ot allowed  I '$D(@BP TMP1@("LMI ND",BPPATI ND)) Q -1  ;the patie nt level d oesn't exi st S BPCLM IND=+$P(BP LINE,".",2 ) I BPTYPE ="P",BPCLM IND>0 Q -2  ;P was re quested bu t claim po rtion was  provided I  BPTYPE="C ",BPCLMIND =0 Q -3 ;C  was reque sted but c laim porti on was not  provided  I '$D(@BPT MP1@("LMIN D",BPPATIN D,BPCLMIND )) Q -4 ;t he claim l evel doesn 't exist S  BPDFN=$O( @BPTMP1@(" LMIND",BPP ATIND,BPCL MIND,0)) I  +BPDFN=0  Q -5 ;erro r S BPSINS UR=$O(@BPT MP1@("LMIN D",BPPATIN D,BPCLMIND ,BPDFN,"") ) I BPSINS UR="" Q -6  ;error ;i f fraction al part wa s entered  I BPCLMIND >0 D  I +B P59=0 Q -7  ;error .  S BP59=$O( @BPTMP1@(" LMIND",BPP ATIND,BPCL MIND,BPDFN ,BPSINSUR, 0)) I BPCL MIND=0 S B P59=0 S BP 1LN=$O(@BP TMP1@("LMI ND",BPPATI ND,BPCLMIN D,BPDFN,BP SINSUR,BP5 9,0)) I +B P1LN=0 Q - 7 ;error Q  "1"_U_BPD FN_U_BPSIN SUR_U_BP59 _U_BP1LN_U _BPPATIND_ U_BPCLMIND  ; ;input:  ;BPSPROM  - prompt t ext ;BPSDF VL - defau lt value ( optional)  ;BPTMP - t emporary g lobal (lik e VALMAR)  (optional)  ;returns:  ; "respon se^"PROMPT (BPSPROM,B PSDFVL,BPT MP) ; N BP RET,DIR,X, Y,DIRUT S  BPRET="^"  S DIR(0)=" F^::2",DIR ("A")=BPSP ROM I $L($ G(BPSDFVL) )>0 S DIR( "B")=$G(BP SDFVL) ; I  $G(BPTMP) ["""BPSREO P""" D . S  DIR("?",1 )="Answer  with a sin gle item o r multiple  items in  the follow ing format :" . S DIR ("?",2)="  1.1,1.2,1. 3" . S DIR ("?",3)="  1.1-1.3" .  S DIR("?" )=" 1.1-1. 2,1.3" ; D  ^DIR I $D (DIRUT) Q  "^" S $P(B PRET,U)=Y  Q BPRET ;  ;/** ;chec k and proc ess user i nput ;inpu t: ; BPLIN E - input  string ; B PTYPE - ex pected use r's select ion on lev el  ; of P -patient o r C-claim  or PC - bo th ; BPTMP 1 - tempor ary global  (VALMAR)  ;output: ;  piece 1:   ; 1 - oka y ; <0 - e rrors ; 0  - user wan ts to quit  ; piece 2 : patient  ien #2 ; p iece 3: in surance ie n #36 ; pi ece 4: ptr  to #90023 13.59 ; pi ece 5: 1st  line for  index(es)  in LM "VAL M" array ;  piece 6:  patient's  index ; pi ece 7: cla im's index CHECKLN(BP LINE,BPTYP E,BPTMP1)  ;*/ N BPX, BPPATIND,B PCLMIND N  BPDFN,BPSI NSUR,BP59, BP1LN I BP LINE="^" Q  0 S BPPAT IND=+$P(BP LINE,".")  I '$D(@BPT MP1@("LMIN D",BPPATIN D)) Q -1 ; the patien t level do esn't exis t S BPCLMI ND=+$P(BPL INE,".",2)  I BPTYPE= "P",BPCLMI ND>0 Q -2  ;P was req uested but  claim por tion was p rovided I  BPTYPE="C" ,BPCLMIND= 0 Q -3 ;C  was reques ted but cl aim portio n was not  provided I  '$D(@BPTM P1@("LMIND ",BPPATIND ,BPCLMIND) ) Q -4 ;th e claim le vel doesn' t exist S  BPDFN=$O(@ BPTMP1@("L MIND",BPPA TIND,BPCLM IND,0)) I  +BPDFN=0 Q  -5 ;error  S BPSINSU R=$O(@BPTM P1@("LMIND ",BPPATIND ,BPCLMIND, BPDFN,""))  I BPSINSU R="" Q -6  ;error ;if  fractiona l part was  entered I  BPCLMIND> 0 D  I +BP 59=0 Q -7  ;error . S  BP59=$O(@ BPTMP1@("L MIND",BPPA TIND,BPCLM IND,BPDFN, BPSINSUR,0 )) I BPCLM IND=0 S BP 59=0 S BP1 LN=$O(@BPT MP1@("LMIN D",BPPATIN D,BPCLMIND ,BPDFN,BPS INSUR,BP59 ,0)) I +BP 1LN=0 Q -7  ;error Q  "1"_U_BPDF N_U_BPSINS UR_U_BP59_ U_BP1LN_U_ BPPATIND_U _BPCLMIND  ; ; ;BPTMP  = VALMAR  ;input: ;  BPROMPT -  prompt tex t ; BPTYPE
  1087    - expecte d user's s election o n level  ;  of P-pati ent or C-c laim or PC  - both ;  BPTMP - te mporary gl obal (like  VALMAR) ;  BPARRLN2  - to retur n results  ;output :  ; 1 if oka y ; -1 -in valid form at ; ^ - q uit ; BPAR RLN2 - Arr ay(B59)="l ine# in VA LM"^"Patie ntIndex.Cl aimIndex"  ;example:  ; BPARR(30 045.00001) =134^2.34A SKLINES(BP ROMPT,BPTY PE,BPARRLN 2,BPTMP) ;  N BPQ,BPX LN,BPN,BPL N,BPZ N BP L,BPCLM,BP DFLT N BPA RRLN1,BPX1  ; ; Attem pt to dete rmine defa ult S BPDF LT=$$DEFAU LT(BPTYPE, BPTMP) ; S  BPSPROM=" Select ite m(s)" S BP LN=$$PROMP T(BPSPROM, BPDFLT,BPT MP) I BPLN ="^" Q "^"  S BPLN=$P (BPLN,U) S  BPQ=0 F B PN=1:1 S B PX1=$P(BPL N,",",BPN)  Q:$L(BPX1 )=0 D  Q:B PQ'=0 . S  BPZ=$$MKIN DEXS(BPX1, BPTMP,.BPA RRLN1) . I  BPZ<1 S B PQ=-1 . I  (BPZ=-1)!( BPZ=-2) W  !,"Invalid  format.", ! . I (BPZ =-3) W !," Not a vali d selectio n.",! Q:BP Q=-1 -1 ;  N BPPAT,BP CLM S BPPA T=0 F  S B PPAT=$O(BP ARRLN1(BPP AT)) Q:BPP AT=""  D .  S BPCLM=0  F  S BPCL M=$O(BPARR LN1(BPPAT, BPCLM)) Q: BPCLM=""   D . . S BP 1=$G(BPARR LN1(BPPAT, BPCLM)) .  . Q:$L(BP1 )=0 . . S  BPARRLN2(+ $P(BP1,U,4 ))=+$P(BP1 ,U,5)_U_BP PAT_"."_BP CLM Q 1 ;  ;/** ;chec ks for das hes and if  so then c reate a nu mber of in dexes for  the range  ;i.e. conv ert all "1 .2-2.3" to  "1.2,1.3, 1.4,2.1,2. 2,2.3" ;AN D create e ntries in  BPARR for  all "right " indexes  ;input: ;B PVAL - val ue to chec k (exmpl:  "1.2-2.4")  ;BPTMP1 -  global re f with dat a (exmpl:  VALMAR) ;B PARR - arr ay with pa rsed line  indexes  ; output: ;E xmpl: ; BP ARR(1.2)=" " ; BPARR( 1.3)="" ;  ... ; retu rns: ; 1 -  okay ; <0  invalid f ormat MKIN DEXS(BPVAL ,BPTMP1,BP ARR) ; N B PFR,BPTO,B PQ,BPRET N  BPPAT,BPC LM,BPCLSTR T,BPCLEND, BPQ2 N BPF RPAT,BPTOP AT,BPFRCLM ,BPTOCLM,B P1 S BPQ=0  S BPRET=1  I BPVAL'[ "-" D  Q B PRET . S B PPAT=$P(BP VAL,".",1)  . I BPPAT '=+BPPAT S  BPRET=-1  Q  ;invali d format,  patient pa rt is not  numeric .  S BPCLM=$P (BPVAL,"." ,2) . ;if  only patie nt index .  I $L(BPCL M)=0 D  Q  . . S BPQ2 =0 . . F B PCLM=1:1 D   Q:BPQ2'= 0 . . . ;q uit if the re are no  more claim s for the  patient .  . . S BP1= $$CHECKLN( BPPAT_"."_ BPCLM,"C", BPTMP1) .  . . I BP1< 1 S BPQ2=1  Q . . . S  BPARR(+BP PAT,+BPCLM )=BP1 . ;i f only pat ient+claim  index . I  BPCLM'=+B PCLM S BPR ET=-2 Q  ; invalid fo rmat, clai m portion  is not num eric . S B P1=$$CHECK LN(BPPAT_" ."_BPCLM," C",BPTMP1)  . I BP1<1  S BPRET=- 3 Q  ;not  found . S  BPARR(+BPP AT,+BPCLM) =BP1 ;**** ***** if c ontains "- " S BPFR=$ P(BPVAL,"- ",1) S BPT O=$P(BPVAL ,"-",2) I  BPTO["-" Q  -3 ;inval id format  (to many d ashes) S B PFRPAT=$P( BPFR,".",1 ) S BPTOPA T=$P(BPTO, ".",1) S B PFRCLM=$P( BPFR,".",2 ) I $L(BPF RCLM)=0 S  BPFRCLM=1  S BPTOCLM= $P(BPTO,". ",2) I $L( BPTOCLM)=0  S BPTOCLM =999999 I  BPFRPAT'=+ BPFRPAT Q  -1 ;invali d format,  patient pa rt is not  numeric I  BPTOPAT'=+ BPTOPAT Q  -1 ;invali d format,  patient pa rt is not  numeric I  BPFRCLM'=+ BPFRCLM Q  -2 ;invali d format,  claim port ion is not  numeric I  BPTOCLM'= +BPTOCLM Q  -2 ;inval id format,  claim por tion is no t numeric  F BPPAT=BP FRPAT:1:BP TOPAT D .  I BPPAT=BP FRPAT S BP CLSTRT=BPF RCLM . E   S BPCLSTRT =1 . I BPP AT=BPTOPAT  S BPCLEND =BPTOCLM .  E  S BPCL END=999999  . S BPQ2= 0 . F BPCL M=BPCLSTRT :1:BPCLEND  D  Q:BPQ2 '=0 . . ;q uit if the re are no  more claim s for the  patient .  . S BP1=$$ CHECKLN(BP PAT_"."_BP CLM,"C",BP TMP1) . .  I BP1<1 S  BPQ2=1 Q .  . S BPARR (+BPPAT,+B PCLM)=BP1  Q 1 ; ; DE FAULT will  return a  value to b e used as  the defaul t at the ;  Select It em prompt  if there i s only one  item on t he list. I f the ; us er must en ter a pati ent-level  item (BPTY PE of "P") , the the  ; patient  number wil l be retur ned if onl y one. Oth erwise the  claim ; n umber will  be return ed if only  one patie nt and one  claim. ;  Input: BPT YPE - P if  user shou ld enter a  Patient ;  C if user  should en ter a Clai m ; PC if  user may e nter eithe r ; BPLIST  - tempora ry global  (VALMAR) ;  Output: $ $DEFAULT -  Either a  patient nu mber, or a  claim num ber, ; or  <blank> if  neither c ould be de faultedDEF AULT(BPTYP E,BPLIST)  ; Determin e default  item numbe r - BPS*1. 0*21 N BPS CLAIM,BPSP ATIENT S B PSPATIENT= $O(@BPLIST @("LMIND", 0)) I $O(@ BPLIST@("L MIND",BPSP ATIENT))'= "" Q "" ;  if not one  patient,  Quit "" I  BPTYPE="P"  Q BPSPATI ENT ; if B PTYPE is P (atient),  then Quit  with the p atient S B PSCLAIM=$O (@BPLIST@( "LMIND",BP SPATIENT,0 )) I $O(@B PLIST@("LM IND",BPSPA TIENT,BPSC LAIM))'=""  Q "" ; if  not one c laim, Quit  "" Q BPSP ATIENT_"." _BPSCLAIM  ;
  1088      
  1089   A pre-inst all routin e will be  used to up date the m enu title  informatio n.
  1090   Routine Na me
  1091   ^BPS24PRE
  1092   Enhancemen t Category
  1093    New
  1094    Modify
  1095    Delete
  1096    No Change
  1097   Story
  1098   US597
  1099   Related Me nu Options  or ListMa n Actions
  1100   N/A
  1101   Related Ro utines
  1102   This Subro utine is C alled By
  1103   This Subro utine Call s
  1104  
  1105   KIDS syste m; Kernel  Installati on and Dis tribution  System; ca lled upon  patch inst allation
  1106   MES^XPDUTL
  1107   BMES^XPDUT L
  1108   ^DIE
  1109   Related In tegration  Control Re gistration s (ICRs)
  1110  
  1111   Data Passi ng
  1112    Parameter  Input
  1113    Parameter  Output
  1114    Function  Return Val ue
  1115    Global Mo dified
  1116   Input Attr ibute Name  and Defin ition
  1117   Name: N/A
  1118   Definition
  1119    New       Modify       Delete       No Cha nge
  1120   Current Lo gic
  1121  
  1122   N/A
  1123  
  1124   Modified L ogic (Chan ges are hi ghlighted)
  1125  
  1126    BPS24PRE  ;AITC/PD -  Pre-insta ll for BPS *1.0*24 ;7 /14/2017
  1127    ;;1.0;E C LAIMS MGMT  ENGINE;** 24**;
  1128    ;;Per VA  Directive  6402, this  routine s hould not  be modifie d.
  1129    ;
  1130    Q
  1131    ;
  1132   PRE ; Pre- install fu nctions ar e coded he re.
  1133    ;
  1134    D MES^XPD UTL("  Sta rting pre- install of  BPS*1.0*2 4")
  1135    D UPDOPT
  1136    D BMES^XP DUTL("  Fi nished pre -install o f BPS*1.0* 24")
  1137    Q
  1138    ;
  1139   UPDOPT ; R ename Menu  Option Te xt
  1140    N BPSMENU ,BPSOPT,DA ,DR
  1141    ;
  1142    D MES^XPD UTL("   -  Updating O PTION")
  1143    S BPSOPT= "BPS REOPE N CLOSED C LAIM"
  1144    S DA=$O(^ DIC(19,"B" ,BPSOPT,"" ))
  1145    I 'DA D M ES^XPDUTL( "  - No IE N found fo r entry "_ BPSOPT) Q
  1146    ;
  1147    ; Update  fields
  1148    S BPSMENU ="Re Open  CLOSED/Res ubmit Clai m"  ; new  menu text
  1149    D FILE("^ DIC(19,",D A,1,BPSMEN U)
  1150    ;
  1151    D MES^XPD UTL("  - " _BPSOPT_"  entry upda ted")
  1152    D MES^XPD UTL("   -  Done with  OPTION")
  1153    D MES^XPD UTL(" ")
  1154    Q
  1155    ;
  1156    ; DIE      - Global  to update
  1157    ; DA       - IEN for  entry
  1158    ; BPSFLD   - Field #  to update
  1159    ; BPSDATA  - Data fo r update
  1160   FILE(DIE,D A,BPSFLD,B PSDATA) ; 
  1161    ; File in to the OPT ION file # 19
  1162    N DR,X,Y
  1163    ;
  1164    S DR=BPSF LD_"////"_ BPSDATA
  1165    D ^DIE
  1166    Q
  1167     
  1168  
  1169   The ListMa n List Tem plate BPS  LSTMN ECME  REOPEN te mplate wil l require  the follow ing change s:
  1170  
  1171   Field Attr ibutes
  1172   Values
  1173   List Templ ate
  1174   BPS LSTMN  ECME REOPE N
  1175   Screen Tit le
  1176   Old = REOP EN CLOSED  CLAIM 
  1177   New = REOP EN/RESUBMI T CLAIMS
  1178  
  1179   Bottom Mar gin
  1180   Old=18
  1181   New=19
  1182  
  1183  
  1184   The Menu P rotocol fo r the abov e List Tem plate is B PS PRTCL R EOPEN MENU . It curre ntly has t wo Actions , one of w hich will  be deleted . The rema ining exis ting Actio n will be  modified ( sequence c hanged fro m 2 to 3)  and two ne w Actions  will be ad ded.
  1185  
  1186   Edits to e xisting ac tions:
  1187  
  1188   Action
  1189   Delete Act ion BPS PR TCL REOPEN
  1190   Action
  1191   Edit Actio n: BPS PRT CL REOPEN  EXIT
  1192   Old Sequen ce = 2
  1193   New Sequen ce = 3
  1194  
  1195  
  1196   New action s to be ad ded to men u protocol :
  1197  
  1198   Action
  1199   Add Action : BPS PRTC L USRSCR R EOPEN CLOS ED CLAIMS
  1200   Mnemonic:  ROC
  1201   Sequence:  1
  1202   Action
  1203   Add Action : BPS PRTC L USRSCR R ESUBMIT
  1204   Mnemonic:  RES
  1205   Sequence:  2