| 1 | PSAP54 ;VMP/RJS BUILD XTMP("PSAVSN" FROM A FLAT FILE ; 14MAR06
 | 
|---|
| 2 |  ;;3.0;DRUG ACCOUNTABILITY/INVENTORY INTERFACE;**54**;10/24/97
 | 
|---|
| 3 |  ;  Reference to %ZISH supported by DBIA # 2320
 | 
|---|
| 4 |  ;  Reference to XPDUTL supported by DBIA #10141
 | 
|---|
| 5 |  ;  
 | 
|---|
| 6 |  W:$D(IOF) @IOF
 | 
|---|
| 7 |  W !," Build McKesson VSN to Dispense Units Per Order Unit and Drug Description Data"
 | 
|---|
| 8 |  W !!,"This Utility is used to build the ^XTMP(""PSAVSN"" global with then McKesson VSN,",!,"DUOU & Description. Please follow these steps prior to running this utility:",!
 | 
|---|
| 9 |  W !,"1) Retrieve the MCKESSON_UPDATE.DAT in ASCII format directly from one of these",!,?5,"FTP servers:"
 | 
|---|
| 10 |  W !,?5,"Albany          ftp.fo-albany.med.va.gov",!,?5,"Hines           ftp.fo-hines.med.va.gov",!,?5,"Salt Lake City  ftp.fo-slc.med.va.gov"
 | 
|---|
| 11 |  W !," The preferred FTP server retrieve the file from   download.vista.med.va.gov",!," which will transmit the files from the first available FTP server."
 | 
|---|
| 12 |  W !!,"2) At the HOST DIRECTORY: prompt enter the name of the directory that you",!,"   placed the file in.  i.e. USER$:[TEMP]"
 | 
|---|
| 13 |  W !!,?5,"If you enter an invalid directory this utility will return you to the",!,?5,"HOST DIRECTORY: prompt:     Enter ^ to Quit:",!!
 | 
|---|
| 14 |  N DUOUT,X,Y
 | 
|---|
| 15 | DIR S DIR(0)="F^3:30",DIR("A")="HOST DIRECTORY" D ^DIR Q:$D(DUOUT)  K DIR
 | 
|---|
| 16 |  S PSADIR=X
 | 
|---|
| 17 |  S DIR(0)="F^3:30",DIR("A")="HOST FILENAME",DIR("B")="MCKESSON_UPDATE.DAT" D ^DIR Q:$D(DUOUT)  K DIR
 | 
|---|
| 18 |  S PSAFILE=X
 | 
|---|
| 19 |  S Y=$$FTG^%ZISH(PSADIR,PSAFILE,$NA(^TMP("PSAVSN",1,0)),2)
 | 
|---|
| 20 |  I Y'>0 W !,?5,"INVALID DIRECTORY NAME OR FILE DOES NOT EXIST",!,?5,"PLEASE ENTER THE DIRECTORY AGAIN" G DIR
 | 
|---|
| 21 |  S PSADATA=$G(^TMP("PSAVSN",1,0))
 | 
|---|
| 22 |  G:$L(PSADATA)>100 ERRMSG
 | 
|---|
| 23 |  S PSAFLDT=$P(PSADATA,"^",5),PSADESC=$P(PSADATA,"^",4)
 | 
|---|
| 24 |  I $G(^XTMP("PSAVSN",0)),$P(^XTMP("PSAVSN",0),"^",4)=PSAFLDT W !,"The McKesson Update for ",PSAFLDT," has already been installed",!,"Please try downloading the file again."  K ^TMP("PSAVSN") G END
 | 
|---|
| 25 |  W !!,"PROCESSING PLEASE WAIT "
 | 
|---|
| 26 | EN S PSADT=$$FMADD^XLFDT(DT,360)
 | 
|---|
| 27 |  S ^XTMP("PSAVSN",0)=PSADT_"^"_DT_"^"_PSADESC_"^"_PSAFLDT
 | 
|---|
| 28 |  S PSAREC=1,PSACNTR=0
 | 
|---|
| 29 |  F  S PSAREC=$O(^TMP("PSAVSN",PSAREC)) Q:PSAREC=""  D
 | 
|---|
| 30 |  .S PSACNTR=PSACNTR+1
 | 
|---|
| 31 |  .I '$D(XPDQUES),PSACNTR=1000 S PSACNTR=0 W "."
 | 
|---|
| 32 |  .S PSADATA=$G(^TMP("PSAVSN",PSAREC,0))
 | 
|---|
| 33 |  .Q:PSADATA=""
 | 
|---|
| 34 |  .S PSAVSN=$P(PSADATA,"^",1),PSADUOU=$P(PSADATA,"^",2),PSADESC=$P(PSADATA,"^",3)
 | 
|---|
| 35 |  .S ^XTMP("PSAVSN",PSAVSN)=PSADUOU_"~"_PSADESC
 | 
|---|
| 36 |  I '$D(XPDQUES) W !!,"PROCESSING COMPLETE.    The ^XTMP(""PSAVSN"" global has been updated"
 | 
|---|
| 37 | END K ^TMP("PSAVSN"),PSAREC,PSADATA,PSAVSN,PSADUOU,PSADESC,PSACNTR,PSADT,PSADIR,PSAFILE,PSAFLDT
 | 
|---|
| 38 |  Q
 | 
|---|
| 39 |  ;
 | 
|---|
| 40 | ERRMSG ; ERROR MESSAGE IF FILE WAS DOWNLOAD IN BINARY FORMAT
 | 
|---|
| 41 |  K ^TMP("PSAVSN"),PSAREC,PSADATA,PSAVSN,PSADUOU,PSADESC,PSACNTR,PSADT,PSADIR,PSAFILE,PSAFLDT
 | 
|---|
| 42 |  W !!,?10,"There was a problem with the input file."
 | 
|---|
| 43 |  W !,?9,"It may have been downloaded in BINARY mode."
 | 
|---|
| 44 |  W !,?6,"Please try downloading it again using ASCII mode.",!!
 | 
|---|
| 45 |  Q
 | 
|---|
| 46 |  ;
 | 
|---|
| 47 | POSINIT ; PATCH POST INSTALL 
 | 
|---|
| 48 |  S PSADIR=XPDQUES("POSPSADIR"),PSAFILE=XPDQUES("POSPSAFILE")
 | 
|---|
| 49 |  S Y=$$FTG^%ZISH(PSADIR,PSAFILE,$NA(^TMP("PSAVSN",1,0)),2)
 | 
|---|
| 50 |  I Y'>0 G POSERR1
 | 
|---|
| 51 |  S PSADATA=$G(^TMP("PSAVSN",1,0))
 | 
|---|
| 52 |  G:$L(PSADATA)>100 POSERR3
 | 
|---|
| 53 |  S PSAFLDT=$P(PSADATA,"^",5),PSADESC=$P(PSADATA,"^",4)
 | 
|---|
| 54 |  I $G(^XTMP("PSAVSN",0)),$P(^XTMP("PSAVSN",0),"^",4)=PSAFLDT G POSERR2
 | 
|---|
| 55 |  G:$L($G(^TMP("PSAVSN",1,0)))>100 POSERR3
 | 
|---|
| 56 |  D MES^XPDUTL("PROCESSING PLEASE WAIT")
 | 
|---|
| 57 |  D EN
 | 
|---|
| 58 |  D MES^XPDUTL("PROCESSING COMPLETE.    The ^XTMP(""PSAVSN"" global has been updated")
 | 
|---|
| 59 |  Q
 | 
|---|
| 60 |  ;
 | 
|---|
| 61 | POSERR1 ; ERROR MESSAGE IF FILE COULD NOT BE OPENED
 | 
|---|
| 62 |  S MSG="DIRECTORY = "_PSADIR_" FILENAME = "_PSAFILE
 | 
|---|
| 63 |  D BMES^XPDUTL(MSG)
 | 
|---|
| 64 |  D MES^XPDUTL("INVALID DIRECTORY NAME/FILENAME OR FILE DOES NOT EXIST")
 | 
|---|
| 65 |  D MES^XPDUTL("Please verify that the DIRECTORY is correct and that the")
 | 
|---|
| 66 |  D MES^XPDUTL("MCKESSON_UPDATE.DAT file is present")
 | 
|---|
| 67 |  D BMES^XPDUTL("Once you have verified that the DIRECTORY name is correct and/or")
 | 
|---|
| 68 |  D MES^XPDUTL("the file is present, Please run ^PSAP54 from the programmers prompt.")
 | 
|---|
| 69 |  K PSADIR,PSAFILE
 | 
|---|
| 70 |  Q
 | 
|---|
| 71 |  ;
 | 
|---|
| 72 | POSERR2 ; ERROR MESSAGE IF FILE WAS FUOUND BUT HAS ALREADY BEEN INSTALLED
 | 
|---|
| 73 |  S MSG="The McKesson Update for "_PSAFLDT_" has already been installed"
 | 
|---|
| 74 |  D BMES^XPDUTL(MSG)
 | 
|---|
| 75 |  D MES^XPDUTL("Please try downloading the file again.")
 | 
|---|
| 76 |  D MES^XPDUTL("Then run ^PSAP54 from the programmers prompt.")
 | 
|---|
| 77 |  K ^TMP("PSAVSN"),MSG,PSADIR,PSAFILE
 | 
|---|
| 78 |  Q
 | 
|---|
| 79 |  ;
 | 
|---|
| 80 | POSERR3 ; ERROR MESSAGE IF THE FLAT FILE WAS DOWNLOADED IN BINARY FORMAT
 | 
|---|
| 81 |  D BMES^XPDUTL("There was a problem with the MCKESSON_UPDATE.DAT file")
 | 
|---|
| 82 |  D MES^XPDUTL("Please download it again using ASCII format and")
 | 
|---|
| 83 |  D MES^XPDUTL("run ^PSAP54 from the programmers prompt")
 | 
|---|
| 84 |  K ^TMP("PSAVSN"),PSADIR,PSAFILE
 | 
|---|
| 85 |  Q
 | 
|---|