DDR1 ;ALB/MJK-FileMan Delphi Components' RPCs ;4/18/97  16:15
 ;;22.0;VA FileMan;;Mar 30, 1999
 ;Per VHA Directive 10-93-142, this routine should not be modified.
 ;
 Q
 ;
DIKC(DDROK,DDR) ; -- broker callback to kill a file entry via ^DIK
 N DIK,DA,FILE,IENS,FDA
 S FILE=$G(DDR("FILE"))
 S IENS=$G(DDR("IENS"))
 I $$FNO^DILIBF(FILE)=FILE,$L(IENS,",")=2 D  Q
 . S DIK=$G(^DIC(FILE,0,"GL")),DA=+IENS D ^DIK S DDROK=1
 S FDA(FILE,IENS,.01)="@"
 D FILE^DIE("","FDA")
 S DDROK='$G(DIERR)
 Q
 ;
LOCKC(DDROK,DDR) ; -- broker callback to lock/unlock a node
 N DDRNODE
 S DDRNODE=$G(DDR("NODE"))
 IF DDRNODE]"" D
 . IF $G(DDR("LOCKMODE")) D
 . . L @("+"_DDRNODE_":"_$G(DDR("TIMEOUT"),5))
 . . S DDROK=$T
 . ELSE  D
 . . L @("-"_DDRNODE)
 . . S DDROK=1
 ELSE  D
 . S DDROK=0
 Q
 ;
FILENOC(DDRFLNO,DDRNAME) ; -- broker callback to get File #
 ;
 S DDRFLNO=+$O(^DIC("B",DDRNAME,""))
 Q
 ;
NODEC(DDRNODE,DDRROOT) ; -- broker callback to get global node value
 ;
 ;S DDRNODE=$G(@DDRROOT)
 IF $D(@DDRROOT)=0!($D(@DDRROOT)=10) D
 . S DDRNODE="{{"_$D(@DDRROOT)_"}}"
 IF $D(@DDRROOT)=1!($D(@DDRROOT)=11) D
 . S DDRNODE=$G(@DDRROOT)
 Q
 ;
GLCNT(DDROK,DDR) ; -- extrinsic call to invoke broker to return number of
 ;       global nodes found at cross reference
 N DDRNODE,DDRTEAM,DDRXREF
 ;
 S DDRNODE=$G(DDR("ROOT"))
 S DDRXREF=$G(DDR("XREF"))
 S DDRVAL=$G(DDR("VALUE"))
 ;
 S:DDRXREF="" DDRXREF="B"
 S I="",X=0
 F  S I=$O(@DDRNODE@(DDRXREF,DDRVAL,I)) Q:I=""  D
 . S X=X+1
 S DDROK=$G(X)
 Q
 ;
IFNODE(DDRNODE,DDRROOT) ; -- extrinsic call to check if node exists.
 ; passes in full node reference
 N X
 ;
 IF $D(@DDRROOT)=0!($D(@DDRROOT)=10) D
 . S DDRNODE="{{"_$D(@DDRROOT)_"}}"
 IF $D(@DDRROOT)=1!($D(@DDRROOT)=11) D
 . S DDRNODE=$G(@DDRROOT)
 Q
