VistA-FOIAVistA/r/HEALTH_LEVEL_SEVEN-HL/HLCSGTM.m

59 lines
1.7 KiB
Mathematica

HLCSGTM ;OIFO-O/RWF - (TCP/IP) GT.M Linux ;08/13/2007
;;1.6;HEALTH LEVEL SEVEN;**122**;Oct 13, 1995;Build 14
;Per VHA Directive 2004-038, this routine should not be modified.
;
; 1. port number is input from VMS COM file, such as HLSxxxxDSM.COM,
; HLSxxxxCACHE.COM, or HLSxxxxGTM.COM file, where xxxx is port
; number.
; 2. find the ien of #870(logical link file) for the multi-listener
Q
;
IEN(HLPORT) ;
; HLIEN870: ien in #870 (logical link file)
; HLPRTS: port number in entry to be tested
;
N HLPRTS,HLIEN870
I '$G(HLPORT) D ^%ZTER Q
S HLIEN870=0
F S HLIEN870=$O(^HLCS(870,"E","M",HLIEN870)) Q:'HLIEN870 D Q:(HLPRTS=HLPORT)
. S HLPRTS=$P(^HLCS(870,HLIEN870,400),"^",2)
I 'HLIEN870 D ^%ZTER Q
;
Q HLIEN870
;
GTMLNX ; From Linux xinetd script
;Get port from ZSHOW "D"
S U="^",$ZT="",$ET="D ^%ZTER HALT" ;Setup the error trap
; GTM specific code
S IO=$P X "U IO:(nowrap:nodelimiter:IOERROR=""TRAP"")" ;Setup device
S @("$ZINTERRUPT=""I $$JOBEXAM^ZU($ZPOSITION)""")
K ^TMP($J) ZSHOW "D":^TMP($J)
F %=1:1 Q:'$D(^TMP($J,"D",%)) S X=^(%) Q:X["LOCAL"
S IO("IP")=$P($P(X,"REMOTE=",2),"@"),IO("PORT")=+$P($P(X,"LOCAL=",2),"@",2)
S %=$P($ZTRNLNM("SSH_CLIENT")," ") S:%="" %=$ZTRNLNM("REMOTEHOST")
S HLDP=$$IEN(IO("PORT"))
;
D LISTEN^HLCSTCP
Q
;
;Sample Linux script
;#!/bin/bash
;#HL7 Listener
;cd /home/vista/dev/
;. ./gtmprofile
;#env > hl7log.txt
;$gtm_dist/mumps -r GTMLNX^HLCSGTM
;exit 0
;
;Sample xinetd config file
;service hl7tcp
;{
; socket_type = stream
; user = gtmuser
; wait = no
; disable = no
; server = /bin/bash
; server_args = -l /home/vista/dev/hl7tcp.sh
; passenv = REMOTE_HOST
;}