| 1 | SPNLRK1 ;ISC-SF/GB-SCD LAB TEST UTILIZATION REPORT (PART 1 OF 1) ;4 JUNE 94 [ 08/23/94  10:03 AM ] | 
|---|
| 2 | ;;2.0;Spinal Cord Dysfunction;;01/02/1997 | 
|---|
| 3 | P1(TITLE,PAGELEN,ABORT) ; | 
|---|
| 4 | ; NDTESTS   Number of different lab tests | 
|---|
| 5 | ; TESTNR    Type of Lab test (lab test number) | 
|---|
| 6 | ; ORDERS    Number of orders places | 
|---|
| 7 | N NDTESTS,TESTNR,OUT,LINE,STARTLIN,COL,ORDERS,NPATS,RESULTS | 
|---|
| 8 | S TITLE(4)="" | 
|---|
| 9 | S ORDERS=+$G(^TMP("SPN",$J,"CH","ORDERS")) | 
|---|
| 10 | S RESULTS=+$G(^TMP("SPN",$J,"CH","RESULTS")) | 
|---|
| 11 | S NPATS=+$G(^TMP("SPN",$J,"CH","PAT")) | 
|---|
| 12 | S TITLE(5)=$$CENTER^SPNLRU("Totals:  "_$FN(ORDERS,",")_" order"_$S(ORDERS=1:"",1:"s")_" placed ("_$FN(RESULTS,",")_" result"_$S(RESULTS=1:"",1:"s")_" reported) for "_$FN(NPATS,",")_" patient"_$S(NPATS=1:"",1:"s")) | 
|---|
| 13 | S TESTNR="" | 
|---|
| 14 | F NDTESTS=0:1 S TESTNR=$O(^TMP("SPN",$J,"CH","TEST",TESTNR)) Q:TESTNR="" | 
|---|
| 15 | S:NDTESTS=1&(RESULTS>1) TITLE(6)=$$CENTER^SPNLRU("(This includes just one type of lab test)") | 
|---|
| 16 | S:NDTESTS>1 TITLE(6)=$$CENTER^SPNLRU("(These include "_$FN(NDTESTS,",")_" different lab tests)") | 
|---|
| 17 | S ORDERS=+$O(^TMP("SPN",$J,"CH","ORDERS","")) | 
|---|
| 18 | F  D  Q:ORDERS=""!(ABORT) | 
|---|
| 19 | . D HEADER^SPNLRU(.TITLE,.ABORT) Q:ABORT | 
|---|
| 20 | . K OUT,TITLE(4),TITLE(5),TITLE(6) | 
|---|
| 21 | . S STARTLIN=$Y | 
|---|
| 22 | . S OUT(STARTLIN+1)="" | 
|---|
| 23 | . F COL=1:1:3 D  Q:ORDERS="" | 
|---|
| 24 | . . S OUT(STARTLIN)=$G(OUT(STARTLIN))_"   Patients     Orders    " | 
|---|
| 25 | . . F LINE=STARTLIN+2:1:PAGELEN D  Q:ORDERS="" | 
|---|
| 26 | . . . S OUT(LINE)=$G(OUT(LINE))_$J($FN($G(^TMP("SPN",$J,"CH","ORDERS",ORDERS)),","),10)_$J($FN(-ORDERS,","),11)_"     " | 
|---|
| 27 | . . . S ORDERS=$O(^TMP("SPN",$J,"CH","ORDERS",ORDERS)) | 
|---|
| 28 | . S LINE="" | 
|---|
| 29 | . F  S LINE=$O(OUT(LINE)) Q:LINE=""  D | 
|---|
| 30 | . . W !,OUT(LINE) | 
|---|
| 31 | Q | 
|---|
| 32 | P2(TITLE,PAGELEN,QLIST,ABORT) ; | 
|---|
| 33 | N NPATS,TESTNR,RESULTS,MAXPATS,MAXTESTS,NAME | 
|---|
| 34 | S TITLE(4)="" | 
|---|
| 35 | S TITLE(5)=$$CENTER^SPNLRU("Lab Tests with "_$FN(QLIST("MIN"),",")_" or more Results") | 
|---|
| 36 | S TITLE(6)="" | 
|---|
| 37 | ; TITLE(5)="         1         2         3         4         5         6         7         8" | 
|---|
| 38 | S TITLE(7)="                                                                  Max # Results" | 
|---|
| 39 | S TITLE(8)="Lab Test                                Results      Patients      (# patients)" | 
|---|
| 40 | D HEADER^SPNLRU(.TITLE,.ABORT) Q:ABORT | 
|---|
| 41 | S TESTNR="" | 
|---|
| 42 | F  S TESTNR=$O(^TMP("SPN",$J,"CH","TEST",TESTNR)) Q:TESTNR=""  D | 
|---|
| 43 | . S RESULTS=^TMP("SPN",$J,"CH","TEST",TESTNR) | 
|---|
| 44 | . Q:RESULTS<QLIST("MIN") | 
|---|
| 45 | . S NPATS=^TMP("SPN",$J,"CH","TEST",TESTNR,"PAT") | 
|---|
| 46 | . S NAME=^TMP("SPN",$J,"CH","TEST",TESTNR,"NAME") | 
|---|
| 47 | . S ^TMP("SPN",$J,"CH","OUT",-RESULTS,-NPATS,NAME)=TESTNR | 
|---|
| 48 | S RESULTS="" | 
|---|
| 49 | F  S RESULTS=$O(^TMP("SPN",$J,"CH","OUT",RESULTS)) Q:RESULTS=""  D  Q:ABORT | 
|---|
| 50 | . S NPATS="" | 
|---|
| 51 | . F  S NPATS=$O(^TMP("SPN",$J,"CH","OUT",RESULTS,NPATS)) Q:NPATS=""  D  Q:ABORT | 
|---|
| 52 | . . S NAME="" | 
|---|
| 53 | . . F  S NAME=$O(^TMP("SPN",$J,"CH","OUT",RESULTS,NPATS,NAME)) Q:NAME=""  D  Q:ABORT | 
|---|
| 54 | . . . I $Y>PAGELEN D HEADER^SPNLRU(.TITLE,.ABORT) Q:ABORT | 
|---|
| 55 | . . . S TESTNR=^TMP("SPN",$J,"CH","OUT",RESULTS,NPATS,NAME) | 
|---|
| 56 | . . . S MAXTESTS=$O(^TMP("SPN",$J,"CH","TEST",TESTNR,"RESULTS","")) | 
|---|
| 57 | . . . S MAXPATS=^TMP("SPN",$J,"CH","TEST",TESTNR,"RESULTS",MAXTESTS) | 
|---|
| 58 | . . . W !,NAME,?35,$J($FN(-RESULTS,","),11),?50,$J($FN(-NPATS,","),10) | 
|---|
| 59 | . . . I RESULTS'=NPATS&(-RESULTS>1)&(-NPATS>1) W ?65,$J(-MAXTESTS,8)," (",MAXPATS,")" | 
|---|
| 60 | . . . ; See what IMRWRBP does here for national report. | 
|---|
| 61 | K ^TMP("SPN",$J,"CH","OUT"),TITLE(5),TITLE(6),TITLE(7),TITLE(8) | 
|---|
| 62 | Q | 
|---|
| 63 | P3(TITLE,PAGELEN,HIUSERS,ABORT) ; | 
|---|
| 64 | ; I         High user counter | 
|---|
| 65 | ; PID       Patient ID (Coded SSN) | 
|---|
| 66 | ; PNAME     Patient Name | 
|---|
| 67 | ; PSSN      Patient SSN | 
|---|
| 68 | N RESULTS,NDTESTS,PID,PNAME,PSSN,I,ORDERS | 
|---|
| 69 | ; TITLE(6)="         1         2         3         4         5         6         7         8" | 
|---|
| 70 | S TITLE(6)="                                                                       Different" | 
|---|
| 71 | S TITLE(7)="Patient Name                        SSN       Orders      Results      Lab Tests" | 
|---|
| 72 | D HEADER^SPNLRU(.TITLE,.ABORT) Q:ABORT | 
|---|
| 73 | S ORDERS="" | 
|---|
| 74 | F I=1:1:HIUSERS S ORDERS=$O(^TMP("SPN",$J,"CH","HI","H1",ORDERS)) Q:ORDERS=""  D  Q:ABORT | 
|---|
| 75 | . S RESULTS="" | 
|---|
| 76 | . F  S RESULTS=$O(^TMP("SPN",$J,"CH","HI","H1",ORDERS,RESULTS)) Q:RESULTS=""  D  Q:ABORT | 
|---|
| 77 | . . S NDTESTS="" | 
|---|
| 78 | . . F  S NDTESTS=$O(^TMP("SPN",$J,"CH","HI","H1",ORDERS,RESULTS,NDTESTS)) Q:NDTESTS=""  D  Q:ABORT | 
|---|
| 79 | . . . S PID="" | 
|---|
| 80 | . . . F  S PID=$O(^TMP("SPN",$J,"CH","HI","H1",ORDERS,RESULTS,NDTESTS,PID)) Q:PID=""  D  Q:ABORT | 
|---|
| 81 | . . . . I $Y>PAGELEN D HEADER^SPNLRU(.TITLE,.ABORT) Q:ABORT | 
|---|
| 82 | . . . . D GETNAME^SPNLRU(PID,.PNAME,.PSSN) | 
|---|
| 83 | . . . . W !,PNAME,?32,PSSN,?45,$J($FN(-ORDERS,","),6),?55,$J($FN(-RESULTS,","),9),?70,$J(-NDTESTS,8) | 
|---|
| 84 | Q | 
|---|