| 1 | PRCPHLUT ;WISC/CC-Process activity information from file 447.1 ;4/00 | 
|---|
| 2 | V ;;5.1;IFCAP;**1,24**;Oct 20, 2000 | 
|---|
| 3 | ;Per VHA Directive 10-93-142, this routine should not be modified. | 
|---|
| 4 | ; | 
|---|
| 5 | PROCESS(PRCPDA,PRCPDONE) ; | 
|---|
| 6 | N %,ERR,ITEM,ITEMDATA,PRCPAMT,PRCPDATA,PRCPHLUT,PRCPITDA | 
|---|
| 7 | N PRCPITEM,PRCPITNM,PRCPLEFT,PRCPREAS,PRCPREC,PRCPSEC,PRCPSSFL,PRCPTIME | 
|---|
| 8 | N PRCPUSER,TRANORDR,TYPE | 
|---|
| 9 | ; | 
|---|
| 10 | S PRCPDONE=0 | 
|---|
| 11 | S PRCPDATA=^PRCP(447.1,PRCPDA,0) | 
|---|
| 12 | S PRCPHL7=$P(PRCPDATA,"^",6)_".447.1" | 
|---|
| 13 | S PRCPSEC=$P(PRCPDATA,"^",3) | 
|---|
| 14 | S PRCPTIME=$P(PRCPDATA,"^",8) | 
|---|
| 15 | S PRCPREC=$P(PRCPDATA,"^",9) | 
|---|
| 16 | S PRCPUSER=$P(PRCPDATA,"^",10) | 
|---|
| 17 | S PRCPREAS=$P(PRCPDATA,"^",11) | 
|---|
| 18 | S PRCPACTV=$P(PRCPREAS,"~",1) | 
|---|
| 19 | ; | 
|---|
| 20 | S PRCPITDA=0 | 
|---|
| 21 | S PRCPITDA=$O(^PRCP(447.1,PRCPDA,1,PRCPITDA)) I '+PRCPITDA S ERR="6F" G ERR ; no item info | 
|---|
| 22 | S PRCPDATA=^PRCP(447.1,PRCPDA,1,PRCPITDA,0) | 
|---|
| 23 | S PRCPAMT=$P(PRCPDATA,"^",3) ; REFILL QTY - patient issue units | 
|---|
| 24 | I PRCPACTV="USGE"!(PRCPACTV="DISP")!(PRCPACTV="ADJD") S PRCPAMT=-PRCPAMT | 
|---|
| 25 | S PRCPITEM=$P(PRCPDATA,"^",1) | 
|---|
| 26 | S PRCPITNM=$P(PRCPDATA,"^",4) | 
|---|
| 27 | S PRCPLEFT=$P(PRCPDATA,"^",2) ; patient issue units | 
|---|
| 28 | ; | 
|---|
| 29 | I '$D(^PRCP(445,PRCPSEC)) S ERR="3A" G ERR ; secondary not in GIP | 
|---|
| 30 | I $P(^PRCP(445,PRCPSEC,0),"^",3)'="S" S ERR="3B" G ERR ; not a secondary | 
|---|
| 31 | I '$D(^PRCP(445,PRCPSEC,1,PRCPITEM)) S ERR="6C" G ERR | 
|---|
| 32 | I $P(^PRCP(445,PRCPSEC,1,PRCPITEM,0),"^",9)'>0 S ERR="6D" G ERR ; is item a supply station item? | 
|---|
| 33 | I $P($G(^PRCP(445,PRCPSEC,5)),"^",1)']"" S ERR="3F" G ERR ; not a supply station secondary | 
|---|
| 34 | ; compare name in 445 to name sent, CONTINUE | 
|---|
| 35 | S PRCPSSFL=$P(^PRCP(445.5,$P(^PRCP(445,PRCPSEC,5),"^",1),0),"^",2) | 
|---|
| 36 | I PRCPSSFL="O",$P(^PRC(441,PRCPITEM,0),"^",2)'=PRCPITNM D NAME^PRCPHL70(PRCPSEC,PRCPITEM,PRCPITNM,PRCPSSFL,PRCPHL7) | 
|---|
| 37 | I PRCPSSFL="S",$G(^PRCP(445,PRCPSEC,1,PRCPITEM,6))'=PRCPITNM D NAME^PRCPHL70(PRCPSEC,PRCPITEM,PRCPITNM,PRCPSSFL,PRCPHL7) | 
|---|
| 38 | ; | 
|---|
| 39 | UPDATE S ITEMDATA=$G(^PRCP(445,PRCPSEC,1,PRCPITEM,0)) | 
|---|
| 40 | I ITEMDATA="" S ERR="6C" G ERR ; send message | 
|---|
| 41 | S TYPE="U" | 
|---|
| 42 | I $E($P(PRCPREAS,"~",1),1,3)="ADJ"!($P(PRCPREAS,"~")="DISP") S TYPE="A" | 
|---|
| 43 | S PRCPHLUT("INVVAL")=$J(PRCPAMT*$P(ITEMDATA,"^",22),0,2) | 
|---|
| 44 | S PRCPHLUT("DATE")=PRCPTIME | 
|---|
| 45 | S PRCPHLUT("ITEM")=ITEMDATA | 
|---|
| 46 | S PRCPHLUT("REASON")=$P(PRCPREAS,"~",1)_":"_$P(PRCPREAS,"~",2) | 
|---|
| 47 | S PRCPHLUT("RECIPIENT")=$TR(PRCPREC,"abcdefghijklmnopqrstuvwxyz","ABCDEFGHIJKLMNOPQRSTUVWXYZ") | 
|---|
| 48 | S PRCPHLUT("USER")=PRCPUSER | 
|---|
| 49 | S PRCPHLUT("SELVAL")=PRCPHLUT("INVVAL") | 
|---|
| 50 | S PRCPHLUT("QTY")=PRCPAMT | 
|---|
| 51 | ; | 
|---|
| 52 | ; save values into GIP files | 
|---|
| 53 | D UPDATE^PRCPHL1(PRCPSEC,PRCPITEM,PRCPLEFT,.PRCPHLUT,TYPE) | 
|---|
| 54 | ; | 
|---|
| 55 | ; check expected qty remaining | 
|---|
| 56 | S ITEMDATA=$G(^PRCP(445,PRCPSEC,1,PRCPITEM,0)) | 
|---|
| 57 | I $P(ITEMDATA,"^",7)'=PRCPLEFT D | 
|---|
| 58 | . D QTYDISC^PRCPHL70(PRCPSEC,PRCPITEM,PRCPITNM,$P(ITEMDATA,"^",7),PRCPLEFT,PRCPHL7) | 
|---|
| 59 | ; | 
|---|
| 60 | ; | 
|---|
| 61 | Q S PRCPDONE=1 | 
|---|
| 62 | Q | 
|---|
| 63 | ; | 
|---|
| 64 | ERR ; | 
|---|
| 65 | N NUMBER | 
|---|
| 66 | S NUMBER=ERR | 
|---|
| 67 | S PRCPHLUT("SIPNAME")="" I $D(PRCPSEC) S PRCPHLUT("SIPNAME")=$$INVNAME^PRCPUX1(PRCPSEC) | 
|---|
| 68 | S PRCPHLUT("ITEM")="" I $D(PRCPITEM) S PRCPHLUT("ITEM")=PRCPITEM | 
|---|
| 69 | S PRCPHLUT("NAME")="" I $D(PRCPITNM) S PRCPHLUT("NAME")=PRCPITNM | 
|---|
| 70 | S PRCPHLUT("QTY")="" I $D(PRCPAMT) S PRCPHLUT("QTY")=PRCPAMT | 
|---|
| 71 | S PRCPHLUT("LEFT")="" I $D(PRCPLEFT) S PRCPHLUT("LEFT")=PRCPLEFT | 
|---|
| 72 | S PRCPHLUT("ACTIVITY")="" | 
|---|
| 73 | I $D(PRCPREAS) S PRCPHLUT("ACTIVITY")=$E(PRCPREAS,1,4) | 
|---|
| 74 | ; . I $E(PRCPREAS,1,4)="USGE" S PRCPHLUT("ACTIVITY")="USAGE" | 
|---|
| 75 | ; . I $E(PRCPREAS,1,4)="RTRN" S PRCPHLUT("ACTIVITY")="RETURNED ITEM" | 
|---|
| 76 | ; . I $E(PRCPREAS,1,4)="DISP" S PRCPHLUT("ACTIVITY")="DISPOSED ITEM" | 
|---|
| 77 | ; . I $E(PRCPREAS,1,4)="ADJI" S PRCPHLUT("ACTIVITY")="ADJUSTED INVENTORY UP" | 
|---|
| 78 | ; . I $E(PRCPREAS,1,4)="ADJD" S PRCPHLUT("ACTIVITY")="ADJUSTED INVENTORY DOWN" | 
|---|
| 79 | S PRCPHLUT("RECIPIENT")="an unspecified patient" I $D(PRCPREC) S PRCPHLUT("RECIPIENT")=PRCPREC | 
|---|
| 80 | S PRCPHLUT("USER")="" I $D(PRCPUSER) S PRCPHLUT("USER")=PRCPUSER | 
|---|
| 81 | D ERR^PRCPHLM0(ERR,"PRCP_BAD_ACTIVITY",PRCPSEC,.PRCPHLUT,PRCPHL7) | 
|---|
| 82 | G Q | 
|---|