| 1 | SPNLRL2 ;ISC-SF/GB-SCD PHARMACY UTILIZATION REPORT (PRINT PART 2 OF 3) ;5 JUN 94 [ 08/23/94  10:04 AM ] | 
|---|
| 2 | ;;2.0;Spinal Cord Dysfunction;;01/02/1997 | 
|---|
| 3 | ; PAGELEN   Number of lines per page | 
|---|
| 4 | ; TITLE     Array of header lines (titles) | 
|---|
| 5 | P3(TITLE,PAGELEN,QLIST,ABORT) ; | 
|---|
| 6 | N NPATS,ZDRUGNR,NAME,FILLS,LCOST,TCOST,COST,QTY,COSTITLE,COSTNODE | 
|---|
| 7 | I QLIST("COST")="ACTUAL" D | 
|---|
| 8 | . S COSTITLE(1)=" Actual" | 
|---|
| 9 | . S COSTITLE(2)="  Cost " | 
|---|
| 10 | . S COSTNODE="COST" | 
|---|
| 11 | E  D | 
|---|
| 12 | . S COSTITLE(1)="Current" | 
|---|
| 13 | . S COSTITLE(2)=" Value " | 
|---|
| 14 | . S COSTNODE="VAL" | 
|---|
| 15 | S TITLE(4)="" | 
|---|
| 16 | S TITLE(5)=$$CENTER^SPNLRU("Drugs with fills totaling $"_$FN(QLIST("MINCOST"),",",2)_" or more") | 
|---|
| 17 | ; TITLE(5)="         1         2         3         4 "      "        5         6         7         8" | 
|---|
| 18 | S TITLE(6)="" | 
|---|
| 19 | S TITLE(7)="                                               "_COSTITLE(1)_"                Qty" | 
|---|
| 20 | S TITLE(8)="Drug                                           "_COSTITLE(2)_"    Fills      Disp   Pats" | 
|---|
| 21 | D HEADER^SPNLRU(.TITLE,.ABORT) Q:ABORT | 
|---|
| 22 | S ZDRUGNR="",(LCOST,TCOST)=0 | 
|---|
| 23 | F  S ZDRUGNR=$O(^TMP("SPN",$J,"RX","DRUG",ZDRUGNR)) Q:ZDRUGNR=""  D | 
|---|
| 24 | . S COST=^TMP("SPN",$J,"RX","DRUG",ZDRUGNR,COSTNODE) | 
|---|
| 25 | . S TCOST=TCOST+COST | 
|---|
| 26 | . Q:COST<QLIST("MINCOST") | 
|---|
| 27 | . S LCOST=LCOST+COST | 
|---|
| 28 | . S FILLS=^TMP("SPN",$J,"RX","DRUG",ZDRUGNR) | 
|---|
| 29 | . S NPATS=^TMP("SPN",$J,"RX","DRUG",ZDRUGNR,"PAT") | 
|---|
| 30 | . S QTY=^TMP("SPN",$J,"RX","DRUG",ZDRUGNR,"QTY") | 
|---|
| 31 | . S NAME=^TMP("SPN",$J,"RX","DRUG",ZDRUGNR,"NAME") | 
|---|
| 32 | . S ^TMP("SPN",$J,"RX","OUT",-COST,-FILLS,-QTY,-NPATS,NAME)="" | 
|---|
| 33 | S COST="" | 
|---|
| 34 | F  S COST=$O(^TMP("SPN",$J,"RX","OUT",COST)) Q:COST=""  D  Q:ABORT | 
|---|
| 35 | . S FILLS="" | 
|---|
| 36 | . F  S FILLS=$O(^TMP("SPN",$J,"RX","OUT",COST,FILLS)) Q:FILLS=""  D  Q:ABORT | 
|---|
| 37 | . . S QTY="" | 
|---|
| 38 | . . F  S QTY=$O(^TMP("SPN",$J,"RX","OUT",COST,FILLS,QTY)) Q:QTY=""  D  Q:ABORT | 
|---|
| 39 | . . . S NPATS="" | 
|---|
| 40 | . . . F  S NPATS=$O(^TMP("SPN",$J,"RX","OUT",COST,FILLS,QTY,NPATS)) Q:NPATS=""  D  Q:ABORT | 
|---|
| 41 | . . . . S NAME="" | 
|---|
| 42 | . . . . F  S NAME=$O(^TMP("SPN",$J,"RX","OUT",COST,FILLS,QTY,NPATS,NAME)) Q:NAME=""  D  Q:ABORT | 
|---|
| 43 | . . . . . I $Y>PAGELEN D HEADER^SPNLRU(.TITLE,.ABORT) Q:ABORT | 
|---|
| 44 | . . . . . W !,NAME,?40,$J($FN(-COST,",",2),14),?54,$J($FN(-FILLS,","),9),?64,$J($FN(-QTY,","),9),?73,$J($FN(-NPATS,","),7) | 
|---|
| 45 | K ^TMP("SPN",$J,"RX","OUT") | 
|---|
| 46 | I TCOST=LCOST D | 
|---|
| 47 | . I $Y+1>PAGELEN D HEADER^SPNLRU(.TITLE,.ABORT) Q:ABORT | 
|---|
| 48 | . W !!,"TOTAL for all drugs",?40,$J($FN(TCOST,",",2),14) | 
|---|
| 49 | E  D | 
|---|
| 50 | . I $Y+2>PAGELEN D HEADER^SPNLRU(.TITLE,.ABORT) Q:ABORT | 
|---|
| 51 | . W !!,"TOTAL for listed drugs",?40,$J($FN(LCOST,",",2),14) | 
|---|
| 52 | . W !,"TOTAL (including unlisted drugs)",?40,$J($FN(TCOST,",",2),14) | 
|---|
| 53 | K TITLE(4),TITLE(5),TITLE(6),TITLE(7),TITLE(8) | 
|---|
| 54 | Q | 
|---|
| 55 | P4(TITLE,PAGELEN,QLIST,ABORT) ; | 
|---|
| 56 | N COST,JD,OUT,LINE,STARTLIN,COL,COSTITLE,COSTNODE | 
|---|
| 57 | I QLIST("COST")="ACTUAL" D | 
|---|
| 58 | . S COSTITLE="           Dollar Cost    " | 
|---|
| 59 | . S COSTNODE="COST" | 
|---|
| 60 | E  D | 
|---|
| 61 | . S COSTITLE="          Dollar Value    " | 
|---|
| 62 | . S COSTNODE="VAL" | 
|---|
| 63 | S COST=+$O(^TMP("SPN",$J,"RX",COSTNODE,"")) | 
|---|
| 64 | F  D  Q:COST=""!(ABORT) | 
|---|
| 65 | . D HEADER^SPNLRU(.TITLE,.ABORT) Q:ABORT | 
|---|
| 66 | . S STARTLIN=$Y | 
|---|
| 67 | . K OUT | 
|---|
| 68 | . S OUT(STARTLIN+2)="" | 
|---|
| 69 | . F COL=1:1:3 D  Q:COST="" | 
|---|
| 70 | . . S OUT(STARTLIN)=$G(OUT(STARTLIN))_COSTITLE | 
|---|
| 71 | . . S OUT(STARTLIN+1)=$G(OUT(STARTLIN+1))_"Patients    of Fills      " | 
|---|
| 72 | . . S JD=$L($FN(-COST,",")) | 
|---|
| 73 | . . F LINE=STARTLIN+3:1:PAGELEN D  Q:COST="" | 
|---|
| 74 | . . . S NPATS=$G(^TMP("SPN",$J,"RX",COSTNODE,COST)) | 
|---|
| 75 | . . . S OUT(LINE)=$G(OUT(LINE))_$J($FN(NPATS,","),7)_$J($FN(-COST,","),9)_"-"_$$PAD^SPNLRU($J($FN(-COST+99,","),JD),9-JD) | 
|---|
| 76 | . . . S COST=$O(^TMP("SPN",$J,"RX",COSTNODE,COST)) | 
|---|
| 77 | . S LINE="" | 
|---|
| 78 | . F  S LINE=$O(OUT(LINE)) Q:LINE=""  D | 
|---|
| 79 | . . W !,OUT(LINE) | 
|---|
| 80 | Q | 
|---|