| 1 | PRCPUPAT ;WISC/RFJ-move item from prim to seco to patient           ;09 Mar 94 | 
|---|
| 2 | ;;5.1;IFCAP;;Oct 20, 2000 | 
|---|
| 3 | ;Per VHA Directive 10-93-142, this routine should not be modified. | 
|---|
| 4 | Q | 
|---|
| 5 | ; | 
|---|
| 6 | ; | 
|---|
| 7 | PATIENT(PATDFN,SURGDA) ;  create patient distribution entry for patdfn | 
|---|
| 8 | ;  return entry created | 
|---|
| 9 | N %,%H,%I,DA,X,Y | 
|---|
| 10 | I 'PATDFN Q 0 | 
|---|
| 11 | D NOW^%DTC | 
|---|
| 12 | S DA=$$ADD(%,PATDFN) | 
|---|
| 13 | I SURGDA D SURGERY(DA,SURGDA) | 
|---|
| 14 | Q DA | 
|---|
| 15 | ; | 
|---|
| 16 | ; | 
|---|
| 17 | SURGERY(DA,SURGDA) ;  update distribution with surgery data | 
|---|
| 18 | I '$D(^PRCP(446.1,DA,0)) Q | 
|---|
| 19 | N %,D0,DI,DIC,DIE,DQ,DR,OPCODE,OPROOM,PRCPSDAT,SURGDATA,SURGEON,SURGSPEC,X,Y | 
|---|
| 20 | ;  get surgery data | 
|---|
| 21 | D SURGDATA^PRCPCRPL(SURGDA,".01;.011;.02;.04;.14;27") | 
|---|
| 22 | I '$D(PRCPSDAT(130,SURGDA,.01,"I")) Q | 
|---|
| 23 | ; | 
|---|
| 24 | S DR="1///S;2///`"_PRCPSDAT(130,SURGDA,.01,"I")_";" | 
|---|
| 25 | ;  operating room | 
|---|
| 26 | S OPROOM=+$G(PRCPSDAT(130,SURGDA,.02,"I")) I OPROOM S DR=DR_"130.02///`"_OPROOM_";" | 
|---|
| 27 | ;  surgical specialty | 
|---|
| 28 | S SURGSPEC=$G(PRCPSDAT(130,SURGDA,.04,"I")) I SURGSPEC S DR=DR_"130.03///`"_SURGSPEC_";" | 
|---|
| 29 | ;  inpatient/outpatient | 
|---|
| 30 | I $D(PRCPSDAT(130,SURGDA,.011,"E")) S DR=DR_"3///"_PRCPSDAT(130,SURGDA,.011,"E")_";" | 
|---|
| 31 | ;  surgeon | 
|---|
| 32 | S SURGEON=$G(PRCPSDAT(130,SURGDA,.14,"I")) I SURGEON S DR=DR_"130.04///`"_SURGEON_";" | 
|---|
| 33 | ;  principal procedure code | 
|---|
| 34 | S OPCODE=$G(PRCPSDAT(130,SURGDA,27,"I")) I OPCODE S DR=DR_"130.01///`"_OPCODE_";" | 
|---|
| 35 | ; | 
|---|
| 36 | ;  add fields to entry | 
|---|
| 37 | L +^PRCP(446.1,DA) | 
|---|
| 38 | S (DIC,DIE)="^PRCP(446.1," D ^DIE | 
|---|
| 39 | L -^PRCP(446.1,DA) | 
|---|
| 40 | Q | 
|---|
| 41 | ; | 
|---|
| 42 | ; | 
|---|
| 43 | ADD(DATETIME,PATDFN)      ;  add new entry to patient distribution file | 
|---|
| 44 | N %,DA,D0,DD,DI,DIC,DIE,DINUM,DLAYGO,DQ,DR,PRCPPRIV,X,Y | 
|---|
| 45 | L +^PRCP(446.1) | 
|---|
| 46 | S DIC="^PRCP(446.1,",DIC(0)="L",DIC("DR")="2///`"_PATDFN,DLAYGO=446.1,PRCPPRIV=1,(DINUM,X)=DATETIME | 
|---|
| 47 | D FILE^DICN | 
|---|
| 48 | L -^PRCP(446.1) | 
|---|
| 49 | Q +Y | 
|---|
| 50 | ; | 
|---|
| 51 | ; | 
|---|
| 52 | DISTITEM(DATETIME,ITEMDA,QTY,COST) ;  distribute itemda to patient | 
|---|
| 53 | ;  qty and cost distributed | 
|---|
| 54 | I '$D(^PRCP(446.1,DATETIME,0)) Q | 
|---|
| 55 | L +^PRCP(446.1,DATETIME) | 
|---|
| 56 | N DATA | 
|---|
| 57 | I '$D(^PRCP(446.1,DATETIME,445,ITEMDA,0)) D | 
|---|
| 58 | .   I '$D(^PRCP(446.1,DATETIME,445,0)) S ^(0)="^446.11P^^" | 
|---|
| 59 | .   N D0,DA,DD,DIC,DLAYGO,X,Y | 
|---|
| 60 | .   S DIC="^PRCP(446.1,"_DATETIME_",445,",DIC(0)="L",DLAYGO=446.1,DA(1)=DATETIME,(X,DINUM)=ITEMDA D FILE^DICN | 
|---|
| 61 | S DATA=$G(^PRCP(446.1,DATETIME,445,ITEMDA,0)) I DATA="" L -^PRCP(446.1,DATETIME) Q | 
|---|
| 62 | S $P(DATA,"^",2)=$P(DATA,"^",2)+QTY | 
|---|
| 63 | S $P(DATA,"^",3)=$P(DATA,"^",3)+COST | 
|---|
| 64 | S ^PRCP(446.1,DATETIME,445,ITEMDA,0)=DATA | 
|---|
| 65 | S $P(^PRCP(446.1,DATETIME,0),"^",5)=$P(^PRCP(446.1,DATETIME,0),"^",5)+COST | 
|---|
| 66 | L -^PRCP(446.1,DATETIME) | 
|---|
| 67 | Q | 
|---|
| 68 | ; | 
|---|
| 69 | ; | 
|---|
| 70 | SELECT() ;  return selected entry | 
|---|
| 71 | N %,DIC,PRCPPRIV,X,Y | 
|---|
| 72 | S DIC="^PRCP(446.1,",DIC(0)="QEAM",PRCPPRIV=1 | 
|---|
| 73 | D ^DIC | 
|---|
| 74 | Q $S(Y'>0:0,1:+Y) | 
|---|