| 1 | HDI1000A ;BPFO/JRP - HDI v1.0 POST-INSTALL ROUTINE;2/17/2005
 | 
|---|
| 2 |  ;;1.0;HEALTH DATA & INFORMATICS;;Feb 22, 2005
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 | POST ;Main entry point for post-install routine
 | 
|---|
| 5 |  ; Input: None
 | 
|---|
| 6 |  ;        All variables set by Kernel for KIDS post-installs
 | 
|---|
| 7 |  ;Output: None
 | 
|---|
| 8 |  N HDIMSG
 | 
|---|
| 9 |  S HDIMSG(1)=" "
 | 
|---|
| 10 |  S HDIMSG(2)="~~~~~~~~~~~~~~~~~~~~"
 | 
|---|
| 11 |  S HDIMSG(3)="Post-Installation (POST^HDI1000A) will now be run"
 | 
|---|
| 12 |  S HDIMSG(4)=" "
 | 
|---|
| 13 |  D MES^XPDUTL(.HDIMSG) K HDIMSG
 | 
|---|
| 14 |  I '$$SERVERS^HDI1000B() D PSTHALT Q
 | 
|---|
| 15 |  I '$$ATTBUL^HDI1000B() D PSTHALT Q
 | 
|---|
| 16 |  I '$$ATTREM^HDI1000B() D PSTHALT Q
 | 
|---|
| 17 |  I '$$SYSPAR() D PSTHALT Q
 | 
|---|
| 18 |  I '$$VUID() D PSTHALT Q
 | 
|---|
| 19 |  S HDIMSG(1)=" "
 | 
|---|
| 20 |  S HDIMSG(2)="Post-Installation ran to completion"
 | 
|---|
| 21 |  S HDIMSG(3)="~~~~~~~~~~~~~~~~~~~~"
 | 
|---|
| 22 |  S HDIMSG(4)=" "
 | 
|---|
| 23 |  D MES^XPDUTL(.HDIMSG) K HDIMSG
 | 
|---|
| 24 |  Q
 | 
|---|
| 25 |  ;
 | 
|---|
| 26 | PSTHALT ;Print post-install halted text
 | 
|---|
| 27 |  N HDIMSG
 | 
|---|
| 28 |  S HDIMSG(1)=" "
 | 
|---|
| 29 |  S HDIMSG(2)="*****"
 | 
|---|
| 30 |  S HDIMSG(3)="***** Post-installation has been halted"
 | 
|---|
| 31 |  S HDIMSG(4)="***** Please contact Enterprise VistA Support"
 | 
|---|
| 32 |  S HDIMSG(5)="*****"
 | 
|---|
| 33 |  S HDIMSG(6)=" "
 | 
|---|
| 34 |  D MES^XPDUTL(.HDIMSG)
 | 
|---|
| 35 |  Q
 | 
|---|
| 36 |  ;
 | 
|---|
| 37 | SYSPAR() ;Initialize HDIS System and HDIS Parameter files
 | 
|---|
| 38 |  ; Input: None
 | 
|---|
| 39 |  ;Output: 0 = Stop post-install (error)
 | 
|---|
| 40 |  ;        1 = Continue with post-install
 | 
|---|
| 41 |  N FACNUM,DOMAIN,SYSTYPE,X,SYSPTR,HDIMSG,PRAMPTR
 | 
|---|
| 42 |  ;Determine system information
 | 
|---|
| 43 |  S FACNUM=$$FACNUM^HDISVF01()
 | 
|---|
| 44 |  S DOMAIN=$G(^XMB("NETNAME"))
 | 
|---|
| 45 |  S SYSTYPE=$$PROD^XUPROD()
 | 
|---|
| 46 |  S HDIMSG(1)=" "
 | 
|---|
| 47 |  S HDIMSG(2)="The following information concerning this system has been"
 | 
|---|
| 48 |  S HDIMSG(3)="determined and will be used to initialize the HDIS SYSTEM"
 | 
|---|
| 49 |  S HDIMSG(4)="(#7118.21) and HDIS PARAMETER (#7118.29) files"
 | 
|---|
| 50 |  S HDIMSG(5)=" "
 | 
|---|
| 51 |  S HDIMSG(6)="  Facility Number: "_FACNUM
 | 
|---|
| 52 |  S HDIMSG(7)="   MailMan Domain: "_DOMAIN
 | 
|---|
| 53 |  S HDIMSG(8)="      System Type: "_$S(SYSTYPE:"Production",1:"Test")
 | 
|---|
| 54 |  S HDIMSG(9)=" "
 | 
|---|
| 55 |  D MES^XPDUTL(.HDIMSG) K HDIMSG
 | 
|---|
| 56 |  ;Create entry in HDIS System file
 | 
|---|
| 57 |  D BMES^XPDUTL("Creating entry in HDIS SYSTEM file")
 | 
|---|
| 58 |  I '$$FINDSYS^HDISVF07(DOMAIN,FACNUM,SYSTYPE,1,.SYSPTR) D  Q 0
 | 
|---|
| 59 |  .S HDIMSG(1)="**"
 | 
|---|
| 60 |  .S HDIMSG(2)="** Unable to create entry"
 | 
|---|
| 61 |  .S HDIMSG(3)="** Post-installation will be halted"
 | 
|---|
| 62 |  .S HDIMSG(4)="**"
 | 
|---|
| 63 |  .D MES^XPDUTL(.HDIMSG) K HDIMSG
 | 
|---|
| 64 |  D MES^XPDUTL("Entry number "_SYSPTR_" created")
 | 
|---|
| 65 |  ;Create entry in HDIS Parameter file
 | 
|---|
| 66 |  D BMES^XPDUTL("Creating entry in HDIS PARAMETER file")
 | 
|---|
| 67 |  S PRAMPTR=$$PARAMINI^HDISVF10(SYSPTR)
 | 
|---|
| 68 |  I 'PRAMPTR D  Q 0
 | 
|---|
| 69 |  .S HDIMSG(1)="**"
 | 
|---|
| 70 |  .S HDIMSG(2)="** Unable to create entry"
 | 
|---|
| 71 |  .S HDIMSG(3)="** Post-installation will be halted"
 | 
|---|
| 72 |  .S HDIMSG(4)="**"
 | 
|---|
| 73 |  .D MES^XPDUTL(.HDIMSG) K HDIMSG
 | 
|---|
| 74 |  D MES^XPDUTL("Entry number "_PRAMPTR_" created")
 | 
|---|
| 75 |  ;Done if this is not FORUM
 | 
|---|
| 76 |  I DOMAIN'="FORUM.VA.GOV" Q 1
 | 
|---|
| 77 |  ;This is FORUM - make it a server
 | 
|---|
| 78 |  D BMES^XPDUTL("Making FORUM a server")
 | 
|---|
| 79 |  D SETTYPE^HDISVF02(2,SYSPTR)
 | 
|---|
| 80 |  I (+$$GETTYPE^HDISVF02(SYSPTR))'=2 D
 | 
|---|
| 81 |  .S HDIMSG(1)="**"
 | 
|---|
| 82 |  .S HDIMSG(2)="** Unable to change system type to SERVER"
 | 
|---|
| 83 |  .S HDIMSG(3)="**"
 | 
|---|
| 84 |  .D MES^XPDUTL(.HDIMSG) K HDIMSG
 | 
|---|
| 85 |  ;Set Last Non-Standard VUID field
 | 
|---|
| 86 |  I '$$GETNSVL^HDISVF03(SYSPTR) S X=$$SET^HDISVF02(7118.29,51,PRAMPTR_",",4536403,1)
 | 
|---|
| 87 |  I '$$GETNSVL^HDISVF03(SYSPTR) D
 | 
|---|
| 88 |  .S HDIMSG(1)="**"
 | 
|---|
| 89 |  .S HDIMSG(2)="** Unable to set LAST NON-STANDARD VUID field to 4536403"
 | 
|---|
| 90 |  .S HDIMSG(3)="**"
 | 
|---|
| 91 |  .D MES^XPDUTL(.HDIMSG) K HDIMSG
 | 
|---|
| 92 |  ;Set Ending Non-Standard VUID field
 | 
|---|
| 93 |  I '$$GETNSVE^HDISVF03(SYSPTR) S X=$$SET^HDISVF02(7118.29,52,PRAMPTR_",",4636403,1)
 | 
|---|
| 94 |  I '$$GETNSVE^HDISVF03(SYSPTR) D
 | 
|---|
| 95 |  .S HDIMSG(1)="**"
 | 
|---|
| 96 |  .S HDIMSG(2)="** Unable to set ENDING NON-STANDARD VUID field to 4636403"
 | 
|---|
| 97 |  .S HDIMSG(3)="**"
 | 
|---|
| 98 |  .D MES^XPDUTL(.HDIMSG) K HDIMSG
 | 
|---|
| 99 |  ;Done
 | 
|---|
| 100 |  Q 1
 | 
|---|
| 101 |  ;
 | 
|---|
| 102 | VUID() ;Instantiate VUIDs for set of code fields in Vitals domain
 | 
|---|
| 103 |  ; Input: None
 | 
|---|
| 104 |  ;Output: 0 = Stop post-install (error)
 | 
|---|
| 105 |  ;        1 = Continue with post-install
 | 
|---|
| 106 |  N HDIMSG
 | 
|---|
| 107 |  S HDIMSG(1)=" "
 | 
|---|
| 108 |  S HDIMSG(2)="Seeding XTID VUID FOR SET OF CODES file (#8985.1) with Vitals data"
 | 
|---|
| 109 |  S HDIMSG(3)=" "
 | 
|---|
| 110 |  D MES^XPDUTL(.HDIMSG) K HDIMSG
 | 
|---|
| 111 |  I '$$VUIDL("VITALS","HDI1000C") Q 0
 | 
|---|
| 112 |  S HDIMSG(1)=" "
 | 
|---|
| 113 |  S HDIMSG(2)="Seeding XTID VUID FOR SET OF CODES file (8985.1) with Allergy data"
 | 
|---|
| 114 |  S HDIMSG(3)=" "
 | 
|---|
| 115 |  D MES^XPDUTL(.HDIMSG) K HDIMSG
 | 
|---|
| 116 |  I '$$VUIDL("ALLERGY","HDI1000C") Q 0
 | 
|---|
| 117 |  S HDIMSG(1)=" "
 | 
|---|
| 118 |  S HDIMSG(2)="Seeding XTID VUID FOR SET OF CODES file (8985.1) with Lab & Pharmacy data"
 | 
|---|
| 119 |  S HDIMSG(3)=" "
 | 
|---|
| 120 |  D MES^XPDUTL(.HDIMSG) K HDIMSG
 | 
|---|
| 121 |  I '$$VUIDL("LABPHAR","HDI1000D") Q 0
 | 
|---|
| 122 |  I '$$VUIDL("LABPHAR","HDI1000E") Q 0
 | 
|---|
| 123 |  I '$$VUIDL("LABPHAR","HDI1000F") Q 0
 | 
|---|
| 124 |  I '$$VUIDL("LABPHAR","HDI1000G") Q 0
 | 
|---|
| 125 |  Q 1
 | 
|---|
| 126 |  ;
 | 
|---|
| 127 | VUIDL(TAG,ROUTINE) ;Instantiate VUIDs for set of code fields
 | 
|---|
| 128 |  ; Input: TAG - Line tag under which VUID data has been placed
 | 
|---|
| 129 |  ;        ROUTINE - Routine line tag is in
 | 
|---|
| 130 |  ;                  Leave blank if in this routine
 | 
|---|
| 131 |  ;Output: 0 = Stop post-install (error)
 | 
|---|
| 132 |  ;        1 = Continue with post-install
 | 
|---|
| 133 |  ; Notes: Data lines must be in the format
 | 
|---|
| 134 |  ;          File~Field~Code~VUID~Status~EffectiveDateTime
 | 
|---|
| 135 |  ;          (Status and EffectiveDateTime must be in internal format)
 | 
|---|
| 136 |  ;          (Default value for Status is 0 - Inactive)
 | 
|---|
| 137 |  ;          (Default value for EffectiveDateTime is NOW)
 | 
|---|
| 138 |  ;      : Call assumes that all input (TAG & ROUTINE) is valid
 | 
|---|
| 139 |  ;      : Call assumes that data lines are valid
 | 
|---|
| 140 |  ;        (i.e. no missing/bad data)
 | 
|---|
| 141 |  N OFFSET,DATA,FILE,FIELD,IREF,VUID,STAT,STDT,DONE,RESULT,HDIMSG
 | 
|---|
| 142 |  S ROUTINE=$G(ROUTINE)
 | 
|---|
| 143 |  S RESULT=1
 | 
|---|
| 144 |  S DONE=0
 | 
|---|
| 145 |  F OFFSET=1:1 D  Q:DONE
 | 
|---|
| 146 |  .S DATA=$S(ROUTINE="":$T(@TAG+OFFSET),1:$T(@TAG+OFFSET^@ROUTINE))
 | 
|---|
| 147 |  .S DATA=$P(DATA,";;",2)
 | 
|---|
| 148 |  .I DATA="" S DONE=1 Q
 | 
|---|
| 149 |  .S FILE=$P(DATA,"~",1)
 | 
|---|
| 150 |  .S FIELD=$P(DATA,"~",2)
 | 
|---|
| 151 |  .S IREF=$P(DATA,"~",3)
 | 
|---|
| 152 |  .S VUID=$P(DATA,"~",4)
 | 
|---|
| 153 |  .S STAT=$P(DATA,"~",5)
 | 
|---|
| 154 |  .I STAT="" S STAT=0
 | 
|---|
| 155 |  .S STDT=$P(DATA,"~",6)
 | 
|---|
| 156 |  .I STDT="" S STDT=$$NOW^XLFDT()
 | 
|---|
| 157 |  .I '$$STOREIT(FILE,FIELD,IREF,VUID,STAT,STDT) D
 | 
|---|
| 158 |  ..S HDIMSG(1)="**"
 | 
|---|
| 159 |  ..S HDIMSG(2)="** Unable to store VUID and/or status information for file"
 | 
|---|
| 160 |  ..S HDIMSG(3)="** "_FILE_", field "_FIELD_", and internal value "_IREF
 | 
|---|
| 161 |  ..S HDIMSG(4)="**"
 | 
|---|
| 162 |  ..D MES^XPDUTL(.HDIMSG) K HDIMSG
 | 
|---|
| 163 |  ..S RESULT=0
 | 
|---|
| 164 |  Q RESULT
 | 
|---|
| 165 |  ;
 | 
|---|
| 166 | STOREIT(FILE,FIELD,IREF,VUID,STAT,STDT) ;Store VUID info
 | 
|---|
| 167 |  ; Input : FILE - File number
 | 
|---|
| 168 |  ;         FIELD - Field number
 | 
|---|
| 169 |  ;         IREF - Internal reference
 | 
|---|
| 170 |  ;         VUID - VUID
 | 
|---|
| 171 |  ;         STAT - Status
 | 
|---|
| 172 |  ;                0 = Inacive (default)     1 = Active
 | 
|---|
| 173 |  ;         STDT - Status Date/Time (FileMan)
 | 
|---|
| 174 |  ;                (Defaults to NOW)
 | 
|---|
| 175 |  ;Output : 1 = Success
 | 
|---|
| 176 |  ;         0 = Failure
 | 
|---|
| 177 |  ; Notes : Existance/validity of input assumed (internal call)
 | 
|---|
| 178 |  ;       : Call will automatically inactivate terms when appropriate
 | 
|---|
| 179 |  ;
 | 
|---|
| 180 |  N TMP,MASTER
 | 
|---|
| 181 |  S STAT=+$G(STAT)
 | 
|---|
| 182 |  S STDT=+$G(STDT)
 | 
|---|
| 183 |  I 'STDT S STDT=$$NOW^XLFDT()
 | 
|---|
| 184 |  ;Store VUID (also sets master entry flag, if appropriate)
 | 
|---|
| 185 |  I '$$SETVUID^XTID(FILE,FIELD,IREF,VUID) Q 0
 | 
|---|
| 186 |  ;Inactivate non-master entries
 | 
|---|
| 187 |  I '$$GETMASTR^XTID(FILE,FIELD,IREF) D
 | 
|---|
| 188 |  .S STAT=0
 | 
|---|
| 189 |  .S STDT=$$NOW^XLFDT()
 | 
|---|
| 190 |  ;Store status
 | 
|---|
| 191 |  Q $$SETSTAT^XTID(FILE,FIELD,IREF,STAT,STDT)
 | 
|---|