Changeset 636 for FOIAVistA/tag/r/CLINICAL_INFO_RESOURCE_NETWORK-MRF-RGE--RG--RGED--RGUT--RGWB/RGEVPRG.m
- Timestamp:
- Dec 4, 2009, 8:26:01 PM (14 years ago)
- Location:
- FOIAVistA/tag/r
- Files:
-
- 1 edited
- 1 copied
Legend:
- Unmodified
- Added
- Removed
-
FOIAVistA/tag/r/CLINICAL_INFO_RESOURCE_NETWORK-MRF-RGE--RG--RGED--RGUT--RGWB/RGEVPRG.m
r628 r636 1 1 RGEVPRG ;BAY/ALS-OPTIONS TO PURGE MPI/PD EXCEPTIONS ;08/23/99 2 ;;1.0;CLINICAL INFO RESOURCE NETWORK;**3,12,19,32,35,43,44 ,50**;30 Apr 99;Build 32 ;;1.0;CLINICAL INFO RESOURCE NETWORK;**3,12,19,32,35,43,44**;30 Apr 99;Build 8 3 3 ; 4 4 MAIN ; … … 108 108 ;K ETYPE,CNT,IEN,IEN2,NUM,X,Y 109 109 ;Q 110 PRGDUP ;Purge Duplicate Entries; retain most recent for all except types. 111 ;**50 through remainder of module. 110 PRGDUP ; Purge Duplicate Entries; retain most recent for all types except 234. 112 111 S EXCTYP="",CNT=0 113 112 K ^TMP("RGEVDUP",$J) 114 113 F S EXCTYP=$O(^RGHL7(991.1,"ADFN",EXCTYP)) Q:'EXCTYP D 114 . I EXCTYP=234 Q ;**44 process 234s separately below 115 115 . S RGDFN="" 116 116 . F S RGDFN=$O(^RGHL7(991.1,"ADFN",EXCTYP,RGDFN)) Q:'RGDFN D … … 119 119 ... S IEN2=0 120 120 ... F S IEN2=$O(^RGHL7(991.1,"ADFN",EXCTYP,RGDFN,IEN,IEN2)) Q:'IEN2 D 121 .... I $P($G(^RGHL7(991.1,IEN,1,IEN2,0)),"^",5)=1 K ^RGHL7(991.1,"ADFN",EXCTYP,RGDFN,IEN,IEN2) Q ;exception processed 122 .... S EXCDT=$P($G(^RGHL7(991.1,IEN,0)),"^",3) ;incoming date 121 .... S EXCDT=$P(^RGHL7(991.1,IEN,0),"^",3) 123 122 .... I '$D(^TMP("RGEVDUP",$J,RGDFN,EXCTYP)) D Q 124 123 ..... S ^TMP("RGEVDUP",$J,RGDFN,EXCTYP)=EXCDT_"^"_IEN_"^"_IEN2 125 .... I $D(^TMP("RGEVDUP",$J,RGDFN,EXCTYP)) D ;duplicate exists; compare incoming to previous.124 .... I $D(^TMP("RGEVDUP",$J,RGDFN,EXCTYP)) D 126 125 ..... S OLDNODE=^TMP("RGEVDUP",$J,RGDFN,EXCTYP) 127 ..... S OLDDT=$P(OLDNODE,"^") ,OLDIEN=$P(OLDNODE,"^",2),OLDIEN2=$P(OLDNODE,"^",3)128 ..... I EXCDT>OLDDT D Q ;incoming date greater than previous? purge old, keep new.126 ..... S OLDDT=$P(OLDNODE,"^") 127 ..... I EXCDT>OLDDT D Q 129 128 ...... S NUM="" S NUM=$P(^RGHL7(991.1,IEN,1,0),"^",4) 130 ...... I NUM=1 S DIK="^RGHL7(991.1,",DA= OLDIEND ^DIK K DIK,DA131 ...... I NUM>1 D132 ....... S DA(1)= OLDIEN,DA=OLDIEN2129 ...... I NUM=1 S DIK="^RGHL7(991.1,",DA=$P(OLDNODE,"^",2) D ^DIK K DIK,DA 130 ...... E I NUM>1 D 131 ....... S DA(1)=$P(OLDNODE,"^",2),DA=$P(OLDNODE,"^",3) 133 132 ....... S DIK="^RGHL7(991.1,"_DA(1)_",1," D ^DIK K DIK,DA 133 ...... S CNT=CNT+1 134 134 ...... S ^TMP("RGEVDUP",$J,RGDFN,EXCTYP)=EXCDT_"^"_IEN_"^"_IEN2 135 ..... ; 136 ..... I OLDDT>EXCDT!(OLDDT=EXCDT) D ;previous date greater or equal incoming? purge new, keep old. 135 ..... I OLDDT>EXCDT!(OLDDT=EXCDT) D 137 136 ...... S NUM="" S NUM=$P(^RGHL7(991.1,IEN,1,0),"^",4) 138 ...... I NUM=1 S DIK="^RGHL7(991.1,",DA=IEN D ^DIK K DIK,DA 139 ...... I NUM>1 D DEL 140 ...... ; 141 K CNT,EXCDT,EXCTYP,IEN,IEN2,NUM,OLDDT,OLDIEN,OLDIEN2,OLDNODE,RGDFN,RGDT,^TMP("RGEVDUP") 142 Q 143 ; 137 ...... I NUM=1 S DIK="^RGHL7(991.1,",DA=IEN D ^DIK K DIK,DA S CNT=CNT+1 138 ...... E I NUM>1 D DEL 139 ; W !,CNT_" Duplicate entries" 140 ;Process PRIMARY VIEW REJECT (234) duplicates; purge if for SAME day. 141 ;**44 through remainder of module. 142 K ^TMP("RGDFNDT",$J) S RGDFN="" 143 F S RGDFN=$O(^RGHL7(991.1,"ADFN",234,RGDFN)) Q:'RGDFN D 144 .S IEN=0 145 .F S IEN=$O(^RGHL7(991.1,"ADFN",234,RGDFN,IEN)) Q:'IEN D 146 ..S IEN2=0 147 ..F S IEN2=$O(^RGHL7(991.1,"ADFN",234,RGDFN,IEN,IEN2)) Q:'IEN2 D 148 ...S EXCDT=$P(^RGHL7(991.1,IEN,0),"^",3) 149 ...;How many for each DFN? Store in ^TMP("RGDFNDT") 150 ...I '$D(^TMP("RGDFNDT",$J,RGDFN)) S ^TMP("RGDFNDT",$J,RGDFN)=0 151 ...I $D(^TMP("RGDFNDT",$J,RGDFN)) D 152 ....S ^TMP("RGDFNDT",$J,RGDFN)=^TMP("RGDFNDT",$J,RGDFN)+1 153 ....S ^TMP("RGDFNDT",$J,RGDFN,IEN,IEN2)=$P(EXCDT,".") ;date only/no time 154 ;If RGDFN has more than 1 exception, see if any are for same DAY. 155 ;Process the ^TMP("RGDFNDT",$J global to build LOC array. 156 I $D(^TMP("RGDFNDT",$J)) D 157 .S RGDFN="" 158 .F S RGDFN=$O(^TMP("RGDFNDT",$J,RGDFN)) Q:'RGDFN D 159 ..;If only one 234 exception for DFN ignore it. 160 ..I ^TMP("RGDFNDT",$J,RGDFN)=1 Q 161 ..;More than one for this DFN? How many for same day? 162 ..S IEN=0 K LOC 163 ..F S IEN=$O(^TMP("RGDFNDT",$J,RGDFN,IEN)) Q:'IEN D 164 ...S (IEN2,VAL)=0 165 ...F S IEN2=$O(^TMP("RGDFNDT",$J,RGDFN,IEN,IEN2)) Q:'IEN2 D 166 ....S VAL=$P(^TMP("RGDFNDT",$J,RGDFN,IEN,IEN2),"^") 167 ....I '$D(LOC(VAL)) S LOC(VAL)=0 168 ....I $D(LOC(VAL)) D 169 .....S LOC(VAL)=LOC(VAL)+1 170 .....S LOC(VAL,IEN,IEN2)="" 171 ..;Process the LOC array; contains numbers / day / DFN. 172 ..;If only 1 exception / day, keep it. 173 ..S RGDT=0 K CTR,TOT 174 ..F S RGDT=$O(LOC(RGDT)) Q:'RGDT D 175 ...S TOT=LOC(RGDT) 176 ...I TOT=1 K TOT Q ;only 1. 177 ...;More than 1, delete all except 1. 178 ...S TOT=TOT-1 ;leave 1; doesn't matter which - all are same day. 179 ...S IEN=0,CTR=0 180 ...F S IEN=$O(LOC(RGDT,IEN)) Q:'IEN D 181 ....I CTR=TOT Q 182 ....S CTR=CTR+1,IEN2=0 183 ....F S IEN2=$O(LOC(RGDT,IEN,IEN2)) Q:'IEN2 D DEL ;delete entry 184 K CNT,CTR,EXCDT,IEN,IEN2,LOC,NUM,OLDDT,OLDNODE,RGDFN,RGDT,TOT,VAL,^TMP("RGDFNDT") 185 Q 144 186 PRGZZ ;Purge if name field is null (incomplete record) 145 187 ;Purge if -9 node exists, this indicates the record has been merged.
Note:
See TracChangeset
for help on using the changeset viewer.