- IVMCZMT ;ALB/MLI/LD/CKN,TDM,EG,TDM,TGH,HM - Creation of HL7 ZMT (means test) segment ;7/19/06 4:41pm
- ;;2.0;INCOME VERIFICATION MATCH;**17,53,49,58,81,89,104,105,160,193**;21-OCT-94;Build 37
- ;
- ; This routine returns the ZMT segment which contains means test
- ; data for a selected patient. It differs from the standard segment
- ; builder in that it will add default values where needed for
- ; fields added by means test sharing - these fields may not have
- ; values for old tests, though for new tests the values should be there.
- ;
- ;
- ;
- EN(DFN,VAFSTR,VAFMTDT,VAFTYPE,SETID,DELETE,LIMIT) ; Entry point to get ZMT segment
- ;
- ; Input:
- ; DFN - as the IEN or corresponding patient in the PATIENT file
- ; VAFSTR - as string of segment fields needed separated by commas
- ; VAFMTDT - (optional) as date of desired means test (defaults to latest MT)
- ; VAFTYPE - (optional) as type of test: 1 - Means Test (default=1)
- ; 2 - Copay Test
- ; 4 - LTC Copay Exemption Test
- ; SETID - (optional) value to use for SEQ 1, the set id field (1 used
- ; as default if not passed.)
- ; DELETE - (optional, pass by reference) This array is used to
- ; indicate whether the segment is being used to notify of the
- ; the deletion of a means test, pharmacy copay test, or a
- ; hardship determinatin. If a means test or hardship is being
- ; deleted, then VAFTYPE must equal 1. If an Rx copay test is
- ; being deleted, then VAFTYPE must equal 2. The subscripts
- ; are as follows:
- ; DELETE("DATE OF TEST")=<date of test> - indicates
- ; the income year of the test that the deletion flags
- ; refer to
- ; DELETE("HARDSHIP") - if $G(DELETE("HARDSHIP"))=1 then the
- ; segment will be created to delete the hardship.
- ; DELETE("MT") - if $G(DELETE("MT"))=1 then
- ; the segment will be created to delete a means test.
- ; DELETE("RX")= if $G(DELETE("RX"))=1 then
- ; the segment will be created to delete a pharmacy
- ; copay test.
- ; DELETE("LTC")= if $G(DELETE("LTC"))=1 then
- ; the segment will be created to delete a Long term
- ; care copay exemption test.
- ; LIMIT - (optional) if $G(LIMIT)=1 then this indicates that a test in
- ; an income year other than indicated in the IVM Patient File
- ; should NOT be returned in the ZMT segment
- ;
- ; ****Also assumes all HL7 variables are defined as returned ****
- ; by the INIT^HLTRANS call
- ;
- ; Output - string in the form of the DHCP HL7 ZMT segment
- ;
- ;
- N NODE,PRIM,X,Y,VAFY,NODE2,MTIEN
- ;
- I '$G(DFN)!($G(VAFSTR)']"") G QUIT
- S $P(VAFY,HLFS,22)="",VAFSTR=","_VAFSTR_","
- S VAFTYPE=$S($G(VAFTYPE):VAFTYPE,1:1)
- S VAFMTDT=$S($G(VAFMTDT):VAFMTDT,1:DT)
- S $P(VAFY,HLFS,1)=$S($G(SETID):SETID,1:1)
- S (NODE,NODE2,PRIM)=""
- ;
- ;handle deletions of a test
- I ($G(DELETE("MT"))=1),VAFTYPE=1 D G QUIT
- .S $P(VAFY,HLFS,2)=$$HLDATE^HLFNC(DELETE("DATE OF TEST")) ; MT Date
- .S $P(VAFY,HLFS,3)=HLQ
- .I ($G(DELETE("HARDSHIP"))=1) S $P(VAFY,HLFS,24)=HLQ
- .S $P(VAFY,HLFS,17)=VAFTYPE ; Type Of Test
- ;
- I ($G(DELETE("RX"))=1),VAFTYPE=2 D G QUIT
- .S $P(VAFY,HLFS,2)=$$HLDATE^HLFNC(DELETE("DATE OF TEST")) ; MT Date
- .S $P(VAFY,HLFS,3)=HLQ
- .S $P(VAFY,HLFS,17)=VAFTYPE ; Type Of Test
- ;
- I ($G(DELETE("LTC"))=1),VAFTYPE=4 D G QUIT
- .S $P(VAFY,HLFS,2)=$$HLDATE^HLFNC(DELETE("DATE OF TEST")) ; MT Date
- .S $P(VAFY,HLFS,3)=HLQ
- .S $P(VAFY,HLFS,17)=VAFTYPE ; Type Of Test
- ;
- ; Income Year requiring transmission from IVM Patient File (301.5)
- S IVMIY=$S($D(IVMIY):IVMIY,1:(VAFMTDT-10000))
- ;
- ; Check for a future dated Income Test
- S MTIEN=""
- N EC S EC=0
- I VAFTYPE'=4 D
- . S MTIEN=+$$FUT^DGMTU(DFN,"",$S($G(VAFTYPE):VAFTYPE,1:1))
- . I MTIEN D
- . . S NODE=$G(^DGMT(408.31,MTIEN,0)),PRIM=$G(^("PRIM")),NODE2=$G(^DGMT(408.31,MTIEN,2))
- . . ;the FUT API works off the a XREF that is not deleted if the test
- . . ;is no longer future. As a result, you may pick up the wrong income
- . . ;year as a return. The check $E(IVMIY,1,3)+1'=$E(+NODE,1,3) must be
- . . ;performed here and after the current Primary icnome test section below
- . . I ($G(LIMIT)=1),($E(IVMIY,1,3)+1)'=$E(+NODE,1,3) S EC=1
- . . Q
- . Q
- I VAFTYPE'=4,EC S (NODE,NODE2,MTIEN,PRIM)="" ;Q "ZMT"_HLFS_$G(VAFY)
- ;
- ; Check for a current Primary Income Test
- I 'MTIEN S MTIEN=+$$LST^DGMTU(DFN,VAFMTDT,$S($G(VAFTYPE):VAFTYPE,1:1))
- S:(NODE="") NODE=$G(^DGMT(408.31,MTIEN,0)),PRIM=$G(^("PRIM")),NODE2=$G(^DGMT(408.31,MTIEN,2))
- ;
- ;if the wrong income yr, and told to ignore it ($G(LIMIT)=1,
- ;send blank means test
- I ($G(LIMIT)=1),($E(IVMIY,1,3)+1)'=$E(+NODE,1,3) S (NODE,NODE2,MTIEN,PRIM)="" Q "ZMT"_HLFS_$G(VAFY)
- ;
- ;
- I NODE'="" D
- .;add default values to new means test sharing fields
- .N STATUS,CODE,TDSTATUS,TDCODE,HARDSHIP,DATA,SOURCE,TIME
- .S TDSTATUS=$P(NODE2,"^",3)
- .S HARDSHIP=$P(NODE,"^",20)
- .I TDSTATUS="" D
- ..S STATUS=$P(NODE,"^",3)
- ..Q:'STATUS
- ..S CODE=$$GETCODE^DGMTH(STATUS)
- ..I CODE'="","ABCEGMP"[CODE D
- ...I VAFTYPE=1,HARDSHIP D
- ....I "AG"[CODE D Q
- .....I CODE="A",($P(NODE,"^",4)'>$P(NODE,"^",27)) S TDSTATUS=$$GETSTAT^DGMTH("G",1) Q ;Income <= GMT Threshold
- .....S TDSTATUS=$$GETSTAT^DGMTH("C",1)
- ....S TDSTATUS=STATUS
- ...S DATA(2.03)=TDSTATUS,$P(NODE2,"^",3)=TDSTATUS
- .S SOURCE=$P(NODE,"^",23)
- .I SOURCE=1 D
- ..S TIME=$P(NODE2,"^",2)
- ..I TIME="" S TIME=$$NOW^XLFDT,$P(NODE2,"^",2)=TIME,DATA(2.02)=TIME
- ..I $P(NODE2,"^",5)="",$P(NODE,"^",6) S $P(NODE2,"^",5)=$$GETSITE^DGMTU4($P(NODE,"^",6)),DATA(2.05)=$P(NODE2,"^",5)
- .I HARDSHIP,$P(NODE2,"^",4)="",$P(NODE,"^",22) S $P(NODE2,"^",4)=$$GETSITE^DGMTU4($P(NODE,"^",22)),DATA(2.04)=$P(NODE2,"^",4)
- .I $D(DATA),$$UPD^DGENDBS(408.31,MTIEN,.DATA)
- .;
- I VAFSTR[",2," S $P(VAFY,HLFS,2)=$S(+NODE:$$HLDATE^HLFNC(+NODE),1:HLQ) ; MT Date
- I VAFSTR[",3," S X=$P($G(^DG(408.32,+$P(NODE,"^",3),0)),"^",2),$P(VAFY,HLFS,3)=$S(X]"":X,1:"") ; MT Status
- I VAFSTR[",4," S $P(VAFY,HLFS,4)=$S($P(NODE,"^",4)]"":$P(NODE,"^",4),1:HLQ) ; Income
- I VAFSTR[",5," S $P(VAFY,HLFS,5)=$S($P(NODE,"^",5)]"":$P(NODE,"^",5),1:HLQ) ; Net Worth
- I VAFSTR[",6," S $P(VAFY,HLFS,6)=$S($P(NODE,"^",10):$$HLDATE^HLFNC($P(NODE,"^",10)),1:HLQ) ; Adjudication Date/Time
- I VAFSTR[",7," S $P(VAFY,HLFS,7)=$$YN^VAFHLFNC($P(NODE,"^",11)) ;Agreed To Pay
- I VAFSTR[",8," S $P(VAFY,HLFS,8)=$S($P(NODE,"^",12):$P(NODE,"^",12),1:HLQ) ; Threshold A
- I VAFSTR[",9," S $P(VAFY,HLFS,9)=$S($P(NODE,"^",15)]"":$P(NODE,"^",15),1:HLQ) ; Deductible Expenses
- I VAFSTR[",10," S $P(VAFY,HLFS,10)=$S($P(NODE,"^",7):$$HLDATE^HLFNC($P(NODE,"^",7)),1:HLQ) ; Date/Time Completed
- I VAFSTR[",11," S $P(VAFY,HLFS,11)=$$YN^VAFHLFNC($P(NODE,"^",16)) ;Previous Year Means Test Threshold Flag
- I VAFSTR[",12," S $P(VAFY,HLFS,12)=$S($P(NODE,"^",18)]"":$P(NODE,"^",18),1:HLQ) ; Total Dependents
- I VAFSTR[",13," S $P(VAFY,HLFS,13)=$$YN^VAFHLFNC($P(NODE,"^",20)) ;Hardship
- I VAFSTR[",14," S $P(VAFY,HLFS,14)=$S($P(NODE,"^",21):$$HLDATE^HLFNC($P(NODE,"^",21)),1:HLQ) ; Hardship Review Date
- I VAFSTR[",15," S $P(VAFY,HLFS,15)=$S($P(NODE,"^",24):$$HLDATE^HLFNC($P(NODE,"^",24)),1:HLQ) ; Date Vet Signed Test
- I VAFSTR[",16," S $P(VAFY,HLFS,16)=$$YN^VAFHLFNC($P(NODE,"^",14)) ;Declines To Give Income Info
- I VAFSTR[",17," S $P(VAFY,HLFS,17)=$S($P(NODE,"^",19):$P(NODE,"^",19),1:VAFTYPE) ; Type Of Test
- I VAFSTR[",18," S $P(VAFY,HLFS,18)=$S($P(NODE,"^",23)]"":$P(NODE,"^",23),1:HLQ) ; Source Of Test
- I VAFSTR[",19," S $P(VAFY,HLFS,19)=$$YN^VAFHLFNC(PRIM) ; Primary Test?
- I VAFSTR[",20," S $P(VAFY,HLFS,20)=$S($P(NODE,"^",25):$$HLDATE^HLFNC($P(NODE,"^",25)),1:HLQ) ; Date IVM Verified MT Completed
- I VAFSTR[",21," S $P(VAFY,HLFS,21)=$$YN^VAFHLFNC($P(NODE,"^",26)) ;Refused To Sign
- ;
- ;
- I VAFSTR[",22," S $P(VAFY,HLFS,22)=$P(NODE2,"^",5) ;Site Conducting Test
- I VAFSTR[",23," S $P(VAFY,HLFS,23)=$P(NODE2,"^",4) ;Site Granting Hardship
- I VAFSTR[",24," S $P(VAFY,HLFS,24)=$S($P(NODE2,"^"):$$HLDATE^HLFNC($P(NODE2,"^")),1:"") ;Hardship Effective Date
- I VAFSTR[",25," S $P(VAFY,HLFS,25)=$S($P(NODE2,"^",2):$$HLDATE^HLFNC($P(NODE2,"^",2)),1:"") ;Dt/Tm Test Last Edited
- I VAFSTR[",26," S $P(VAFY,HLFS,26)=$S($P(NODE2,"^",3):$$GETCODE^DGMTH($P(NODE2,"^",3)),1:"") ; Test Determined Status
- I VAFSTR[",28," S $P(VAFY,HLFS,28)=$P(NODE,"^",27) ;GMT Threshold
- I VAFSTR[",29," S $P(VAFY,HLFS,29)=$P(NODE2,"^",9) ;Hardship Reason
- I VAFSTR[",30," S $P(VAFY,HLFS,30)=+$P(NODE2,"^",11) ; Test Version
- I VAFSTR[",31," S $P(VAFY,HLFS,31)=$G(^DGMT(408.31,MTIEN,4)) ;Beneficiary Travel Financial Indicator - IVM*2.0*160
- I VAFSTR[",32," S $P(VAFY,HLFS,32)=$S($P(NODE2,"^",13):$$HLDATE^HLFNC($P(NODE2,"^",13)),1:"") ;Hardship Expiration Date IVM*2.0*193
- ;
- ;can only transmit the deletion of a hardship if the segment is for a means test - and the income years must match if there is a means test
- ;
- I VAFTYPE=1,($G(DELETE("HARDSHIP"))=1),('(+NODE)!($E(DELETE("DATE OF TEST"),1,3)=$E((+NODE),1,3))) S $P(VAFY,HLFS,24)=HLQ
- ;
- QUIT Q "ZMT"_HLFS_$G(VAFY)
- --- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HIVMCZMT 9007 printed Apr 23, 2025@18:15:20 Page 2
- IVMCZMT ;ALB/MLI/LD/CKN,TDM,EG,TDM,TGH,HM - Creation of HL7 ZMT (means test) segment ;7/19/06 4:41pm
- +1 ;;2.0;INCOME VERIFICATION MATCH;**17,53,49,58,81,89,104,105,160,193**;21-OCT-94;Build 37
- +2 ;
- +3 ; This routine returns the ZMT segment which contains means test
- +4 ; data for a selected patient. It differs from the standard segment
- +5 ; builder in that it will add default values where needed for
- +6 ; fields added by means test sharing - these fields may not have
- +7 ; values for old tests, though for new tests the values should be there.
- +8 ;
- +9 ;
- +10 ;
- EN(DFN,VAFSTR,VAFMTDT,VAFTYPE,SETID,DELETE,LIMIT) ; Entry point to get ZMT segment
- +1 ;
- +2 ; Input:
- +3 ; DFN - as the IEN or corresponding patient in the PATIENT file
- +4 ; VAFSTR - as string of segment fields needed separated by commas
- +5 ; VAFMTDT - (optional) as date of desired means test (defaults to latest MT)
- +6 ; VAFTYPE - (optional) as type of test: 1 - Means Test (default=1)
- +7 ; 2 - Copay Test
- +8 ; 4 - LTC Copay Exemption Test
- +9 ; SETID - (optional) value to use for SEQ 1, the set id field (1 used
- +10 ; as default if not passed.)
- +11 ; DELETE - (optional, pass by reference) This array is used to
- +12 ; indicate whether the segment is being used to notify of the
- +13 ; the deletion of a means test, pharmacy copay test, or a
- +14 ; hardship determinatin. If a means test or hardship is being
- +15 ; deleted, then VAFTYPE must equal 1. If an Rx copay test is
- +16 ; being deleted, then VAFTYPE must equal 2. The subscripts
- +17 ; are as follows:
- +18 ; DELETE("DATE OF TEST")=<date of test> - indicates
- +19 ; the income year of the test that the deletion flags
- +20 ; refer to
- +21 ; DELETE("HARDSHIP") - if $G(DELETE("HARDSHIP"))=1 then the
- +22 ; segment will be created to delete the hardship.
- +23 ; DELETE("MT") - if $G(DELETE("MT"))=1 then
- +24 ; the segment will be created to delete a means test.
- +25 ; DELETE("RX")= if $G(DELETE("RX"))=1 then
- +26 ; the segment will be created to delete a pharmacy
- +27 ; copay test.
- +28 ; DELETE("LTC")= if $G(DELETE("LTC"))=1 then
- +29 ; the segment will be created to delete a Long term
- +30 ; care copay exemption test.
- +31 ; LIMIT - (optional) if $G(LIMIT)=1 then this indicates that a test in
- +32 ; an income year other than indicated in the IVM Patient File
- +33 ; should NOT be returned in the ZMT segment
- +34 ;
- +35 ; ****Also assumes all HL7 variables are defined as returned ****
- +36 ; by the INIT^HLTRANS call
- +37 ;
- +38 ; Output - string in the form of the DHCP HL7 ZMT segment
- +39 ;
- +40 ;
- +41 NEW NODE,PRIM,X,Y,VAFY,NODE2,MTIEN
- +42 ;
- +43 IF '$GET(DFN)!($GET(VAFSTR)']"")
- GOTO QUIT
- +44 SET $PIECE(VAFY,HLFS,22)=""
- SET VAFSTR=","_VAFSTR_","
- +45 SET VAFTYPE=$SELECT($GET(VAFTYPE):VAFTYPE,1:1)
- +46 SET VAFMTDT=$SELECT($GET(VAFMTDT):VAFMTDT,1:DT)
- +47 SET $PIECE(VAFY,HLFS,1)=$SELECT($GET(SETID):SETID,1:1)
- +48 SET (NODE,NODE2,PRIM)=""
- +49 ;
- +50 ;handle deletions of a test
- +51 IF ($GET(DELETE("MT"))=1)
- IF VAFTYPE=1
- Begin DoDot:1
- +52 ; MT Date
- SET $PIECE(VAFY,HLFS,2)=$$HLDATE^HLFNC(DELETE("DATE OF TEST"))
- +53 SET $PIECE(VAFY,HLFS,3)=HLQ
- +54 IF ($GET(DELETE("HARDSHIP"))=1)
- SET $PIECE(VAFY,HLFS,24)=HLQ
- +55 ; Type Of Test
- SET $PIECE(VAFY,HLFS,17)=VAFTYPE
- End DoDot:1
- GOTO QUIT
- +56 ;
- +57 IF ($GET(DELETE("RX"))=1)
- IF VAFTYPE=2
- Begin DoDot:1
- +58 ; MT Date
- SET $PIECE(VAFY,HLFS,2)=$$HLDATE^HLFNC(DELETE("DATE OF TEST"))
- +59 SET $PIECE(VAFY,HLFS,3)=HLQ
- +60 ; Type Of Test
- SET $PIECE(VAFY,HLFS,17)=VAFTYPE
- End DoDot:1
- GOTO QUIT
- +61 ;
- +62 IF ($GET(DELETE("LTC"))=1)
- IF VAFTYPE=4
- Begin DoDot:1
- +63 ; MT Date
- SET $PIECE(VAFY,HLFS,2)=$$HLDATE^HLFNC(DELETE("DATE OF TEST"))
- +64 SET $PIECE(VAFY,HLFS,3)=HLQ
- +65 ; Type Of Test
- SET $PIECE(VAFY,HLFS,17)=VAFTYPE
- End DoDot:1
- GOTO QUIT
- +66 ;
- +67 ; Income Year requiring transmission from IVM Patient File (301.5)
- +68 SET IVMIY=$SELECT($DATA(IVMIY):IVMIY,1:(VAFMTDT-10000))
- +69 ;
- +70 ; Check for a future dated Income Test
- +71 SET MTIEN=""
- +72 NEW EC
- SET EC=0
- +73 IF VAFTYPE'=4
- Begin DoDot:1
- +74 SET MTIEN=+$$FUT^DGMTU(DFN,"",$SELECT($GET(VAFTYPE):VAFTYPE,1:1))
- +75 IF MTIEN
- Begin DoDot:2
- +76 SET NODE=$GET(^DGMT(408.31,MTIEN,0))
- SET PRIM=$GET(^("PRIM"))
- SET NODE2=$GET(^DGMT(408.31,MTIEN,2))
- +77 ;the FUT API works off the a XREF that is not deleted if the test
- +78 ;is no longer future. As a result, you may pick up the wrong income
- +79 ;year as a return. The check $E(IVMIY,1,3)+1'=$E(+NODE,1,3) must be
- +80 ;performed here and after the current Primary icnome test section below
- +81 IF ($GET(LIMIT)=1)
- IF ($EXTRACT(IVMIY,1,3)+1)'=$EXTRACT(+NODE,1,3)
- SET EC=1
- +82 QUIT
- End DoDot:2
- +83 QUIT
- End DoDot:1
- +84 ;Q "ZMT"_HLFS_$G(VAFY)
- IF VAFTYPE'=4
- IF EC
- SET (NODE,NODE2,MTIEN,PRIM)=""
- +85 ;
- +86 ; Check for a current Primary Income Test
- +87 IF 'MTIEN
- SET MTIEN=+$$LST^DGMTU(DFN,VAFMTDT,$SELECT($GET(VAFTYPE):VAFTYPE,1:1))
- +88 if (NODE="")
- SET NODE=$GET(^DGMT(408.31,MTIEN,0))
- SET PRIM=$GET(^("PRIM"))
- SET NODE2=$GET(^DGMT(408.31,MTIEN,2))
- +89 ;
- +90 ;if the wrong income yr, and told to ignore it ($G(LIMIT)=1,
- +91 ;send blank means test
- +92 IF ($GET(LIMIT)=1)
- IF ($EXTRACT(IVMIY,1,3)+1)'=$EXTRACT(+NODE,1,3)
- SET (NODE,NODE2,MTIEN,PRIM)=""
- QUIT "ZMT"_HLFS_$GET(VAFY)
- +93 ;
- +94 ;
- +95 IF NODE'=""
- Begin DoDot:1
- +96 ;add default values to new means test sharing fields
- +97 NEW STATUS,CODE,TDSTATUS,TDCODE,HARDSHIP,DATA,SOURCE,TIME
- +98 SET TDSTATUS=$PIECE(NODE2,"^",3)
- +99 SET HARDSHIP=$PIECE(NODE,"^",20)
- +100 IF TDSTATUS=""
- Begin DoDot:2
- +101 SET STATUS=$PIECE(NODE,"^",3)
- +102 if 'STATUS
- QUIT
- +103 SET CODE=$$GETCODE^DGMTH(STATUS)
- +104 IF CODE'=""
- IF "ABCEGMP"[CODE
- Begin DoDot:3
- +105 IF VAFTYPE=1
- IF HARDSHIP
- Begin DoDot:4
- +106 IF "AG"[CODE
- Begin DoDot:5
- +107 ;Income <= GMT Threshold
- IF CODE="A"
- IF ($PIECE(NODE,"^",4)'>$PIECE(NODE,"^",27))
- SET TDSTATUS=$$GETSTAT^DGMTH("G",1)
- QUIT
- +108 SET TDSTATUS=$$GETSTAT^DGMTH("C",1)
- End DoDot:5
- QUIT
- +109 SET TDSTATUS=STATUS
- End DoDot:4
- +110 SET DATA(2.03)=TDSTATUS
- SET $PIECE(NODE2,"^",3)=TDSTATUS
- End DoDot:3
- End DoDot:2
- +111 SET SOURCE=$PIECE(NODE,"^",23)
- +112 IF SOURCE=1
- Begin DoDot:2
- +113 SET TIME=$PIECE(NODE2,"^",2)
- +114 IF TIME=""
- SET TIME=$$NOW^XLFDT
- SET $PIECE(NODE2,"^",2)=TIME
- SET DATA(2.02)=TIME
- +115 IF $PIECE(NODE2,"^",5)=""
- IF $PIECE(NODE,"^",6)
- SET $PIECE(NODE2,"^",5)=$$GETSITE^DGMTU4($PIECE(NODE,"^",6))
- SET DATA(2.05)=$PIECE(NODE2,"^",5)
- End DoDot:2
- +116 IF HARDSHIP
- IF $PIECE(NODE2,"^",4)=""
- IF $PIECE(NODE,"^",22)
- SET $PIECE(NODE2,"^",4)=$$GETSITE^DGMTU4($PIECE(NODE,"^",22))
- SET DATA(2.04)=$PIECE(NODE2,"^",4)
- +117 IF $DATA(DATA)
- IF $$UPD^DGENDBS(408.31,MTIEN,.DATA)
- +118 ;
- End DoDot:1
- +119 ; MT Date
- IF VAFSTR[",2,"
- SET $PIECE(VAFY,HLFS,2)=$SELECT(+NODE:$$HLDATE^HLFNC(+NODE),1:HLQ)
- +120 ; MT Status
- IF VAFSTR[",3,"
- SET X=$PIECE($GET(^DG(408.32,+$PIECE(NODE,"^",3),0)),"^",2)
- SET $PIECE(VAFY,HLFS,3)=$SELECT(X]"":X,1:"")
- +121 ; Income
- IF VAFSTR[",4,"
- SET $PIECE(VAFY,HLFS,4)=$SELECT($PIECE(NODE,"^",4)]"":$PIECE(NODE,"^",4),1:HLQ)
- +122 ; Net Worth
- IF VAFSTR[",5,"
- SET $PIECE(VAFY,HLFS,5)=$SELECT($PIECE(NODE,"^",5)]"":$PIECE(NODE,"^",5),1:HLQ)
- +123 ; Adjudication Date/Time
- IF VAFSTR[",6,"
- SET $PIECE(VAFY,HLFS,6)=$SELECT($PIECE(NODE,"^",10):$$HLDATE^HLFNC($PIECE(NODE,"^",10)),1:HLQ)
- +124 ;Agreed To Pay
- IF VAFSTR[",7,"
- SET $PIECE(VAFY,HLFS,7)=$$YN^VAFHLFNC($PIECE(NODE,"^",11))
- +125 ; Threshold A
- IF VAFSTR[",8,"
- SET $PIECE(VAFY,HLFS,8)=$SELECT($PIECE(NODE,"^",12):$PIECE(NODE,"^",12),1:HLQ)
- +126 ; Deductible Expenses
- IF VAFSTR[",9,"
- SET $PIECE(VAFY,HLFS,9)=$SELECT($PIECE(NODE,"^",15)]"":$PIECE(NODE,"^",15),1:HLQ)
- +127 ; Date/Time Completed
- IF VAFSTR[",10,"
- SET $PIECE(VAFY,HLFS,10)=$SELECT($PIECE(NODE,"^",7):$$HLDATE^HLFNC($PIECE(NODE,"^",7)),1:HLQ)
- +128 ;Previous Year Means Test Threshold Flag
- IF VAFSTR[",11,"
- SET $PIECE(VAFY,HLFS,11)=$$YN^VAFHLFNC($PIECE(NODE,"^",16))
- +129 ; Total Dependents
- IF VAFSTR[",12,"
- SET $PIECE(VAFY,HLFS,12)=$SELECT($PIECE(NODE,"^",18)]"":$PIECE(NODE,"^",18),1:HLQ)
- +130 ;Hardship
- IF VAFSTR[",13,"
- SET $PIECE(VAFY,HLFS,13)=$$YN^VAFHLFNC($PIECE(NODE,"^",20))
- +131 ; Hardship Review Date
- IF VAFSTR[",14,"
- SET $PIECE(VAFY,HLFS,14)=$SELECT($PIECE(NODE,"^",21):$$HLDATE^HLFNC($PIECE(NODE,"^",21)),1:HLQ)
- +132 ; Date Vet Signed Test
- IF VAFSTR[",15,"
- SET $PIECE(VAFY,HLFS,15)=$SELECT($PIECE(NODE,"^",24):$$HLDATE^HLFNC($PIECE(NODE,"^",24)),1:HLQ)
- +133 ;Declines To Give Income Info
- IF VAFSTR[",16,"
- SET $PIECE(VAFY,HLFS,16)=$$YN^VAFHLFNC($PIECE(NODE,"^",14))
- +134 ; Type Of Test
- IF VAFSTR[",17,"
- SET $PIECE(VAFY,HLFS,17)=$SELECT($PIECE(NODE,"^",19):$PIECE(NODE,"^",19),1:VAFTYPE)
- +135 ; Source Of Test
- IF VAFSTR[",18,"
- SET $PIECE(VAFY,HLFS,18)=$SELECT($PIECE(NODE,"^",23)]"":$PIECE(NODE,"^",23),1:HLQ)
- +136 ; Primary Test?
- IF VAFSTR[",19,"
- SET $PIECE(VAFY,HLFS,19)=$$YN^VAFHLFNC(PRIM)
- +137 ; Date IVM Verified MT Completed
- IF VAFSTR[",20,"
- SET $PIECE(VAFY,HLFS,20)=$SELECT($PIECE(NODE,"^",25):$$HLDATE^HLFNC($PIECE(NODE,"^",25)),1:HLQ)
- +138 ;Refused To Sign
- IF VAFSTR[",21,"
- SET $PIECE(VAFY,HLFS,21)=$$YN^VAFHLFNC($PIECE(NODE,"^",26))
- +139 ;
- +140 ;
- +141 ;Site Conducting Test
- IF VAFSTR[",22,"
- SET $PIECE(VAFY,HLFS,22)=$PIECE(NODE2,"^",5)
- +142 ;Site Granting Hardship
- IF VAFSTR[",23,"
- SET $PIECE(VAFY,HLFS,23)=$PIECE(NODE2,"^",4)
- +143 ;Hardship Effective Date
- IF VAFSTR[",24,"
- SET $PIECE(VAFY,HLFS,24)=$SELECT($PIECE(NODE2,"^"):$$HLDATE^HLFNC($PIECE(NODE2,"^")),1:"")
- +144 ;Dt/Tm Test Last Edited
- IF VAFSTR[",25,"
- SET $PIECE(VAFY,HLFS,25)=$SELECT($PIECE(NODE2,"^",2):$$HLDATE^HLFNC($PIECE(NODE2,"^",2)),1:"")
- +145 ; Test Determined Status
- IF VAFSTR[",26,"
- SET $PIECE(VAFY,HLFS,26)=$SELECT($PIECE(NODE2,"^",3):$$GETCODE^DGMTH($PIECE(NODE2,"^",3)),1:"")
- +146 ;GMT Threshold
- IF VAFSTR[",28,"
- SET $PIECE(VAFY,HLFS,28)=$PIECE(NODE,"^",27)
- +147 ;Hardship Reason
- IF VAFSTR[",29,"
- SET $PIECE(VAFY,HLFS,29)=$PIECE(NODE2,"^",9)
- +148 ; Test Version
- IF VAFSTR[",30,"
- SET $PIECE(VAFY,HLFS,30)=+$PIECE(NODE2,"^",11)
- +149 ;Beneficiary Travel Financial Indicator - IVM*2.0*160
- IF VAFSTR[",31,"
- SET $PIECE(VAFY,HLFS,31)=$GET(^DGMT(408.31,MTIEN,4))
- +150 ;Hardship Expiration Date IVM*2.0*193
- IF VAFSTR[",32,"
- SET $PIECE(VAFY,HLFS,32)=$SELECT($PIECE(NODE2,"^",13):$$HLDATE^HLFNC($PIECE(NODE2,"^",13)),1:"")
- +151 ;
- +152 ;can only transmit the deletion of a hardship if the segment is for a means test - and the income years must match if there is a means test
- +153 ;
- +154 IF VAFTYPE=1
- IF ($GET(DELETE("HARDSHIP"))=1)
- IF ('(+NODE)!($EXTRACT(DELETE("DATE OF TEST"),1,3)=$EXTRACT((+NODE),1,3)))
- SET $PIECE(VAFY,HLFS,24)=HLQ
- +155 ;
- QUIT QUIT "ZMT"_HLFS_$GET(VAFY)