| 1 | ANRVAM1 ;MUSK/GLD,MFW,HCIOFO/NDH - VIST AMIS CALC ; 11 Apr 89 / 9:20 AM
 | 
|---|
| 2 |  ;;4.0; Visual Impairment Service Team ;**2**;12 Jun 98
 | 
|---|
| 3 | INTRO W @IOF,"I WILL PRINT THE AMIS REPORT FOR PERIOD SPECIFIED.",!!
 | 
|---|
| 4 |  ;ROUTINE TO CALCULATE ALL VIST AMIS DATA IN FILE BY AMIS CODE.
 | 
|---|
| 5 | BDATE S %DT="EXTA",%DT("A")="  BEGINNING AMIS DATE:  " D ^%DT Q:Y<0  S ANQBD=Y
 | 
|---|
| 6 | EDATE S %DT("A")="     ENDING AMIS DATE:  " D ^%DT Q:Y<0  S ANQED=Y
 | 
|---|
| 7 |  I ANQBD>ANQED  D  G INTRO
 | 
|---|
| 8 |  .W !!,"  Beginning Date greater than Ending Date"
 | 
|---|
| 9 |  .R X:5
 | 
|---|
| 10 | ASKMAIL ; Check to see if user wants to email this report
 | 
|---|
| 11 |  W !!!,"Do you want to email the AMIS report to the program office?(Y/N)"
 | 
|---|
| 12 |  D YN^DICN
 | 
|---|
| 13 |  I %=-1 Q
 | 
|---|
| 14 |  I %=0 W !,"Answer Y or N" G ASKMAIL
 | 
|---|
| 15 |  S ANQSEL=%
 | 
|---|
| 16 |  I ANQSEL=2 D DEVICE Q
 | 
|---|
| 17 |  F  D  Q:ANRVMHE="^"!(ANRVMHE?1.4N!(ANRVMHE?1.4N1"."1.2N))
 | 
|---|
| 18 |  .W !!,"Enter Average Man Hours Expensed by"
 | 
|---|
| 19 |  .W !,"VIST Coordinator Per Week or ^ to exit: "
 | 
|---|
| 20 |  .R ANRVMHE:30
 | 
|---|
| 21 |  .S:'$T ANRVMHE="^"
 | 
|---|
| 22 |  .Q:ANRVMHE="^"
 | 
|---|
| 23 |  .S:+ANRVMHE<1 ANRVMHE=""
 | 
|---|
| 24 |  .I ANRVMHE'?1.4N,ANRVMHE'?1.4N1"."1.2N  D
 | 
|---|
| 25 |  ..W !!,"Field 050 - Average Man Hours must be entered"
 | 
|---|
| 26 |  ..W !!,"Must be a number between 1 and 9999.99"
 | 
|---|
| 27 |  ..W !,"Up to 2 decimal precision is allowed."
 | 
|---|
| 28 |  .; Send mail to specified recipients
 | 
|---|
| 29 |  .S ANQMAIL=$$GETADDR()
 | 
|---|
| 30 |  .I ANQMAIL=""  D
 | 
|---|
| 31 |  ..W !,"No address is defined in your VIST SITE PARAMATERS"
 | 
|---|
| 32 |  ..W !,"  for the AMIS report.  The AMIS report will not be sent."
 | 
|---|
| 33 |  ..W !,"  Please enter the appropriate data or contact"
 | 
|---|
| 34 |  ..W !,"  your system administrator.",!!
 | 
|---|
| 35 |  ..S ANRVMHE="^"
 | 
|---|
| 36 |  D:ANRVMHE'="^" DQ
 | 
|---|
| 37 |  Q
 | 
|---|
| 38 | DEVICE K IOP S %ZIS="MQ",%ZIS("B")="" D ^%ZIS G:POP CLEAN
 | 
|---|
| 39 |  I $D(IO("Q"))  D  G CLEAN
 | 
|---|
| 40 |  .K IO("Q")
 | 
|---|
| 41 |  .S ZTSAVE("ANQ*")="",ZTDESC="VIST AMIS",ZTRTN="DQ^ANRVAM1"
 | 
|---|
| 42 |  .D ^%ZTLOAD
 | 
|---|
| 43 |  .K ZTSK
 | 
|---|
| 44 | DQ K ANRVBAD F ANQJ=0:1:49 S ^TMP("ANRV",$J,ANQJ)=0
 | 
|---|
| 45 |  D FV^ANRVAM2
 | 
|---|
| 46 |  S ANRVP=""
 | 
|---|
| 47 |  F  S ANRVP=$O(^ANRV(2040,"B",ANRVP)) Q:ANRVP=""  S ANRVIN="" D LOOP2
 | 
|---|
| 48 |  S ANRBD=(ANQBD-.01) D ^ANRVAM2 G CLOSE
 | 
|---|
| 49 | LOOP2 F  S ANRVIN=$O(^ANRV(2040,"B",ANRVP,ANRVIN)) Q:ANRVIN=""  D CALC
 | 
|---|
| 50 |  Q
 | 
|---|
| 51 | CALC ;
 | 
|---|
| 52 |  S VAL=""
 | 
|---|
| 53 |  I '$D(^ANRV(2040,ANRVIN,13)) S ANRVBAD(ANRVIN)="",VAL="" Q
 | 
|---|
| 54 |  S VAL=$P(^ANRV(2040,ANRVIN,13),"^",2)
 | 
|---|
| 55 |  I VAL="001" S ^TMP("ANRV",$J,1)=^TMP("ANRV",$J,1)+1 S VAL="" G CALC2
 | 
|---|
| 56 |  I VAL="002" S ^TMP("ANRV",$J,2)=^TMP("ANRV",$J,2)+1 Q
 | 
|---|
| 57 |  I VAL="003" S ^TMP("ANRV",$J,3)=^TMP("ANRV",$J,3)+1 Q
 | 
|---|
| 58 |  Q
 | 
|---|
| 59 | CALC2 S VAL=""
 | 
|---|
| 60 |  I $P(^ANRV(2040,ANRVIN,7),"^",3)'="" S VAL=$P(^ANRV(2040,ANRVIN,7),"^",3)
 | 
|---|
| 61 |  I VAL="004" S ^TMP("ANRV",$J,4)=^TMP("ANRV",$J,4)+1 G CALC3
 | 
|---|
| 62 |  I VAL="005" S ^TMP("ANRV",$J,5)=^TMP("ANRV",$J,5)+1 G CALC3
 | 
|---|
| 63 |  I VAL="006" S ^TMP("ANRV",$J,6)=^TMP("ANRV",$J,6)+1 G CALC3
 | 
|---|
| 64 |  I VAL="007" S ^TMP("ANRV",$J,7)=^TMP("ANRV",$J,7)+1 G CALC3
 | 
|---|
| 65 |  I VAL="008" S ^TMP("ANRV",$J,8)=^TMP("ANRV",$J,8)+1 G CALC3
 | 
|---|
| 66 | CALC3 S VAL=""
 | 
|---|
| 67 |  I $P(^ANRV(2040,ANRVIN,7),"^",4)'="" S VAL="",VAL=$P(^ANRV(2040,ANRVIN,7),"^",4)
 | 
|---|
| 68 |  I VAL="009" S ^TMP("ANRV",$J,9)=^TMP("ANRV",$J,9)+1 G CALC4
 | 
|---|
| 69 |  I VAL="010" S ^TMP("ANRV",$J,10)=^TMP("ANRV",$J,10)+1 G CALC4
 | 
|---|
| 70 |  I VAL="011" S ^TMP("ANRV",$J,11)=^TMP("ANRV",$J,11)+1 G CALC4
 | 
|---|
| 71 |  I VAL="012" S ^TMP("ANRV",$J,12)=^TMP("ANRV",$J,12)+1 G CALC4
 | 
|---|
| 72 |  I VAL="013" S ^TMP("ANRV",$J,13)=^TMP("ANRV",$J,13)+1 G CALC4
 | 
|---|
| 73 |  I VAL="014" S ^TMP("ANRV",$J,14)=^TMP("ANRV",$J,14)+1 G CALC4
 | 
|---|
| 74 |  I VAL="015" S ^TMP("ANRV",$J,15)=^TMP("ANRV",$J,15)+1 G CALC4
 | 
|---|
| 75 | CALC4 S VAL="",DFN=ANRVP
 | 
|---|
| 76 |  D ELIG^VADPT S:$D(VAEL(2)) VAL=$P(VAEL(2),"^")
 | 
|---|
| 77 |  I VAL=2 S ^TMP("ANRV",$J,16)=^TMP("ANRV",$J,16)+1 G CALC5
 | 
|---|
| 78 |  I VAL=4 S ^TMP("ANRV",$J,16)=^TMP("ANRV",$J,16)+1 G CALC5
 | 
|---|
| 79 |  I VAL=3 S ^TMP("ANRV",$J,17)=^TMP("ANRV",$J,17)+1 G CALC5
 | 
|---|
| 80 |  I VAL=1 S ^TMP("ANRV",$J,18)=^TMP("ANRV",$J,18)+1 G CALC5
 | 
|---|
| 81 |  I VAL=7 S ^TMP("ANRV",$J,19)=^TMP("ANRV",$J,19)+1 G CALC5
 | 
|---|
| 82 |  I VAL=6 S ^TMP("ANRV",$J,20)=^TMP("ANRV",$J,20)+1 G CALC5
 | 
|---|
| 83 |  I VAL=8 S ^TMP("ANRV",$J,20)=^TMP("ANRV",$J,20)+1 G CALC5
 | 
|---|
| 84 |  I VAL=9 S ^TMP("ANRV",$J,20)=^TMP("ANRV",$J,20)+1 G CALC5
 | 
|---|
| 85 |  I VAL=5 S ^TMP("ANRV",$J,20)=^TMP("ANRV",$J,20)+1 G CALC5
 | 
|---|
| 86 |  I VAL=121 S ^TMP("ANRV",$J,20)=^TMP("ANRV",$J,20)+1 G CALC5
 | 
|---|
| 87 |  S ^TMP("ANRV",$J,21)=^TMP("ANRV",$J,21)+1 G CALC5
 | 
|---|
| 88 | CALC5 S VAL=""
 | 
|---|
| 89 |  I $D(^ANRV(2040,ANRVIN,5)),$P(^ANRV(2040,ANRVIN,5),"^",1)'="" S VAL="",VAL=$P(^ANRV(2040,ANRVIN,5),"^",1)
 | 
|---|
| 90 |  I VAL="022" S ^TMP("ANRV",$J,22)=^TMP("ANRV",$J,22)+1 G CALC6
 | 
|---|
| 91 |  I VAL="023" S ^TMP("ANRV",$J,23)=^TMP("ANRV",$J,23)+1 G CALC6
 | 
|---|
| 92 |  I VAL="024" S ^TMP("ANRV",$J,24)=^TMP("ANRV",$J,24)+1 G CALC6
 | 
|---|
| 93 |  I VAL="025" S ^TMP("ANRV",$J,25)=^TMP("ANRV",$J,25)+1 G CALC6
 | 
|---|
| 94 | CALC6 S VAL="",VAL=$P(^DPT(ANRVP,0),"^",3) G:VAL="" CALC16
 | 
|---|
| 95 |  S VAL=$E(DT,1,3)-$E(VAL,1,3)-($E(DT,4,7)<$E(VAL,4,7))
 | 
|---|
| 96 |  I VAL<25 S ^TMP("ANRV",$J,26)=^TMP("ANRV",$J,26)+1 Q
 | 
|---|
| 97 |  I VAL<35,VAL>24 S ^TMP("ANRV",$J,27)=^TMP("ANRV",$J,27)+1 Q
 | 
|---|
| 98 |  I VAL<45,VAL>34 S ^TMP("ANRV",$J,28)=^TMP("ANRV",$J,28)+1 Q
 | 
|---|
| 99 |  I VAL<55,VAL>44 S ^TMP("ANRV",$J,29)=^TMP("ANRV",$J,29)+1 Q
 | 
|---|
| 100 |  I VAL<65,VAL>54 S ^TMP("ANRV",$J,30)=^TMP("ANRV",$J,30)+1 Q
 | 
|---|
| 101 |  I VAL<75,VAL>64 S ^TMP("ANRV",$J,31)=^TMP("ANRV",$J,31)+1 Q
 | 
|---|
| 102 |  I VAL<85,VAL>74 S ^TMP("ANRV",$J,32)=^TMP("ANRV",$J,32)+1 Q
 | 
|---|
| 103 |  I VAL>84 S ^TMP("ANRV",$J,33)=^TMP("ANRV",$J,33)+1 Q
 | 
|---|
| 104 | CALC16 S ^TMP("ANRV",$J,34)=^TMP("ANRV",$J,34)+1 Q
 | 
|---|
| 105 |  Q
 | 
|---|
| 106 | CLOSE ; Check if user wanted to send mail to DC
 | 
|---|
| 107 |  ; and complete report.
 | 
|---|
| 108 |  ;
 | 
|---|
| 109 |  I ANQSEL=2 D ^ANRVAP D:$O(ANRVBAD(0)) BADDAT
 | 
|---|
| 110 |  I $D(ANQMAIL)  D
 | 
|---|
| 111 |  .S ANQSUBJ="AMIS Report - "_^DD("SITE")
 | 
|---|
| 112 |  .S ANRVIMN=$$SEND(ANQMAIL,ANQSUBJ) ; Send data via email
 | 
|---|
| 113 |  .I ANRVIMN<1  D  Q
 | 
|---|
| 114 |  ..W !,"There was a problem sending the AMIS data.",!
 | 
|---|
| 115 |  .S X=$$SENDCONF(ANQMAIL,ANQSUBJ,ANRVIMN) ; Send confirmation message
 | 
|---|
| 116 |  .I X<1  D  Q
 | 
|---|
| 117 |  ..W !,"There was a problem sending the Confirmation Message"
 | 
|---|
| 118 |  ..W !,"back to your mailbox."
 | 
|---|
| 119 |  D ^%ZISC
 | 
|---|
| 120 | CLEAN ; Clean
 | 
|---|
| 121 |  I $D(ZTQUEUED) S ZTREQ="@" Q
 | 
|---|
| 122 |  K ANQBD,ANQED,ANRAS,ANRBD,ANRD,ANRDOD,ANRFVD,ANRND,ANRRD,ANRRFD
 | 
|---|
| 123 |  K ANRRN,ANRVBAD,ANRVIN,ANRVP,ANRP,VAL,QFLG,POP,J,I,DFN,ANQJ
 | 
|---|
| 124 |  K ANQMAIL,ANQSEL,ANRVDIR,ANRVGLB,ANQSUBJ,ANRVFILE,ARRAY
 | 
|---|
| 125 |  K ANRVIMN,ANRVSTR
 | 
|---|
| 126 |  K ^TMP("ANRV",$J),^TMP("ANRV","EMAIL",$J),^TMP("ANRV","CONFIRM",$J)
 | 
|---|
| 127 |  K VAEL,VAERR,DIRUT,DTOUT,DUOUT
 | 
|---|
| 128 |  Q
 | 
|---|
| 129 | BADDAT ;
 | 
|---|
| 130 |  S X="PATIENTS WITH MISSING AMIS DATA" W @IOF,!,?(IOM\2-($L(X)\2)),X
 | 
|---|
| 131 |  W ! F X=1:1:IOM W "="
 | 
|---|
| 132 |  W ! S I="" F  S I=$O(ANRVBAD(I)) Q:'I  S X=+^ANRV(2040,I,0) W $P(^DPT(X,0),U),?35,$P(^(0),U,9),!
 | 
|---|
| 133 |  Q
 | 
|---|
| 134 | SEND(ANQMAIL,ANQSUBJ) ; Send mail from ^TMP("ANRV","EMAIL",$J)
 | 
|---|
| 135 |  ; Send mail to defined recipient(s) in ANQMAIL
 | 
|---|
| 136 |  S XMSUB=ANQSUBJ,XMCHAN=1,XMDUZ=.5
 | 
|---|
| 137 |  D GET^XMA2
 | 
|---|
| 138 |  I XMZ<1  D  Q
 | 
|---|
| 139 |  .W !,"There was a problem obtaining an Internal Message Number."
 | 
|---|
| 140 |  D BUILD
 | 
|---|
| 141 |  S X=ANQMAIL,XMY(X)="",XMY(DUZ)=""
 | 
|---|
| 142 |  S XMTEXT="^TMP(""ANRV"",""EMAIL"",$J,"
 | 
|---|
| 143 |  D ^XMD
 | 
|---|
| 144 |  Q XMZ
 | 
|---|
| 145 |  ;
 | 
|---|
| 146 | SENDCONF(ANQMAIL,ANQSUBJ,ANRVIMN) ; Send Confirmation to User
 | 
|---|
| 147 |  ;
 | 
|---|
| 148 |  S XMSUB=ANQSUBJ,XMCHAN=1,XMDUZ=.5,XMY(DUZ)=""
 | 
|---|
| 149 |  D GET^XMA2
 | 
|---|
| 150 |  S X(1)="This is a confirmation that"
 | 
|---|
| 151 |  S X(2)="message # "_ANRVIMN_" "_ANQSUBJ
 | 
|---|
| 152 |  S X(3)="Has been sent to the Washington, DC"
 | 
|---|
| 153 |  S X(4)="distribution list "_$$GETADDR()_"."
 | 
|---|
| 154 |  S Y=""
 | 
|---|
| 155 |  F  S Y=$O(X(Y)) Q:Y=""  D
 | 
|---|
| 156 |  .S ^TMP("ANRV","CONFIRM",$J,Y)=X(Y)
 | 
|---|
| 157 |  S XMTEXT="^TMP(""ANRV"",""CONFIRM"",$J,"
 | 
|---|
| 158 |  D ^XMD
 | 
|---|
| 159 |  Q XMZ
 | 
|---|
| 160 | BUILD ; Build AMIS Report to ^TMP("ANRV","EMAIL",$J) to send as email
 | 
|---|
| 161 |  ; Build the Excel portion of the email
 | 
|---|
| 162 |  S L=1
 | 
|---|
| 163 |  S ^TMP("ANRV","EMAIL",$J,L)="~~VA~~",L=L+1
 | 
|---|
| 164 |  S ^TMP("ANRV","EMAIL",$J,L)=^DD("SITE"),L=L+1
 | 
|---|
| 165 |  S X=$O(^ANRV(2041,0))
 | 
|---|
| 166 |  S ^TMP("ANRV","EMAIL",$J,L)=$P(^ANRV(2041,X,0),U,2),L=L+1
 | 
|---|
| 167 |  S X=$$FMTE^XLFDT(ANQBD),Y=$$FMTE^XLFDT(ANQED)
 | 
|---|
| 168 |  S X1=$P(X," "),X2=$P($P(X," ",2),","),X=$P(X,",",2)
 | 
|---|
| 169 |  S X=X2_" "_X1_X
 | 
|---|
| 170 |  S Y1=$P(Y," "),Y2=$P($P(Y," ",2),","),Y=$P(Y,",",2)
 | 
|---|
| 171 |  S Y=Y2_" "_Y1_Y
 | 
|---|
| 172 |  S ^TMP("ANRV","EMAIL",$J,L)=X_","_Y,L=L+1
 | 
|---|
| 173 |  S (I,X)=""
 | 
|---|
| 174 |  S ANRVSTR=$O(^TMP("ANRV",$J,I)),I=ANRVSTR
 | 
|---|
| 175 |  F  S I=$O(^TMP("ANRV",$J,I)) Q:I=""  D
 | 
|---|
| 176 |  .S X=^TMP("ANRV",$J,I)
 | 
|---|
| 177 |  .S ANRVSTR=ANRVSTR_","_X
 | 
|---|
| 178 |  S ^TMP("ANRV","EMAIL",$J,L)=$P(ANRVSTR,",",1,5),L=L+1
 | 
|---|
| 179 |  S ^TMP("ANRV","EMAIL",$J,L)=$P(ANRVSTR,",",6,10),L=L+1
 | 
|---|
| 180 |  S ^TMP("ANRV","EMAIL",$J,L)=$P(ANRVSTR,",",11,15),L=L+1
 | 
|---|
| 181 |  S ^TMP("ANRV","EMAIL",$J,L)=$P(ANRVSTR,",",16,20),L=L+1
 | 
|---|
| 182 |  S ^TMP("ANRV","EMAIL",$J,L)=$P(ANRVSTR,",",21,25),L=L+1
 | 
|---|
| 183 |  S ^TMP("ANRV","EMAIL",$J,L)=$P(ANRVSTR,",",26,30),L=L+1
 | 
|---|
| 184 |  S ^TMP("ANRV","EMAIL",$J,L)=$P(ANRVSTR,",",31,35),L=L+1
 | 
|---|
| 185 |  S ^TMP("ANRV","EMAIL",$J,L)=$P(ANRVSTR,",",36,40),L=L+1
 | 
|---|
| 186 |  S ^TMP("ANRV","EMAIL",$J,L)=$P(ANRVSTR,",",41,45),L=L+1
 | 
|---|
| 187 |  S ^TMP("ANRV","EMAIL",$J,L)=$P(ANRVSTR,",",46,49)_","_ANRVMHE,L=L+1
 | 
|---|
| 188 |  Q
 | 
|---|
| 189 |  ;
 | 
|---|
| 190 | GETADDR() ; Get addresses for AMIS report from VIST Site Parameters
 | 
|---|
| 191 |  ;
 | 
|---|
| 192 |  N X
 | 
|---|
| 193 |  S X=$O(^ANRV(2041,0))
 | 
|---|
| 194 |  S Y=$P($G(^ANRV(2041,X,0)),U,5)
 | 
|---|
| 195 |  Q Y
 | 
|---|