| 1 | SCRPW304 ; BPFO/JRC - Performance Monitors National Summary Report; 30 Jul 2003 ; 2/5/04 7:13am
 | 
|---|
| 2 |  ;;5.3;SCHEDULING;**292,335,337**;AUG 13, 1993
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 | EN ;Main Entry Point
 | 
|---|
| 5 |  ;Declare variable(s) and arrays
 | 
|---|
| 6 |  N SCRNARR,SORTARR
 | 
|---|
| 7 |  S SCRNARR="^TMP(""SCRPW"",$J,""SCRNARR"")"
 | 
|---|
| 8 |  S SORTARR="^TMP(""SCRPW"",$J,""SORTARR"")"
 | 
|---|
| 9 |  K @SCRNARR,@SORTARR
 | 
|---|
| 10 |  ;Set national screen/sort
 | 
|---|
| 11 |  D ROLLUP^SCRPW303(SCRNARR,SORTARR)
 | 
|---|
| 12 |  ;Get date frame
 | 
|---|
| 13 |  I $$DATE^SCRPW302("","",SCRNARR)=0 D EX1 Q
 | 
|---|
| 14 |  ;Queue report
 | 
|---|
| 15 |  W !!
 | 
|---|
| 16 |  N ZTDESC,ZTIO,ZTSAVE,TMP
 | 
|---|
| 17 |  S ZTIO=""
 | 
|---|
| 18 |  S ZTDESC="Performance Monitor National Summary Report"
 | 
|---|
| 19 |  S ZTSAVE("SCRNARR")=""
 | 
|---|
| 20 |  S TMP=$$OREF^DILF(SCRNARR)
 | 
|---|
| 21 |  S ZTSAVE(TMP)=""
 | 
|---|
| 22 |  I $D(@SCRNARR)#2 S ZTSAVE(SCRNARR)=""
 | 
|---|
| 23 |  S ZTSAVE("SORTARR")=""
 | 
|---|
| 24 |  S TMP=$$OREF^DILF(SORTARR)
 | 
|---|
| 25 |  S ZTSAVE(TMP)=""
 | 
|---|
| 26 |  I $D(@SORTARR)#2 S ZTSAVE(SORTARR)=""
 | 
|---|
| 27 |  D EN^XUTMDEVQ("EN1^SCRPW304",ZTDESC,.ZTSAVE)
 | 
|---|
| 28 |  D EX1
 | 
|---|
| 29 |  Q
 | 
|---|
| 30 |  ;
 | 
|---|
| 31 | EN1 ;Tasked entry point
 | 
|---|
| 32 |  ;Input  : SCRNARR - Screen array
 | 
|---|
| 33 |  ;         SORTARR - Sort array
 | 
|---|
| 34 |  ;Output : None
 | 
|---|
| 35 |  ;
 | 
|---|
| 36 |  N OUTARR,STOP,PAGENUM,STOP,SUMNODE,PINODE,DIV
 | 
|---|
| 37 |  S OUTARR="^TMP(""SCRPW"",$J,""OUTARR"")"
 | 
|---|
| 38 |  S STOP=0
 | 
|---|
| 39 |  K @OUTARR
 | 
|---|
| 40 |  S PAGENUM=1
 | 
|---|
| 41 |  ;Get data
 | 
|---|
| 42 |  D GETDATA^SDPMUT1(SCRNARR,SORTARR,OUTARR)
 | 
|---|
| 43 |  ;Print summary for facility
 | 
|---|
| 44 |  S DIV=""
 | 
|---|
| 45 |  D PRTHEAD
 | 
|---|
| 46 |  S SUMNODE=$G(@OUTARR@("SUMMARY"))
 | 
|---|
| 47 |  S PINODE=$G(@OUTARR@("SUMMARY","PI"))
 | 
|---|
| 48 |  I '$$S^%ZTLOAD() D PRTSUMS
 | 
|---|
| 49 |  D WAIT^SCRPW301 I STOP D EXIT Q
 | 
|---|
| 50 |  ;Print divisional summaries
 | 
|---|
| 51 |  S DIV="" F  S DIV=$O(@OUTARR@("SUBTOTAL",DIV)) Q:DIV=""  D  Q:STOP
 | 
|---|
| 52 |  .D PRTHEAD
 | 
|---|
| 53 |  .S SUMNODE=$G(@OUTARR@("SUBTOTAL",DIV))
 | 
|---|
| 54 |  .S PINODE=$G(@OUTARR@("SUBTOTAL",DIV,"PI"))
 | 
|---|
| 55 |  .D PRTSUMS
 | 
|---|
| 56 |  .D WAIT^SCRPW301 I STOP Q
 | 
|---|
| 57 |  ;Cleanup and quit
 | 
|---|
| 58 |  D EXIT
 | 
|---|
| 59 |  Q
 | 
|---|
| 60 |  ;
 | 
|---|
| 61 | PRTHEAD ;Page Header
 | 
|---|
| 62 |  ;Input  : OUTARR - Data array
 | 
|---|
| 63 |  ;         SCRNARR - Screen array
 | 
|---|
| 64 |  ;         PAGENUM - Page number
 | 
|---|
| 65 |  ;         DIV - Division Name ^ Division Number
 | 
|---|
| 66 |  ;             - NULL if facility name/number should be used
 | 
|---|
| 67 |  ;Output : None
 | 
|---|
| 68 |  ;         PAGENUM is incremented by 1
 | 
|---|
| 69 |  ;
 | 
|---|
| 70 |  N TMP,LINE,VISN
 | 
|---|
| 71 |  W @IOF
 | 
|---|
| 72 |  W !,"Performance Monitor National Summary Report",?70,"Page: ",PAGENUM
 | 
|---|
| 73 |  S LINE="Division: "_$P(DIV,U,1)_" ("_$P(DIV,U,2)_")"
 | 
|---|
| 74 |  I DIV="" D
 | 
|---|
| 75 |  .S TMP=$$SITE^VASITE()
 | 
|---|
| 76 |  .D PARENT^XUAF4("VISN","`"_$P(TMP,U,1))  ; SD*5.3*337
 | 
|---|
| 77 |  .S VISN="",VISN=$O(VISN("P",VISN)) Q:VISN=""  ; SD*5.3*337
 | 
|---|
| 78 |  .S LINE="Facility: "_$P(TMP,U,2)_" ("_$P(TMP,U,3)_")"_" "_$P($G(VISN("P",VISN)),U,1)
 | 
|---|
| 79 |  W !!,LINE
 | 
|---|
| 80 |  W !,"Run Date: ",$$HTE^XLFDT($H)
 | 
|---|
| 81 |  W !,"Encounter Date Range: ",$$FMTE^XLFDT($P(@SCRNARR@("RANGE"),U,1))
 | 
|---|
| 82 |  W " to ",$$FMTE^XLFDT($P(@SCRNARR@("RANGE"),U,2))
 | 
|---|
| 83 |  I DIV="" S LINE=+$G(@OUTARR@("SUMMARY"))
 | 
|---|
| 84 |  I DIV'="" S LINE=+$G(@OUTARR@("SUBTOTAL",DIV))
 | 
|---|
| 85 |  W !,"Total number of encounters (denominator): ",LINE
 | 
|---|
| 86 |  W !!,"Total number of encounters in the denominator are those included in the"
 | 
|---|
| 87 |  W !,"Performance Monitor cohort"
 | 
|---|
| 88 |  S PAGENUM=PAGENUM+1
 | 
|---|
| 89 |  Q
 | 
|---|
| 90 |  ;
 | 
|---|
| 91 | PRTSUMS ;Print summaries
 | 
|---|
| 92 |  ;Input  : SUMNODE - Summary node from OUTARR
 | 
|---|
| 93 |  ;         PINODE - PI node from OUTARR
 | 
|---|
| 94 |  ;Output : None
 | 
|---|
| 95 |  ;
 | 
|---|
| 96 |  I (SUMNODE="")&(PINODE="") D  Q
 | 
|---|
| 97 |  .W !
 | 
|---|
| 98 |  .W !,"***********************************************"
 | 
|---|
| 99 |  .W !,"*  NOTHING TO REPORT FOR SELECTED DATE FRAME  *"
 | 
|---|
| 100 |  .W !,"***********************************************"
 | 
|---|
| 101 |  N VAL,DASH6,TOTENC,CMPENC,PRCNT,TMP,SCANNED,NPN
 | 
|---|
| 102 |  S $P(DASH6,"-",6)="-"
 | 
|---|
| 103 |  S $P(PRCNT,U,11)=""
 | 
|---|
| 104 |  ;Get general totals
 | 
|---|
| 105 |  S TOTENC=+$P(SUMNODE,U,1)
 | 
|---|
| 106 |  S CMPENC=+$P(SUMNODE,U,2)
 | 
|---|
| 107 |  S SCANNED=+$P(SUMNODE,U,7)
 | 
|---|
| 108 |  S NPN=+$P(SUMNODE,U,9)
 | 
|---|
| 109 |  ;Calculate compliance percentages
 | 
|---|
| 110 |  I TOTENC S VAL=0 F TMP=1:1:11 D
 | 
|---|
| 111 |  .I (TOTENC-SCANNED)>0 S VAL=100*($P(PINODE,U,TMP)/(TOTENC-SCANNED))
 | 
|---|
| 112 |  .S $P(PRCNT,U,TMP)=$TR($J(VAL,3,0)," ")_"%"
 | 
|---|
| 113 |  ;Part 1
 | 
|---|
| 114 |  W !!,"Signed",?21,"Elapsed Time (Days)"
 | 
|---|
| 115 |  W !,"within",?14,"0-1",?22,">1-2",?31,">2-3",?39,">3-4",?47,">4-5"
 | 
|---|
| 116 |  W ?55,">5-6",?63,">6-7",?71,">7-8"
 | 
|---|
| 117 |  W !,?13,DASH6,?21,DASH6,?30,DASH6,?38,DASH6,?46,DASH6,?54,DASH6
 | 
|---|
| 118 |  W ?62,DASH6,?70,DASH6
 | 
|---|
| 119 |  W !,"Encounters",?13,+$P(PINODE,U,1),?21,+$P(PINODE,U,2)
 | 
|---|
| 120 |  W ?30,+$P(PINODE,U,3),?38,+$P(PINODE,U,4),?46,+$P(PINODE,U,5)
 | 
|---|
| 121 |  W ?54,+$P(PINODE,U,6),?62,+$P(PINODE,U,7),?70,+$P(PINODE,U,8)
 | 
|---|
| 122 |  W !,"Percentage",?13,$P(PRCNT,U,1),?21,$P(PRCNT,U,2)
 | 
|---|
| 123 |  W ?30,$P(PRCNT,U,3),?38,$P(PRCNT,U,4),?46,$P(PRCNT,U,5)
 | 
|---|
| 124 |  W ?54,$P(PRCNT,U,6),?62,$P(PRCNT,U,7),?70,$P(PRCNT,U,8)
 | 
|---|
| 125 |  ;Part 2
 | 
|---|
| 126 |  W !!,"Signed",?21,"Elapsed Time (Days)",?45,"Pending",?60,"Scanned"
 | 
|---|
| 127 |  W !,"within",?14,">8-9",?22,">9-10",?32,">10",?38,"Signatures"
 | 
|---|
| 128 |  W ?50,"Notes",?59,"Note Only"
 | 
|---|
| 129 |  W !,?13,DASH6,?21,DASH6,?30,DASH6,?38,DASH6_"----"
 | 
|---|
| 130 |  W ?50,DASH6,?59,DASH6_"---"
 | 
|---|
| 131 |  W !,"Encounters",?13,+$P(PINODE,U,9),?21,+$P(PINODE,U,10)
 | 
|---|
| 132 |  W ?30,+$P(PINODE,U,11),?38,TOTENC-CMPENC-NPN-SCANNED-(+$P(PINODE,U,11))
 | 
|---|
| 133 |  W ?50,NPN,?59,SCANNED
 | 
|---|
| 134 |  W !,"Percentage",?13,$P(PRCNT,U,9),?21,$P(PRCNT,U,10)
 | 
|---|
| 135 |  W ?30,$P(PRCNT,U,11)
 | 
|---|
| 136 |  S (VAL,NPNVAL)=0
 | 
|---|
| 137 |  I (TOTENC-SCANNED)>0 S NPNVAL=100*(NPN/(TOTENC-SCANNED))
 | 
|---|
| 138 |  S NPNVAL=$TR($J(NPNVAL,3,0)," ")_"%"
 | 
|---|
| 139 |  I (TOTENC-SCANNED)>0 S VAL=100*((TOTENC-SCANNED-CMPENC-NPN-(+$P(PINODE,U,11)))/TOTENC)
 | 
|---|
| 140 |  S VAL=$TR($J(VAL,3,0)," ")_"%"
 | 
|---|
| 141 |  W ?38,VAL,?50,NPNVAL,?59,"N/A"
 | 
|---|
| 142 |  Q
 | 
|---|
| 143 |  ;
 | 
|---|
| 144 | EXIT ;Kill temporary arrays
 | 
|---|
| 145 |  K @OUTARR
 | 
|---|
| 146 | EX1 K @SORTARR,@SCRNARR
 | 
|---|
| 147 |  Q
 | 
|---|