[613] | 1 | XWBVLC ;OIFO-Oakland/REM - M2M Broker Client ;05/17/2002 17:47
|
---|
| 2 | ;;1.1;RPC BROKER;**28**;Mar 28, 1997
|
---|
| 3 | ;QUIT
|
---|
| 4 | ;
|
---|
| 5 | EXECUTE(XWBPARMS) ; -- Main entry point
|
---|
| 6 | NEW X,XWBI,XWBOK,XWBRES,XWBREF,XWBROOT,XWBREQ,XWBREAD,XWBTO,XWBFIRST,XWBSTOP
|
---|
| 7 | NEW $ETRAP,$ESTACK S $ETRAP="D SYSERR^XWBVLL"
|
---|
| 8 | ;
|
---|
| 9 | ; -- if no 'results' node set, set it and kill it!
|
---|
| 10 | IF $G(XWBPARMS("RESULTS"))="" SET XWBPARMS("RESULTS")=$NA(^TMP("XWBM2MVLC",$J,"XML"))
|
---|
| 11 | SET XWBROOT=XWBPARMS("RESULTS")
|
---|
| 12 | KILL @XWBROOT
|
---|
| 13 | ;
|
---|
| 14 | SET XWBREQ=XWBPARMS("REQUEST")
|
---|
| 15 | ;
|
---|
| 16 | SET XWBRES=0
|
---|
| 17 | ;
|
---|
| 18 | ; -- check for socket information **M2M - use later for error chk
|
---|
| 19 | ;IF '$D(XWBPARMS("ADDRESS")) D CLIERR(1,.XWBROOT) GOTO MAINQ
|
---|
| 20 | ;IF '$D(XWBPARMS("PORT")) D CLIERR(2,.XWBROOT) GOTO MAINQ
|
---|
| 21 | ; Retry open 3 times
|
---|
| 22 | ;SET XWBPARMS("RETRIES")=3
|
---|
| 23 | ;
|
---|
| 24 | ;IF '$$OPEN^XWBRL(.XWBPARMS) D CLIERR(3,.XWBROOT) GOTO MAINQ ;can pull out after it works with M2M **REM
|
---|
| 25 | ;
|
---|
| 26 | ; -- write request
|
---|
| 27 | DO PRE^XWBRL
|
---|
| 28 | SET XWBI=0 FOR SET XWBI=$O(@XWBREQ@(XWBI)) Q:'XWBI DO WRITE^XWBRL(@XWBREQ@(XWBI))
|
---|
| 29 | ;
|
---|
| 30 | ;IF $G(XWBDBUG) S X=$G(XWBPARMS("URI")) M ^TMP("XWBM2MCL",X)=XWBPARMS
|
---|
| 31 | ;
|
---|
| 32 | ; -- send eot and flush buffer
|
---|
| 33 | DO POST^XWBRL
|
---|
| 34 | ;
|
---|
| 35 | SET XWBREAD=20,XWBTO=1,XWBFIRST=0,XWBSTOP=0
|
---|
| 36 | ;
|
---|
| 37 | ; -- set parameters for RawLink
|
---|
| 38 | SET XWBRL("TIME OUT")=1
|
---|
| 39 | SET XWBRL("READ CHARACTERS")=20
|
---|
| 40 | SET XWBRL("FIRST READ")=0
|
---|
| 41 | SET XWBRL("STORE")=XWBROOT
|
---|
| 42 | SET XWBRL("STOP FLAG")=0
|
---|
| 43 | ;
|
---|
| 44 | ; -- read results
|
---|
| 45 | SET XWBOK=$$READ^XWBRL(XWBROOT,.XWBREAD,.XWBTO,.XWBFIRST,.XWBSTOP)
|
---|
| 46 | ;
|
---|
| 47 | ;-------------------------------------------------------
|
---|
| 48 | ; -- close port - - delete after close works **REM
|
---|
| 49 | ;IF $G(XWBPARMS("MODE"))'="RPCBroker" D CLOSE^XWBRL
|
---|
| 50 | ;
|
---|
| 51 | ;D CLOSE^XWBRL ;Comment out for M2M
|
---|
| 52 | ;---------------------------------------------------------------
|
---|
| 53 | ;
|
---|
| 54 | ; -- app processes data (0 = success) ; I think 0 = failure **REM
|
---|
| 55 | SET XWBRES=1
|
---|
| 56 | ;
|
---|
| 57 | MAINQ ;
|
---|
| 58 | QUIT XWBRES
|
---|
| 59 | ;
|
---|
| 60 | ; ----------------------------------------------------------------------------------
|
---|
| 61 | ; Client Error Handler
|
---|
| 62 | ; ----------------------------------------------------------------------------------
|
---|
| 63 | CLIERR(XWBCODE,XWBROOT) ; -- send client error message
|
---|
| 64 | NEW XWBDAT
|
---|
| 65 | SET XWBDAT("MESSAGE TYPE")="Gov.VA.Med.Foundations.Errors"
|
---|
| 66 | SET XWBDAT("ERRORS",1,"CODE")=1
|
---|
| 67 | SET XWBDAT("ERRORS",1,"ERROR TYPE")="client"
|
---|
| 68 | SET XWBDAT("ERRORS",1,"CDATA")=1
|
---|
| 69 | SET XWBDAT("ERRORS",1,"MESSAGE",1)=$P($TEXT(CLIERRS+XWBCODE),";;",2)
|
---|
| 70 | DO BUILD^XWBUTL(.XWBROOT,.XWBDAT)
|
---|
| 71 | QUIT
|
---|
| 72 | ;
|
---|
| 73 | CLIERRS ; -- VistALink client errors
|
---|
| 74 | ;;'Address' parameter not specified.
|
---|
| 75 | ;;'Port' parameter not specified.
|
---|
| 76 | ;;"Not able to open port"
|
---|