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)
|
---|