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