HDI1000A ;BPFO/JRP - HDI v1.0 POST-INSTALL ROUTINE;2/17/2005
;;1.0;HEALTH DATA & INFORMATICS;;Feb 22, 2005
;
POST ;Main entry point for post-install routine
; Input: None
; All variables set by Kernel for KIDS post-installs
;Output: None
N HDIMSG
S HDIMSG(1)=" "
S HDIMSG(2)="~~~~~~~~~~~~~~~~~~~~"
S HDIMSG(3)="Post-Installation (POST^HDI1000A) will now be run"
S HDIMSG(4)=" "
D MES^XPDUTL(.HDIMSG) K HDIMSG
I '$$SERVERS^HDI1000B() D PSTHALT Q
I '$$ATTBUL^HDI1000B() D PSTHALT Q
I '$$ATTREM^HDI1000B() D PSTHALT Q
I '$$SYSPAR() D PSTHALT Q
I '$$VUID() D PSTHALT Q
S HDIMSG(1)=" "
S HDIMSG(2)="Post-Installation ran to completion"
S HDIMSG(3)="~~~~~~~~~~~~~~~~~~~~"
S HDIMSG(4)=" "
D MES^XPDUTL(.HDIMSG) K HDIMSG
Q
;
PSTHALT ;Print post-install halted text
N HDIMSG
S HDIMSG(1)=" "
S HDIMSG(2)="*****"
S HDIMSG(3)="***** Post-installation has been halted"
S HDIMSG(4)="***** Please contact Enterprise VistA Support"
S HDIMSG(5)="*****"
S HDIMSG(6)=" "
D MES^XPDUTL(.HDIMSG)
Q
;
SYSPAR() ;Initialize HDIS System and HDIS Parameter files
; Input: None
;Output: 0 = Stop post-install (error)
; 1 = Continue with post-install
N FACNUM,DOMAIN,SYSTYPE,X,SYSPTR,HDIMSG,PRAMPTR
;Determine system information
S FACNUM=$$FACNUM^HDISVF01()
S DOMAIN=$G(^XMB("NETNAME"))
S SYSTYPE=$$PROD^XUPROD()
S HDIMSG(1)=" "
S HDIMSG(2)="The following information concerning this system has been"
S HDIMSG(3)="determined and will be used to initialize the HDIS SYSTEM"
S HDIMSG(4)="(#7118.21) and HDIS PARAMETER (#7118.29) files"
S HDIMSG(5)=" "
S HDIMSG(6)=" Facility Number: "_FACNUM
S HDIMSG(7)=" MailMan Domain: "_DOMAIN
S HDIMSG(8)=" System Type: "_$S(SYSTYPE:"Production",1:"Test")
S HDIMSG(9)=" "
D MES^XPDUTL(.HDIMSG) K HDIMSG
;Create entry in HDIS System file
D BMES^XPDUTL("Creating entry in HDIS SYSTEM file")
I '$$FINDSYS^HDISVF07(DOMAIN,FACNUM,SYSTYPE,1,.SYSPTR) D Q 0
.S HDIMSG(1)="**"
.S HDIMSG(2)="** Unable to create entry"
.S HDIMSG(3)="** Post-installation will be halted"
.S HDIMSG(4)="**"
.D MES^XPDUTL(.HDIMSG) K HDIMSG
D MES^XPDUTL("Entry number "_SYSPTR_" created")
;Create entry in HDIS Parameter file
D BMES^XPDUTL("Creating entry in HDIS PARAMETER file")
S PRAMPTR=$$PARAMINI^HDISVF10(SYSPTR)
I 'PRAMPTR D Q 0
.S HDIMSG(1)="**"
.S HDIMSG(2)="** Unable to create entry"
.S HDIMSG(3)="** Post-installation will be halted"
.S HDIMSG(4)="**"
.D MES^XPDUTL(.HDIMSG) K HDIMSG
D MES^XPDUTL("Entry number "_PRAMPTR_" created")
;Done if this is not FORUM
I DOMAIN'="FORUM.VA.GOV" Q 1
;This is FORUM - make it a server
D BMES^XPDUTL("Making FORUM a server")
D SETTYPE^HDISVF02(2,SYSPTR)
I (+$$GETTYPE^HDISVF02(SYSPTR))'=2 D
.S HDIMSG(1)="**"
.S HDIMSG(2)="** Unable to change system type to SERVER"
.S HDIMSG(3)="**"
.D MES^XPDUTL(.HDIMSG) K HDIMSG
;Set Last Non-Standard VUID field
I '$$GETNSVL^HDISVF03(SYSPTR) S X=$$SET^HDISVF02(7118.29,51,PRAMPTR_",",4536403,1)
I '$$GETNSVL^HDISVF03(SYSPTR) D
.S HDIMSG(1)="**"
.S HDIMSG(2)="** Unable to set LAST NON-STANDARD VUID field to 4536403"
.S HDIMSG(3)="**"
.D MES^XPDUTL(.HDIMSG) K HDIMSG
;Set Ending Non-Standard VUID field
I '$$GETNSVE^HDISVF03(SYSPTR) S X=$$SET^HDISVF02(7118.29,52,PRAMPTR_",",4636403,1)
I '$$GETNSVE^HDISVF03(SYSPTR) D
.S HDIMSG(1)="**"
.S HDIMSG(2)="** Unable to set ENDING NON-STANDARD VUID field to 4636403"
.S HDIMSG(3)="**"
.D MES^XPDUTL(.HDIMSG) K HDIMSG
;Done
Q 1
;
VUID() ;Instantiate VUIDs for set of code fields in Vitals domain
; Input: None
;Output: 0 = Stop post-install (error)
; 1 = Continue with post-install
N HDIMSG
S HDIMSG(1)=" "
S HDIMSG(2)="Seeding XTID VUID FOR SET OF CODES file (#8985.1) with Vitals data"
S HDIMSG(3)=" "
D MES^XPDUTL(.HDIMSG) K HDIMSG
I '$$VUIDL("VITALS","HDI1000C") Q 0
S HDIMSG(1)=" "
S HDIMSG(2)="Seeding XTID VUID FOR SET OF CODES file (8985.1) with Allergy data"
S HDIMSG(3)=" "
D MES^XPDUTL(.HDIMSG) K HDIMSG
I '$$VUIDL("ALLERGY","HDI1000C") Q 0
S HDIMSG(1)=" "
S HDIMSG(2)="Seeding XTID VUID FOR SET OF CODES file (8985.1) with Lab & Pharmacy data"
S HDIMSG(3)=" "
D MES^XPDUTL(.HDIMSG) K HDIMSG
I '$$VUIDL("LABPHAR","HDI1000D") Q 0
I '$$VUIDL("LABPHAR","HDI1000E") Q 0
I '$$VUIDL("LABPHAR","HDI1000F") Q 0
I '$$VUIDL("LABPHAR","HDI1000G") Q 0
Q 1
;
VUIDL(TAG,ROUTINE) ;Instantiate VUIDs for set of code fields
; Input: TAG - Line tag under which VUID data has been placed
; ROUTINE - Routine line tag is in
; Leave blank if in this routine
;Output: 0 = Stop post-install (error)
; 1 = Continue with post-install
; Notes: Data lines must be in the format
; File~Field~Code~VUID~Status~EffectiveDateTime
; (Status and EffectiveDateTime must be in internal format)
; (Default value for Status is 0 - Inactive)
; (Default value for EffectiveDateTime is NOW)
; : Call assumes that all input (TAG & ROUTINE) is valid
; : Call assumes that data lines are valid
; (i.e. no missing/bad data)
N OFFSET,DATA,FILE,FIELD,IREF,VUID,STAT,STDT,DONE,RESULT,HDIMSG
S ROUTINE=$G(ROUTINE)
S RESULT=1
S DONE=0
F OFFSET=1:1 D Q:DONE
.S DATA=$S(ROUTINE="":$T(@TAG+OFFSET),1:$T(@TAG+OFFSET^@ROUTINE))
.S DATA=$P(DATA,";;",2)
.I DATA="" S DONE=1 Q
.S FILE=$P(DATA,"~",1)
.S FIELD=$P(DATA,"~",2)
.S IREF=$P(DATA,"~",3)
.S VUID=$P(DATA,"~",4)
.S STAT=$P(DATA,"~",5)
.I STAT="" S STAT=0
.S STDT=$P(DATA,"~",6)
.I STDT="" S STDT=$$NOW^XLFDT()
.I '$$STOREIT(FILE,FIELD,IREF,VUID,STAT,STDT) D
..S HDIMSG(1)="**"
..S HDIMSG(2)="** Unable to store VUID and/or status information for file"
..S HDIMSG(3)="** "_FILE_", field "_FIELD_", and internal value "_IREF
..S HDIMSG(4)="**"
..D MES^XPDUTL(.HDIMSG) K HDIMSG
..S RESULT=0
Q RESULT
;
STOREIT(FILE,FIELD,IREF,VUID,STAT,STDT) ;Store VUID info
; Input : FILE - File number
; FIELD - Field number
; IREF - Internal reference
; VUID - VUID
; STAT - Status
; 0 = Inacive (default) 1 = Active
; STDT - Status Date/Time (FileMan)
; (Defaults to NOW)
;Output : 1 = Success
; 0 = Failure
; Notes : Existance/validity of input assumed (internal call)
; : Call will automatically inactivate terms when appropriate
;
N TMP,MASTER
S STAT=+$G(STAT)
S STDT=+$G(STDT)
I 'STDT S STDT=$$NOW^XLFDT()
;Store VUID (also sets master entry flag, if appropriate)
I '$$SETVUID^XTID(FILE,FIELD,IREF,VUID) Q 0
;Inactivate non-master entries
I '$$GETMASTR^XTID(FILE,FIELD,IREF) D
.S STAT=0
.S STDT=$$NOW^XLFDT()
;Store status
Q $$SETSTAT^XTID(FILE,FIELD,IREF,STAT,STDT)
HDI1000A ;BPFO/JRP - HDI v1.0 POST-INSTALL ROUTINE;2/17/2005
+1 ;;1.0;HEALTH DATA & INFORMATICS;;Feb 22, 2005
+2 ;
POST ;Main entry point for post-install routine
+1 ; Input: None
+2 ; All variables set by Kernel for KIDS post-installs
+3 ;Output: None
+4 NEW HDIMSG
+5 SET HDIMSG(1)=" "
+6 SET HDIMSG(2)="~~~~~~~~~~~~~~~~~~~~"
+7 SET HDIMSG(3)="Post-Installation (POST^HDI1000A) will now be run"
+8 SET HDIMSG(4)=" "
+9 DO MES^XPDUTL(.HDIMSG)
KILL HDIMSG
+10 IF '$$SERVERS^HDI1000B()
DO PSTHALT
QUIT
+11 IF '$$ATTBUL^HDI1000B()
DO PSTHALT
QUIT
+12 IF '$$ATTREM^HDI1000B()
DO PSTHALT
QUIT
+13 IF '$$SYSPAR()
DO PSTHALT
QUIT
+14 IF '$$VUID()
DO PSTHALT
QUIT
+15 SET HDIMSG(1)=" "
+16 SET HDIMSG(2)="Post-Installation ran to completion"
+17 SET HDIMSG(3)="~~~~~~~~~~~~~~~~~~~~"
+18 SET HDIMSG(4)=" "
+19 DO MES^XPDUTL(.HDIMSG)
KILL HDIMSG
+20 QUIT
+21 ;
PSTHALT ;Print post-install halted text
+1 NEW HDIMSG
+2 SET HDIMSG(1)=" "
+3 SET HDIMSG(2)="*****"
+4 SET HDIMSG(3)="***** Post-installation has been halted"
+5 SET HDIMSG(4)="***** Please contact Enterprise VistA Support"
+6 SET HDIMSG(5)="*****"
+7 SET HDIMSG(6)=" "
+8 DO MES^XPDUTL(.HDIMSG)
+9 QUIT
+10 ;
SYSPAR() ;Initialize HDIS System and HDIS Parameter files
+1 ; Input: None
+2 ;Output: 0 = Stop post-install (error)
+3 ; 1 = Continue with post-install
+4 NEW FACNUM,DOMAIN,SYSTYPE,X,SYSPTR,HDIMSG,PRAMPTR
+5 ;Determine system information
+6 SET FACNUM=$$FACNUM^HDISVF01()
+7 SET DOMAIN=$GET(^XMB("NETNAME"))
+8 SET SYSTYPE=$$PROD^XUPROD()
+9 SET HDIMSG(1)=" "
+10 SET HDIMSG(2)="The following information concerning this system has been"
+11 SET HDIMSG(3)="determined and will be used to initialize the HDIS SYSTEM"
+12 SET HDIMSG(4)="(#7118.21) and HDIS PARAMETER (#7118.29) files"
+13 SET HDIMSG(5)=" "
+14 SET HDIMSG(6)=" Facility Number: "_FACNUM
+15 SET HDIMSG(7)=" MailMan Domain: "_DOMAIN
+16 SET HDIMSG(8)=" System Type: "_$SELECT(SYSTYPE:"Production",1:"Test")
+17 SET HDIMSG(9)=" "
+18 DO MES^XPDUTL(.HDIMSG)
KILL HDIMSG
+19 ;Create entry in HDIS System file
+20 DO BMES^XPDUTL("Creating entry in HDIS SYSTEM file")
+21 IF '$$FINDSYS^HDISVF07(DOMAIN,FACNUM,SYSTYPE,1,.SYSPTR)
Begin DoDot:1
+22 SET HDIMSG(1)="**"
+23 SET HDIMSG(2)="** Unable to create entry"
+24 SET HDIMSG(3)="** Post-installation will be halted"
+25 SET HDIMSG(4)="**"
+26 DO MES^XPDUTL(.HDIMSG)
KILL HDIMSG
End DoDot:1
QUIT 0
+27 DO MES^XPDUTL("Entry number "_SYSPTR_" created")
+28 ;Create entry in HDIS Parameter file
+29 DO BMES^XPDUTL("Creating entry in HDIS PARAMETER file")
+30 SET PRAMPTR=$$PARAMINI^HDISVF10(SYSPTR)
+31 IF 'PRAMPTR
Begin DoDot:1
+32 SET HDIMSG(1)="**"
+33 SET HDIMSG(2)="** Unable to create entry"
+34 SET HDIMSG(3)="** Post-installation will be halted"
+35 SET HDIMSG(4)="**"
+36 DO MES^XPDUTL(.HDIMSG)
KILL HDIMSG
End DoDot:1
QUIT 0
+37 DO MES^XPDUTL("Entry number "_PRAMPTR_" created")
+38 ;Done if this is not FORUM
+39 IF DOMAIN'="FORUM.VA.GOV"
QUIT 1
+40 ;This is FORUM - make it a server
+41 DO BMES^XPDUTL("Making FORUM a server")
+42 DO SETTYPE^HDISVF02(2,SYSPTR)
+43 IF (+$$GETTYPE^HDISVF02(SYSPTR))'=2
Begin DoDot:1
+44 SET HDIMSG(1)="**"
+45 SET HDIMSG(2)="** Unable to change system type to SERVER"
+46 SET HDIMSG(3)="**"
+47 DO MES^XPDUTL(.HDIMSG)
KILL HDIMSG
End DoDot:1
+48 ;Set Last Non-Standard VUID field
+49 IF '$$GETNSVL^HDISVF03(SYSPTR)
SET X=$$SET^HDISVF02(7118.29,51,PRAMPTR_",",4536403,1)
+50 IF '$$GETNSVL^HDISVF03(SYSPTR)
Begin DoDot:1
+51 SET HDIMSG(1)="**"
+52 SET HDIMSG(2)="** Unable to set LAST NON-STANDARD VUID field to 4536403"
+53 SET HDIMSG(3)="**"
+54 DO MES^XPDUTL(.HDIMSG)
KILL HDIMSG
End DoDot:1
+55 ;Set Ending Non-Standard VUID field
+56 IF '$$GETNSVE^HDISVF03(SYSPTR)
SET X=$$SET^HDISVF02(7118.29,52,PRAMPTR_",",4636403,1)
+57 IF '$$GETNSVE^HDISVF03(SYSPTR)
Begin DoDot:1
+58 SET HDIMSG(1)="**"
+59 SET HDIMSG(2)="** Unable to set ENDING NON-STANDARD VUID field to 4636403"
+60 SET HDIMSG(3)="**"
+61 DO MES^XPDUTL(.HDIMSG)
KILL HDIMSG
End DoDot:1
+62 ;Done
+63 QUIT 1
+64 ;
VUID() ;Instantiate VUIDs for set of code fields in Vitals domain
+1 ; Input: None
+2 ;Output: 0 = Stop post-install (error)
+3 ; 1 = Continue with post-install
+4 NEW HDIMSG
+5 SET HDIMSG(1)=" "
+6 SET HDIMSG(2)="Seeding XTID VUID FOR SET OF CODES file (#8985.1) with Vitals data"
+7 SET HDIMSG(3)=" "
+8 DO MES^XPDUTL(.HDIMSG)
KILL HDIMSG
+9 IF '$$VUIDL("VITALS","HDI1000C")
QUIT 0
+10 SET HDIMSG(1)=" "
+11 SET HDIMSG(2)="Seeding XTID VUID FOR SET OF CODES file (8985.1) with Allergy data"
+12 SET HDIMSG(3)=" "
+13 DO MES^XPDUTL(.HDIMSG)
KILL HDIMSG
+14 IF '$$VUIDL("ALLERGY","HDI1000C")
QUIT 0
+15 SET HDIMSG(1)=" "
+16 SET HDIMSG(2)="Seeding XTID VUID FOR SET OF CODES file (8985.1) with Lab & Pharmacy data"
+17 SET HDIMSG(3)=" "
+18 DO MES^XPDUTL(.HDIMSG)
KILL HDIMSG
+19 IF '$$VUIDL("LABPHAR","HDI1000D")
QUIT 0
+20 IF '$$VUIDL("LABPHAR","HDI1000E")
QUIT 0
+21 IF '$$VUIDL("LABPHAR","HDI1000F")
QUIT 0
+22 IF '$$VUIDL("LABPHAR","HDI1000G")
QUIT 0
+23 QUIT 1
+24 ;
VUIDL(TAG,ROUTINE) ;Instantiate VUIDs for set of code fields
+1 ; Input: TAG - Line tag under which VUID data has been placed
+2 ; ROUTINE - Routine line tag is in
+3 ; Leave blank if in this routine
+4 ;Output: 0 = Stop post-install (error)
+5 ; 1 = Continue with post-install
+6 ; Notes: Data lines must be in the format
+7 ; File~Field~Code~VUID~Status~EffectiveDateTime
+8 ; (Status and EffectiveDateTime must be in internal format)
+9 ; (Default value for Status is 0 - Inactive)
+10 ; (Default value for EffectiveDateTime is NOW)
+11 ; : Call assumes that all input (TAG & ROUTINE) is valid
+12 ; : Call assumes that data lines are valid
+13 ; (i.e. no missing/bad data)
+14 NEW OFFSET,DATA,FILE,FIELD,IREF,VUID,STAT,STDT,DONE,RESULT,HDIMSG
+15 SET ROUTINE=$GET(ROUTINE)
+16 SET RESULT=1
+17 SET DONE=0
+18 FOR OFFSET=1:1
Begin DoDot:1
+19 SET DATA=$SELECT(ROUTINE="":$TEXT(@TAG+OFFSET),1:$TEXT(@TAG+OFFSET^@ROUTINE))
+20 SET DATA=$PIECE(DATA,";;",2)
+21 IF DATA=""
SET DONE=1
QUIT
+22 SET FILE=$PIECE(DATA,"~",1)
+23 SET FIELD=$PIECE(DATA,"~",2)
+24 SET IREF=$PIECE(DATA,"~",3)
+25 SET VUID=$PIECE(DATA,"~",4)
+26 SET STAT=$PIECE(DATA,"~",5)
+27 IF STAT=""
SET STAT=0
+28 SET STDT=$PIECE(DATA,"~",6)
+29 IF STDT=""
SET STDT=$$NOW^XLFDT()
+30 IF '$$STOREIT(FILE,FIELD,IREF,VUID,STAT,STDT)
Begin DoDot:2
+31 SET HDIMSG(1)="**"
+32 SET HDIMSG(2)="** Unable to store VUID and/or status information for file"
+33 SET HDIMSG(3)="** "_FILE_", field "_FIELD_", and internal value "_IREF
+34 SET HDIMSG(4)="**"
+35 DO MES^XPDUTL(.HDIMSG)
KILL HDIMSG
+36 SET RESULT=0
End DoDot:2
End DoDot:1
IF DONE
QUIT
+37 QUIT RESULT
+38 ;
STOREIT(FILE,FIELD,IREF,VUID,STAT,STDT) ;Store VUID info
+1 ; Input : FILE - File number
+2 ; FIELD - Field number
+3 ; IREF - Internal reference
+4 ; VUID - VUID
+5 ; STAT - Status
+6 ; 0 = Inacive (default) 1 = Active
+7 ; STDT - Status Date/Time (FileMan)
+8 ; (Defaults to NOW)
+9 ;Output : 1 = Success
+10 ; 0 = Failure
+11 ; Notes : Existance/validity of input assumed (internal call)
+12 ; : Call will automatically inactivate terms when appropriate
+13 ;
+14 NEW TMP,MASTER
+15 SET STAT=+$GET(STAT)
+16 SET STDT=+$GET(STDT)
+17 IF 'STDT
SET STDT=$$NOW^XLFDT()
+18 ;Store VUID (also sets master entry flag, if appropriate)
+19 IF '$$SETVUID^XTID(FILE,FIELD,IREF,VUID)
QUIT 0
+20 ;Inactivate non-master entries
+21 IF '$$GETMASTR^XTID(FILE,FIELD,IREF)
Begin DoDot:1
+22 SET STAT=0
+23 SET STDT=$$NOW^XLFDT()
End DoDot:1
+24 ;Store status
+25 QUIT $$SETSTAT^XTID(FILE,FIELD,IREF,STAT,STDT)