1 | SPNFAP1 ;SAN/WDE/Print routine for pts with future appt's
|
---|
2 | ;;2.0;Spinal Cord Dysfunction;**13,24**;01/02/1997
|
---|
3 | ; Prints patients with future appts
|
---|
4 | ;
|
---|
5 | EN ;
|
---|
6 | K ^UTILITY($J)
|
---|
7 | S SPNLEXIT=0 D EN1^SPNPRTMT Q:SPNLEXIT ;Filters
|
---|
8 | DATE ;
|
---|
9 | K %DT
|
---|
10 | S Y=DT X ^DD("DD") S SPNDEF=$P(Y,"@",1)
|
---|
11 | S %DT("A")="Enter a START date: "
|
---|
12 | S %DT("B")=SPNDEF
|
---|
13 | S %DT="AE"
|
---|
14 | D ^%DT I Y=-1 W !,"Option aborted!" D ZAP Q
|
---|
15 | S SPNSTRT=Y
|
---|
16 | ;ending date
|
---|
17 | S %DT("A")="Enter a ENDING date: "
|
---|
18 | S %DT(0)=SPNSTRT
|
---|
19 | S X1=SPNSTRT,X2=15 D C^%DTC S Y=X X ^DD("DD") S %DT("B")=$P(Y,"@",1)
|
---|
20 | S %DT="AE"
|
---|
21 | D ^%DT I Y=-1 W !,"Option aborted!" D ZAP Q
|
---|
22 | S SPNEND=Y_.2359
|
---|
23 | PROMPT ;
|
---|
24 | ;ask if they want only pt in the reg..
|
---|
25 | ;ask if they want only pts with a sci indicator in file 2..
|
---|
26 | ;ask if they want both, Pts in 154 and pts in 2 with an indicator
|
---|
27 | K DIR S DIR(0)="SOM^1:Patients in the Registry only.;2:Patients marked as SCI but not in the Registry.;3:Both."
|
---|
28 | D ^DIR
|
---|
29 | I (Y="^")!('+Y) D ZAP Q
|
---|
30 | S SPNSEL=Y
|
---|
31 | S SPNCNT=0
|
---|
32 | I SPNSEL'=1 W !!,"This report should be queued to run during off hours.",!
|
---|
33 | DEV S ZTSAVE("SPN*")=""
|
---|
34 | D DEVICE^SPNPRTMT("JUMPIN^SPNFAP1","Patients with future Appointments",.ZTSAVE) Q:SPNLEXIT
|
---|
35 | TASK ;
|
---|
36 | I SPNIO="Q" D ZAP Q ;queued from spnprtmt
|
---|
37 | JUMPIN ;
|
---|
38 | ;
|
---|
39 | U IO
|
---|
40 | S SPNCNT=0
|
---|
41 | I SPNSEL=1 D SCDONLY
|
---|
42 | I SPNSEL=1 D PRINT I $E(IOST,1)="P" W @IOF X ^%ZIS("C")
|
---|
43 | I SPNSEL=1 I $E(IOST,1)="C" I SPNLEXIT'=1 N DIR S DIR(0)="E" D ^DIR W @IOF Q
|
---|
44 | I SPNSEL=1 G ZAP Q:SPNLEXIT=1
|
---|
45 | D BOTH D PRINT X ^%ZIS("C")
|
---|
46 | I $E(IOST,1)="C" I SPNLEXIT'=1 N DIR S DIR(0)="E" D ^DIR W @IOF Q
|
---|
47 | D ZAP
|
---|
48 | K SPNLEXIT
|
---|
49 | Q
|
---|
50 | ZAP ;****************************************************************
|
---|
51 | K ^UTILITY($J),SPNEND,SPNSTRT,SPNSEL,Y,X,SPNDFN,SPNP2,SPNP3,SPNP4
|
---|
52 | K SPNA,SPNQ,SPNIO,SPNCNT,SPNDFN,DATA,SPNCHK,SPNAPPT
|
---|
53 | K SPNCL,SPNDT,SPNDATA,SPNTIM,SPNSSN,SPNPT
|
---|
54 | K SDARRAY,SDCOUNT,SDDATE,SDCLIEN
|
---|
55 | K %DT,SPNTAB
|
---|
56 | Q
|
---|
57 | SCDONLY S SPNDFN=0,DATA="" F S SPNDFN=$O(^SPNL(154,SPNDFN)) Q:(SPNDFN="")!('+SPNDFN) D
|
---|
58 | .I '$$EN2^SPNPRTMT(SPNDFN) Q
|
---|
59 | .D APPT
|
---|
60 | Q
|
---|
61 | ;--------------------------------------------------------------------
|
---|
62 | BOTH ;
|
---|
63 | S SPNDFN=0 F S SPNDFN=$O(^DPT(SPNDFN)) Q:(SPNDFN="")!('+SPNDFN) D
|
---|
64 | .I SPNSEL=3 I $D(^SPNL(154,SPNDFN,0)) Q:'$$EN2^SPNPRTMT(SPNDFN) D APPT Q
|
---|
65 | .S SPNCHK=$P($G(^DPT(SPNDFN,57)),U,4) I +SPNCHK D APPT
|
---|
66 | .I $E(IOST,1)="C" I SPNDFN#100=62 W "."
|
---|
67 | .Q
|
---|
68 | Q
|
---|
69 | ;---------------------------------------------------------------------
|
---|
70 | APPT ;
|
---|
71 | I SPNSEL=2 Q:$D(^SPNL(154,SPNDFN,0)) ;pt file only pt is in 154
|
---|
72 | S SPNCNT=SPNCNT+1 I $E(IOST,1)="C" I SPNCNT#10=0 W "."
|
---|
73 | S SDARRAY(1)=SPNSTRT_";"_SPNEND
|
---|
74 | S SDARRAY(3)="R"
|
---|
75 | S SDARRAY(4)=SPNDFN
|
---|
76 | S SDARRAY("FLDS")="1;2"
|
---|
77 | S SDCOUNT=$$SDAPI^SDAMA301(.SDARRAY)
|
---|
78 | I SDCOUNT>0 D
|
---|
79 | .S SDCLIEN=0 F S SDCLIEN=$O(^TMP($J,"SDAMA301",SPNDFN,SDCLIEN)) Q:'+SDCLIEN D
|
---|
80 | ..S SDDATE=0 F S SDDATE=$O(^TMP($J,"SDAMA301",SPNDFN,SDCLIEN,SDDATE)) Q:'+SDDATE D
|
---|
81 | ...S SDAPPT=$G(^TMP($J,"SDAMA301",SPNDFN,SDCLIEN,SDDATE))
|
---|
82 | ...S SPNAPPT=$P($G(^TMP($J,"SDAMA301",SPNDFN,SDCLIEN,SDDATE)),U,1)
|
---|
83 | ...S SPNCL=$P(SDAPPT,U,2) S SPNCL=$P(SPNCL,";",2)
|
---|
84 | ...Q
|
---|
85 | ..Q
|
---|
86 | .I SPNSEL'=2 S SPNP2=$E($$GET1^DIQ(154,SPNDFN_",",.03),1,13),SPNP3=$E($$GET1^DIQ(154,SPNDFN_",",2.1),1,3),SPNP4=$E($$GET1^DIQ(154,SPNDFN_",",1.1),1,3)
|
---|
87 | .I SPNSEL=2 S SPNP2="",SPNP3="",SPNP4=""
|
---|
88 | .S ^UTILITY($J,$P(SPNAPPT,".",1),SPNAPPT,SPNCL,$P(^DPT(SPNDFN,0),U,1),$P(^DPT(SPNDFN,0),U,9))=SPNAPPT_"^"_SPNP2_"^"_SPNP3_"^"_SPNP4
|
---|
89 | .S ^UTILITY($J,$P(SPNAPPT,".",1))=""
|
---|
90 | I SDCOUNT<0 D
|
---|
91 | .I $D(^TMP($J,"SDAMA301",101)) W !!,"Database unavailable. Try later."
|
---|
92 | .I $D(^TMP($J,"SDAMA301",116)) W !!,"Pt doesn't exist in Vista system."
|
---|
93 | .Q
|
---|
94 | I SDCOUNT'=0 K ^TMP($J,"SDAMA301")
|
---|
95 | Q
|
---|
96 | PRINT ;
|
---|
97 | S SPNPA=1
|
---|
98 | S Y=SPNSTRT X ^DD("DD") S SPNSTRT=Y S Y=SPNEND X ^DD("DD") S SPNEND=Y
|
---|
99 | K Y
|
---|
100 | D HDR
|
---|
101 | I '$D(^UTILITY($J)) D
|
---|
102 | .W !,"-----------------------------------------------------------------------------"
|
---|
103 | .W !!?10,"**** No Data for this report. ****" D Q
|
---|
104 | .I $E(IOST,1)="C" N DIR S DIR(0)="E" D ^DIR K Y
|
---|
105 | .D CLOSE^SPNPRTMT
|
---|
106 | .Q
|
---|
107 | S SPNDT=0 F S SPNDT=$O(^UTILITY($J,SPNDT)) Q:(SPNDT="")!('+SPNDT) D P1 W !
|
---|
108 | Q
|
---|
109 | ;----------------------------------------------------------------------
|
---|
110 | P1 ;Get times of the appts for the given day
|
---|
111 | S Y=SPNDT X ^DD("DD") W !,Y S Y="" W !,"-----------------------------------------------------------------------------"
|
---|
112 | S SPNTIM=0 F S SPNTIM=$O(^UTILITY($J,SPNDT,SPNTIM)) Q:(SPNTIM="")!('+SPNTIM) D P2
|
---|
113 | Q
|
---|
114 | P2 ;Get clinic
|
---|
115 | S SPNCL="" F S SPNCL=$O(^UTILITY($J,SPNDT,SPNTIM,SPNCL)) Q:SPNCL="" D P3
|
---|
116 | Q
|
---|
117 | ;
|
---|
118 | P3 ;
|
---|
119 | S SPNPT="" F S SPNPT=$O(^UTILITY($J,SPNDT,SPNTIM,SPNCL,SPNPT)) Q:SPNPT="" S SPNSSN=0 F S SPNSSN=$O(^UTILITY($J,SPNDT,SPNTIM,SPNCL,SPNPT,SPNSSN)) Q:(SPNSSN="")!('+SPNSSN) D PRT2
|
---|
120 | Q
|
---|
121 | PRT2 ;
|
---|
122 | S Y=$P(^UTILITY($J,SPNDT,SPNTIM,SPNCL,SPNPT,SPNSSN),U,1) X ^DD("DD")
|
---|
123 | W !,$P(Y,"@",2)
|
---|
124 | W ?7,$E(SPNCL,1,20)
|
---|
125 | W ?28,$E(SPNPT,1,17),?46,$E(SPNSSN,6,9)
|
---|
126 | W ?53,$P(^UTILITY($J,SPNDT,SPNTIM,SPNCL,SPNPT,SPNSSN),U,2)
|
---|
127 | W ?67,$P(^UTILITY($J,SPNDT,SPNTIM,SPNCL,SPNPT,SPNSSN),U,3)
|
---|
128 | W ?73,$P(^UTILITY($J,SPNDT,SPNTIM,SPNCL,SPNPT,SPNSSN),U,4)
|
---|
129 | I $Y>(IOSL-5) D HDR I SPNLEXIT S (SPNDT,SPNTIM,SPNCL,SPNCL,SPNSSN)="END" Q
|
---|
130 | Q
|
---|
131 | HDR ;
|
---|
132 | I $E(IOST,1)="P" I SPNPA'=1 W #
|
---|
133 | I $E(IOST,1)="C" D Q:SPNLEXIT
|
---|
134 | .I SPNPA=1 W @IOF Q
|
---|
135 | .I SPNPA'=1 D Q:SPNLEXIT
|
---|
136 | ..N DIR S DIR(0)="E" D ^DIR I 'Y S SPNLEXIT=1
|
---|
137 | ..K Y
|
---|
138 | ..W @IOF
|
---|
139 | ..Q
|
---|
140 | .Q
|
---|
141 | Q:SPNLEXIT
|
---|
142 | S SPNTAB=$S(SPNSEL=1:18,SPNSEL=2:12,1:2)
|
---|
143 | W !?SPNTAB,$S(SPNSEL=1:"Patients in the Registry only",SPNSEL=2:"Patients marked as SCI but not in the Registry",1:"Combined report -- Pts in Registry AND Pts marked as SCI but not in Registry")
|
---|
144 | W !?18,"Listing appointments from ",?72,"Page: ",SPNPA
|
---|
145 | W !?15,SPNSTRT," to ",SPNEND,!
|
---|
146 | W !,"Appointment date"
|
---|
147 | W !,"Time",?7,"Clinic",?28,"Patient",?46,"SSN",?53,"Reg",?67,"SCI",?73,"SCI"
|
---|
148 | W !,?53,"Status",?67,"LVL",?71,"NETWRK"
|
---|
149 | I SPNPA'=1 W !,"-----------------------------------------------------------------------------"
|
---|
150 | S SPNPA=SPNPA+1
|
---|