1 | SPNLRJI ;ISC-SF/GB-SCD IP/OP REPORT (PRINT IP) ;6/23/95 11:57
|
---|
2 | ;;2.0;Spinal Cord Dysfunction;;01/02/1997
|
---|
3 | INPAT(TITLE,PAGELEN,HIUSERS,ABORT) ;
|
---|
4 | ; PAGELEN Number of lines per page
|
---|
5 | ; TITLE Array of header lines (titles)
|
---|
6 | S TITLE(3)=$$CENTER^SPNLRU("Inpatient Activity")
|
---|
7 | D PIP1 Q:ABORT
|
---|
8 | D PIP2 Q:ABORT
|
---|
9 | I HIUSERS D
|
---|
10 | . D PIP3 Q:ABORT
|
---|
11 | . D PIP4
|
---|
12 | Q
|
---|
13 | PIP1 ;
|
---|
14 | ; ADM Number of admissions (stays)
|
---|
15 | N ADM,OUT,LINE,STARTLIN,COL,NPATS,DAYS
|
---|
16 | S TITLE(5)=""
|
---|
17 | S NPATS=+$G(^TMP("SPN",$J,"IP","PAT"))
|
---|
18 | S ADM=+$G(^TMP("SPN",$J,"IP","ADM"))
|
---|
19 | S DAYS=+$G(^TMP("SPN",$J,"IP","DAYS"))
|
---|
20 | S TITLE(6)=$$CENTER^SPNLRU("Totals: "_$FN(NPATS,",")_" patient"_$S(NPATS=1:"",1:"s")_" for "_$FN(ADM,",")_" stay"_$S(ADM=1:"",1:"s")_" and "_$FN(DAYS,",")_" day"_$S(DAYS=1:"",1:"s")_" inpatient care")
|
---|
21 | S ADM=+$O(^TMP("SPN",$J,"IP","ADM","PAT",""))
|
---|
22 | F D Q:ADM=""!(ABORT)
|
---|
23 | . D HEADER^SPNLRU(.TITLE,.ABORT) Q:ABORT
|
---|
24 | . K OUT,TITLE(5),TITLE(6)
|
---|
25 | . S STARTLIN=$Y
|
---|
26 | . S OUT(STARTLIN+1)=""
|
---|
27 | . F COL=1:1:3 D Q:ADM=""
|
---|
28 | . . S OUT(STARTLIN)=$G(OUT(STARTLIN))_" Patients Stays "
|
---|
29 | . . F LINE=STARTLIN+2:1:PAGELEN D Q:ADM=""
|
---|
30 | . . . S OUT(LINE)=$G(OUT(LINE))_$J($FN($G(^TMP("SPN",$J,"IP","ADM","PAT",ADM)),","),11)_$J($FN(ADM,","),9)_" "
|
---|
31 | . . . S ADM=$O(^TMP("SPN",$J,"IP","ADM","PAT",ADM))
|
---|
32 | . S LINE=""
|
---|
33 | . F S LINE=$O(OUT(LINE)) Q:LINE="" D
|
---|
34 | . . W !,OUT(LINE)
|
---|
35 | Q
|
---|
36 | PIP2 ;
|
---|
37 | ; BS Bed Section Array
|
---|
38 | ; BSNAME Bed Section Name
|
---|
39 | ; BSNR Bed Section Number
|
---|
40 | ; DAYS Number of days spent in a bed section
|
---|
41 | ; NPATS Number of patients
|
---|
42 | ; STAYS Number of stays in a bed section
|
---|
43 | N STAYS,BSNAME,NPATS,DAYS,BS,BSNR
|
---|
44 | S TITLE(5)=""
|
---|
45 | S TITLE(6)=$$CENTER^SPNLRU("Median Length of Stay (MLOS): "_$FN($$MEDIAN^SPNLRU($G(^TMP("SPN",$J,"IP","ADM")),"^TMP(""SPN"","_$J_",""IP"",""ADM"",""DAYS"","),",",1)_" days")
|
---|
46 | ; TITLE(5)=" 1 2 3 4 5 6 7 8"
|
---|
47 | S TITLE(7)=""
|
---|
48 | S TITLE(8)="Specialty Patients Stays Days MLOS"
|
---|
49 | D HEADER^SPNLRU(.TITLE,.ABORT) Q:ABORT
|
---|
50 | S BSNR="" ; set up to print bed sections in name order
|
---|
51 | F S BSNR=$O(^TMP("SPN",$J,"IP","BS",BSNR)) Q:BSNR="" D
|
---|
52 | . S BS(^TMP("SPN",$J,"IP","BS",BSNR,"NAME"))=BSNR
|
---|
53 | S BSNAME=""
|
---|
54 | F S BSNAME=$O(BS(BSNAME)) Q:BSNAME="" D Q:ABORT
|
---|
55 | . I $Y>PAGELEN D HEADER^SPNLRU(.TITLE,.ABORT) Q:ABORT
|
---|
56 | . S BSNR=BS(BSNAME)
|
---|
57 | . S NPATS=^TMP("SPN",$J,"IP","BS",BSNR)
|
---|
58 | . S STAYS=^TMP("SPN",$J,"IP","BS",BSNR,"STAYS")
|
---|
59 | . S DAYS=^TMP("SPN",$J,"IP","BS",BSNR,"DAYS")
|
---|
60 | . W !,BSNAME,?35,$J($FN(NPATS,","),9),?50,$J($FN(STAYS,","),7),?60,$J($FN(DAYS,","),8),?70,$J($$MEDIAN^SPNLRU(STAYS,"^TMP(""SPN"","_$J_",""IP"",""BS"","""_BSNR_""",""DAYS"","),9,1)
|
---|
61 | K TITLE(5),TITLE(6),TITLE(7),TITLE(8)
|
---|
62 | Q
|
---|
63 | PIP3 ;
|
---|
64 | ; ADM Number of admissions (stays)
|
---|
65 | ; DAYS Number of days for these admissions
|
---|
66 | ; I High User Counter
|
---|
67 | ; PID Patient ID (Coded SSN)
|
---|
68 | ; PNAME Patient Name
|
---|
69 | ; PSSN Patient SSN
|
---|
70 | N ADM,I,DAYS,PID,PNAME,PSSN
|
---|
71 | S TITLE(5)=""
|
---|
72 | S TITLE(6)=$$CENTER^SPNLRU("Highest Number of Stays")
|
---|
73 | S TITLE(7)=""
|
---|
74 | S TITLE(8)="Patient Name SSN Stays Days"
|
---|
75 | D HEADER^SPNLRU(.TITLE,.ABORT) Q:ABORT
|
---|
76 | S ADM=""
|
---|
77 | F I=1:1:HIUSERS S ADM=$O(^TMP("SPN",$J,"IP","HI","H1",ADM)) Q:ADM="" D Q:ABORT
|
---|
78 | . S DAYS=""
|
---|
79 | . F S DAYS=$O(^TMP("SPN",$J,"IP","HI","H1",ADM,DAYS)) Q:DAYS="" D Q:ABORT
|
---|
80 | . . S PID=""
|
---|
81 | . . F S PID=$O(^TMP("SPN",$J,"IP","HI","H1",ADM,DAYS,PID)) Q:PID="" D Q:ABORT
|
---|
82 | . . . I $Y>PAGELEN D HEADER^SPNLRU(.TITLE,.ABORT) Q:ABORT
|
---|
83 | . . . D GETNAME^SPNLRU(PID,.PNAME,.PSSN)
|
---|
84 | . . . W !,PNAME,?32,PSSN,?45,$J($FN(-ADM,","),10),?60,$J($FN(-DAYS,","),11)
|
---|
85 | K TITLE(5),TITLE(6),TITLE(7),TITLE(8)
|
---|
86 | Q
|
---|
87 | PIP4 ;
|
---|
88 | N ADM,I,DAYS,PID,PNAME,PSSN
|
---|
89 | S TITLE(5)=""
|
---|
90 | S TITLE(6)=$$CENTER^SPNLRU("Highest Number of Days")
|
---|
91 | S TITLE(7)=""
|
---|
92 | S TITLE(8)="Patient Name SSN Days Stays"
|
---|
93 | D HEADER^SPNLRU(.TITLE,.ABORT) Q:ABORT
|
---|
94 | S DAYS=""
|
---|
95 | F I=1:1:HIUSERS S DAYS=$O(^TMP("SPN",$J,"IP","HI","H2",DAYS)) Q:DAYS="" D Q:ABORT
|
---|
96 | . S ADM=""
|
---|
97 | . F S ADM=$O(^TMP("SPN",$J,"IP","HI","H2",DAYS,ADM)) Q:ADM="" D Q:ABORT
|
---|
98 | . . S PID=""
|
---|
99 | . . F S PID=$O(^TMP("SPN",$J,"IP","HI","H2",DAYS,ADM,PID)) Q:PID="" D Q:ABORT
|
---|
100 | . . . I $Y>PAGELEN D HEADER^SPNLRU(.TITLE,.ABORT) Q:ABORT
|
---|
101 | . . . D GETNAME^SPNLRU(PID,.PNAME,.PSSN)
|
---|
102 | . . . W !,PNAME,?32,PSSN,?45,$J($FN(-DAYS,","),11),?60,$J($FN(-ADM,","),10)
|
---|
103 | K TITLE(5),TITLE(6),TITLE(7),TITLE(8)
|
---|
104 | Q
|
---|