[613] | 1 | IVMCM1 ;ALB/SEK,BRM - DCD INCOME TESTS UPLOAD DRIVER ; 1/24/03
|
---|
| 2 | ;;2.0;INCOME VERIFICATION MATCH;**17,49,71**;21-OCT-94
|
---|
| 3 | ;;Per VHA Directive 10-93-142, this routine should not be modified.
|
---|
| 4 | ;
|
---|
| 5 | EN ; this routine will call routines to upload means/copay/LTC test and
|
---|
| 6 | ; income screening sent by the IVM Center (DCD). the calling routine
|
---|
| 7 | ; validated segment sequence. entries will be added/modified in the
|
---|
| 8 | ; following means test and patient files:
|
---|
| 9 | ;
|
---|
| 10 | ; PATIENT RELATION (#408.12)
|
---|
| 11 | ; INCOME PERSON (#408.13)
|
---|
| 12 | ; INDIVIDUAL ANNUAL INCOME (#408.21)
|
---|
| 13 | ; INCOME RELATION (#408.22)
|
---|
| 14 | ; ANNUAL MEANS TEST (#408.31)
|
---|
| 15 | ; MEANS TEST CHANGES (#408.41)
|
---|
| 16 | ; PATIENT (#2)
|
---|
| 17 | ;
|
---|
| 18 | ; input:
|
---|
| 19 | ;
|
---|
| 20 | ; IVMTYPE test type 1-means 2-copay 3-income screening 4-LTC
|
---|
| 21 | ; IVMMTIEN IEN of replaced test (408.31)
|
---|
| 22 | ; IVMFLGC # of dependent children
|
---|
| 23 | ; IVMMTDT dt of test
|
---|
| 24 | ; DGLY income year
|
---|
| 25 | ;
|
---|
| 26 | ; ^TMP($J,"IVMCM", contains data sent by IVM Center
|
---|
| 27 | ; 3rd node "PIDV"
|
---|
| 28 | ; "ZICV"
|
---|
| 29 | ; "ZIRV"
|
---|
| 30 | ; "ZDPS"
|
---|
| 31 | ; "ZICS"
|
---|
| 32 | ; "ZIRS"
|
---|
| 33 | ; {"ZDPC",N
|
---|
| 34 | ; "ZICC",N
|
---|
| 35 | ; "ZIRC",N
|
---|
| 36 | ; }
|
---|
| 37 | ; "ZMT1"
|
---|
| 38 | ; "ZMT2"
|
---|
| 39 | ; "ZMT4"
|
---|
| 40 | ; "ZBT"
|
---|
| 41 | ;
|
---|
| 42 | S:'$D(DUZ) DUZ=.5
|
---|
| 43 | ;
|
---|
| 44 | ; subscript of array IVMAR is 408.12 ien transmitted by IVM Center
|
---|
| 45 | ; or created by upload. IVMAR2 is the array used to check for dup SSNs
|
---|
| 46 | K IVMAR,IVMAR2
|
---|
| 47 | ;
|
---|
| 48 | ; New Edit Checks
|
---|
| 49 | N IVMERR,OK2UPLD S IVMERR="",OK2UPLD=1
|
---|
| 50 | D EN^IVMCMF(.IVMERR),PROB^IVMCMFB(,.IVMERR,0) Q:'OK2UPLD
|
---|
| 51 | ;
|
---|
| 52 | ; IVMHADJ indicates means test hardship/adjudication
|
---|
| 53 | ; 1-adj 2-hardship 3-pending adj 0-not adj/hard
|
---|
| 54 | I IVMTYPE=1 D
|
---|
| 55 | .S IVMSEG=$G(^TMP($J,"IVMCM","ZMT1"))
|
---|
| 56 | .S IVMHADJ=$S($P(IVMSEG,"^",13):2,$P(IVMSEG,"^",6)]"":1,$P(IVMSEG,"^",3)="P":3,1:0)
|
---|
| 57 | ;
|
---|
| 58 | S:IVMTYPE=3 DGMTI=""
|
---|
| 59 | ;
|
---|
| 60 | ; add new annual means test file (408.31) stub for Means test,
|
---|
| 61 | ; RX Copay test, or Long Term Care test
|
---|
| 62 | I "^1^2^4^"[("^"_IVMTYPE_"^") D
|
---|
| 63 | .;
|
---|
| 64 | .; input DGMTDT (.01) dt of test
|
---|
| 65 | .; DFN (.02) Patient IEN
|
---|
| 66 | .; DGMTYPT (.19) type of test
|
---|
| 67 | .; output DGMTI annual means test IEN
|
---|
| 68 | .S DGMTDT=IVMMTDT,DGMTYPT=IVMTYPE
|
---|
| 69 | .D ADD^DGMTA
|
---|
| 70 | .;
|
---|
| 71 | .; change primary income test for year?
|
---|
| 72 | .S DA=DGMTI,DIE="^DGMT(408.31,",DR="2////0"
|
---|
| 73 | .D ^DIE K DA,DIE,DR
|
---|
| 74 | ;
|
---|
| 75 | D NEWVET^IVMCM3 Q:$D(IVMFERR) ; if no entry in patient relation file for vet add
|
---|
| 76 | ;
|
---|
| 77 | ; get patient relation ien (#408.12) for vet, spouse, & child
|
---|
| 78 | S IVMREQU=$P($G(^DG(408.32,+$P($G(^DGMT(408.31,IVMMTIEN,0)),"^",3),0)),"^",2)
|
---|
| 79 | D GETREL^DGMTU11(DFN,"VSC",DGLY,$S($G(IVMMTIEN)&(IVMREQU'="R"):IVMMTIEN,1:0))
|
---|
| 80 | ;
|
---|
| 81 | ; add dependent(s) to income person file (408.13)
|
---|
| 82 | ;
|
---|
| 83 | ; add spouse if not in 408.13
|
---|
| 84 | S IVMSPCHV="S" ; spouse/child/vet indicator
|
---|
| 85 | S IVMSEG=$G(^TMP($J,"IVMCM","ZDPS")) ; spouse ZDP segment
|
---|
| 86 | D INPIEN^IVMCM2
|
---|
| 87 | Q:$D(IVMFERR)
|
---|
| 88 | ;
|
---|
| 89 | I IVMFLG5 G ADDCHILD ; entry not added - goto add children
|
---|
| 90 | ;
|
---|
| 91 | ; add entry to patient relation file (408.12)
|
---|
| 92 | D EN^IVMCM3
|
---|
| 93 | Q:$D(IVMFERR)
|
---|
| 94 | ;
|
---|
| 95 | ADDS21 ; add spouse entry to individual annual income file (408.21)
|
---|
| 96 | S IVMSEG=$G(^TMP($J,"IVMCM","ZICS")) ; spouse ZIC segment
|
---|
| 97 | D EN^IVMCM4
|
---|
| 98 | Q:$D(IVMFERR)
|
---|
| 99 | ;
|
---|
| 100 | ; add spouse entry to income relation file (408.22)
|
---|
| 101 | S IVMSEG=$G(^TMP($J,"IVMCM","ZIRS")) ; spouse ZIR segment
|
---|
| 102 | D EN^IVMCM5
|
---|
| 103 | Q:$D(IVMFERR)
|
---|
| 104 | ;
|
---|
| 105 | ADDCHILD ; add children if not in 408.13
|
---|
| 106 | S IVMSPCHV="C" ; spouse/child/vet indicator
|
---|
| 107 | I 'IVMFLGC G ADDV21 ; no dependent children
|
---|
| 108 | F IVMCTR3=1:1:IVMFLGC D Q:$D(IVMFERR)
|
---|
| 109 | .S IVMSEG=$G(^TMP($J,"IVMCM","ZDPC",IVMCTR3)) ; child ZDP segment
|
---|
| 110 | .D INPIEN^IVMCM2
|
---|
| 111 | .Q:$D(IVMFERR)
|
---|
| 112 | .;
|
---|
| 113 | .; add child entry to patient relation file (408.12)
|
---|
| 114 | .D EN^IVMCM3
|
---|
| 115 | .Q:$D(IVMFERR)
|
---|
| 116 | .;
|
---|
| 117 | ADDC21 .; add child entry to individual annual income file (408.21)
|
---|
| 118 | .S IVMSEG=$G(^TMP($J,"IVMCM","ZICC",IVMCTR3)) ; child ZIC segment
|
---|
| 119 | .D EN^IVMCM4
|
---|
| 120 | .Q:$D(IVMFERR)
|
---|
| 121 | .;
|
---|
| 122 | .; add entry to income relation file (408.22)
|
---|
| 123 | .S IVMSEG=$G(^TMP($J,"IVMCM","ZIRC",IVMCTR3)) ; child ZIR segment
|
---|
| 124 | .D EN^IVMCM5
|
---|
| 125 | .Q:$D(IVMFERR)
|
---|
| 126 | .Q
|
---|
| 127 | Q:$D(IVMFERR)
|
---|
| 128 | ;
|
---|
| 129 | ADDV21 ; add vet entry to individual annual income file (408.21)
|
---|
| 130 | ; get vet patient relation ien
|
---|
| 131 | S DGPRI=+$G(DGREL("V"))
|
---|
| 132 | S IVMSEG=$G(^TMP($J,"IVMCM","ZICV")) ; vet ZIC segment
|
---|
| 133 | S IVMSPCHV="V" ; spouse/child/vet indicator
|
---|
| 134 | D EN^IVMCM4
|
---|
| 135 | Q:$D(IVMFERR)
|
---|
| 136 | S DGVINI=DGINI ; vet individual annual income ien
|
---|
| 137 | ;
|
---|
| 138 | ; add vet entry to income relation file (408.22)
|
---|
| 139 | S IVMSEG=$G(^TMP($J,"IVMCM","ZIRV")) ; vet ZIR segment
|
---|
| 140 | D EN^IVMCM5
|
---|
| 141 | Q:$D(IVMFERR)
|
---|
| 142 | S DGVIRI=DGIRI ; vet income relation ien
|
---|
| 143 | ;
|
---|
| 144 | COMPLETE ; complete means test, copay test, or Long Term Care test
|
---|
| 145 | ;
|
---|
| 146 | D EN^IVMCM6
|
---|
| 147 | ;
|
---|
| 148 | ; cleanup
|
---|
| 149 | K DGINI,DGIRI,DGMTDT,DGMTI,DGMTYPT,DGPRI,DGREL,DGVINI,DGVIRI
|
---|
| 150 | K IVMAR,IVMCEB,IVMCTR3,IVMFERR,IVMFLG1
|
---|
| 151 | K IVMFLG2,IVMFLG5,IVMHADJ,IVMMTB,IVMPRN
|
---|
| 152 | K IVMRELN,IVMRELO,IVMREQU,IVMSEG,IVMSPCHV,IVMX
|
---|
| 153 | Q
|
---|
| 154 | ;
|
---|
| 155 | LTC ; transmission contains a long term care test (type 4)
|
---|
| 156 | ;
|
---|
| 157 | Q:'$P($G(^TMP($J,"IVMCM","ZMT4")),HLFS,2)
|
---|
| 158 | I "^1^2^"[("^"_$G(IVMTYPE)_"^") N IVMTYPE
|
---|
| 159 | S IVMTYPE=4,IVMFUTR=0
|
---|
| 160 | S IVMMTDT=$$FMDATE^HLFNC($P($G(^TMP($J,"IVMCM","ZMT4")),HLFS,2))
|
---|
| 161 | S TMSTAMP=$$FMDATE^HLFNC($P($G(^TMP($J,"IVMCM","ZMT4")),HLFS,25))
|
---|
| 162 | S SOURCE=$P($G(^TMP($J,"IVMCM","ZMT4")),HLFS,22)
|
---|
| 163 | S IVMLAST=$$LST^DGMTU(DFN,$E(IVMMTDT,1,3)_1231,4)
|
---|
| 164 | S IVMMTIEN=+IVMLAST ;last LTC test
|
---|
| 165 | ;deletion indicator sent?
|
---|
| 166 | I $P($G(^TMP($J,"IVMCM","ZMT4")),HLFS,3)=HLQ D Q
|
---|
| 167 | .Q:('IVMMTIEN)
|
---|
| 168 | .S NODE0=$G(^DGMT(408.31,IVMMTIEN,0))
|
---|
| 169 | .I $$EN^IVMCMD(IVMMTIEN) D
|
---|
| 170 | ..S RET=$$LST^DGMTU(DFN,DT,IVMTYPE)
|
---|
| 171 | ..S CODE=$S(($E($P(RET,"^",2),1,3)=$E(DT,1,3)):$P(RET,"^",4),1:"")
|
---|
| 172 | ..D ADD^IVMCMB(DFN,IVMTYPE,"DELETE LONG TERM CARE TEST",+$G(NODE0),$$GETCODE^DGMTH($P(NODE0,"^",3)),CODE)
|
---|
| 173 | ;
|
---|
| 174 | ;check date/time last edited, test date and source - if they match current test then this is a duplicate and does not need to be uploaded
|
---|
| 175 | N NODE0,NODE2
|
---|
| 176 | S NODE2=$G(^DGMT(408.31,IVMMTIEN,2)),NODE0=$G(^(0))
|
---|
| 177 | I TMSTAMP,TMSTAMP=$P(NODE2,"^",2),IVMMTDT=$P(NODE0,"^"),SOURCE=$P(NODE2,"^",5) Q
|
---|
| 178 | ;
|
---|
| 179 | D DELTYPE^IVMCMD(DFN,IVMMTDT,4)
|
---|
| 180 | I $P($G(^TMP($J,"IVMCM","ZMT1")),HLFS,2)!($P($G(^TMP($J,"IVMCM","ZMT2")),HLFS,2)) D Q
|
---|
| 181 | .S DGMTDT=IVMMTDT,DGMTYPT=IVMTYPE
|
---|
| 182 | .D ADD^DGMTA
|
---|
| 183 | .D COMPLETE^IVMCM1
|
---|
| 184 | D EN^IVMCM1
|
---|
| 185 | Q
|
---|