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
|
---|