1 | ECXDEPT ;ALB/GRR - Department lookup for extracts;June 11, 2002 ; 9/26/06 3:39pm
|
---|
2 | ;;3.0;DSS EXTRACTS;**46,92**;Dec 22, 1997;Build 30
|
---|
3 | ;Only the Division Logic is implemented and used in this release
|
---|
4 | ;
|
---|
5 | ;Input: X=Division
|
---|
6 | ;Output: Y=Department
|
---|
7 | ;
|
---|
8 | DEN(X) ;DENTAL DEPARTMENT LOOKUP
|
---|
9 | ;format key (Feeder system_Feeder location_Feeder key)
|
---|
10 | N ECXFS,ECXFL,ECXFK
|
---|
11 | S ECXFS="DEN"
|
---|
12 | S ECXFL=X ;feeder location is division
|
---|
13 | S ECXFK="" ;always null for dental
|
---|
14 | N ECXKEY S ECXKEY=ECXFS_ECXFL_ECXFK
|
---|
15 | N Y
|
---|
16 | S Y=$$GETDEPT(ECXKEY)
|
---|
17 | I Y="XXXX"!(Y="INAC") D MESBUL(X,ECXFS,ECXFL,ECXFK,Y)
|
---|
18 | Q Y
|
---|
19 | ;
|
---|
20 | IVP(X) ;IVP DEPARTMENT LOOKUP
|
---|
21 | ;format key (Feeder system_Feeder location_Feeder key)
|
---|
22 | N ECXFS,ECXFL,ECXFK
|
---|
23 | S ECXFS="IVP" ;feeder system is pharmacy
|
---|
24 | S ECXFL="IVP"_X ;feeder location is IVP_division
|
---|
25 | S ECXFK="" ;feeder key always null for IVP
|
---|
26 | N ECXKEY S ECXKEY=ECXFS_ECXFL_ECXFK
|
---|
27 | N Y
|
---|
28 | S Y=$$GETDEPT(ECXKEY)
|
---|
29 | I Y="XXXX"!(Y="INAC") D MESBUL(X,ECXFS,ECXFL,ECXFK,Y)
|
---|
30 | Q Y
|
---|
31 | ;
|
---|
32 | RAD(X,X1,X2,X3) ;RAD DEPARTMENT LOOKUP
|
---|
33 | ;Input X=division
|
---|
34 | ; X1=Imaging type
|
---|
35 | ; X2=CPT Code and any modifiers
|
---|
36 | ; X3=Procedure
|
---|
37 | ;Output Y=Department
|
---|
38 | ;format key (Feeder system_Feeder location_Feeder key)
|
---|
39 | N ECXFS,ECXFL,ECXFK
|
---|
40 | S ECXFS="RAD" ;feeder system is radiology
|
---|
41 | S ECXFL=X_"-"_X1 ;feeder location is division_"-"_imaging type
|
---|
42 | I X2=""&(X3=468) S ECXFK=777777 G FORMAT
|
---|
43 | I X2=""&(X3]"") S ECXFK=X3 G FORMAT
|
---|
44 | S ECXFK=$E(X2,1,5)
|
---|
45 | N J F J=8,10,12,14,16 Q:$E(X2,J,J+1)="" I $E(X2,J,J+1)=26!($E(X2,J,J+1)="TC") S ECXFK=ECXFK_"."_$E(X2,J,J+1) Q ;look for modifier 26 or TC
|
---|
46 | FORMAT N ECXKEY S ECXKEY=ECXFS_ECXFL_ECXFK
|
---|
47 | N Y
|
---|
48 | S Y=$$GETDEPT(ECXKEY)
|
---|
49 | I Y="XXXX"!(Y="INAC") D MESBUL(X,ECXFS,ECXFL,ECXFK,Y)
|
---|
50 | Q Y
|
---|
51 | ;
|
---|
52 | UDP(X) ;UDP DEPARTMENT LOOKUP
|
---|
53 | ;format key (Feeder system_Feeder location_Feeder key)
|
---|
54 | N ECXFS,ECXFL,ECXFK
|
---|
55 | S ECXFS="UDP" ;feeder system is pharmacy
|
---|
56 | S ECXFL="UDP"_X ;feeder location is UDP_division
|
---|
57 | S ECXFK="" ;feeder key always null for UDP
|
---|
58 | N ECXKEY S ECXKEY=ECXFS_ECXFL_ECXFK
|
---|
59 | N Y
|
---|
60 | S Y=$$GETDEPT(ECXKEY)
|
---|
61 | I Y="XXXX"!(Y="INAC") D MESBUL(X,ECXFS,ECXFL,ECXFK,Y)
|
---|
62 | Q Y
|
---|
63 | ;
|
---|
64 | MTL(X,X1,X2) ;MTL DEPARTMENT LOOKUP
|
---|
65 | ;X=DIVISION, X1=NAME OF TEST,X2=STATION NUMBER
|
---|
66 | ;format key (Feeder System_Feeder location_Feeder key)
|
---|
67 | N ECXFS,ECXFL,ECXFK
|
---|
68 | S ECXFS="MTL" ;feeder system for MTL
|
---|
69 | S ECXFK="" ;feeder key always null for MTL
|
---|
70 | I X1'="ASI"&(X1'="GAF") S ECXFL=X_"PSOTSTLAB" ;p-@@@ line added
|
---|
71 | E S ECXFL=X_X1
|
---|
72 | S ECXKEY=ECXFS_ECXFL_ECXFK
|
---|
73 | N Y
|
---|
74 | S Y=$$GETDEPT(ECXKEY)
|
---|
75 | I Y="XXXX"!(Y="INAC") D MESBUL(X2,ECXFS,ECXFL,ECXFK,Y)
|
---|
76 | Q Y
|
---|
77 | ;
|
---|
78 | PRE(X,X1,X2) ;PRE DEPARTMENT LOOKUP
|
---|
79 | ;Input X=Division
|
---|
80 | ; X1=Whether mail or not
|
---|
81 | ; X2=STATION NUMBER
|
---|
82 | N ECXFS,ECXFL,ECXFK
|
---|
83 | S ECXFS="PRE" ;feeder system for PRE
|
---|
84 | S ECXFK="" ;feeder key always null for PRE
|
---|
85 | I X1=2 S ECXFL="CMOPDSU"_X
|
---|
86 | E S ECXFL="PRE"_X
|
---|
87 | S ECXKEY=ECXFS_ECXFL_ECXFK
|
---|
88 | N Y
|
---|
89 | S Y=$$GETDEPT(ECXKEY)
|
---|
90 | I Y="XXXX"!(Y="INAC") D MESBUL(X2,ECXFS,ECXFL,ECXFK,Y)
|
---|
91 | Q Y
|
---|
92 | ;
|
---|
93 | GETDEPT(X) ;LOOKUP DEPARTMENT
|
---|
94 | ;Input: X=lookup key
|
---|
95 | ;Output Y=Department
|
---|
96 | ;Look for key in AA crossreference
|
---|
97 | N Y,ECXIEN S Y="XXXX"
|
---|
98 | I $D(^ECX(727.6,"AA",X)) D
|
---|
99 | .;Get ien of department
|
---|
100 | .S ECXIEN=$O(^ECX(727.6,"AA",X,0))
|
---|
101 | .;Get department
|
---|
102 | .S Y=$S($P(^ECX(727.6,ECXIEN,0),"^",6)]"":"INAC",1:$P(^ECX(727.6,ECXIEN,0),"^"))
|
---|
103 | Q Y
|
---|
104 | ;
|
---|
105 | GETDIV(X) ;GET PRODUCTION DIVISION
|
---|
106 | ;Input X=ien medical center division, file #40.8
|
---|
107 | ;Output Y=division number 3-6 characters
|
---|
108 | N Y S Y=""
|
---|
109 | Q:X="" Y
|
---|
110 | S Y=$$GET1^DIQ(40.8,X,.07,"I") ;Get institution file pointer
|
---|
111 | Q $S(Y="":"",1:$$RADDIV(Y)) ;Get station number
|
---|
112 | ;
|
---|
113 | PREDIV(X) ;GET PRODUCTION DIVISION FOR PRE
|
---|
114 | ;Input X=ien Outpatient Site file (#59)
|
---|
115 | ;Output Y=division number 3-6 characters
|
---|
116 | N Y,IN S Y=""
|
---|
117 | K ^TMP($J,"ECXDIV")
|
---|
118 | Q:X="" Y
|
---|
119 | D PSS^PSO59(X,"","ECXDIV")
|
---|
120 | S IN=$P($G(^TMP($J,"ECXDIV",X,100)),U,1) ;Get related inst number
|
---|
121 | S Y=$$RADDIV(IN)
|
---|
122 | K ^TMP($J,"ECXDIV")
|
---|
123 | Q Y
|
---|
124 | ;
|
---|
125 | RADDIV(X) ;GET PRODUCTION DIVISION FOR RAD
|
---|
126 | ;Input X=ien of Institution file
|
---|
127 | ;Output Y=division number 3-6 characters
|
---|
128 | N Y S Y=""
|
---|
129 | Q:X="" Y
|
---|
130 | S Y=$P($G(^DIC(4,X,99)),"^",1) ;Get station number
|
---|
131 | Q Y
|
---|
132 | ;
|
---|
133 | MESBUL(ECXSN,ECXFS,ECXFL,ECXFK,ECXDEPT) ;SEND BULLETIN FOR TABLE LOOKUP ERROR
|
---|
134 | ;
|
---|
135 | N XMY,XMDUZ,XMDT,XMZ,XMB,XMCHAN,XMSUB
|
---|
136 | S XMCHAN=1
|
---|
137 | S XMSUB="A DSS Department Error was found for Station Number: "
|
---|
138 | S XMDUZ="ECX Department Extract Application"
|
---|
139 | S XMB="ECX DSS DEPARTMENT TABLE ERROR"
|
---|
140 | S XMB(1)=ECXSN
|
---|
141 | S XMB(2)=ECXFS
|
---|
142 | S XMB(3)=ECXFL
|
---|
143 | S XMB(4)=ECXFK
|
---|
144 | S XMB(5)=ECXDEPT
|
---|
145 | S XMDT=$$NOW^XLFDT
|
---|
146 | D ^XMB
|
---|
147 | Q
|
---|
148 | ;
|
---|