XWBRPCC ;OIFO-Oakland/REM - M2M Broker Client Utilities ;06/05/2002 17:25
;;1.1;RPC BROKER;**28,34**;Mar 28, 1997
;
QUIT
;
;p34 - added line to set "MODE" like in PRE^XWBM2MC. No longer will it
; be set in PRE^XWBM2MC - REQUEST.
;
; -------------------------------------------------------------------
; RPC Client: Methods Calls
; -------------------------------------------------------------------
;
; [Public/Supported Method]
EXECUTE(XWBPARMS) ; -- execute rpc call
;
; -- validate parameters passed
IF '$$VALIDATE(.XWBPARMS) QUIT 0
;
; -- call method to build request from parameters array
DO REQUEST(.XWBPARMS)
IF $G(XWBPARMS("RESULTS"))="" SET XWBPARMS("RESULTS")=$NA(^TMP("XWBRPC",$J,"XML"))
QUIT $$EXECUTE^XWBVLC(.XWBPARMS)
;
VALIDATE(XWBPARMS) ; -- validate parameters sent in
; // TODO: Do checks and build validate error message
QUIT 1
;
REQUEST(XWBPARMS) ; -- build XML request
;
NEW XWBLINE,XWBPI,PTYPE
SET XWBLINE=0
SET XWBPARMS("MESSAGE TYPE")="Gov.VA.Med.RPC.Request"
;
S XWBPARMS("MODE")="RPCBroker" ;*p34-added line to set "MODE" instead of in PRE^XWBM2MC.
;SET XWBPARMS("MODE")="single call" ;Comment out for **M2M
;
IF $G(XWBPARMS("REQUEST"))="" SET XWBPARMS("REQUEST")=$NA(XWBPARMS("REQUEST","XML"))
SET XWBREQ=XWBPARMS("REQUEST")
KILL @XWBREQ
;
DO ADD($$XMLHDR^XWBUTL())
;p34-added 'broker m2m' in XML message
DO ADD("")
;
I $G(XWBPARMS("MODE"))'="RPCBroker" D
. DO ADD("")
. ;
. ;**M2M - don't send DUZ
. DO ADD("")
. DO ADD("")
. ;
. DO ADD("")
. DO ADD("")
. DO ADD("")
. Q
DO ADD("")
IF $D(XWBPARMS("PARAMS"))>9 DO
. DO ADD("")
. SET XWBPI=0
. FOR SET XWBPI=$O(XWBPARMS("PARAMS",XWBPI)) Q:'XWBPI!(XWBCRLFL) DO
. . SET PTYPE=$G(XWBPARMS("PARAMS",XWBPI,"TYPE"))
. . IF PTYPE="STRING" DO STRING QUIT
. . IF PTYPE="ARRAY" DO ARRAY QUIT
. . IF PTYPE="REF" DO REF QUIT
. DO ADD("")
DO ADD("")
DO ADD("")
QUIT
;
STRING ;
;;DO ADD(""_$G(XWBPARMS("PARAMS",XWBPI,"VALUE"))_"")
I $$CTLCHK($G(XWBPARMS("PARAMS",XWBPI,"VALUE"))) S XWBCRLFL=1 D ERROR^XWBM2MC(8) Q
DO ADD(""_$$CHARCHK^XWBUTL($G(XWBPARMS("PARAMS",XWBPI,"VALUE")))_"")
QUIT
;
ARRAY ;
NEW XWBNAME
DO ADD("")
DO ADD("")
;
SET XWBNAME="" FOR SET XWBNAME=$O(XWBPARMS("PARAMS",XWBPI,"VALUE",XWBNAME)) Q:XWBNAME="" DO
. ;;DO ADD("")
. I $$CTLCHK($G(XWBPARMS("PARAMS",XWBPI,"VALUE",XWBNAME))) S XWBCRLFL=1 D ERROR^XWBM2MC(8) Q
. DO ADD(""_$$CHARCHK^XWBUTL($G(XWBPARMS("PARAMS",XWBPI,"VALUE",XWBNAME)))_"")
DO ADD("")
DO ADD("")
QUIT
;
REF ;
I $$CTLCHK($G(XWBPARMS("PARAMS",XWBPI,"VALUE"))) S XWBCRLFL=1 D ERROR^XWBM2MC(8) Q
DO ADD(""_$$CHARCHK^XWBUTL($G(XWBPARMS("PARAMS",XWBPI,"VALUE")))_"")
QUIT
;
ADD(STR) ; -- add string to array
SET XWBLINE=XWBLINE+1
;
I $G(XWBDBUG) S ^REM("M2MCL","REQUEST",XWBLINE)=STR
;
SET @XWBREQ@(XWBLINE)=STR
QUIT
;
CTLCHK(STR) ;Check for control character in string.
; Exception are $C(10)-LF, $C(13)-CR
N I,Q,X
S X=0
I '(STR?.E1C.E) Q X
S I="" F I=1:1:$L(STR) D
.S Q="" F Q=1:1:31 D Q:X
..;I Q=10!(Q=13) Q
..;W !,"I= ",I," Q= ",Q
..I $E(STR,I)[$C(Q) S X=1 Q
Q X
;
; -------------------------------------------------------------------
; Request Format Documentation
; -------------------------------------------------------------------
;
; [ Parameter Array Format -->> passed to REQUEST^XWBRPCC(.XWBPARMS) ]
;
; -- general information
; XWBPARMS("ADDRESS")="127.0.0.1"
; XWBPARMS("ADDRESS")="152.127.1.35"
; XWBPARMS("PORT")=9800
; XWBPARMS("DUZ")=990
; XWBPARMS("TOKEN")="SOMETHING"
; XWBPARMS("RPC NAME")="SDOE LIST ENCOUNTERS FOR PAT"
;
; -- string parameter type
; XWBPARMS("PARAMS",1,"TYPE")="STRING"
; XWBPARMS("PARAMS",1,"VALUE")=2
; XWBPARMS("PARAMS",2,"TYPE")="STRING"
; XWBPARMS("PARAMS",2,"VALUE")=2961001
; XWBPARMS("PARAMS",3,"TYPE")="STRING"
; XWBPARMS("PARAMS",3,"VALUE")=3030101
;
; -- sample array parameter type
; XWBPARMS("PARAMS",4,"TYPE")="ARRAY"
; XWBPARMS("PARAMS",4,"VALUE","FNAME")="JOE"
; XWBPARMS("PARAMS",4,"VALUE","LNAME")="GOODMAN"
;
; -------------------------------------------------------------------
;
; [ Sample XML produced by calling REQUEST^XWBRPCC(.XWBPARMS) ]
;
;
;
;
;
;
;
;
;
;
;
; 2
; 2961001
; 3030101
;
;
;
;
;
;
;
;
;
;
; -------------------------------------------------------------------
;