HMPCPRS ;SLC/AGP,ASMR/RRB - CPRS RPC for;9/21/12 5:57pm
 ;;2.0;ENTERPRISE HEALTH MANAGEMENT PLATFORM;**;Sep 01, 2011;Build 63
 ;Per VA Directive 6402, this routine should not be modified.
 ;
 
Q
 
;
RPC(HMPOUT,PARAMS) ; Process request via RPC instead of CSP
 
X,REQ,HMPCNT,HMPSITE,HMPUSER,HMPDBUG,HMPSTA
 
HMPCNT=0
 
HMPUSER=DUZ,HMPSITE=DUZ(2),HMPSTA=$$STA^XUAF4(DUZ(2))
 
X="" F  S X=$O(PARAMS(X)) Q:X=""  REQ(X,1)=PARAMS(X)
 
;
COMMON ; Come here for both CSP and RPC Mode
 ;
 
CMD
 
CMD=$G(REQ("command",1))
 
;
 ; returns an order structure for change orders
 ; or places an order if auto-accept QO
 
CMD="alerts" D  G OUT
 
ALERTS(.HMPOUT)
 
;
 
CMD="reminders" D  G OUT
 
.EVALLIST^HMPPXRM(.HMPOUT,$$VAL("patientId"),$$VAL("userId"),$$VAL("location"))
 
;
OUT ;
END ;
 ;
BLDINFO(INFO) ;
 
X
 
X="" F  S X=$O(REQ(X)) Q:X=""  D
 
.INFO(X)=REQ(X,1)
 
Q
 
;
VAL(X) ; return value from request
 
Q $G(REQ(X,1))
 
;
ALERTS(HMPOUT) ;
 
ALERT,CNT,ERROR,NODE,NUM,RESULT,HMPORY
 
^TMP("HMPALERTS",$J),^TMP("HMPOUT",$J)
 
;S HMPOUT=$NA(^TMP("HMPOUT",$J))
 
FASTUSER^ORWORB(.HMPORY)
 
;ZW HMPORY
 
CNT=0,NUM=1 F  S CNT=$O(@HMPORY@(CNT)) Q:CNT'>0  D
 
.NODE=$G(@HMPORY@(CNT))
 .
ALERT
 
.I $P(NODE,U)="I" ALERT("infoOnly")="I"
 
.ALERT("patient")=$P(NODE,U,2),ALERT("urgency")=$P(NODE,U,4),ALERT("dateTime")=$P(NODE,U,5)
 .
I $P(NODE,U,3)'="" ALERT("location")=$P(NODE,U,3)
 .
ALERT("message")=$P(NODE,U,6)
 .
I $P(NODE,U,8)'="" ALERT("action")=$P(NODE,U,8)
 .
ALERT("mustBeProcess")=$S($P(NODE,U,9)="yes":"false",1:"true")
 .
I $P(NODE,U,10)'="" ALERT("forwardBy")="true"
 
.^TMP("HMPALERTS",$J,"data","alerts",NUM,"alert")=ALERT NUM=NUM+1
 
ENCODE^HMPJSON($NA(^TMP("HMPALERTS",$J)),"HMPOUT","ERROR")
 
Q
 
;