1 | LRBEBA ;DALOI/JAH/FHS - SCI, EI, AND LRBEDGX QUESTIONS ;8/10/04
|
---|
2 | ;;5.2;LAB SERVICE;**291**;Sep 27, 1994
|
---|
3 | ;
|
---|
4 | ; This routine contains the questions to be asked for
|
---|
5 | ; Service Connected Indicator, Environmental Indicator,
|
---|
6 | ; and Diagnosis.
|
---|
7 | ;
|
---|
8 | ; Reference to EN^DDIOL supported by IA #10142
|
---|
9 | ; Reference to ^DIC supported by IA #10006
|
---|
10 | ; Reference to $$GET1^DIQ supported by IA #2056
|
---|
11 | ; Reference to ^DIR supported by IA #10026
|
---|
12 | ; Reference to ^ICD9 supported by IA #10082
|
---|
13 | ; Reference to ^DIC(9.4 supported by IA #10048
|
---|
14 | ;
|
---|
15 | QUES(LRBEDFN,LRBESMP,LRBESPC,TST,DT,LRBEAR,LRBEDP) ; Start asking questions
|
---|
16 | N DIC,DIR,DTOUT,DUOUT,DIRUT,LRBEFMSG,LRBEST,LRBEQT,X,Y
|
---|
17 | S:$G(LRBEALO)="" LRBEALO=0 S (LRBEST,LRBEQT)=0
|
---|
18 | F D Q:LRBEQT
|
---|
19 | .;ensure it's active on the date of encounter
|
---|
20 | .;S DIC("S")="I $$STATCHK^ICDAPIU(Y,DT)"
|
---|
21 | .S LRBEFMSG=" ICD-9 CODE: "
|
---|
22 | .S DIC("A")="Select "_$S(LRBEALO=0:"Primary",1:"Secondary")_LRBEFMSG
|
---|
23 | .S DIC="^ICD9(",DIC(0)="AMEQZ" D ^DIC
|
---|
24 | .I $D(DTOUT)!($D(DUOUT)) S (LRBEST,LRBEQT)=1 K DIC,LRBEAR Q:LRBEQT
|
---|
25 | .I +Y<1 K DIC S LRBEQT=1 Q:LRBEQT
|
---|
26 | .S LRBEDGX=+Y
|
---|
27 | .S LRBEAR(LRBEDFN,"LRBEDGX",LRBESMP,LRBESPC,TST,LRBEDGX)=$P(Y(0),U,1,3)
|
---|
28 | .S:'LRBEALO $P(LRBEAR(LRBEDFN,"LRBEDGX",LRBESMP,LRBESPC,TST,LRBEDGX),U,11)=1
|
---|
29 | .S LRBEALO=1 D SCI(LRBEDFN,DT,.LRBEQT) Q:LRBEQT
|
---|
30 | K LRBEALO
|
---|
31 | Q LRBEST
|
---|
32 | ;
|
---|
33 | SCI(LRBEDFN,LRBECDT,LRBEQT) ; Ask the Indicator Questions
|
---|
34 | N DIR,DTOUT,DUOUT,DIRUT,I,LRBEA,LRBEB,LRBEBL,LRBESEG,LRBECLY,Y
|
---|
35 | I $D(LRBEDP(LRBEDGX)) D Q
|
---|
36 | .S LRBEBL=$L($G(LRBEDP(LRBEDGX)),U)
|
---|
37 | .S LRBEB=$P(LRBEDP(LRBEDGX),U,4,LRBEBL)
|
---|
38 | .S $P(LRBEAR(LRBEDFN,"LRBEDGX",LRBESMP,LRBESPC,TST,LRBEDGX),U,4,LRBEBL)=LRBEB
|
---|
39 | D CL^SDCO21(LRBEDFN,LRBECDT_".2359","",.LRBECLY)
|
---|
40 | S LRBESEG="3,7,1,2,4,5,6"
|
---|
41 | F I=1:1:$L(LRBESEG,",") S LRBEA=+$P(LRBESEG,",",I) D Q:LRBEQT
|
---|
42 | .I $D(LRBECLY(LRBEA)) D Q:LRBEQT
|
---|
43 | ..S DIR("A")=" "_$$GETI(LRBEA)
|
---|
44 | ..S DIR(0)="YO" D ^DIR
|
---|
45 | ..I $D(DTOUT)!($D(DUOUT)) S (LRBEST,LRBEQT)=1 K DIC,LRBEAR Q:LRBEQT
|
---|
46 | ..I +Y=-1 S LRBEQT=1 Q:LRBEQT
|
---|
47 | ..S $P(LRBEAR(LRBEDFN,"LRBEDGX",LRBESMP,LRBESPC,TST,LRBEDGX),U,LRBEA+3)=Y
|
---|
48 | ..S $P(LRBEDP(LRBEDGX),U,LRBEA+3)=Y
|
---|
49 | Q
|
---|
50 | ;
|
---|
51 | GETI(LRBEA) ; Get type of Indicator
|
---|
52 | N LRBEX,LRBEQUES,LRBEQUS1
|
---|
53 | S LRBEQUES="Was treatment related to ",LRBEQUS1="Was treatment for a "
|
---|
54 | S:LRBEA=1 LRBEX=LRBEQUES_"Agent Orange exposure"
|
---|
55 | S:LRBEA=2 LRBEX=LRBEQUES_"Ionizing Radiation exposure"
|
---|
56 | S:LRBEA=3 LRBEX=LRBEQUS1_"Service Connected condition"
|
---|
57 | S:LRBEA=4 LRBEX=LRBEQUES_"Environmental Contaminant exposure"
|
---|
58 | S:LRBEA=5 LRBEX=LRBEQUES_"Military Sexual Trauma"
|
---|
59 | S:LRBEA=6 LRBEX=LRBEQUES_"Head and Neck Cancer"
|
---|
60 | S:LRBEA=7 LRBEX=LRBEQUES_"Combat Vet"
|
---|
61 | Q LRBEX
|
---|
62 | ;
|
---|
63 | ERRMSG(MT) ; Display Error Message
|
---|
64 | N LRBEAST,LRBEFMT,LRBELIN,LRBEMS
|
---|
65 | S:MT=-1 LRBEMS="An error occurred. Data may or may not have been processed."
|
---|
66 | S:MT<-1 LRBEMS="No data was processed."
|
---|
67 | S LRBEMS="* "_LRBEMS_" *",LRBEAST="",$P(LRBEAST,"*",80)="",LRBEFMT="!?"_((80-$L(LRBEMS))/2)
|
---|
68 | S LRBELIN=$E(LRBEAST,1,$L(LRBEMS)+1)
|
---|
69 | D EN^DDIOL(LRBELIN,"",LRBEFMT),EN^DDIOL(LRBEMS,"",LRBEFMT),EN^DDIOL(LRBELIN,"",LRBEFMT)
|
---|
70 | Q
|
---|
71 | ;
|
---|
72 | SDG1(LRODT,LRSN,LRTN,LRSAMP,LRSPEC,LRTSTS,LRBEAR) ; Set the diagnois
|
---|
73 | ; and indicators file #69
|
---|
74 | N LRBEFIL,LRBEIEN,LRBEDFN,LRFDA,LRFDAIEN,LRERR,LRBEPDGX,LRBETNUM
|
---|
75 | N LRDA,LRBEP,DIK,DA
|
---|
76 | S DIK="^LRO(69,"_LRODT_",1,"_LRSN_",2,"_LRTN_",2,"
|
---|
77 | S LRDA=0 F S LRDA=$O(^LRO(69,LRODT,1,LRSN,2,LRTN,2,LRDA)) Q:LRDA<1 D
|
---|
78 | . S DA=LRDA D ^DIK
|
---|
79 | K DA,DIK
|
---|
80 | S LRBEP=0
|
---|
81 | I '$D(DFN) S LRBEDFN=$$GET1^DIQ(63,LRDFN,.03,"I")
|
---|
82 | S:$D(DFN) LRBEDFN=DFN
|
---|
83 | S LRBEFIL=69.05,LRBETNUM=$O(^LRO(69,LRODT,1,LRSN,2,LRTN,2,""),-1)+1,LRBEPDGX=""
|
---|
84 | F S LRBEPDGX=$O(LRBEAR(LRBEDFN,"LRBEDGX",LRSAMP,LRSPEC,LRTSTS,LRBEPDGX)) Q:LRBEPDGX="" D
|
---|
85 | .S LRBEPTDT=$G(LRBEAR(LRBEDFN,"LRBEDGX",LRSAMP,LRSPEC,LRTSTS,LRBEPDGX))
|
---|
86 | .I 'LRBEP,'$P(LRBEPTDT,U,11) Q
|
---|
87 | .S LRBEP=1
|
---|
88 | .S LRBEIEN="+"_LRBETNUM_","_LRTN_","_LRSN_","_LRODT_","
|
---|
89 | .S LRFDAIEN(LRBETNUM)=LRBETNUM
|
---|
90 | .S LRFDA(99,LRBEFIL,LRBEIEN,.01)=LRBEPDGX
|
---|
91 | .S:$P(LRBEPTDT,U,6)'="" LRFDA(99,LRBEFIL,LRBEIEN,1)=$P(LRBEPTDT,U,6)
|
---|
92 | .S:$P(LRBEPTDT,U,10)'="" LRFDA(99,LRBEFIL,LRBEIEN,2)=$P(LRBEPTDT,U,10)
|
---|
93 | .S:$P(LRBEPTDT,U,4)'="" LRFDA(99,LRBEFIL,LRBEIEN,3)=$P(LRBEPTDT,U,4)
|
---|
94 | .S:$P(LRBEPTDT,U,5)'="" LRFDA(99,LRBEFIL,LRBEIEN,4)=$P(LRBEPTDT,U,5)
|
---|
95 | .S:$P(LRBEPTDT,U,7)'="" LRFDA(99,LRBEFIL,LRBEIEN,5)=$P(LRBEPTDT,U,7)
|
---|
96 | .S:$P(LRBEPTDT,U,8)'="" LRFDA(99,LRBEFIL,LRBEIEN,6)=$P(LRBEPTDT,U,8)
|
---|
97 | .S:$P(LRBEPTDT,U,9)'="" LRFDA(99,LRBEFIL,LRBEIEN,7)=$P(LRBEPTDT,U,9)
|
---|
98 | .S:$P(LRBEPTDT,U,11)=1 LRFDA(99,LRBEFIL,LRBEIEN,8)=1 ;Is Primary?
|
---|
99 | .S LRBETNUM=LRBETNUM+1
|
---|
100 | .I $P(LRBEPTDT,U,11) K LRBEAR(LRBEDFN,"LRBEDGX",LRSAMP,LRSPEC,LRTSTS,LRBEPDGX) S LRBEPDGX=""
|
---|
101 | D UPDATE^DIE("","LRFDA(99)","LRFDAIEN","LRERR")
|
---|
102 | Q
|
---|
103 | ;
|
---|
104 | SDOS(LRODT,LRSN,LRTN,LRBECDT) ; Set DOS for CIDC
|
---|
105 | N LRBEIEN,LRFDA,LRERR
|
---|
106 | S LRBEIEN=LRTN_","_LRSN_","_LRODT_",",LRFDA(99,69.03,LRBEIEN,22)=LRBECDT
|
---|
107 | D UPDATE^DIE("","LRFDA(99)","","LRERR")
|
---|
108 | Q
|
---|
109 | ;
|
---|
110 | CCPT(LRBECPT,LRBECDT,LRBEAR) ; Check the status of the CPT (CSV)
|
---|
111 | ;
|
---|
112 | ; Input:
|
---|
113 | ; LRBECPT - CPT
|
---|
114 | ; LRBECDT - Date To Be Checked ; Collection date/time
|
---|
115 | ; LRBEAR - An array passed by reference to hold IEN and Status
|
---|
116 | ;
|
---|
117 | ; Output:
|
---|
118 | ; ST - Status of CPT (Active (1),Inactive (0), or Invalid (-1))
|
---|
119 | ; LRBEAR - An array passed by reference to hold IEN and Status
|
---|
120 | ; LRBEAR(CPT)=IEN^NAME^EFFECTIVE DAT^STATUS
|
---|
121 | ;
|
---|
122 | N LRBEST,LRBEPTDT
|
---|
123 | S LRBEST=""
|
---|
124 | S LRBEPTDT=$$CPT^ICPTCOD(LRBECPT,LRBECDT)
|
---|
125 | S LRBEST=$P(LRBEPTDT,U,7) I 'LRBEST S LRBEST=-1 Q LRBEST
|
---|
126 | S LRBEAR(LRBECPT)=$P(LRBEPTDT,U,1)_U_$P(LRBEPTDT,U,3)_U_$P(LRBEPTDT,U,6)_U_LRBEST
|
---|
127 | Q LRBEST
|
---|
128 | ;
|
---|
129 | EMSGCPT(LRBEAR) ; Print out Inactive CPTs
|
---|
130 | N CNAM,LRBEASK,LRBEFMT,LRBELIN,LRBECPT,LRBEMS,LRBEMS2,LRBEMS3,LRBEMSG,LRBESP
|
---|
131 | S LRBEMSG="Please contact HISYS to correct the Inactive CPTs: "
|
---|
132 | S LRBEMS="* "_LRBEMSG_" *",LRBEAST="",$P(LRBEAST,"*",80)="",LRBEFMT="!?"_((80-$L(LRBEMS))/2)
|
---|
133 | S LRBESP="",$P(LRBESP," ",80)="",LRBELIN=$E(LRBEAST,1,$L(LRBEMS))
|
---|
134 | S LRBEMS2="* "_$E(LRBESP,1,$L(LRBEMSG))_" *"
|
---|
135 | D EN^DDIOL(LRBELIN,"","!"_LRBEFMT),EN^DDIOL(LRBEMS,"",LRBEFMT),EN^DDIOL(LRBEMS2,"",LRBEFMT)
|
---|
136 | S LRBECPT="" F S LRBECPT=$O(LRBEAR(LRBECPT)) Q:LRBECPT="" D
|
---|
137 | .Q:$P(LRBEAR(LRBECPT),U,4)'=0
|
---|
138 | .S CNAM=$P(LRBEAR(LRBECPT),U,2)
|
---|
139 | .S LRBEMS3="* "_LRBECPT_$E(LRBESP,1,15-$L(LRBECPT))_$E(CNAM,1,30)
|
---|
140 | .S LRBEMS3=LRBEMS3_$E(LRBESP,1,($L(LRBEMS)-$L(LRBEMS3))-1)_"*"
|
---|
141 | .D EN^DDIOL(LRBEMS3,"",LRBEFMT)
|
---|
142 | D EN^DDIOL(LRBEMS2,"",LRBEFMT),EN^DDIOL(LRBELIN,"",LRBEFMT)
|
---|
143 | Q
|
---|
144 | ;
|
---|
145 | BAWRK(LRODT,LRSN,LRI,LRBEY,LRTEST,LRBEDEL,LRBEVST,LRBEROLL,ORIEN) ; Send the Billing Information to PCE
|
---|
146 | ;input LRBEROLL = 1, if processing from routine LRBEBA5 for roll-up to PCE
|
---|
147 | ;input ORIEN = OERR Order #; only passed from WORK^LRBEBA4
|
---|
148 | Q:$G(LRCHG)=1
|
---|
149 | K ^TMP("LRPXAPI",$J),LRBEAR,LRBEAR1,LRBECPT
|
---|
150 | N D0,DA,DIC,DIE,DIR,I,T,X1,X2,X3,X9,Z,Z1,Z2,CNT,VADM,VAIN
|
---|
151 | N LRBETEST,LRTN,LRBESB,LRBETST,LRBEPAN,LRBEMSG,LRDBEDGX,LRBESEQ,LRNOP,LRX
|
---|
152 | N PXBREQ,LRVN,PXKDONE
|
---|
153 | I '$G(LRPKG) D
|
---|
154 | . S LRPKG=$$FIND1^DIC(9.4,,"B","LAB SERVICE","B","","ERR")
|
---|
155 | I LRPKG<1 D Q
|
---|
156 | . D EN^DDIOL("PCE Error Condition - Lab Service package not installed","","!")
|
---|
157 | N LRBEAR,LRBEDFN,LRBECDT,LRBEU,LRBEX,LRBEZ,LRBETYP,LRBECDT
|
---|
158 | N LRBENO,LRBEMOD,LROOS,LRPCECNT,LRI,X,Y,USR
|
---|
159 | M LRBETEST=LRTEST
|
---|
160 | M LRBESB=LRSB
|
---|
161 | S LROOS=$$GET1^DIQ(68,LRAA,.8,"I") I 'LROOS S LROOS=$$GET1^DIQ(69.9,1,.8,"I")
|
---|
162 | S LRBEMOD=$$GMOD^LRBEBA2(LRAA)
|
---|
163 | S LRBEDEL=$G(LRBEDEL)
|
---|
164 | I $G(LRDFN) S:'$G(DFN) DFN=$$GET1^DIQ(63,LRDFN_",",.03,"I")
|
---|
165 | S LRBEDFN=DFN
|
---|
166 | S:'$G(LRBEVST) LRBEVST=$P($G(^LRO(69,LRODT,1,LRSN,"PCE")),";")
|
---|
167 | S (LRBECDT,LRBEDT)=$J($$GET1^DIQ(69.01,LRSN_","_LRODT_",",10,"I"),7,4)
|
---|
168 | S I=0 F S I=$O(LRBETEST(I)) Q:I<1 D
|
---|
169 | . S LRBETST=$P(LRBETEST(I),U,1)
|
---|
170 | . S LRTN=$O(^LRO(69,LRODT,1,LRSN,2,"B",LRBETST,0))
|
---|
171 | . I LRTN D SDOS(LRODT,LRSN,LRTN,LRBECDT)
|
---|
172 | G:$G(LRBENO) KILL
|
---|
173 | D BLDAR^LRBEBA3(LRBEDFN,LRODT,LRSN,.LRBEAR,.LRBEY,.LRBETEST,.LRBEPAN,LRBEDEL) G:$G(LRBENO) KILL
|
---|
174 | D STDN^LRBEBA2(LRODT,LRSN,.LRBETEST,.LRBEY) G:$G(LRBENO) KILL
|
---|
175 | D SOP^LRBEBA2(LRBEDFN,.LRBESB,.LRBEY,.LRBEPAN,$G(LRBEROLL)) G:$G(LRBENO) KILL
|
---|
176 | I $D(LRBECPT)>1 D
|
---|
177 | .D OPORD^LRBEBAO Q:$G(LRBENO)
|
---|
178 | .D OPRES^LRBEBAO(.LRBEAR,.LRBEAR1,LRODT,LRSN,LRBEVST)
|
---|
179 | KILL ;
|
---|
180 | K ^TMP("LRPXAPI",$J)
|
---|
181 | K LRPKG,LRBEDIA,LRBEVSIT,LRBEAR,LRBEAR1,LRBEDEL,LRBEDT,LRBEPOS
|
---|
182 | K LRBEIEN,LRBEMOD,LRBEPTDT,LRBETM,LRBEDN,LRBESMP,LRBESPC,LRBEDGX,LRBEVST,LROOS,LRBERES
|
---|
183 | K ERRDIS,INROOT,SRC,SUB1,SUB2,SUB3,USR
|
---|
184 | I '$G(LRBEROLL) K LRBECPT,LRBEY
|
---|
185 | Q
|
---|
186 | ;
|
---|
187 | GEDT(LRODT,LRSN,LRBETST) ; Get the Date of Service
|
---|
188 | N X,Y,LRBEIEN,DIC,LRBEEDT
|
---|
189 | S LRBEEDT=""
|
---|
190 | S X=$$GET1^DIQ(60,LRBETST_",",.01)
|
---|
191 | S DIC="^LRO(69,"_LRODT_",1,"_LRSN_",2,"
|
---|
192 | S DIC(0)="Z" D ^DIC I +Y<0 K DIC Q 0
|
---|
193 | S LRBEIEN=+Y_","_LRSN_","_LRODT_","
|
---|
194 | S LRBEEDT=$$GET1^DIQ(69.03,LRBEIEN,22,"I")
|
---|
195 | Q LRBEEDT
|
---|
196 | ;
|
---|
197 | GCDT(LRODT,LRSN) ; Get the collection date/time
|
---|
198 | N LRBECDT,LRBEIEN
|
---|
199 | S LRBECDT=""
|
---|
200 | S LRBEIEN=LRSN_","_LRODT_","
|
---|
201 | S LRBECDT=$$GET1^DIQ(69.01,LRBEIEN,10,"I")
|
---|
202 | Q LRBECDT
|
---|