[613] | 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
|
---|