[613] | 1 | AUPNLKD ; IHS/CMI/LAB - IHS PATIENT LOOKUP, QUICK DUPE CHECK ;1/29/07 09:05
|
---|
| 2 | ;;1.0;PCE PATIENT CARE ENCOUNTER;**167**;Aug 12, 1996;Build 22
|
---|
| 3 | ;SEA/AMF-ALB/RMO - CHECK FOR DUPLICATES ON NEW PATIENT ENTRY JUNE 1987
|
---|
| 4 | ;
|
---|
| 5 | ; Upon exiting this routine AUPD will be the number of potential
|
---|
| 6 | ; duplicates found, and the array AUPD(n) will contain those
|
---|
| 7 | ; potential duplicate where 'n' is the patient's DFN.
|
---|
| 8 | ;
|
---|
| 9 | START ;
|
---|
| 10 | D INIT ; Initialization
|
---|
| 11 | D:$E(DOB,6,7)'="00" DOB ; Check patients with similar DOBs
|
---|
| 12 | D:SSN'="" SSN ; Check patients with similar SSNs
|
---|
| 13 | D EOJ
|
---|
| 14 | Q
|
---|
| 15 | ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
---|
| 16 | ;
|
---|
| 17 | DOB ; CHECK SAME DOB + TRANSPOSED DAY
|
---|
| 18 | F AUPIN=0:0 S AUPIN=$O(^DPT("ADOB",DOB,AUPIN)) Q:AUPIN="" D DOB1
|
---|
| 19 | S AUPDOB=DOB,DOB=$E(DOB,1,5)_$E(DOB,7)_$E(DOB,6)
|
---|
| 20 | F AUPIN=0:0 S AUPIN=$O(^DPT("ADOB",DOB,AUPIN)) Q:AUPIN="" D DOB1
|
---|
| 21 | S DOB=AUPDOB
|
---|
| 22 | Q
|
---|
| 23 | ;
|
---|
| 24 | DOB1 ;
|
---|
| 25 | W "."
|
---|
| 26 | Q:$D(^VA(15,"AFR","DPT(",AUPIN)) ; Quit if verified duplicate
|
---|
| 27 | S AUPV=^DPT(AUPIN,0),AUPV1=$P(AUPV,U,1)
|
---|
| 28 | Q:$P(AUPV,U,18)="I"
|
---|
| 29 | Q:$P(AUPV,U,2)'=SEX
|
---|
| 30 | I AUPV1?.E1P.E S AUPT=AUPV1 D PUNC S AUPV1=AUPT
|
---|
| 31 | S AUPV1L=$P(AUPV1,",",1),AUPV1F=$P($P(AUPV1,",",2)," ",1),AUPV1M=$P($P(AUPV1,",",2)," ",2)
|
---|
| 32 | I ($E(AUPNL,1,2)_$E(AUPNF,1,2))=($E(AUPV1L,1,2)_$E(AUPV1F,1,2)) D HIT Q
|
---|
| 33 | I AUPNF=AUPV1F D HIT Q
|
---|
| 34 | I AUPNL=AUPV1L,AUPNM=AUPV1F D HIT Q
|
---|
| 35 | I AUPNL=AUPV1L,AUPV1M=AUPNF D HIT Q
|
---|
| 36 | I $D(^DPT(AUPIN,.01)) D ALIAS
|
---|
| 37 | Q:SSN=""
|
---|
| 38 | S AUPV1=$P(AUPV,U,9)
|
---|
| 39 | Q:AUPV1=""
|
---|
| 40 | S AUPF=0 F K=1:1:9 Q:(AUPF>2) I $E(AUPV1,K)'=$E(SSN,K) S AUPF=AUPF+1
|
---|
| 41 | I AUPF<3 D HIT Q
|
---|
| 42 | Q
|
---|
| 43 | ;
|
---|
| 44 | ALIAS ;
|
---|
| 45 | F AUPAN=0:0 S AUPAF=1,AUPAN=$O(^DPT(AUPIN,.01,AUPAN)) Q:AUPAN'=+AUPAN I $D(^(AUPAN,0)) D ALIAS2 I AUPAF D HIT Q
|
---|
| 46 | K AUPAN,AUPAF
|
---|
| 47 | Q
|
---|
| 48 | ;
|
---|
| 49 | ALIAS2 ;
|
---|
| 50 | S AUPV1=$P(^(0),U,1)
|
---|
| 51 | S AUPV1L=$P(AUPV1,",",1),AUPV1F=$P($P(AUPV1,",",2)," ",1),AUPV1M=$P($P(AUPV1,",",2)," ",2)
|
---|
| 52 | I AUPV1L=AUPNL Q
|
---|
| 53 | I AUPV1F=AUPNF Q
|
---|
| 54 | I AUPV1M=AUPNF Q
|
---|
| 55 | I AUPNF=AUPV1M Q
|
---|
| 56 | S AUPAF=0
|
---|
| 57 | Q
|
---|
| 58 | ;
|
---|
| 59 | ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
---|
| 60 | ;
|
---|
| 61 | SSN ; CHECK SSNS WITH SAME FIRST FIVE DIGITS
|
---|
| 62 | S AUPSSN=$E(SSN,1,5)_"0000" F AUPSSN=0:0 S AUPSSN=$O(^DPT("SSN",AUPSSN)) Q:AUPSSN=""!($E(AUPSSN,1,5)'=$E(SSN,1,5)) F AUPIN=0:0 S AUPIN=$O(^DPT("SSN",AUPSSN,AUPIN)) Q:AUPIN="" D SSN1
|
---|
| 63 | Q
|
---|
| 64 | ;
|
---|
| 65 | SSN1 ;
|
---|
| 66 | W "."
|
---|
| 67 | Q:$D(AUPD(AUPIN)) ; Quit if already found
|
---|
| 68 | Q:$D(^VA(15,"AFR","DPT(",AUPIN)) ; Quit if verified duplicate
|
---|
| 69 | S AUPV1=^DPT(AUPIN,0)
|
---|
| 70 | Q:$P(AUPV1,U,2)'=SEX
|
---|
| 71 | I $P(AUPV1,",",1)=$P(AUPN,",",1)!($E(AUPV1,1,2)_$E($P(AUPV1,",",2),1,2)=($E(AUPN,1,2)_$E($P(AUPN,",",2),1,2))) S AUPD(AUPIN)="",AUPD=AUPD+1 Q
|
---|
| 72 | S AUPV=$E(SSN,6,9),AUPV1=$E(AUPSSN,6,9)
|
---|
| 73 | S AUPF=0 F K=1:1:4 Q:(AUPF>2) I $E(AUPV,K)'=$E(AUPV1,K) S AUPF=AUPF+1
|
---|
| 74 | I AUPF<3 D HIT Q
|
---|
| 75 | Q
|
---|
| 76 | ;
|
---|
| 77 | ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
---|
| 78 | ;
|
---|
| 79 | HIT ; POTENTIAL DUPLICATE FOUND
|
---|
| 80 | Q:$D(AUPD(AUPIN))
|
---|
| 81 | S AUPD(AUPIN)=""
|
---|
| 82 | S AUPD=AUPD+1
|
---|
| 83 | Q
|
---|
| 84 | ;
|
---|
| 85 | ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
---|
| 86 | ;
|
---|
| 87 | INIT ; INITIALIZATION
|
---|
| 88 | K AUPD
|
---|
| 89 | S AUPD=0,AUPN=AUPNM
|
---|
| 90 | I $P(AUPN,",",1)?.E1P.E S AUPT=$P(AUPN,",",1) D PUNC S AUPN=AUPT_","_$P(AUPN,",",2,99)
|
---|
| 91 | S AUPNL=$P(AUPN,",",1),AUPNF=$P($P(AUPN,",",2)," ",1),AUPNM=$P($P(AUPN,",",2)," ",2)
|
---|
| 92 | Q
|
---|
| 93 | ;
|
---|
| 94 | PUNC ;
|
---|
| 95 | F I=1:1:$L(AUPT) I $E(AUPT,I)?1P,$E(AUPT,I)'=",",$E(AUPT,I)'=" " S AUPT=$E(AUPT,1,I-1)_$E(AUPT,I+1,99)
|
---|
| 96 | Q
|
---|
| 97 | ;
|
---|
| 98 | ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
---|
| 99 | ;
|
---|
| 100 | EOJ ;
|
---|
| 101 | K AUPAF,AUPAN,AUPDOB,AUPF,AUPIN,AUPN,AUPNF,AUPNL,AUPNM,AUPSSN,AUPT,AUPV,AUPV1,AUPV1F,AUPV1L,AUPV1M
|
---|
| 102 | Q
|
---|