HMPCRPC ;SLC/AGP,ASMR/RRB - Generic RPC controller for HMP;11/7/12 5:42pm
 ;;2.0;ENTERPRISE HEALTH MANAGEMENT PLATFORM;**2**;Sep 01, 2011;Build 28
 ;Per VA Directive 6402, this routine should not be modified.
 ;
 
Q
 
;
CHAINRPC(HMPRES,PARAMS) ; Chain multiple rpcs into one call
 
CITER,RSP,PID
 
CITER="" F  S CITER=$O(PARAMS("commandList",CITER)) Q:CITER=""  D
 
SUBCMD,SUBRSP,X
 
X=""
 
F  S X=$O(PARAMS("commandList",CITER,X)) Q:X=""  SUBCMD(X)=PARAMS("commandList",CITER,X)
 . 
CHAINCMD(.SUBCMD,.SUBRSP)
 . 
I $D(SUBRSPDECODE^HMPJSON("SUBRSP","RSP(SUBCMD(""command""))","^JMCERR"1
 . 
'$TEST S RSP(SUBCMD("command"))=""
 
ENCODE^HMPJSON("RSP","HMPRES","^JMCERR")
 
Q
RPC(HMPRES,PARAMS) ; Process request via RPC instead of CSP
 
X,REQ,HMPVAL,HMPCNT,HMPSITE,HMPUSER,HMPDBUG,HMPSTA
 
;S HMPXML=$NA(^TMP($J,"HMP RESULTS")) K @HMPXML
 
HMPCNT=0
 
;S HMPUSER=DUZ,HMPSITE=DUZ(2),HMPSTA=$$STA^XUAF4(DUZ(2))
 
X="" F  S X=$O(PARAMS(X)) Q:X=""  X'="value" REQ(X,1)=PARAMS(X)
 
I $D(PARAMS("value")) HMPVAL=PARAMS("value")
 
;
COMMON ; Come here for both CSP and RPC Mode
 ; 
 
CMD
 
CMD=$G(REQ("command",1))
 
;
 
CMD="saveParam" D  G OUT
 
PUTPARAM^HMPPARAM(.HMPRES,.HMPVAL,"")
 
;
 
CMD="saveParamByUid" D  G OUT
 
PUTBYUID^HMPPARAM(.HMPRES,$$VAL("uid"),.HMPVAL)
 
;
 
CMD="getParam" D  G OUT
 
GETBYUID^HMPPARAM(.HMPRES,$$VAL("uid"))
 
;
 
CMD="clearParam" D  G OUT
 
DELPARAM^HMPPARAM(.HMPRES,$$VAL("uid"))
 
;
 
CMD="getAllParam" D  G OUT
 
.GETALPAR^HMPPARAM(.HMPRES,$$VAL("entity"),$$VAL("entityId"),$$VAL("getValues"))
 
;
 
CMD="getUserInfo" D  G OUT
 
.GETUSERI^HMPCRPC1(.HMPRES,$$VAL("userId"))
 
;
 
CMD="getPatientInfo" D  G OUT
 
.GETPATI^HMPCRPC1(.HMPRES,$$VAL("patientId"))
 
;
 
CMD="getPatientChecks" D  G OUT
 
.CHKS^HMPFPTC(.HMPRES,$$VAL("patientId"))
 
;
 
CMD="logPatientAccess" D  G OUT
 
.LOG^HMPFPTC(.HMPRES,$$VAL("patientId"))
 
;
 
CMD="addTask" D  G OUT
 
.PUT^HMPDJ1(.HMPRES,$$VAL("patientId"),$$VAL("type"),.HMPVAL)
 
;
 
CMD="getReminderList" D  G OUT
 
.REMLIST^HMPPXRM(.HMPRES,$$VAL("user"),$$VAL("location"))
 
;
 
CMD="evaluateReminder" D  G OUT
 
.EVALREM^HMPPXRM(.HMPRES,$$VAL("patientId"),$$VAL("uid"))
 
;
 
CMD="getDefaultPatientList" D  G OUT
 
.GETDLIST^HMPROS8(.HMPRES,$$VAL("server"))
 
;
 
CMD="getWardList" D  G OUT
 
.GETWLIST^HMPROS8(.HMPRES,$$VAL("server"),$$VAL("id"))
 
;
 
CMD="getClinicList" D  G OUT
 
.GETCLIST^HMPROS8(.HMPRES,$$VAL("server"),$$VAL("id"),$$VAL("start"),$$VAL("end"))
 
;
OUT ; output the XML
 ;S HMPRES=$G(RESULT)
 
'$D(HMPRESHMPRES="{}"
END Q
 
;
VAL(X) ; return value from request
 
Q $G(REQ(X,1))
 
;
CHAINCMD(HMPCMD,HMPRSP) ; Do one command in chain
 ; 
 
CMD
 
CMD=$G(HMPCMD("command"))
 
CMD="getParam" GETBYUID^HMPPARAM(.HMPRSP,$G(HMPCMD("uid")))
 
CMD="getPatientInfo" GETPATI^HMPCRPC1(.HMPRSP,$G(HMPCMD("patientId")))
 
CMD="getPatientChecks" CHKS^HMPFPTC(.HMPRSP,$G(HMPCMD("patientId")))
 
CMD="saveParam" PUTPARAM^HMPPARAM(.HMPRSP,$G(HMPCMD("value")),"")
 
CMD="saveParamByUid" PUTBYUID^HMPPARAM(.HMPRSP,$G(HMPCMD("uid")),$G(HMPCMD("value")))
 
Q