- BQIMUDFC ;GDIT/HS/ALA-Facility by Division ; 26 Nov 2012 11:07 AM
- ;;2.3;ICARE MANAGEMENT SYSTEM;**3,4**;Apr 18, 2012;Build 66
- ;
- PERF(DATA,REPORT,TMFRAME,PERIOD,DIV) ;EP -- BQI MU PERF BY DIVISION
- NEW BQCDAR,BQPDAR,CDATA,CDEN,CEXC,CNUM,CPER,CQN,CRDT,CURDT,CURR,HDR,HEAD,HX,ID,IDN,II,PDATA
- NEW PDEN,PEC,PEXC,PNUM,PPER,PQN,PRDT,PREV,PRVR,SORT,PGLOB
- S UID=$S($G(ZTSK):"Z"_ZTSK,1:$J)
- S DATA=$NA(^TMP("BQIMUPRPF",UID))
- K @DATA
- S II=0,SORT=""
- S DIV=$G(DIV,""),REPORT=$G(REPORT,"")
- NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BQIMUPRV D UNWIND^%ZTER" ; SAC 2006 2.2.3.3.2
- ;
- D GTM^BQIMUTIM
- ;
- S HDR="T00050FACILITY^T00030HIDE_CURR_PERIOD^T00030HIDE_PREV_PERIOD^"
- S PGLOB=$$PRFPGL^BQIMUTAB(REPORT)
- S HX=0,PEC=4
- F S HX=$O(@PGLOB@(HX)) Q:'HX I $P(@PGLOB@(HX,0),U,2)="E" D
- . I $P(@PGLOB@(HX,0),U,6)'="R" Q
- . S HDR=HDR_"T00005"_$P(@PGLOB@(HX,0),U,1)_"_CURR^T00005"_$P(@PGLOB@(HX,0),U,1)_"_PREV^"
- . S HEAD($P(@PGLOB@(HX,0),U,1))=PEC,PEC=PEC+2
- S @DATA@(II)=$$TKO^BQIUL1(HDR,"^")_$C(30)
- ;
- I $G(DIV)'="" D RPF
- I $G(DIV)="" S DIV=0 D
- . F S DIV=$O(^BQIFAC(DIV)) Q:'DIV D RPF
- S II=II+1,@DATA@(II)=$C(31)
- Q
- ;
- CQM(DATA,TMFRAME,PERIOD,DIV) ;EP -- BQI MU CQM BY DIVISION
- NEW BQCDAR,BQPDAR,CDATA,CDEN,CEXC,CNUM,CPER,CQN,CRDT,CURDT,CURR,HDR,HEAD,HX,ID,IDN,II,PDATA
- NEW PDEN,PEC,PEXC,PNUM,PPER,PQN,PRDT,PREV,PRVR,SORT,MSN
- S UID=$S($G(ZTSK):"Z"_ZTSK,1:$J)
- S DATA=$NA(^TMP("BQIMUFCQM",UID))
- K @DATA
- S DIV=$G(DIV,"")
- S II=0,SORT=""
- NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BQIMUDFC D UNWIND^%ZTER" ; SAC 2006 2.2.3.3.2
- ;
- D GTM^BQIMUTIM
- S HDR="T00050FACILITY^T00030HIDE_CURR_PERIOD^T00030HIDE_PREV_PERIOD^"
- S HX=0,PEC=4
- F S HX=$O(^BGPMUIND(90596.11,HX)) Q:'HX D
- . S MSN=$P(^BGPMUIND(90596.11,HX,0),U,1)
- . I $G(^BGPMUIND(90595.11,MSN,0))="" Q
- . I $P(^BGPMUIND(90595.11,MSN,0),U,4)'="H" D
- .. S HDR=HDR_"T00005"_$P(^BGPMUIND(90596.11,HX,0),U,4)_"_CURR^T00005"_$P(^BGPMUIND(90596.11,HX,0),U,4)_"_PREV^"
- .. S HEAD($P(^BGPMUIND(90596.11,HX,0),U,4))=PEC,PEC=PEC+2
- S @DATA@(II)=$$TKO^BQIUL1(HDR,"^")_$C(30)
- ;
- I $G(DIV)'="" D RCQ
- I $G(DIV)="" S DIV=0 D
- . F S DIV=$O(^BQIFAC(DIV)) Q:'DIV D RCQ
- S II=II+1,@DATA@(II)=$C(31)
- Q
- ;
- RCQ ;
- S PRVR=DIV_$C(28)_$P(^DIC(4,DIV,0),U,1)
- S II=II+1,@DATA@(II)=PRVR_U_CPER_U_PPER_U
- K BQCURR,BQPREV
- S CRDT=""
- F S CRDT=$O(BQCDAR(CRDT)) Q:CRDT="" D
- . S CQN=$O(^BQIFAC(DIV,80,"B",CRDT,""))
- . D CAGG
- ;
- S PRDT=""
- F S PRDT=$O(BQPDAR(PRDT)) Q:PRDT="" D
- . S PQN=$O(^BQIFAC(DIV,80,"B",PRDT,""))
- . D PAGG
- ;
- S HX=""
- F S HX=$O(HEAD(HX)) Q:HX="" D
- . S ID=HX,PEC=$G(HEAD(ID)) I PEC="" Q
- . S CDEN=$P($G(BQCURR(ID)),U,1),CNUM=$P($G(BQCURR(ID)),U,2),CEXC=$P($G(BQCURR(ID)),U,3)
- . I +CNUM=0 S CURR="0%"
- . I +CDEN'=0,+CNUM'=0 S CURR=(CNUM/CDEN)*100,CURR=$J(CURR,3,0)_"%",CURR=$$TRIM^BQIUL1(CURR," ")
- . I CDEN="",CNUM="",CEXC'="" S CURR="Excluded"
- . I CDEN="",CNUM="",CEXC="" S CURR=""
- . S PDEN=$P($G(BQPREV(ID)),U,1),PNUM=$P($G(BQPREV(ID)),U,2),PEXC=$P($G(BQPREV(ID)),U,3)
- . I +PNUM=0 S PREV="0%"
- . I +PDEN'=0,+PNUM'=0 S PREV=$J((PNUM/PDEN)*100,3,0)_"%",PREV=$$TRIM^BQIUL1(PREV," ")
- . I PDEN="",PNUM="",PEXC'="" S PREV="Excluded"
- . I PDEN="",PNUM="",PEXC="" S PREV=""
- . S $P(@DATA@(II),U,PEC)=CURR
- . S $P(@DATA@(II),U,PEC+1)=PREV
- S @DATA@(II)=@DATA@(II)_$C(30)
- K BQCURR,BQPREV
- Q
- ;
- ERR ;
- D ^%ZTER
- NEW Y,ERRDTM
- S Y=$$NOW^XLFDT() X ^DD("DD") S ERRDTM=Y
- S BMXSEC="Recording that an error occurred at "_ERRDTM
- I $D(II),$D(DATA) S II=II+1,@DATA@(II)=$C(31)
- Q
- ;
- CAGG ; Aggregate
- NEW ID
- S ID=""
- F S ID=$O(HEAD(ID)) Q:ID="" D
- . S BQCURR(ID)=$S(CQN="":"NDA",'$D(^BQIFAC(DIV,80,CQN,1)):"NDA",1:"N/A")
- ;
- I CQN="" Q
- S IDN=0
- F S IDN=$O(^BQIFAC(DIV,80,CQN,1,IDN)) Q:'IDN D
- . S (CDEN,CNUM,CEXC,CURR)=""
- . S CDATA=^BQIFAC(DIV,80,CQN,1,IDN,0)
- . S CDEN=$P(CDATA,U,2),CNUM=$P(CDATA,U,3),CEXC=$P(CDATA,U,4)
- . S ID=$P(CDATA,U,1)
- . S $P(BQCURR(ID),U,1)=$P($G(BQCURR(ID)),U,1)+CDEN
- . S $P(BQCURR(ID),U,2)=$P($G(BQCURR(ID)),U,2)+CNUM
- . S $P(BQCURR(ID),U,3)=$P($G(BQCURR(ID)),U,3)+CEXC
- Q
- ;
- PAGG ; Aggregate
- NEW ID
- S ID=""
- F S ID=$O(HEAD(ID)) Q:ID="" D
- . S BQPREV(ID)=$S(PQN="":"NDA",'$D(^BQIFAC(DIV,80,PQN,1)):"NDA",1:"N/A")
- ;
- I PQN="" Q
- S IDN=0
- F S IDN=$O(^BQIFAC(DIV,80,PQN,1,IDN)) Q:'IDN D
- . S (PDEN,PNUM,PEXC,PREV)=""
- . S PDATA=^BQIFAC(DIV,80,PQN,1,IDN,0)
- . S PDEN=$P(PDATA,U,2),PNUM=$P(PDATA,U,3),PEXC=$P(PDATA,U,4)
- . S ID=$P(PDATA,U,1)
- . S $P(BQPREV(ID),U,1)=$P($G(BQPREV(ID)),U,1)+PDEN
- . S $P(BQPREV(ID),U,2)=$P($G(BQPREV(ID)),U,2)+PNUM
- . S $P(BQPREV(ID),U,3)=$P($G(BQPREV(ID)),U,3)+PEXC
- Q
- ;
- RPF ;
- S PRVR=DIV_$C(28)_$P(^DIC(4,DIV,0),U,1)
- S II=II+1,@DATA@(II)=PRVR_U_CPER_U_PPER_U
- K BQCURR,BQPREV
- S CRDT=""
- F S CRDT=$O(BQCDAR(CRDT)) Q:CRDT="" D
- . S CQN=$O(^BQIFAC(DIV,70,"B",CRDT,""))
- . D CPAGG
- ;
- S PRDT=""
- F S PRDT=$O(BQPDAR(PRDT)) Q:PRDT="" D
- . S PQN=$O(^BQIFAC(DIV,70,"B",PRDT,""))
- . D PPAGG
- ;
- S HX=""
- F S HX=$O(HEAD(HX)) Q:HX="" D
- . S ID=HX,PEC=$G(HEAD(ID)) I PEC="" Q
- . S CDEN=$P($G(BQCURR(ID)),U,1),CNUM=$P($G(BQCURR(ID)),U,2)
- . S CEXC=$P($G(BQCURR(ID)),U,3)
- . I +CNUM=0 S CURR="0%"
- . I +CDEN'=0,+CNUM'=0 S CURR=(CNUM/CDEN)*100,CURR=$J(CURR,3,0)_"%",CURR=$$TRIM^BQIUL1(CURR," ")
- . I CDEN="",CNUM="",CEXC'="" S CURR="Excluded"
- . I CDEN="",CNUM="",CEXC="" S CURR=""
- . S PDEN=$P($G(BQPREV(ID)),U,1),PNUM=$P($G(BQPREV(ID)),U,2),PEXC=$P($G(BQPREV(ID)),U,3)
- . I +PNUM=0 S PREV="0%"
- . I +PDEN'=0,+PNUM'=0 S PREV=$J((PNUM/PDEN)*100,3,0)_"%",PREV=$$TRIM^BQIUL1(PREV," ")
- . I PDEN="",PNUM="",PEXC'="" S PREV="Excluded"
- . I PDEN="",PNUM="",PEXC="" S PREV=""
- . S $P(@DATA@(II),U,PEC)=CURR
- . S $P(@DATA@(II),U,PEC+1)=PREV
- S @DATA@(II)=@DATA@(II)_$C(30)
- K BQCURR,BQPREV
- Q
- ;
- CPAGG ; Aggregate performance
- NEW ID
- S ID=""
- F S ID=$O(HEAD(ID)) Q:ID="" D
- . S BQCURR(ID)=$S(CQN="":"NDA",'$D(^BQIFAC(DIV,70,CQN,1)):"NDA",1:"N/A")
- ;
- I CQN="" Q
- S IDN=0
- F S IDN=$O(^BQIFAC(DIV,70,CQN,1,IDN)) Q:'IDN D
- . S (CDEN,CNUM,CEXC,CURR)=""
- . S CDATA=^BQIFAC(DIV,70,CQN,1,IDN,0)
- . S CEXC=$G(^BQIFAC(DIV,70,CQN,1,IDN,1))
- . S CDEN=$P(CDATA,U,2),CNUM=$P(CDATA,U,3)
- . S ID=$P(CDATA,U,1)
- . I CDEN="",CEXC'="" S $P(BQICURR(ID),U,3)=CEXC Q
- . S $P(BQCURR(ID),U,1)=$P($G(BQCURR(ID)),U,1)+CDEN
- . S $P(BQCURR(ID),U,2)=$P($G(BQCURR(ID)),U,2)+CNUM
- Q
- ;
- PPAGG ;
- NEW ID
- S ID=""
- F S ID=$O(HEAD(ID)) Q:ID="" D
- . S BQPREV(ID)=$S(PQN="":"NDA",'$D(^BQIFAC(DIV,70,PQN,1)):"NDA",1:"N/A")
- ;
- I PQN="" Q
- S IDN=0
- F S IDN=$O(^BQIFAC(DIV,70,PQN,1,IDN)) Q:'IDN D
- . S (PDEN,PNUM,PEXC,PREV)=""
- . S PDATA=^BQIFAC(DIV,70,PQN,1,IDN,0)
- . S PEXC=$G(^BQIFAC(DIV,70,PQN,1,IDN,1))
- . S PDEN=$P(PDATA,U,2),PNUM=$P(PDATA,U,3)
- . S ID=$P(PDATA,U,1)
- . I PDEN="",PEXC'="" S $P(BQIPREV(ID),U,3)=PEXC
- . S $P(BQPREV(ID),U,1)=$P($G(BQPREV(ID)),U,1)+PDEN
- . S $P(BQPREV(ID),U,2)=$P($G(BQPREV(ID)),U,2)+PNUM
- Q
- BQIMUDFC ;GDIT/HS/ALA-Facility by Division ; 26 Nov 2012 11:07 AM
- +1 ;;2.3;ICARE MANAGEMENT SYSTEM;**3,4**;Apr 18, 2012;Build 66
- +2 ;
- PERF(DATA,REPORT,TMFRAME,PERIOD,DIV) ;EP -- BQI MU PERF BY DIVISION
- +1 NEW BQCDAR,BQPDAR,CDATA,CDEN,CEXC,CNUM,CPER,CQN,CRDT,CURDT,CURR,HDR,HEAD,HX,ID,IDN,II,PDATA
- +2 NEW PDEN,PEC,PEXC,PNUM,PPER,PQN,PRDT,PREV,PRVR,SORT,PGLOB
- +3 SET UID=$SELECT($GET(ZTSK):"Z"_ZTSK,1:$JOB)
- +4 SET DATA=$NAME(^TMP("BQIMUPRPF",UID))
- +5 KILL @DATA
- +6 SET II=0
- SET SORT=""
- +7 SET DIV=$GET(DIV,"")
- SET REPORT=$GET(REPORT,"")
- +8 ; SAC 2006 2.2.3.3.2
- NEW $ESTACK,$ETRAP
- SET $ETRAP="D ERR^BQIMUPRV D UNWIND^%ZTER"
- +9 ;
- +10 DO GTM^BQIMUTIM
- +11 ;
- +12 SET HDR="T00050FACILITY^T00030HIDE_CURR_PERIOD^T00030HIDE_PREV_PERIOD^"
- +13 SET PGLOB=$$PRFPGL^BQIMUTAB(REPORT)
- +14 SET HX=0
- SET PEC=4
- +15 FOR
- SET HX=$ORDER(@PGLOB@(HX))
- IF 'HX
- QUIT
- IF $PIECE(@PGLOB@(HX,0),U,2)="E"
- Begin DoDot:1
- +16 IF $PIECE(@PGLOB@(HX,0),U,6)'="R"
- QUIT
- +17 SET HDR=HDR_"T00005"_$PIECE(@PGLOB@(HX,0),U,1)_"_CURR^T00005"_$PIECE(@PGLOB@(HX,0),U,1)_"_PREV^"
- +18 SET HEAD($PIECE(@PGLOB@(HX,0),U,1))=PEC
- SET PEC=PEC+2
- End DoDot:1
- +19 SET @DATA@(II)=$$TKO^BQIUL1(HDR,"^")_$CHAR(30)
- +20 ;
- +21 IF $GET(DIV)'=""
- DO RPF
- +22 IF $GET(DIV)=""
- SET DIV=0
- Begin DoDot:1
- +23 FOR
- SET DIV=$ORDER(^BQIFAC(DIV))
- IF 'DIV
- QUIT
- DO RPF
- End DoDot:1
- +24 SET II=II+1
- SET @DATA@(II)=$CHAR(31)
- +25 QUIT
- +26 ;
- CQM(DATA,TMFRAME,PERIOD,DIV) ;EP -- BQI MU CQM BY DIVISION
- +1 NEW BQCDAR,BQPDAR,CDATA,CDEN,CEXC,CNUM,CPER,CQN,CRDT,CURDT,CURR,HDR,HEAD,HX,ID,IDN,II,PDATA
- +2 NEW PDEN,PEC,PEXC,PNUM,PPER,PQN,PRDT,PREV,PRVR,SORT,MSN
- +3 SET UID=$SELECT($GET(ZTSK):"Z"_ZTSK,1:$JOB)
- +4 SET DATA=$NAME(^TMP("BQIMUFCQM",UID))
- +5 KILL @DATA
- +6 SET DIV=$GET(DIV,"")
- +7 SET II=0
- SET SORT=""
- +8 ; SAC 2006 2.2.3.3.2
- NEW $ESTACK,$ETRAP
- SET $ETRAP="D ERR^BQIMUDFC D UNWIND^%ZTER"
- +9 ;
- +10 DO GTM^BQIMUTIM
- +11 SET HDR="T00050FACILITY^T00030HIDE_CURR_PERIOD^T00030HIDE_PREV_PERIOD^"
- +12 SET HX=0
- SET PEC=4
- +13 FOR
- SET HX=$ORDER(^BGPMUIND(90596.11,HX))
- IF 'HX
- QUIT
- Begin DoDot:1
- +14 SET MSN=$PIECE(^BGPMUIND(90596.11,HX,0),U,1)
- +15 IF $GET(^BGPMUIND(90595.11,MSN,0))=""
- QUIT
- +16 IF $PIECE(^BGPMUIND(90595.11,MSN,0),U,4)'="H"
- Begin DoDot:2
- +17 SET HDR=HDR_"T00005"_$PIECE(^BGPMUIND(90596.11,HX,0),U,4)_"_CURR^T00005"_$PIECE(^BGPMUIND(90596.11,HX,0),U,4)_"_PREV^"
- +18 SET HEAD($PIECE(^BGPMUIND(90596.11,HX,0),U,4))=PEC
- SET PEC=PEC+2
- End DoDot:2
- End DoDot:1
- +19 SET @DATA@(II)=$$TKO^BQIUL1(HDR,"^")_$CHAR(30)
- +20 ;
- +21 IF $GET(DIV)'=""
- DO RCQ
- +22 IF $GET(DIV)=""
- SET DIV=0
- Begin DoDot:1
- +23 FOR
- SET DIV=$ORDER(^BQIFAC(DIV))
- IF 'DIV
- QUIT
- DO RCQ
- End DoDot:1
- +24 SET II=II+1
- SET @DATA@(II)=$CHAR(31)
- +25 QUIT
- +26 ;
- RCQ ;
- +1 SET PRVR=DIV_$CHAR(28)_$PIECE(^DIC(4,DIV,0),U,1)
- +2 SET II=II+1
- SET @DATA@(II)=PRVR_U_CPER_U_PPER_U
- +3 KILL BQCURR,BQPREV
- +4 SET CRDT=""
- +5 FOR
- SET CRDT=$ORDER(BQCDAR(CRDT))
- IF CRDT=""
- QUIT
- Begin DoDot:1
- +6 SET CQN=$ORDER(^BQIFAC(DIV,80,"B",CRDT,""))
- +7 DO CAGG
- End DoDot:1
- +8 ;
- +9 SET PRDT=""
- +10 FOR
- SET PRDT=$ORDER(BQPDAR(PRDT))
- IF PRDT=""
- QUIT
- Begin DoDot:1
- +11 SET PQN=$ORDER(^BQIFAC(DIV,80,"B",PRDT,""))
- +12 DO PAGG
- End DoDot:1
- +13 ;
- +14 SET HX=""
- +15 FOR
- SET HX=$ORDER(HEAD(HX))
- IF HX=""
- QUIT
- Begin DoDot:1
- +16 SET ID=HX
- SET PEC=$GET(HEAD(ID))
- IF PEC=""
- QUIT
- +17 SET CDEN=$PIECE($GET(BQCURR(ID)),U,1)
- SET CNUM=$PIECE($GET(BQCURR(ID)),U,2)
- SET CEXC=$PIECE($GET(BQCURR(ID)),U,3)
- +18 IF +CNUM=0
- SET CURR="0%"
- +19 IF +CDEN'=0
- IF +CNUM'=0
- SET CURR=(CNUM/CDEN)*100
- SET CURR=$JUSTIFY(CURR,3,0)_"%"
- SET CURR=$$TRIM^BQIUL1(CURR," ")
- +20 IF CDEN=""
- IF CNUM=""
- IF CEXC'=""
- SET CURR="Excluded"
- +21 IF CDEN=""
- IF CNUM=""
- IF CEXC=""
- SET CURR=""
- +22 SET PDEN=$PIECE($GET(BQPREV(ID)),U,1)
- SET PNUM=$PIECE($GET(BQPREV(ID)),U,2)
- SET PEXC=$PIECE($GET(BQPREV(ID)),U,3)
- +23 IF +PNUM=0
- SET PREV="0%"
- +24 IF +PDEN'=0
- IF +PNUM'=0
- SET PREV=$JUSTIFY((PNUM/PDEN)*100,3,0)_"%"
- SET PREV=$$TRIM^BQIUL1(PREV," ")
- +25 IF PDEN=""
- IF PNUM=""
- IF PEXC'=""
- SET PREV="Excluded"
- +26 IF PDEN=""
- IF PNUM=""
- IF PEXC=""
- SET PREV=""
- +27 SET $PIECE(@DATA@(II),U,PEC)=CURR
- +28 SET $PIECE(@DATA@(II),U,PEC+1)=PREV
- End DoDot:1
- +29 SET @DATA@(II)=@DATA@(II)_$CHAR(30)
- +30 KILL BQCURR,BQPREV
- +31 QUIT
- +32 ;
- ERR ;
- +1 DO ^%ZTER
- +2 NEW Y,ERRDTM
- +3 SET Y=$$NOW^XLFDT()
- XECUTE ^DD("DD")
- SET ERRDTM=Y
- +4 SET BMXSEC="Recording that an error occurred at "_ERRDTM
- +5 IF $DATA(II)
- IF $DATA(DATA)
- SET II=II+1
- SET @DATA@(II)=$CHAR(31)
- +6 QUIT
- +7 ;
- CAGG ; Aggregate
- +1 NEW ID
- +2 SET ID=""
- +3 FOR
- SET ID=$ORDER(HEAD(ID))
- IF ID=""
- QUIT
- Begin DoDot:1
- +4 SET BQCURR(ID)=$SELECT(CQN="":"NDA",'$DATA(^BQIFAC(DIV,80,CQN,1)):"NDA",1:"N/A")
- End DoDot:1
- +5 ;
- +6 IF CQN=""
- QUIT
- +7 SET IDN=0
- +8 FOR
- SET IDN=$ORDER(^BQIFAC(DIV,80,CQN,1,IDN))
- IF 'IDN
- QUIT
- Begin DoDot:1
- +9 SET (CDEN,CNUM,CEXC,CURR)=""
- +10 SET CDATA=^BQIFAC(DIV,80,CQN,1,IDN,0)
- +11 SET CDEN=$PIECE(CDATA,U,2)
- SET CNUM=$PIECE(CDATA,U,3)
- SET CEXC=$PIECE(CDATA,U,4)
- +12 SET ID=$PIECE(CDATA,U,1)
- +13 SET $PIECE(BQCURR(ID),U,1)=$PIECE($GET(BQCURR(ID)),U,1)+CDEN
- +14 SET $PIECE(BQCURR(ID),U,2)=$PIECE($GET(BQCURR(ID)),U,2)+CNUM
- +15 SET $PIECE(BQCURR(ID),U,3)=$PIECE($GET(BQCURR(ID)),U,3)+CEXC
- End DoDot:1
- +16 QUIT
- +17 ;
- PAGG ; Aggregate
- +1 NEW ID
- +2 SET ID=""
- +3 FOR
- SET ID=$ORDER(HEAD(ID))
- IF ID=""
- QUIT
- Begin DoDot:1
- +4 SET BQPREV(ID)=$SELECT(PQN="":"NDA",'$DATA(^BQIFAC(DIV,80,PQN,1)):"NDA",1:"N/A")
- End DoDot:1
- +5 ;
- +6 IF PQN=""
- QUIT
- +7 SET IDN=0
- +8 FOR
- SET IDN=$ORDER(^BQIFAC(DIV,80,PQN,1,IDN))
- IF 'IDN
- QUIT
- Begin DoDot:1
- +9 SET (PDEN,PNUM,PEXC,PREV)=""
- +10 SET PDATA=^BQIFAC(DIV,80,PQN,1,IDN,0)
- +11 SET PDEN=$PIECE(PDATA,U,2)
- SET PNUM=$PIECE(PDATA,U,3)
- SET PEXC=$PIECE(PDATA,U,4)
- +12 SET ID=$PIECE(PDATA,U,1)
- +13 SET $PIECE(BQPREV(ID),U,1)=$PIECE($GET(BQPREV(ID)),U,1)+PDEN
- +14 SET $PIECE(BQPREV(ID),U,2)=$PIECE($GET(BQPREV(ID)),U,2)+PNUM
- +15 SET $PIECE(BQPREV(ID),U,3)=$PIECE($GET(BQPREV(ID)),U,3)+PEXC
- End DoDot:1
- +16 QUIT
- +17 ;
- RPF ;
- +1 SET PRVR=DIV_$CHAR(28)_$PIECE(^DIC(4,DIV,0),U,1)
- +2 SET II=II+1
- SET @DATA@(II)=PRVR_U_CPER_U_PPER_U
- +3 KILL BQCURR,BQPREV
- +4 SET CRDT=""
- +5 FOR
- SET CRDT=$ORDER(BQCDAR(CRDT))
- IF CRDT=""
- QUIT
- Begin DoDot:1
- +6 SET CQN=$ORDER(^BQIFAC(DIV,70,"B",CRDT,""))
- +7 DO CPAGG
- End DoDot:1
- +8 ;
- +9 SET PRDT=""
- +10 FOR
- SET PRDT=$ORDER(BQPDAR(PRDT))
- IF PRDT=""
- QUIT
- Begin DoDot:1
- +11 SET PQN=$ORDER(^BQIFAC(DIV,70,"B",PRDT,""))
- +12 DO PPAGG
- End DoDot:1
- +13 ;
- +14 SET HX=""
- +15 FOR
- SET HX=$ORDER(HEAD(HX))
- IF HX=""
- QUIT
- Begin DoDot:1
- +16 SET ID=HX
- SET PEC=$GET(HEAD(ID))
- IF PEC=""
- QUIT
- +17 SET CDEN=$PIECE($GET(BQCURR(ID)),U,1)
- SET CNUM=$PIECE($GET(BQCURR(ID)),U,2)
- +18 SET CEXC=$PIECE($GET(BQCURR(ID)),U,3)
- +19 IF +CNUM=0
- SET CURR="0%"
- +20 IF +CDEN'=0
- IF +CNUM'=0
- SET CURR=(CNUM/CDEN)*100
- SET CURR=$JUSTIFY(CURR,3,0)_"%"
- SET CURR=$$TRIM^BQIUL1(CURR," ")
- +21 IF CDEN=""
- IF CNUM=""
- IF CEXC'=""
- SET CURR="Excluded"
- +22 IF CDEN=""
- IF CNUM=""
- IF CEXC=""
- SET CURR=""
- +23 SET PDEN=$PIECE($GET(BQPREV(ID)),U,1)
- SET PNUM=$PIECE($GET(BQPREV(ID)),U,2)
- SET PEXC=$PIECE($GET(BQPREV(ID)),U,3)
- +24 IF +PNUM=0
- SET PREV="0%"
- +25 IF +PDEN'=0
- IF +PNUM'=0
- SET PREV=$JUSTIFY((PNUM/PDEN)*100,3,0)_"%"
- SET PREV=$$TRIM^BQIUL1(PREV," ")
- +26 IF PDEN=""
- IF PNUM=""
- IF PEXC'=""
- SET PREV="Excluded"
- +27 IF PDEN=""
- IF PNUM=""
- IF PEXC=""
- SET PREV=""
- +28 SET $PIECE(@DATA@(II),U,PEC)=CURR
- +29 SET $PIECE(@DATA@(II),U,PEC+1)=PREV
- End DoDot:1
- +30 SET @DATA@(II)=@DATA@(II)_$CHAR(30)
- +31 KILL BQCURR,BQPREV
- +32 QUIT
- +33 ;
- CPAGG ; Aggregate performance
- +1 NEW ID
- +2 SET ID=""
- +3 FOR
- SET ID=$ORDER(HEAD(ID))
- IF ID=""
- QUIT
- Begin DoDot:1
- +4 SET BQCURR(ID)=$SELECT(CQN="":"NDA",'$DATA(^BQIFAC(DIV,70,CQN,1)):"NDA",1:"N/A")
- End DoDot:1
- +5 ;
- +6 IF CQN=""
- QUIT
- +7 SET IDN=0
- +8 FOR
- SET IDN=$ORDER(^BQIFAC(DIV,70,CQN,1,IDN))
- IF 'IDN
- QUIT
- Begin DoDot:1
- +9 SET (CDEN,CNUM,CEXC,CURR)=""
- +10 SET CDATA=^BQIFAC(DIV,70,CQN,1,IDN,0)
- +11 SET CEXC=$GET(^BQIFAC(DIV,70,CQN,1,IDN,1))
- +12 SET CDEN=$PIECE(CDATA,U,2)
- SET CNUM=$PIECE(CDATA,U,3)
- +13 SET ID=$PIECE(CDATA,U,1)
- +14 IF CDEN=""
- IF CEXC'=""
- SET $PIECE(BQICURR(ID),U,3)=CEXC
- QUIT
- +15 SET $PIECE(BQCURR(ID),U,1)=$PIECE($GET(BQCURR(ID)),U,1)+CDEN
- +16 SET $PIECE(BQCURR(ID),U,2)=$PIECE($GET(BQCURR(ID)),U,2)+CNUM
- End DoDot:1
- +17 QUIT
- +18 ;
- PPAGG ;
- +1 NEW ID
- +2 SET ID=""
- +3 FOR
- SET ID=$ORDER(HEAD(ID))
- IF ID=""
- QUIT
- Begin DoDot:1
- +4 SET BQPREV(ID)=$SELECT(PQN="":"NDA",'$DATA(^BQIFAC(DIV,70,PQN,1)):"NDA",1:"N/A")
- End DoDot:1
- +5 ;
- +6 IF PQN=""
- QUIT
- +7 SET IDN=0
- +8 FOR
- SET IDN=$ORDER(^BQIFAC(DIV,70,PQN,1,IDN))
- IF 'IDN
- QUIT
- Begin DoDot:1
- +9 SET (PDEN,PNUM,PEXC,PREV)=""
- +10 SET PDATA=^BQIFAC(DIV,70,PQN,1,IDN,0)
- +11 SET PEXC=$GET(^BQIFAC(DIV,70,PQN,1,IDN,1))
- +12 SET PDEN=$PIECE(PDATA,U,2)
- SET PNUM=$PIECE(PDATA,U,3)
- +13 SET ID=$PIECE(PDATA,U,1)
- +14 IF PDEN=""
- IF PEXC'=""
- SET $PIECE(BQIPREV(ID),U,3)=PEXC
- +15 SET $PIECE(BQPREV(ID),U,1)=$PIECE($GET(BQPREV(ID)),U,1)+PDEN
- +16 SET $PIECE(BQPREV(ID),U,2)=$PIECE($GET(BQPREV(ID)),U,2)+PNUM
- End DoDot:1
- +17 QUIT