DDR3 ;ALB/MJK,SF/DCM-FileMan Delphi Components' RPCs ;2013-03-22  1:47 PM
 ;;22.2;VA FileMan;;Jan 05, 2016;Build 42
 ;;Per VA Directive 6402, this routine should not be modified.
 ;;Submitted to OSEHRA 5 January 2015 by the VISTA Expertise Network.
 ;;Based on Medsphere Systems Corporation's MSC FileMan 1051.
 ;;Licensed under the terms of the Apache License, Version 2.0.
 ;
 
Q
 
;
FILEC(DDRDATA,DDRMODE,DDRROOT,DDRFLAGS,DDRIENS) ;  DDR FILER rpc callback
 
DDRRTN,DDRFDA,DDRERR,N,I
 
FDASET(.DDRROOT,.DDRFDA)
 
; -- set up placeholder DINUM's if any
 ; -- NOTE:  Can't use until multiple arrays can be passed by broker
 
I $D(DDRROOT("IENs")) DDRIENS=DDRROOT("IENs")
 
SET DDRFLAGS=$SELECT($DATA(DDRFLAGS):DDRFLAGS,1:"")
 
SET I="" FOR  SET I=$ORDER(DDRIENS(I)) QUIT:I=""  SET DDRRTN(+I)=+DDRIENS(I)
 
IF DDRMODE="ADD" DO
 
DO UPDATE^DIE(DDRFLAGS,"DDRFDA","DDRRTN","DDRERR")
 
ELSE  DO
 
DO FILE^DIE(DDRFLAGS,"DDRFDA","DDRERR")
 
N=0
 
SET("[Data]")
 
; -- send back info on entry #'s for placeholders
 
I=0 F  S I=$O(DDRRTN(I)) Q:'I  SET("+"_I_","_U_DDRRTN(I))
 
IF $D(DDRERRERROR
 
Q
 
;
FDASET(DDRROOT,DDRFDA) ;
 
DDRFILE,DDRIEN,DDRFIELD,DDRVAL,DDRERR,I
 
I=0
 
F  S I=$O(DDRROOT(I)) Q:'I  X=DDRROOT(ID
 
DDRFILE=$P(X,U)
 . 
DDRFIELD=$P(X,U,2)
 . 
DDRIEN=$P(X,U,3)
 . 
DDRVAL=$P(X,U,4,99)
 . 
FDA^DILF(DDRFILE,DDRIEN_$S($E(DDRIEN,$L(DDRIEN))'=",":",",1:""),DDRFIELD,"",DDRVAL,"DDRFDA","DDRERR")
 
Q
 
;
VALC(DDRDATA,DDR) ; DDR VALIDATOR rpc callback
 
DDRFILE,DDRIENS,DDRFIELD,DDRVAL,DDRRSLT,DDRERR,DDRFLAGS,N
 
DDRFLAGS="EH"
 
DDRFILE=$G(DDR("FILE"))
 
DDRIENS=$G(DDR("IENS"))
 
DDRFIELD=$G(DDR("FIELD"))
 
DDRVAL=$G(DDR("VALUE"))
 
VAL^DIE(DDRFILE,DDRIENS,DDRFIELD,DDRFLAGS,DDRVAL,.DDRRSLT,"","DDRERR")
 
N=0
 
SET("[FILLER]")
 
SET("[Data]")
 
SET($G(DDRRSLT,U))
 
SET($G(DDRRSLT(0)))
 
IF $D(DDRERRERROR,HELP
 
Q
SET(X) ;
 
N=N+1
 
DDRDATA(N)=X
 
Q
HELP ;
 
Q:'$D(DDRERR("DIHELP"))
 
SET("[BEGIN_diHELP]")
 
HD=DDRFILE_U_DDRFIELD_U_"?"_U_DDRERR("DIHELP"SET(HD)
 
A=0 F  S A=$O(DDRERR("DIHELP",A)) Q:'A  SET(DDRERR("DIHELP",A))
 
SET("[END_diHELP]")
 
Q
ERROR ;
 
SET("[BEGIN_diERRORS]")
 
A=0 F  S A=$O(DDRERR("DIERR",A)) Q:'A  D
 
HD,PARAM,B,C,TEXT,TXTCNT,D,FILE,FIELD,IENS
 
HD=DDRERR("DIERR",A)
 . 
I $D(DDRERR("DIERR",A,"PARAM",0)) D
 
. . (B,D)=0 C=1:1 B=$O(DDRERR("DIERR",A,"PARAM",B)) Q:B=""  D
 
. . . B="FILE" FILE=DDRERR("DIERR",A,"PARAM","FILE")
 . . . 
B="FIELD" FIELD=DDRERR("DIERR",A,"PARAM","FIELD")
 . . . 
B="IENS" IENS=DDRERR("DIERR",A,"PARAM","IENS")
 . . . 
D=D+1,PARAM(D)=B_U_DDRERR("DIERR",A,"PARAM",B)
 . 
C=0 F  S C=$O(DDRERR("DIERR",A,"TEXT",C)) Q:'C  TEXT(C)=DDRERR("DIERR",A,"TEXT",C),TXTCNT=C
 
HD=HD_U_TXTCNT_U_$G(FILE)_U_$G(IENS)_U_$G(FIELD)_U_$G(DSET(HD)
 . 
B=0 F  S B=$O(PARAM(B)) Q:'B  %=PARAM(BSET(%)
 . 
B=0 F  S B=$O(TEXT(B)) Q:'B  %=TEXT(BSET(%)
 . 
Q
 D 
SET("[END_diERRORS]")
 
Q
 
;