- Timestamp:
- Dec 4, 2009, 12:11:15 AM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
WorldVistAEHR/trunk/r/OUTPATIENT_PHARMACY-PSO-APSP-HUIP/PSONEW2.m
r613 r623 1 PSONEW2 ;BIR/DSD - displays new rx information for edit ;7/17/06 6:59pm 2 ;;7.0;OUTPATIENT PHARMACY;**32,37,46,71,94,124,139,157,143,226,237,239,225**;DEC 1997;Build 29 3 ;External reference to ^PSDRUG supported by DBIA 221 4 ;External reference to ^DPT supported by DBIA 10035 5 ;External reference to PSOUL^PSSLOCK supported by DBIA 2789 6 ;External reference VADPT supported by DBIA 10061 7 ; This routine displays the entered new rx information and 8 ; asks if correct, if not allows editing of the data. 9 ;------------------------------------------------------------ 10 ;PSO*237 issue expired error message 11 ; 12 START ; 13 S (PSONEW("DFLG"),PSONEW2("QFLG"))=0 14 D STOP 15 D DISPLAY ; Displays information 16 ;Copay exemption checks 17 D SCP^PSORN52D 18 S PSONEWFF=1,PSOFLAG=1 K PSOANSQ,PSOANSQD S PSOCPZ("DFLG")=0,PSONEW("NEWCOPAY")=0 19 ;can't check PSOSCA for <50 here because of PSOBILL check in PSOCPB 20 I (PSOSCP<50&($P($G(^PS(53,+$G(PSONEW("PATIENT STATUS")),0)),"^",7)'=1)),$G(DUZ("AG"))="V" D COPAY^PSOCPB W ! 21 I PSOSCA&(PSOSCP>49)!((PSOSCA!(PSOBILL=2))&($P($G(^PS(53,+$G(PSONEW("PATIENT STATUS")),0)),"^",7)=1))!(PSOSCP>49&(PSOBILL=2)) D SC^PSOMLLD2 22 I $G(PSOCPZ("DFLG")) K PSONEWFF,PSOANSQD,PSOCPZ("DFLG"),PSONEW("NEWCOPAY") S DIRUT="",PSONEW("DFLG")=1 D ASKX G END 23 ;IF MILL BILL, AND COPAY (*******TEST THE COPAY CHECK) 24 I $$DT^PSOMLLDT D I $G(PSOCPZ("DFLG")) K PSONEWFF,PSOANSQD,PSOANSQ,PSOCPZ("DFLG"),PSONEW("NEWCOPAY") S DIRUT="",PSONEW("DFLG")=1 D ASKX G END 25 .;New prompts Quit after first '^' 26 .I $D(PSOIBQS(PSODFN,"CV")) D CV^PSOMLLDT I $G(PSOCPZ("DFLG"))!($G(PSOANSQ("CV"))) K PSONEW("NEWCOPAY") 27 .I $D(PSOIBQS(PSODFN,"VEH")) D VEH^PSOMLLDT I $G(PSOCPZ("DFLG"))!($G(PSOANSQ("VEH"))) K PSONEW("NEWCOPAY") 28 .I $D(PSOIBQS(PSODFN,"RAD")) D RAD^PSOMLLDT I $G(PSOCPZ("DFLG"))!($G(PSOANSQ("RAD"))) K PSONEW("NEWCOPAY") 29 .I $D(PSOIBQS(PSODFN,"PGW")) D PGW^PSOMLLDT I $G(PSOCPZ("DFLG"))!($G(PSOANSQ("PGW"))) K PSONEW("NEWCOPAY") 30 .I $D(PSOIBQS(PSODFN,"SHAD")) D SHAD^PSOMLLD2 I $G(PSOCPZ("DFLG"))!($G(PSOANSQ("SHAD"))) K PSONEW("NEWCOPAY") 31 .I $D(PSOIBQS(PSODFN,"MST")) D MST^PSOMLLDT I $G(PSOCPZ("DFLG"))!($G(PSOANSQ("MST"))) K PSONEW("NEWCOPAY") 32 .I $D(PSOIBQS(PSODFN,"HNC")) D HNC^PSOMLLDT I $G(PSOCPZ("DFLG"))!($G(PSOANSQ("HNC"))) K PSONEW("NEWCOPAY") 33 K PSOCPZ("DFLG"),PSONEWFF 34 D ASK K:$G(PSONEW("DFLG")) PSOANSQ G:PSONEW2("QFLG")!PSONEW("DFLG") END 35 S PSORX("EDIT")=1 D EN^PSOORNE1(.PSONEW),FULL^VALM1 G:$G(PSORX("FN")) END I '$G(PSORX("FN")) S PSONEW("DFLG")=1 K PSOANSQ G END ;D EDIT 36 G:'$G(PSONEW("DFLG")) START 37 S PSONEW("QFLG")=1,PSONEW("DFLG")=0 38 END D EOJ 39 Q 40 ;------------------------------------------------------------ 41 STOP K PSEXDT,X,%DT S PSON52("QFLG")=0 42 S X1=PSOID,X2=PSONEW("DAYS SUPPLY")*(PSONEW("# OF REFILLS")+1)\1 43 S X2=$S(PSONEW("DAYS SUPPLY")=X2:X2,+$G(PSONEW("CS")):184,1:366) 44 I X2<30 D 45 . N % S %=$P($G(PSORX("PATIENT STATUS")),"^"),X2=30 46 . S:%?.N %=$P($G(^PS(53,+%,0)),"^") I %["AUTH ABS" S X2=5 47 D C^%DTC I PSONEW("FILL DATE")>$P(X,".") S PSEXDT=1_"^"_$P(X,".") 48 K X1,X2,X,%DT 49 Q 50 DISPLAY ; 51 W !!,"Rx # ",PSONEW("RX #") 52 W ?23,$E(PSONEW("FILL DATE"),4,5),"/",$E(PSONEW("FILL DATE"),6,7),"/",$E(PSONEW("FILL DATE"),2,3),!,$G(PSORX("NAME")),?30,"#",PSONEW("QTY") 53 I $G(SIGOK),$O(SIG(0)) D K D G TRN 54 .F D=0:0 S D=$O(SIG(D)) W !,SIG(D) Q:'$O(SIG(D)) 55 E S X=PSONEW("SIG") D SIGONE^PSOHELP W !,$G(INS1) 56 TRN ;I $G(PSOPRC) F I=0:0 S I=$O(PRC(I)) Q:'I W !,PRC(I) 57 W !!,$S($G(PSODRUG("TRADE NAME"))]"":PSODRUG("TRADE NAME"),1:PSODRUG("NAME")) 58 W !,PSONEW("PROVIDER NAME"),?25,PSORX("CLERK CODE"),!,"# of Refills: ",PSONEW("# OF REFILLS"),! 59 Q 60 ; 61 ASK ; 62 K DIR,X,Y S DIR("A")="Is this correct" 63 S DIR(0)="Y",DIR("B")="YES" D ^DIR K DIR I $D(DIRUT) S PSONEW("DFLG")=1 G ASKX 64 ASK1 I Y D S PSONEW2("QFLG")=1 65 .S:$G(PSONEW("MAIL/WINDOW"))["W" BINGCRT=Y,BINGRTE="W" 66 .D:+$G(PSEXDT) 67 ..S Y=PSONEW("FILL DATE") X ^DD("DD") W !!,$C(7),Y_" fill date is greater than possible expiration date of " S Y=$P(PSEXDT,"^",2) X ^DD("DD") W Y_"." 68 .D DCORD K RORD,^TMP("PSORXDC",$J) 69 ASKX I $D(DIRUT) D 70 .I +$G(PSEXDT) K DIRUT S (PSONEW2("QFLG"),PSONEW2("DFLG"),PSONEW("DFLG"),Y)=1 71 K X,Y,DIRUT,DTOUT,DUOUT 72 D:+$G(PSEXDT) PAUSE^VALM1 73 Q 74 DCORD ;dc rxs and pending orders after new order is entered 75 F RORD=0:0 S RORD=$O(^TMP("PSORXDC",$J,RORD)) Q:'RORD D @$S($P(^TMP("PSORXDC",$J,RORD,0),"^")="P":"PEN",1:"RX52") 76 K RORD 77 Q 78 PEN ;pending ^tmp("psorxdc",$j,rord,0)="p^"_rord_"^"_msg 79 S $P(^PS(52.41,RORD,0),"^",3)="DC",^PS(52.41,RORD,4)=$P(^TMP("PSORXDC",$J,RORD,0),"^",3) 80 K ^PS(52.41,"AOR",PSODFN,+$P($G(^PS(52.41,RORD,"INI")),"^"),RORD) 81 D EN^PSOHLSN($P(^PS(52.41,RORD,0),"^"),"OC",$P(^TMP("PSORXDC",$J,RORD,0),"^",3),"D") W $C(7),!," -Pending Order was discontinued..." 82 D PSOUL^PSSLOCK(RORD_"S") K ^TMP("PSORXDC",$J,RORD,0) 83 Q 84 RX52 ;rxs in file 52 ^tmp("psorxdc",$j,rord,0)=52^rord^msg^rea^act^sta^dnm 85 S PSCAN($P(^PSRX(RORD,0),"^"))=RORD_"^"_$P(^TMP("PSORXDC",$J,RORD,0),"^",4) 86 S MSG=$P(^TMP("PSORXDC",$J,RORD,0),"^",3),REA=$P(^(0),"^",4),ACT=$P(^(0),"^",5) 87 N PSONOOR S PSONOOR="D",DUP=1,DA=RORD D CAN^PSOCAN K PSONOOR 88 W !," -Rx "_$P(^PSRX(RORD,0),"^")_" has been discontinued...",! 89 K PSOSD($P(^TMP("PSORXDC",$J,RORD,0),"^",6),$P(^TMP("PSORXDC",$J,RORD,0),"^",7)) 90 D PSOUL^PSSLOCK(RORD) K ^TMP("PSORXDC",$J,RORD,0) 91 Q 92 ; 93 EDIT ; 94 S PSORX("EDIT")=1 95 D ^PSONEW3 96 S PSONEW("DFLG")=$S($G(PSORX("DFLG")):1,1:0) 97 Q 98 ; 99 EOJ ; 100 K PSONEW2,PSORX("EDIT"),PSORX("DFLG"),PSOEDIT,PSOSCA 101 Q 102 ; 103 EN1(PSONEW2) ; Entry point to just display and ask if okay 104 S PSONEW("DFLG")=0 105 I $G(^PSRX(PSONEW2("IRXN"),0))']"" S PSONEW("DFLG")=1 G EN1X 106 S PSOX=^PSRX(PSONEW2("IRXN"),0),PSONEW("TRADE NAME")=$G(^("TN")),PSONEW("FILL DATE")=$P($G(^(2)),"^",2) 107 S PSONEW("RX #")=$P(PSOX,"^"),PSORX("NAME")=$P(^DPT($P(PSOX,"^",2),0),"^") 108 S PSONEW("QTY")=$P(PSOX,"^",7),PSODRUG("NAME")=$P(^PSDRUG($P(PSOX,"^",6),0),"^"),PSONEW("# OF REFILLS")=$P(PSOX,"^",9) 109 S PSORX("CLERK CODE")=$P(^VA(200,$P(PSOX,"^",16),0),"^") 110 S:$G(PSONEW("PROVIDER NAME"))="" PSONEW("PROVIDER NAME")=$P(^VA(200,$P(PSOX,"^",4),0),"^") 111 S PSONEW("SIG")=$P($G(^PSRX(PSONEW2("IRXN"),"SIG")),"^") 112 D DISPLAY 113 D ASK 114 I PSONEW("DFLG")=1 S PSONEW2("DFLG")=1 115 EN1X ; 116 Q 117 ; 118 EXPR ;Display Expired error message ;PSO*237 119 S PSONEW("DFLG")=1 120 W $C(7) 121 S VALMSG="Order is older than 365 days and can't be finished" 122 S XQORM("B")="DC" 123 Q 1 PSONEW2 ;BIR/DSD - displays new rx information for edit ;7/17/06 6:59pm 2 ;;7.0;OUTPATIENT PHARMACY;**32,37,46,71,94,124,139,157,143,226,237,239**;DEC 1997 3 ;External reference to ^PSDRUG supported by DBIA 221 4 ;External reference to ^DPT supported by DBIA 10035 5 ;External reference to PSOUL^PSSLOCK supported by DBIA 2789 6 ;External reference VADPT supported by DBIA 10061 7 ; This routine displays the entered new rx information and 8 ; asks if correct, if not allows editing of the data. 9 ;------------------------------------------------------------ 10 ;PSO*237 issue expired error message 11 ; 12 START ; 13 S (PSONEW("DFLG"),PSONEW2("QFLG"))=0 14 D STOP 15 D DISPLAY ; Displays information 16 ;Copay exemption checks 17 D SCP^PSORN52D 18 S PSONEWFF=1,PSOFLAG=1 K PSOANSQ,PSOANSQD S PSOCPZ("DFLG")=0,PSONEW("NEWCOPAY")=0 19 ;can't check PSOSCA for <50 here because of PSOBILL check in PSOCPB 20 I (PSOSCP<50&($P($G(^PS(53,+$G(PSONEW("PATIENT STATUS")),0)),"^",7)'=1)),$G(DUZ("AG"))="V" D COPAY^PSOCPB W ! 21 I PSOSCA&(PSOSCP>49)!((PSOSCA!(PSOBILL=2))&($P($G(^PS(53,+$G(PSONEW("PATIENT STATUS")),0)),"^",7)=1))!(PSOSCP>49&(PSOBILL=2)) D SC^PSOMLLD2 22 I $G(PSOCPZ("DFLG")) K PSONEWFF,PSOANSQD,PSOCPZ("DFLG"),PSONEW("NEWCOPAY") S DIRUT="",PSONEW("DFLG")=1 D ASKX G END 23 ;IF MILL BILL, AND COPAY (*******TEST THE COPAY CHECK) 24 I $$DT^PSOMLLDT D I $G(PSOCPZ("DFLG")) K PSONEWFF,PSOANSQD,PSOANSQ,PSOCPZ("DFLG"),PSONEW("NEWCOPAY") S DIRUT="",PSONEW("DFLG")=1 D ASKX G END 25 .;New prompts Quit after first '^' 26 .I $D(PSOIBQS(PSODFN,"CV")) D CV^PSOMLLDT I $G(PSOCPZ("DFLG"))!($G(PSOANSQ("CV"))) K PSONEW("NEWCOPAY") 27 .I $D(PSOIBQS(PSODFN,"VEH")) D VEH^PSOMLLDT I $G(PSOCPZ("DFLG"))!($G(PSOANSQ("VEH"))) K PSONEW("NEWCOPAY") 28 .I $D(PSOIBQS(PSODFN,"RAD")) D RAD^PSOMLLDT I $G(PSOCPZ("DFLG"))!($G(PSOANSQ("RAD"))) K PSONEW("NEWCOPAY") 29 .I $D(PSOIBQS(PSODFN,"PGW")) D PGW^PSOMLLDT I $G(PSOCPZ("DFLG"))!($G(PSOANSQ("PGW"))) K PSONEW("NEWCOPAY") 30 .I $D(PSOIBQS(PSODFN,"MST")) D MST^PSOMLLDT I $G(PSOCPZ("DFLG"))!($G(PSOANSQ("MST"))) K PSONEW("NEWCOPAY") 31 .I $D(PSOIBQS(PSODFN,"HNC")) D HNC^PSOMLLDT I $G(PSOCPZ("DFLG"))!($G(PSOANSQ("HNC"))) K PSONEW("NEWCOPAY") 32 K PSOCPZ("DFLG"),PSONEWFF 33 D ASK K:$G(PSONEW("DFLG")) PSOANSQ G:PSONEW2("QFLG")!PSONEW("DFLG") END 34 S PSORX("EDIT")=1 D EN^PSOORNE1(.PSONEW),FULL^VALM1 G:$G(PSORX("FN")) END I '$G(PSORX("FN")) S PSONEW("DFLG")=1 K PSOANSQ G END ;D EDIT 35 G:'$G(PSONEW("DFLG")) START 36 S PSONEW("QFLG")=1,PSONEW("DFLG")=0 37 END D EOJ 38 Q 39 ;------------------------------------------------------------ 40 STOP K PSEXDT,X,%DT S PSON52("QFLG")=0 41 S X1=PSOID,X2=PSONEW("DAYS SUPPLY")*(PSONEW("# OF REFILLS")+1)\1 42 S X2=$S(PSONEW("DAYS SUPPLY")=X2:X2,+$G(PSONEW("CS")):184,1:366) 43 I X2<30 D 44 . N % S %=$P($G(PSORX("PATIENT STATUS")),"^"),X2=30 45 . S:%?.N %=$P($G(^PS(53,+%,0)),"^") I %["AUTH ABS" S X2=5 46 D C^%DTC I PSONEW("FILL DATE")>$P(X,".") S PSEXDT=1_"^"_$P(X,".") 47 K X1,X2,X,%DT 48 Q 49 DISPLAY ; 50 W !!,"Rx # ",PSONEW("RX #") 51 W ?23,$E(PSONEW("FILL DATE"),4,5),"/",$E(PSONEW("FILL DATE"),6,7),"/",$E(PSONEW("FILL DATE"),2,3),!,$G(PSORX("NAME")),?30,"#",PSONEW("QTY") 52 I $G(SIGOK),$O(SIG(0)) D K D G TRN 53 .F D=0:0 S D=$O(SIG(D)) W !,SIG(D) Q:'$O(SIG(D)) 54 E S X=PSONEW("SIG") D SIGONE^PSOHELP W !,$G(INS1) 55 TRN ;I $G(PSOPRC) F I=0:0 S I=$O(PRC(I)) Q:'I W !,PRC(I) 56 W !!,$S($G(PSODRUG("TRADE NAME"))]"":PSODRUG("TRADE NAME"),1:PSODRUG("NAME")) 57 W !,PSONEW("PROVIDER NAME"),?25,PSORX("CLERK CODE"),!,"# of Refills: ",PSONEW("# OF REFILLS"),! 58 Q 59 ; 60 ASK ; 61 K DIR,X,Y S DIR("A")="Is this correct" 62 S DIR(0)="Y",DIR("B")="YES" D ^DIR K DIR I $D(DIRUT) S PSONEW("DFLG")=1 G ASKX 63 ASK1 I Y D S PSONEW2("QFLG")=1 64 .S:$G(PSONEW("MAIL/WINDOW"))["W" BINGCRT=Y,BINGRTE="W" 65 .D:+$G(PSEXDT) 66 ..S Y=PSONEW("FILL DATE") X ^DD("DD") W !!,$C(7),Y_" fill date is greater than possible expiration date of " S Y=$P(PSEXDT,"^",2) X ^DD("DD") W Y_"." 67 .D DCORD K RORD,^TMP("PSORXDC",$J) 68 ASKX I $D(DIRUT) D 69 .I +$G(PSEXDT) K DIRUT S (PSONEW2("QFLG"),PSONEW2("DFLG"),PSONEW("DFLG"),Y)=1 70 K X,Y,DIRUT,DTOUT,DUOUT 71 D:+$G(PSEXDT) PAUSE^VALM1 72 Q 73 DCORD ;dc rxs and pending orders after new order is entered 74 F RORD=0:0 S RORD=$O(^TMP("PSORXDC",$J,RORD)) Q:'RORD D @$S($P(^TMP("PSORXDC",$J,RORD,0),"^")="P":"PEN",1:"RX52") 75 K RORD 76 Q 77 PEN ;pending ^tmp("psorxdc",$j,rord,0)="p^"_rord_"^"_msg 78 S $P(^PS(52.41,RORD,0),"^",3)="DC",^PS(52.41,RORD,4)=$P(^TMP("PSORXDC",$J,RORD,0),"^",3) 79 K ^PS(52.41,"AOR",PSODFN,+$P($G(^PS(52.41,RORD,"INI")),"^"),RORD) 80 D EN^PSOHLSN($P(^PS(52.41,RORD,0),"^"),"OC",$P(^TMP("PSORXDC",$J,RORD,0),"^",3),"D") W $C(7),!," -Pending Order was discontinued..." 81 D PSOUL^PSSLOCK(RORD_"S") K ^TMP("PSORXDC",$J,RORD,0) 82 Q 83 RX52 ;rxs in file 52 ^tmp("psorxdc",$j,rord,0)=52^rord^msg^rea^act^sta^dnm 84 S PSCAN($P(^PSRX(RORD,0),"^"))=RORD_"^"_$P(^TMP("PSORXDC",$J,RORD,0),"^",4) 85 S MSG=$P(^TMP("PSORXDC",$J,RORD,0),"^",3),REA=$P(^(0),"^",4),ACT=$P(^(0),"^",5) 86 N PSONOOR S PSONOOR="D",DUP=1,DA=RORD D CAN^PSOCAN K PSONOOR 87 W !," -Rx "_$P(^PSRX(RORD,0),"^")_" has been discontinued...",! 88 K PSOSD($P(^TMP("PSORXDC",$J,RORD,0),"^",6),$P(^TMP("PSORXDC",$J,RORD,0),"^",7)) 89 D PSOUL^PSSLOCK(RORD) K ^TMP("PSORXDC",$J,RORD,0) 90 Q 91 ; 92 EDIT ; 93 S PSORX("EDIT")=1 94 D ^PSONEW3 95 S PSONEW("DFLG")=$S($G(PSORX("DFLG")):1,1:0) 96 Q 97 ; 98 EOJ ; 99 K PSONEW2,PSORX("EDIT"),PSORX("DFLG"),PSOEDIT,PSOSCA 100 Q 101 ; 102 EN1(PSONEW2) ; Entry point to just display and ask if okay 103 S PSONEW("DFLG")=0 104 I $G(^PSRX(PSONEW2("IRXN"),0))']"" S PSONEW("DFLG")=1 G EN1X 105 S PSOX=^PSRX(PSONEW2("IRXN"),0),PSONEW("TRADE NAME")=$G(^("TN")),PSONEW("FILL DATE")=$P($G(^(2)),"^",2) 106 S PSONEW("RX #")=$P(PSOX,"^"),PSORX("NAME")=$P(^DPT($P(PSOX,"^",2),0),"^") 107 S PSONEW("QTY")=$P(PSOX,"^",7),PSODRUG("NAME")=$P(^PSDRUG($P(PSOX,"^",6),0),"^"),PSONEW("# OF REFILLS")=$P(PSOX,"^",9) 108 S PSORX("CLERK CODE")=$P(^VA(200,$P(PSOX,"^",16),0),"^") 109 S:$G(PSONEW("PROVIDER NAME"))="" PSONEW("PROVIDER NAME")=$P(^VA(200,$P(PSOX,"^",4),0),"^") 110 S PSONEW("SIG")=$P($G(^PSRX(PSONEW2("IRXN"),"SIG")),"^") 111 D DISPLAY 112 D ASK 113 I PSONEW("DFLG")=1 S PSONEW2("DFLG")=1 114 EN1X ; 115 Q 116 ; 117 EXPR ;Display Expired error message ;PSO*237 118 S PSONEW("DFLG")=1 119 W $C(7) 120 S VALMSG="Order is older than 365 days and can't be finished" 121 S XQORM("B")="DC" 122 Q
Note:
See TracChangeset
for help on using the changeset viewer.