- BGUPSRPC ; IHS/OIT/MJL - GENERAL BGU UTILITY ;
- ;;1.5;BGU;;MAY 26, 2005
- EN(BGUARRAY,BGUPSRPC,BGUP1,BGUP2,BGUP3,BGUP4,BGUP5,BGUP6,BGUP7,BGUP8,BGUP9,BGUP10,BGUP11) ;PEP FROM REMOTE PROCEDURE BGU PSRPC
- ENT ;
- ;K X,Y,BGUDATA N DIQUIET
- ;S BGUSTR=^BGUPSRPC(BGUPSRPC,"ASTR")
- S BGUPSIEN=$O(^BGUPSRPC("B",BGUPSRPC,"")) Q:BGUPSRPC="" S BGUIEN=$P(^BGUPSRPC(BGUPSIEN,0),U,2),BGUREF=^XWB(8994,BGUIEN,0)
- S BGUTRTN=$P(BGUREF,"^",2,3),BGUTYPE=$P(BGUREF,U,4),BGURTN1=BGUTRTN,BGUTRTN=BGUTRTN_"(.BGUDATA,"_$$GETSTR()_")"
- ;S BGUSTR=BGURTN1_"(.BGUDATA,"_BGUSTR_")"
- D @BGUTRTN
- ; Same line of code used in ^BGUTCPH :
- ;D:$S($P(BGUMSG,"TRACE=",2)'="":1,$D(BGUTRACE):1,$P(^BGUSP(1,0),"^",2)="Y":1,1:$D(^BGUSP(1,1,"B",$J))) ^BGUTRACE
- ;D KILL
- Q
- ;
- GETSTR() ;
- S BGUEND=0
- S BGUN=0 F S BGUN=$O(^BGUPSRPC(BGUPSIEN,1,BGUN)) Q:'BGUN S BGUX=^BGUPSRPC(BGUPSIEN,1,BGUN,0),BGUVAL=$P(BGUX,U,2) I BGUVAL'="" S BGUPRM=$P(BGUX,U,1),BGUPV(BGUPRM)=BGUVAL S:BGUPRM>BGUEND BGUEND=BGUPRM
- F BGUEND1=1:1 S BGUP="BGUP"_BGUEND1 Q:'$D(@BGUP) S BGUP=@BGUP S:BGUP'="" BGUPV(BGUEND1)=BGUP
- S:BGUEND1>BGUEND BGUEND=BGUEND1
- S BGUX="" F BGUPRM=1:1:BGUEND S:BGUPRM>1 BGUX=BGUX_"," S BGUX=BGUX_""""_$G(BGUPV(BGUPRM))_""""
- K BGUP,BGUPRM,BGUPV,BGUVAL
- Q BGUX
- BGUPSRPC ; IHS/OIT/MJL - GENERAL BGU UTILITY ;
- +1 ;;1.5;BGU;;MAY 26, 2005
- EN(BGUARRAY,BGUPSRPC,BGUP1,BGUP2,BGUP3,BGUP4,BGUP5,BGUP6,BGUP7,BGUP8,BGUP9,BGUP10,BGUP11) ;PEP FROM REMOTE PROCEDURE BGU PSRPC
- ENT ;
- +1 ;K X,Y,BGUDATA N DIQUIET
- +2 ;S BGUSTR=^BGUPSRPC(BGUPSRPC,"ASTR")
- +3 SET BGUPSIEN=$ORDER(^BGUPSRPC("B",BGUPSRPC,""))
- IF BGUPSRPC=""
- QUIT
- SET BGUIEN=$PIECE(^BGUPSRPC(BGUPSIEN,0),U,2)
- SET BGUREF=^XWB(8994,BGUIEN,0)
- +4 SET BGUTRTN=$PIECE(BGUREF,"^",2,3)
- SET BGUTYPE=$PIECE(BGUREF,U,4)
- SET BGURTN1=BGUTRTN
- SET BGUTRTN=BGUTRTN_"(.BGUDATA,"_$$GETSTR()_")"
- +5 ;S BGUSTR=BGURTN1_"(.BGUDATA,"_BGUSTR_")"
- +6 DO @BGUTRTN
- +7 ; Same line of code used in ^BGUTCPH :
- +8 ;D:$S($P(BGUMSG,"TRACE=",2)'="":1,$D(BGUTRACE):1,$P(^BGUSP(1,0),"^",2)="Y":1,1:$D(^BGUSP(1,1,"B",$J))) ^BGUTRACE
- +9 ;D KILL
- +10 QUIT
- +11 ;
- GETSTR() ;
- +1 SET BGUEND=0
- +2 SET BGUN=0
- FOR
- SET BGUN=$ORDER(^BGUPSRPC(BGUPSIEN,1,BGUN))
- IF 'BGUN
- QUIT
- SET BGUX=^BGUPSRPC(BGUPSIEN,1,BGUN,0)
- SET BGUVAL=$PIECE(BGUX,U,2)
- IF BGUVAL'=""
- SET BGUPRM=$PIECE(BGUX,U,1)
- SET BGUPV(BGUPRM)=BGUVAL
- IF BGUPRM>BGUEND
- SET BGUEND=BGUPRM
- +3 FOR BGUEND1=1:1
- SET BGUP="BGUP"_BGUEND1
- IF '$DATA(@BGUP)
- QUIT
- SET BGUP=@BGUP
- IF BGUP'=""
- SET BGUPV(BGUEND1)=BGUP
- +4 IF BGUEND1>BGUEND
- SET BGUEND=BGUEND1
- +5 SET BGUX=""
- FOR BGUPRM=1:1:BGUEND
- IF BGUPRM>1
- SET BGUX=BGUX_","
- SET BGUX=BGUX_""""_$GET(BGUPV(BGUPRM))_""""
- +6 KILL BGUP,BGUPRM,BGUPV,BGUVAL
- +7 QUIT BGUX