Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: CIAVMRPC

CIAVMRPC.m

Go to the documentation of this file.
  1. CIAVMRPC ;MSC/IND/DKM - Miscellaneous RPC calls ;22-Oct-2007 13:08;DKM
  1. ;;1.1V2;VUECENTRIC FRAMEWORK;**1**;Mar 20, 2007
  1. ;;Copyright 2000-2006, Medsphere Systems Corporation
  1. ;=================================================================
  1. ; RPC: Initialize a session
  1. INIT(DATA,CIAVER) ;
  1. N PAR,MINVER,X
  1. S MINVER="1.4"
  1. I $$VERCMP(CIAVER,MINVER,$L(MINVER,"."))<0 S DATA(0)="-2^Client version ("_CIAVER_") is not compatible with server version ("_MINVER_")." Q
  1. S DATA(0)=0
  1. F X=0:1 S PAR=$P($T(INITPAR+X),";;",2) Q:'$L(PAR) D
  1. .S DATA(X+1)=$$PARAM($P(PAR,U),$P(PAR,U,2),$P(PAR,U,3))
  1. Q
  1. ; Initialization parameters to return to caller (do not change order)
  1. ; Format is param name^low limit^high limit
  1. INITPAR ;;CIAVM DISABLE CCOW^0^1
  1. ;;
  1. ; Retrieve a package parameter value
  1. PARAM(PAR,MIN,MAX) ;
  1. S VAL=+$$GET^XPAR("ALL",PAR)
  1. S:VAL<MIN VAL=MIN
  1. S:VAL>MAX VAL=MAX
  1. Q VAL
  1. ; RPC: Get/set DISV entry for selected file/IEN
  1. ; If IEN is specified, entry is set
  1. ; Returned as IEN^.01 internal value
  1. DISV(DATA,FILE,IEN) ;
  1. S FILE=$$ROOT^DILFD(+FILE)
  1. I FILE="" S DATA=0 Q
  1. S:$G(IEN) ^DISV(DUZ,FILE)=IEN
  1. S DATA=+$G(^DISV(DUZ,FILE))
  1. S:DATA $P(DATA,U,2)=$P($G(@(FILE_DATA_",0)")),U)
  1. Q
  1. ; RPC: Return version of package
  1. VERSION(DATA,PKG) ;
  1. S DATA=$$VERSION^XPDUTL(PKG)
  1. Q
  1. ; RPC: Return true if patch installed
  1. PATCH(DATA,PATCH) ;
  1. S DATA=$$PATCH^XPDUTL(PATCH)
  1. Q
  1. ; RPC: Returns value for named parameter
  1. GETPAR(DATA,PARAM,ENT,INST,FMT,USR) ;
  1. N X
  1. S ENT=$$ENT(PARAM,.ENT,.USR),DATA=$S($L(ENT):$$GET^XPAR(ENT,PARAM,.INST,.FMT),1:"")
  1. Q
  1. ; RPC: Get multivalued parameter values
  1. GETPARLI(DATA,PARAM,ENT,FMT,USR) ;
  1. N TMP,X
  1. D GETLST^XPAR(.TMP,$$ENT(PARAM,.ENT,.USR),PARAM,.FMT,.ERR)
  1. I $G(ERR) K TMP S TMP=ERR
  1. E S TMP=""
  1. S DATA=$$TMPGBL
  1. M @DATA=TMP
  1. Q
  1. ; RPC: Get WP parameter value
  1. GETPARWP(DATA,PARAM,ENT,INST,USR) ;
  1. N TMP,X
  1. D GETWP^XPAR(.TMP,$$ENT(PARAM,.ENT,.USR),PARAM,.INST,.ERR)
  1. I $G(ERR) K TMP S TMP=ERR
  1. E S TMP=""
  1. S DATA=$$TMPGBL
  1. M @DATA=TMP
  1. Q
  1. ; Return entity list (if ENT not specified)
  1. ENT(PAR,ENT,USR) ;EP
  1. N I,X,Y,Z
  1. Q:$L($G(ENT)) ENT
  1. I $L(PAR),PAR'=+PAR S PAR=$O(^XTV(8989.51,"B",PAR,0))
  1. Q:'PAR ""
  1. S X="",I=0,USR=$G(USR,DUZ)
  1. F S I=+$O(^XTV(8989.51,PAR,30,"B",I)) Q:'I S Y=$O(^(I,0)) D:Y
  1. .S Y=$P($G(^XTV(8989.518,+$P($G(^XTV(8989.51,PAR,30,Y,0)),U,2),0)),U,2)
  1. .Q:'$L(Y)
  1. .I "DIV^SYS^PKG"[Y S X=X_U_Y Q
  1. .I Y="USR" S X=X_U_"USR.`"_USR Q
  1. .I Y="SRV" S Z=+$G(^VA(200,USR,5)) S:Z X=X_U_"SRV.`"_Z Q
  1. .I Y="OTL" Q ; OE/RR TEAM
  1. .I Y="TEA" Q ; TEAM
  1. .I Y="CLS" D Q
  1. ..S Z=0
  1. ..F S Z=$O(^USR(8930.3,"AUC",USR,Z)) Q:'Z D CLS(Z)
  1. .I Y="LOC",$G(CIA("UID")) D Q
  1. ..S Z=+$$GETVAR^CIANBUTL("ENCOUNTER.ID.ALTERNATEVISITID",,"CONTEXT.ENCOUNTER")
  1. ..S:Z X=X_U_"LOC.`"_Z
  1. Q $E(X,2,$L(X))
  1. ; Append user class memberships to entity list
  1. CLS(Z) N Y
  1. S X=X_U_"CLS.`"_Z,Y=0
  1. F S Y=$O(^USR(8930,"AD",Z,Y)) Q:'Y D CLS(Y)
  1. Q
  1. ; RPC: Changes value for named parameter
  1. SETPAR(DATA,PARAM,VAL,ENT,INST) ;
  1. D EN^XPAR($G(ENT,"PKG"),PARAM,$G(INST,1),VAL,.DATA)
  1. Q
  1. ; RPC: Get stored variable(s)
  1. GETVAR(DATA,LIST,NMSP) ;
  1. N CNT
  1. S:$L($G(LIST)) LIST(-99)=LIST
  1. S LIST="",CNT=0
  1. F S LIST=$O(LIST(LIST)) Q:'$L(LIST) D
  1. .S CNT=CNT+1,DATA(CNT)=LIST(LIST)_"="_$$GETVAR^CIANBUTL(LIST(LIST),,.NMSP)
  1. Q
  1. ; RPC: Set stored variable(s)
  1. SETVAR(DATA,LIST,NMSP,RESET) ;
  1. S:$L($G(LIST)) LIST(-99)=LIST
  1. S LIST="",DATA=0
  1. D:$G(RESET) CLRVAR^CIANBUTL(.NMSP)
  1. F S LIST=$O(LIST(LIST)) Q:'$L(LIST) D
  1. .S DATA=DATA+1
  1. .D SETVAR^CIANBUTL($P(LIST(LIST),"="),$P(LIST(LIST),"=",2,9999),.NMSP)
  1. Q
  1. ; RPC: Get .01 field values from a file
  1. GETIDX(DATA,FN,FLG) ;
  1. N X,I,Z
  1. S DATA=$$TMPGBL,X=0,FN=$$ROOT^DILFD(FN,,1),I=0,FLG=+$G(FLG)
  1. I $L(FN) F S X=$O(@FN@(X)) Q:'X D
  1. .S Z=$P($G(@FN@(X,0)),U)
  1. .S:$L(Z) I=I+1,@DATA@(I)=$S(FLG:Z,1:X_U_Z)
  1. Q
  1. ; RPC: Convert date input to FM format
  1. STRTODAT(DATA,VAL,FMT) ;
  1. N %DT,X,Y
  1. I VAL'["@",VAL[" " S VAL=$TR(VAL," ","@")
  1. I VAL["@",$TR($P(VAL,"@",2),":0")="" S $P(VAL,"@",2)="00:00:01"
  1. S %DT=$G(FMT,"TS"),X=VAL
  1. D ^%DT
  1. S DATA=$S(Y>0:Y,1:"")
  1. Q
  1. ; Compare version # VER1 with VER2
  1. ; Returns -1 if < 0 if =; 1 if >
  1. VERCMP(VER1,VER2,PC) ;EP
  1. N X,Y,V1,V2
  1. S:'$G(PC) PC=4
  1. S Y=0
  1. F X=1:1:PC D Q:Y
  1. .S V1=+$P(VER1,".",X),V2=+$P(VER2,".",X)
  1. .S:V1'=V2 Y=$S(V1>V2:1,1:-1)
  1. Q Y
  1. ; Get temp global reference
  1. TMPGBL(X) ;EP
  1. K ^TMP("CIAVMRPC"_$G(X),$J) Q $NA(^($J))