[613] | 1 | DGMTU22 ;ALB/CAW - COPY PRIOR YEAR INCOME INFORMATION; 6/18/92
|
---|
| 2 | ;;5.3;Registration;**33,45,624**;Aug 13, 1993
|
---|
| 3 | ;
|
---|
| 4 | COPY(DFN,DGDT,DGMTI) ;
|
---|
| 5 | ; Input:
|
---|
| 6 | ; DFN - Patient IFN
|
---|
| 7 | ; DGDT - Date passed in where you want the prior years
|
---|
| 8 | ; income data to be copied into the last year
|
---|
| 9 | ; Ex. If DGDT is 6/30/92 the income from 1990 can
|
---|
| 10 | ; be optionally copied into 1991 if available.
|
---|
| 11 | ; DGMTI - Current MT IEN (optional)
|
---|
| 12 | ; Output:
|
---|
| 13 | ; Y - 0 not copied
|
---|
| 14 | ; 1 copied
|
---|
| 15 | ; -1 timed out or ^
|
---|
| 16 | N DGIN1,DGMT,DGPRI,DGFL,DGLY,DGLST,DGPY,DGI,DGINI,DGIRI,DGERR,DGREL,DGINC,DGINR,DGDEP,DEP,DGMTS,DGMTD
|
---|
| 17 | D INIT I Y'>0 W !,"Cannot copy information. Either there is no prior year income",!,"or there is income already on file for this year." H 2 G COPYQ
|
---|
| 18 | D ASK I Y'>0 W !,"Cannot copy information. Either there is no prior year income",!,"or there is income already on file for this year." H 2 G COPYQ
|
---|
| 19 | D STUFF
|
---|
| 20 | COPYQ ;
|
---|
| 21 | K DTOUT Q
|
---|
| 22 | INIT ; Init
|
---|
| 23 | D NEW^DGRPEIS1 I DGPRI'>0 S Y=0 G INITQ ; obtain pt's relation IEN
|
---|
| 24 | S DGLY=$$LYR^DGMTSCU1(DGDT),DGPY=$$LYR^DGMTSCU1(DGLY)
|
---|
| 25 | S DGLST=$$LST^DGMTU(DFN,DGDT-1) I DGLST']"" S Y=1 G INITQ
|
---|
| 26 | F DGI=4,5,15 I $P(^DGMT(408.31,+DGLST,0),U,DGI)["-" W !,"Previous year data contains a negative amount. Data cannot be copied." H 3 S Y=0 G INITQ
|
---|
| 27 | S Y=1
|
---|
| 28 | INITQ Q
|
---|
| 29 | ASK ; Can user copy?
|
---|
| 30 | N DGINR S Y=1
|
---|
| 31 | I '$D(^DGMT(408.21,"AI",+DGPRI,-DGPY)) S Y=0 Q
|
---|
| 32 | I $D(^DGMT(408.21,"AI",+DGPRI,-DGLY)) D
|
---|
| 33 | .S Y=$$NOBUCKS(DFN,DGDT)
|
---|
| 34 | Q
|
---|
| 35 | ;
|
---|
| 36 | STUFF ; Copy infomation into last year
|
---|
| 37 | ;
|
---|
| 38 | ; Get prior year info IENs
|
---|
| 39 | I $G(DGMTI) N DGMT S DGMT=$$LST^DGMTU(DFN,$P(^DGMT(408.31,DGMTI,0),U)),DGMT=+$$LST^DGMTU(DFN,($P(DGMT,U,2)-1))
|
---|
| 40 | N Y D ALL^DGMTU21(DFN,"VSD",DGLY,"IPR",$G(DGMT))
|
---|
| 41 | ; Save prior year info
|
---|
| 42 | N DGCNT,DGPRTY
|
---|
| 43 | S DGCNT=0 F DGPRTY="V","S","D" I $D(DGREL(DGPRTY)) D
|
---|
| 44 | .I "D"[DGPRTY F S DGCNT=$O(DGREL(DGPRTY,DGCNT)) Q:'DGCNT D SET(DFN,DGDT,+DGREL(DGPRTY,DGCNT),+$G(DGINC(DGPRTY,DGCNT)),+$G(DGINR(DGPRTY,DGCNT)),$G(DGMTI))
|
---|
| 45 | .I "SV"[DGPRTY D SET(DFN,DGDT,+DGREL(DGPRTY),+$G(DGINC(DGPRTY)),+$G(DGINR(DGPRTY)),+$G(DGMTI))
|
---|
| 46 | Q
|
---|
| 47 | SET(DFN,DGDT,DGPRI,DGPINI,DGPINR,DGMTI) ; Create last year IENs
|
---|
| 48 | ;
|
---|
| 49 | N DGERR,DGINI,DGIRI,DGMT,I,DGGRS
|
---|
| 50 | F I=0:1:2 S DGMT(I)=$G(^DGMT(408.21,DGPINI,I))
|
---|
| 51 | S DGMT(3)=$G(^DGMT(408.22,DGPINR,0))
|
---|
| 52 | D GETIENS^DGMTU2(DFN,DGPRI,DGDT) G SETQ:DGERR
|
---|
| 53 | ; Set info into global and index
|
---|
| 54 | S $P(^DGMT(408.22,+DGIRI,0),U,3,99)=$P(DGMT(3),U,3,99)
|
---|
| 55 | I $G(DGMTI) S ^DGMT(408.22,+DGIRI,"MT")=+DGMTI
|
---|
| 56 | S DIK="^DGMT(408.22,",DA=DGIRI D IX^DIK K DA,DIK
|
---|
| 57 | S $P(^DGMT(408.21,+DGINI,0),U,3,99)=$P(DGMT(0),U,3,99)
|
---|
| 58 | F I=1:1:2 I DGMT(I)'="" S ^DGMT(408.21,+DGINI,I)=DGMT(I)
|
---|
| 59 | S DGGRS=$P(DGMT(1),U,12) ;dg624 - preserve gross from 'AGME101' xref
|
---|
| 60 | S DIK="^DGMT(408.21,",DA=DGINI D IX^DIK K DA,DIK
|
---|
| 61 | D:+DGGRS ;dg624 - if gross, restore it & force recalc of adjusted
|
---|
| 62 | . S $P(^DGMT(408.21,+DGINI,1),U,12)=DGGRS
|
---|
| 63 | . S $P(^DGMT(408.21,+DGINI,1),U,1)=""
|
---|
| 64 | SETQ Q
|
---|
| 65 | NOBUCKS(DFN,DGDT) ; Used by Income Screen Checks if BOTH
|
---|
| 66 | ; NO meaningful Income Data for Prior Year
|
---|
| 67 | ; AND there is data for Year before Prior Year
|
---|
| 68 | ; 2=YES (but some edit/entry in 408.22),1=YES & 0=NO
|
---|
| 69 | ; ** REQUIRES DGINR("V")
|
---|
| 70 | N DGCURR,DGPRIEN,DGPRIOR,DGPY,DGLY,DGIAI,DGIR,DGY,DGINP
|
---|
| 71 | I $G(DGNOCOPY) S DGY=0 G QTNB
|
---|
| 72 | S:'$D(DGDT) DGDT=DT
|
---|
| 73 | S DGLY=$E(DGDT,1,3)_"0000"-10000,DGPY=DGLY-10000
|
---|
| 74 | S (DGPRIOR,DGCURR)=0
|
---|
| 75 | F DGPRIEN=0:0 S DGPRIEN=$O(^DGPR(408.12,"B",DFN,DGPRIEN)) Q:'DGPRIEN D
|
---|
| 76 | .S:$D(^DGMT(408.21,"AI",+DGPRIEN,-DGPY)) DGPRIOR=DGPRIOR+1
|
---|
| 77 | .S DGIAI=$$IAI^DGMTU3(+DGPRIEN,DGLY)
|
---|
| 78 | .I DGIAI]"" D
|
---|
| 79 | ..S DGCURR=DGCURR+$S($P($G(^DGMT(408.21,DGIAI,0)),U,8,18)'?."^":1,($P($G(^(1)),U,1,3)]""):1,($P($G(^(2)),U,1,5)]""):1,1:0)
|
---|
| 80 | ..;S DGINP=$O(^DGMT(408.22,"AIND",+DGIAI,"")) I $P($G(^DGMT(408.22,+DGINP,"MT")),U) S DGCURR=DGCURR+1
|
---|
| 81 | I 'DGPRIOR!DGCURR S DGY=0 G QTNB
|
---|
| 82 | S DGIR=$G(^DGMT(408.22,+$G(DGINR("V")),0))
|
---|
| 83 | S DGY=$S($P(DGIR,U,5)]"":2,($P(DGIR,U,13)]""):2,1:1)
|
---|
| 84 | QTNB Q DGY
|
---|