EDPGLOB ;SLC/BWF - Controller for ED Lab Retrieval ;4/25/12 12:51pm
 ;;2.0;EMERGENCY DEPARTMENT;**6**;May 2, 2012;Build 200
 ;
RPC(EDPXML,PARAMS,PARAMS2) ; Process request via RPC instead of CSP
 
X,REQ,EDPSITE,EDPUSER,EDPDBUG
 
EDPXML
 
EDPUSER=DUZ,EDPSITE=DUZ(2),EDPSTA=$$STA^XUAF4(DUZ(2))
 
X="" F  S X=$O(PARAMS(X)) Q:X=""  D
 
I $D(PARAMS(X))>9 REQ(X)=PARAMS(X)
 . 
E  S REQ(X,1)=PARAMS(X)
 
; params2 will not be converted the same way as params. It is still unclear why params was converted.
 ; There seems to be no reason to do this.
 
EDPDBUG=$$DEBUG^EDPCDBG($G(PARAMS("swfID")))
 
EDPDBUG PUTREQ^EDPCDBG(EDPDBUG,.PARAMS)
 
; parameters missing or invalid
 ;I $G(REQ("patient",1))<1 D  G OUT
 ;. D XML^EDPX("<error msg='"_$$MSG^EDPX(2300018)_"' />")
 ;
COMMON ; Come here for both CSP and RPC Mode
 ;
 
EDPFAIL,CMD
 
CMD=$G(REQ("command",1))
 
EDPXML=$NA(^TMP("EDPGLOB",$J)) @EDPXML
 
;
 ; switch on command
 ; 
 ; ---------------------------------
 ;
 ; getLabs = return lab results
 
CMD="getLabs" D  G OUT
 
I $G(REQ("patient",1))<1 XML^EDPX("<error msg='"_$$MSG^EDPX(2300018)_"' />"Q
 
EN^EDPLAB(EDPXML,.REQ)
 
;
 ; ---------------------------------
 ; getReportList - return adhoc reports (list or full definition)
 
CMD="getReportList" D  G OUT
 
GETREPL^EDPARPT(EDPXML,.PARAMS)
 
; ---------------------------------
 ; saveReportDef - save adhoc report template/definition
 
CMD="saveReportDef" D  G OUT
 
SAVE^EDPARPT(EDPXML,.PARAMS,.PARAMS2)
 
; ---------------------------------
 ; getReportElements - return adhoc report data elements
 
CMD="getReportElements" D  G OUT
 
GETELM^EDPARPT(EDPXML,.PARAMS,.PARAMS2)
 
; ---------------------------------
 ; executeReport - execute adhoc report
 
CMD="executeReport" D  G OUT
 
EXE^EDPARPT(EDPXML,.PARAMS,.PARAMS2)
 
; ---------------------------------
 ;
 ; else
 
XML^EDPX("<error msg='"_$$MSG^EDPX(2300010)_CMD_"' />")
 
; 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))