Ignore:
Timestamp:
Dec 4, 2009, 8:26:01 PM (14 years ago)
Author:
George Lilly
Message:

WorldVistAEHR overlayed on FOIAVistA

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  
    11RGEVPRG ;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 3
     2 ;;1.0;CLINICAL INFO RESOURCE NETWORK;**3,12,19,32,35,43,44**;30 Apr 99;Build 8
    33 ;
    44MAIN ;
     
    108108 ;K ETYPE,CNT,IEN,IEN2,NUM,X,Y
    109109 ;Q
    110 PRGDUP ;Purge Duplicate Entries; retain most recent for all except types.
    111  ;**50 through remainder of module.
     110PRGDUP ; Purge Duplicate Entries; retain most recent for all types except 234.
    112111 S EXCTYP="",CNT=0
    113112 K ^TMP("RGEVDUP",$J)
    114113 F  S EXCTYP=$O(^RGHL7(991.1,"ADFN",EXCTYP)) Q:'EXCTYP  D
     114 . I EXCTYP=234 Q  ;**44 process 234s separately below
    115115 . S RGDFN=""
    116116 . F  S RGDFN=$O(^RGHL7(991.1,"ADFN",EXCTYP,RGDFN)) Q:'RGDFN  D
     
    119119 ... S IEN2=0
    120120 ... 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)
    123122 .... I '$D(^TMP("RGEVDUP",$J,RGDFN,EXCTYP)) D  Q
    124123 ..... 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
    126125 ..... 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
    129128 ...... S NUM="" S NUM=$P(^RGHL7(991.1,IEN,1,0),"^",4)
    130  ...... I NUM=1 S DIK="^RGHL7(991.1,",DA=OLDIEN D ^DIK K DIK,DA
    131  ...... I NUM>1 D
    132  ....... S DA(1)=OLDIEN,DA=OLDIEN2
     129 ...... I NUM=1 S DIK="^RGHL7(991.1,",DA=$P(OLDNODE,"^",2) D ^DIK K DIK,DA
     130 ...... I NUM>1 D
     131 ....... S DA(1)=$P(OLDNODE,"^",2),DA=$P(OLDNODE,"^",3)
    133132 ....... S DIK="^RGHL7(991.1,"_DA(1)_",1," D ^DIK K DIK,DA
     133 ...... S CNT=CNT+1
    134134 ...... 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
    137136 ...... 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
    144186PRGZZ ;Purge if name field is null (incomplete record)
    145187 ;Purge if -9 node exists, this indicates the record has been merged.
Note: See TracChangeset for help on using the changeset viewer.