| 1 | HDI1000B ;BPFO/JRP - HDI v1.0 POST-INSTALL ROUTINE (CONT);2/23/2005 | 
|---|
| 2 | ;;1.0;HEALTH DATA & INFORMATICS;;Feb 22, 2005 | 
|---|
| 3 | ; | 
|---|
| 4 | SERVERS() ;Fix server options (they need resource devices) | 
|---|
| 5 | ; Input: None | 
|---|
| 6 | ;Output: 0 = Stop post-install (error) | 
|---|
| 7 | ;        1 = Continue with post-install | 
|---|
| 8 | N SRVR,RSRC,HDIMSG | 
|---|
| 9 | ;Fix VUID Server option | 
|---|
| 10 | S SRVR="HDIS-FACILITY-DATA-SERVER" | 
|---|
| 11 | S RSRC="HDIS VUID RESOURCE DEVICE" | 
|---|
| 12 | S HDIMSG(1)=" " | 
|---|
| 13 | S HDIMSG(2)="Making "_RSRC_" the resource device" | 
|---|
| 14 | S HDIMSG(3)="for "_SRVR | 
|---|
| 15 | S HDIMSG(4)=" " | 
|---|
| 16 | D MES^XPDUTL(.HDIMSG) K HDIMSG | 
|---|
| 17 | I '$$FIXSRVR(SRVR,RSRC) Q 0 | 
|---|
| 18 | ;Fix Status Server option | 
|---|
| 19 | S SRVR="HDIS-STATUS-UPDATE-SERVER" | 
|---|
| 20 | S RSRC="HDIS STATUS RESOURCE DEVICE" | 
|---|
| 21 | S HDIMSG(1)=" " | 
|---|
| 22 | S HDIMSG(2)="Making "_RSRC_" the resource device" | 
|---|
| 23 | S HDIMSG(3)="for "_SRVR | 
|---|
| 24 | S HDIMSG(4)=" " | 
|---|
| 25 | D MES^XPDUTL(.HDIMSG) K HDIMSG | 
|---|
| 26 | I '$$FIXSRVR(SRVR,RSRC) Q 0 | 
|---|
| 27 | ;Done | 
|---|
| 28 | Q 1 | 
|---|
| 29 | ; | 
|---|
| 30 | FIXSRVR(SRVR,RSRC) ;Fix server option | 
|---|
| 31 | ; Input: SRVR - Name of server option | 
|---|
| 32 | ;        RSRC - Name of resource device | 
|---|
| 33 | ;Output: 1 = Success     0 = Error/bad input | 
|---|
| 34 | ; Notes: Call assumes that all input have values | 
|---|
| 35 | N HDIMSG,PTRSRVR,PTRRSRC | 
|---|
| 36 | S SRVR=$G(SRVR) | 
|---|
| 37 | S RSRC=$G(RSRC) | 
|---|
| 38 | ;Find option | 
|---|
| 39 | S PTRSRVR=$$PTROPT(SRVR) | 
|---|
| 40 | I 'PTRSRVR D  Q 0 | 
|---|
| 41 | .I SRVR="" S SRVR="<null>" | 
|---|
| 42 | .S HDIMSG(1)="**" | 
|---|
| 43 | .S HDIMSG(2)="** Unable to find "_SRVR_" in the OPTION file (#19)" | 
|---|
| 44 | .S HDIMSG(3)="** Post-installation will be halted" | 
|---|
| 45 | .S HDIMSG(4)="**" | 
|---|
| 46 | .D MES^XPDUTL(.HDIMSG) K HDIMSG | 
|---|
| 47 | ;Create/find resource device | 
|---|
| 48 | S PTRRSRC=$$CR8RD(RSRC,1) | 
|---|
| 49 | I 'PTRRSRC D  Q 0 | 
|---|
| 50 | .I RSRC="" S RSRC="<null>" | 
|---|
| 51 | .S HDIMSG(1)="**" | 
|---|
| 52 | .S HDIMSG(2)="** Unable to find/create "_RSRC_" in the DEVICE file (#3.5)" | 
|---|
| 53 | .S HDIMSG(3)="** Post-installation will be halted" | 
|---|
| 54 | .S HDIMSG(4)="**" | 
|---|
| 55 | .D MES^XPDUTL(.HDIMSG) K HDIMSG | 
|---|
| 56 | ;Attach resource device to server | 
|---|
| 57 | I '$$RD4OPT(PTRRSRC,PTRSRVR) D  Q 0 | 
|---|
| 58 | .S HDIMSG(1)="**" | 
|---|
| 59 | .S HDIMSG(2)="** Unable to add "_RSRC_" as the resource" | 
|---|
| 60 | .S HDIMSG(3)="** device for server option "_SRVR | 
|---|
| 61 | .S HDIMSG(4)="** Post-installation will be halted" | 
|---|
| 62 | .S HDIMSG(5)="**" | 
|---|
| 63 | .D MES^XPDUTL(.HDIMSG) K HDIMSG | 
|---|
| 64 | Q 1 | 
|---|
| 65 | ; | 
|---|
| 66 | CR8RD(NAME,SLOTS) ;Create resource device | 
|---|
| 67 | ; Input: NAME - Name of resource device to create | 
|---|
| 68 | ;        SLOTS - Number of resource slots (defaults to 1) | 
|---|
| 69 | ;Output: Pointer to resource device (DEVICE file) | 
|---|
| 70 | ;        0 will be returned on error/bad input | 
|---|
| 71 | ; Notes: If the device NAME already exists, the pointer to that device | 
|---|
| 72 | ;        will be returned.  The definition of the device will not be | 
|---|
| 73 | ;        checked and/or modified. | 
|---|
| 74 | S NAME=$G(NAME) | 
|---|
| 75 | I NAME="" Q 0 | 
|---|
| 76 | S SLOTS=+$G(SLOTS) | 
|---|
| 77 | I SLOTS<1 S SLOTS=1 | 
|---|
| 78 | N PTRDVC,HDIMSG | 
|---|
| 79 | ;Device alread exist - return pointer to it | 
|---|
| 80 | S PTRDVC=$$FIND1^DIC(3.5,"","X",NAME,"B","","HDIMSG") | 
|---|
| 81 | I PTRDVC Q PTRDVC | 
|---|
| 82 | ;Create resource device | 
|---|
| 83 | S PTRDVC=+$$RES^XUDHSET(NAME,NAME,SLOTS) | 
|---|
| 84 | I PTRDVC<1 S PTRDVC=0 | 
|---|
| 85 | Q PTRDVC | 
|---|
| 86 | ; | 
|---|
| 87 | PTROPT(NAME) ;Get pointer to option | 
|---|
| 88 | ; Input: NAME - Option name | 
|---|
| 89 | ;Output: Pointer to OPTION file (#19) | 
|---|
| 90 | ; Notes: 0 returned when option not found | 
|---|
| 91 | N PTROPT,HDIMSG | 
|---|
| 92 | S PTROPT=$$FIND1^DIC(19,"","X",$G(NAME),"B","","HDIMSG") | 
|---|
| 93 | I $D(HDIMSG) Q 0 | 
|---|
| 94 | Q PTROPT | 
|---|
| 95 | ; | 
|---|
| 96 | RD4OPT(PTRDVC,PTROPT) ;Attach resource device to option | 
|---|
| 97 | ; Input: PTRDVC - Pointer to DEVICE file (#3.5) | 
|---|
| 98 | ;        PTROPT - Pointer to OPTION file (#19) | 
|---|
| 99 | ;Output: 1 = Success     0 = Error/Bad input | 
|---|
| 100 | ; Notes: Call assumes all input exists and is valid | 
|---|
| 101 | N HDIFDA,HDIMSG | 
|---|
| 102 | S PTRDVC=+$G(PTRDVC) | 
|---|
| 103 | I 'PTRDVC Q 0 | 
|---|
| 104 | S PTROPT=+$G(PTROPT) | 
|---|
| 105 | I 'PTROPT Q 0 | 
|---|
| 106 | S HDIFDA(19,PTROPT_",",227)=PTRDVC | 
|---|
| 107 | D FILE^DIE("","HDIFDA","HDIMSG") | 
|---|
| 108 | I $D(HDIMSG) Q 0 | 
|---|
| 109 | Q 1 | 
|---|
| 110 | ; | 
|---|
| 111 | ATTBUL() ;Attach HDIS Mail Groups to HDIS Bulletins | 
|---|
| 112 | N HDISBIEN,HDISBNM,HDISERRF,HDISFDA,HDISGIEN,HDISGNM,HDISLNE,HDISMSG,HDISTXT | 
|---|
| 113 | K HDIMSG | 
|---|
| 114 | D BMES^XPDUTL("Attaching HDIS Mail Groups to HDIS Bulletins") | 
|---|
| 115 | F HDISLNE=1:1 S HDISTXT=$P($T(BULGRP+HDISLNE),";;",2) Q:HDISTXT="END"!($G(HDISERRF))  D | 
|---|
| 116 | . S HDISBNM=$P(HDISTXT,"^",1) | 
|---|
| 117 | . S HDISBIEN=$$FIND1^DIC(3.6,"","X",HDISBNM,"","","") | 
|---|
| 118 | . S HDISGNM=$P(HDISTXT,"^",2) | 
|---|
| 119 | . S HDISGIEN=$$FIND1^DIC(3.8,"","X",HDISGNM,"","","") | 
|---|
| 120 | . ;If Bulletin or Mail Group not found, error | 
|---|
| 121 | . I HDISBIEN'>0!(HDISGIEN'>0) D | 
|---|
| 122 | . . S HDIMSG(1)="**" | 
|---|
| 123 | . . S HDIMSG(2)="** Bulletin "_HDISBNM_" or Mail Group "_HDISGNM_" not found" | 
|---|
| 124 | . . D MES^XPDUTL(.HDIMSG) K HDIMSG | 
|---|
| 125 | . . S HDISERRF=1 | 
|---|
| 126 | . ELSE  D | 
|---|
| 127 | . . ;Attach Mail Group to Bulletin | 
|---|
| 128 | . . N HDISFDA,HDISIEN,HDISMSG | 
|---|
| 129 | . . S HDISFDA(3.62,"?+2,"_HDISBIEN_",",.01)=HDISGIEN | 
|---|
| 130 | . . D UPDATE^DIE("","HDISFDA","HDISIEN","HDISMSG") | 
|---|
| 131 | . . ;Check for error | 
|---|
| 132 | . . I $D(HDISMSG("DIERR")) D | 
|---|
| 133 | . . . S HDIMSG(1)="**" | 
|---|
| 134 | . . . S HDIMSG(2)="** Unable to attach "_HDISGNM_" to "_HDISBNM | 
|---|
| 135 | . . . D MES^XPDUTL(.HDIMSG) K HDIMSG | 
|---|
| 136 | . . . S HDISERRF=1 | 
|---|
| 137 | . . ELSE  D | 
|---|
| 138 | . . . S HDIMSG(1)=" " | 
|---|
| 139 | . . . S HDIMSG(2)=".."_HDISGNM_" Mail Group"_$S($G(HDISIEN(2,0))="?":" already",1:"")_" attached to "_HDISBNM_" Bulletin" | 
|---|
| 140 | . . . D MES^XPDUTL(.HDIMSG) K HDIMSG | 
|---|
| 141 | ;Check for error | 
|---|
| 142 | I $G(HDISERRF) D | 
|---|
| 143 | . S HDIMSG(1)="** Post-installation will be halted" | 
|---|
| 144 | . S HDIMSG(2)="**" | 
|---|
| 145 | . D MES^XPDUTL(.HDIMSG) K HDIMSG | 
|---|
| 146 | Q +$S($G(HDISERRF):0,1:1) | 
|---|
| 147 | ; | 
|---|
| 148 | BULGRP ;Bulletin Name^Mail Group Name | 
|---|
| 149 | ;;HDIS ERRORS^HDIS ERRORS | 
|---|
| 150 | ;;HDIS NOTIFY ERT^HDIS ERT NOTIFICATION | 
|---|
| 151 | ;;HDIS NOTIFY HDR^HDIS HDR NOTIFICATION | 
|---|
| 152 | ;;HDIS XML MSG PROCESS ERROR^HDIS ERRORS | 
|---|
| 153 | ;;END | 
|---|
| 154 | ; | 
|---|
| 155 | ATTREM() ;Attach HDIS Remote Members to HDIS Mail Groups | 
|---|
| 156 | N HDISERRF,HDISFDA,HDISGIEN,HDISGNM,HDISLNE,HDISMSG,HDISRNM,HDISTXT | 
|---|
| 157 | K HDIMSG | 
|---|
| 158 | D BMES^XPDUTL("Attaching HDIS Remote Members to HDIS Mail Groups") | 
|---|
| 159 | F HDISLNE=1:1 S HDISTXT=$P($T(REMMEM+HDISLNE),";;",2) Q:HDISTXT="END"!($G(HDISERRF))  D | 
|---|
| 160 | . S HDISGNM=$P(HDISTXT,"^",1) | 
|---|
| 161 | . S HDISGIEN=$$FIND1^DIC(3.8,"","X",HDISGNM,"","","") | 
|---|
| 162 | . S HDISRNM=$P(HDISTXT,"^",2) | 
|---|
| 163 | . ;If Mail Group not found, error | 
|---|
| 164 | . I HDISGIEN'>0 D | 
|---|
| 165 | . . S HDIMSG(1)="**" | 
|---|
| 166 | . . S HDIMSG(2)="** Mail Group "_HDISGNM_" not found" | 
|---|
| 167 | . . D MES^XPDUTL(.HDIMSG) K HDIMSG | 
|---|
| 168 | . . S HDISERRF=1 | 
|---|
| 169 | . ELSE  D | 
|---|
| 170 | . . ;Attach Remote Member to Mail Group | 
|---|
| 171 | . . N HDISFDA,HDISIEN,HDISMSG | 
|---|
| 172 | . . S HDISFDA(3.812,"?+2,"_HDISGIEN_",",.01)=HDISRNM | 
|---|
| 173 | . . D UPDATE^DIE("","HDISFDA","HDISIEN","HDISMSG") | 
|---|
| 174 | . . ;Check for error | 
|---|
| 175 | . . I $D(HDISMSG("DIERR")) D | 
|---|
| 176 | . . . S HDIMSG(1)="**" | 
|---|
| 177 | . . . S HDIMSG(2)="** Unable to attach "_HDISRNM_" to "_HDISGNM | 
|---|
| 178 | . . . D MES^XPDUTL(.HDIMSG) K HDIMSG | 
|---|
| 179 | . . . S HDISERRF=1 | 
|---|
| 180 | . . ELSE  D | 
|---|
| 181 | . . . S HDIMSG(1)=" " | 
|---|
| 182 | . . . S HDIMSG(2)=".."_HDISRNM_$S($G(HDISIEN(2,0))="?":" already",1:"")_" attached to "_HDISGNM | 
|---|
| 183 | . . . D MES^XPDUTL(.HDIMSG) K HDIMSG | 
|---|
| 184 | ;Check for error | 
|---|
| 185 | I $G(HDISERRF) D | 
|---|
| 186 | . S HDIMSG(1)="** Post-installation will be halted" | 
|---|
| 187 | . S HDIMSG(2)="**" | 
|---|
| 188 | . D MES^XPDUTL(.HDIMSG) K HDIMSG | 
|---|
| 189 | Q +$S($G(HDISERRF):0,1:1) | 
|---|
| 190 | ; | 
|---|
| 191 | REMMEM ;Mail Group Name^Remote Member | 
|---|
| 192 | ;;HDIS ERRORS^G.HDIS ERRORS@FORUM.VA.GOV | 
|---|
| 193 | ;;HDIS ERT NOTIFICATION^G.HDIS ERRORS@FORUM.VA.GOV | 
|---|
| 194 | ;;HDIS ERT NOTIFICATION^G.HDIS ERT NOTIFICATION@FORUM.VA.GOV | 
|---|
| 195 | ;;HDIS HDR NOTIFICATION^G.HDIS HDR NOTIFICATION@FORUM.VA.GOV | 
|---|
| 196 | ;;END | 
|---|