| 1 | PRCHLO4 ;WOIFO/RLL/DAP-EXTRACT ROUTINE CLO REPORT SERVER ; 10/16/06 2:10pm | 
|---|
| 2 | V ;;5.1;IFCAP;**83,98**; Oct 20, 2000;Build 37 | 
|---|
| 3 | ;Per VHA Directive 2004-038, this routine should not be modified. | 
|---|
| 4 | ; Continuation of PRCHLO3 | 
|---|
| 5 | ; | 
|---|
| 6 | ; PRCHLO3 routines are used to Write out the Header and data | 
|---|
| 7 | ; associated with each of the 19 tables created for the Clinical | 
|---|
| 8 | ; logistics Report Server. The files are built from the extracts | 
|---|
| 9 | ; located in the ^TMP($J) global. | 
|---|
| 10 | ; | 
|---|
| 11 | Q | 
|---|
| 12 | GETDIR ; Get directory from System parameter for CLRS | 
|---|
| 13 | S FILEDIR=$$GET^XPAR("SYS","PRCPLO EXTRACT DIRECTORY",1,"Q") | 
|---|
| 14 | ; | 
|---|
| 15 | Q | 
|---|
| 16 | CLRSFIL ; Create output files for CLRS | 
|---|
| 17 | N FILEDIR | 
|---|
| 18 | S FILEDIR=$$GET^XPAR("SYS","PRCPLO EXTRACT DIRECTORY",1,"Q") | 
|---|
| 19 | ; GET station id | 
|---|
| 20 | N STID | 
|---|
| 21 | ; S STID=$G(^DD("SITE",1)) Old call | 
|---|
| 22 | S STID=$$GET1^DIQ(4,$$KSP^XUPARAM("INST")_",",99) | 
|---|
| 23 | TSTFIL ; Test entry point | 
|---|
| 24 | ; | 
|---|
| 25 | D POMASTF  ; Po Master Data | 
|---|
| 26 | D POOBF  ; Po Obligation Data | 
|---|
| 27 | D POMETHF  ; PO Method of Purchase Data | 
|---|
| 28 | D PODISCF  ; PO Discount Data | 
|---|
| 29 | D POITMF  ; Po Item Data | 
|---|
| 30 | D POITIVF  ; PO Item Inventory Point Data | 
|---|
| 31 | D POITDRF  ; PO Item Desc Data | 
|---|
| 32 | D PODSCF  ; PO Description | 
|---|
| 33 | D POPRTF  ; PO Partial Data | 
|---|
| 34 | D PO2237F  ; PO 2237 data | 
|---|
| 35 | D POBOCF  ; PO BOC Data | 
|---|
| 36 | D POCOMF  ; PO Comments data | 
|---|
| 37 | D POREMF  ; PO Remarks data | 
|---|
| 38 | D POPPTF  ; PO Prompt Payment Terms data | 
|---|
| 39 | D POAMTF  ; PO Amount data | 
|---|
| 40 | D POAMDF  ; PO Amendment Data | 
|---|
| 41 | D POAMDCF  ; PO Amendment Changes Data | 
|---|
| 42 | D POAMDDF  ; PO Amendment Description Data | 
|---|
| 43 | D POAMBKF  ; PO Amount Breakout Code Data | 
|---|
| 44 | GIPBL1 ; GIP REPORTS | 
|---|
| 45 | D BLDGP1^PRCPLO3 | 
|---|
| 46 | D BLDGP2^PRCPLO3 | 
|---|
| 47 | Q | 
|---|
| 48 | POMASTF ; Save PO Master table data to a file to FTP to report Server | 
|---|
| 49 | ; build file name | 
|---|
| 50 | N OUTFIL1 | 
|---|
| 51 | S OUTFIL1="IFCP"_STID_"F1.TXT" | 
|---|
| 52 | D OPEN^%ZISH("FILE1",FILEDIR,OUTFIL1,"W")  ; Open the file | 
|---|
| 53 | D USE^%ZISUTL("FILE1")  ; Use the file as the output device | 
|---|
| 54 | D POMASTH^PRCHLO3   ; Write the Header to the file | 
|---|
| 55 | D POMASTW^PRCHLO3   ; Write the data to the file | 
|---|
| 56 | D CLOSE^%ZISH("FILE1")  ; Close the file | 
|---|
| 57 | Q | 
|---|
| 58 | POOBF ; Create flat file for PO OBLIGATION DATA | 
|---|
| 59 | N OUTFIL2 | 
|---|
| 60 | S OUTFIL2="IFCP"_STID_"F2.TXT" | 
|---|
| 61 | D OPEN^%ZISH("FILE1",FILEDIR,OUTFIL2,"W")  ; Open the file | 
|---|
| 62 | D USE^%ZISUTL("FILE1")  ; Use the file as the output device | 
|---|
| 63 | D POOBHD^PRCHLO3 | 
|---|
| 64 | D POOBW^PRCHLO3 | 
|---|
| 65 | D CLOSE^%ZISH("FILE1")  ; Close the file | 
|---|
| 66 | Q | 
|---|
| 67 | POMETHF ; Create flat for for Purchase Order Method | 
|---|
| 68 | N OUTFIL3 | 
|---|
| 69 | S OUTFIL3="IFCP"_STID_"F3.TXT" | 
|---|
| 70 | D OPEN^%ZISH("FILE1",FILEDIR,OUTFIL3,"W")  ; Open the file | 
|---|
| 71 | D USE^%ZISUTL("FILE1")  ; Use the file as the output device | 
|---|
| 72 | D POPMEH^PRCHLO3 | 
|---|
| 73 | D POPMEW^PRCHLO3 | 
|---|
| 74 | D CLOSE^%ZISH("FILE1")  ; Close the file | 
|---|
| 75 | Q | 
|---|
| 76 | PODISCF ; Create flat file for Purchase Order Discount | 
|---|
| 77 | N OUTFIL4 | 
|---|
| 78 | S OUTFIL4="IFCP"_STID_"F4.TXT" | 
|---|
| 79 | D OPEN^%ZISH("FILE1",FILEDIR,OUTFIL4,"W")  ; Open the file | 
|---|
| 80 | D USE^%ZISUTL("FILE1") | 
|---|
| 81 | D PODISCH^PRCHLO1 | 
|---|
| 82 | D PODISCW^PRCHLO1 | 
|---|
| 83 | D CLOSE^%ZISH("FILE1") | 
|---|
| 84 | Q | 
|---|
| 85 | POITMF ; Create flat file for PO Item data | 
|---|
| 86 | N OUTFIL5 | 
|---|
| 87 | S OUTFIL5="IFCP"_STID_"F5.TXT" | 
|---|
| 88 | D OPEN^%ZISH("FILE1",FILEDIR,OUTFIL5,"W")  ; Open the file | 
|---|
| 89 | D USE^%ZISUTL("FILE1") | 
|---|
| 90 | D POITEMH^PRCHLO2 | 
|---|
| 91 | D POITEMW^PRCHLO2 | 
|---|
| 92 | D CLOSE^%ZISH("FILE1") | 
|---|
| 93 | Q | 
|---|
| 94 | POITIVF ; Create flat file for PO Item inv. point data | 
|---|
| 95 | N OUTFIL6 | 
|---|
| 96 | S OUTFIL6="IFCP"_STID_"F6.TXT" | 
|---|
| 97 | D OPEN^%ZISH("FILE1",FILEDIR,OUTFIL6,"W")  ; Open the file | 
|---|
| 98 | D USE^%ZISUTL("FILE1") | 
|---|
| 99 | D POITLNH^PRCHLO2 | 
|---|
| 100 | D POITLNW^PRCHLO2 | 
|---|
| 101 | D CLOSE^%ZISH("FILE1") | 
|---|
| 102 | Q | 
|---|
| 103 | POITDRF ; Create flat file for PO Item date received | 
|---|
| 104 | N OUTFIL7 | 
|---|
| 105 | S OUTFIL7="IFCP"_STID_"F7.TXT" | 
|---|
| 106 | D OPEN^%ZISH("FILE1",FILEDIR,OUTFIL7,"W")  ; Open the file | 
|---|
| 107 | D USE^%ZISUTL("FILE1") | 
|---|
| 108 | D POITDRCH^PRCHLO2 | 
|---|
| 109 | D POITDRCW^PRCHLO2 | 
|---|
| 110 | D CLOSE^%ZISH("FILE1") | 
|---|
| 111 | Q | 
|---|
| 112 | PODSCF ; Create flat file for PO item description | 
|---|
| 113 | N OUTFIL8 | 
|---|
| 114 | S OUTFIL8="IFCP"_STID_"F8.TXT" | 
|---|
| 115 | D OPEN^%ZISH("FILE1",FILEDIR,OUTFIL8,"W")  ; Open the file | 
|---|
| 116 | D USE^%ZISUTL("FILE1") | 
|---|
| 117 | D POITDSH^PRCHLO2 | 
|---|
| 118 | D POITDSW^PRCHLO2 | 
|---|
| 119 | D CLOSE^%ZISH("FILE1") | 
|---|
| 120 | Q | 
|---|
| 121 | POPRTF ; Create flat file for PO Partial data | 
|---|
| 122 | N OUTFIL9 | 
|---|
| 123 | S OUTFIL9="IFCP"_STID_"F9.TXT" | 
|---|
| 124 | D OPEN^%ZISH("FILE1",FILEDIR,OUTFIL9,"W")  ; Open the file | 
|---|
| 125 | D USE^%ZISUTL("FILE1") | 
|---|
| 126 | D POPART^PRCHLO3 | 
|---|
| 127 | D POPARTW^PRCHLO3 | 
|---|
| 128 | D CLOSE^%ZISH("FILE1") | 
|---|
| 129 | Q | 
|---|
| 130 | PO2237F ; Create flat file for 2237 data | 
|---|
| 131 | N OUTFIL10 | 
|---|
| 132 | S OUTFIL10="IFCP"_STID_"F10.TXT" | 
|---|
| 133 | D OPEN^%ZISH("FILE1",FILEDIR,OUTFIL10,"W")  ; Open the file | 
|---|
| 134 | D USE^%ZISUTL("FILE1") | 
|---|
| 135 | D PO2237H^PRCHLO3 | 
|---|
| 136 | D PO2237W^PRCHLO3 | 
|---|
| 137 | D CLOSE^%ZISH("FILE1") | 
|---|
| 138 | Q | 
|---|
| 139 | POBOCF ; Create flat file for PO BOC data | 
|---|
| 140 | N OUTFIL11 | 
|---|
| 141 | S OUTFIL11="IFCP"_STID_"F11.TXT" | 
|---|
| 142 | D OPEN^%ZISH("FILE1",FILEDIR,OUTFIL11,"W") | 
|---|
| 143 | D USE^%ZISUTL("FILE1") | 
|---|
| 144 | D POBOCH^PRCHLO3 | 
|---|
| 145 | D POBOCW^PRCHLO3 | 
|---|
| 146 | D CLOSE^%ZISH("FILE1") | 
|---|
| 147 | Q | 
|---|
| 148 | POCOMF ; Create flat file for PO Comments | 
|---|
| 149 | N OUTFIL12 | 
|---|
| 150 | S OUTFIL12="IFCP"_STID_"F12.TXT" | 
|---|
| 151 | D OPEN^%ZISH("FILE1",FILEDIR,OUTFIL12,"W") | 
|---|
| 152 | D USE^%ZISUTL("FILE1") | 
|---|
| 153 | D POCMTSH^PRCHLO3 | 
|---|
| 154 | D POCMTSW^PRCHLO3 | 
|---|
| 155 | D CLOSE^%ZISH("FILE1") | 
|---|
| 156 | Q | 
|---|
| 157 | POREMF ; Create flat file for PO Remarks | 
|---|
| 158 | N OUTFIL13 | 
|---|
| 159 | S OUTFIL13="IFCP"_STID_"F13.TXT" | 
|---|
| 160 | D OPEN^%ZISH("FILE1",FILEDIR,OUTFIL13,"W") | 
|---|
| 161 | D USE^%ZISUTL("FILE1") | 
|---|
| 162 | D PORMKH^PRCHLO3 | 
|---|
| 163 | D PORMKW^PRCHLO3 | 
|---|
| 164 | D CLOSE^%ZISH("FILE1") | 
|---|
| 165 | Q | 
|---|
| 166 | POPPTF ; Create flat file for PO Prompt payment terms data | 
|---|
| 167 | N OUTFIL14 | 
|---|
| 168 | S OUTFIL14="IFCP"_STID_"F14.TXT" | 
|---|
| 169 | D OPEN^%ZISH("FILE1",FILEDIR,OUTFIL14,"W") | 
|---|
| 170 | D USE^%ZISUTL("FILE1") | 
|---|
| 171 | D POPPTH^PRCHLO3 | 
|---|
| 172 | D POPPTW^PRCHLO3 | 
|---|
| 173 | D CLOSE^%ZISH("FILE1") | 
|---|
| 174 | Q | 
|---|
| 175 | POAMTF ; Create flat file for PO Amount data | 
|---|
| 176 | N OUTFIL15 | 
|---|
| 177 | S OUTFIL15="IFCP"_STID_"F15.TXT" | 
|---|
| 178 | D OPEN^%ZISH("FILE1",FILEDIR,OUTFIL15,"W") | 
|---|
| 179 | D USE^%ZISUTL("FILE1") | 
|---|
| 180 | D POAMTH^PRCHLO3 | 
|---|
| 181 | D POAMTW^PRCHLO3 | 
|---|
| 182 | D CLOSE^%ZISH("FILE1") | 
|---|
| 183 | Q | 
|---|
| 184 | POAMDF ; Create flat file for PO Amendment data | 
|---|
| 185 | N OUTFIL16 | 
|---|
| 186 | S OUTFIL16="IFCP"_STID_"F16.TXT" | 
|---|
| 187 | D OPEN^%ZISH("FILE1",FILEDIR,OUTFIL16,"W") | 
|---|
| 188 | D USE^%ZISUTL("FILE1") | 
|---|
| 189 | D POAMDH^PRCHLO3 | 
|---|
| 190 | D POAMDW^PRCHLO3 | 
|---|
| 191 | D CLOSE^%ZISH("FILE1") | 
|---|
| 192 | Q | 
|---|
| 193 | POAMDCF ; Create flat file for PO Amendment changes | 
|---|
| 194 | N OUTFIL17 | 
|---|
| 195 | S OUTFIL17="IFCP"_STID_"F17.TXT" | 
|---|
| 196 | D OPEN^%ZISH("FILE1",FILEDIR,OUTFIL17,"W") | 
|---|
| 197 | D USE^%ZISUTL("FILE1") | 
|---|
| 198 | D POAMDCH^PRCHLO3 | 
|---|
| 199 | D POAMDCW^PRCHLO3 | 
|---|
| 200 | D CLOSE^%ZISH("FILE1") | 
|---|
| 201 | Q | 
|---|
| 202 | POAMDDF ; Create flat file for PO Amendment Desc data | 
|---|
| 203 | N OUTFIL18 | 
|---|
| 204 | S OUTFIL18="IFCP"_STID_"F18.TXT" | 
|---|
| 205 | D OPEN^%ZISH("FILE1",FILEDIR,OUTFIL18,"W") | 
|---|
| 206 | D USE^%ZISUTL("FILE1") | 
|---|
| 207 | D PAMDDH^PRCHLO3 | 
|---|
| 208 | D PAMDDW^PRCHLO3 | 
|---|
| 209 | D CLOSE^%ZISH("FILE1") | 
|---|
| 210 | Q | 
|---|
| 211 | POAMBKF ; Create flat file for PO amount breakout code | 
|---|
| 212 | N OUTFIL19 | 
|---|
| 213 | S OUTFIL19="IFCP"_STID_"F19.TXT" | 
|---|
| 214 | D OPEN^%ZISH("FILE1",FILEDIR,OUTFIL19,"W") | 
|---|
| 215 | D USE^%ZISUTL("FILE1") | 
|---|
| 216 | D PAMTBKH^PRCHLO3 | 
|---|
| 217 | D PAMTBKW^PRCHLO3 | 
|---|
| 218 | D CLOSE^%ZISH("FILE1") | 
|---|
| 219 | Q | 
|---|
| 220 | TSTF ; Test directory for file creation | 
|---|
| 221 | N FILEDIR,TFILE,OUTFILT,POP,STID | 
|---|
| 222 | ; POP is returned by OPEN^%ZISH if file cannot be created. | 
|---|
| 223 | S POP="" | 
|---|
| 224 | S STID=$$GET1^DIQ(4,$$KSP^XUPARAM("INST")_",",99) | 
|---|
| 225 | S OUTFILT="CLRSREADME"_STID_".TXT" | 
|---|
| 226 | S FILEDIR=$$GET^XPAR("SYS","PRCPLO EXTRACT DIRECTORY",1,"Q") | 
|---|
| 227 | D OPEN^%ZISH("TFILE",FILEDIR,OUTFILT,"W") | 
|---|
| 228 | I POP  D | 
|---|
| 229 | . S CLRSERR=2 | 
|---|
| 230 | . Q | 
|---|
| 231 | I CLRSERR'=2  D | 
|---|
| 232 | . D USE^%ZISUTL("TFILE") | 
|---|
| 233 | . W !,"$ ! This directory is used to store PO activity" | 
|---|
| 234 | . W !,"$ ! extracts and GIP Extracts which are transmitted" | 
|---|
| 235 | . W !,"$ ! to the Clinical Logistics Report Server on a monthly" | 
|---|
| 236 | . W !,"$ ! basis. There are 21 extract files IFCPXXXF1 through" | 
|---|
| 237 | . W !,"$ ! IFCPXXXF19, IFCPXXXG1 and IFCPXXXG2. In addition, there" | 
|---|
| 238 | . W !,"$ ! are 2 working files used for the FTP Transfer:" | 
|---|
| 239 | . W !,"$ ! CLRSxxx.DAT and CLRS1xxx.COM. CLRSREADMExxx.TXT is also present" | 
|---|
| 240 | . W !,"$ EXIT" | 
|---|
| 241 | . D CLOSE^%ZISH("TFILE") | 
|---|
| 242 | . Q | 
|---|
| 243 | Q | 
|---|
| 244 | ; | 
|---|
| 245 | CRTCOM ; Create .DAT file to transfer file(s) | 
|---|
| 246 | N FILEDIR,POP,STID,OUTFLL1 | 
|---|
| 247 | S STID=$$GET1^DIQ(4,$$KSP^XUPARAM("INST")_",",99) | 
|---|
| 248 | S POP=""  ; POP is returned by OPEN^%ZISH | 
|---|
| 249 | ; S FILEDIR="$1$DGA2:[ANONYMOUS.CLRS]"  ;set dir for outpt files. | 
|---|
| 250 | S FILEDIR=$$GET^XPAR("SYS","PRCPLO EXTRACT DIRECTORY",1,"Q") | 
|---|
| 251 | S OUTFLL1="CLRS"_STID_"FTP.DAT" | 
|---|
| 252 | D OPEN^%ZISH("FILE1",FILEDIR,OUTFLL1,"W") | 
|---|
| 253 | I POP  D | 
|---|
| 254 | . S CLRSERR=3 | 
|---|
| 255 | . Q | 
|---|
| 256 | I CLRSERR'=3  D | 
|---|
| 257 | . D USE^%ZISUTL("FILE1") | 
|---|
| 258 | . W "clrsadmin",!  ; Enter user name for Report Server Login | 
|---|
| 259 | . W "1025clrs",!  ;pw=1025clrs Enter P/W for Report Server Login | 
|---|
| 260 | . ; W "SET DEFAULT /LOCAL $1$DGA2:[ANONYMOUS.CLRS]",! | 
|---|
| 261 | . W "SET DEFAULT /LOCAL "_FILEDIR,! | 
|---|
| 262 | . W "PUT IFCP"_STID_"*.*;*",!  ; new code to issue PUT command | 
|---|
| 263 | . W "EXIT",!  ; Exit FTP | 
|---|
| 264 | . D CLOSE^%ZISH("FILE1") | 
|---|
| 265 | . Q | 
|---|
| 266 | Q | 
|---|
| 267 | CRTCOM1 ; Run CLRSFTP1.COM as com file for exception handling | 
|---|
| 268 | ; | 
|---|
| 269 | ;*98 Modified code to work with PRC CLRS ADDRESS parameter | 
|---|
| 270 | ; | 
|---|
| 271 | N FILEDIR,STID,OUTFLL2,ADDR | 
|---|
| 272 | S STID=$$GET1^DIQ(4,$$KSP^XUPARAM("INST")_",",99) | 
|---|
| 273 | S FILEDIR=$$GET^XPAR("SYS","PRCPLO EXTRACT DIRECTORY",1,"Q") | 
|---|
| 274 | S ADDR=$$GET^XPAR("SYS","PRC CLRS ADDRESS",1,"Q") | 
|---|
| 275 | I ADDR="" S PRCPMSG(1)="There is no address identified in the CLRS Address Parameter.",PRCPMSG(2)="Please correct and retry." D MAILFTP^PRCHLO4A S CLRSERR=1 Q | 
|---|
| 276 | S OUTFLL2="CLRS"_STID_"FTP1.COM" | 
|---|
| 277 | D OPEN^%ZISH("FILE1",FILEDIR,OUTFLL2,"W") | 
|---|
| 278 | D USE^%ZISUTL("FILE1") | 
|---|
| 279 | W "$ SET VERIFY=(PROCEDURE,IMAGE)",! | 
|---|
| 280 | W "$ SET DEFAULT "_FILEDIR,! | 
|---|
| 281 | W "$ FTP "_ADDR_" /INPUT="_FILEDIR_"CLRS"_STID_"FTP.DAT",! | 
|---|
| 282 | ; | 
|---|
| 283 | W "$ EXIT 3",! | 
|---|
| 284 | D CLOSE^%ZISH("FILE1") | 
|---|
| 285 | Q | 
|---|
| 286 | FTPCOM ; Issue the FTP command after CLRS1.TXT file is built | 
|---|
| 287 | ; remain in CACHE during FTP Process using | 
|---|
| 288 | ; $ZF(-1) call | 
|---|
| 289 | ; ; SACC Exception received for usage of $ZF(-1) in PRC*5.1*83 | 
|---|
| 290 | ; See IFCAP technical manual | 
|---|
| 291 | ; | 
|---|
| 292 | ; commented out for testing | 
|---|
| 293 | ; add hook to mailman messaging for ftp, check variable PV | 
|---|
| 294 | N PV,XPV1,FILEDIR,STID | 
|---|
| 295 | ; | 
|---|
| 296 | ; | 
|---|
| 297 | S FILEDIR=$$GET^XPAR("SYS","PRCPLO EXTRACT DIRECTORY",1,"Q") | 
|---|
| 298 | S STID=$$GET1^DIQ(4,$$KSP^XUPARAM("INST")_",",99) | 
|---|
| 299 | S XPV1="S PV=$ZF(-1,""@"_FILEDIR_"CLRS"_STID_"FTP1.COM/OUTPUT="_FILEDIR_"CLRS"_STID_"FTP1.LOG"")" | 
|---|
| 300 | X XPV1  ; Run the .COM file to transfer files | 
|---|
| 301 | ; | 
|---|
| 302 | ; Error flag logic | 
|---|
| 303 | I PV=-1  D  ; This error is generated if failure during xfer occurs | 
|---|
| 304 | . S CLRSERR=1 | 
|---|
| 305 | . Q | 
|---|
| 306 | Q | 
|---|