- DGMTSCC ;ALB/RMO,CAW,LBD,EG - Means Test Screen Completion ; 03/24/2006
- ;;5.3;Registration;**33,45,130,438,332,433,462,456,610,624,611,1015**;Aug 13, 1993;Build 21
- ;
- ; Input -- DFN Patient IEN
- ; DGMTACT Means Test Action
- ; DGMTDT Date of Test
- ; DGMTYPT Type of Test 1=MT 2=COPAY
- ; DGMTPAR Annual Means Test Parameters
- ; DGVINI Veteran Individual Annual Income IEN
- ; DGVIRI Veteran Income Relation IEN
- ; DGVPRI Veteran Patient Relation IEN
- ; DGMTNWC Net Worth Calculation flag
- ; Output -- DGERR 1=INCOMPLETE and 0=COMPLETE
- ;
- EN N DGCAT,DGCOMF,DGDC,DGDET,DGIN0,DGIN1,DGIN2,DGINT,DGINTF,DGMTS,DGNC,DGND,DGNWT,DGNWTF,DGREF1,DGSP,DGTYC,DGTHA,DGTHB,DGVIR0,DGCOPS,DGCOST,DGTHG
- S DGERR=0
- I DGMTACT="ADD" D COM I 'Y!($D(DTOUT))!($D(DUOUT)) G Q
- S DGCOMF=1 D DEP^DGMTSCU2,INC^DGMTSCU3
- ;if ANSPFIN="Y" user already answered to provide financial information (module DISC^DGMTSC)
- I $G(ANSPFIN)="Y",$D(DGREF) D
- . S (DGINTF,DGNWTF)=""
- . W !,"DECLINES TO GIVE INCOME INFORMATION: YES"
- . S DGREF1=""
- . Q
- I ($G(DGINTF)=0),($G(DGNWTF)=0) S DGREF1="" D REF G Q:$D(DTOUT)!($D(DUOUT))
- D CAT^DGMTSCU2,STA^DGMTSCU2
- ;don't try to run validation checks if declining to provide financial information
- I '$D(DGREF) D CHK I DGERR W !?3,*7,$S(DGMTYPT=1:"Means",1:"Copay")_" test cannot be completed." G Q
- I DGMTYPT=1,DGTYC="M",(DGNWT-DGDET)+$S(DGMTNWC:0,1:DGINT)'<$P(DGMTPAR,"^",8) D ADJ G Q:$D(DTOUT)!($D(DUOUT))
- I DGMTYPT=2,DGCAT="P" D ADJ G Q:$D(DTOUT)!($D(DUOUT))
- S DA=DGMTI,DIE="^DGMT(408.31,",DIE("NO^")="",DR="[DGMT ENTER/EDIT COMPLETION]" D ^DIE K DA,DIE,DR I '$D(DGFIN) S DGERR=1 G Q
- I DGMTACT="EDT",DGMTDT>DT D
- . N DATA S (DATA(.01),DATA(.07))=DT,DATA(2)=1 I $$UPD^DGENDBS(408.31,DGMTI,.DATA)
- W:DGMTYPT=1 !?3,"...means test status is ",$P($$MTS^DGMTU(DFN,DGMTS),"^"),"..."
- W:DGMTYPT=2 !?3,"...copay test status is ",$S(DGCAT="E":"EXEMPT",DGCAT="M":"NON-EXEMPT",DGCAT="P":"PENDING ADJUDICATION",1:"INCOMPLETE"),"..."
- D PRT
- ;
- Q K DGFIN,DTOUT,DUOUT,Y
- Q
- ;
- COM ;Check if user wants to complete the means test
- N DIR
- S DIR("A")="Do you wish to complete the "_$S(DGMTYPT=1:"means",1:"copay exemption")_" test"
- S DIR("B")="YES",DIR(0)="Y" D ^DIR
- ; The following was added for LTC Copay Phase II (DG*5.3*433)
- I DGMTYPT=4,'Y D
- . W !,"NOTE: If you do not complete the LTC copay exemption test, the incomplete test",!?6,"will be deleted."
- . S DIR("A")="Do you wish to complete the copay exemption test"
- . S DIR("B")="YES",DIR(0)="Y" D ^DIR
- Q
- ;
- REF ;Check if patient declines to provide income information
- ;ANSPFIN Y - user already answer this question (see program DGMTSC)
- N DIR,Y,U
- S U="^"
- S DIR("A")="DECLINES TO GIVE INCOME INFORMATION"
- I $P($G(^DGMT(408.31,DGMTI,0)),"^",14)]"" S DIR("B")=$$YN^DGMTSCU1($P(^(0),"^",14))
- I '$D(DIR("B")),$G(ANSPFIN)'="Y" S DIR("B")="NO"
- ;user answered Y to provide income initially, but didn't provide income information
- I $G(ANSPFIN)="Y" S DIR("B")="YES"
- I $G(DGINTF)=0,$G(DGNWTF)=0 S DIR("B")="YES"
- S DIR(0)="408.31,.14" D ^DIR K DIR G REFQ:$D(DTOUT)!($D(DUOUT))
- S:Y DGREF="" Q:'$D(DGREF)!($D(DGREF1))!(DGMTYPT'=1) S DGCAT="C" D STA^DGMTSCU2
- S ANSPFIN="Y"
- REFQ Q
- ;
- CHK ;Check if means test can be completed
- N DGA,DGD,DGDEP,DGREL,DGL,DGM,I
- D GETREL^DGMTU11(DFN,"CS",$$LYR^DGMTSCU1(DGMTDT),$S($G(DGMTI):DGMTI,1:""))
- S DGM=$P(DGVIR0,"^",5),DGL=$P(DGVIR0,"^",6),DGA=$P(DGVIR0,"^",7),DGD=$P(DGVIR0,"^",8)
- I DGM']""!(DGM&(DGL']""))!(DGM&('DGL)&(DGA']"")) W !?3,"Marital section must be completed." S DGERR=1
- I DGM,'$D(DGREL("S")),'$D(DGREF) W !?3,"Married is 'YES'. An active spouse for this means test does not exist." S DGERR=1
- I 'DGM,$D(DGREL("S")) W !?3,"An active spouse exists for this means test. Married should be 'YES'." S DGERR=1
- I DGD']"" W !?3,"Dependent Children section must be completed." S DGERR=1
- I DGD,'$D(DGREL("C")) W !?3,"Dependent Children is 'YES'. No active children exist." S DGERR=1
- I 'DGD,$D(DGREL("C")) W !?3,"Active children exist. Dependent Children should be 'YES'." S DGERR=1
- I DGMTYPT=1,'$D(DGREF),DGTYC="M",'DGNWTF W !?3,"A status of ",$$GETNAME^DGMTH(DGMTS)," requires property information." S DGERR=1
- I DGMTYPT=2,'DGNWTF,DGCAT="E",$$ASKNW^DGMTCOU W !?3,"Patient is in an 'EXEMPT' status and requires property information." S DGERR=1
- I DGDET>DGINT W !?3,"Patient's deductible expenses cannot exceed income." S DGERR=1
- Q:$G(DGERR)
- N CNT,ACT,DGDEP,FLAG,DGINCP
- D INIT^DGDEP S CNT=0 D
- . F S CNT=$O(DGDEP(CNT)) Q:'CNT I $P(DGDEP(CNT),U,2)="SPOUSE" D Q:$G(DGERR)
- . . D GETIENS^DGMTU2(DFN,$P(DGDEP(CNT),U,20),DGMTDT)
- . . S DGINCP=$G(^DGMT(408.22,+DGIRI,"MT")) S:DGINCP FLAG=$G(FLAG)+1
- . . I $G(FLAG)>1 W !?3,"Patient has more than one spouse for this means test." S DGERR=1
- Q
- ;
- ADJ ;Adjudicate the means test
- N DIR,Y
- S DIR("?",1)="Since assets exceed the threshold, the "_$S(DGMTYPT=1:"means",1:"copay")_" test can"
- S DIR("?",2)="be sent to adjudication. If the "_$S(DGMTYPT=1:"means",1:"copay")_" test is not"
- S DIR("?")="adjudicated, the patient will be placed in "_$S(DGMTYPT=1&(DGTHG>DGTHA):"GMT Copay Required",DGMTYPT=1:"MT Copay Required",1:"Non-exempt")_" status."
- S DIR("A")="Do you wish to send this case to adjudication"
- S DIR("B")="YES",DIR(0)="Y" D ^DIR G ADJQ:$D(DTOUT)!($D(DUOUT))
- S DGCAT=$S(Y:"P",DGMTYPT=1&(DGTHG>DGTHA):"G",DGMTYPT=1:"C",1:"N") D STA^DGMTSCU2
- ADJQ Q
- ;
- ;DG*5.3*624 - REMOVE 10-10F AND REPLACE WITH 10-10EZ/EZR
- PRT ;Print the 10-10EZR or 10-10EZ
- N EZFLAG
- I $D(DGFINOP) DO
- .W !!,"Options for printing financial assessment information will follow."
- .W !,"Generally, you should answer 'YES' to 'PRINT 10-10EZR?' after updating"
- .W !,"patient demographic or financial information. Answer 'YES' to 'PRINT"
- .W !,"10-10EZ?' after entering new patient demographic and financial information."
- S EZFLAG=$$SEL1010^DG1010P("EZR/EZ")
- Q:(EZFLAG=-1)
- D QUE
- ;
- PRTQ Q
- ;
- ;DG*5.3*624 - REMOVE 10-10F AND REPLACE WITH 10-10EZ/EZR
- QUE ;
- N X
- I $G(EZFLAG)="EZ" S X=$$ENEZ^EASEZPDG(DFN,DGMTI)
- I $G(EZFLAG)="EZR" S X=$$ENEZR^EASEZPDG(DFN,DGMTI)
- Q
- DGMTSCC ;ALB/RMO,CAW,LBD,EG - Means Test Screen Completion ; 03/24/2006
- +1 ;;5.3;Registration;**33,45,130,438,332,433,462,456,610,624,611,1015**;Aug 13, 1993;Build 21
- +2 ;
- +3 ; Input -- DFN Patient IEN
- +4 ; DGMTACT Means Test Action
- +5 ; DGMTDT Date of Test
- +6 ; DGMTYPT Type of Test 1=MT 2=COPAY
- +7 ; DGMTPAR Annual Means Test Parameters
- +8 ; DGVINI Veteran Individual Annual Income IEN
- +9 ; DGVIRI Veteran Income Relation IEN
- +10 ; DGVPRI Veteran Patient Relation IEN
- +11 ; DGMTNWC Net Worth Calculation flag
- +12 ; Output -- DGERR 1=INCOMPLETE and 0=COMPLETE
- +13 ;
- EN NEW DGCAT,DGCOMF,DGDC,DGDET,DGIN0,DGIN1,DGIN2,DGINT,DGINTF,DGMTS,DGNC,DGND,DGNWT,DGNWTF,DGREF1,DGSP,DGTYC,DGTHA,DGTHB,DGVIR0,DGCOPS,DGCOST,DGTHG
- +1 SET DGERR=0
- +2 IF DGMTACT="ADD"
- DO COM
- IF 'Y!($DATA(DTOUT))!($DATA(DUOUT))
- GOTO Q
- +3 SET DGCOMF=1
- DO DEP^DGMTSCU2
- DO INC^DGMTSCU3
- +4 ;if ANSPFIN="Y" user already answered to provide financial information (module DISC^DGMTSC)
- +5 IF $GET(ANSPFIN)="Y"
- IF $DATA(DGREF)
- Begin DoDot:1
- +6 SET (DGINTF,DGNWTF)=""
- +7 WRITE !,"DECLINES TO GIVE INCOME INFORMATION: YES"
- +8 SET DGREF1=""
- +9 QUIT
- End DoDot:1
- +10 IF ($GET(DGINTF)=0)
- IF ($GET(DGNWTF)=0)
- SET DGREF1=""
- DO REF
- IF $DATA(DTOUT)!($DATA(DUOUT))
- GOTO Q
- +11 DO CAT^DGMTSCU2
- DO STA^DGMTSCU2
- +12 ;don't try to run validation checks if declining to provide financial information
- +13 IF '$DATA(DGREF)
- DO CHK
- IF DGERR
- WRITE !?3,*7,$SELECT(DGMTYPT=1:"Means",1:"Copay")_" test cannot be completed."
- GOTO Q
- +14 IF DGMTYPT=1
- IF DGTYC="M"
- IF (DGNWT-DGDET)+$SELECT(DGMTNWC:0,1:DGINT)'<$PIECE(DGMTPAR,"^",8)
- DO ADJ
- IF $DATA(DTOUT)!($DATA(DUOUT))
- GOTO Q
- +15 IF DGMTYPT=2
- IF DGCAT="P"
- DO ADJ
- IF $DATA(DTOUT)!($DATA(DUOUT))
- GOTO Q
- +16 SET DA=DGMTI
- SET DIE="^DGMT(408.31,"
- SET DIE("NO^")=""
- SET DR="[DGMT ENTER/EDIT COMPLETION]"
- DO ^DIE
- KILL DA,DIE,DR
- IF '$DATA(DGFIN)
- SET DGERR=1
- GOTO Q
- +17 IF DGMTACT="EDT"
- IF DGMTDT>DT
- Begin DoDot:1
- +18 NEW DATA
- SET (DATA(.01),DATA(.07))=DT
- SET DATA(2)=1
- IF $$UPD^DGENDBS(408.31,DGMTI,.DATA)
- End DoDot:1
- +19 IF DGMTYPT=1
- WRITE !?3,"...means test status is ",$PIECE($$MTS^DGMTU(DFN,DGMTS),"^"),"..."
- +20 IF DGMTYPT=2
- WRITE !?3,"...copay test status is ",$SELECT(DGCAT="E":"EXEMPT",DGCAT="M":"NON-EXEMPT",DGCAT="P":"PENDING ADJUDICATION",1:"INCOMPLETE"),"..."
- +21 DO PRT
- +22 ;
- Q KILL DGFIN,DTOUT,DUOUT,Y
- +1 QUIT
- +2 ;
- COM ;Check if user wants to complete the means test
- +1 NEW DIR
- +2 SET DIR("A")="Do you wish to complete the "_$SELECT(DGMTYPT=1:"means",1:"copay exemption")_" test"
- +3 SET DIR("B")="YES"
- SET DIR(0)="Y"
- DO ^DIR
- +4 ; The following was added for LTC Copay Phase II (DG*5.3*433)
- +5 IF DGMTYPT=4
- IF 'Y
- Begin DoDot:1
- +6 WRITE !,"NOTE: If you do not complete the LTC copay exemption test, the incomplete test",!?6,"will be deleted."
- +7 SET DIR("A")="Do you wish to complete the copay exemption test"
- +8 SET DIR("B")="YES"
- SET DIR(0)="Y"
- DO ^DIR
- End DoDot:1
- +9 QUIT
- +10 ;
- REF ;Check if patient declines to provide income information
- +1 ;ANSPFIN Y - user already answer this question (see program DGMTSC)
- +2 NEW DIR,Y,U
- +3 SET U="^"
- +4 SET DIR("A")="DECLINES TO GIVE INCOME INFORMATION"
- +5 IF $PIECE($GET(^DGMT(408.31,DGMTI,0)),"^",14)]""
- SET DIR("B")=$$YN^DGMTSCU1($PIECE(^(0),"^",14))
- +6 IF '$DATA(DIR("B"))
- IF $GET(ANSPFIN)'="Y"
- SET DIR("B")="NO"
- +7 ;user answered Y to provide income initially, but didn't provide income information
- +8 IF $GET(ANSPFIN)="Y"
- SET DIR("B")="YES"
- +9 IF $GET(DGINTF)=0
- IF $GET(DGNWTF)=0
- SET DIR("B")="YES"
- +10 SET DIR(0)="408.31,.14"
- DO ^DIR
- KILL DIR
- IF $DATA(DTOUT)!($DATA(DUOUT))
- GOTO REFQ
- +11 IF Y
- SET DGREF=""
- IF '$DATA(DGREF)!($DATA(DGREF1))!(DGMTYPT'=1)
- QUIT
- SET DGCAT="C"
- DO STA^DGMTSCU2
- +12 SET ANSPFIN="Y"
- REFQ QUIT
- +1 ;
- CHK ;Check if means test can be completed
- +1 NEW DGA,DGD,DGDEP,DGREL,DGL,DGM,I
- +2 DO GETREL^DGMTU11(DFN,"CS",$$LYR^DGMTSCU1(DGMTDT),$SELECT($GET(DGMTI):DGMTI,1:""))
- +3 SET DGM=$PIECE(DGVIR0,"^",5)
- SET DGL=$PIECE(DGVIR0,"^",6)
- SET DGA=$PIECE(DGVIR0,"^",7)
- SET DGD=$PIECE(DGVIR0,"^",8)
- +4 IF DGM']""!(DGM&(DGL']""))!(DGM&('DGL)&(DGA']""))
- WRITE !?3,"Marital section must be completed."
- SET DGERR=1
- +5 IF DGM
- IF '$DATA(DGREL("S"))
- IF '$DATA(DGREF)
- WRITE !?3,"Married is 'YES'. An active spouse for this means test does not exist."
- SET DGERR=1
- +6 IF 'DGM
- IF $DATA(DGREL("S"))
- WRITE !?3,"An active spouse exists for this means test. Married should be 'YES'."
- SET DGERR=1
- +7 IF DGD']""
- WRITE !?3,"Dependent Children section must be completed."
- SET DGERR=1
- +8 IF DGD
- IF '$DATA(DGREL("C"))
- WRITE !?3,"Dependent Children is 'YES'. No active children exist."
- SET DGERR=1
- +9 IF 'DGD
- IF $DATA(DGREL("C"))
- WRITE !?3,"Active children exist. Dependent Children should be 'YES'."
- SET DGERR=1
- +10 IF DGMTYPT=1
- IF '$DATA(DGREF)
- IF DGTYC="M"
- IF 'DGNWTF
- WRITE !?3,"A status of ",$$GETNAME^DGMTH(DGMTS)," requires property information."
- SET DGERR=1
- +11 IF DGMTYPT=2
- IF 'DGNWTF
- IF DGCAT="E"
- IF $$ASKNW^DGMTCOU
- WRITE !?3,"Patient is in an 'EXEMPT' status and requires property information."
- SET DGERR=1
- +12 IF DGDET>DGINT
- WRITE !?3,"Patient's deductible expenses cannot exceed income."
- SET DGERR=1
- +13 IF $GET(DGERR)
- QUIT
- +14 NEW CNT,ACT,DGDEP,FLAG,DGINCP
- +15 DO INIT^DGDEP
- SET CNT=0
- Begin DoDot:1
- +16 FOR
- SET CNT=$ORDER(DGDEP(CNT))
- IF 'CNT
- QUIT
- IF $PIECE(DGDEP(CNT),U,2)="SPOUSE"
- Begin DoDot:2
- +17 DO GETIENS^DGMTU2(DFN,$PIECE(DGDEP(CNT),U,20),DGMTDT)
- +18 SET DGINCP=$GET(^DGMT(408.22,+DGIRI,"MT"))
- IF DGINCP
- SET FLAG=$GET(FLAG)+1
- +19 IF $GET(FLAG)>1
- WRITE !?3,"Patient has more than one spouse for this means test."
- SET DGERR=1
- End DoDot:2
- IF $GET(DGERR)
- QUIT
- End DoDot:1
- +20 QUIT
- +21 ;
- ADJ ;Adjudicate the means test
- +1 NEW DIR,Y
- +2 SET DIR("?",1)="Since assets exceed the threshold, the "_$SELECT(DGMTYPT=1:"means",1:"copay")_" test can"
- +3 SET DIR("?",2)="be sent to adjudication. If the "_$SELECT(DGMTYPT=1:"means",1:"copay")_" test is not"
- +4 SET DIR("?")="adjudicated, the patient will be placed in "_$SELECT(DGMTYPT=1&(DGTHG>DGTHA):"GMT Copay Required",DGMTYPT=1:"MT Copay Required",1:"Non-exempt")_" status."
- +5 SET DIR("A")="Do you wish to send this case to adjudication"
- +6 SET DIR("B")="YES"
- SET DIR(0)="Y"
- DO ^DIR
- IF $DATA(DTOUT)!($DATA(DUOUT))
- GOTO ADJQ
- +7 SET DGCAT=$SELECT(Y:"P",DGMTYPT=1&(DGTHG>DGTHA):"G",DGMTYPT=1:"C",1:"N")
- DO STA^DGMTSCU2
- ADJQ QUIT
- +1 ;
- +2 ;DG*5.3*624 - REMOVE 10-10F AND REPLACE WITH 10-10EZ/EZR
- PRT ;Print the 10-10EZR or 10-10EZ
- +1 NEW EZFLAG
- +2 IF $DATA(DGFINOP)
- Begin DoDot:1
- +3 WRITE !!,"Options for printing financial assessment information will follow."
- +4 WRITE !,"Generally, you should answer 'YES' to 'PRINT 10-10EZR?' after updating"
- +5 WRITE !,"patient demographic or financial information. Answer 'YES' to 'PRINT"
- +6 WRITE !,"10-10EZ?' after entering new patient demographic and financial information."
- End DoDot:1
- +7 SET EZFLAG=$$SEL1010^DG1010P("EZR/EZ")
- +8 IF (EZFLAG=-1)
- QUIT
- +9 DO QUE
- +10 ;
- PRTQ QUIT
- +1 ;
- +2 ;DG*5.3*624 - REMOVE 10-10F AND REPLACE WITH 10-10EZ/EZR
- QUE ;
- +1 NEW X
- +2 IF $GET(EZFLAG)="EZ"
- SET X=$$ENEZ^EASEZPDG(DFN,DGMTI)
- +3 IF $GET(EZFLAG)="EZR"
- SET X=$$ENEZR^EASEZPDG(DFN,DGMTI)
- +4 QUIT