source: WorldVistAEHR/trunk/r/INCOME_VERIFICATION_MATCH-IVM/IVMPINS.m@ 1608

Last change on this file since 1608 was 613, checked in by George Lilly, 15 years ago

initial load of WorldVistAEHR

File size: 1.6 KB
RevLine 
[613]1IVMPINS ;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 ;
5EN ; 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 ;
36ENQ K IVMDA,IVMDT,IVMINSA,IVMINSP,IVMMT,IVMNEW,X
37 Q
38 ;
39 ;
40PRIOR(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)
Note: See TracBrowser for help on using the repository browser.