| 1 | EASMTL6A ; MIN/TCM ALB/SCK/PHH - AUTOMATED MEANS TEST LETTER-PRINT LETTERS CONT ; 3/10/03 4:07pm | 
|---|
| 2 | ;;1.0;ENROLLMENT APPLICATION SYSTEM;**3,14,15,29,28,54**;MAR 15,2001 | 
|---|
| 3 | ; | 
|---|
| 4 | LETTER(EASN,TYPE) ;Print letter | 
|---|
| 5 | ; Input | 
|---|
| 6 | ;     EASN    - File #713.2 IEN | 
|---|
| 7 | ;     TYPE    - Letter type | 
|---|
| 8 | ; | 
|---|
| 9 | N DFN,EASADD,EASIN,EASNME,EALNE,EASFAC,MSG,TAB,EAFIEN,EAX,LINE,EASANV,EASX,VADM,VAROOT,OFFSET,EASPTR,EASLIEN,EASITE,EASRTE,EASDEM,POP | 
|---|
| 10 | ; | 
|---|
| 11 | S TAB=3 ; Tab spacing for letters | 
|---|
| 12 | S OFFSET=+$$GET1^DIQ(713,1,10) ; Get print offset for address | 
|---|
| 13 | ; | 
|---|
| 14 | ;  Get patient data for letter | 
|---|
| 15 | S EASPTR=$$GET1^DIQ(713.2,EASN,2,"I") | 
|---|
| 16 | I EASPTR]"" S DFN=$$GET1^DIQ(713.1,EASPTR,.01,"I") | 
|---|
| 17 | E  S DFN=-1 | 
|---|
| 18 | ; Get patient mailing information | 
|---|
| 19 | D GETPAT(DFN,.EASDEM,.EASADD) | 
|---|
| 20 | ;  Get return address info | 
|---|
| 21 | D GETFAC^EASMTL6(DFN,.EASFAC) | 
|---|
| 22 | ; | 
|---|
| 23 | W @IOF | 
|---|
| 24 | I EASFAC(100)]"" D | 
|---|
| 25 | . W !!?TAB+OFFSET,EASFAC(100) | 
|---|
| 26 | E  D | 
|---|
| 27 | . W !!?TAB+OFFSET,"VA MEDICAL CENTER" | 
|---|
| 28 | W ?(IOM-10),$E(EASDEM(1),1,1),EASDEM(2) | 
|---|
| 29 | ; | 
|---|
| 30 | W !?TAB+OFFSET,EASFAC(1.01) | 
|---|
| 31 | I EASFAC(1.02)]"" W !?TAB+OFFSET,EASFAC(1.02) | 
|---|
| 32 | W !?TAB+OFFSET,EASFAC(1.03)_" "_$P(EASFAC(.02),U,2)_" "_EASFAC(1.04) | 
|---|
| 33 | W !!!?TAB+OFFSET,$$FMTE^XLFDT(DT,1) | 
|---|
| 34 | ; | 
|---|
| 35 | ;; generic test letter setup | 
|---|
| 36 | I DFN>0 D | 
|---|
| 37 | . S EASNME("FILE")=2,EASNME("IENS")=DFN,EASNME("FIELD")=.01 | 
|---|
| 38 | . W !!!!?TAB+OFFSET,$$NAMEFMT^XLFNAME(.EASNME,"G") | 
|---|
| 39 | E  D | 
|---|
| 40 | . W !!!!?TAB+OFFSET,EASDEM(1) | 
|---|
| 41 | ;; | 
|---|
| 42 | W !?TAB+OFFSET,EASADD(1) | 
|---|
| 43 | ; | 
|---|
| 44 | I EASADD(2)]"" W !?TAB+OFFSET,EASADD(2) | 
|---|
| 45 | W !?TAB+OFFSET,EASADD(4) | 
|---|
| 46 | I +EASADD(5) W " ",$$GET1^DIQ(5,$P(EASADD(5),U),1) | 
|---|
| 47 | W " ",$P(EASADD(11),U,2) | 
|---|
| 48 | ; | 
|---|
| 49 | S EASANV=$$GET1^DIQ(713.2,EASN,3,"I") | 
|---|
| 50 | W !!!!,?TAB,"MEANS TEST ANNIVERSARY DATE: ",$$FMTE^XLFDT($$ADDLEAP^EASMTUTL(EASANV)) | 
|---|
| 51 | ; | 
|---|
| 52 | S EASX=$P(EASDEM(5),U) | 
|---|
| 53 | ;; Patch 15 | 
|---|
| 54 | W !!,?TAB,"Dear ",$S(EASX="M":"Mr. ",EASX="F":"Ms. ",1:"Mr./Ms. ") | 
|---|
| 55 | W $S(DFN>0:$$NAMEFMT^XLFNAME(.EASNME,"O","M"),1:"TEST"),":" | 
|---|
| 56 | ;; | 
|---|
| 57 | ;  Print letter body | 
|---|
| 58 | S EASLIEN=$O(^EAS(713.3,"C",TYPE,0)) | 
|---|
| 59 | Q:'EASLIEN | 
|---|
| 60 | S EALNE=0 | 
|---|
| 61 | ; | 
|---|
| 62 | W ! | 
|---|
| 63 | F  S EALNE=$O(^EAS(713.3,EASLIEN,1,EALNE)) Q:'EALNE  D | 
|---|
| 64 | . S LINE=^EAS(713.3,EASLIEN,1,EALNE,0) | 
|---|
| 65 | . I LINE["|ANNVDT|" W !?TAB,$P(LINE,"|ANNVDT|",1),$$FMTE^XLFDT($$ADDLEAP^EASMTUTL(EASANV)),$P(LINE,"|ANNVDT|",2) Q | 
|---|
| 66 | . W !?TAB,LINE | 
|---|
| 67 | ; | 
|---|
| 68 | ; Retrieve division section of letter | 
|---|
| 69 | S EAFIEN=$O(^EAS(713.3,EASLIEN,2,"B",+EASFAC("FACNUM"),0)) | 
|---|
| 70 | ; | 
|---|
| 71 | I 'EAFIEN D  ; Print default signature block | 
|---|
| 72 | . N EAX,LINE | 
|---|
| 73 | . F EAX=1:1:9  D | 
|---|
| 74 | . . S LINE=$P($T(DEFSIG+EAX),";;",2) | 
|---|
| 75 | . . I LINE["|FAC|" W !?TAB,$P(LINE,"|FAC|",1),$S(EASFAC(100)]"":EASFAC(100),1:"VA Medical Center"),$P(LINE,"|FAC|",2) Q | 
|---|
| 76 | . . W !?TAB,LINE | 
|---|
| 77 | ; | 
|---|
| 78 | I EAFIEN D  ; Print division/facility signature block | 
|---|
| 79 | . S EALNE=0 | 
|---|
| 80 | . F  S EALNE=$O(^EAS(713.3,EASLIEN,2,EAFIEN,1,EALNE)) Q:'EALNE  D | 
|---|
| 81 | . . W !?TAB,^EAS(713.3,EASLIEN,2,EAFIEN,1,EALNE,0) | 
|---|
| 82 | ; | 
|---|
| 83 | W !!?TAB,"Enclosure" | 
|---|
| 84 | Q | 
|---|
| 85 | ; | 
|---|
| 86 | GETPAT(DFN,EASDEM,EASADD) ; Get patient information | 
|---|
| 87 | N VAROOT,VA | 
|---|
| 88 | ; | 
|---|
| 89 | ;; Patch 15, Generic test letter | 
|---|
| 90 | I DFN<0 D  Q | 
|---|
| 91 | . S EASDEM(1)="TEST LETTER (DO NOT MAIL!)" | 
|---|
| 92 | . S EASDEM(2)="6789" | 
|---|
| 93 | . S EASDEM(5)="M" | 
|---|
| 94 | . S EASADD(1)="THIS IS A TEST LETTER STREET ADDRESS" | 
|---|
| 95 | . S EASADD(2)="" | 
|---|
| 96 | . S EASADD(4)="ANYTOWN" | 
|---|
| 97 | . S EASADD(5)="36^NEW YORK" | 
|---|
| 98 | . S EASADD(11)="111110000^11111-0000" | 
|---|
| 99 | ;; End patch 15 | 
|---|
| 100 | ; | 
|---|
| 101 | S VAROOT="EASADD" | 
|---|
| 102 | D ADD^VADPT | 
|---|
| 103 | ; | 
|---|
| 104 | S VAROOT="EASDEM" | 
|---|
| 105 | D DEM^VADPT | 
|---|
| 106 | ; | 
|---|
| 107 | D PID^VADPT6 | 
|---|
| 108 | S EASDEM(2)=VA("BID") | 
|---|
| 109 | Q | 
|---|
| 110 | ; | 
|---|
| 111 | CHKADR(EASPTR) ; Check for valid address | 
|---|
| 112 | N EASADD,RSLT,DFN,VAROOT | 
|---|
| 113 | ; | 
|---|
| 114 | S DFN=$$GET1^DIQ(713.1,EASPTR,.01,"I") | 
|---|
| 115 | S RSLT=1 | 
|---|
| 116 | S VAROOT="EASADD" | 
|---|
| 117 | D ADD^VADPT | 
|---|
| 118 | ;; Check for valid mailing address | 
|---|
| 119 | I EASADD(1)]"",EASADD(4)]"",EASADD(5)]"",EASADD(11)]"" S RSLT=0 | 
|---|
| 120 | ;; Check for Bad Address Indicator | 
|---|
| 121 | S EASADD("BAI")=$$BADADR^DGUTL3(DFN),$P(EASADD("BAI"),U,2)=$$EXTERNAL^DILFD(2,.121,"",+EASADD("BAI")) | 
|---|
| 122 | S:'RSLT&(EASADD("BAI")) RSLT=1 | 
|---|
| 123 | D:RSLT ADRERR^EASMTUTL(.EASADD,DFN) | 
|---|
| 124 | Q $G(RSLT) | 
|---|
| 125 | ; | 
|---|
| 126 | DEFSIG ; Default closing and signature block | 
|---|
| 127 | ;;Thank you for your assistance and cooperation.  If you have any | 
|---|
| 128 | ;;questions or need assistance in the completion of the information | 
|---|
| 129 | ;;requested, please contact the |FAC| Business | 
|---|
| 130 | ;;Office between 8:00am and 4:00pm Monday through Friday. | 
|---|
| 131 | ;; | 
|---|
| 132 | ;;Sincerely, | 
|---|
| 133 | ;; | 
|---|
| 134 | ;; | 
|---|
| 135 | ;; | 
|---|