[613] | 1 | PXRMLABS ; SLC/PKR - Estimate of lab entries to set up. ;8/5/03 16:20
|
---|
| 2 | ;;2.0;CLINICAL REMINDERS;;Feb 04, 2005
|
---|
| 3 | ;===============================================================
|
---|
| 4 | NELR() ;.
|
---|
| 5 | N LRDFN,LRDN,LRIDT,NE,TEMP
|
---|
| 6 | ;DBIA #4179
|
---|
| 7 | S NE=0
|
---|
| 8 | S LRDFN=.9
|
---|
| 9 | F S LRDFN=$O(^LR(LRDFN)) Q:LRDFN<1 D
|
---|
| 10 | . S TEMP=$G(^LR(LRDFN,0))
|
---|
| 11 | . I $P(TEMP,U,2)'=2 Q
|
---|
| 12 | . S LRIDT=0
|
---|
| 13 | . F S LRIDT=$O(^LR(LRDFN,"CH",LRIDT)) Q:LRIDT<1 D
|
---|
| 14 | .. I '$P($G(^LR(LRDFN,"CH",LRIDT,0)),U,3) Q ; check for completed
|
---|
| 15 | .. S LRDN=1
|
---|
| 16 | .. F S LRDN=$O(^LR(LRDFN,"CH",LRIDT,LRDN)) Q:LRDN<1 D
|
---|
| 17 | ... S NE=NE+1
|
---|
| 18 | D AP(.NE)
|
---|
| 19 | D MICRO(.NE)
|
---|
| 20 | Q NE
|
---|
| 21 | ;
|
---|
| 22 | ;===============================================================
|
---|
| 23 | AP(NE) ;
|
---|
| 24 | N ETIOL,I,II,III,ICD,ICDX
|
---|
| 25 | N LRDFN,ORGAN,SNOMED,SPEC,SUB,SUBS,TEMP
|
---|
| 26 | ;DBIA #4179
|
---|
| 27 | K ANUMS
|
---|
| 28 | D AANUMS(.ANUMS)
|
---|
| 29 | S LRDFN=.9
|
---|
| 30 | F S LRDFN=$O(^LR(LRDFN)) Q:LRDFN<1 D
|
---|
| 31 | . S TEMP=$G(^LR(LRDFN,0))
|
---|
| 32 | . I $P(TEMP,U,2)'=2 Q
|
---|
| 33 | . D CYEMSP(LRDFN,.ANUMS,.NE) ; cytology, electron microscopy, sugrical path
|
---|
| 34 | . I '+$G(^LR(LRDFN,"AU")) Q ; date of autopsy
|
---|
| 35 | . S NE=NE+1
|
---|
| 36 | . S SPEC=0
|
---|
| 37 | . F S SPEC=$O(^LR(LRDFN,33,SPEC)) Q:SPEC<1 D
|
---|
| 38 | .. I '$L($P($G(^LR(LRDFN,33,SPEC,0)),U)) Q
|
---|
| 39 | .. S NE=NE+1
|
---|
| 40 | . S ICD=0
|
---|
| 41 | . F S ICD=$O(^LR(LRDFN,80,ICD)) Q:ICD<1 D
|
---|
| 42 | .. S ICDX=+$G(^LR(LRDFN,80,ICD,0))
|
---|
| 43 | .. I 'ICDX Q
|
---|
| 44 | .. S NE=NE+1
|
---|
| 45 | . S I=0
|
---|
| 46 | . F S I=$O(^LR(LRDFN,"AY",I)) Q:I<1 D
|
---|
| 47 | .. S ORGAN=+$G(^LR(LRDFN,"AY",I,0))
|
---|
| 48 | .. I 'ORGAN Q
|
---|
| 49 | .. S NE=NE+1
|
---|
| 50 | .. F SUBS="1D","2M","3F","4P" D
|
---|
| 51 | ... S SUB=+SUBS
|
---|
| 52 | ... S II=0
|
---|
| 53 | ... F S II=$O(^LR(LRDFN,"AY",I,SUB,II)) Q:II<1 D
|
---|
| 54 | .... S SNOMED=+$G(^LR(LRDFN,"AY",I,SUB,II,0))
|
---|
| 55 | .... I 'SNOMED Q
|
---|
| 56 | .... S NE=NE+1
|
---|
| 57 | .... I SUB'=2 Q
|
---|
| 58 | .... S III=0
|
---|
| 59 | .... F S III=$O(^LR(LRDFN,"AY",I,SUB,II,1,III)) Q:III<1 D
|
---|
| 60 | ..... S ETIOL=+$G(^LR(LRDFN,"AY",I,SUB,II,1,III,0))
|
---|
| 61 | ..... I 'ETIOL Q
|
---|
| 62 | ..... S NE=NE+1
|
---|
| 63 | Q
|
---|
| 64 | ;
|
---|
| 65 | CYEMSP(LRDFN,ANUMS,NE) ;
|
---|
| 66 | N ACC,APSUB,DATE,ERR,I,ICD,ICDX,LRIDT,NODE,ORGAN,PREP,SPEC
|
---|
| 67 | N TEST,TESTS K TESTS
|
---|
| 68 | ;DBIA #4179
|
---|
| 69 | F APSUB="CY","EM","SP" D
|
---|
| 70 | . I '$D(^LR(LRDFN,APSUB,0)) Q
|
---|
| 71 | . S LRIDT=0
|
---|
| 72 | . F S LRIDT=$O(^LR(LRDFN,APSUB,LRIDT)) Q:LRIDT<1 D
|
---|
| 73 | .. S DATE=+$G(^LR(LRDFN,APSUB,LRIDT,0))
|
---|
| 74 | .. I 'DATE Q
|
---|
| 75 | .. I '($P(^LR(LRDFN,APSUB,LRIDT,0),U,3)&($P(^(0),U,11))) Q
|
---|
| 76 | .. S SPEC=0
|
---|
| 77 | .. F S SPEC=$O(^LR(LRDFN,APSUB,LRIDT,.1,SPEC)) Q:SPEC<1 D
|
---|
| 78 | ... I '$L($P($G(^LR(LRDFN,APSUB,LRIDT,.1,SPEC,0)),U)) Q
|
---|
| 79 | ... S NE=NE+1
|
---|
| 80 | ... S PREP=0
|
---|
| 81 | ... F S PREP=$O(^LR(LRDFN,APSUB,LRIDT,.1,SPEC,1,PREP)) Q:PREP<1 D
|
---|
| 82 | .... S TEST=0
|
---|
| 83 | .... F S TEST=$O(^LR(LRDFN,APSUB,LRIDT,.1,SPEC,1,PREP,1,TEST)) Q:TEST<1 D
|
---|
| 84 | ..... I '$L($P($G(^LR(LRDFN,APSUB,LRIDT,.1,SPEC,1,PREP,1,TEST,0)),U)) Q
|
---|
| 85 | ..... S NE=NE+1
|
---|
| 86 | .. S ACC=$P(^LR(LRDFN,APSUB,LRIDT,0),U,6)
|
---|
| 87 | .. I $L(ACC) D
|
---|
| 88 | ... S NODE=LRDFN_";"_APSUB_";"_LRIDT_";0"
|
---|
| 89 | ... D ACC(.TESTS,ACC,DATE,.ANUMS,.ERR)
|
---|
| 90 | ... I 'ERR D
|
---|
| 91 | .... S TEST=0
|
---|
| 92 | .... F S TEST=$O(TESTS(TEST)) Q:TEST<1 D
|
---|
| 93 | ..... S NE=NE+1
|
---|
| 94 | .. S ICD=0
|
---|
| 95 | .. F S ICD=$O(^LR(LRDFN,APSUB,LRIDT,3,ICD)) Q:ICD<1 D
|
---|
| 96 | ... S ICDX=+$G(^LR(LRDFN,APSUB,LRIDT,3,ICD,0))
|
---|
| 97 | ... I 'ICDX Q
|
---|
| 98 | ... S NE=NE+1
|
---|
| 99 | .. S I=0
|
---|
| 100 | .. F S I=$O(^LR(LRDFN,APSUB,LRIDT,2,I)) Q:I<1 D
|
---|
| 101 | ... S ORGAN=+$G(^LR(LRDFN,APSUB,LRIDT,2,I,0))
|
---|
| 102 | ... I 'ORGAN Q
|
---|
| 103 | ... S NE=NE+1
|
---|
| 104 | ... D SNOMED(LRDFN,LRIDT,DATE,APSUB,I,.NE)
|
---|
| 105 | Q
|
---|
| 106 | ;
|
---|
| 107 | SNOMED(LRDFN,LRIDT,DATE,APSUB,I,NE) ;
|
---|
| 108 | N ETIOL,II,III,SNOMED,SUB,SUBS
|
---|
| 109 | ;DBIA #4179
|
---|
| 110 | F SUBS="1D","2M","3F","4P" D
|
---|
| 111 | . S SUB=+SUBS
|
---|
| 112 | . S II=0
|
---|
| 113 | . F S II=$O(^LR(LRDFN,APSUB,LRIDT,2,I,SUB,II)) Q:II<1 D
|
---|
| 114 | .. S SNOMED=+$G(^LR(LRDFN,APSUB,LRIDT,2,I,SUB,II,0))
|
---|
| 115 | .. I 'SNOMED Q
|
---|
| 116 | .. S NE=NE+1
|
---|
| 117 | .. I SUB'=2 Q
|
---|
| 118 | .. S III=0
|
---|
| 119 | .. F S III=$O(^LR(LRDFN,APSUB,LRIDT,2,I,SUB,II,1,III)) Q:III<1 D
|
---|
| 120 | ... S ETIOL=+$G(^LR(LRDFN,APSUB,LRIDT,2,I,SUB,II,1,III,0))
|
---|
| 121 | ... I 'ETIOL Q
|
---|
| 122 | ... S NE=NE+1
|
---|
| 123 | Q
|
---|
| 124 | ;
|
---|
| 125 | ;===============================================================
|
---|
| 126 | MICRO(NE) ;
|
---|
| 127 | N AB,ABDN,ACC,ANUMS,DATE,ERR
|
---|
| 128 | N LRDFN,LRIDT,ORG,ORGNUM,SPEC,SUB
|
---|
| 129 | N TB,TBDN,TEMP,TEST,TESTS
|
---|
| 130 | ;DBIA #4179
|
---|
| 131 | K ANUMS,TESTS
|
---|
| 132 | D AANUMS(.ANUMS)
|
---|
| 133 | S LRDFN=.9
|
---|
| 134 | F S LRDFN=$O(^LR(LRDFN)) Q:LRDFN<1 D
|
---|
| 135 | . S TEMP=$G(^LR(LRDFN,0))
|
---|
| 136 | . I $P(TEMP,U,2)'=2 Q
|
---|
| 137 | . S LRIDT=0
|
---|
| 138 | . F S LRIDT=$O(^LR(LRDFN,"MI",LRIDT)) Q:LRIDT<1 D
|
---|
| 139 | .. S DATE=+$G(^LR(LRDFN,"MI",LRIDT,0))
|
---|
| 140 | .. I 'DATE Q
|
---|
| 141 | .. S SPEC=+$P(^LR(LRDFN,"MI",LRIDT,0),U,5)
|
---|
| 142 | .. I 'SPEC Q
|
---|
| 143 | .. S NE=NE+1
|
---|
| 144 | .. S ACC=$P(^LR(LRDFN,"MI",LRIDT,0),U,6)
|
---|
| 145 | .. I $L(ACC) D
|
---|
| 146 | ... D ACC(.TESTS,ACC,DATE,.ANUMS,.ERR)
|
---|
| 147 | ... I 'ERR D
|
---|
| 148 | .... S TEST=0
|
---|
| 149 | .... F S TEST=$O(TESTS(TEST)) Q:TEST<1 D
|
---|
| 150 | ..... S NE=NE+1
|
---|
| 151 | .. I $G(^LR(LRDFN,"MI",LRIDT,1)) D
|
---|
| 152 | ... S ORGNUM=0
|
---|
| 153 | ... F S ORGNUM=$O(^LR(LRDFN,"MI",LRIDT,3,ORGNUM)) Q:ORGNUM<1 D
|
---|
| 154 | .... S ORG=+$G(^LR(LRDFN,"MI",LRIDT,3,ORGNUM,0))
|
---|
| 155 | .... I 'ORG Q
|
---|
| 156 | .... S NE=NE+1
|
---|
| 157 | .... S ABDN=1
|
---|
| 158 | .... F S ABDN=$O(^LR(LRDFN,"MI",LRIDT,3,ORGNUM,ABDN)) Q:ABDN<1 D
|
---|
| 159 | ..... S AB=+$G(^TMP("LRPXSXRB",$J,"AB",ABDN))
|
---|
| 160 | ..... I 'AB Q
|
---|
| 161 | ..... S NE=NE+1
|
---|
| 162 | .. F SUB=6,9,12,17 D
|
---|
| 163 | ... I '$G(^LR(LRDFN,"MI",LRIDT,(SUB-1))) Q
|
---|
| 164 | ... S ORGNUM=0
|
---|
| 165 | ... F S ORGNUM=$O(^LR(LRDFN,"MI",LRIDT,SUB,ORGNUM)) Q:ORGNUM<1 D
|
---|
| 166 | .... S ORG=+$G(^LR(LRDFN,"MI",LRIDT,SUB,ORGNUM,0))
|
---|
| 167 | .... I 'ORG Q
|
---|
| 168 | .... S NE=NE+1
|
---|
| 169 | .... I SUB'=12 Q
|
---|
| 170 | .... S TBDN=2
|
---|
| 171 | .... F S TBDN=$O(^LR(LRDFN,"MI",LRIDT,12,ORGNUM,TBDN)) Q:TBDN<2 D
|
---|
| 172 | ..... S TB=+$G(^TMP("LRPXSXRB",$J,"TB",TBDN))
|
---|
| 173 | ..... I '$L(TB) Q
|
---|
| 174 | ..... S NE=NE+1
|
---|
| 175 | Q
|
---|
| 176 | ;
|
---|
| 177 | AANUMS(ANUMS) ;
|
---|
| 178 | N AA,ABREV K ANUMS
|
---|
| 179 | ;DBIA #4185
|
---|
| 180 | S AA=0
|
---|
| 181 | F S AA=$O(^LRO(68,AA)) Q:AA<1 D
|
---|
| 182 | . S ABREV=$P($G(^LRO(68,AA,0)),U,11)
|
---|
| 183 | . I $L(ABREV) S ANUMS(ABREV)=AA
|
---|
| 184 | Q
|
---|
| 185 | ;
|
---|
| 186 | ACC(TESTS,ACC,BDN,ANUMS,ERR) ;
|
---|
| 187 | ; returns TESTS from micro accession, ACC, BDN required
|
---|
| 188 | ; BDN is beginning date number
|
---|
| 189 | ; ANUMS is array of accession name numbers (avoids lookup on repeated calls)
|
---|
| 190 | N DIC,LRAA,LRAAB,LRAD,LRAN,TEST,X,Y K DIC,TESTS
|
---|
| 191 | S ERR=0
|
---|
| 192 | I '$L($G(ACC)) S ERR=1 Q
|
---|
| 193 | S LRAAB=$P(ACC," ")
|
---|
| 194 | I LRAAB="" Q
|
---|
| 195 | S BDN=$E($G(BDN))
|
---|
| 196 | I BDN'>1 S ERR=1 Q
|
---|
| 197 | S LRAN=+$P(ACC," ",3)
|
---|
| 198 | I 'LRAN S ERR=1 Q
|
---|
| 199 | S LRAA=+$G(ANUMS(LRAAB))
|
---|
| 200 | I 'LRAA D
|
---|
| 201 | . S DIC=68,DIC(0)="M"
|
---|
| 202 | . S X=LRAAB
|
---|
| 203 | . D ^DIC K DIC
|
---|
| 204 | . S LRAA=+Y
|
---|
| 205 | . S ANUMS(LRAAB)=LRAA
|
---|
| 206 | I LRAA'>0 S ERR=1 Q
|
---|
| 207 | S LRAD=BDN_$P(ACC," ",2)_"0000" ; yearly acc areas are assumed
|
---|
| 208 | S TEST=0
|
---|
| 209 | F S TEST=$O(^LRO(68,LRAA,1,LRAD,1,LRAN,4,TEST)) Q:TEST<1 D
|
---|
| 210 | . S TESTS(TEST)=TEST
|
---|
| 211 | Q
|
---|
| 212 | ;
|
---|