| 1 | IVMZ072 ;BAJ - HL7 Z07 CONSISTENCY CHECKER -- DRIVER ROUTINE II ; 09/27/06
 | 
|---|
| 2 |  ;;2.0;INCOME VERIFICATION MATCH;**105**;JUL 8,1996;Build 2
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 |  ; 
 | 
|---|
| 5 |  ; This routine supports the IVMZ07C consistency checker routines.
 | 
|---|
| 6 | LOADSD(DFN,DGSD) ; Load spouse & dependent data into array
 | 
|---|
| 7 |  ; We will need to look at the Patient Relationship file to determine the spouse(s) and dependents for the patient
 | 
|---|
| 8 |  ; from the Patient Relation file ^DGPR(408.12)  This file will point to an IEN in the Income Person file.
 | 
|---|
| 9 |  ; Next, we will load all of the spouse(s) and dependents from the Income Person file into the array.
 | 
|---|
| 10 |  N NIEN,IEN,RIEN,NODE,I,ENODE
 | 
|---|
| 11 |  ; look into Patient Relation file #408.12.  Here we will find a pointer to each relation.  And the record itself will
 | 
|---|
| 12 |  ; contain a pointer into the INCOME PERSON file (#408.13)
 | 
|---|
| 13 |  ;
 | 
|---|
| 14 |  ;Global ^DGPR(408.12,,DFN
 | 
|---|
| 15 |  ;^DGPR(408.12,"B",9999955601,3206)= 
 | 
|---|
| 16 |  ;                        3210)=      <<------|
 | 
|---|
| 17 |  ;                        3211)=              |
 | 
|---|
| 18 |  ;                        3212)=              |
 | 
|---|
| 19 |  ;                                            ]
 | 
|---|
| 20 |  ;Global ^DGPR(408.12,3210 <<------------
 | 
|---|
| 21 |  ;^DGPR(408.12,3210,0)=9999955601^2^7170758;DGPR(408.13,
 | 
|---|
| 22 |  ;^DGPR(408.12,3210,"E",0)=^408.1275D^1^1        |
 | 
|---|
| 23 |  ;^DGPR(408.12,3210,"E",1,0)=2560406^1           |
 | 
|---|
| 24 |  ;^DGPR(408.12,3210,"E","AID",-2560406,1)=       |
 | 
|---|
| 25 |  ;^DGPR(408.12,3210,"E","B",2560406,1)=          |
 | 
|---|
| 26 |  ;                                               |
 | 
|---|
| 27 |  ;                                               |
 | 
|---|
| 28 |  ;Global ^DGPR(408.13,7170758 <<--------------
 | 
|---|
| 29 |  ;^DGPR(408.13,7170758,0)=XXXXXX,XXXX SPOUSE^F^2560406^^^^^^174040656P^N
 | 
|---|
| 30 |  ;                     1)=XXXXX,XXXX^^^^^^^
 | 
|---|
| 31 |  ;
 | 
|---|
| 32 |  I '$D(^DGPR(408.12,"B",DFN)) Q
 | 
|---|
| 33 |  S NIEN="" F  S NIEN=$O(^DGPR(408.12,"B",DFN,NIEN)) Q:NIEN=""  D
 | 
|---|
| 34 |  . S IEN=$P(^DGPR(408.12,NIEN,0),U,3)
 | 
|---|
| 35 |  . ; an entry in DPT is the patient.  we only need relations 
 | 
|---|
| 36 |  . Q:$P(IEN,";",2)["DPT"
 | 
|---|
| 37 |  . Q:'$$ACTIF(NIEN,.ENODE)   ;include only Active dependents
 | 
|---|
| 38 |  . S RIEN=$P(IEN,";",1),NODE=$P(IEN,";",2)
 | 
|---|
| 39 |  . S NODE=U_NODE,NODE=NODE_RIEN_")"
 | 
|---|
| 40 |  . Q:'$D(@NODE)
 | 
|---|
| 41 |  . S DGSD("DEP",RIEN,"EFF")=ENODE
 | 
|---|
| 42 |  . S DGSD("DEP",RIEN)=$P(^DGPR(408.12,NIEN,0),U,2)
 | 
|---|
| 43 |  . M DGSD("DEP",RIEN)=@NODE
 | 
|---|
| 44 |  Q
 | 
|---|
| 45 |  ;
 | 
|---|
| 46 | ACTIF(NIEN,ENODE) ;determine if record in ^DGPR(408.12) is currently active. If active, populate variable ENODE with Effective Date.
 | 
|---|
| 47 |  ; This API should be called something like this I $$ACTIF^IVMZ072(NIEN,.ENODE)...
 | 
|---|
| 48 |  ; Input:
 | 
|---|
| 49 |  ;       NIEN    =       IEN of ^DGPR(408.12) reference
 | 
|---|
| 50 |  ;       ENODE   =       Variable to contain Effective Date
 | 
|---|
| 51 |  ;
 | 
|---|
| 52 |  ; Populates:
 | 
|---|
| 53 |  ;       ENODE =         With the most recent effective date of changes
 | 
|---|
| 54 |  ;
 | 
|---|
| 55 |  ; Returns:
 | 
|---|
| 56 |  ;       ACTIVE flag
 | 
|---|
| 57 |  ;       1 = Active
 | 
|---|
| 58 |  ;       0 = Inactive
 | 
|---|
| 59 |  ;
 | 
|---|
| 60 |  N ROOT,ACTDAT,INDEX,ACTIVE,EFF
 | 
|---|
| 61 |  S ACTIVE=0
 | 
|---|
| 62 |  D  Q ACTIVE
 | 
|---|
| 63 |  . S ROOT=$O(^DGPR(408.12,NIEN,"E","AID","")) Q:ROOT=""
 | 
|---|
| 64 |  . S INDEX=$O(^DGPR(408.12,NIEN,"E","AID",ROOT,"")) Q:INDEX=""
 | 
|---|
| 65 |  . S ACTDAT=^DGPR(408.12,NIEN,"E",INDEX,0)
 | 
|---|
| 66 |  . S ACTIVE=$P(ACTDAT,"^",2),ENODE=$P(ACTDAT,"^",1)
 | 
|---|
| 67 |  Q ACTIVE
 | 
|---|
| 68 |  ;
 | 
|---|