| [613] | 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
 | 
|---|