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