[613] | 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 | ;
|
---|