Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: IVMPINS

IVMPINS.m

Go to the documentation of this file.
IVMPINS ;ALB/CPM,PHH - INSURANCE EVENT DRIVER INTERFACE ; 01-MAY-94
 ;;2.0;INCOME VERIFICATION MATCH;**9,94**; 21-OCT-94
 ;;Per VHA Directive 10-93-142, this routine should not be modified.
 ;
EN ; Queue transmission if an IVM patient's insurance status changes.
 ;  Input:  DFN -- Pointer to the patient in file #2
 ;
 N EVENTS
 S EVENTS("IVM")=1
 ;
 I '$G(DFN) G ENQ
 ;
 ; - quit if invoked by the IVM insurance upload process
 I $G(IVMINSUP) G ENQ
 ;
 ; - quit if the patient is not Cat C or Cat A
 S IVMMT=$$LST^DGMTU(DFN)
 I $P(IVMMT,"^",4)'="A",$P(IVMMT,"^",4)'="C" G ENQ
 ;
 ; - find the latest IVM case record, if it exists
 S (IVMDA,IVMDT,X)=0
 F  S X=$O(^IVM(301.5,"APT",DFN,X)) Q:'X  S IVMDT=X
 I IVMDT S IVMDA=+$O(^IVM(301.5,"APT",DFN,IVMDT,0))
 S IVMNEW='IVMDA
 ;
 ; - determine changes in insurance status
 S IVMINSP=$$PRIOR(IVMDA)
 S IVMINSA=$$INSUR^IBBAPI(DFN)
 ;
 ; - queue transmission if status has changed
 I IVMDA,(IVMINSP&'IVMINSA)!('IVMINSP&IVMINSA=1) I $$SETSTAT^IVMPLOG(IVMDA,.EVENTS)
 ;
 ; - queue transmission if Cat C pt w/o a case record has no insurance
 I 'IVMDA,'IVMINSA,$P(IVMMT,"^",4)="C" S IVMDT=$$LYR^DGMTSCU1(+$P(IVMMT,"^",2)) I $$LOG^IVMPLOG(DFN,IVMDT,.EVENTS)
 ;
ENQ K IVMDA,IVMDT,IVMINSA,IVMINSP,IVMMT,IVMNEW,X
 Q
 ;
 ;
PRIOR(DA) ; Find insurance status from last transmission
 ;  Input:  DA -- Pointer to the case record in file #301.5
 ; Output:   0 -- No active insurance at last transmission
 ;                (or could not identify last transmission)
 ;           1 -- Had active insurance at last transmission
 ;
 N X,Y S (X,Y)=0
 I $G(DA) F  S Y=$O(^IVM(301.6,"B",DA,Y)) Q:'Y  S X=Y
 Q $S(X:+$P($G(^IVM(301.6,X,1)),"^",2),1:0)