| 1 | DVBAB82 ;ALB - CAPRI DVBA REPORTS;03/08/02 | 
|---|
| 2 | ;;2.7;AMIE;**42,90,100,119**;Apr 10, 1995;Build 10 | 
|---|
| 3 | Q | 
|---|
| 4 | ; | 
|---|
| 5 | START(MSG,RPID,PARM) ; CALLED BY REMOTE PROCEDURE DVBAB REPORTS | 
|---|
| 6 | ;Parameters | 
|---|
| 7 | ;============= | 
|---|
| 8 | ; MSG  : Output - ^TMP("DVBA",$J) | 
|---|
| 9 | ; RPID : Report Identification Number | 
|---|
| 10 | ; PARM : Input parameters separated by "^" | 
|---|
| 11 | ; | 
|---|
| 12 | N DVBHFS,DVBERR,DVBGUI,I | 
|---|
| 13 | K ^TMP("DVBA",$J) | 
|---|
| 14 | S DVBGUI=1,DVBERR=0,DVBHFS=$$HFS(),RPID=$G(RPID) | 
|---|
| 15 | I RPID<1!(RPID>9) S ^TMP("DVBA",$J,1)="0^Undefined Report ID" G END | 
|---|
| 16 | D HFSOPEN("DVBRP",DVBHFS,"W") I DVBERR G END | 
|---|
| 17 | I RPID=1 D CRMS G END | 
|---|
| 18 | I RPID=3 D CPRNT G END | 
|---|
| 19 | D CHECK I DVBERR G END | 
|---|
| 20 | I RPID=2 D CRRR G END | 
|---|
| 21 | I RPID=4 D CRPON G END | 
|---|
| 22 | I RPID=5 D CIRPT G END | 
|---|
| 23 | I RPID=6 D DSRP G END | 
|---|
| 24 | I RPID=7 D SDPP G END | 
|---|
| 25 | I RPID=8 D SPRPT G END | 
|---|
| 26 | I RPID=9 D VIEW | 
|---|
| 27 | ; | 
|---|
| 28 | END D HFSCLOSE("DVBRP",DVBHFS) | 
|---|
| 29 | S I=0 F  S I=$O(^TMP("DVBA",$J,1,I)) Q:'I  S ^TMP("DVBA",$J,1,I)=^TMP("DVBA",$J,1,I)_$C(13) S:^(I)["$END" ^(I)="" | 
|---|
| 30 | S MSG=$NA(^TMP("DVBA",$J)) | 
|---|
| 31 | Q | 
|---|
| 32 | CHECK ; VALIDATE INPUT PARAMETERS | 
|---|
| 33 | I $G(PARM)="" S DVBERR=1,^TMP("DVBA",$J,1)="0^Undefined Input Parameters" | 
|---|
| 34 | Q | 
|---|
| 35 | ; | 
|---|
| 36 | SDPP ; Report # 7 - Full (Patient Profile MAS) Report | 
|---|
| 37 | ;Parameters | 
|---|
| 38 | ;============= | 
|---|
| 39 | ; DFN : Patient Identification Number | 
|---|
| 40 | ; SDR : R/Range or A/All | 
|---|
| 41 | ; SDBD : Begining date | 
|---|
| 42 | ; SDED : Ending date | 
|---|
| 43 | ; SDP : Print the profile? 1 OR 0 | 
|---|
| 44 | ; SDTYP(2) : Print appointments? 1 OR 0 | 
|---|
| 45 | ; SDTYP(1) : Print add/edits? 1 or 0 | 
|---|
| 46 | ; SDTYP(4) : Print enrollments? 1 or 0 | 
|---|
| 47 | ; SDTYP(3) : Print dispositions? 1 OR 0 | 
|---|
| 48 | ; SDTYP(7) : Print team information? 1 OR 0 | 
|---|
| 49 | ; SDTYP(5) : Print means test? 1 OR 0 | 
|---|
| 50 | ; | 
|---|
| 51 | N SDTYP,SDBD,SDED,SDACT,SDPRINT,SDYES,SDRANGE,SDBEG,SDEN | 
|---|
| 52 | S DFN=$P(PARM,"^",1),SDR=$P(PARM,"^",2),SDBD=$P(PARM,"^",3),SDED=$P(PARM,"^",4) | 
|---|
| 53 | S SDP=$P(PARM,"^",5),SDTYP(2)=$P(PARM,"^",6),SDTYP(1)=$P(PARM,"^",7) | 
|---|
| 54 | S SDTYP(4)=$P(PARM,"^",8),SDTYP(3)=$P(PARM,"^",9),SDTYP(7)=$P(PARM,"^",10),SDTYP(5)=$P(PARM,"^",11) | 
|---|
| 55 | D VAL Q:DVBERR | 
|---|
| 56 | S SDACT="",(SDYES,SDRANGE,SDPRINT)=0 | 
|---|
| 57 | I SDR="R" S SDRANGE=1 | 
|---|
| 58 | I SDP=1 S SDYES=1,SDPRINT=1 | 
|---|
| 59 | I 'SDRANGE S (SDBD,SDBEG)=2800101,(SDED,SDEND)=$$ENDDT(),SDHDR=1 | 
|---|
| 60 | D ENS^%ZISS | 
|---|
| 61 | N SDYN,DVB S SDPRINT=1,DVB(1)=SDBD_";"_SDED,DVB(4)=DFN,DVB("FLDS")=1 | 
|---|
| 62 | ;I $$SDAPI^SDAMA301(.DVB)>0 D | 
|---|
| 63 | I $O(^DPT(DFN,"S",SDBD)) D | 
|---|
| 64 | . I SDTYP(2)=1 S SDTYP(2)="" Q | 
|---|
| 65 | . K SDTYP(2) | 
|---|
| 66 | IF $$EXOE^SDOE(DFN,SDBD,SDED) D | 
|---|
| 67 | . I SDTYP(1)=1 S SDTYP(1)="" Q | 
|---|
| 68 | . K SDTYP(1) | 
|---|
| 69 | I $D(^DPT(DFN,"DE")) D | 
|---|
| 70 | . I SDTYP(4)=1 S SDTYP(4)="",SDACT=0 Q | 
|---|
| 71 | . K SDTYP(4) | 
|---|
| 72 | I $D(^DPT(DFN,"DIS")),$S('SDRANGE:1,+$O(^("DIS",9999999-(SDED+.9)))&($O(^(9999999-(SDED+.9)))<(9999999-(SDBD-.1))):1,1:0) D | 
|---|
| 73 | . I SDTYP(3)=1 S SDTYP(3)="" Q | 
|---|
| 74 | . K SDTYP(3) | 
|---|
| 75 | S SDYN=$$LST^DGMTU(DFN) I SDYN D | 
|---|
| 76 | . I SDTYP(5)=1 S SDTYP(5)="" Q | 
|---|
| 77 | . K SDTYP(5) | 
|---|
| 78 | I SDTYP(7)=1 D | 
|---|
| 79 | . S SDTYP(7)="",GBL="^TMP(""SDPP"","_$J_")" Q | 
|---|
| 80 | . K SDTYP(7) | 
|---|
| 81 | D PRINT^SDPPRT | 
|---|
| 82 | K ^TMP($J,"SDAMA301") S VALMBCK="R" | 
|---|
| 83 | Q | 
|---|
| 84 | ENDDT() ;Calculate end date for "all" date | 
|---|
| 85 | N X S X=$O(^DPT(DFN,"S",""),-1) S:X<DT X=DT_.24 Q X | 
|---|
| 86 | ;N X,X1,X2,%H S X1=DT,X2=36600 | 
|---|
| 87 | ;D C^%DTC | 
|---|
| 88 | ;Q X_.24 | 
|---|
| 89 | ; | 
|---|
| 90 | VIEW ; Report # 9 - View Registration Data Report | 
|---|
| 91 | ; Parameters | 
|---|
| 92 | ; ========== | 
|---|
| 93 | ; DFN : Patient Identification Number | 
|---|
| 94 | ; | 
|---|
| 95 | U IO | 
|---|
| 96 | S DFN=$P(PARM,"^",1) | 
|---|
| 97 | D VAL Q:DVBERR | 
|---|
| 98 | D EN1^DGRP | 
|---|
| 99 | Q | 
|---|
| 100 | DSRP ; Report # 6 - Reprint a Notice of Discharge Report | 
|---|
| 101 | ; Parameters | 
|---|
| 102 | ; % : 1=Report on all veterans for a given day (BDATE required) | 
|---|
| 103 | ;   : 0=Report on a single Veteran (DFN required) | 
|---|
| 104 | ; BDATE : Original Processing Date - $H/FileMan | 
|---|
| 105 | ; DFN  : Patient Identification Number | 
|---|
| 106 | ; | 
|---|
| 107 | N %,BDATE,DFN,DFNIEN | 
|---|
| 108 | S %=$P(PARM,"^",1),BDATE=$P(PARM,"^",2),DFN=$P(PARM,"^",3),DFNIEN="" | 
|---|
| 109 | I BDATE="" S DVBERR=1,^TMP("DVBA",$J,1)="0^Incorrect Date"  Q | 
|---|
| 110 | D DUZ2^DVBAUTIL | 
|---|
| 111 | U IO | 
|---|
| 112 | D VAL Q:DVBERR | 
|---|
| 113 | I %=1 D  Q | 
|---|
| 114 | . S HD="SINGLE NOTICE OF DISCHARGE REPRINTING" | 
|---|
| 115 | . D NOPARM^DVBAUTL2 G:$D(DVBAQUIT) KILL^DVBAUTIL S DTAR=^DVB(396.1,1,0),FDT(0)=$$FMTE^XLFDT(DT,"5DZ") | 
|---|
| 116 | . S HEAD="NOTICE OF DISCHARGE",HEAD1="FOR "_$P(DTAR,U,1)_" ON "_FDT(0) | 
|---|
| 117 | . I $D(^DVB(396.2,"B",DFN)) D | 
|---|
| 118 | . . S DFNIEN=$O(^DVB(396.2,"B",DFN,DFNIEN)),ADM=$P(^DVB(396.2,DFNIEN,0),U,3) | 
|---|
| 119 | . . I $D(^DGPM(+ADM,0)),$P(^(0),U,17)]"" S DCHPTR=$P(^DGPM(+ADM,0),U,17),DISCH=$S($P(^DGPM(DCHPTR,0),U,1)]"":$P(^(0),U,1),1:"") W ?($X+5),"Discharge date: ",$$FMTE^XLFDT(DISCH,"5DZ") | 
|---|
| 120 | . . I $P(^DVB(396.2,DFNIEN,0),U,7)'=DVBAD2 W *7,!!,"This does not belong to your RO.",!! H 3 Q | 
|---|
| 121 | . . I DFNIEN>0 S XDA=DFNIEN,DA=$P(^DVB(396.2,DFNIEN,0),U,1),ADMDT=$P(^DVB(396.2,DFNIEN,0),U,2),MB=$P(^(0),U,3) | 
|---|
| 122 | . . D REPRINT^DVBADSNT | 
|---|
| 123 | D DEQUE^DVBADSRP | 
|---|
| 124 | Q | 
|---|
| 125 | ; | 
|---|
| 126 | SPRPT ; Report # 8 - OP(Operation Report) | 
|---|
| 127 | ;Parameters | 
|---|
| 128 | ;============= | 
|---|
| 129 | ; DFN : Patient Identification Number | 
|---|
| 130 | ; SRTN : Select Operation | 
|---|
| 131 | ; | 
|---|
| 132 | N DFN,SRTN,MAGTMPR2,SRSITE | 
|---|
| 133 | I $O(^SRO(133,1))'="B" S SRSITE=1 | 
|---|
| 134 | S DFN=$P(PARM,"^",1),SRTN=$P(PARM,"^",2),MAGTMPR2=1 | 
|---|
| 135 | D VAL Q:DVBERR | 
|---|
| 136 | D ^SROPRPT | 
|---|
| 137 | Q | 
|---|
| 138 | ; | 
|---|
| 139 | CRPON ; Report # - 4 Reprint C&P Final Report | 
|---|
| 140 | ;Parameters | 
|---|
| 141 | ;============= | 
|---|
| 142 | ; RTYPE : Select Reprint Option (D)ate or (V)eteran | 
|---|
| 143 | ; RUNDATE : ORIGINAL PROCESSING date | 
|---|
| 144 | ; ANS : Reprinted by the RO or MAS | 
|---|
| 145 | ; % : LAB 1 OR 0 | 
|---|
| 146 | ; DA(1) : Patient IEN for lab results | 
|---|
| 147 | ; DFN  : Patient Identification Number | 
|---|
| 148 | ; | 
|---|
| 149 | U IO | 
|---|
| 150 | N ONE | 
|---|
| 151 | S RTYPE=$P(PARM,"^",1),RUNDATE=$P(PARM,"^",2),ANS=$P(PARM,"^",3),%=$P(PARM,"^",4),DA(1)=$P(PARM,"^",5),DFN=$P(PARM,"^",6),DA=DA(1) | 
|---|
| 152 | I RTYPE="V" D VAL Q:DVBERR | 
|---|
| 153 | S XDD=^DD("DD"),$P(ULINE,"_",70)="_",ONE="N",Y=DT | 
|---|
| 154 | X XDD S HD="Reprint C & P Exams",SUPER=0 | 
|---|
| 155 | I $D(^XUSEC("DVBA C SUPERVISOR",DUZ)) S SUPER=1 | 
|---|
| 156 | S DVBCDT(0)=Y,PGHD="Compensation and Pension Exam Report",LOC=DUZ(2),PG=0,DVBCSITE=$S($D(^DVB(396.1,1,0)):$P(^(0),U,1),1:"Not specified") | 
|---|
| 157 | I "^D^V^"'[RTYPE S DVBERR=1,^TMP("DVBA",$J,1)="0^Incorrect Data Type" Q | 
|---|
| 158 | I ANS="R" K AUTO | 
|---|
| 159 | I ANS="M" S AUTO=1 | 
|---|
| 160 | I "^M^R^"'[ANS S DVBERR=1,^TMP("DVBA",$J,1)="0^Incorrect Data Type" Q | 
|---|
| 161 | I RTYPE="D" D GO^DVBCRPRT Q | 
|---|
| 162 | I RTYPE="V" D | 
|---|
| 163 | . S ONE="Y",RO=$P(^DVB(396.3,DA,0),U,3) | 
|---|
| 164 | . I RO'=DUZ(2)&('$D(AUTO))&(SUPER=0) W !!,*7,"Those results do not belong to your office.",!! Q | 
|---|
| 165 | . I RO=DUZ(2)&('$D(AUTO))&("RC"'[($P(^DVB(396.3,DA,0),U,18))) W *7,!!,"This request has not been released to the Regional Office yet.",!! Q | 
|---|
| 166 | . S PRTDATE=$P(^DVB(396.3,DA,0),U,16) I PRTDATE="" W *7,!!,"This has never been printed.",!! I SUPER=0 S OUT=1 Q | 
|---|
| 167 | . I %=1 D REN2^DVBCLABR Q | 
|---|
| 168 | . ;D OV^DVBCRPON | 
|---|
| 169 | . K DVBAON2 D SETLAB^DVBCPRNT,VARS^DVBCUTIL,STEP2^DVBCRPRT | 
|---|
| 170 | Q | 
|---|
| 171 | ; | 
|---|
| 172 | CIRPT ; Report # 5 - Insufficient Exam Report | 
|---|
| 173 | ;Parameters | 
|---|
| 174 | ;============= | 
|---|
| 175 | ; RPTTYPE : D/Detailed or S/Summary | 
|---|
| 176 | ; BEGDT : Beginning date $H/FileMan | 
|---|
| 177 | ; ENDDT : Ending date $H/FileMan | 
|---|
| 178 | ; RESANS : Insufficient Reason | 
|---|
| 179 | ; | 
|---|
| 180 | U IO | 
|---|
| 181 | S RPTTYPE=$P(PARM,"^",1),BEGDT=$P(PARM,"^",2),ENDDT=$P(PARM,"^",3),RESANS=$P(PARM,"^",4) | 
|---|
| 182 | I RPTTYPE="S" D SUM^DVBCIRPT Q | 
|---|
| 183 | I RPTTYPE="D" D | 
|---|
| 184 | . I RESANS="" S Y=-1 D INREAS | 
|---|
| 185 | . I '$D(DVBAARY("REASON")) S DVBAQTSL="" | 
|---|
| 186 | . S DVBCYQ="" | 
|---|
| 187 | . I RESANS'="" S Y=RESANS D INREAS | 
|---|
| 188 | . K DTOUT,DUOUT | 
|---|
| 189 | . S Y=-1 D EXMTPE,DETAIL^DVBCIRP1 | 
|---|
| 190 | Q | 
|---|
| 191 | ; | 
|---|
| 192 | EXMTPE ; | 
|---|
| 193 | N YSAVE,DVBAXIFN | 
|---|
| 194 | S YSAVE=Y | 
|---|
| 195 | F DVBAXIFN=0:0 S DVBAXIFN=$O(^DVB(396.6,DVBAXIFN)) Q:+DVBAXIFN=0  DO | 
|---|
| 196 | . S ^TMP($J,"XMTYPE",DVBAXIFN)="" | 
|---|
| 197 | S Y=-1 | 
|---|
| 198 | I +YSAVE>0 S ^TMP($J,"XMTYPE",+YSAVE)="" | 
|---|
| 199 | S Y=YSAVE | 
|---|
| 200 | Q | 
|---|
| 201 | INREAS ; | 
|---|
| 202 | N YSAVE,DVBXIFN | 
|---|
| 203 | S YSAVE=Y | 
|---|
| 204 | F DVBAXIFN=0:0 S DVBAXIFN=$O(^DVB(396.94,DVBAXIFN)) Q:+DVBAXIFN=0  DO | 
|---|
| 205 | . S DVBAARY("REASON",DVBAXIFN)="" | 
|---|
| 206 | S Y=-1 | 
|---|
| 207 | I +YSAVE>0 S DVBAARY("REASON",+YSAVE)="" | 
|---|
| 208 | S Y=YSAVE | 
|---|
| 209 | Q | 
|---|
| 210 | ; | 
|---|
| 211 | CRMS ; Report # 1 - Regional Office 21- day Certificate Printing Report. | 
|---|
| 212 | ; No Parameters | 
|---|
| 213 | ; | 
|---|
| 214 | U IO | 
|---|
| 215 | D ^DVBACRMS | 
|---|
| 216 | Q | 
|---|
| 217 | ; | 
|---|
| 218 | CRRR ; Report # 2 - Reprint a 21 - day Certificate for the RO | 
|---|
| 219 | ;Parameters | 
|---|
| 220 | ;============= | 
|---|
| 221 | ; DVBSEL : Select one of the following: | 
|---|
| 222 | ;       N         Patient Name | 
|---|
| 223 | ;       D         ORIGINAL PROCESSING DATE | 
|---|
| 224 | ; SDATE : ORIGINAL PROCESSING date - $H/FileMan | 
|---|
| 225 | ; XDA : Patient IEN | 
|---|
| 226 | ; | 
|---|
| 227 | U IO | 
|---|
| 228 | S DVBSEL=$P(PARM,"^",1),SDATE=$P(PARM,"^",2),XDA=$P(PARM,"^",3) | 
|---|
| 229 | I "^D^N^"'[DVBSEL S DVBERR=1,^TMP("DVBA",$J,1)="0^Incorrect Data Type" Q | 
|---|
| 230 | I DVBSEL="D" D  I DVBERR Q | 
|---|
| 231 | . I SDATE="" S DVBERR=1,^TMP("DVBA",$J,1)="0^Undefined Date" Q | 
|---|
| 232 | . S %DT="X" S X=SDATE D ^%DT I Y<0 D  Q | 
|---|
| 233 | . . S DVBERR=1,^TMP("DVBA",$J,1)="0^Incorrect Date Format" | 
|---|
| 234 | I DVBSEL="N" D  I DVBERR Q | 
|---|
| 235 | . I XDA="" S DVBERR=1,^TMP("DVBA",$J,1)="0^Undefined Patient IEN" Q | 
|---|
| 236 | . S DIC=2,DIC(0)="NZX",X=XDA D ^DIC I Y<0 D  I DVBERR Q | 
|---|
| 237 | . . S DVBERR=1,^TMP("DVBA",$J,1)="0^Invalid Patient Name." | 
|---|
| 238 | . S DFN=XDA | 
|---|
| 239 | D INIT^DVBACRRR I 'CONT Q | 
|---|
| 240 | D HDR^DVBACRRR,DATA^DVBACRRR | 
|---|
| 241 | Q | 
|---|
| 242 | ; | 
|---|
| 243 | CPRNT ; Report # 3 - Print C&P Final Report (manual) Report | 
|---|
| 244 | ; No Parameters | 
|---|
| 245 | ; | 
|---|
| 246 | S XDD=^DD("DD"),$P(ULINE,"_",70)="_",Y=DT | 
|---|
| 247 | X XDD S DVBCDT(0)=Y,PGHD="Compensation and Pension Exam Report",DVBCSITE=$S($D(^DVB(396.1,1,0)):$P(^(0),U,1),1:"Not Specified") | 
|---|
| 248 | D GO^DVBCPRNT | 
|---|
| 249 | Q | 
|---|
| 250 | VAL ; VALIDATE PATIENT | 
|---|
| 251 | I $G(DFN)="" S DVBERR=1,^TMP("DVBA",$J,1)="0^Undefined Patient IEN" G END | 
|---|
| 252 | S DIC=2,DIC(0)="NZX",X=DFN D ^DIC | 
|---|
| 253 | I Y<0 S DVBERR=1,^TMP("DVBA",$J,1)="0^Invalid Patient Name." G END | 
|---|
| 254 | Q | 
|---|
| 255 | ; | 
|---|
| 256 | HFS() ; -- get hfs file name | 
|---|
| 257 | N H | 
|---|
| 258 | S H=$H | 
|---|
| 259 | Q "DVBA_"_$J_"_"_$P(H,",")_"_"_$P(H,",",2)_".DAT" | 
|---|
| 260 | ; | 
|---|
| 261 | HFSOPEN(HANDLE,DVBHFS,DVBMODE) ; Open File | 
|---|
| 262 | S DVBDIRY=$$GET^XPAR("DIV","DVB HFS SCRATCH") | 
|---|
| 263 | ;I DVBDIRY="" S ECERR=1 D  Q | 
|---|
| 264 | ;. S ^TMP("DVBA",$J,1)="0^A scratch directory for reports doesn't exist" | 
|---|
| 265 | D OPEN^%ZISH(HANDLE,,DVBHFS,$G(DVBMODE,"W")) D:POP  Q:POP | 
|---|
| 266 | .S DVBERR=1,^TMP("DVBA",$J,1)="0^Unable to open file " | 
|---|
| 267 | Q | 
|---|
| 268 | ; | 
|---|
| 269 | HFSCLOSE(HANDLE,DVBHFS) ;Close HFS and unload data | 
|---|
| 270 | N DVBDEL,X,%ZIS | 
|---|
| 271 | D CLOSE^%ZISH(HANDLE) | 
|---|
| 272 | S ROOT=$NA(^TMP("DVBA",$J,1)),DVBDEL(DVBHFS)="" | 
|---|
| 273 | K @ROOT | 
|---|
| 274 | S X=$$FTG^%ZISH(,DVBHFS,$NA(@ROOT@(1)),4) | 
|---|
| 275 | S X=$$DEL^%ZISH(,$NA(DVBDEL)) | 
|---|
| 276 | Q | 
|---|