Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: HLCSAC

HLCSAC.m

Go to the documentation of this file.
  1. HLCSAC ;ISCSF/RWF - MPI direct connect client ;05/31/2000 09:40 [ 04/02/2003 8:38 AM ]
  1. ;;1.6;HEALTH LEVEL SEVEN;**1004**;APR 1, 2003
  1. ;;1.6;HEALTH LEVEL SEVEN;**43,64**;Jul 17,1995
  1. ;
  1. EN(HLDP,INPUT,OUTPUT) ;Call to do direct connect to MPI
  1. N HCSCMD,HLCS,HCSDAT,HCSER,HCSEXIT,HCSTRACE,HLDT1,HLOS
  1. N HLDRETR,HLDBSIZE,HLDREAD,HLDBACK,HLDWAIT,HLTCPADD,HLTCPORT,HLTCPCS,HLTCPLNK,X,Y
  1. ;HLCS=error
  1. S HLCS="",HCSTRACE="C: ",POP=1
  1. N $ESTACK,$ETRAP S $ETRAP="D ERROR^HLCSAC"
  1. D SETUP G:HLCS ERR
  1. D OPEN G:HLCS ERR
  1. D HELO G:HLCS ERR
  1. D DATA G:HLCS ERR
  1. D TURN G:HLCS ERR
  1. D GET G:HLCS ERR
  1. D QUIT
  1. Q 0
  1. ERR ;Report back an error
  1. D TRACE("ERROR "_HLCS)
  1. D:'POP QUIT
  1. Q HLCS
  1. ;
  1. ERROR ;Trap an error
  1. D ^%ZTER G UNWIND^%ZTER
  1. ;
  1. OPEN ;Open connection
  1. N HLI
  1. D TRACE("Make Connection")
  1. F HLI=1:1:HLDRETR D Q:'POP
  1. . D CALL^%ZISTCP(HLTCPADD,HLTCPORT,1)
  1. I POP S HLCS="-1^Inital Connection Failed" Q
  1. D TRACE("Got Connection")
  1. U IO
  1. Q
  1. HELO ;start conversation
  1. S X=$$POST("HELO "_$$KSP^XUPARAM("WHERE"))
  1. I $E(X,1)'=2 S HLCS="-1^Initial HELO Failed"
  1. I $E(X,1,3)="421" S HLCS="-1^Busy"
  1. Q
  1. DATA ;Send data
  1. D TRACE("Send Data")
  1. D SDATA^HLCSAS1(INPUT,"MPI"),CREAD^HLCSAS
  1. I $E(HCSCMD,1)'=2 S HLCS="-1^No 220 after send "_HCSDAT Q
  1. Q
  1. ;
  1. TURN ;Turn channel
  1. S X=$$POST("TURN ") I $E(X,1)'=2 S HLCS="-1^No 220 after Turn"
  1. Q
  1. GET ;Get responce
  1. D CREAD^HLCSAS I HCSCMD[220 G GET
  1. I HCSCMD'["DATA" S HLCS="-1^No DATA cmd "_HCSCMD Q
  1. D DATA^HLCSAS1(OUTPUT)
  1. Q
  1. QUIT ;Shut down
  1. D SEND^HLCSAS("QUIT ")
  1. D CLOSE^%ZISTCP,USE^%ZISUTL("HCS-HOME"),RMDEV^%ZISUTL("HCS-HOME")
  1. Q
  1. ;
  1. POST(MSG) ;Send a command and get responce
  1. D SEND^HLCSAS(MSG)
  1. D CREAD^HLCSAS
  1. Q HCSCMD
  1. ;
  1. TRACE(S1) ;
  1. Q
  1. N %,H
  1. I S1=-1 K ^TMP("HCSA",$J) Q
  1. S H=$P($H,",",2),H=(H\3600)_":"_(H#3600\60)_":"_(H#60)_" "
  1. L +^TMP("HCSA",$J) S %=$G(^TMP("HCSA",$J,0))+1,^(0)=%,^(%)=H_HCSTRACE_S1 L -^TMP("HCSA",$J)
  1. Q
  1. SETUP ;
  1. I ($G(HLDP)']"")!($G(INPUT)']"")!($G(OUTPUT)']"") S HLCS="-1^Missing input paramerter" Q
  1. S X=$$INIT^HLCSTCP
  1. I 'X S HLCS="-1^Bad Logical Link" Q
  1. I $G(HLP("ACKTIME")) S HLDREAD=HLP("ACKTIME")
  1. S (HCS("STAT"),HCSEXIT)=0
  1. D TRACE(-1),TRACE("Client Setup")
  1. Q