1 | LRPXAPI6 ;SLC/STAFF Lab Extract API code ;10/5/03 14:53
|
---|
2 | ;;5.2;LAB SERVICE;**295**;Sep 27, 1994
|
---|
3 | ;
|
---|
4 | CONDS(CONDS,COND,TYPE,ITEM) ; from LRPXAPI3
|
---|
5 | ; returns array CONDS of conditions - for Micro and AP
|
---|
6 | ; used to determine match, XCONDS determines exact match
|
---|
7 | I COND["|" D XCONDS(.CONDS,COND,TYPE,$G(ITEM)) Q
|
---|
8 | N EQUAL,ITEMCHAR,NOTEQUAL,NUM,PIECE
|
---|
9 | K CONDS
|
---|
10 | I $E(COND)="~" S COND=$E(COND,2,245)
|
---|
11 | S ITEM=$G(ITEM)
|
---|
12 | I $L(ITEM) S COND=COND_"~"_$P(ITEM,";",2)_"="_$P(ITEM,";",3)
|
---|
13 | S NUM=1
|
---|
14 | F S PIECE=$P(COND,"~",NUM) Q:PIECE="" D
|
---|
15 | . S NUM=NUM+1
|
---|
16 | . S ITEMCHAR=$E(PIECE)
|
---|
17 | . I ITEMCHAR="S",TYPE="A" D Q
|
---|
18 | .. S CONDS("AS",PIECE)=""
|
---|
19 | . I ITEMCHAR="I",TYPE="M" D Q
|
---|
20 | .. S CONDS("MIR",PIECE)=""
|
---|
21 | . I ITEMCHAR="R",TYPE="M" D Q
|
---|
22 | .. S CONDS("MIR",PIECE)=""
|
---|
23 | . I ITEMCHAR="C" D Q
|
---|
24 | .. S CONDS(TYPE_"C",PIECE)=""
|
---|
25 | . S NOTEQUAL=+$P(PIECE,"'=",2)
|
---|
26 | . I NOTEQUAL S CONDS(0,TYPE_";"_ITEMCHAR_";"_NOTEQUAL)="" Q
|
---|
27 | . S EQUAL=+$P(PIECE,"=",2)
|
---|
28 | . I EQUAL S CONDS(1,TYPE_";"_ITEMCHAR_";"_EQUAL)="" Q
|
---|
29 | S CONDS="~"
|
---|
30 | Q
|
---|
31 | ;
|
---|
32 | XCONDS(CONDS,COND,TYPE,ITEM) ;
|
---|
33 | ; returns array CONDS of conditions - for Micro and AP
|
---|
34 | ; used to determine exact match
|
---|
35 | N EQUAL,ITEMCHAR,NOTEQUAL,NUM,PIECE
|
---|
36 | K CONDS
|
---|
37 | I $E(COND)="|" S COND=$E(COND,2,245)
|
---|
38 | S ITEM=$G(ITEM)
|
---|
39 | I $L(ITEM) S COND=COND_"|"_$P(ITEM,";",2)_"="_$P(ITEM,";",3)
|
---|
40 | S NUM=1
|
---|
41 | F S PIECE=$P(COND,"|",NUM) Q:PIECE="" D
|
---|
42 | . S NUM=NUM+1
|
---|
43 | . S ITEMCHAR=$E(PIECE)
|
---|
44 | . I ITEMCHAR="S",TYPE="A" D Q
|
---|
45 | .. S CONDS("AS",PIECE)=""
|
---|
46 | .. S CONDS("X","A;S")=""
|
---|
47 | . I ITEMCHAR="I",TYPE="M" D Q
|
---|
48 | .. S CONDS("MIR",PIECE)=""
|
---|
49 | .. S CONDS("X","MIR","I")=""
|
---|
50 | . I ITEMCHAR="R",TYPE="M" D Q
|
---|
51 | .. S CONDS("MIR",PIECE)=""
|
---|
52 | .. S CONDS("X","MIR","R")=""
|
---|
53 | . I ITEMCHAR="C" D Q
|
---|
54 | .. S CONDS(TYPE_"C",PIECE)=""
|
---|
55 | .. S CONDS("X",TYPE_";C")=""
|
---|
56 | . S NOTEQUAL=+$P(PIECE,"'=",2)
|
---|
57 | . I NOTEQUAL D Q
|
---|
58 | .. S CONDS(0,TYPE_";"_ITEMCHAR_";"_NOTEQUAL)=""
|
---|
59 | .. S CONDS("X",TYPE_";"_ITEMCHAR)=""
|
---|
60 | . S EQUAL=+$P(PIECE,"=",2)
|
---|
61 | . I EQUAL D Q
|
---|
62 | .. S CONDS(1,TYPE_";"_ITEMCHAR_";"_EQUAL)=""
|
---|
63 | .. S CONDS("X",TYPE_";"_ITEMCHAR)=""
|
---|
64 | . S CONDS("X",TYPE)=""
|
---|
65 | S CONDS="|"
|
---|
66 | I NUM=2 S CONDS="~"
|
---|
67 | Q
|
---|
68 | ;
|
---|
69 | ITEM(ITEM,TYPE,COND,ERR) ; from LRPXAPI1
|
---|
70 | ; return an item from condition
|
---|
71 | N DEL,ITEMCHAR,NUM,PIECE
|
---|
72 | S ERR=1,ITEM=""
|
---|
73 | I TYPE="C" Q
|
---|
74 | I COND["|" S DEL="|"
|
---|
75 | E S DEL="~"
|
---|
76 | S NUM=1
|
---|
77 | F S PIECE=$P(COND,DEL,NUM) Q:PIECE="" D Q:$L(ITEM)
|
---|
78 | . S NUM=NUM+1
|
---|
79 | . S ITEMCHAR=$E(PIECE)
|
---|
80 | . I $E(PIECE,2)'="=" Q
|
---|
81 | . I ITEMCHAR="C" Q
|
---|
82 | . I ITEMCHAR="R" Q
|
---|
83 | . I ITEMCHAR="I",TYPE="M" Q
|
---|
84 | . I ITEMCHAR="S",TYPE="A" S ITEM="A;S;1."_$P(PIECE,"=",2) Q
|
---|
85 | . S ITEM=TYPE_";"_ITEMCHAR_";"_$P(PIECE,"=",2) Q
|
---|
86 | I $L(ITEM) S ERR=0
|
---|
87 | Q
|
---|
88 | ;
|
---|
89 | CHECK(VAR,COND,VALUE) ; $$(variable,condition,value) -> 1 or 0
|
---|
90 | S @VAR=VALUE
|
---|
91 | X COND
|
---|
92 | Q $T
|
---|
93 | ;
|
---|
94 | TEST ; *** used for testing only
|
---|
95 | F D T
|
---|
96 | Q
|
---|
97 | T N TYPE,ERR,COND,CONDS K CONDS
|
---|
98 | ;D GETTYPE^LRPXAPPU(.TYPE,.ERR) I ERR Q
|
---|
99 | D GETCOND^LRPXAPPU(.COND,"A",.ERR) I ERR Q
|
---|
100 | D CONDS(.CONDS,COND,"A")
|
---|
101 | ;W ! ZW CONDS
|
---|
102 | ;I $$MATCH^LRPXAPI5(2,2950206.1116,.CONDS) W !,"YES",! Q
|
---|
103 | ;I $$MATCH^LRPXAPI5(14,2980910.100232,.CONDS) W !,"YES",! Q
|
---|
104 | I $$MATCH^LRPXAPI5(16,2960503,.CONDS) W !,"YES",! Q
|
---|
105 | W !,"NO",!
|
---|
106 | Q
|
---|