1 | DGUTL4 ;BPFO/JRP - RACE & ETHNIC UTILITIES;9/5/2002
|
---|
2 | ;;5.3;Registration;**415**;Aug 13, 1993
|
---|
3 | ;
|
---|
4 | PTR2TEXT(VALUE,TYPE) ;Convert pointer to text (.01 field)
|
---|
5 | ;Input: VALUE - Pointer to RACE file (#10), ETHNICITY file (#10.2),
|
---|
6 | ; or RACE AND ETHNICITY COLLECTION METHOD file (#10.3)
|
---|
7 | ; TYPE - Flag indicating which file VALUE is for
|
---|
8 | ; 1 = Race (default)
|
---|
9 | ; 2 = Ethnicity
|
---|
10 | ; 3 = Collection Method
|
---|
11 | ;Output: Text (.01 field)
|
---|
12 | ;Notes : NULL ("") returned on bad input or if there is no code
|
---|
13 | ;
|
---|
14 | ;Check input
|
---|
15 | S VALUE=+$G(VALUE)
|
---|
16 | I 'VALUE Q ""
|
---|
17 | S TYPE=$G(TYPE)
|
---|
18 | S:(TYPE'?1N) TYPE=1
|
---|
19 | S:((TYPE<1)!(TYPE>3)) TYPE=1
|
---|
20 | ;Declare variables
|
---|
21 | N FILE,NODE
|
---|
22 | ;Grab zero node
|
---|
23 | S FILE=$S(TYPE=3:$NA(^DIC(10.3)),TYPE=2:$NA(^DIC(10.2)),1:$NA(^DIC(10)))
|
---|
24 | S NODE=$G(@FILE@(VALUE,0))
|
---|
25 | ;Return text
|
---|
26 | Q $P(NODE,"^",1)
|
---|
27 | ;
|
---|
28 | INACTIVE(VALUE,TYPE) ;Entry marked as inactive ?
|
---|
29 | ;Input: VALUE - Pointer to RACE file (#10) or ETHNICITY file (#10.2)
|
---|
30 | ; TYPE - Flag indicating which file VALUE is for
|
---|
31 | ; 1 = Race (default)
|
---|
32 | ; 2 = Ethnicity
|
---|
33 | ;Output: 0 - Entry not inactive
|
---|
34 | ; 1^Date - Entry inactive (Date in FileMan format)
|
---|
35 | ;Notes : 0 (zero) returned on bad input
|
---|
36 | ; : Collection methods can not currently be inactivated
|
---|
37 | ;
|
---|
38 | ;Check input
|
---|
39 | S VALUE=+$G(VALUE)
|
---|
40 | I 'VALUE Q ""
|
---|
41 | S TYPE=$G(TYPE)
|
---|
42 | S:(TYPE'?1N) TYPE=1
|
---|
43 | S:((TYPE<1)!(TYPE>2)) TYPE=1
|
---|
44 | ;Declare variables
|
---|
45 | N FILE,NODE,DATE
|
---|
46 | ;Grab inactivation node
|
---|
47 | S FILE=$S(TYPE=2:$NA(^DIC(10.2)),1:$NA(^DIC(10)))
|
---|
48 | S NODE=$G(@FILE@(VALUE,.02))
|
---|
49 | ;Grab inactivation date
|
---|
50 | S DATE=$P(NODE,"^",2)
|
---|
51 | ;Not inactive
|
---|
52 | I (('NODE)&('DATE)) Q 0
|
---|
53 | ;Inactive - include inactivation date
|
---|
54 | Q "1^"_DATE
|
---|
55 | ;
|
---|
56 | PTR2CODE(VALUE,TYPE,CODE) ;Convert pointer to specified code
|
---|
57 | ;Input: VALUE - Pointer to RACE file (#10), ETHNICITY file (#10.2),
|
---|
58 | ; or RACE AND ETHNICITY COLLECTION METHOD file (#10.3)
|
---|
59 | ; TYPE - Flag indicating which file VALUE is for
|
---|
60 | ; 1 = Race (default)
|
---|
61 | ; 2 = Ethnicity
|
---|
62 | ; 3 = Collection Method
|
---|
63 | ; CODE - Flag indicating which code to return
|
---|
64 | ; 1 = Abbreviation (default)
|
---|
65 | ; 2 = HL7
|
---|
66 | ; 3 = CDC (not applicable for Collection Method)
|
---|
67 | ; 4 = PTF
|
---|
68 | ;Output: Requested code
|
---|
69 | ;Notes : NULL ("") returned on bad input or if there is no code
|
---|
70 | ;
|
---|
71 | ;Check input
|
---|
72 | S VALUE=+$G(VALUE)
|
---|
73 | I 'VALUE Q ""
|
---|
74 | S TYPE=$G(TYPE)
|
---|
75 | S:(TYPE'?1N) TYPE=1
|
---|
76 | S:((TYPE<1)!(TYPE>3)) TYPE=1
|
---|
77 | S CODE=$G(CODE)
|
---|
78 | S:(CODE'?1N) CODE=1
|
---|
79 | S:((CODE<1)!(CODE>4)) CODE=1
|
---|
80 | ;No CDC code for Collection Method
|
---|
81 | I ((TYPE=3)&(CODE=3)) Q ""
|
---|
82 | ;Declare variables
|
---|
83 | N FILE,NODEREF,NODE,PIECE
|
---|
84 | ;Grab node storing code
|
---|
85 | S FILE=$S(TYPE=3:$NA(^DIC(10.3)),TYPE=2:$NA(^DIC(10.2)),1:$NA(^DIC(10)))
|
---|
86 | S NODEREF=0
|
---|
87 | S NODE=$G(@FILE@(VALUE,NODEREF))
|
---|
88 | ;Determine which piece requested code is in
|
---|
89 | S PIECE=CODE+1
|
---|
90 | ;Return requested code
|
---|
91 | Q $P(NODE,"^",PIECE)
|
---|
92 | ;
|
---|
93 | CODE2PTR(VALUE,TYPE,CODE) ;Convert specified code to pointer
|
---|
94 | ;Input: VALUE - Code to convert
|
---|
95 | ; TYPE - Flag indicating which file VALUE is from
|
---|
96 | ; 1 = Race (file #10) (default)
|
---|
97 | ; 2 = Ethnicity (file #10.2)
|
---|
98 | ; 3 = Collection Method (file #10.3)
|
---|
99 | ; CODE - Flag indicating which code VALUE is for
|
---|
100 | ; 1 = Abbreviation (default)
|
---|
101 | ; 2 = HL7
|
---|
102 | ; 3 = CDC (not applicable for Collection Method)
|
---|
103 | ; 4 = PTF
|
---|
104 | ;Output: Pointer to file
|
---|
105 | ;Notes : 0 (zero) returned on bad input or if an entry can't be found
|
---|
106 | ;
|
---|
107 | ;Check input
|
---|
108 | S VALUE=$G(VALUE)
|
---|
109 | I VALUE="" Q 0
|
---|
110 | S TYPE=$G(TYPE)
|
---|
111 | S:(TYPE'?1N) TYPE=1
|
---|
112 | S:((TYPE<1)!(TYPE>3)) TYPE=1
|
---|
113 | S CODE=$G(CODE)
|
---|
114 | S:(CODE'?1N) CODE=1
|
---|
115 | S:((CODE<1)!(CODE>4)) CODE=1
|
---|
116 | ;No CDC code for Collection Method
|
---|
117 | I ((TYPE=3)&(CODE=3)) Q 0
|
---|
118 | ;Declare variables
|
---|
119 | N PTR,FILE,NODEREF,PIECE,FOUND
|
---|
120 | S FILE=$S(TYPE=3:$NA(^DIC(10.3)),TYPE=2:$NA(^DIC(10.2)),1:$NA(^DIC(10)))
|
---|
121 | ;Abbreviation and HL7 have x-refs
|
---|
122 | I ((CODE=1)!(CODE=2)) D Q PTR
|
---|
123 | .;Get pointer using x-ref
|
---|
124 | .S NODEREF=$S(CODE=2:"AHL7",1:"C")
|
---|
125 | .S PTR=+$O(@FILE@(NODEREF,VALUE,0))
|
---|
126 | ;CDC and PTF don't have x-refs - loop through file looking for match
|
---|
127 | ;Node & piece code is stored on
|
---|
128 | S NODEREF=0
|
---|
129 | S PIECE=CODE+1
|
---|
130 | S FOUND=0
|
---|
131 | S PTR=0
|
---|
132 | F S PTR=+$O(@FILE@(PTR)) Q:'PTR D Q:FOUND
|
---|
133 | .S NODE=$G(@FILE@(PTR,NODEREF))
|
---|
134 | .I $P(NODE,"^",PIECE)=VALUE S FOUND=1
|
---|
135 | Q PTR
|
---|