| 1 | PSOCMOPC ;BIR/HTW-Utility for CMOP/OP Edit ;8/30/96 | 
|---|
| 2 | ;;7.0;OUTPATIENT PHARMACY;**2,30,43**;DEC 1997 | 
|---|
| 3 | ;External reference to ^PS(55 supported by DBIA 2228 | 
|---|
| 4 | ;External reference to ^PSDRUG supported by DBIA 221 | 
|---|
| 5 | EN(XDA) N A,A1,CMOP,PSOA,PSOB,PSOCK,T,T1,DA | 
|---|
| 6 | ; | 
|---|
| 7 | S DA=XDA | 
|---|
| 8 | D ^PSOCMOPA | 
|---|
| 9 | ;                Q:If not in suspense file, set status to 0 - active | 
|---|
| 10 | I '$G(CMOP("52.5")) D  Q | 
|---|
| 11 | . S:+$P($G(PSOLST(ORN)),"^",2) ^PSRX($P(PSOLST(ORN),"^",2),"STA")=0 | 
|---|
| 12 | ; | 
|---|
| 13 | D CHECK | 
|---|
| 14 | I $G(CMOP("S"))']"",($G(CMOP)) D ACT D   G QUIT | 
|---|
| 15 | .K ^PS(52.5,"AC",$P(^PSRX(XDA,0),"^",2),$P(^PS(52.5,CMOP("52.5"),0),"^",2),CMOP("52.5")) | 
|---|
| 16 | .S DIE="^PS(52.5,",DR="3////Q",DA=CMOP("52.5") D ^DIE K DIE | 
|---|
| 17 | .S T=$P(^PSRX(XDA,3),"^") | 
|---|
| 18 | .S T1=$E(T,4,5)_"-"_$E(T,6,7)_"-"_$E(T,2,3) | 
|---|
| 19 | .S $P(^PSRX(XDA,"A",0),"^",3)=A,$P(^PSRX(XDA,"A",0),"^",4)=A1 | 
|---|
| 20 | .D NOW^%DTC | 
|---|
| 21 | .S ^PSRX(XDA,"A",PSOB,0)=%_"^S^"_DUZ_"^"_$S($G(CMOP("L"))<6:$G(CMOP("L")),1:$G(CMOP("L"))+1)_"^ Placed on Suspense for CMOP until "_T1 | 
|---|
| 22 | .K T,T1,% | 
|---|
| 23 | UNSUS ; If Rx is suspended and is not CMOP, ensure is not suspended as CMOP | 
|---|
| 24 | I $G(CMOP("S"))["Q",('$G(CMOP)) D  G QUIT | 
|---|
| 25 | .S DIE="^PS(52.5,",DR="3////@",DA=CMOP("52.5") D ^DIE K DIE,DR | 
|---|
| 26 | .S ^PS(52.5,"AC",$P(^PSRX(XDA,0),"^",2),$P(^PS(52.5,DA,0),"^",2),DA)="" | 
|---|
| 27 | .D ACT | 
|---|
| 28 | .S T=$P(^PSRX(XDA,3),"^") | 
|---|
| 29 | .S T1=$E(T,4,5)_"-"_$E(T,6,7)_"-"_$E(T,2,3) | 
|---|
| 30 | .S $P(^PSRX(XDA,"A",0),"^",3)=A,$P(^PSRX(XDA,"A",0),"^",4)=A1 | 
|---|
| 31 | .D NOW^%DTC | 
|---|
| 32 | .S ^PSRX(XDA,"A",PSOB,0)=%_"^S^"_DUZ_"^"_$S($G(CMOP("L"))<6:$G(CMOP("L")),1:$G(CMOP("L"))+1)_"^ Removed from CMOP Suspense, returned to OP Suspense. "_T1 | 
|---|
| 33 | .S DA=XDA | 
|---|
| 34 | QUIT K A,A1,CMOP,PSOA,PSOB,PSOCK,T,T1,XDA Q | 
|---|
| 35 | ACT ;  If no act node, make one .... determine last entry | 
|---|
| 36 | S:'$D(^PSRX(XDA,"A",0)) ^(0)="^52.3XDA^^" | 
|---|
| 37 | S PSOA="" F  S PSOA=$O(^PSRX(XDA,"A",PSOA)) Q:PSOA']""  S PSOB=PSOA+1 | 
|---|
| 38 | S A=$P(^PSRX(XDA,"A",0),"^",3),A1=$P(^PSRX(XDA,"A",0),"^",4),A=A+1,A1=A1+1 | 
|---|
| 39 | K PSOA | 
|---|
| 40 | Q | 
|---|
| 41 | CHECK S CMOP=0 Q:'$G(PSXSYS) | 
|---|
| 42 | ;           Q:Partial or Reprint | 
|---|
| 43 | S PSOCMSUS=$O(^PS(52.5,"B",XDA,0)) | 
|---|
| 44 | I $G(PSOCMSUS) I $P($G(^PS(52.5,PSOCMSUS,0)),"^",5)!($P($G(^(0)),"^",12)) K PSOCMSUS Q | 
|---|
| 45 | K PSOCMSUS | 
|---|
| 46 | ;           Q:Do not Mail | 
|---|
| 47 | S PSOCMPAT=+$P($G(^PSRX(XDA,0)),"^",2),PSOCMDT=$P($G(^PS(55,PSOCMPAT,0)),"^",5),PSOCMMAI=$P($G(^PS(55,PSOCMPAT,0)),"^",3) | 
|---|
| 48 | I $G(PSOCMMAI)>1,$S($G(PSOCMDT)=""!($G(PSOCMDT)>DT):1,1:0) D KMAIL Q | 
|---|
| 49 | D KMAIL | 
|---|
| 50 | ;          Get drug IEN and check if CMOP | 
|---|
| 51 | S PSOCK=$P($G(^PSRX(XDA,0)),"^",6) Q:'$D(^PSDRUG("AQ",PSOCK)) | 
|---|
| 52 | I $P($G(^PSDRUG(+$G(PSOCK),2)),"^",3)'["O" Q | 
|---|
| 53 | Q:$G(PSOFROM)="PARTIAL" | 
|---|
| 54 | ;           Q:If tradename | 
|---|
| 55 | Q:$G(^PSRX(XDA,"TN"))]"" | 
|---|
| 56 | ;           Q: If Cancelled, Expired, Deleted | 
|---|
| 57 | Q:$P($G(^PSRX(XDA,"STA")),"^")>10 | 
|---|
| 58 | ;           Q: If pending | 
|---|
| 59 | Q:$P($G(^PSRX(XDA,"STA")),"^")=4 | 
|---|
| 60 | ;           Q:If not "Mail" | 
|---|
| 61 | S PSOMW=$S($G(CMOP("L"))>0:$P(^PSRX(XDA,1,CMOP("L"),0),"^",2),1:$P(^PSRX(XDA,0),"^",11)) I $G(PSOMW)="W"  K CMOP("L") Q | 
|---|
| 62 | ;           Q:If fill was CMOPed and other than '3' 'not dispensed' | 
|---|
| 63 | Q:'$$FILTRAN^PSOCMOP(XDA,CMOP("L")) | 
|---|
| 64 | S CMOP=1 | 
|---|
| 65 | Q | 
|---|
| 66 | KMAIL K PSOCMPAT,PSOCMDT,PSOCMMAI Q | 
|---|