- XOBUM1 ;; ld,mjk/alb - Foundations Manager ; 07/27/2002 13:00
- ;;1.6;Foundations;;May 08, 2009;Build 15
- ;Per VHA directive 2004-038, this routine should not be modified.
- ;
- START(XOBPORT) ;-- Entry point to start a single VistALink Listener
- ;
- ; This procedure will start the VistALink Listener on a specific port. The port number is optional
- ; and will be validated if passed to this procedure. If the port is not passed, the user will be
- ; prompted for a port number.
- ;
- ; Input:
- ; XOBPORT - Port number for the Listener (optional)
- ;
- ; Output:
- ; None
- ;
- NEW XOBTASK,Y,XOBOK
- ;
- ;-- Reset I/O variables
- SET U="^" DO HOME^%ZIS
- ;
- DO
- . ;
- . ;-- Check operating system
- . IF '$$CHKOS() SET XOBOK=0 QUIT
- . ;
- . ;-- Validate/prompt for port
- . IF '$$VALID($GET(XOBPORT)) SET XOBPORT=$$GETPORT("start")
- . IF 'XOBPORT SET XOBOK=0 QUIT
- . ;
- . ;-- Wait msg to user
- . DO WAIT^DICD WRITE !
- . ;
- . ;-- Check if Listener is running on port
- . IF '$$LOCK^XOBVTCP(XOBPORT) DO QUIT
- . . DO EN^DDIOL("VistALink Listener on port "_XOBPORT_" appears to be running already.")
- . . SET XOBOK=0
- . ;
- . ;-- Lock was successful; unlock and queue the listener to startup
- . DO UNLOCK^XOBVTCP(XOBPORT)
- . DO UPDATE^XOBVTCP(XOBPORT,1)
- . SET XOBOK=$$START^XOBVTCP(XOBPORT)
- . IF 'XOBOK DO
- . . DO UPDATE^XOBVTCP(XOBPORT,5)
- . . DO EN^DDIOL("Unable to start VistALink Listener on port "_XOBPORT_".")
- ;
- QUIT XOBOK
- ;
- ;
- CHKOS() ;-- Check operating system
- ;
- ; This function will determine which operating system is being used.
- ;
- ; Input:
- ; None
- ;
- ; Output:
- ; Function value - returns 1 on success, 0 on failure
- ;
- NEW OPERSYS,RESULT
- ;
- SET RESULT=0
- ;
- ;-- Get operating system
- SET OPERSYS=$$GETOS^XOBVTCP()
- ;
- DO
- . IF OPERSYS="OpenM-NT" DO QUIT
- .. DO EN^DDIOL("Starting VistALink Listener...")
- .. SET RESULT=1
- . ;
- . IF OPERSYS["DSM" DO EN^DDIOL("Use the TCPIP utility in VMS to enable the VistALink Listener.") QUIT
- . ;
- . ;-- All other operating systems
- . DO EN^DDIOL("Starting the VistALink Listener is not yet supported for "_OPERSYS_".") QUIT
- . ;
- QUIT RESULT
- ;
- ;
- VALID(XOBPORT) ;-- Validate port
- ;
- ; This function will validate a port number passed in.
- ;
- ; Input:
- ; XOBPORT - Port number for the Listener (Optional)
- ;
- ; Output:
- ; Function value - returns 1 if valid, 0 otherwise
- ;
- NEW RESULT
- ;
- SET XOBPORT=+$GET(XOBPORT)
- SET RESULT=0
- ;
- ;-- Check if port is not defined or invalid
- DO ; Drops out of block on failure
- . QUIT:XOBPORT=0
- . QUIT:(XOBPORT?.AP)
- . QUIT:XOBPORT<5000!(XOBPORT>65535)
- . SET RESULT=1
- QUIT RESULT
- ;
- ;
- GETPORT(XOBST) ;-- Prompt user for port number
- ;
- ; This function will prompt the user for a valid port number.
- ;
- ; Input:
- ; XOBST - start = start Listener
- ; stop = stop Listener
- ;
- ; Output:
- ; Function value - returns port # or zero
- ;
- NEW DIR,DIRUT,PORT
- SET XOBST=$GET(XOBST)
- ;
- SET DIR(0)="NA^5000:65535"
- SET DIR("A")="Enter Port: "
- SET DIR("B")=8000 ; Default port is 8000
- SET DIR("?")="Choose a numeric port to "_XOBST_" the VistALink Listener on in the range of 5000-65535."
- DO ^DIR KILL DIR
- IF $DATA(DIRUT) DO
- . DO EN^DDIOL("Port not specified. VistALink Listener not "_$SELECT(XOBST="start":"started",1:"stopped")_".")
- . SET PORT=0
- ELSE SET PORT=+$GET(Y)
- ;
- QUIT PORT
- ;
- ;
- BOX() ; -- start this BOX-VOl default configuration
- NEW XOBOX
- IF $$CHKOS^XOBUM1() DO
- . SET XOBOK=1
- . DO WAIT^DICD WRITE !
- . DO STARTCFG^XOBVTCP($$GETCFG^XOBVTCP())
- ELSE DO
- . SET XOBOK=0
- QUIT XOBOK
- ;
- ;
- STOP(LOGDA) ; -- stop a listener
- NEW Y,X,LOG0,XOBBOX,XOBPORT,XONCFG,XOBSTAT,XOBOK,XOBCFG
- SET XOBOK=0
- ;
- SET LOG0=$GET(^XOB(18.04,LOGDA,0))
- SET XOBBOX=$PIECE(LOG0,U)
- SET XOBPORT=$PIECE(LOG0,U,2)
- SET XOBSTAT=$PIECE(LOG0,U,3)
- SET XOBCFG=$PIECE(LOG0,U,6)
- ;
- ; -- must be valid entry with a running status
- IF XOBPORT,XOBSTAT=2 DO
- . DO UPDLOG^XOBVTCP(LOGDA,XOBPORT,3,XOBCFG)
- . SET XOBOK=1
- ELSE DO
- . SET XOBOK=0_U_"Listener is not running!"
- ;
- QUIT XOBOK
- ;
- PARMS() ; -- maintain site parameters
- NEW DIC,X,Y,DR,DA,DIE,XOBOK
- SET XOBOK=0
- ;
- IF $GET(^XOB(18.01,1,0))["" DO
- . SET DA=1,DR="[XOBU SITE PARAMETERS]",DIE="^XOB(18.01," DO ^DIE
- . SET XOBOK=1
- ELSE DO
- . SET XOBOK=0_U_"Error: Site parameter file not initialized."
- ;
- QUIT XOBOK
- ;
- CFG() ; -- listener configuration edit
- NEW DIC,X,Y,DR,DA,DIE,XOBDONE,XOBOK
- SET XOBOK=0
- ;
- SET XOBDONE=0
- ;
- FOR DO QUIT:XOBDONE
- . WRITE !
- . SET DIC="^XOB(18.03,",DIC(0)="AEMLQ" DO ^DIC
- . IF Y<1 SET XOBDONE=1 QUIT
- . SET DA=+Y,DR="[XOBV LISTENER CONFIG EDIT]",DIE="^XOB(18.03," DO ^DIE
- SET XOBOK=1
- ;
- QUIT XOBOK
- ;
- CP() ; -- add a connector proxy
- NEW XOBOK
- SET XOBOK=0
- DO CONT^XUSAP
- SET XOBOK=1
- QUIT XOBOK
- ;
- --- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HXOBUM1 4926 printed Mar 13, 2025@20:59:42 Page 2
- XOBUM1 ;; ld,mjk/alb - Foundations Manager ; 07/27/2002 13:00
- +1 ;;1.6;Foundations;;May 08, 2009;Build 15
- +2 ;Per VHA directive 2004-038, this routine should not be modified.
- +3 ;
- START(XOBPORT) ;-- Entry point to start a single VistALink Listener
- +1 ;
- +2 ; This procedure will start the VistALink Listener on a specific port. The port number is optional
- +3 ; and will be validated if passed to this procedure. If the port is not passed, the user will be
- +4 ; prompted for a port number.
- +5 ;
- +6 ; Input:
- +7 ; XOBPORT - Port number for the Listener (optional)
- +8 ;
- +9 ; Output:
- +10 ; None
- +11 ;
- +12 NEW XOBTASK,Y,XOBOK
- +13 ;
- +14 ;-- Reset I/O variables
- +15 SET U="^"
- DO HOME^%ZIS
- +16 ;
- +17 Begin DoDot:1
- +18 ;
- +19 ;-- Check operating system
- +20 IF '$$CHKOS()
- SET XOBOK=0
- QUIT
- +21 ;
- +22 ;-- Validate/prompt for port
- +23 IF '$$VALID($GET(XOBPORT))
- SET XOBPORT=$$GETPORT("start")
- +24 IF 'XOBPORT
- SET XOBOK=0
- QUIT
- +25 ;
- +26 ;-- Wait msg to user
- +27 DO WAIT^DICD
- WRITE !
- +28 ;
- +29 ;-- Check if Listener is running on port
- +30 IF '$$LOCK^XOBVTCP(XOBPORT)
- Begin DoDot:2
- +31 DO EN^DDIOL("VistALink Listener on port "_XOBPORT_" appears to be running already.")
- +32 SET XOBOK=0
- End DoDot:2
- QUIT
- +33 ;
- +34 ;-- Lock was successful; unlock and queue the listener to startup
- +35 DO UNLOCK^XOBVTCP(XOBPORT)
- +36 DO UPDATE^XOBVTCP(XOBPORT,1)
- +37 SET XOBOK=$$START^XOBVTCP(XOBPORT)
- +38 IF 'XOBOK
- Begin DoDot:2
- +39 DO UPDATE^XOBVTCP(XOBPORT,5)
- +40 DO EN^DDIOL("Unable to start VistALink Listener on port "_XOBPORT_".")
- End DoDot:2
- End DoDot:1
- +41 ;
- +42 QUIT XOBOK
- +43 ;
- +44 ;
- CHKOS() ;-- Check operating system
- +1 ;
- +2 ; This function will determine which operating system is being used.
- +3 ;
- +4 ; Input:
- +5 ; None
- +6 ;
- +7 ; Output:
- +8 ; Function value - returns 1 on success, 0 on failure
- +9 ;
- +10 NEW OPERSYS,RESULT
- +11 ;
- +12 SET RESULT=0
- +13 ;
- +14 ;-- Get operating system
- +15 SET OPERSYS=$$GETOS^XOBVTCP()
- +16 ;
- +17 Begin DoDot:1
- +18 IF OPERSYS="OpenM-NT"
- Begin DoDot:2
- +19 DO EN^DDIOL("Starting VistALink Listener...")
- +20 SET RESULT=1
- End DoDot:2
- QUIT
- +21 ;
- +22 IF OPERSYS["DSM"
- DO EN^DDIOL("Use the TCPIP utility in VMS to enable the VistALink Listener.")
- QUIT
- +23 ;
- +24 ;-- All other operating systems
- +25 DO EN^DDIOL("Starting the VistALink Listener is not yet supported for "_OPERSYS_".")
- QUIT
- +26 ;
- End DoDot:1
- +27 QUIT RESULT
- +28 ;
- +29 ;
- VALID(XOBPORT) ;-- Validate port
- +1 ;
- +2 ; This function will validate a port number passed in.
- +3 ;
- +4 ; Input:
- +5 ; XOBPORT - Port number for the Listener (Optional)
- +6 ;
- +7 ; Output:
- +8 ; Function value - returns 1 if valid, 0 otherwise
- +9 ;
- +10 NEW RESULT
- +11 ;
- +12 SET XOBPORT=+$GET(XOBPORT)
- +13 SET RESULT=0
- +14 ;
- +15 ;-- Check if port is not defined or invalid
- +16 ; Drops out of block on failure
- Begin DoDot:1
- +17 if XOBPORT=0
- QUIT
- +18 if (XOBPORT?.AP)
- QUIT
- +19 if XOBPORT<5000!(XOBPORT>65535)
- QUIT
- +20 SET RESULT=1
- End DoDot:1
- +21 QUIT RESULT
- +22 ;
- +23 ;
- GETPORT(XOBST) ;-- Prompt user for port number
- +1 ;
- +2 ; This function will prompt the user for a valid port number.
- +3 ;
- +4 ; Input:
- +5 ; XOBST - start = start Listener
- +6 ; stop = stop Listener
- +7 ;
- +8 ; Output:
- +9 ; Function value - returns port # or zero
- +10 ;
- +11 NEW DIR,DIRUT,PORT
- +12 SET XOBST=$GET(XOBST)
- +13 ;
- +14 SET DIR(0)="NA^5000:65535"
- +15 SET DIR("A")="Enter Port: "
- +16 ; Default port is 8000
- SET DIR("B")=8000
- +17 SET DIR("?")="Choose a numeric port to "_XOBST_" the VistALink Listener on in the range of 5000-65535."
- +18 DO ^DIR
- KILL DIR
- +19 IF $DATA(DIRUT)
- Begin DoDot:1
- +20 DO EN^DDIOL("Port not specified. VistALink Listener not "_$SELECT(XOBST="start":"started",1:"stopped")_".")
- +21 SET PORT=0
- End DoDot:1
- +22 IF '$TEST
- SET PORT=+$GET(Y)
- +23 ;
- +24 QUIT PORT
- +25 ;
- +26 ;
- BOX() ; -- start this BOX-VOl default configuration
- +1 NEW XOBOX
- +2 IF $$CHKOS^XOBUM1()
- Begin DoDot:1
- +3 SET XOBOK=1
- +4 DO WAIT^DICD
- WRITE !
- +5 DO STARTCFG^XOBVTCP($$GETCFG^XOBVTCP())
- End DoDot:1
- +6 IF '$TEST
- Begin DoDot:1
- +7 SET XOBOK=0
- End DoDot:1
- +8 QUIT XOBOK
- +9 ;
- +10 ;
- STOP(LOGDA) ; -- stop a listener
- +1 NEW Y,X,LOG0,XOBBOX,XOBPORT,XONCFG,XOBSTAT,XOBOK,XOBCFG
- +2 SET XOBOK=0
- +3 ;
- +4 SET LOG0=$GET(^XOB(18.04,LOGDA,0))
- +5 SET XOBBOX=$PIECE(LOG0,U)
- +6 SET XOBPORT=$PIECE(LOG0,U,2)
- +7 SET XOBSTAT=$PIECE(LOG0,U,3)
- +8 SET XOBCFG=$PIECE(LOG0,U,6)
- +9 ;
- +10 ; -- must be valid entry with a running status
- +11 IF XOBPORT
- IF XOBSTAT=2
- Begin DoDot:1
- +12 DO UPDLOG^XOBVTCP(LOGDA,XOBPORT,3,XOBCFG)
- +13 SET XOBOK=1
- End DoDot:1
- +14 IF '$TEST
- Begin DoDot:1
- +15 SET XOBOK=0_U_"Listener is not running!"
- End DoDot:1
- +16 ;
- +17 QUIT XOBOK
- +18 ;
- PARMS() ; -- maintain site parameters
- +1 NEW DIC,X,Y,DR,DA,DIE,XOBOK
- +2 SET XOBOK=0
- +3 ;
- +4 IF $GET(^XOB(18.01,1,0))[""
- Begin DoDot:1
- +5 SET DA=1
- SET DR="[XOBU SITE PARAMETERS]"
- SET DIE="^XOB(18.01,"
- DO ^DIE
- +6 SET XOBOK=1
- End DoDot:1
- +7 IF '$TEST
- Begin DoDot:1
- +8 SET XOBOK=0_U_"Error: Site parameter file not initialized."
- End DoDot:1
- +9 ;
- +10 QUIT XOBOK
- +11 ;
- CFG() ; -- listener configuration edit
- +1 NEW DIC,X,Y,DR,DA,DIE,XOBDONE,XOBOK
- +2 SET XOBOK=0
- +3 ;
- +4 SET XOBDONE=0
- +5 ;
- +6 FOR
- Begin DoDot:1
- +7 WRITE !
- +8 SET DIC="^XOB(18.03,"
- SET DIC(0)="AEMLQ"
- DO ^DIC
- +9 IF Y<1
- SET XOBDONE=1
- QUIT
- +10 SET DA=+Y
- SET DR="[XOBV LISTENER CONFIG EDIT]"
- SET DIE="^XOB(18.03,"
- DO ^DIE
- End DoDot:1
- if XOBDONE
- QUIT
- +11 SET XOBOK=1
- +12 ;
- +13 QUIT XOBOK
- +14 ;
- CP() ; -- add a connector proxy
- +1 NEW XOBOK
- +2 SET XOBOK=0
- +3 DO CONT^XUSAP
- +4 SET XOBOK=1
- +5 QUIT XOBOK
- +6 ;