1 | SPNCMR2 ;HIRMFO/WAA-This routine will find all valid patient ; 9/3/93
|
---|
2 | ;;2.0;Spinal Cord Dysfunction;**7**;01/02/1997
|
---|
3 | EN1 ;Loop thru the ^SC file to find all Scheduled appointments
|
---|
4 | Q:SPNSEL'["2"
|
---|
5 | S SPNX=0 D LP1,UNSCH(SPNST,SPNED,"D CB^SPNCMR2(Y,Y0,.SDSTOP)")
|
---|
6 | G EXIT
|
---|
7 | LP1 S SPNX=$O(^TMP($J,"SPNWC",SPNX)) Q:SPNX<1
|
---|
8 | I $G(^TMP($J,"SPNWC",SPNX))'="W" D
|
---|
9 | .;this code finds all patients who are scheduled
|
---|
10 | .F SPNDATE=SPNST:0 S SPNDATE=$O(^SC(SPNX,"S",SPNDATE)) Q:SPNDATE<1!(SPNDATE>SPNED) D
|
---|
11 | ..S SPNIEN=0 F S SPNIEN=$O(^SC(SPNX,"S",SPNDATE,1,SPNIEN)) Q:SPNIEN<1 D
|
---|
12 | ...Q:'$D(^SC(SPNX,"S",SPNDATE,1,SPNIEN,0)) S SPNDFN=$P(^(0),U)
|
---|
13 | ...I "I"[$P($G(^DPT(SPNDFN,"S",SPNDATE,0)),U,2) D SETPT^SPNCMR3
|
---|
14 | ...Q
|
---|
15 | ..Q
|
---|
16 | .Q
|
---|
17 | G LP1
|
---|
18 | UNSCH(SPNST,SPNED,SPNCB) ; -- find all patients who are Unscheduled
|
---|
19 | ; input: SPNST := start date
|
---|
20 | ; SPNED := end date
|
---|
21 | ; SPNCB := callback code executed for each encounter in
|
---|
22 | ; query's result set
|
---|
23 | ;
|
---|
24 | N SPNQRY
|
---|
25 | ;
|
---|
26 | ; -- set up scan
|
---|
27 | D OPEN^SDQ(.SPNQRY) ; -- initialize query
|
---|
28 | D INDEX^SDQ(.SPNQRY,"DATE/TIME","SET") ; -- which index to use
|
---|
29 | D DATE^SDQ(.SPNQRY,SPNST,SPNED,"SET") ; -- date range
|
---|
30 | D SCANCB^SDQ(.SPNQRY,SPNCB,"SET") ; -- callback code to use
|
---|
31 | D ACTIVE^SDQ(.SPNQRY,"TRUE","SET") ; -- activate query
|
---|
32 | ;
|
---|
33 | D SCAN^SDQ(.SPNQRY,"FORWARD") ; -- scan entries in query
|
---|
34 | ; result set
|
---|
35 | D CLOSE^SDQ(.SPNQRY) ; -- close query
|
---|
36 | Q
|
---|
37 | ;
|
---|
38 | EXIT K SPNCS,SPNCS(0),SPNNUM,SPNX,SPNDFN,SPNDATE
|
---|
39 | Q
|
---|
40 | ;
|
---|
41 | CB(SPNOE,SPNOE0,SPNSTOP) ; -- callback code called for each
|
---|
42 | ; record in query result set
|
---|
43 | ;
|
---|
44 | ; input: SPNOE := ien of Outpatient Encounter
|
---|
45 | ; SPNOE0 := zeroth node of Outpatient Encounter
|
---|
46 | ; SPNSTOP := tells query to stop processing by setting to 1
|
---|
47 | ;
|
---|
48 | N SPNX,SPNDFN,SPNDATE
|
---|
49 | IF $P(SPNOE0,U,6) G CBQ ; -- quit if encounter has parent
|
---|
50 | IF $P(SPNOE0,U,8)'=2 G CBQ ; -- quit if not standalone encounter
|
---|
51 | ;
|
---|
52 | S SPNDATE=+SPNOE0 ; -- encounter date
|
---|
53 | S SPNDFN=+$P(SPNOE0,U,2) ; -- patient
|
---|
54 | S SPNX=+$P(SPNOE0,U,4) ; -- clinic
|
---|
55 | IF SPNX D SETPT^SPNCMR3
|
---|
56 | CBQ Q
|
---|
57 | ;
|
---|