| [613] | 1 | VAQPST30 ;JRP/ALB - INSTALL EXPORTED ROUTINES;24-AUG-93 | 
|---|
|  | 2 | ;;1.5;PATIENT DATA EXCHANGE;**1**;NOV 17, 1993 | 
|---|
|  | 3 | EXPORT ;MAIN ENTRY POINT | 
|---|
|  | 4 | ;INPUT  : None | 
|---|
|  | 5 | ;OUTPUT : None | 
|---|
|  | 6 | ;NOTES  : The following routines will be installed | 
|---|
|  | 7 | ;           GMTSPDX - Extracts Health Summary components | 
|---|
|  | 8 | ;           IBAPDX  -+ | 
|---|
|  | 9 | ;           IBAPDX0  |- Extract/Display Integrated Billing info | 
|---|
|  | 10 | ;           IBAPDX1 -+ | 
|---|
|  | 11 | ; | 
|---|
|  | 12 | ;DECLARE VARIABLES | 
|---|
|  | 13 | N OFFSET,EXPORT,INSTALL,VERSION,PATCHES,TEXT,EXIST,TMP | 
|---|
|  | 14 | N INSVER,INSPAT,INSLN2,SPOT | 
|---|
|  | 15 | W !!!,?2,">>> Exported routines will now be loaded",! | 
|---|
|  | 16 | ;LOOP THROUGH EXPORTED ROUTINES | 
|---|
|  | 17 | F OFFSET=1:1 S TEXT=$T(RTN+OFFSET) S TEXT=$P(TEXT,";;",2,$L(TEXT,";;")) Q:(TEXT="")  D | 
|---|
|  | 18 | .S EXPORT=$P(TEXT,";",1) | 
|---|
|  | 19 | .S INSTALL=$P(TEXT,";",2) | 
|---|
|  | 20 | .S VERSION=$P(TEXT,";",3) | 
|---|
|  | 21 | .S PATCHES=$P(TEXT,";",4) | 
|---|
|  | 22 | .Q:((EXPORT="")!(INSTALL="")) | 
|---|
|  | 23 | .;MAKE SURE EXPORTED ROUTINE EXISTS | 
|---|
|  | 24 | .I ('$$EXIST^VAQPST31(EXPORT)) D  Q | 
|---|
|  | 25 | ..W !,?5,$C(7),"** Exported routine ",EXPORT," does not exist" | 
|---|
|  | 26 | .;CHECK FOR EXISTANCE OF NEW ROUTINE | 
|---|
|  | 27 | .S EXIST=$$EXIST^VAQPST31(INSTALL) | 
|---|
|  | 28 | .;NEW ROUTINE DOES NOT EXIST | 
|---|
|  | 29 | .I ('EXIST) D  Q | 
|---|
|  | 30 | ..W !,?5,"Copying routine ",EXPORT," into ",INSTALL | 
|---|
|  | 31 | ..S TMP=$$COPY^VAQPST31(EXPORT,INSTALL,3) | 
|---|
|  | 32 | ..W ?50,$S('TMP:"Done",1:$C(7)_"** Error") | 
|---|
|  | 33 | .;GET LINE 2 OF EXISTING ROUTINE | 
|---|
|  | 34 | .S INSLN2=$$SECOND^VAQPST31(INSTALL,1) | 
|---|
|  | 35 | .;DETERMINE VERSION OF EXISTING ROUTINE (STRIP LEADING/LEADING ALPHAS) | 
|---|
|  | 36 | .S INSVER=$P(INSLN2,";",1) | 
|---|
|  | 37 | .S INSVER=$TR(INSVER," ","") | 
|---|
|  | 38 | .F SPOT=1:1:$L(INSVER) S TMP=$E(INSVER,SPOT) Q:((TMP?1N)!(TMP="")) | 
|---|
|  | 39 | .S INSVER=+$E(INSVER,SPOT,$L(INSVER)) | 
|---|
|  | 40 | .S:((INSVER'?1.N1"."1.N)&(INSVER'?1.N)&(INSVER'?1"."1.N)) INSVER="" | 
|---|
|  | 41 | .I (INSVER="") D  Q | 
|---|
|  | 42 | ..W !,?5,$C(7),"** Could not determine if ",INSTALL," should be overwritten with ",EXPORT | 
|---|
|  | 43 | .;CHECK EXISTING VERSION AGAINST EXPORTED VERSION | 
|---|
|  | 44 | .I (INSVER>VERSION) D  Q | 
|---|
|  | 45 | ..W !,?5,"Copying of ",EXPORT," into ",INSTALL," not required" | 
|---|
|  | 46 | .I (INSVER<VERSION) D  Q | 
|---|
|  | 47 | ..W !,?5,"Copying routine ",EXPORT," into ",INSTALL | 
|---|
|  | 48 | ..S TMP=$$COPY^VAQPST31(EXPORT,INSTALL,3) | 
|---|
|  | 49 | ..W ?50,$S('TMP:"Done",1:$C(7)_"** Error") | 
|---|
|  | 50 | .;DETERMINE PATCHES APPLIED TO EXISTING ROUTINE (STRIP SPACES AND STARS) | 
|---|
|  | 51 | .S INSPAT=$P(INSLN2,";",3) | 
|---|
|  | 52 | .S INSPAT=$TR(INSPAT,"*","") | 
|---|
|  | 53 | .S INSPAT=$TR(INSPAT," ","") | 
|---|
|  | 54 | .;CHECK FOR PATCH INSTALLATIONS | 
|---|
|  | 55 | .S EXIST=0 | 
|---|
|  | 56 | .I ((INSPAT'="")&(PATCHES'="")) D | 
|---|
|  | 57 | ..S PATCHES=","_PATCHES_"," | 
|---|
|  | 58 | ..F SPOT=1:1:$L(INSPAT,",") D  Q:(EXIST) | 
|---|
|  | 59 | ...S TMP=$P(INSPAT,",",SPOT) | 
|---|
|  | 60 | ...Q:(TMP="") | 
|---|
|  | 61 | ...S TMP=","_TMP_"," | 
|---|
|  | 62 | ...S:(PATCHES[TMP) EXIST=1 | 
|---|
|  | 63 | ..S PATCHES=$P(PATCHES,",",2,($L(PATCHES,",")-1)) | 
|---|
|  | 64 | .S:((INSPAT="")&(PATCHES="")) EXIST=1 | 
|---|
|  | 65 | .I (EXIST) D  Q | 
|---|
|  | 66 | ..W !,?5,"Copying of ",EXPORT," into ",INSTALL," not required" | 
|---|
|  | 67 | .W !,?5,"Copying routine ",EXPORT," into ",INSTALL | 
|---|
|  | 68 | .S TMP=$$COPY^VAQPST31(EXPORT,INSTALL,3) | 
|---|
|  | 69 | .W ?50,$S('TMP:"Done",1:$C(7)_"** Error") | 
|---|
|  | 70 | W !!,?2,"Done",!!! | 
|---|
|  | 71 | Q | 
|---|
|  | 72 | ; | 
|---|
|  | 73 | RTN ;ROUTINES TO INSTALL | 
|---|
|  | 74 | ;;VAQPSE01;GMTSPDX;2.5;8 | 
|---|
|  | 75 | ;;VAQPSE02;IBAPDX;1.5;15 | 
|---|
|  | 76 | ;;VAQPSE03;IBAPDX0;1.5;15 | 
|---|
|  | 77 | ;;VAQPSE04;IBAPDX1;1.5;15 | 
|---|
|  | 78 | ;; | 
|---|
|  | 79 | ;; | 
|---|
|  | 80 | ;FORMAT OF TEXT LINES | 
|---|
|  | 81 | ;  ;;EXPORT;INSTALL;VERSION;PATCHES | 
|---|
|  | 82 | ; | 
|---|
|  | 83 | ;   EXPORT - Routine name exported as (ex: VAQGMTS) | 
|---|
|  | 84 | ;   INSTALL - Routine name to install as (ex: GMTSPDX) | 
|---|
|  | 85 | ;   VERSION - Version number of exported routine (ex: 1.5) | 
|---|
|  | 86 | ;   PATCHES - List of patches that may have been applied | 
|---|
|  | 87 | ;             (ex: 1,2,3) (ex: 1) | 
|---|
|  | 88 | ; | 
|---|
|  | 89 | ;  Routine is installed if one of the following conditions is TRUE | 
|---|
|  | 90 | ;   1) The routine INSTALL does not exist | 
|---|
|  | 91 | ;   2) The routine INSTALL exists and | 
|---|
|  | 92 | ;      a) VERSION is greater or equal to version of existing routine | 
|---|
|  | 93 | ;      b) Patches to INSTALL do not include entries in PATCHES | 
|---|
|  | 94 | ; | 
|---|