1 | PSULR1 ;BIR/PDW - PBM LAB EXTRACT ;12 AUG 1999
|
---|
2 | ;;4.0;PHARMACY BENEFITS MANAGEMENT;;MARCH, 2005
|
---|
3 | ; Extract & setup crosswalk for drug codes and "CH" nodes
|
---|
4 | ; Reference to File # 60 supported by DBIA 2523
|
---|
5 | ; Reference to ^LAM supported by DBIA 2522
|
---|
6 | EN ;EP Tasking Entry Point for generating LAB mail messages, Summaries, & Prints
|
---|
7 | ;
|
---|
8 | CODES ; Table for Building Class * Work Load codes * Lab Tests crosswalk
|
---|
9 | D SETCODES^PSULR0
|
---|
10 | ; Builds ^XTMP(PSULRSUB,"CODES",VA DRUG CLASS,LAB NODE LOCATION)=LAB TEST
|
---|
11 | ; Builds PSUFLAG("BLOOD":"SERUM":"PLASMA") array
|
---|
12 | S:'$D(PSUJOB) PSUJOB=$J
|
---|
13 | S:'$D(PSULRJOB) PSULRJOB=PSUJOB
|
---|
14 | S:'$D(PSULRSUB) PSULRSUB="PSULR_"_PSULRJOB
|
---|
15 | ; Initialize Flag type array
|
---|
16 | F X="BLOOD","SERUM","PLASMA" S PSUFLAG(X)=""
|
---|
17 | ;
|
---|
18 | ; Loop Drug Class Codes & WorkCodes 3.2.8.7
|
---|
19 | S X="AN500" F Y=83405,81062 S PSULRX(X,Y)="" D GET
|
---|
20 | S X="CV200" F Y=82565 S PSULRX(X,Y)="" D GET
|
---|
21 | S X="CV350" F Y=83017,83013,84480,82466,84455,84465 S PSULRX(X,Y)="" D GET
|
---|
22 | S X="CV800" F Y=82565,84140 S PSULRX(X,Y)="" D GET
|
---|
23 | S X="GA301" F Y=82565 S PSULRX(X,Y)="" D GET
|
---|
24 | S X="HS502" F Y=84330,85053,84455,84465,85052 S PSULRX(X,Y)="" D GET
|
---|
25 | ;
|
---|
26 | Q
|
---|
27 | ; Follow wrk code into tests 3.2.8.9
|
---|
28 | GET ;EP Get the appropriate Work Load entry
|
---|
29 | ;
|
---|
30 | S PSUY=Y_".0000 " D WALK
|
---|
31 | F S PSUY=$O(^LAM("C",PSUY)) Q:(+PSUY\1'=+Y) D WALK
|
---|
32 | Q
|
---|
33 | WALK ;EP Do the crosswalk to get the tests associated with workload
|
---|
34 | S Z=$O(^LAM("C",PSUY,0))
|
---|
35 | ; 3.2.8.9
|
---|
36 | I '$D(^LAM(Z,7,"B")) Q
|
---|
37 | ; 3.2.8.10
|
---|
38 | ;
|
---|
39 | S PSUWKDA=Z
|
---|
40 | ; Loop Multiple & Work on over to file 60 & check site/specimen
|
---|
41 | S Z="" F S Z=$O(^LAM(PSUWKDA,7,"B",Z)) Q:Z="" D
|
---|
42 | . S PSULRDA=+Z
|
---|
43 | . K PSUSPECM
|
---|
44 | . D GETM^PSUTL(60,PSULRDA,"100*^.01;6","PSUSPECM")
|
---|
45 | . S DA=0,PSUFLAG=0 F S DA=$O(PSUSPECM(DA)) Q:DA'>0 S W=PSUSPECM(DA,.01) I $D(PSUFLAG(W)) S PSUFLAG=1 Q
|
---|
46 | . Q:'PSUFLAG
|
---|
47 | . ; store DrugCode, WrkCode, Lab IEN = Location
|
---|
48 | . S PSULOC=$$VAL^PSUTL(60,PSULRDA,5),PSULOC=$P(PSULOC,";",2)
|
---|
49 | . ;S ^XTMP(PSULRSUB,"CODES",X,+Y,PSULRDA)=PSULOC ; Trace Construction
|
---|
50 | . S ^XTMP(PSULRSUB,"CODES",X,PSULOC)=$$VAL^PSUTL(60,PSULRDA,.01)_U_PSUSPECM(DA,6)
|
---|