1 | SPNLGRPS ; ISC-SF/GMB - SCD GATHER PATIENT STATISTICS DATA; 3 JUL 94 [ 08/08/94 2:19 PM ] ;6/23/95 11:39
|
---|
2 | ;;2.0;Spinal Cord Dysfunction;**18**;01/02/1997
|
---|
3 | GATHER(DFN,FDATE,TDATE,QLIST) ;
|
---|
4 | ; DFN Patient's internal entry number in the Patient file
|
---|
5 | ; FDATE "From" date
|
---|
6 | ; TDATE "Thru" date, default=today
|
---|
7 | ; Data will be rolled up into the following global:
|
---|
8 | ; ^TMP("SPN",$J,"PS",
|
---|
9 | ; with the following nodes for each sex:
|
---|
10 | ; "SEX",sex) # patients of this sex
|
---|
11 | ; "STAT","DEAD",sex) # patients who are dead
|
---|
12 | ; "STAT","ALIVE",sex) # patients who are alive
|
---|
13 | ; "AGE",agerange,sex) # patients who are in this age range
|
---|
14 | ; "RACE",race,sex) # patients who are this race
|
---|
15 | ; "MEANS",means,sex) # patients who are in this means test category
|
---|
16 | ; "POS",pos,sex) # patients who are from this period of service
|
---|
17 | ; "ELIG",elig,sex) # patients with this eligibility
|
---|
18 | ; Additionally, if the user specified a time period:
|
---|
19 | ; "SEEN","IP",sex) # patients seen as an inpatient
|
---|
20 | ; "SEEN","OP",sex) # patients seen as an outpatient
|
---|
21 | ; "SEEN","CH",sex) # patients who had lab tests
|
---|
22 | ; "SEEN","RX",sex) # patients seen in pharmacy
|
---|
23 | ; "SEEN","RA",sex) # patients seen in radiology
|
---|
24 | N VADM,VAEL,AGE,SEX,AGERANGE,ISDEAD,MEANS,ELIG,POS,RACE
|
---|
25 | N SEEN,SEENIP,SEENOP,SEENCH,SEENRX,SEENRA,LASTSEEN
|
---|
26 | D DEM^VADPT ; Get patient demographics
|
---|
27 | ; If we are not including dead patients, and if the patient has a date of death recorded, then quit
|
---|
28 | S ISDEAD=+$P($G(VADM(6)),U,1)
|
---|
29 | I 'QLIST("INCLUDE DEAD"),ISDEAD Q
|
---|
30 | ; If we are only interested in patients who were seen during a certain
|
---|
31 | ; time period, but this patient was not seen during that period, then quit
|
---|
32 | I QLIST("WINDOW") D Q:'SEEN
|
---|
33 | . D SEEN^SPNLGUSN(DFN,FDATE,TDATE,.SEEN,.LASTSEEN,.SEENIP,.SEENOP,.SEENCH,.SEENRX,.SEENRA)
|
---|
34 | S SEX=$P(VADM(5),U,1)
|
---|
35 | I $F("MF",SEX)<2 S SEX="U"
|
---|
36 | ; Capture all the sexes
|
---|
37 | S ^TMP("SPN",$J,"PS","SEX",SEX)=""
|
---|
38 | ; Capture Dead/Alive
|
---|
39 | I ISDEAD S ^(SEX)=$G(^TMP("SPN",$J,"PS","STAT","DEAD",SEX))+1
|
---|
40 | E S ^(SEX)=$G(^TMP("SPN",$J,"PS","STAT","LIVE",SEX))+1
|
---|
41 | ; Capture age range
|
---|
42 | S AGE=VADM(4)
|
---|
43 | S AGERANGE=AGE\5*5
|
---|
44 | S ^(SEX)=$G(^TMP("SPN",$J,"PS","AGE",AGERANGE,SEX))+1
|
---|
45 | ; Capture Race
|
---|
46 | S RACE=$P($G(VADM(12,1)),U,2)
|
---|
47 | I RACE="" S RACE="UNSPECIFIED RACE"
|
---|
48 | S ^(SEX)=$G(^TMP("SPN",$J,"PS","RACE",RACE,SEX))+1
|
---|
49 | D ELIG^VADPT ; Get patient eligibility information
|
---|
50 | ; Capture Means Test Info
|
---|
51 | S MEANS=$P($G(VAEL(9)),U,2)
|
---|
52 | I MEANS="" SET MEANS="NOT REQUIRED"
|
---|
53 | S ^(SEX)=$G(^TMP("SPN",$J,"PS","MEANS",MEANS,SEX))+1
|
---|
54 | ; Capture Eligibility
|
---|
55 | S ELIG=$P($G(VAEL(1)),U,2)
|
---|
56 | I ELIG="" S ELIG="UNSPECIFIED ELIGIBILITY"
|
---|
57 | S ^(SEX)=$G(^TMP("SPN",$J,"PS","ELIG",ELIG,SEX))+1
|
---|
58 | ; Capture Period of Service Info
|
---|
59 | S POS=$P($G(VAEL(2)),U,2)
|
---|
60 | I POS="" S POS="UNSPECIFIED PERIOD OF SERVICE"
|
---|
61 | S ^(SEX)=$G(^TMP("SPN",$J,"PS","POS",POS,SEX))+1
|
---|
62 | ; Capture where seen, but only if report is for a specified period
|
---|
63 | I QLIST("WINDOW") D
|
---|
64 | . S:SEENIP ^(SEX)=$G(^TMP("SPN",$J,"PS","SEEN","IP",SEX))+1
|
---|
65 | . S:SEENOP ^(SEX)=$G(^TMP("SPN",$J,"PS","SEEN","OP",SEX))+1
|
---|
66 | . S:SEENCH ^(SEX)=$G(^TMP("SPN",$J,"PS","SEEN","CH",SEX))+1
|
---|
67 | . S:SEENRX ^(SEX)=$G(^TMP("SPN",$J,"PS","SEEN","RX",SEX))+1
|
---|
68 | . S:SEENRA ^(SEX)=$G(^TMP("SPN",$J,"PS","SEEN","RA",SEX))+1
|
---|
69 | Q
|
---|