1 | GMRCPSL2 ;SLC/MA - Special Consult Reports;9/21/01 05:25 ;1/17/02 18:19
|
---|
2 | ;;3.0;CONSULT/REQUEST TRACKING;**23,22**;DEC 27, 1997
|
---|
3 | ; This routine is used by GMRCPSL1 to build ^TMP("GMRCRPT",$J)
|
---|
4 | ; which will be passed to GMRCPSL3.
|
---|
5 | PRINT(GMRCSRCH,GMRCARRY,GMRCDT1,GMRCDT2,GMRCSTAT,GMRCRPT,GMRCBRK) ; Untasked Print
|
---|
6 | PRTTSK ; Print report
|
---|
7 | ; GMRCARRY = Array contains search values.
|
---|
8 | ; GMRCSRCH = Indicates which field to search on
|
---|
9 | ; GMRCDT1 = Start date
|
---|
10 | ; GMRCDT2 = Stop date
|
---|
11 | ; GMRCSTAT = CPRS status to include in report
|
---|
12 | ; SUBTOT = Counter for different groups
|
---|
13 | ; GMRCRPT = 80 - 132 character report & data only output
|
---|
14 | ; GMRCBRK = Print page break between sub-totals <Y-N>
|
---|
15 | ; TOTCNTR = Count for total records
|
---|
16 | I GMRCSRCH=1 D BLDPROV(.GMRCARRY) ;BLD PROVIDER ^TMP(GLOBAL)
|
---|
17 | I GMRCSRCH=2 D BLDLOC(.GMRCARRY) ;BLD LOCATION ^TMP(GLOBAL)
|
---|
18 | I GMRCSRCH=3 D BLDPROC(.GMRCARRY) ;BLD PROCEDURE ^TMP(GLOBAL)
|
---|
19 | N TOTCNTR,SUBTOT S (SUBTOT,TOTCNTR)=0
|
---|
20 | I GMRCRPT=1 D REPORT80^GMRCPSL3(.SUBTOT,.TOTCNTR,GMRCSRCH,GMRCBRK)
|
---|
21 | I GMRCRPT=2 D REPORT32^GMRCPSL3(.SUBTOT,.TOTCNTR,GMRCSRCH,GMRCBRK)
|
---|
22 | I GMRCRPT=3 D DATAONLY^GMRCPSL4 Q
|
---|
23 | W !!,"SUB TOTAL= ",SUBTOT,!
|
---|
24 | W !,"TOTAL RECORDS= ",TOTCNTR
|
---|
25 | D ^%ZISC
|
---|
26 | K ^TMP("GMRCRPT",$J)
|
---|
27 | I ($E(IOST)="C") D
|
---|
28 | .N DIR
|
---|
29 | .S DIR(0)="E"
|
---|
30 | .W !
|
---|
31 | .D ^DIR K DIR
|
---|
32 | Q
|
---|
33 | ;
|
---|
34 | BLDLOC(GMRCARRY) ; Build ^TMP were search was on location.
|
---|
35 | K ^TMP("GMRCRPT",$J)
|
---|
36 | N GMRCCNTR,LOCATION,GMRCSRT1,GMRCSRT2,GMRCLOC1,GMRCLOC2,IEN
|
---|
37 | N GMRCREM,LOCPN
|
---|
38 | S GMRCCNTR=0
|
---|
39 | ;
|
---|
40 | ; get all Locations by date range
|
---|
41 | I GMRCARRY(1)="ALL" D
|
---|
42 | . S GMRCLOC1=GMRCDT1,GMRCLOC2=GMRCDT2
|
---|
43 | . F S GMRCLOC1=$O(^GMR(123,"E",GMRCLOC1)) Q:GMRCLOC1>GMRCLOC2 Q:GMRCLOC1="" D
|
---|
44 | . . S IEN=0
|
---|
45 | . . F S IEN=$O(^GMR(123,"E",GMRCLOC1,IEN)) Q:IEN'>0 D
|
---|
46 | . . . ;
|
---|
47 | . . . ; Check for Patient Location
|
---|
48 | . . . I "LB"[GMRCARRY,$$CKSTAT(IEN,GMRCSTAT),+$P(^GMR(123,IEN,0),"^",4) D Q
|
---|
49 | . . . . S LOCATION=$P(^GMR(123,IEN,0),"^",4) ; PATIENT LOCATION
|
---|
50 | . . . . S GMRCSRT1=$$GET1^DIQ(44,LOCATION,.01) ; PATIENT LOCATION
|
---|
51 | . . . . S GMRCSRT2=$P(^GMR(123,IEN,0),"^",7) ; DATE OF REQUEST
|
---|
52 | . . . . S ^TMP("GMRCRPT",$J,GMRCSRT1,GMRCSRT2,IEN)=IEN_"|"_^GMR(123,IEN,0)
|
---|
53 | . . . ;
|
---|
54 | . . . ; If no patient location, check for Ordering Facility
|
---|
55 | . . . I $$CKSTAT(IEN,GMRCSTAT),'+$P(^GMR(123,IEN,0),"^",4),+$P(^GMR(123,IEN,0),"^",21),("L"[GMRCARRY&'+$P(^GMR(123,IEN,0),"^",23)!("RB"[GMRCARRY&+$P(^GMR(123,IEN,0),"^",23))) D Q
|
---|
56 | . . . . S LOCATION=$P(^GMR(123,IEN,0),"^",21) ;ORDERING FACILITY
|
---|
57 | . . . . S GMRCSRT1=$$GET1^DIQ(4,LOCATION,.01) ;ORDERING FACILITY
|
---|
58 | . . . . S GMRCSRT2=$P(^GMR(123,IEN,0),"^",7) ;DATE OF REQUEST
|
---|
59 | . . . . S GMRCREM=$P($G(^GMR(123,IEN,12)),"^",6)
|
---|
60 | . . . . S ^TMP("GMRCRPT",$J,GMRCSRT1,GMRCSRT2,IEN)=IEN_"|"_^GMR(123,IEN,0)_"^"_GMRCREM
|
---|
61 | . . . ;
|
---|
62 | . . . ; If no patient location & NO Ordering Facility, then
|
---|
63 | . . . ; check for Routing Facility
|
---|
64 | . . . I "RB"[GMRCARRY,$$CKSTAT(IEN,GMRCSTAT),'+$P(^GMR(123,IEN,0),"^",4),'+$P(^GMR(123,IEN,0),"^",21),+$P(^GMR(123,IEN,0),"^",23) D Q
|
---|
65 | . . . . S LOCATION=$P(^GMR(123,IEN,0),"^",23) ;ROUTING FACILITY
|
---|
66 | . . . . S GMRCSRT1=$$GET1^DIQ(4,LOCATION,.01) ;ROUTING FACILITY
|
---|
67 | . . . . S GMRCSRT2=$P(^GMR(123,IEN,0),"^",7) ;DATE OF REQUEST
|
---|
68 | . . . . S GMRCREM=$P($G(^GMR(123,IEN,12)),"^",6)
|
---|
69 | . . . . S ^TMP("GMRCRPT",$J,GMRCSRT1,GMRCSRT2,IEN)=IEN_"|"_^GMR(123,IEN,0)_"^"_GMRCREM
|
---|
70 | ; Get location list from GMRCARRY and then go to global using location
|
---|
71 | I GMRCARRY(1)="ALL" Q
|
---|
72 | F S GMRCCNTR=$O(GMRCARRY(GMRCCNTR)) Q:'GMRCCNTR D
|
---|
73 | . S LOCATION=$P(GMRCARRY(GMRCCNTR),"^",1)
|
---|
74 | . I "LB"[GMRCARRY,$P(GMRCARRY(GMRCCNTR),"^",3)=44 D
|
---|
75 | . . N IEN S IEN=0
|
---|
76 | . . F S IEN=$O(^GMR(123,"AL",LOCATION,IEN)) Q:IEN'>0 D
|
---|
77 | . . . I $P(^GMR(123,IEN,0),"^",7)>GMRCDT1,$P(^GMR(123,IEN,0),"^",7)<GMRCDT2,$$CKSTAT(IEN,GMRCSTAT) D
|
---|
78 | . . . . S GMRCSRT1=$P(GMRCARRY(GMRCCNTR),"^",2) ; Patient Location
|
---|
79 | . . . . S GMRCSRT2=$P(^GMR(123,IEN,0),"^",7) ; DATE OF REQUEST
|
---|
80 | . . . . S ^TMP("GMRCRPT",$J,GMRCSRT1,GMRCSRT2,IEN)=IEN_"|"_^GMR(123,IEN,0)
|
---|
81 | . I "RB"[GMRCARRY,$P(GMRCARRY(GMRCCNTR),"^",3)=4 D
|
---|
82 | . . S GMRCLOC1=GMRCDT1,GMRCLOC2=GMRCDT2
|
---|
83 | . . F S GMRCLOC1=$O(^GMR(123,"E",GMRCLOC1)) Q:GMRCLOC1>GMRCLOC2 Q:GMRCLOC1="" D
|
---|
84 | . . . N IEN S IEN=0
|
---|
85 | . . . F S IEN=$O(^GMR(123,"E",GMRCLOC1,IEN)) Q:IEN'>0 D
|
---|
86 | . . . . I $$CKSTAT(IEN,GMRCSTAT),$P($G(^GMR(123,IEN,12)),"^",5)="F",+$P($G(^GMR(123,IEN,0)),"^",21)=LOCATION D Q
|
---|
87 | . . . . . S GMRCSRT1=$P(GMRCARRY(GMRCCNTR),"^",2)
|
---|
88 | . . . . . S GMRCSRT2=$P(^GMR(123,IEN,0),"^",7)
|
---|
89 | . . . . . S ^TMP("GMRCRPT",$J,GMRCSRT1,GMRCSRT2,IEN)=IEN_"|"_^GMR(123,IEN,0)
|
---|
90 | . . . . I $$CKSTAT(IEN,GMRCSTAT),$P($G(^GMR(123,IEN,12)),"^",5)="F",'+$P(^GMR(123,IEN,0),"^",21),+$P($G(^GMR(123,IEN,0)),"^",23)=LOCATION D Q
|
---|
91 | . . . . . S GMRCSRT1=$P(GMRCARRY(GMRCCNTR),"^",2)
|
---|
92 | . . . . . S GMRCSRT2=$P(^GMR(123,IEN,0),"^",7)
|
---|
93 | . . . . . S ^TMP("GMRCRPT",$J,GMRCSRT1,GMRCSRT2,IEN)=IEN_"|"_^GMR(123,IEN,0)
|
---|
94 | Q
|
---|
95 | BLDPROC(GMRCARRY) ; Build ^TMP were search was on procedure.
|
---|
96 | K ^TMP("GMRCRPT",$J)
|
---|
97 | N GMRCCNTR,PROCEDUR,GMRCSRT1,GMRCSRT2,GMRCPRC1,GMRCPRC2,IEN,GMRCREM
|
---|
98 | S GMRCCNTR=0
|
---|
99 | ; get all Procedures by date range
|
---|
100 | I GMRCARRY(1)="ALL" D
|
---|
101 | . S GMRCPRC1=GMRCDT1,GMRCPRC2=GMRCDT2
|
---|
102 | . F S GMRCPRC1=$O(^GMR(123,"E",GMRCPRC1)) Q:GMRCPRC1>GMRCPRC2 Q:GMRCPRC1="" D
|
---|
103 | . . S IEN=0
|
---|
104 | . . F S IEN=$O(^GMR(123,"E",GMRCPRC1,IEN)) Q:IEN'>0 D
|
---|
105 | . . . I $$CKSTAT(IEN,GMRCSTAT) D ; Ck Status
|
---|
106 | . . . . I $P(^GMR(123,IEN,0),"^",8)>"" D ; Ck for Proc
|
---|
107 | . . . . . S PROCEDUR=$P($P(^GMR(123,IEN,0),"^",8),";",1)
|
---|
108 | . . . . . S GMRCSRT1=$$GET1^DIQ(123.3,PROCEDUR,.01) ;Procedure
|
---|
109 | . . . . . S GMRCSRT2=$P(^GMR(123,IEN,0),"^",7) ;Req Date
|
---|
110 | . . . . . S GMRCREM=$P($G(^GMR(123,IEN,12)),"^",6)
|
---|
111 | . . . . . S ^TMP("GMRCRPT",$J,GMRCSRT1,GMRCSRT2,IEN)=IEN_"|"_^GMR(123,IEN,0)_"^"_GMRCREM
|
---|
112 | ; Get each procedure from GMRCARRY and then go to global using procedure
|
---|
113 | I GMRCARRY(1)="ALL" Q
|
---|
114 | F S GMRCCNTR=$O(GMRCARRY(GMRCCNTR)) Q:'GMRCCNTR D
|
---|
115 | . S PROCEDUR=$P(GMRCARRY(GMRCCNTR),"^",1)
|
---|
116 | . N IEN S IEN=0
|
---|
117 | . F S IEN=$O(^GMR(123,"AP",PROCEDUR_";GMR(123.3,",IEN)) Q:IEN'>0 D
|
---|
118 | . . I $P(^GMR(123,IEN,0),"^",7)>GMRCDT1,$P(^GMR(123,IEN,0),"^",7)<GMRCDT2,$$CKSTAT(IEN,GMRCSTAT) D
|
---|
119 | . . . S GMRCSRT1=$P(GMRCARRY(GMRCCNTR),"^",2) ; PROCEDURE TYPE
|
---|
120 | . . . S GMRCSRT2=$P(^GMR(123,IEN,0),"^",7) ; DATE OF REQUEST
|
---|
121 | . . . S GMRCREM=$P($G(^GMR(123,IEN,12)),"^",6)
|
---|
122 | . . . S ^TMP("GMRCRPT",$J,GMRCSRT1,GMRCSRT2,IEN)=IEN_"|"_^GMR(123,IEN,0)_"^"_GMRCREM
|
---|
123 | Q
|
---|
124 | BLDPROV(GMRCARRY) ; Build ^TMP were search was on provider.
|
---|
125 | K ^TMP("GMRCRPT",$J)
|
---|
126 | N GMRCCNTR,PROVIDER,GMRCSRT1,GMRCSRT2,GMRCPRV1,GMRCPRV2,IEN
|
---|
127 | N GMRCPROV
|
---|
128 | S GMRCCNTR=0
|
---|
129 | ; get all providers by date range
|
---|
130 | I GMRCARRY(1)="ALL" D
|
---|
131 | . S GMRCPRV1=GMRCDT1,GMRCPRV2=GMRCDT2
|
---|
132 | . F S GMRCPRV1=$O(^GMR(123,"E",GMRCPRV1)) Q:GMRCPRV1>GMRCPRV2 Q:GMRCPRV1="" D
|
---|
133 | . . S IEN=0
|
---|
134 | . . F S IEN=$O(^GMR(123,"E",GMRCPRV1,IEN)) Q:IEN'>0 D
|
---|
135 | . . . ; Provider not null
|
---|
136 | . . . I "LB"[GMRCARRY,$$CKSTAT(IEN,GMRCSTAT) D
|
---|
137 | . . . . I +$P(^GMR(123,IEN,0),"^",14) D
|
---|
138 | . . . . . S GMRCPROV=$P(^GMR(123,IEN,0),"^",14) ; SENDING PROVIDER
|
---|
139 | . . . . . S GMRCSRT1=$$GET1^DIQ(200,GMRCPROV,.01) ; SENDING PROVIDER
|
---|
140 | . . . . . S GMRCSRT2=$P(^GMR(123,IEN,0),"^",7) ; DATE OF REQUEST
|
---|
141 | . . . . . S ^TMP("GMRCRPT",$J,GMRCSRT1,GMRCSRT2,IEN)=IEN_"|"_^GMR(123,IEN,0)
|
---|
142 | . . . ; Provider null and REMOTE ORDERING PROVIDER not
|
---|
143 | . . . I "RB"[GMRCARRY,$$CKSTAT(IEN,GMRCSTAT) D
|
---|
144 | . . . . I '+$P(^GMR(123,IEN,0),"^",14),$P($G(^GMR(123,IEN,12)),"^",6)'="" D
|
---|
145 | . . . . . S GMRCPROV=$P($G(^GMR(123,IEN,12)),"^",6)
|
---|
146 | . . . . . S GMRCSRT1=GMRCPROV
|
---|
147 | . . . . . S GMRCSRT2=$P(^GMR(123,IEN,0),"^",7) ; DATE OF REQUEST
|
---|
148 | . . . . . S ^TMP("GMRCRPT",$J,GMRCSRT1,GMRCSRT2,IEN)=IEN_"|"_^GMR(123,IEN,0)_"^"_GMRCPROV
|
---|
149 | ; Get provider list from GMRCARRY and then go to global using provider
|
---|
150 | I GMRCARRY(1)="ALL" Q
|
---|
151 | F S GMRCCNTR=$O(GMRCARRY(GMRCCNTR)) Q:'GMRCCNTR D
|
---|
152 | . S PROVIDER=$P(GMRCARRY(GMRCCNTR),"^",1)
|
---|
153 | . I "LB"[GMRCARRY,$P(GMRCARRY(GMRCCNTR),"^",3)=200 D
|
---|
154 | . . S IEN=0
|
---|
155 | . . F S IEN=$O(^GMR(123,"G",PROVIDER,IEN)) Q:IEN'>0 D
|
---|
156 | . . . I $P(^GMR(123,IEN,0),"^",7)>GMRCDT1,$P(^GMR(123,IEN,0),"^",7)<GMRCDT2,$$CKSTAT(IEN,GMRCSTAT) D
|
---|
157 | . . . . S GMRCSRT1=$P(GMRCARRY(GMRCCNTR),"^",2) ; SENDING PROVIDER
|
---|
158 | . . . . S GMRCSRT2=$P(^GMR(123,IEN,0),"^",7) ; DATE OF REQUEST
|
---|
159 | . . . . S ^TMP("GMRCRPT",$J,GMRCSRT1,GMRCSRT2,IEN)=IEN_"|"_^GMR(123,IEN,0)
|
---|
160 | . I "RB"[GMRCARRY,'$P(GMRCARRY(GMRCCNTR),"^",2) D
|
---|
161 | . . S IEN=0
|
---|
162 | . . F S IEN=$O(^GMR(123,"AIP",PROVIDER,IEN)) Q:IEN'>0 D
|
---|
163 | . . . I $P(^GMR(123,IEN,0),"^",7)>GMRCDT1,$P(^GMR(123,IEN,0),"^",7)<GMRCDT2,$$CKSTAT(IEN,GMRCSTAT) D
|
---|
164 | . . . . S GMRCSRT1=$P(GMRCARRY(GMRCCNTR),"^",1)
|
---|
165 | . . . . S GMRCSRT2=$P(^GMR(123,IEN,0),"^",7)
|
---|
166 | . . . . S ^TMP("GMRCRPT",$J,GMRCSRT1,GMRCSRT2,IEN)=IEN_"|"_^GMR(123,IEN,0)_"^"_PROVIDER
|
---|
167 | Q
|
---|
168 | CKSTAT(IEN,GMRCSTAT) ; Does entry have selected status
|
---|
169 | ; Input:
|
---|
170 | ; IEN = File #123 IEN
|
---|
171 | ; GMRCSTAT = Selected status(es)
|
---|
172 | ; Output:
|
---|
173 | ; GMRCKS = Result (1:yes; 0:no)
|
---|
174 | N GMRCKS,GMRCS,LOOP,STATUS
|
---|
175 | S GMRCKS=0
|
---|
176 | S GMRCS=+$P(^GMR(123,IEN,0),"^",12)
|
---|
177 | F LOOP=1:1:$L(GMRCSTAT,",") S STATUS=$P(GMRCSTAT,",",LOOP) Q:GMRCKS D
|
---|
178 | . I STATUS=GMRCS S GMRCKS=1
|
---|
179 | Q GMRCKS
|
---|