22. EPMO Open Source Coordination Office Redaction File Detail Report

Produced by Araxis Merge on 4/17/2018 8:06:56 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.

22.1 Files compared

# Location File Last Modified
1 MCCF EDI TAS ePharmacy 031218.zip\MCCF EDI TAS ePharmacy 031218 TAS+ePhm+SDD+US598+v1.0.docx Sun Mar 11 20:08:30 2018 UTC
2 MCCF EDI TAS ePharmacy 031218.zip\MCCF EDI TAS ePharmacy 031218 TAS+ePhm+SDD+US598+v1.0.docx Wed Apr 18 00:32:45 2018 UTC

22.2 Comparison summary

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

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

22.4 Active regular expressions

No regular expressions were active.

22.5 Comparison detail

  1   MCCF EDI T AS US598
  2   System Des ign Docume nt
  3  
  4  
  5  
  6  
  7  
  8   Department  of Vetera ns Affairs
  9   September  2017
  10   Version 1. 0
  11   User Story  Number: U SRX-30
  12   User Story  Name: Imp rove Effic iencies wi th overall  ePharmacy  process –  Patient B illing Not e
  13   Product Ba cklog ID:  194
  14   Backlog Pr iority: 16
  15   Initial Si zing Estim ate:
  16   Rational I D: 828293
  17   Rally ID:  US598
  18   Epic Taxon omy: Updat e
  19  
  20   Design – S ummary
  21   Provide th e ability  for the us er to ente r, and sto re, Patien t Billing  comments.  A new menu  option, P SO EPHARMA CY PATIENT  COMMENTS,  will be c reated whi ch will al low:
  22   Adding new  Patient B illing com ments
  23   Activating /inactivat ing Patien t Billing  comments
  24   Viewing th e history  of all Pat ient Billi ng comment s associat ed with th e specific  patient
  25   The PSO EP HARMACY SI TE MANAGER  security  key will b e a requir ement for  accessing  the new op tion.
  26   The Patien t Billing  comments a nd comment  history w ill be sto red in the  PHARMACY  PATIENT fi le (#55).  Two new mu ltiples su b-files wi ll be adde d to the P harmacy Pa tient file . The firs t sub-file  to be add ed will be  named PAT IENT COMME NT (#55.17 ). The sub -file will  contain:
  27   Date/Time  – Date and  time the  Patient Bi lling comm ent was en tered
  28   User – Poi nter to th e New Pers on file of  the user  who entere d the comm ent
  29   Active Fla g – Yes/No  Flag – Ye s = Active  comment,  No = Inact ive commen t
  30   Comment –  Free text  comment up  to 150 ch aracters
  31   The second  new sub-f ile will r eside belo w the Pati ent Commen t Sub-File  and will  be named P ATIENT COM MENT HISTO RY (#55.17 4). This s ub-file wi ll contain :
  32   Date/Time  – Date and  time of u pdate to t he Patient  Billing c omment
  33   User – Poi nter to th e New Pers on file of  the user  who update d the comm ent
  34   Activity –  Set of Va lues assoc iated with  the comme nt
  35   1 for Add
  36   2 for Acti vate
  37   3 for Inac tivate
  38   The Reject  Informati on Screens  will be m odified to  display a ll active  Patient Bi lling comm ents for t he patient . Patient  Billing co mments can not be del eted, only  inactivat ed using t he new men u option.  All active  comments  will be di splayed in  reverse c hronologic al order.
  39   The COM Ad d Comment  action ass ociated wi th the Rej ect Inform ation Scre ens will a lso be mod ified. The  user will  have the  ability to  specify i f the comm ent being  added will  be a Reje ct comment  or a Pati ent Billin g comment.  Reject co mments onl y display  for the sp ecific rej ect. Patie nt Billing  comments  display fo r all reje cts associ ated with  the patien t.
  40   List of Co mponents:
  41   File: PHAR MACY PATIE NT (#55)
  42   Sub-File:P ATIENT COM MENT (#55. 17)
  43   Sub-File:  PATIENT CO MMENT HIST ORY (#55.1 74)
  44   List Templ ate:PSO PA TIENT COMM ENT
  45   Option:PSO  EPHARMACY  PATIENT C OMMENTS
  46   Protocol:P SO PATIENT  COMMENT A CTIVATE
  47   Protocol:P SO PATIENT  COMMENT A DD
  48   Protocol:P SO PATIENT  COMMENT D OWN A LINE
  49   Protocol:P SO PATIENT  COMMENT E XIT
  50   Protocol:P SO PATIENT  COMMENT H IDDEN MENU
  51   Protocol:P SO PATIENT  COMMENT H ISTORY
  52   Protocol:P SO PATIENT  COMMENT M ENU
  53   Protocol:P SO PATIENT  COMMENT N EXT SCREEN
  54   Protocol:P SO PATIENT  COMMENT P REVIOUS SC REEN
  55   Protocol:P SO PATIENT  COMMENT U P A LINE
  56   Routine: P SOPTC0
  57   Routine: P SOREJP3
  58   Routine:PS OREJU3
  59   Design – D etail
  60   A new fiel d will be  added to t he PHARMAC Y PATIENT  file (#55) . This fie ld will be  a multipl e, used to  store the  Patient B illing Com ment data:
  61  
  62   Field Attr ibutes
  63   Values
  64   FIELD NAME
  65   PATIENT CO MMENT
  66   FIELD NUMB ER
  67   70
  68   NODE;PIECE
  69   PC;0
  70   FIELD TYPE
  71   Multiple
  72   DESCRIPTIO N
  73   This sub-f ile allows  patient b illing com ments to b e stored f or this pa tient.
  74  
  75   The follow ing fields  make up t he PATIENT  COMMENT ( multiple)  sub-file ( #55.17):
  76  
  77   Field Attr ibutes
  78   Values
  79   FIELD NAME
  80   PATIENT CO MMENT DATE
  81   FIELD NUMB ER
  82   .01
  83   NODE;PIECE
  84   0;1
  85   FIELD TYPE
  86   Date
  87   DESCRIPTIO N
  88   Date/Time  Patient Co mment was  entered.
  89  
  90   Field Attr ibutes
  91   Values
  92   FIELD NAME
  93   USER
  94   FIELD NUMB ER
  95   1
  96   NODE;PIECE
  97   0;2
  98   FIELD TYPE
  99   Pointer to  NEW PERSO N File (#2 00)
  100  
  101   Field Attr ibutes
  102   Values
  103   FIELD NAME
  104   ACTIVE
  105   FIELD NUMB ER
  106   2
  107   NODE;PIECE
  108   0;3
  109   FIELD TYPE
  110   Set
  111   Y for Acti ve
  112   N for Inac tive
  113  
  114   Field Attr ibutes
  115   Values
  116   FIELD NAME
  117   COMMENT
  118   FIELD NUMB ER
  119   3
  120   NODE;PIECE
  121   0;4
  122   FIELD TYPE
  123   Free Text
  124   FIELD LENG TH
  125   1-150
  126   HELP
  127   Enter a fr ee text co mment up t o 150 char acters lon g.
  128  
  129   Field Attr ibutes
  130   Values
  131   FIELD NAME
  132   PATIENT CO MMENT HIST ORY
  133   FIELD NUMB ER
  134   4
  135   NODE;PIECE
  136   PCH;0
  137   FIELD TYPE
  138   Multiple
  139  
  140   The PATIEN T COMMENT  HISTORY fi eld is a m ultiple, s tored on t he PATIENT  COMMENT m ultiple. T he followi ng charts  provide th e details  for the ne w sub-file  PATIENT C OMMENT HIS TORY (#55. 174):
  141  
  142   Field Attr ibutes
  143   Values
  144   FIELD NAME
  145   PATIENT CO MMENT HIST ORY
  146   FIELD NUMB ER
  147   4
  148   NODE;PIECE
  149   PCH;0
  150   FIELD TYPE
  151   Multiple
  152   DESCRIPTIO N
  153   This sub-f ile stores  all histo rical upda tes to the  patient b illing com ments for  this patie nt.
  154  
  155   The follow ing fields  make up t he PATIENT  COMMENT H ISTORY (mu ltiple) su b-file (#5 5.174):
  156  
  157   Field Attr ibutes
  158   Values
  159   FIELD NAME
  160   HISTORY DA TE
  161   FIELD NUMB ER
  162   .01
  163   NODE;PIECE
  164   0;1
  165   FIELD TYPE
  166   Date
  167   (Multiple)
  168   DESCRIPTIO N
  169   Date/Time  of histori cal update  to commen t.
  170  
  171   Field Attr ibutes
  172   Values
  173   FIELD NAME
  174   USER
  175   FIELD NUMB ER
  176   1
  177   NODE;PIECE
  178   0;2
  179   FIELD TYPE
  180   Pointer to  New Perso n File (#2 00)
  181  
  182   Field Attr ibutes
  183   Values
  184   FIELD NAME
  185   ACTIVITY
  186   FIELD NUMB ER
  187   2
  188   NODE;PIECE
  189   0;3
  190   FIELD TYPE
  191   Set
  192   1 for Add
  193   2 for Acti vate
  194   3 for Inac tivate
  195  
  196   Creation o f new List  Template:
  197  
  198   Field Attr ibutes
  199   Values
  200   List Templ ate
  201   PSO PATIEN T COMMENT
  202   Type of Li st
  203   PROTOCOL
  204   Right Marg in
  205   80
  206   Top Margin
  207   5
  208   Bottom Mar gin
  209   20
  210   Protocol M enu
  211   PSO PATIEN T COMMENT  MENU
  212   Screen Tit le
  213   ePharmacy  Patient Co mment
  214   Hidden Act ion Menu
  215   PSO PATIEN T COMMENT  HIDDEN MEN U
  216  
  217   The follow ing entrie s will be  added to f ile #101,  PROTOCOL:
  218   Menu assoc iated with  PSO PATIE NT COMMENT  List Temp late:
  219  
  220   Fields
  221   Values
  222   NAME
  223   PSO PATIEN T COMMENT  MENU
  224   ITEM TEXT
  225   Menu proto col for Pa tient Comm ent
  226   TYPE
  227   Menu
  228   COLUMN WID TH
  229   40
  230   MNEMONIC W IDTH
  231   4
  232  
  233   Action ite ms associa ted with P SO PATIENT  COMMENT M ENU:
  234  
  235   Fields
  236   Values
  237   NAME
  238   PSO PATIEN T COMMENT  ADD
  239   ITEM TEXT
  240   Add Patien t Comment
  241   TYPE
  242   ACTION
  243   ENTRY ACTI ON
  244   D ADD^PSOP TC0
  245   SEQUENCE
  246   1
  247   MNEMONIC
  248   A
  249  
  250   Fields
  251   Values
  252   NAME
  253   PSO PATIEN T COMMENT  ACTIVATE
  254   ITEM TEXT
  255   Inactivate  or Activa te Comment
  256   TYPE
  257   ACTION
  258   ENTRY ACTI ON
  259   D ACT^PSOP TC0
  260   SEQUENCE
  261   2
  262   MNEMONIC
  263   I
  264  
  265   Fields
  266   Values
  267   NAME
  268   PSO PATIEN T COMMENT  HISTORY
  269   ITEM TEXT
  270   Comment Hi story
  271   TYPE
  272   ACTION
  273   ENTRY ACTI ON
  274   D HIST^PSO PTC0
  275   SEQUENCE
  276   3
  277   MNEMONIC
  278   H
  279  
  280   Fields
  281   Values
  282   NAME
  283   PSO PATIEN T COMMENT  EXIT
  284   ITEM TEXT
  285   Exit
  286   TYPE
  287   ACTION
  288   ENTRY ACTI ON
  289   D EXIT^PSO PTC0
  290   SEQUENCE
  291   4
  292   MNEMONIC
  293   EX
  294  
  295   Hidden men u associat ed with PS O PATIENT  COMMENT Li st Templat e:
  296   Fields
  297   Values
  298   NAME
  299   PSO PATIEN T COMMENT  HIDDEN MEN U
  300   ITEM TEXT
  301   Patient Co mment Hidd en Actions
  302   TYPE
  303   MENU
  304  
  305   Action ite ms associa ted with P SO PATIENT  COMMENT H IDDEN MENU :
  306   Fields
  307   Values
  308   NAME
  309   PSO PATIEN T COMMENT  DOWN A LIN E
  310   ITEM TEXT
  311   Down a Lin e
  312   TYPE
  313   ACTION
  314   ENTRY ACTI ON
  315   D DOWN^VAL M40
  316   MNEMONIC
  317   DN
  318  
  319  
  320   Fields
  321   Values
  322   NAME
  323   PSO PATIEN T COMMENT  UP A LINE
  324   ITEM TEXT
  325   Up a Line
  326   TYPE
  327   ACTION
  328   ENTRY ACTI ON
  329   D UP^VALM4 0
  330   MNEMONIC
  331   UP
  332  
  333   Fields
  334   Values
  335   NAME
  336   PSO PATIEN T COMMENT  NEXT SCREE N
  337   ITEM TEXT
  338   Next Scree n
  339   TYPE
  340   ACTION
  341   ENTRY ACTI ON
  342   D NEXT^VAL M4
  343   MNEMONIC
  344   +
  345  
  346   Fields
  347   Values
  348   NAME
  349   PSO PATIEN T COMMENT  PREVIOUS S CREEN
  350   ITEM TEXT
  351   Previous S creen
  352   TYPE
  353   ACTION
  354   ENTRY ACTI ON
  355   D PREV^VAL M4
  356   MNEMONIC
  357   -
  358   PSOPTC0 is  the new r outine tha t will per form the f unctionali ty associa ted with t he new men u option f or Patient  Billing C omments.
  359   Subroutine  Name
  360   PSOPTC0
  361   Enhancemen t Category
  362    New
  363    Modify
  364    Delete
  365    No Change
  366   Story
  367   US598
  368   Related Me nu Options  or ListMa n Actions
  369   PSO EPHARM ACY PATIEN T COMMENTS
  370   Related Ro utines
  371   This Subro utine is C alled By
  372   This Subro utine Call s
  373  
  374   n/a
  375   NOW^%DTC,  ^DIC, FILE ^DIE,
  376   UPDATE^DIE , GETS^DIQ ,
  377   ^DIR, ^DIW P, ^PSOLSE T,
  378   $$COMMENT^ PSOREJP3,
  379   $$YESNO^PS OREJP3,
  380   DEM^VADPT,  EN^VALM,
  381   FULL^VALM1 , WAIT^VAL M1,
  382   CLEAN^VALM 10, SET^VA LM10,
  383   $$LJ^XLFST R
  384   Related In tegration  Control Re gistration s (ICRs)
  385   n/a
  386   Data Passi ng
  387    Parameter  Input
  388    Parameter  Output
  389    Function  Return Val ue
  390    Global Mo dified
  391   Input Attr ibute Name  and Defin ition
  392   Name: 
  393   Definition
  394    New       Modify       Delete       No Cha nge
  395   Name: 
  396   Definition
  397    New       Modify       Delete       No Cha nge
  398   Output Att ribute Nam e and Defi nition
  399   Name: 
  400   Definition
  401    New       Modify       Delete       No Cha nge
  402   Current Lo gic
  403  
  404   n/a
  405  
  406   Modified L ogic (Chan ges are hi ghlighted)
  407  
  408   PSOPTC0 ;A ITC/PD - P atient Bil ling Comme nts;9/5/20 17
  409    ;;7.0;OUT PATIENT PH ARMACY;**4 82**;DEC 1 997;
  410    ;
  411   EN ; Menu  Option Ent ry Point
  412    ;
  413    I '$D(^XU SEC("PSO E PHARMACY S ITE MANAGE R",DUZ)) W  !,$C(7)," Requires P harmacy Ke y (PSO EPH ARMACY SIT E MANAGER)  !" Q
  414    ;
  415    N DIC,DTO UT,X,Y
  416    ;
  417    K PSOPTC
  418    ;
  419    ;Division  selection
  420    I '$G(PSO SITE) D ^P SOLSET I ' $D(PSOPAR)  W $C(7),! !,"Pharmac y Division  Must be S elected!", ! G EXIT
  421    ;
  422    ;Patient  selection
  423    W !!
  424    S DIC=2,D IC(0)="QEA M"
  425    D ^DIC
  426    G EXIT:(( Y<0)!($D(D TOUT)))
  427    S PSOPTC( "DFN")=+Y
  428    ;
  429    D EN^VALM ("PSO PATI ENT COMMEN T")
  430    ;
  431    Q
  432    ;
  433   HDR ; Head er
  434    ;
  435    N DFN,H1, VA,VADM
  436    ;
  437    S DFN=$G( PSOPTC("DF N"))
  438    I 'DFN G  EXIT
  439    D DEM^VAD PT
  440    S H1=$$LJ ^XLFSTR("P atient: "_ $E($G(VADM (1)),1,30) _" ("_$G(V A("BID"))_ ")",48)
  441    S H1=H1_$ $LJ^XLFSTR ("Sex: "_$ P($G(VADM( 5)),U,1),8 )
  442    S H1=H1_$ $LJ^XLFSTR ("DOB: "_$ $FMTE^XLFD T($P($G(VA DM(3)),U,1 ),"2Z")_"  ("_$G(VADM (4))_")",2 2)
  443    ;
  444    S VALMHDR (1)=H1
  445    S VALMHDR (2)="#   S TATUS  DAT E/TIME                  USER"
  446    Q
  447    ;
  448   INIT ; 
  449    ;
  450    D CLEAN^V ALM10
  451    D BUILD
  452    Q
  453    ;
  454   BUILD ; Bu ild ListMa n Screen
  455    ;
  456    ; PSODFN  = Patient  Record ID
  457    ; PSOPC   = PATIENT  COMMENT su b-file (#5 5.17) Reco rd ID
  458    ;
  459    N DIWL,DI WR,PSOCNT, PSOCOM,PSO COMMENT,PS ODATA,PSOD ATE,PSODAT E1
  460    N PSODFN, PSOLINE,PS OPC,PSOSTA TUS,PSOSTR ,PSOUSER,P SOY
  461    ;
  462    S PSOLINE =0
  463    S PSOCNT= 0
  464    S PSODFN= $G(PSOPTC( "DFN"))
  465    I 'PSODFN  G EXIT
  466    ;
  467    ; Loop th rough the  PATIENT CO MMENT sub- file (#55. 17) in rev erse
  468    ; chronol ogical ord er. 
  469    S PSODATE =""
  470    F  S PSOD ATE=$O(^PS (55,PSODFN ,"PC","B", PSODATE),- 1) Q:PSODA TE=""  D
  471    . S PSOPC =$O(^PS(55 ,PSODFN,"P C","B",PSO DATE,""))
  472    . K PSODA TA
  473    . D GETS^ DIQ(55.17, PSOPC_","_ PSODFN_"," ,".01;1;2; 3","E","PS ODATA")
  474    . S PSODA TE1=$G(PSO DATA(55.17 ,PSOPC_"," _PSODFN_", ",.01,"E") )
  475    . S PSOUS ER=$G(PSOD ATA(55.17, PSOPC_","_ PSODFN_"," ,1,"E"))
  476    . S PSOST ATUS=$G(PS ODATA(55.1 7,PSOPC_", "_PSODFN_" ,",2,"E"))
  477    . S PSOCO MMENT=$G(P SODATA(55. 17,PSOPC_" ,"_PSODFN_ ",",3,"E") )
  478    . S PSOCN T=PSOCNT+1
  479    . S PSOST R=PSOCNT_"    "_$E(PS OSTATUS)_"        "_P SODATE1_"     "_PSOUS ER
  480    . S PSOLI NE=PSOLINE +1
  481    . S @VALM AR@("IDX", PSOCNT,PSO PC)=""
  482    . D SET^V ALM10(PSOL INE,PSOSTR ,"")
  483    . ; Use ^ DIWP to fo rmat comme nt into li nes no gre ater than  78 charact ers
  484    . ; with  logical br eaks betwe en words.
  485    . K ^UTIL ITY($J,"W" )
  486    . S X=PSO COMMENT,DI WL=1,DIWR= 78
  487    . D ^DIWP
  488    . F PSOY= 1:1 Q:('$D (^UTILITY( $J,"W",1,P SOY,0)))   D
  489    . . S PSO COM=$G(^UT ILITY($J," W",1,PSOY, 0))
  490    . . S PSO LINE=PSOLI NE+1
  491    . . D SET ^VALM10(PS OLINE,"  " _PSOCOM,"" )
  492    . K ^UTIL ITY($J,"W" )
  493    ;
  494    S VALMCNT =PSOLINE
  495    ; 
  496    Q
  497    ;
  498   ADD ; Add  Patient Co mment
  499    ;
  500    N PSO55,P SOCOM
  501    ;
  502    D FULL^VA LM1
  503    S PSOCOM= $$COMMENT^ PSOREJP3(" Comment: " ,150)
  504    ; Comment  not confi rmed or us er entered  ^ to Exit
  505    I $L(PSOC OM)=0!(PSO COM["^") S  VALMBCK=" R" Q
  506    S PSO55=$ G(PSOPTC(" DFN"))
  507    ; Valid c omment ent ered - Cre ate new mu ltiple rec ord
  508    D ADDPC(P SOCOM,PSO5 5)
  509    D INIT
  510    S VALMBCK ="R"
  511    ;
  512    Q
  513    ;
  514   ADDPC(PSOC OM,PSO55)  ; Add new  multiple r ecord for  Patient Co mment
  515    ;
  516    N PSO200, PSOAR,PSOF ILE,PSOIEN ,PSONOW,PS OPC
  517    ;
  518    ; Create  the Patien t Comment  multiple
  519    S PSOFILE =55.17
  520    D NOW^%DT C
  521    S PSONOW= %
  522    S PSOAR(1 ,PSOFILE," +1,"_PSO55 _",",.01)= PSONOW
  523    D UPDATE^ DIE("","PS OAR(1)") K  PSOAR
  524    ;
  525    ; Populat e the data  into the  Patient Co mment mult iple
  526    S PSO200= DUZ
  527    S PSOPC=$ O(^PS(55,P SO55,"PC", "B",PSONOW ,""))
  528    S PSOIEN= PSOPC_","_ PSO55_","
  529    S PSOAR(P SOFILE,PSO IEN,1)=PSO 200
  530    S PSOAR(P SOFILE,PSO IEN,2)="Y"
  531    S PSOAR(P SOFILE,PSO IEN,3)=PSO COM
  532    D FILE^DI E(,"PSOAR" ) K PSOAR
  533    ;
  534    ; Add Pat ient Comme nt History
  535    D ADDPCH( PSO55,PSOP C,PSONOW,1 )
  536    ;
  537    Q
  538    ;
  539   ADDPCH(PSO 55,PSOPC,P SONOW,PSOA CT) ; Add  new multip le record  for Patien t Comment  History
  540    ;
  541    N PSO200, PSOAR,PSOF ILE,PSOIEN ,PSOPCH
  542    ;
  543    ; Create  the Patien t Comment  History mu ltiple
  544    S PSOFILE =55.174
  545    S PSO200= DUZ
  546    S PSOAR(1 ,PSOFILE," +1,"_PSOPC _","_PSO55 _",",.01)= PSONOW
  547    D UPDATE^ DIE("","PS OAR(1)")
  548    K PSOAR
  549    ;
  550    ; Populat e the data  into the  Patient Co mment Hist ory multip le
  551    S PSOPCH= $O(^PS(55, PSO55,"PC" ,PSOPC,"PC H","B",PSO NOW,""))
  552    S PSOIEN= PSOPCH_"," _PSOPC_"," _PSO55_","
  553    S PSOAR(P SOFILE,PSO IEN,1)=PSO 200
  554    S PSOAR(P SOFILE,PSO IEN,2)=PSO ACT
  555    D FILE^DI E(,"PSOAR" ) K PSOAR
  556    ;
  557    Q
  558    ;
  559   ACT ; Acti vate / Ina ctivate Pa tient Comm ent
  560    ;
  561    ; ACT ser ves as a t oggle for  Activating  and Inact ivating co mments.
  562    ; Upon se lection of  this acti on, the us er will be  prompted  for 
  563    ; the lin e to Activ ate/Inacti vate. The  comment wi ll be redi splayed 
  564    ; to the  user. A co nfirmation  prompt wi ll appear.  Upon conf irmation,
  565    ; the val ue will be  updated a nd the dis play refre shed.
  566    ; If the  user confi rmed to ch ange the s tatus of t he comment , a histor y
  567    ; record  will be fi led.
  568    ; 
  569    N DIWL,DI WR,PSO55,P SOACT,PSOA CT1,PSOAR, PSOCOM,PSO DATA,PSOFI LE
  570    N PSOLINE ,PSOIEN,PS ONOW,PSONO WH,PSOPC,P SOY,PSOYES NO
  571    ;
  572    ; Get rec ord id (#5 5.17) for  selected e ntry
  573    S PSOPC=$ $SELECT(.P SOLINE)
  574    ;
  575    I PSOPC=" ^" S VALMB CK="R" Q
  576    ;
  577    S PSOFILE =55.17
  578    S PSO55=P SOPTC("DFN ")
  579    K PSODATA
  580    S PSOIEN= PSOPC_","_ PSO55_","
  581    D GETS^DI Q(55.17,PS OIEN,".01; 2;3","I"," PSODATA")
  582    S PSONOW= $G(PSODATA (55.17,PSO IEN,.01,"I "))
  583    S PSOACT= "Activate"
  584    S PSOACT1 =$G(PSODAT A(55.17,PS OIEN,2,"I" ))
  585    I PSOACT1 ="Y" S PSO ACT="Inact ivate"
  586    W !,PSOAC T_" Commen t # "_PSOL INE_":"
  587    I $L($G(P SODATA(55. 17,PSOIEN, 3,"I")))>7 8 D
  588    . K ^UTIL ITY($J,"W" )
  589    . S X=PSO DATA(55.17 ,PSOIEN,3, "I"),DIWL= 1,DIWR=78
  590    . D ^DIWP
  591    . F PSOY= 1:1 Q:('$D (^UTILITY( $J,"W",1,P SOY,0)))   D
  592    . . S PSO COM=$G(^UT ILITY($J," W",1,PSOY, 0))
  593    . . W !,"   "_PSOCOM
  594    . K ^UTIL ITY($J,"W" )
  595    E  W !,"   "_PSODATA (55.17,PSO IEN,3,"I")
  596    ;
  597    S PSOYESN O=$$YESNO^ PSOREJP3(" Are you su re Y/N")
  598    I PSOYESN O=-1 G ACT X
  599    ;
  600    I PSOYESN O=1 D
  601    . S PSOAR (PSOFILE,P SOIEN,2)=" N"
  602    . I PSOAC T1="N" S P SOAR(PSOFI LE,PSOIEN, 2)="Y"
  603    . D FILE^ DIE(,"PSOA R") K PSOA R
  604    . ;
  605    . ; Add P atient Com ment Histo ry
  606    . D NOW^% DTC
  607    . S PSONO WH=%
  608    . I PSOAC T1="Y" D A DDPCH(PSO5 5,PSOPC,PS ONOWH,3)
  609    . I PSOAC T1="N" D A DDPCH(PSO5 5,PSOPC,PS ONOWH,2)
  610    ;
  611   ACTX ; 
  612    ;
  613    D INIT
  614    S VALMBCK ="R"
  615    ;
  616    Q
  617    ;
  618   HIST ; Pat ient Comme nt History
  619    ;
  620    ; HIST pr ovides a h istorical  view of an y Patient  Comment.
  621    ; The use r will be  prompted t o select a  Patient C omment. Th e
  622    ; comment  will be r edisplayed  to the us er. A list ing of the
  623    ; comment 's history  will disp lay in rev erse chron ological o rder. 
  624    ; The val ues in thi s listing  will inclu de ADD, AC TIVATE and
  625    ; INACTIV ATE. The d ate/time a nd user fo r each his torical
  626    ; update  will displ ay.
  627    ;
  628    N DIWL,DI WR,PSO55,P SOCOM,PSOD ATA,PSOIEN ,PSOLINE
  629    N PSONOW, PSOPC,PSOP CH,PSOY
  630    ;
  631    S PSOPC=$ $SELECT(.P SOLINE)
  632    ;
  633    I PSOPC=" ^" S VALMB CK="R" Q
  634    ;
  635    S PSO55=P SOPTC("DFN ")
  636    ;
  637    W !
  638    S PSOIEN= PSOPC_","_ PSO55_","
  639    K PSODATA
  640    D GETS^DI Q(55.17,PS OIEN,".01; 2;3","I"," PSODATA")
  641    I $L($G(P SODATA(55. 17,PSOIEN, 3,"I")))>7 8 D
  642    . K ^UTIL ITY($J,"W" )
  643    . S X=PSO DATA(55.17 ,PSOIEN,3, "I"),DIWL= 1,DIWR=78
  644    . D ^DIWP
  645    . F PSOY= 1:1 Q:('$D (^UTILITY( $J,"W",1,P SOY,0)))   D
  646    . . S PSO COM=$G(^UT ILITY($J," W",1,PSOY, 0))
  647    . . W !,"  "_PSOCOM
  648    . K ^UTIL ITY($J,"W" )
  649    E  W !,"  "_PSODATA( 55.17,PSOI EN,3,"I")
  650    W !
  651    ;
  652    S PSONOW= ""
  653    F  S PSON OW=$O(^PS( 55,PSO55," PC",PSOPC, "PCH","B", PSONOW),-1 ) Q:PSONOW =""  D
  654    . S PSOPC H=""
  655    . S PSOPC H=$O(^PS(5 5,PSO55,"P C",PSOPC," PCH","B",P SONOW,PSOP CH))
  656    . S PSOIE N=PSOPCH_" ,"_PSOPC_" ,"_PSO55_" ,"
  657    . K PSODA TA
  658    . D GETS^ DIQ(55.174 ,PSOIEN,". 01;1;2","E ","PSODATA ")
  659    . W !,$G( PSODATA(55 .174,PSOIE N,2,"E"))
  660    . W ?15,$ G(PSODATA( 55.174,PSO IEN,.01,"E "))
  661    . W ?45,$ G(PSODATA( 55.174,PSO IEN,1,"E") )
  662    ;
  663    D WAIT^VA LM1
  664    ;
  665    D INIT
  666    S VALMBCK ="R"
  667    ;
  668    Q
  669    ;
  670   SELECT(PSO LINE) ; Se lect Line  from List  View
  671    ;
  672    N DIR,DIR UT,PSOMAX, Y
  673    ;
  674    D FULL^VA LM1
  675    ;
  676    I '$D(^TM P("PSOPTC0 ",$J)) D   Q "^"
  677    . W !!,"N o Patient  Comments a vailable f or selecti on."
  678    . D WAIT^ VALM1
  679    ;
  680    S PSOMAX= $O(^TMP("P SOPTC0",$J ,"IDX","") ,-1)
  681    ;
  682    W !
  683    S DIR(0)= "N^1:"_PSO MAX
  684    S DIR("A" )="Line"
  685    I PSOMAX= 1 S DIR("B ")=PSOMAX
  686    D ^DIR
  687    ;
  688    I $D(DIRU T) Q "^"
  689    S PSOLINE =Y
  690    ;
  691    Q $O(^TMP ("PSOPTC0" ,$J,"IDX", PSOLINE,"" ))
  692    ;
  693   HELP ;
  694    ;
  695    Q
  696    ;
  697   EXIT ;
  698    ;
  699    K ^TMP("P SOPTC0",$J ),PSOPTC
  700    Q
  701  
  702  
  703   Update to  the COM ac tion from  the Third  Party Paye r Reject o ptions. Wh en adding  a new comm ent the us er will be  prompted  for Commen t Type (Re ject or Pa tient Bill ing). Afte r saving t he comment , the Thir d Party Pa yer Reject  screens w ill be upd ated to in clude the  newly adde d comment.  
  704   Subroutine  Name
  705   ADDCOM^PSO REJP3
  706   Enhancemen t Category
  707    New
  708    Modify
  709    Delete
  710    No Change
  711   Story
  712   US598
  713   Related Me nu Options  or ListMa n Actions
  714   Third Part y Payer Re ject optio ns
  715   Related Ro utines
  716   This Subro utine is C alled By
  717   This Subro utine Call s
  718  
  719   PSO REJECT  DISPLAY A DD COMMENT  action pr otocol
  720   ^DIR
  721   GET1^DIQ 
  722   ADDPC^PSOR EJP1 
  723   INIT^PSORE JP1
  724   FULL^VALM1
  725   Related In tegration  Control Re gistration s (ICRs)
  726   n/a
  727   Data Passi ng
  728    Parameter  Input
  729    Parameter  Output
  730    Function  Return Val ue
  731    Global Mo dified
  732   Input Attr ibute Name  and Defin ition
  733   Name: n/a
  734   Definition
  735    New       Modify       Delete       No Cha nge
  736   Output Att ribute Nam e and Defi nition
  737   Name: n/a
  738   Definition
  739    New       Modify       Delete       No Cha nge
  740   Current Lo gic
  741  
  742   PSOREJP3 ; ALB/SS - T hird Party  Reject Di splay Scre en - Comme nts ;10/27 /06
  743    ;;7.0;OUT PATIENT PH ARMACY;**2 60,287,289 ,290,358,3 59,385,403 ,421,427,4 48**;DEC 1 997;Build  25
  744  
  745  
  746   ADDCOM ; -  Add comme nt worklis t action
  747    N PSCOM
  748    D FULL^VA LM1
  749    S PSCOM=$ $COMMENT(" Comment: " ,150)
  750    I $L(PSCO M)>0,PSCOM '["^" D
  751    . D SAVEC OM(RX,REJ, PSCOM) ;sa ve the com ment
  752    . D INIT^ PSOREJP1 ; update scr een
  753    S VALMBCK ="R"
  754    Q
  755  
  756   Modified L ogic (Chan ges are hi ghlighted)
  757  
  758   PSOREJP3 ; ALB/SS - T hird Party  Reject Di splay Scre en - Comme nts ;10/27 /06
  759    ;;7.0;OUT PATIENT PH ARMACY;**2 60,287,289 ,290,358,3 59,385,403 ,421,427,4 48,482**;D EC 1997;Bu ild 25
  760  
  761  
  762   ADDCOM ; -  Add comme nt worklis t action
  763    N PSO55,P SCOM,PSOCO MTYPE
  764    D FULL^VA LM1
  765    ;
  766    S DIR(0)= "S^R:Rejec t;P:Patien t Billing"
  767    S DIR("A" )="Comment  Type"
  768    S DIR("?" ,1)="The R eject Comm ent only d isplays fo r the spec ific rejec t."
  769    S DIR("?" )="The Pat ient Billi ng Comment  displays  on all rej ects for t he patient ."
  770    D ^DIR
  771    I $D(DIRU T) S VALMB CK="R" Q
  772    S PSOCOMT YPE=Y
  773    ;
  774    S PSCOM=$ $COMMENT(" Comment: " ,150)
  775    ;
  776    ; Save Re ject Type  Comment
  777    I PSOCOMT YPE="R",$L (PSCOM)>0, PSCOM'["^"  D
  778    . D SAVEC OM(RX,REJ, PSCOM) ;sa ve the com ment
  779    . D INIT^ PSOREJP1 ; update scr een
  780    ; Save Pa tient Bill ing Type C omment
  781    I PSOCOMT YPE="P",$L (PSCOM)>0, PSCOM'["^"  D
  782    . S PSO55 =$$GET1^DI Q(52,RX,2, "I")
  783    . D ADDPC ^PSOPTC0(P SCOM,PSO55 )
  784    . D INIT^ PSOREJP1
  785    S VALMBCK ="R"
  786    Q
  787     
  788  
  789   Existing [ Reject] co mments are  displayed  in the Th ird Party  Payer Reje ct options . The foll owing upda te will al so display  any Patie nt Billing  comments.
  790   Subroutine  Name
  791   COM^PSOREJ P3
  792   Enhancemen t Category
  793    New
  794    Modify
  795    Delete
  796    No Change
  797   Story
  798   US598
  799   Related Me nu Options  or ListMa n Actions
  800   Third Part y Payer Re ject optio ns
  801   Related Ro utines
  802   This Subro utine is C alled By
  803   This Subro utine Call s
  804  
  805   INIT^PSORE JP1
  806   COM^BPSSCR U3
  807   $$GET1^DIQ
  808   ^DIWP 
  809   SETLN^PSOR EJP1
  810   $$FMTE^XLF DT
  811   Related In tegration  Control Re gistration s (ICRs)
  812   n/a
  813   Data Passi ng
  814    Parameter  Input
  815    Parameter  Output
  816    Function  Return Val ue
  817    Global Mo dified
  818   Input Attr ibute Name  and Defin ition
  819   Name: n/a
  820   Definition
  821    New       Modify       Delete       No Cha nge
  822   Output Att ribute Nam e and Defi nition
  823   Name: n/a
  824   Definition
  825    New       Modify       Delete       No Cha nge
  826   Current Lo gic
  827  
  828   COM ; Buil ds the Com ments sect ion in the  Reject In formation  Screen.
  829    ; The fol lowing var iables are  assumed t o exist:
  830    ;   RX -  Pointer to  file# 52,  Prescript ion.
  831    ;   FILL  - Pointer  to the Ref ill sub-fi le of the  Prescripti on.
  832    ;   REJ -  Pointer t o the Reje ct Info su b-file of  the Prescr iption.
  833    ;
  834    N PSOARRA Y,PSOCOM,P SODATE,PSO LAST,PSOPF LAG,PSOTEM P,PSOUSER, PSOX,PSOY, X
  835    ;
  836    ; MRD;PSO *7*448 - T his patch  added the  ability fo r an OPECC  to flag a
  837    ; comment  on a BPS  Transactio n as being  for pharm acy.  A co mment so
  838    ; flagged  will appe ar on the  Reject Inf ormation S creen inte rmingled
  839    ; with an y other co mments on  the Prescr iption.  A ll the com ments will
  840    ; be sort ed in reve rse chrono logical or der.
  841    ;
  842    ; COM^BPS SCRU3 popu lates the  array PSOT EMP with a ll the com ments from
  843    ; the BPS  Transacti on corresp onding to  the Prescr iption and  Refill.
  844    ; Any of  those comm ents with  the Pharma cy flag se t to '1' w ill be
  845    ; added t o the arra y PSOARRAY .
  846    ;
  847    D COM^BPS SCRU3(RX,F ILL,,.PSOT EMP)  ; IA  6214.
  848    ;
  849    S PSODATE =0
  850    F  S PSOD ATE=$O(PSO TEMP(PSODA TE)) Q:'PS ODATE  D
  851    . S PSOX= 0
  852    . F  S PS OX=$O(PSOT EMP(PSODAT E,PSOX)) Q :'PSOX  D
  853    . . ;
  854    . . ; If  the Pharma cy flag is  set, then  add this  comment to  the
  855    . . ; arr ay PSOARRA Y to be di splayed.
  856    . . ;
  857    . . S PSO PFLAG=$P(P SOTEMP(PSO DATE,PSOX) ,U)
  858    . . I 'PS OPFLAG Q
  859    . . S PSO COM=$P(PSO TEMP(PSODA TE,PSOX),U ,2)
  860    . . S PSO USER=$P(PS OTEMP(PSOD ATE,PSOX), U,3)
  861    . . S PSO USER=$$GET 1^DIQ(200, PSOUSER,.0 1)
  862    . . S PSO Y=$$FMTE^X LFDT(PSODA TE)
  863    . . S PSO COM=PSOY_"  (OPECC) -  "_PSOCOM_ " ("_PSOUS ER_")"
  864    . . S PSO Y=$G(PSOAR RAY(PSODAT E))+1
  865    . . S PSO ARRAY(PSOD ATE)=PSOY
  866    . . S PSO ARRAY(PSOD ATE,PSOY)= PSOCOM
  867    . . Q
  868    . Q
  869    ;
  870    ; Pull co mments fro m the Reje ct sub-fil e of the P rescriptio n and
  871    ; add to  the array  PSOARRAY.
  872    ;
  873    S PSOX=0
  874    F  S PSOX =$O(^PSRX( RX,"REJ",R EJ,"COM",P SOX)) Q:'P SOX  D
  875    . S PSODA TE=$$GET1^ DIQ(52.255 1,PSOX_"," _REJ_","_R X,.01,"E")
  876    . S PSOUS ER=$$GET1^ DIQ(52.255 1,PSOX_"," _REJ_","_R X,1)
  877    . S PSOCO M=$$GET1^D IQ(52.2551 ,PSOX_","_ REJ_","_RX ,2)
  878    . S PSOCO M=PSODATE_ " - "_PSOC OM_" ("_PS OUSER_")"
  879    . S PSODA TE=$$GET1^ DIQ(52.255 1,PSOX_"," _REJ_","_R X,.01,"I")
  880    . S PSOY= $G(PSOARRA Y(PSODATE) )+1
  881    . S PSOAR RAY(PSODAT E)=PSOY
  882    . S PSOAR RAY(PSODAT E,PSOY)=PS OCOM
  883    . Q
  884    ;
  885    ; At this  point, al l of the c omments to  be displa yed are in  the array
  886    ; PSOARRA Y, sorted  by date/ti me.  If th at array i s empty, t hen Quit
  887    ; out.  O therwise,  loop throu gh the com ments back wards to d isplay in
  888    ; reverse  chronolog ical order .
  889    ;
  890    I '$O(PSO ARRAY(""))  Q
  891    D SETLN^P SOREJP1()
  892    D SETLN^P SOREJP1("C OMMENTS",1 ,1)
  893    ;
  894    S PSODATE =""
  895    F  S PSOD ATE=$O(PSO ARRAY(PSOD ATE),-1) Q :'PSODATE   D
  896    . S PSOX= ""
  897    . F  S PS OX=$O(PSOA RRAY(PSODA TE,PSOX),- 1) Q:'PSOX   D
  898    . . ;
  899    . . ; Use  ^DIWP uti lity to pu t comment  into scrat ch global  array,
  900    . . ; wit h lines br oken apart  intellige ntly.
  901    . . ;
  902    . . N %,D IW,DIWF,DI WI,DIWL,DI WR,DIWT,DI WTC,DIWX,D N,I,Z
  903    . . K ^UT ILITY($J," W")
  904    . . S X=P SOARRAY(PS ODATE,PSOX )
  905    . . S DIW L=1
  906    . . S DIW R=78
  907    . . D ^DI WP
  908    . . ;
  909    . . ; Loo p through  the scratc h array an d add each  line to t he ^TMP
  910    . . ; glo bal to be  displayed  on the scr een.
  911    . . ;
  912    . . S PSO LAST=0
  913    . . F PSO Y=1:1 Q:(' $D(^UTILIT Y($J,"W",1 ,PSOY,0)))   D
  914    . . . S P SOCOM=$G(^ UTILITY($J ,"W",1,PSO Y,0))
  915    . . . ;
  916    . . . ; I f this lin e is the l ast of thi s comment,  and this  is the
  917    . . . ; l ast commen t, then Se t PSOLAST= 1 to make  this line  underlined
  918    . . . ; o n the scre en.
  919    . . . ;
  920    . . . I ' $D(^UTILIT Y($J,"W",1 ,PSOY+1)), $O(PSOARRA Y(PSODATE, PSOX),-1)= "",$O(PSOA RRAY(PSODA TE),-1)=""  S PSOLAST =1
  921    . . . ;
  922    . . . ; U se SETLN^P SOREJP1 to  add line  to ^TMP ar ray to be  displayed  to screen.
  923    . . . ;
  924    . . . D S ETLN^PSORE JP1($S(PSO Y=1:"- ",1 :"  ")_PSO COM,0,PSOL AST,1)
  925    . . . Q
  926    . . Q
  927    . Q
  928    ;
  929    K ^UTILIT Y($J,"W")
  930    Q
  931  
  932   Modified L ogic (Chan ges are hi ghlighted)
  933  
  934   COM ; Buil ds the Com ments sect ion in the  Reject In formation  Screen.
  935    ; The fol lowing var iables are  assumed t o exist:
  936    ;   RX -  Pointer to  file# 52,  Prescript ion.
  937    ;   FILL  - Pointer  to the Ref ill sub-fi le of the  Prescripti on.
  938    ;   REJ -  Pointer t o the Reje ct Info su b-file of  the Prescr iption.
  939    ;
  940    N PSOARRA Y,PSOCNT,P SOCOM,PSOD ATA,PSODAT E,PSODATE1 ,PSODFN,PS OLAST,PSOP C
  941    N PSOPFLA G,PSOSTATU S,PSOSTR,P SOTEMP,PSO USER,PSOX, PSOY,X
  942    ;
  943    ; MRD;PSO *7*448 - T his patch  added the  ability fo r an OPECC  to flag a
  944    ; comment  on a BPS  Transactio n as being  for pharm acy.  A co mment so
  945    ; flagged  will appe ar on the  Reject Inf ormation S creen inte rmingled
  946    ; with an y other co mments on  the Prescr iption.  A ll the com ments will
  947    ; be sort ed in reve rse chrono logical or der.
  948    ;
  949    ; COM^BPS SCRU3 popu lates the  array PSOT EMP with a ll the com ments from
  950    ; the BPS  Transacti on corresp onding to  the Prescr iption and  Refill.
  951    ; Any of  those comm ents with  the Pharma cy flag se t to '1' w ill be
  952    ; added t o the arra y PSOARRAY .
  953    ;
  954    D COM^BPS SCRU3(RX,F ILL,,.PSOT EMP)  ; IA  6214.
  955    ;
  956    S PSODATE =0
  957    F  S PSOD ATE=$O(PSO TEMP(PSODA TE)) Q:'PS ODATE  D
  958    . S PSOX= 0
  959    . F  S PS OX=$O(PSOT EMP(PSODAT E,PSOX)) Q :'PSOX  D
  960    . . ;
  961    . . ; If  the Pharma cy flag is  set, then  add this  comment to  the
  962    . . ; arr ay PSOARRA Y to be di splayed.
  963    . . ;
  964    . . S PSO PFLAG=$P(P SOTEMP(PSO DATE,PSOX) ,U)
  965    . . I 'PS OPFLAG Q
  966    . . S PSO COM=$P(PSO TEMP(PSODA TE,PSOX),U ,2)
  967    . . S PSO USER=$P(PS OTEMP(PSOD ATE,PSOX), U,3)
  968    . . S PSO USER=$$GET 1^DIQ(200, PSOUSER,.0 1)
  969    . . S PSO Y=$$FMTE^X LFDT(PSODA TE)
  970    . . S PSO COM=PSOY_"  (OPECC) -  "_PSOCOM_ " ("_PSOUS ER_")"
  971    . . S PSO Y=$G(PSOAR RAY(PSODAT E))+1
  972    . . S PSO ARRAY(PSOD ATE)=PSOY
  973    . . S PSO ARRAY(PSOD ATE,PSOY)= PSOCOM
  974    . . Q
  975    . Q
  976    ;
  977    ; Pull co mments fro m the Reje ct sub-fil e of the P rescriptio n and
  978    ; add to  the array  PSOARRAY.
  979    ;
  980    S PSOX=0
  981    F  S PSOX =$O(^PSRX( RX,"REJ",R EJ,"COM",P SOX)) Q:'P SOX  D
  982    . S PSODA TE=$$GET1^ DIQ(52.255 1,PSOX_"," _REJ_","_R X,.01,"E")
  983    . S PSOUS ER=$$GET1^ DIQ(52.255 1,PSOX_"," _REJ_","_R X,1)
  984    . S PSOCO M=$$GET1^D IQ(52.2551 ,PSOX_","_ REJ_","_RX ,2)
  985    . S PSOCO M=PSODATE_ " - "_PSOC OM_" ("_PS OUSER_")"
  986    . S PSODA TE=$$GET1^ DIQ(52.255 1,PSOX_"," _REJ_","_R X,.01,"I")
  987    . S PSOY= $G(PSOARRA Y(PSODATE) )+1
  988    . S PSOAR RAY(PSODAT E)=PSOY
  989    . S PSOAR RAY(PSODAT E,PSOY)=PS OCOM
  990    . Q
  991    ;
  992    ; At this  point, al l of the c omments to  be displa yed are in  the array
  993    ; PSOARRA Y, sorted  by date/ti me.  If th at array i s empty, t hen Quit
  994    ; out.  O therwise,  loop throu gh the com ments back wards to d isplay in
  995    ; reverse  chronolog ical order .
  996    ;
  997    I '$O(PSO ARRAY(""))  Q
  998    D SETLN^P SOREJP1()
  999    D SETLN^P SOREJP1("C OMMENTS -  REJECT",1, 1)
  1000    ;
  1001    S PSODATE =""
  1002    F  S PSOD ATE=$O(PSO ARRAY(PSOD ATE),-1) Q :'PSODATE   D
  1003    . S PSOX= ""
  1004    . F  S PS OX=$O(PSOA RRAY(PSODA TE,PSOX),- 1) Q:'PSOX   D
  1005    . . ;
  1006    . . ; Use  ^DIWP uti lity to pu t comment  into scrat ch global  array,
  1007    . . ; wit h lines br oken apart  intellige ntly.
  1008    . . ;
  1009    . . N %,D IW,DIWF,DI WI,DIWL,DI WR,DIWT,DI WTC,DIWX,D N,I,Z
  1010    . . K ^UT ILITY($J," W")
  1011    . . S X=P SOARRAY(PS ODATE,PSOX )
  1012    . . S DIW L=1
  1013    . . S DIW R=78
  1014    . . D ^DI WP
  1015    . . ;
  1016    . . ; Loo p through  the scratc h array an d add each  line to t he ^TMP
  1017    . . ; glo bal to be  displayed  on the scr een.
  1018    . . ;
  1019    . . S PSO LAST=0
  1020    . . F PSO Y=1:1 Q:(' $D(^UTILIT Y($J,"W",1 ,PSOY,0)))   D
  1021    . . . S P SOCOM=$G(^ UTILITY($J ,"W",1,PSO Y,0))
  1022    . . . ;
  1023    . . . ; I f this lin e is the l ast of thi s comment,  and this  is the
  1024    . . . ; l ast commen t, then Se t PSOLAST= 1 to make  this line  underlined
  1025    . . . ; o n the scre en.
  1026    . . . ;
  1027    . . . I ' $D(^UTILIT Y($J,"W",1 ,PSOY+1)), $O(PSOARRA Y(PSODATE, PSOX),-1)= "",$O(PSOA RRAY(PSODA TE),-1)=""  S PSOLAST =1
  1028    . . . ;
  1029    . . . ; U se SETLN^P SOREJP1 to  add line  to ^TMP ar ray to be  displayed  to screen.
  1030    . . . ;
  1031    . . . D S ETLN^PSORE JP1($S(PSO Y=1:"- ",1 :"  ")_PSO COM,0,PSOL AST,1)
  1032    . . . Q
  1033    . . Q
  1034    . Q
  1035    ;
  1036    K PSOARRA Y
  1037    ;
  1038    ; Get Pat ient ID -  If no Pati ent Commen ts on file , Quit
  1039    S PSODFN= $$GET1^DIQ (52,RX,2," I")
  1040    I '$D(^PS (55,PSODFN ,"PC")) Q
  1041    ;
  1042    ; Loop th rough Pati ent Commen ts - Add A CTIVE Comm ents to PS OAR array
  1043    S PSODATE =""
  1044    S PSOCNT= 0
  1045    K PSOAR
  1046    F  S PSOD ATE=$O(^PS (55,PSODFN ,"PC","B", PSODATE))  Q:PSODATE= ""  D
  1047    . S PSOPC =""
  1048    . F  S PS OPC=$O(^PS (55,PSODFN ,"PC","B", PSODATE,PS OPC)) Q:PS OPC=""  D
  1049    . . K PSO DATA
  1050    . . D GET S^DIQ(55.1 7,PSOPC_", "_PSODFN_" ,",".01;1; 2;3","IE", "PSODATA")
  1051    . . ; 
  1052    . . ; Onl y display  ACTIVE Pat ient Comme nts
  1053    . . S PSO STATUS=$G( PSODATA(55 .17,PSOPC_ ","_PSODFN _",",2,"I" ))
  1054    . . I PSO STATUS'="Y " Q
  1055    . . ;
  1056    . . S PSO DATE1=$G(P SODATA(55. 17,PSOPC_" ,"_PSODFN_ ",",.01,"E "))
  1057    . . S PSO USER=$G(PS ODATA(55.1 7,PSOPC_", "_PSODFN_" ,",1,"E"))
  1058    . . S PSO COM=$G(PSO DATA(55.17 ,PSOPC_"," _PSODFN_", ",3,"E"))
  1059    . . S PSO STR=PSODAT E1_" - "_P SOCOM_" (" _PSOUSER_" )"
  1060    . . S PSO CNT=PSOCNT +1
  1061    . . S PSO ARRAY(PSOC NT)=PSOSTR
  1062    ;
  1063    ; If PSOA R array ex ists, disp lay Active  Patient C omments
  1064    I $D(PSOA R) D
  1065    . D SETLN ^PSOREJP1( "COMMENTS  - PATIENT" ,1,1)
  1066    . ;
  1067    . ; Loop  through PS OAR in rev erse order  to displa y Patient
  1068    . ; Comme nts in rev erse chron ological o rder
  1069    . S PSOCN T=""
  1070    . F  S PS OCNT=$O(PS OARRAY(PSO CNT),-1) Q :PSOCNT=""   D
  1071    . . ;
  1072    . . ; Use  ^DIWP to  display Pa tient Comm ents with  proper
  1073    . . ; lin e breaking
  1074    . . N %,D IW,DIWF,DI WI,DIWL,DI WR,DIWT,DI WTC,DIWX,D N,I,Z
  1075    . . K ^UT ILITY($J," W")
  1076    . . S X=P SOARRAY(PS OCNT)
  1077    . . S DIW L=1
  1078    . . S DIW R=78
  1079    . . D ^DI WP
  1080    . . ;
  1081    . . S PSO LAST=0
  1082    . . F PSO Y=1:1 Q:(' $D(^UTILIT Y($J,"W",1 ,PSOY,0)))   D
  1083    . . . S P SOCOM=$G(^ UTILITY($J ,"W",1,PSO Y,0))
  1084    . . . ;
  1085    . . . ; L ooping thr ough the a rray in re verse orde r means PS OCNT=1
  1086    . . . ; w ill be the  last comm ent to dis play. If t he last li ne of the 
  1087    . . . ; l ast commen t is being  displayed , set PSOL AST=1 to u nderline
  1088    . . . ; t he comment  on the sc reen.
  1089    . . . ;
  1090    . . . I ' $D(^UTILIT Y($J,"W",1 ,PSOY+1)), PSOCNT=1 S  PSOLAST=1
  1091    . . . ;
  1092    . . . ; U se SETLN^P SOREJP1 to  add line  to ^TMP ar ray to be  displayed  to screen.
  1093    . . . ;
  1094    . . . D S ETLN^PSORE JP1($S(PSO Y=1:"- ",1 :"  ")_PSO COM,0,PSOL AST,1)
  1095    ;
  1096    K ^UTILIT Y($J,"W")
  1097    Q
  1098     
  1099  
  1100   Existing [ Reject] co mments are  displayed  on the Re ject Notif ication Sc reen. The  following  update wil l also dis play any P atient Bil ling comme nts.
  1101   Subroutine  Name
  1102   DISPLAY^PS OREJU3
  1103   Enhancemen t Category
  1104    New
  1105    Modify
  1106    Delete
  1107    No Change
  1108   Story
  1109   US598
  1110   Related Me nu Options  or ListMa n Actions
  1111   Reject Not ification  Screen
  1112   Related Ro utines
  1113   This Subro utine is C alled By
  1114   This Subro utine Call s
  1115  
  1116   ACTION^PSO REJU1
  1117   DC1^PSOREJ U1
  1118   $$CLAIM^BP SBUTL
  1119   $$GET1^DIQ
  1120   ^DIWP 
  1121   PRT^PSOREJ U2
  1122   $$PTINFO^P SOREJU2
  1123   Related In tegration  Control Re gistration s (ICRs)
  1124   n/a
  1125   Data Passi ng
  1126    Parameter  Input
  1127    Parameter  Output
  1128    Function  Return Val ue
  1129    Global Mo dified
  1130   Input Attr ibute Name  and Defin ition
  1131   Name: RX
  1132   Definition : Rx IEN
  1133    New       Modify       Delete       No Cha nge
  1134   Name: REJ
  1135   Definition : REJECT I D (IEN)
  1136    New       Modify       Delete       No Cha nge
  1137   Name: KEY
  1138   Definition : Display  “Press any  KEY to co ntinue…”
  1139    New       Modify       Delete       No Cha nge
  1140   Name: RRR
  1141   Definition : Reject R esolution  Required I nformation
  1142    New       Modify       Delete       No Cha nge
  1143   Output Att ribute Nam e and Defi nition
  1144   Name: n/a
  1145   Definition
  1146    New       Modify       Delete       No Cha nge
  1147   Current Lo gic
  1148  
  1149   PSOREJU3 ; BIRM/LJE -  BPS (ECME ) - Clinic al Rejects  Utilities  (3) ;04/2 5/08
  1150    ;;7.0;OUT PATIENT PH ARMACY;**2 87,290,358 ,359,385,4 21,427,448 ,478**;DEC  1997;Buil d 25
  1151  
  1152  
  1153   DISPLAY(RX ,REJ,KEY,R RR) ; - Di splays REJ ECT inform ation
  1154    ; Input:   (r) RX  -  Rx IEN (# 52) 
  1155    ;          (r) REJ -  REJECT ID  (IEN)
  1156    ;          (o) KEY -  Display " Press any  KEY to con tinue..."  (1-YES/0-N O) (Defaul t: 0)
  1157    ;          (o) RRR -  Reject Re solution R equired in formation   Flag(0/1) ^Threshold  Amt^Gross  Amt Due   (Default:  0)
  1158    ;                     If Flag =  0, there  is no Reje ct Resolut ion Requir ed reject  code.  Par ameter add ed with PS O*421
  1159    ;          
  1160    Q:$G(NFRO M)
  1161    I '$G(RX) !'$G(REJ)  Q
  1162    I '$D(^PS RX(RX,"REJ ",REJ))&(' $G(PSONBIL L))&('$G(P SONPROG))  Q
  1163    ;
  1164    N DATA,RF L,LINE,%
  1165    S RFL=+$$ GET1^DIQ(5 2.25,REJ_" ,"_RX,5)
  1166    I '$G(PSO NBILL)&('$ G(PSONPROG )) D GET^P SOREJU2(RX ,RFL,.DATA ,REJ) I '$ D(DATA(REJ )) Q
  1167    ;
  1168    D HDR
  1169    S $P(LINE ,"-",74)=" " W !?3,LI NE
  1170    W !?3,$$D VINFO(RX,R FL)
  1171    W !?3,$$P TINFO^PSOR EJU2(RX)
  1172    W !?3,"Rx /Drug  : " ,$$GET1^DI Q(52,RX,.0 1),"/",RFL ," - ",$E( $$GET1^DIQ (52,RX,6), 1,20),?54
  1173    W:'$G(PSO NBILL)&('$ G(PSONPROG )) "ECME#:  ",$P($$CL AIM^BPSBUT L(RX,RFL), U,6)
  1174    D TYPE G  DISP2:$G(P SONBILL)!( $G(PSONPRO G))
  1175    I $G(DATA (REJ,"PAYE R MESSAGE" ))'="" W ! ?3,"Payer  Message: "  D PRT^PSO REJU2("PAY ER MESSAGE ",18,58)
  1176    I $G(DATA (REJ,"DUR  TEXT"))'=" " W !?3,"D UR Text      : ",DATA (REJ,"DUR  TEXT")
  1177    W !?3,"In surance     : ",DATA( REJ,"INSUR ANCE NAME" ),?50,"Con tact: ",DA TA(REJ,"PL AN CONTACT ")
  1178    W !?3,"Gr oup Name    : ",DATA( REJ,"GROUP  NAME"),?4 5,"Group N umber: ",D ATA(REJ,"G ROUP NUMBE R")
  1179    I $G(DATA (REJ,"CARD HOLDER ID" ))'="" W ! ?3,"Cardho lder ID: " ,DATA(REJ, "CARDHOLDE R ID")
  1180    I DATA(RE J,"PLAN PR EVIOUS FIL L DATE")'= "" D
  1181    . W !?3," Last Fill  Dt.: ",DAT A(REJ,"PLA N PREVIOUS  FILL DATE ")
  1182    . W:DATA( REJ,"PLAN  PREVIOUS F ILL DATE") '="" "   ( from payer )"
  1183    I $G(RRR)  D   ;adde d with PSO *421
  1184    . W !!?3, "Reject Re solution R equired"
  1185    . W !?3," Gross Amou nt Due ($" _$J($P(RRR ,U,3)*100\ 1/100,0,2) _") is gre ater than  or equal t o"
  1186    . W !?3," Threshold  Dollar Amo unt ($"_$P (RRR,U,2)_ ")"
  1187    . W !?3," Please sel ect Quit t o resolve  this rejec t on the R eject Work list."
  1188   DISP2 ;
  1189    W !?3,LIN E,$C(7) I  $G(KEY) W  !?3,"Press  <RETURN>  to continu e..." R %: DTIME W !
  1190    Q
  1191  
  1192   Modified L ogic (Chan ges are hi ghlighted)
  1193  
  1194   PSOREJU3 ; BIRM/LJE -  BPS (ECME ) - Clinic al Rejects  Utilities  (3) ;04/2 5/08
  1195    ;;7.0;OUT PATIENT PH ARMACY;**2 87,290,358 ,359,385,4 21,427,448 ,478,482** ;DEC 1997; Build 25
  1196  
  1197  
  1198   DISPLAY(RX ,REJ,KEY,R RR) ; - Di splays REJ ECT inform ation
  1199    ; Input:   (r) RX  -  Rx IEN (# 52) 
  1200    ;          (r) REJ -  REJECT ID  (IEN)
  1201    ;          (o) KEY -  Display " Press any  KEY to con tinue..."  (1-YES/0-N O) (Defaul t: 0)
  1202    ;          (o) RRR -  Reject Re solution R equired in formation   Flag(0/1) ^Threshold  Amt^Gross  Amt Due   (Default:  0)
  1203    ;                     If Flag =  0, there  is no Reje ct Resolut ion Requir ed reject  code.  Par ameter add ed with PS O*421
  1204    ;          
  1205    Q:$G(NFRO M)
  1206    I '$G(RX) !'$G(REJ)  Q
  1207    I '$D(^PS RX(RX,"REJ ",REJ))&(' $G(PSONBIL L))&('$G(P SONPROG))  Q
  1208    ;
  1209    N DATA,RF L,LINE,%
  1210    S RFL=+$$ GET1^DIQ(5 2.25,REJ_" ,"_RX,5)
  1211    I '$G(PSO NBILL)&('$ G(PSONPROG )) D GET^P SOREJU2(RX ,RFL,.DATA ,REJ) I '$ D(DATA(REJ )) Q
  1212    ;
  1213    D HDR
  1214    S $P(LINE ,"-",74)=" " W !?3,LI NE
  1215    W !?3,$$D VINFO(RX,R FL)
  1216    W !?3,$$P TINFO^PSOR EJU2(RX)
  1217    W !?3,"Rx /Drug  : " ,$$GET1^DI Q(52,RX,.0 1),"/",RFL ," - ",$E( $$GET1^DIQ (52,RX,6), 1,20),?54
  1218    W:'$G(PSO NBILL)&('$ G(PSONPROG )) "ECME#:  ",$P($$CL AIM^BPSBUT L(RX,RFL), U,6)
  1219    D TYPE G  DISP2:$G(P SONBILL)!( $G(PSONPRO G))
  1220    I $G(DATA (REJ,"PAYE R MESSAGE" ))'="" W ! ?3,"Payer  Message: "  D PRT^PSO REJU2("PAY ER MESSAGE ",18,58)
  1221    I $G(DATA (REJ,"DUR  TEXT"))'=" " W !?3,"D UR Text      : ",DATA (REJ,"DUR  TEXT")
  1222    W !?3,"In surance     : ",DATA( REJ,"INSUR ANCE NAME" ),?50,"Con tact: ",DA TA(REJ,"PL AN CONTACT ")
  1223    W !?3,"Gr oup Name    : ",DATA( REJ,"GROUP  NAME"),?4 5,"Group N umber: ",D ATA(REJ,"G ROUP NUMBE R")
  1224    I $G(DATA (REJ,"CARD HOLDER ID" ))'="" W ! ?3,"Cardho lder ID: " ,DATA(REJ, "CARDHOLDE R ID")
  1225    I DATA(RE J,"PLAN PR EVIOUS FIL L DATE")'= "" D
  1226    . W !?3," Last Fill  Dt.: ",DAT A(REJ,"PLA N PREVIOUS  FILL DATE ")
  1227    . W:DATA( REJ,"PLAN  PREVIOUS F ILL DATE") '="" "   ( from payer )"
  1228    ;
  1229    N PSOAR,P SOCNT,PSOC OMMENT,PSO DATA,PSODA TE,PSODATE 1
  1230    N PSODFN, PSOPC,PSOS TATUS,PSOS TR,PSOUSER
  1231    ;
  1232    ; Get Pat ient ID
  1233    ;
  1234   S PSODFN=$ $GET1^DIQ( 52,RX,2,"I ")
  1235    ;
  1236    ; Loop th rough Pati ent Commen ts - Add A CTIVE Comm ents to PS OAR array
  1237    S PSODATE =""
  1238    S PSOCNT= 0
  1239    K PSOAR
  1240    F  S PSOD ATE=$O(^PS (55,PSODFN ,"PC","B", PSODATE))  Q:PSODATE= ""  D
  1241    . S PSOPC =""
  1242    . F  S PS OPC=$O(^PS (55,PSODFN ,"PC","B", PSODATE,PS OPC)) Q:PS OPC=""  D
  1243    . . K PSO DATA
  1244    . . D GET S^DIQ(55.1 7,PSOPC_", "_PSODFN_" ,",".01;1; 2;3","IE", "PSODATA")
  1245    . . ; 
  1246    . . ; Onl y display  ACTIVE Pat ient Comme nts
  1247    . . S PSO STATUS=$G( PSODATA(55 .17,PSOPC_ ","_PSODFN _",",2,"I" ))
  1248    . . I PSO STATUS'="Y " Q
  1249    . . ;
  1250    . . S PSO DATE1=$G(P SODATA(55. 17,PSOPC_" ,"_PSODFN_ ",",.01,"E "))
  1251    . . S PSO USER=$G(PS ODATA(55.1 7,PSOPC_", "_PSODFN_" ,",1,"E"))
  1252    . . S PSO COMMENT=$G (PSODATA(5 5.17,PSOPC _","_PSODF N_",",3,"E "))
  1253    . . S PSO STR=PSODAT E1_" - "_P SOCOMMENT_ " ("_PSOUS ER_")"
  1254    . . S PSO CNT=PSOCNT +1
  1255    . . S PSO AR(PSOCNT) =PSOSTR
  1256    ;
  1257    ; If PSOA R array ex ists, disp lay Active  Patient C omments
  1258    I $D(PSOA R) D
  1259    . W !?3," Patient Bi lling Comm ent(s):"
  1260    . ;
  1261    . ; Loop  through PS OAR in rev erse order  to displa y Patient
  1262    . ; Comme nts in rev erse chron ological o rder
  1263    . S PSOCN T=""
  1264    . F  S PS OCNT=$O(PS OAR(PSOCNT ),-1) Q:PS OCNT=""  D
  1265    . . ;
  1266    . . ; Use  ^DIWP to  display Pa tient Comm ents with  proper
  1267    . . ; lin e breaking
  1268    . . N %,D IW,DIWF,DI WI,DIWL,DI WR,DIWT,DI WTC,DIWX,D N,I,Z
  1269    . . K ^UT ILITY($J," W")
  1270    . . S X=P SOAR(PSOCN T)
  1271    . . S DIW L=1
  1272    . . S DIW R=78
  1273    . . D ^DI WP
  1274    . . ;
  1275    . . S PSO LAST=0
  1276    . . F PSO Y=1:1 Q:(' $D(^UTILIT Y($J,"W",1 ,PSOY,0)))   D
  1277    . . . S P SOCOM=$G(^ UTILITY($J ,"W",1,PSO Y,0))
  1278    . . . W ! ?3,PSOCOM
  1279    . K ^UTIL ITY($J,"W" )
  1280    ;
  1281    I $G(RRR)  D   ;adde d with PSO *421
  1282    . W !!?3, "Reject Re solution R equired"
  1283    . W !?3," Gross Amou nt Due ($" _$J($P(RRR ,U,3)*100\ 1/100,0,2) _") is gre ater than  or equal t o"
  1284    . W !?3," Threshold  Dollar Amo unt ($"_$P (RRR,U,2)_ ")"
  1285    . W !?3," Please sel ect Quit t o resolve  this rejec t on the R eject Work list."
  1286   DISP2 ;
  1287    W !?3,LIN E,$C(7) I  $G(KEY) W  !?3,"Press  <RETURN>  to continu e..." R %: DTIME W !
  1288    Q
  1289      
  1290  
  1291   Back Out/R ollback Pr ocedure
  1292   This story  includes  modificati ons to exi sting rout ines.
  1293   To back ou t this enh ancement,  all the ro utines whi ch are a p art of thi s patch sh ould be ba cked up pr ior to ins tallation.  Reverting  to the pr evious ver sion of th ese routin es would b ack out th is enhance ment. Alte rnatively,  the previ ous versio n of these  routines  could be d istributed  via an em ergency pa tch.