PSOERBT0 ;ALB/MFR - Dispense Drug Conversion Prompts ;Jan 16, 2025@12:43:34
;;7.0;OUTPATIENT PHARMACY;**770**;DEC 16, 1997;Build 145
;
DRUGREP ; VistA Drug Replacement Entry Point
N DIC,DWLW,DWPK,DIWESUB,DUOUT,DIR,CNT,RX,DIRUT,DIROUT,TIUTITLE,PSOTITL,PSODFN,PSOQUIT,STOP,PSOTIUDA,TIUX
S VALMBCK="R" D FULL^VALM1
I $$GET1^DIQ(59.7,1,102,"I")'="MBM" D Q
. S VALMSG="This action is available for Meds-by-Mail (MbM) site only"
D ENTRYSEL^PSOERBT I '$O(^TMP("PSOERSEL",$J,0)) Q
;
; Progress Note for Drug Replacement
W ! K ^TMP("PSOERPN",$J)
S DIC="^TMP(""PSOERPN"""_",$J,"
S DWLW=80,DWPK=1
S DIWESUB="PATIENT PROGRESS NOTE" W !,DIWESUB,":"
W ! D EN^DIWE I $G(DUOUT) Q
;
S (RX,CNT)=0 F S RX=$O(^TMP("PSOERSEL",$J,RX)) Q:'RX S CNT=CNT+1
W ! K DIR S DIR(0)="SA^Y:YES;N:NO",DIR("B")="NO"
S DIR("A")="Are you sure you want to replace the VistA Drug for "
S DIR("A")=DIR("A")_$S(CNT>1:"these "_$G(IOINHI)_CNT_$G(IOINORM)_" Rx's",1:"Rx #"_$$GET1^DIQ(52,+$O(^TMP("PSOERSEL",$J,RX)),.01))_"? "
D ^DIR I $D(DIRUT)!$D(DIROUT)!(Y="N") Q
;
W ! S TIUTITLE="PHARMACY RX DRUG REPLACEMENT"
S PSOTITL=$$FIND1^DIC(8925.1,"","X",TIUTITLE,"B")
S (RXIEN,PSOQUIT)=0
F S RXIEN=$O(^TMP("PSOERSEL",$J,RXIEN)) Q:'RXIEN D I PSOQUIT Q
. ;
. S ENTRYNUM=+$G(^TMP("PSOERSEL",$J,RXIEN))
. W !!,IOINHI_$J(ENTRYNUM,4)_". "_$$GET1^DIQ(52,RXIEN,.01)_" - "_$$GET1^DIQ(52,RXIEN,6)_IOINORM
. W !," Replacing Dispense Drug with "_IOINHI_$$GET1^DIQ(50,NEWDRUG,.01)_IOINORM_"..."
. ;
. S SWAP=$$SWAPDRUG^PSODRGU0(RXIEN,NEWDRUG) W:SWAP IOINHI_"OK"_IOINORM
. I 'SWAP D Q
. . W !,"ERROR: ",$P(SWAP,"^",2)
. . W !! S STOP=$$ASKFLD^PSOSPMA3("E",,"Enter <RET> to continue or '^' to STOP") I STOP="^" S PSOQUIT=1
. ;
. W !," Creating a new Progress Note..."
. K ^TMP("TIUP",$J) M ^TMP("TIUP",$J)=^TMP("PSOERPN",$J)
. S PSODFN=$$GET1^DIQ(52,RXIEN,2,"I")
. D NEW^TIUPNAPI(.PSOTIUDA,PSODFN,DUZ,$$NOW^XLFDT,PSOTITL)
. I +$G(PSOTIUDA)<0 D Q
. . W !,$G(IOINHI),"A problem was encountered while creating the Progress Note.",$G(IOINORM),$C(7),!
. . W !! S STOP=$$ASKFLD^PSOSPMA3("E",,"Enter <RET> to continue or '^' to STOP") I STOP="^" S PSOQUIT=1
. S TIUX(.05)=$$FIND1^DIC(8925.6,"","X","COMPLETED","B")
. S TIUX(1501)=$$NOW^XLFDT()
. S TIUX(1502)=DUZ
. S TIUX(1503)=$$GET1^DIQ(200,+DUZ,20.2)
. S TIUX(1504)=$$GET1^DIQ(200,+DUZ,20.3)
. S TIUX(1505)="E"
. D UPDATE^TIUSRVP(.ERXRET,PSOTIUDA,.TIUX)
. W IOINHI_"OK"_IOINORM
;
I '$G(PSOQUIT) W !!,"Dispense Drug Replacement completed!",!
;
K ^TMP("TIUP",$J),^TMP("PSOERPN",$J) D PAUSE^PSOERXUT
D REF^PSOERBT
;
Q
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HPSOERBT0 2632 printed Aug 26, 2025@22:43:40 Page 2
PSOERBT0 ;ALB/MFR - Dispense Drug Conversion Prompts ;Jan 16, 2025@12:43:34
+1 ;;7.0;OUTPATIENT PHARMACY;**770**;DEC 16, 1997;Build 145
+2 ;
DRUGREP ; VistA Drug Replacement Entry Point
+1 NEW DIC,DWLW,DWPK,DIWESUB,DUOUT,DIR,CNT,RX,DIRUT,DIROUT,TIUTITLE,PSOTITL,PSODFN,PSOQUIT,STOP,PSOTIUDA,TIUX
+2 SET VALMBCK="R"
DO FULL^VALM1
+3 IF $$GET1^DIQ(59.7,1,102,"I")'="MBM"
Begin DoDot:1
+4 SET VALMSG="This action is available for Meds-by-Mail (MbM) site only"
End DoDot:1
QUIT
+5 DO ENTRYSEL^PSOERBT
IF '$ORDER(^TMP("PSOERSEL",$JOB,0))
QUIT
+6 ;
+7 ; Progress Note for Drug Replacement
+8 WRITE !
KILL ^TMP("PSOERPN",$JOB)
+9 SET DIC="^TMP(""PSOERPN"""_",$J,"
+10 SET DWLW=80
SET DWPK=1
+11 SET DIWESUB="PATIENT PROGRESS NOTE"
WRITE !,DIWESUB,":"
+12 WRITE !
DO EN^DIWE
IF $GET(DUOUT)
QUIT
+13 ;
+14 SET (RX,CNT)=0
FOR
SET RX=$ORDER(^TMP("PSOERSEL",$JOB,RX))
if 'RX
QUIT
SET CNT=CNT+1
+15 WRITE !
KILL DIR
SET DIR(0)="SA^Y:YES;N:NO"
SET DIR("B")="NO"
+16 SET DIR("A")="Are you sure you want to replace the VistA Drug for "
+17 SET DIR("A")=DIR("A")_$SELECT(CNT>1:"these "_$GET(IOINHI)_CNT_$GET(IOINORM)_" Rx's",1:"Rx #"_$$GET1^DIQ(52,+$ORDER(^TMP("PSOERSEL",$JOB,RX)),.01))_"? "
+18 DO ^DIR
IF $DATA(DIRUT)!$DATA(DIROUT)!(Y="N")
QUIT
+19 ;
+20 WRITE !
SET TIUTITLE="PHARMACY RX DRUG REPLACEMENT"
+21 SET PSOTITL=$$FIND1^DIC(8925.1,"","X",TIUTITLE,"B")
+22 SET (RXIEN,PSOQUIT)=0
+23 FOR
SET RXIEN=$ORDER(^TMP("PSOERSEL",$JOB,RXIEN))
if 'RXIEN
QUIT
Begin DoDot:1
+24 ;
+25 SET ENTRYNUM=+$GET(^TMP("PSOERSEL",$JOB,RXIEN))
+26 WRITE !!,IOINHI_$JUSTIFY(ENTRYNUM,4)_". "_$$GET1^DIQ(52,RXIEN,.01)_" - "_$$GET1^DIQ(52,RXIEN,6)_IOINORM
+27 WRITE !," Replacing Dispense Drug with "_IOINHI_$$GET1^DIQ(50,NEWDRUG,.01)_IOINORM_"..."
+28 ;
+29 SET SWAP=$$SWAPDRUG^PSODRGU0(RXIEN,NEWDRUG)
if SWAP
WRITE IOINHI_"OK"_IOINORM
+30 IF 'SWAP
Begin DoDot:2
+31 WRITE !,"ERROR: ",$PIECE(SWAP,"^",2)
+32 WRITE !!
SET STOP=$$ASKFLD^PSOSPMA3("E",,"Enter <RET> to continue or '^' to STOP")
IF STOP="^"
SET PSOQUIT=1
End DoDot:2
QUIT
+33 ;
+34 WRITE !," Creating a new Progress Note..."
+35 KILL ^TMP("TIUP",$JOB)
MERGE ^TMP("TIUP",$JOB)=^TMP("PSOERPN",$JOB)
+36 SET PSODFN=$$GET1^DIQ(52,RXIEN,2,"I")
+37 DO NEW^TIUPNAPI(.PSOTIUDA,PSODFN,DUZ,$$NOW^XLFDT,PSOTITL)
+38 IF +$GET(PSOTIUDA)<0
Begin DoDot:2
+39 WRITE !,$GET(IOINHI),"A problem was encountered while creating the Progress Note.",$GET(IOINORM),$CHAR(7),!
+40 WRITE !!
SET STOP=$$ASKFLD^PSOSPMA3("E",,"Enter <RET> to continue or '^' to STOP")
IF STOP="^"
SET PSOQUIT=1
End DoDot:2
QUIT
+41 SET TIUX(.05)=$$FIND1^DIC(8925.6,"","X","COMPLETED","B")
+42 SET TIUX(1501)=$$NOW^XLFDT()
+43 SET TIUX(1502)=DUZ
+44 SET TIUX(1503)=$$GET1^DIQ(200,+DUZ,20.2)
+45 SET TIUX(1504)=$$GET1^DIQ(200,+DUZ,20.3)
+46 SET TIUX(1505)="E"
+47 DO UPDATE^TIUSRVP(.ERXRET,PSOTIUDA,.TIUX)
+48 WRITE IOINHI_"OK"_IOINORM
End DoDot:1
IF PSOQUIT
QUIT
+49 ;
+50 IF '$GET(PSOQUIT)
WRITE !!,"Dispense Drug Replacement completed!",!
+51 ;
+52 KILL ^TMP("TIUP",$JOB),^TMP("PSOERPN",$JOB)
DO PAUSE^PSOERXUT
+53 DO REF^PSOERBT
+54 ;
+55 QUIT