EDPCBRD ;SLC/KCM - Controller for ED Tracking Board ;2/28/12 08:33am
 ;;2.0;EMERGENCY DEPARTMENT;;May 2, 2012;Build 103
 ;
RPC(EDPXML,SESS,PARAMS) ; Process request via RPC instead of CSP
 
X,REQ,EDPSITE,EDPUSER,EDPDBUG
 
EDPXML
 
EDPUSER=$P($G(SESS),U),EDPSTA=$P($G(SESS),U,2),EDPSITE=$$IEN^XUAF4(EDPSTA)
 
X="" F  S X=$O(PARAMS(X)) Q:X=""  REQ(X,1)=PARAMS(X)
 
EDPDBUG=$$DEBUG^EDPCDBG("board")
 
EDPDBUG PUTREQ^EDPCDBG(EDPDBUG,.PARAMS)
 
;
COMMON ; Come here for both CSP and RPC Mode
 ;
 
EDPFAIL,CMD
 
CMD=$G(REQ("command",1))
 
I $L($G(REQ("machine",1))) D  G:$D(EDPXML)>0 OUT  ; exit on error
 
BRD
 
REQ("machine",1)=$$LOW^XLFSTR(REQ("machine",1))
 . 
BRD=$$GET^XPAR("DIV","EDPF BIGBOARD KIOSKS",REQ("machine",1),"I")
 . 
'$L(BRDD
 
.. BRD=$$GET^XPAR(EDPSITE_";DIC(4,","EDPF BIGBOARD KIOSKS",REQ("machine",1),"I")
 . 
'$L(BRDXML^EDPX("<error>Computer name not found.</error>"Q
 
REQ("board",1)=BRD
 
;
 ; switch on command
 ; 
 ; ---------------------------------
 ;
 ; initTracking
 ; return <user area="" areaNm="" />...
 
CMD="initTracking" BRDUSER^EDPQAR($$VAL("area")) OUT
 
;
 ; ---------------------------------
 ; 
 ; initDisplayBoard
 ; return <spec>
 ;        <color><map />...</color>...
 ;        <rows><row />...</rows>
 
CMD="initDisplayBoard" D  G OUT
 
GET^EDPQDBS($$VAL("area"),$$VAL("board"))
 . 
GET^EDPQDB($$VAL("area"),$$VAL("board"),-1)
 
;
 ; ---------------------------------
 ; 
 ; refreshDisplayBoard
 ; return <rows><row />...</rows>
 
CMD="refreshDisplayBoard" D  G OUT
 
GET^EDPQDB($$VAL("area"),$$VAL("board"),$$VAL("last"))
 
;
 ; ---------------------------------
 ; else
 
XML^EDPX("<error msg='"_$$MSG^EDPX(2300010)_"' />")
 
; end switch
 ; 
OUT ; output the XML
 
EDPDBUG PUTXML^EDPCDBG(EDPDBUG,.EDPXML)
 
I $L($G(EDPHTTP)) D        ; if in CSP mode
 
EDPHTTP
 
"<results>",!
 . 
I=0 F  S I=$O(EDPXML(I)) Q:'I  EDPXML(I),!
 . 
"</results>",!
 
EDPHTTP
END Q
 
;
VAL(X) ; return value from request
 
Q $G(REQ(X,1))