[613] | 1 | IVMPTRN6 ;ALB/CPM - UPDATE BILLING TRANSMISSION FILE ; 13-JUN-94
|
---|
| 2 | ;;Version 2.0 ; INCOME VERIFICATION MATCH ;; 21-OCT-94
|
---|
| 3 | ;;Per VHA Directive 10-93-142, this routine should not be modified.
|
---|
| 4 | ;
|
---|
| 5 | UPDATE ; Roll through billing activity and update file #301.61 if necessary
|
---|
| 6 | ; Input: the array ^TMP("IVMPTRN5",$J), which is built in
|
---|
| 7 | ; the routine IVMPTRN5 and fully described in the
|
---|
| 8 | ; routine IBAMTV4.
|
---|
| 9 | ;
|
---|
| 10 | S IVMREF="" F S IVMREF=$O(^TMP("IVMPTRN5",$J,IVMREF)) Q:IVMREF="" S IVMSTR=$G(^(IVMREF)) I IVMSTR D
|
---|
| 11 | .;
|
---|
| 12 | .; - if an uncancelled bill is not recorded, add it
|
---|
| 13 | .S IVMTDA=$O(^IVM(301.61,"B",IVMREF,0)) I 'IVMTDA D Q
|
---|
| 14 | ..Q:$P(IVMSTR,"^",10)
|
---|
| 15 | ..S IVMTDA=$$ADD^IVMUFNC3(IVMREF) Q:'IVMTDA
|
---|
| 16 | ..D NOW^%DTC S $P(^IVM(301.61,IVMTDA,0),"^",2,11)=$P(IVMSTR,"^",1,10),$P(^(1),"^",3,4)=%_"^"_DUZ
|
---|
| 17 | ..S DA=IVMTDA,DIK="^IVM(301.61," D IX1^DIK
|
---|
| 18 | ..;
|
---|
| 19 | ..; - trigger transmission
|
---|
| 20 | ..I $P(IVMSTR,"^",3)>1,$P(IVMSTR,"^",11) Q ; bill is on hold
|
---|
| 21 | ..D TRANS(IVMTDA,1)
|
---|
| 22 | .;
|
---|
| 23 | .; - see if a transmission is not required
|
---|
| 24 | .S IVMQ=0,IVMTN=$G(^IVM(301.61,IVMTDA,0)) Q:'IVMTN
|
---|
| 25 | .I $P(IVMTN,"^",14) D Q:IVMQ
|
---|
| 26 | ..I $P(IVMTN,"^",10)!$P(IVMTN,"^",11) S IVMQ=1 Q
|
---|
| 27 | ..I $P(IVMTN,"^",4)>1,'$P(IVMSTR,"^",10),$P(IVMTN,"^",8)=$P(IVMSTR,"^",7) S IVMQ=1 Q
|
---|
| 28 | .;
|
---|
| 29 | .; - if a billed charge was cancelled, zero out amt and queue trans.
|
---|
| 30 | .I $P(IVMTN,"^",13),$P(IVMSTR,"^",10) D Q
|
---|
| 31 | ..S DA=IVMTDA,DIE="^IVM(301.61,",DR=".08////0;.11////1" D ^DIE K DA,DR,DIE
|
---|
| 32 | ..D TRANS(IVMTDA,1)
|
---|
| 33 | .;
|
---|
| 34 | .; - if a held charge
|
---|
| 35 | .I '$P(IVMTN,"^",13) D Q:IVMQ
|
---|
| 36 | ..;
|
---|
| 37 | ..; - is still on hold, quit
|
---|
| 38 | ..I $P(IVMSTR,"^",11) S IVMQ=1 Q
|
---|
| 39 | ..;
|
---|
| 40 | ..; - was cancelled, delete record
|
---|
| 41 | ..I $P(IVMSTR,"^",10) S DA=IVMTDA,DIK="^IVM(301.61," D ^DIK K DA,DIK S IVMQ=1
|
---|
| 42 | .;
|
---|
| 43 | .; - is no longer on hold, update record and queue transmission
|
---|
| 44 | .I '$P(IVMTN,"^",13),'$P(IVMSTR,"^",11) D
|
---|
| 45 | ..S DR=".05////"_$P(IVMSTR,"^",4)_";.06////"_$P(IVMSTR,"^",5)_";.07////"_$P(IVMSTR,"^",6)_";.08////"_$P(IVMSTR,"^",7)
|
---|
| 46 | ..S DA=IVMTDA,DIE="^IVM(301.61," D ^DIE K DA,DR,DIE
|
---|
| 47 | ..D TRANS(IVMTDA,1)
|
---|
| 48 | .;
|
---|
| 49 | .; - if amts billed/collected, or status changes, update and queue
|
---|
| 50 | .I +$P(IVMTN,"^",8)=+$P(IVMSTR,"^",7),+$P(IVMTN,"^",11)=+$P(IVMSTR,"^",10) D Q:IVMQ
|
---|
| 51 | ..I $P(IVMTN,"^",4)>1 S IVMQ=1 Q
|
---|
| 52 | ..I +$P(IVMTN,"^",9)=+$P(IVMSTR,"^",8),+$P(IVMTN,"^",10)=+$P(IVMSTR,"^",9) S IVMQ=1 Q
|
---|
| 53 | .;
|
---|
| 54 | .S DR=".05////"_$P(IVMSTR,"^",4)_";.06////"_$P(IVMSTR,"^",5)_";.08////"_$P(IVMSTR,"^",7)
|
---|
| 55 | .I $P(IVMTN,"^",4)=1 S DR=DR_$S($P(IVMSTR,"^",8):";.09////"_$P(IVMSTR,"^",8),1:"")_$S($P(IVMSTR,"^",9):";.1////"_$P(IVMSTR,"^",9),1:"")
|
---|
| 56 | .I $P(IVMSTR,"^",10) S DR=DR_";.11////1"
|
---|
| 57 | .S DA=IVMTDA,DIE="^IVM(301.61," D ^DIE K DA,DR,DIE
|
---|
| 58 | .D TRANS(IVMTDA,1)
|
---|
| 59 | ;
|
---|
| 60 | K IVMREF,IVMSTR,IVMTDA,IVMQ,IVMTN,^TMP("IVMPTRN5",$J)
|
---|
| 61 | Q
|
---|
| 62 | ;
|
---|
| 63 | ;
|
---|
| 64 | TRANS(DA,IVMF) ; Set bill to be transmitted
|
---|
| 65 | ; Input: DA -- Pointer to transmission record in #301.61
|
---|
| 66 | ; IVMF -- Flag to queue transmission [1=Yes, 0=No]
|
---|
| 67 | I '$G(DA) G TRANSQ
|
---|
| 68 | N DR,DIE
|
---|
| 69 | S DIE="^IVM(301.61,",DR=".12////"_+$G(IVMF)_";1.03///NOW;1.04////"_DUZ D ^DIE
|
---|
| 70 | TRANSQ Q
|
---|