Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Info |  Source |  Call Graph |  Caller Graph |  Entry Points |  External References |  Interaction Calls |  Global Variables Directly Accessed |  Label References |  Naked Globals |  Local Variables |  All
Print Page as PDF
Routine: PSODDPRE

Package: Outpatient Pharmacy

Routine: PSODDPRE


Information

PSODDPRE ; BIR/SAB - Enhanced OP order checks ;09/20/06 3:38pm

Source Information

Source file <PSODDPRE.m>

Call Graph

Call Graph

Call Graph Total: 22

Package Total Call Graph
Outpatient Pharmacy 10 ^PSOBUILD  ^PSOCMOPA  REMOTE^PSOCPPRE  (,NVA)^PSODDPR1  (,HD)^PSODDPR2  IMO^PSODDPR7  STAT^PSOFUNC  ($$TRANCMOP,CMOP)^PSOUTL  
FSIG^PSOUTLA  EN2^PSOUTLA1  
Pharmacy Data Management 5 PROC^PSSDIUTL  $$SUP^PSSDSAPI  $$DRG^PSSDSAPM  IN^PSSHRQ2  (PSOL,PSOUL)^PSSLOCK  
VA FileMan 3 C^%DTC  ^DIR  ^DIWP  
Kernel 2 ENDR^%ZISS  $$FMTE^XLFDT  
National Drug File 1 $$PROD0^PSNAPIS  
Toolkit 1 $$GETVUID^XTID  

Caller Graph

Legends:

Legend of Colors

Package Component Superscript legend

action A extended action Ea event driver Ed subscriber Su protocol O limited protocol LP run routine RR broker B edit E server Se print P screenman SM inquire I

Caller Graph

Caller Graph Total: 4

Package Total Caller Graph
Outpatient Pharmacy 4 PSOCPPRE  PSODDPR4  PSODDPR8  PSODRG  

Entry Points

Name Comments DBIA/ICR reference
OBX
EXIT ;
DUP
DATA
ASKCAN
FDB ;build drug check input
ID
ID1
DUPTHER(RXREC) ;screen out discontinued/duplicate therapy Rx's greater than business rule calculation (cancel date + days supply +7 days)
OIX
ULRX ;
PRSTAT(DA) ;Displays the prescription's status
DATACK ;check FDB returned data to determine whether to continue processing.
NVATST(PSONVTOI,PSONVTAP) ; Look for any active Non-VA Dispense Drugs not marked as a supply item

External References

Name Field # of Occurrence
C^%DTC DUPTHER+3
ENDR^%ZISS PRSTAT+9
^DIR ASKCAN+2, ASKCAN+7, ASKCAN+10, ASKCAN+11, ASKCAN+17, DATACK+4
^DIWP ASKCAN+25
$$PROD0^PSNAPIS FDB+3, ID+1
^PSOBUILD EXIT+1
^PSOCMOPA PRSTAT+5
REMOTE^PSOCPPRE PSODDPRE+33
^PSODDPR1 PSODDPRE+18
NVA^PSODDPR1 PSODDPRE+19
^PSODDPR2 OBX+10
HD^PSODDPR2 PSODDPRE+16, DATA+3, DATA+11, PRSTAT+2, PRSTAT+12
IMO^PSODDPR7 FDB+53
STAT^PSOFUNC DATA+15
$$TRANCMOP^PSOUTL PRSTAT+10
CMOP^PSOUTL ASKCAN+18
FSIG^PSOUTLA DATA+6
EN2^PSOUTLA1 DATA+7
PROC^PSSDIUTL OBX+11
$$SUP^PSSDSAPI NVATST+6
$$DRG^PSSDSAPM FDB+24, FDB+37
IN^PSSHRQ2 OBX+6
PSOL^PSSLOCK ASKCAN+11
PSOUL^PSSLOCK ULRX+2
$$FMTE^XLFDT PRSTAT+19, PRSTAT+20
$$GETVUID^XTID FDB+2, FDB+27, FDB+40, ID

Interaction Calls

Name Line Occurrences
Function Call: WRITE
  • Prompt: @IOF
  • Line Location: PSODDPRE+13
Function Call: WRITE
  • Prompt: !,"Now Processing Enhanced Order Checks! Please wait...",!
  • Line Location: OBX+5
Function Call: WRITE
  • Prompt: !,PSONULN,!,$C(7),"Duplicate Drug in Local Rx:",!
  • Line Location: DUP+0
Function Call: WRITE
  • Prompt: !,$J("Rx: ",24)_$P(^PSRX(+PSOSD(STA,DNM),0),"^")
  • Line Location: DATA+4
Function Call: WRITE
  • Prompt: !,$J("Drug: ",24)_$P(DNM,"^")
  • Line Location: DATA+5
Function Call: WRITE
  • Prompt: !,$J("SIG: ",24)
  • Line Location: DATA+8
Function Call: WRITE
  • Prompt: $G(BSIG(1))
  • Line Location: DATA+8
Function Call: WRITE
  • Prompt: !?24,$G(BSIG(PSREV))
  • Line Location: DATA+9
Function Call: WRITE
  • Prompt: !,$J("QTY: ",24)_$P(DUPRX0,"^",7),?42,$J("Refills remaining: ",24),RFLS-$S($D(^PSRX(RXREC,1,0)):$P(^(0),"^",4),1:0)
  • Line Location: DATA+12
Function Call: WRITE
  • Prompt: !,$J("Provider: ",24)_PHYS,?42,$J("Issued: ",24),$E(ISSD,4,5)_"/"_$E(ISSD,6,7)_"/"_$E(ISSD,2,3)
  • Line Location: DATA+14
Function Call: WRITE
  • Prompt: !,$J("Status: ",24)
  • Line Location: DATA+15
Function Call: WRITE
  • Prompt: ST
  • Line Location: DATA+15
Function Call: WRITE
  • Prompt: ?42,$J("Last filled: ",24)_$E(LSTFL,4,5)_"/"_$E(LSTFL,6,7)_"/"_$E(LSTFL,2,3)
  • Line Location: DATA+16
Function Call: WRITE
  • Prompt: !?42,$J("Days Supply: ",24)_$P(DUPRX0,"^",8)
  • Line Location: DATA+18
Function Call: WRITE
  • Prompt: !,"PATIENT ON AUTHORIZED ABSENCE!"
  • Line Location: DATA+19
Function Call: WRITE
  • Prompt: @IOF
  • Line Location: ASKCAN+2
Function Call: WRITE
  • Prompt: !!,$P(PSOMSG,"^",2),!
  • Line Location: ASKCAN+12
Function Call: WRITE
  • Prompt: !,"A CMOP Rx cannot be discontinued during transmission!",!
  • Line Location: ASKCAN+18
Function Call: WRITE
  • Prompt: !,$C(7)," -Prescription was not "_$S($P(PSOSD(STA,DNM),"^",2)=12:"reinstated",1:"discontinued")_"..."
  • Line Location: ASKCAN+19
Function Call: WRITE
  • Prompt: !!,"Prescription "_$P($G(^PSRX(+$G(RXRECLOC),0)),"^")_" is on Provider Hold, it cannot be discontinued.",!
  • Line Location: ASKCAN+22
Function Call: WRITE
  • Prompt: !!
  • Line Location: ASKCAN+24
Function Call: WRITE
  • Prompt: !,^UTILITY($J,"W",1,ZX,0)
  • Line Location: ASKCAN+26
Function Call: WRITE
  • Prompt: !
  • Line Location: ASKCAN+27
Function Call: WRITE
  • Prompt: !
  • Line Location: DATACK+4
Function Call: WRITE
  • Prompt: @IOF
  • Line Location: DATACK+4
Routine Call
  • DIR
  • Line Location:
    • ASKCAN+2
    • ASKCAN+7
    • ASKCAN+10
    • ASKCAN+11
    • ASKCAN+17
    • DATACK+4

Global Variables Directly Accessed

Name Line Occurrences  (* Changed,  ! Killed)
^PS(50.606 - [#50.606] FDB+23, FDB+36
^PS(50.7 - [#50.7] FDB+23, FDB+36
^PS(52.41 - [#52.41] FDB+15, FDB+16, FDB+18, FDB+22
^PS(53 - [#53] DATA+19
^PS(55 - [#55] FDB+31, FDB+35
^PSDRUG - [#50] FDB+5, FDB+20, FDB+21, FDB+25, FDB+27, FDB+33, FDB+34, FDB+38, FDB+40, FDB+50
, FDB+52, ID, ID+1, NVATST+4, NVATST+5
^PSDRUG("ASP" NVATST+3
^PSRX - [#52] DATA, DATA+4, DATA+6, DATA+7, DATA+12, DATA+16, ASKCAN+9, ASKCAN+13, ASKCAN+15, ASKCAN+22
, ASKCAN+25, FDB+43, FDB+48, DUPTHER+3, PRSTAT+3, PRSTAT+7, PRSTAT+10, PRSTAT+14, PRSTAT+15, PRSTAT+17
, PRSTAT+20
^TMP("PSORXBO" FDB+45
^TMP("PSORXDC" PSODDPRE+14!, PSODDPRE+26*, ASKCAN+21!, ASKCAN+28*, FDB+14, FDB+44
^TMP("PSORXDD" PSODDPRE+14!, PSODDPRE+26*, ASKCAN+3*, ASKCAN+28*, FDB+46
^TMP("PSORXPO" FDB+17
^TMP($J PSODDPRE+14!, PSODDPRE+30!, OBX+4, OBX+9, EXIT+4!, FDB+4!, FDB+5*, FDB+6!, FDB+7*, FDB+30
, ID1+1*, OIX*, DATACK+2
^UTILITY($J ASKCAN+24!, ASKCAN+26, ASKCAN+27!
^VA(200 - [#200] DATA+13
^XUSEC("PSORPH" PSODDPRE+20, PSODDPRE+29, ASKCAN+5

Label References

Name Line Occurrences
$$DUPTHER FDB+51
$$NVATST FDB+24, FDB+37
DATACK OBX+9
DUP PSODDPRE+21, PSODDPRE+22, PSODDPRE+27, PSODDPRE+28, PSODDPRE+29
EXIT OBX+4, OBX+9
FDB OBX+6
ID FDB+21, FDB+34, FDB+52
ID1 FDB+28, FDB+42
OIX FDB+24, FDB+37
PRSTAT DATA+17
ULRX ASKCAN+20, ASKCAN+22

Naked Globals

Name Field # of Occurrence
^("ND" ID+1
^("OR1" FDB+48
^(0 DATA+12, DATA+13, FDB+18, FDB+23, FDB+31, FDB+36

Local Variables

Legend:

>> Not killed explicitly
* Changed
! Killed
~ Newed

Name Field # of Occurrence
ACT PSODDPRE+25*, PSODDPRE+26, EXIT+2!, ASKCAN+17*, ASKCAN+20, ASKCAN+23, ASKCAN+28
BSIG DATA+6!, DATA+10!
BSIG( DATA+6*, DATA+9
BSIG(1 DATA+8, DATA+9
CAN EXIT+2!
CLS PSODDPRE+14!, ASKCAN+14!, ASKCAN+22!, ASKCAN+29!
CMOP ASKCAN+18!, PRSTAT+1~, PRSTAT+5!
CMOP("L" PRSTAT+7
CMOP("S" ASKCAN+18
CT FDB+1*, FDB+12*, FDB+34*, FDB+41*, FDB+54!, ID1+1, OIX
DA PSODDPRE+24*, PSODDPRE+26, EXIT+2!, DATA+2*, ASKCAN+17*, ASKCAN+28, PRSTAT~, PRSTAT+7
DDRG FDB+13~, FDB+22~, FDB+24*, FDB+25, FDB+26, FDB+35~, FDB+37*, FDB+38, FDB+39, FDB+54!
>> DFN FDB+1*
DIR OBX+8!, EXIT+2!, ASKCAN+1!, ASKCAN+2!, ASKCAN+6!, ASKCAN+7!, ASKCAN+10!, ASKCAN+11!, ASKCAN+17!, DATACK+4!
DIR("?" ASKCAN+1*, ASKCAN+6*, ASKCAN+10*, ASKCAN+11*, ASKCAN+16*, DATACK+3*
DIR("A" ASKCAN+1*, ASKCAN+6*, ASKCAN+10*, ASKCAN+11*, ASKCAN+15*, DATACK+1*, DATACK+2*, DATACK+3*
DIR(0 ASKCAN+1*, ASKCAN+6*, ASKCAN+10*, ASKCAN+11*, ASKCAN+15*, DATACK+1*
DIRUT OBX+3!, ASKCAN+2!, DATACK+4!
DIWF ASKCAN+24*, ASKCAN+27!
DIWL ASKCAN+24*, ASKCAN+27!
DIWR ASKCAN+24*, ASKCAN+27!
DNM PSODDPRE+15*, PSODDPRE+17*, PSODDPRE+20, PSODDPRE+24, PSODDPRE+26, PSODDPRE+29, EXIT+2!, DUP, DUP+1, DATA+4
, DATA+5, ASKCAN, ASKCAN+8, ASKCAN+15, ASKCAN+16, ASKCAN+17, ASKCAN+19, ASKCAN+20, ASKCAN+22, ASKCAN+23
, ASKCAN+25, ASKCAN+28, FDB+8*, FDB+10*, FDB+11, FDB+14, FDB+15, FDB+16, FDB+17, FDB+18
, FDB+30, FDB+31, FDB+43, FDB+44, FDB+45, FDB+46, FDB+48, FDB+54!
DO OBX+6*, EXIT+3!
DT DUPTHER+3, NVATST+5
DTOUT OBX+3!, ASKCAN+2!
DUOUT OBX+3!, ASKCAN+2!, DATACK+4!
DUP DUP*, ASKCAN+8, ASKCAN+10!, ASKCAN+11!, ASKCAN+14!, ASKCAN+20!, ASKCAN+22!, ASKCAN+29!
DUPRX0 EXIT+2!, DATA*, DATA+12, DATA+13, DATA+18
DUZ PSODDPRE+20, PSODDPRE+24, PSODDPRE+29, ASKCAN+5, ASKCAN+20, ASKCAN+23
FSIG DATA+6!, DATA+7!
FSIG( DATA+6
ID FDB+1~, FDB+2*, FDB+5, FDB+8!, FDB+27~*, FDB+40~*, FDB+54!, ID~*, ID1+1!
IOF PSODDPRE+13, ASKCAN+2, DATACK+4
>> IOINHI PRSTAT+9, PRSTAT+10
>> IOINORM PRSTAT+9, PRSTAT+11
>> IORVOFF PRSTAT+11
>> IORVON PRSTAT+10
IOSL PSODDPRE+16, DATA+3, DATA+11, PRSTAT+2, PRSTAT+12
ISSD EXIT+2!, DATA*, DATA+14
IT PSODDPRE+14!, OBX+2!, EXIT+3!
J EXIT+2!, DATA+15*
>> LIST PSODDPRE+15*, PSODDPRE+33*, OBX+3*, OBX+4, OBX+6, OBX+9, EXIT+4, FDB+4, FDB+5, FDB+6
, FDB+7, ID1+1, OIX, DATACK+2
LSTFL EXIT+2!, DATA+16*
MSG PSODDPRE+25*, PSODDPRE+26, EXIT+2!, DUP+1*, ASKCAN+20*, ASKCAN+23*, ASKCAN+28
ODRG FDB+8~, FDB+18*, FDB+19!, FDB+20, FDB+21, FDB+22~, FDB+26*, FDB+27, FDB+31*, FDB+32!
, FDB+33, FDB+34, FDB+35~, FDB+39*, FDB+40, FDB+48*, FDB+49, FDB+50, FDB+52, FDB+54!
, ID, ID+1, ID1+1
ORN FDB+1~, FDB+18*, FDB+31*, FDB+48*, FDB+54!, ID1+1
ORTYP FDB+1~, FDB+18*, FDB+31*, FDB+48*, FDB+54!, ID1+1, OIX
P1 FDB+3*, FDB+8!, ID~, ID+1*
P2 FDB+3*, FDB+8!, ID~, ID+1*
PDNM FDB+21*, FDB+23*, FDB+34*, FDB+36*, FDB+52*, FDB+54!, ID1+1, OIX
PDRG OBX+6*, EXIT+3!
PHYS EXIT+2!, DATA+13*, DATA+14
PSOCD EXIT+2!
PSOCLC PSODDPRE+24*, EXIT+2!, ASKCAN+20*, ASKCAN+23*
PSOCLOZ EXIT+2!
PSOCMOP PRSTAT+1~, PRSTAT+5, PRSTAT+6, PRSTAT+11, PRSTAT+13
>> PSOCOPY OBX+12, FDB+8, FDB+11
>> PSODFN FDB+1, FDB+7, FDB+31, FDB+35, FDB+53
>> PSODGCK OBX+10, OBX+11, ASKCAN+14, FDB+8, FDB+34, FDB+41, ID1, ID1+1
PSODGCKP ID~, ID1*, ID1+1
>> PSODGCKX FDB+6, FDB+34, FDB+41
PSODLQT PSODDPRE+15~, PSODDPRE+16, OBX+3!, OBX+13, EXIT+3!, DATA+3, DATA+11, ASKCAN+2*, PRSTAT+2, PRSTAT+12
PSODOSD OBX+3!
>> PSODRUG PSODDPRE+32, PSODDPRE+34*
>> PSODRUG("IEN" OBX+6, FDB+5, FDB+15
>> PSODRUG("NAME" PSODDPRE+20, PSODDPRE+29
>> PSODRUG("NDF" FDB+2, FDB+3
>> PSODUPC( PRSTAT+11*, PRSTAT+18*, PRSTAT+19*, PRSTAT+20*
>> PSODUPF PRSTAT+11, PRSTAT+18, PRSTAT+19, PRSTAT+20
PSOI FDB+1~, FDB+22~*, FDB+23, FDB+24, FDB+26!, FDB+35~*, FDB+36, FDB+37, FDB+39!, FDB+54!
PSOLDT EXIT+2!
PSOLR EXIT+2!
PSOLRD PRSTAT+1~, PRSTAT+3*, PRSTAT+16*, PRSTAT+17*, PRSTAT+20
PSOMSG ASKCAN+11!, ASKCAN+12, ASKCAN+15!
PSONOOR PSODDPRE+26*, ASKCAN+14!, ASKCAN+28*, ASKCAN+29!
PSONULN PSODDPRE+15~*, EXIT+2!, DUP, DATA+19
>> PSONV DUP+1, ASKCAN+17, ASKCAN+23
PSONVT1 NVATST+1~, NVATST+3*, NVATST+4, NVATST+5, NVATST+6
PSONVTAP NVATST~, NVATST+4
PSONVTFL NVATST+1~, NVATST+2*, NVATST+3, NVATST+6*, NVATST+7
PSONVTIN NVATST+1~, NVATST+5*
PSONVTOI NVATST~, NVATST+3
>> PSOPAR PSODDPRE+21, PSODDPRE+22, PSODDPRE+23, PSODDPRE+27, PSODDPRE+28, DATA+19, ASKCAN+5
>> PSOQUIT OBX+1, OBX+12
>> PSOREINS OBX+13
PSOREL PRSTAT+1~, PRSTAT+5!, PRSTAT+7*, PRSTAT+8*, PRSTAT+11
>> PSORENW OBX+12
>> PSORENW("OIRXN" PSODDPRE+17, FDB+11
PSORTS PRSTAT+1~, PRSTAT+16*, PRSTAT+17*, PRSTAT+19
>> PSORX("DFLG" PSODDPRE+17, PSODDPRE+20, PSODDPRE+21*, PSODDPRE+28*, PSODDPRE+31, OBX+1, OBX+13*, ASKCAN+2*, ASKCAN+6*, ASKCAN+10*
, ASKCAN+11*, ASKCAN+20*, ASKCAN+22*
>> PSORX("PATIEN T STATUS" , DATA+19
>> PSOSD( PSODDPRE+17, PSODDPRE+24, DUP, DUP+1, DATA+4, ASKCAN, ASKCAN+8, ASKCAN+15, ASKCAN+16, ASKCAN+17
, ASKCAN+19, ASKCAN+20, ASKCAN+22, ASKCAN+23, ASKCAN+25, FDB+10, FDB+11, FDB+14, FDB+15, FDB+16
, FDB+17, FDB+18, FDB+30, FDB+31, FDB+43, FDB+44, FDB+45, FDB+46, FDB+48
>> PSOTECCK PSODDPRE+21, PSODDPRE+22, PSODDPRE+23, ASKCAN+25
PSOTRANS PRSTAT+1~, PRSTAT+5!, PRSTAT+6*, PRSTAT+11
PSOTSTMD EXIT+3!
PSOX PRSTAT+1~, PRSTAT+14*, PRSTAT+15
PSREV DATA+6*, DATA+7!, DATA+9*, DATA+10!
REA EXIT+2!, ASKCAN+20*, ASKCAN+23*, ASKCAN+28
RFLS EXIT+2!, DATA*, DATA+12
RFLZRO PRSTAT+1~, PRSTAT+15*, PRSTAT+16
RX0 EXIT+2!, DATA*, DATA+15!
RX2 EXIT+2!, DATA*, DATA+15!
RXN EXIT+2!
RXPSTA PRSTAT+1~, PRSTAT+3*, PRSTAT+11, PRSTAT+18
RXREC EXIT+2!, DUP+1*, DATA, DATA+1, DATA+2, DATA+6, DATA+7, DATA+12, DATA+15, DATA+16
, DATA+17, ASKCAN+3, ASKCAN+17, ASKCAN+21, ASKCAN+28, FDB+18*, FDB+22, FDB+31*, FDB+35, FDB+48*
, FDB+51, FDB+54!, ID1+1, DUPTHER~, DUPTHER+3, OIX, PRSTAT+3, PRSTAT+10, PRSTAT+14, PRSTAT+15
, PRSTAT+17, PRSTAT+20
RXRECLOC DATA+1*, DATA+19!, ASKCAN+2!, ASKCAN+6!, ASKCAN+9, ASKCAN+10!, ASKCAN+11!, ASKCAN+13, ASKCAN+14!, ASKCAN+20!
, ASKCAN+22!, ASKCAN+29!, ULRX+1, ULRX+2
SEQN FDB+3*, FDB+4, FDB+5, FDB+8!, FDB+22~, FDB+26*, FDB+35~, FDB+39*, ID+1*, ID1+1
SIG EXIT+2!
>> SPCANC ASKCAN+17
ST EXIT+2!, DATA+15
STA PSODDPRE+15*, PSODDPRE+17*, PSODDPRE+18, PSODDPRE+19, PSODDPRE+24, PSODDPRE+26, DUP, DUP+1, DATA+4, ASKCAN
, ASKCAN+8, ASKCAN+15, ASKCAN+16, ASKCAN+17, ASKCAN+19, ASKCAN+20, ASKCAN+22, ASKCAN+23, ASKCAN+25, ASKCAN+28
, FDB+8*, FDB+10*, FDB+11, FDB+13, FDB+14, FDB+15, FDB+16, FDB+17, FDB+18, FDB+29
, FDB+30, FDB+31, FDB+43, FDB+44, FDB+45, FDB+46, FDB+48, FDB+51, FDB+54!
TU FDB+8~, FDB+54!
X ASKCAN+25*, ASKCAN+27!, FDB+3*, ID+1*, DUPTHER+3~, PRSTAT+9*, DATACK+4!
X1 DUPTHER+3~*
X2 DUPTHER+3~*
Y EXIT+2!, ASKCAN+18*, ASKCAN+19, DUPTHER+3~, DATACK+4!
>> ZCT PRSTAT+11, PRSTAT+18, PRSTAT+19, PRSTAT+20
ZDGDG OBX+2!
ZTHER OBX+2!
ZX ASKCAN+26~*
ZZ EXIT+2!
ZZPSODRG PSODDPRE+15~, PSODDPRE+32*, PSODDPRE+34
Info |  Source |  Call Graph |  Caller Graph |  Entry Points |  External References |  Interaction Calls |  Global Variables Directly Accessed |  Label References |  Naked Globals |  Local Variables |  All