[613] | 1 | IVMPINS ;ALB/CPM,PHH - INSURANCE EVENT DRIVER INTERFACE ; 01-MAY-94
|
---|
| 2 | ;;2.0;INCOME VERIFICATION MATCH;**9,94**; 21-OCT-94
|
---|
| 3 | ;;Per VHA Directive 10-93-142, this routine should not be modified.
|
---|
| 4 | ;
|
---|
| 5 | EN ; Queue transmission if an IVM patient's insurance status changes.
|
---|
| 6 | ; Input: DFN -- Pointer to the patient in file #2
|
---|
| 7 | ;
|
---|
| 8 | N EVENTS
|
---|
| 9 | S EVENTS("IVM")=1
|
---|
| 10 | ;
|
---|
| 11 | I '$G(DFN) G ENQ
|
---|
| 12 | ;
|
---|
| 13 | ; - quit if invoked by the IVM insurance upload process
|
---|
| 14 | I $G(IVMINSUP) G ENQ
|
---|
| 15 | ;
|
---|
| 16 | ; - quit if the patient is not Cat C or Cat A
|
---|
| 17 | S IVMMT=$$LST^DGMTU(DFN)
|
---|
| 18 | I $P(IVMMT,"^",4)'="A",$P(IVMMT,"^",4)'="C" G ENQ
|
---|
| 19 | ;
|
---|
| 20 | ; - find the latest IVM case record, if it exists
|
---|
| 21 | S (IVMDA,IVMDT,X)=0
|
---|
| 22 | F S X=$O(^IVM(301.5,"APT",DFN,X)) Q:'X S IVMDT=X
|
---|
| 23 | I IVMDT S IVMDA=+$O(^IVM(301.5,"APT",DFN,IVMDT,0))
|
---|
| 24 | S IVMNEW='IVMDA
|
---|
| 25 | ;
|
---|
| 26 | ; - determine changes in insurance status
|
---|
| 27 | S IVMINSP=$$PRIOR(IVMDA)
|
---|
| 28 | S IVMINSA=$$INSUR^IBBAPI(DFN)
|
---|
| 29 | ;
|
---|
| 30 | ; - queue transmission if status has changed
|
---|
| 31 | I IVMDA,(IVMINSP&'IVMINSA)!('IVMINSP&IVMINSA=1) I $$SETSTAT^IVMPLOG(IVMDA,.EVENTS)
|
---|
| 32 | ;
|
---|
| 33 | ; - queue transmission if Cat C pt w/o a case record has no insurance
|
---|
| 34 | I 'IVMDA,'IVMINSA,$P(IVMMT,"^",4)="C" S IVMDT=$$LYR^DGMTSCU1(+$P(IVMMT,"^",2)) I $$LOG^IVMPLOG(DFN,IVMDT,.EVENTS)
|
---|
| 35 | ;
|
---|
| 36 | ENQ K IVMDA,IVMDT,IVMINSA,IVMINSP,IVMMT,IVMNEW,X
|
---|
| 37 | Q
|
---|
| 38 | ;
|
---|
| 39 | ;
|
---|
| 40 | PRIOR(DA) ; Find insurance status from last transmission
|
---|
| 41 | ; Input: DA -- Pointer to the case record in file #301.5
|
---|
| 42 | ; Output: 0 -- No active insurance at last transmission
|
---|
| 43 | ; (or could not identify last transmission)
|
---|
| 44 | ; 1 -- Had active insurance at last transmission
|
---|
| 45 | ;
|
---|
| 46 | N X,Y S (X,Y)=0
|
---|
| 47 | I $G(DA) F S Y=$O(^IVM(301.6,"B",DA,Y)) Q:'Y S X=Y
|
---|
| 48 | Q $S(X:+$P($G(^IVM(301.6,X,1)),"^",2),1:0)
|
---|