1 | SCRPV1B ; bp/djb - PCMM Inconsistency Rpt - Print ; 9/13/99 3:23pm
|
---|
2 | ;;5.3;Scheduling;**177,231**;AUG 13, 1993
|
---|
3 | ;
|
---|
4 | EN ;
|
---|
5 | NEW PAGE,QUIT
|
---|
6 | S QUIT=0
|
---|
7 | D HD
|
---|
8 | D POSITION Q:QUIT
|
---|
9 | D PATIENT
|
---|
10 | Q
|
---|
11 | ;
|
---|
12 | POSITION ;Print position inconsistencies.
|
---|
13 | NEW NUM,POS,TM,TXT
|
---|
14 | ;
|
---|
15 | W !!,"POSITION INCONSISTENCIES"
|
---|
16 | W !,"------------------------",!
|
---|
17 | I '$D(^TMP("PCMM POSITION",$J)) W !?3,"No inconsistencies found." Q
|
---|
18 | I SCMODE="B" D BRIEFPOS^SCRPV1B1 Q ;Report type = Brief
|
---|
19 | W !?3,"INCONSISTENCY"
|
---|
20 | W !?6,"TEAM",?38,"POSITION",!
|
---|
21 | ;
|
---|
22 | ;Process the POSITION array
|
---|
23 | S NUM=0
|
---|
24 | F S NUM=$O(^TMP("PCMM POSITION",$J,NUM)) Q:'NUM!QUIT D ;
|
---|
25 | . S TXT=$T(TXT+NUM)
|
---|
26 | . S TXT=$P(TXT,";",4)
|
---|
27 | . I $Y>(IOSL-6) D PAUSE Q:QUIT
|
---|
28 | . W !?3,TXT
|
---|
29 | . S TM=""
|
---|
30 | . F S TM=$O(^TMP("PCMM POSITION",$J,NUM,TM)) Q:TM=""!QUIT D
|
---|
31 | .. S POS=""
|
---|
32 | .. F S POS=$O(^TMP("PCMM POSITION",$J,NUM,TM,POS)) Q:POS=""!QUIT D
|
---|
33 | ... I $Y>(IOSL-6) D PAUSE Q:QUIT
|
---|
34 | ... W !,?6,TM,?38,POS
|
---|
35 | Q
|
---|
36 | ;
|
---|
37 | PATIENT ;Print patient inconsistencies
|
---|
38 | ;
|
---|
39 | I $Y>(IOSL-7) D PAUSE Q:QUIT
|
---|
40 | W !!,"PATIENT INCONSISTENCIES"
|
---|
41 | W !,"-----------------------",!
|
---|
42 | I '$D(^TMP("PCMM PATIENT",$J)) D Q
|
---|
43 | . W !?3,"No inconsistencies found.",!
|
---|
44 | I $Y>(IOSL-6) D PAUSE Q:QUIT
|
---|
45 | I SCMODE="B" D BRIEFPT^SCRPV1B1 Q ;Report type = Brief
|
---|
46 | I SCMODE="DP" D PATIENT1 Q
|
---|
47 | I SCMODE="DT" D PATIENT2 Q
|
---|
48 | Q
|
---|
49 | ;
|
---|
50 | PATIENT1 ;Patient printout sorted by patient name.
|
---|
51 | NEW DFN,DFNNAM,NUM,POS,SSN,TM,TXT,VAR
|
---|
52 | ;
|
---|
53 | W !?3,"PATIENT",?41,"SSN"
|
---|
54 | W !?6,"INCONSISTENCY"
|
---|
55 | W !?9,"TEAM",?41,"POSITION",!
|
---|
56 | ;
|
---|
57 | ;Process the PATIENT array
|
---|
58 | S DFNNAM=""
|
---|
59 | F S DFNNAM=$O(^TMP("PCMM PATIENT",$J,DFNNAM)) Q:DFNNAM=""!QUIT D ;
|
---|
60 | . S DFN=0
|
---|
61 | . F S DFN=$O(^TMP("PCMM PATIENT",$J,DFNNAM,DFN)) Q:'DFN!QUIT D ;
|
---|
62 | .. I $Y>(IOSL-6) D PAUSE Q:QUIT
|
---|
63 | .. S SSN=$P($G(^DPT(DFN,0)),U,9)
|
---|
64 | .. W !?3,DFNNAM,?41,SSN
|
---|
65 | .. S NUM=0
|
---|
66 | .. F S NUM=$O(^TMP("PCMM PATIENT",$J,DFNNAM,DFN,NUM)) Q:'NUM!QUIT D
|
---|
67 | ... S VAR=0
|
---|
68 | ... ;If number is 8.1, 8.2 or 8.3, substitute in 3 choices below.
|
---|
69 | ... I NUM?1"8.".E S VAR=$P(NUM,".",2)
|
---|
70 | ... S TXT=$T(TXT+(NUM\1))
|
---|
71 | ... S TXT=$P(TXT,";",4)
|
---|
72 | ... I VAR D ;
|
---|
73 | .... S VAR=$S(VAR=1:"Team Assignment",VAR=2:"Team",1:"Position")
|
---|
74 | .... S TXT=$P(TXT,"[]",1)_VAR_$P(TXT,"[]",2)
|
---|
75 | ... I $Y>(IOSL-6) D PAUSE Q:QUIT
|
---|
76 | ... ;W !?6,(NUM\1),". ",TXT
|
---|
77 | ... W !?6,TXT
|
---|
78 | ... S TM=""
|
---|
79 | ... F S TM=$O(^TMP("PCMM PATIENT",$J,DFNNAM,DFN,NUM,TM)) Q:TM=""!QUIT D
|
---|
80 | .... S POS=""
|
---|
81 | .... F S POS=$O(^TMP("PCMM PATIENT",$J,DFNNAM,DFN,NUM,TM,POS)) Q:POS=""!QUIT D
|
---|
82 | ..... I $Y>(IOSL-6) D PAUSE Q:QUIT
|
---|
83 | ..... W !?9,TM,?41,POS
|
---|
84 | ..... ;
|
---|
85 | ..... ;Print 404.43 IEN if SCIEN is set to 1 before calling ^SCRPV1.
|
---|
86 | ..... I $G(SCIEN) D ;
|
---|
87 | ...... I $G(^TMP("PCMM PATIENT",$J,DFNNAM,DFN,NUM,TM,POS)) W ?72,^(POS)
|
---|
88 | Q
|
---|
89 | ;
|
---|
90 | PATIENT2 ;Patient printout sorted by inconsistency number and then team name.
|
---|
91 | NEW DFN,DFNNAM,NUM,POS,SSN,TM,TXT,VAR
|
---|
92 | ;
|
---|
93 | W !,"INCONSISTENCY"
|
---|
94 | W !?3,"TEAM"
|
---|
95 | W !?6,"PATIENT",?38,"SSN",?50,"POSITION",!
|
---|
96 | ;
|
---|
97 | KILL ^TMP("PCMM PATIENT1",$J)
|
---|
98 | ;
|
---|
99 | ;Reorder PATIENT array
|
---|
100 | S DFNNAM=""
|
---|
101 | F S DFNNAM=$O(^TMP("PCMM PATIENT",$J,DFNNAM)) Q:DFNNAM="" D ;
|
---|
102 | . S DFN=0
|
---|
103 | . F S DFN=$O(^TMP("PCMM PATIENT",$J,DFNNAM,DFN)) Q:'DFN D ;
|
---|
104 | .. S NUM=0
|
---|
105 | .. F S NUM=$O(^TMP("PCMM PATIENT",$J,DFNNAM,DFN,NUM)) Q:'NUM D ;
|
---|
106 | ... S TM=""
|
---|
107 | ... F S TM=$O(^TMP("PCMM PATIENT",$J,DFNNAM,DFN,NUM,TM)) Q:TM="" D
|
---|
108 | .... S POS=""
|
---|
109 | .... F S POS=$O(^TMP("PCMM PATIENT",$J,DFNNAM,DFN,NUM,TM,POS)) Q:POS="" D
|
---|
110 | ..... S ^TMP("PCMM PATIENT1",$J,NUM,TM,DFNNAM,DFN,POS)=""
|
---|
111 | ;
|
---|
112 | ;Process new array
|
---|
113 | S NUM=0
|
---|
114 | F S NUM=$O(^TMP("PCMM PATIENT1",$J,NUM)) Q:'NUM!QUIT D ;
|
---|
115 | . S VAR=0
|
---|
116 | . ;If number is 8.1, 8.2 or 8.3, substitute in 3 choices below.
|
---|
117 | . I NUM?1"8.".E S VAR=$P(NUM,".",2)
|
---|
118 | . S TXT=$T(TXT+(NUM\1))
|
---|
119 | . S TXT=$P(TXT,";",4)
|
---|
120 | . I VAR D ;
|
---|
121 | .. S VAR=$S(VAR=1:"Team Assignment",VAR=2:"Team",1:"Position")
|
---|
122 | .. S TXT=$P(TXT,"[]",1)_VAR_$P(TXT,"[]",2)
|
---|
123 | . ;
|
---|
124 | . I $Y>(IOSL-6) D PAUSE Q:QUIT
|
---|
125 | . W !,TXT
|
---|
126 | . ;
|
---|
127 | . S TM=""
|
---|
128 | . F S TM=$O(^TMP("PCMM PATIENT1",$J,NUM,TM)) Q:TM=""!QUIT D ;
|
---|
129 | .. I $Y>(IOSL-6) D PAUSE Q:QUIT
|
---|
130 | .. W !?3,TM
|
---|
131 | .. S DFNNAM=""
|
---|
132 | .. F S DFNNAM=$O(^TMP("PCMM PATIENT1",$J,NUM,TM,DFNNAM)) Q:DFNNAM=""!QUIT D ;
|
---|
133 | ... S DFN=0
|
---|
134 | ... F S DFN=$O(^TMP("PCMM PATIENT1",$J,NUM,TM,DFNNAM,DFN)) Q:'DFN!QUIT D
|
---|
135 | .... S POS=0
|
---|
136 | .... F S POS=$O(^TMP("PCMM PATIENT1",$J,NUM,TM,DFNNAM,DFN,POS)) Q:'POS!QUIT D ;
|
---|
137 | ..... S SSN=$P($G(^DPT(DFN,0)),U,9)
|
---|
138 | ..... I $Y>(IOSL-6) D PAUSE Q:QUIT
|
---|
139 | ..... W !?6,DFNNAM,?38,SSN,?50,POS
|
---|
140 | ;
|
---|
141 | KILL ^TMP("PCMM PATIENT1",$J)
|
---|
142 | Q
|
---|
143 | ;
|
---|
144 | PAUSE ;Pause the display
|
---|
145 | NEW ANS,COL,PGTXT
|
---|
146 | S PAGE=PAGE+1
|
---|
147 | I $G(ION)="HFS" Q
|
---|
148 | S PGTXT="Page: "_PAGE
|
---|
149 | S COL=(IOM-$L(PGTXT)-2)
|
---|
150 | I $E(IOST,1,2)="P-" W @IOF,!?COL,PGTXT Q
|
---|
151 | W !,"<RET> to continue, ^ to quit: "
|
---|
152 | R ANS:DTIME S:'$T ANS="^" I ANS["^" S QUIT=1 Q
|
---|
153 | W @IOF,!?COL,PGTXT
|
---|
154 | Q
|
---|
155 | ;
|
---|
156 | HD ;Heading
|
---|
157 | NEW HD,LINE,NOW,TM,TMN
|
---|
158 | ;
|
---|
159 | S PAGE=1
|
---|
160 | S HD="PCMM INCONSISTENCY REPORT"
|
---|
161 | ;Adjust heading if going to the P-MESSAGE device
|
---|
162 | I IOST["P-",IOST["MESSAGE" D Q
|
---|
163 | . W !?(78-$L(HD)\2),HD
|
---|
164 | ;
|
---|
165 | I $E(IOST,1,2)="P-" W !!
|
---|
166 | E W @IOF
|
---|
167 | S $P(LINE,"=",IOM)=""
|
---|
168 | W !?(IOM-$L(HD)\2),HD
|
---|
169 | S NOW=$$NOW^XLFDT()
|
---|
170 | I $P(NOW,".",2) S NOW=$P(NOW,".",1)_"."_$E($P(NOW,".",2),1,4)
|
---|
171 | S HD=$$FMTE^XLFDT(NOW)
|
---|
172 | W !?(IOM-$L(HD)\2),HD
|
---|
173 | W !,LINE
|
---|
174 | I SCTYPE("TM")="I" D ;
|
---|
175 | . W !,"See PCMM User Guide for detailed instructions."
|
---|
176 | E D ;
|
---|
177 | . W !,"Teams: "
|
---|
178 | . I SCTYPE("TM")="A" W "All teams"
|
---|
179 | . E D ;
|
---|
180 | .. S TM=0
|
---|
181 | .. F S TM=$O(SCTM(TM)) Q:'TM D ;
|
---|
182 | ... S TMN=$P($G(^SCTM(404.51,TM,0)),U,1)
|
---|
183 | ... S:TMN']"" TMN="UNKNOWN"
|
---|
184 | ... I ($L(TMN)+$X+2)>IOM W !?7
|
---|
185 | ... W TMN
|
---|
186 | ... I $O(SCTM(TM)) W ", "
|
---|
187 | W !,LINE
|
---|
188 | Q
|
---|
189 | ;
|
---|
190 | TXT ;Inconsistencies
|
---|
191 | ;;1;Position has no staff assigned
|
---|
192 | ;;2;Patient has no PCP assigned
|
---|
193 | ;;3;Patient has multiple PCPs assigned
|
---|
194 | ;;4;AP & PCP are the same provider
|
---|
195 | ;;5;AP is without a Preceptor
|
---|
196 | ;;6;AP position is not designated for PC
|
---|
197 | ;;7;PCP position is not designated for PC
|
---|
198 | ;;8;Position assignment with inactive []
|
---|
199 | Q
|
---|