Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: XDRDFPD

XDRDFPD.m

Go to the documentation of this file.
  1. XDRDFPD ;IHS/OHPRD/LAB - find all potential duplicates for an entry in a file ;6/9/08 11:26
  1. ;;7.3;TOOLKIT;**113**;Apr 25, 1995;Build 9
  1. ;;Per VHA Directive 2004-038, this routine should not be modified.
  1. START ;
  1. INIT ;Initialization
  1. W !,"This option will collect all Potential Duplicates for an entry in a file.",!,"It will then add any pairs found to the Duplicate Record file.",!
  1. D PROCESS
  1. G:XDRQFLG END
  1. D INFORM
  1. END D EOJ
  1. Q
  1. PROCESS ;
  1. K XDRD
  1. ; Flag XDRNOPT makes FILE^XDRDQUE not allow selection of PATIENT file - XT*7.3*113
  1. N XDRNOPT S XDRNOPT=1
  1. S XDRQFLG=0,XDRDTYPE="b"
  1. S DIC("A")="Find Potential Duplicates for entry in what file: " D FILE^XDRDQUE
  1. G:XDRQFLG PROCESSX
  1. D SETUP
  1. S XDRGL=^DIC(XDRFL,0,"GL")
  1. I '$D(XDRCD) D LKUP Q:XDRQFLG
  1. W:'$D(ZTQUEUED) !!,"Hold On... This may take a little while...",!
  1. ;
  1. D POSDUPS^XDRDMAIN
  1. D:$D(^TMP("XDRD",$J,XDRFL)) CHECK
  1. PROCESSX Q
  1. EOJ ;clean up
  1. K XDRQFLG,XDRD,XDRDSCOR,XDRDTEST,XDRFL,XDRGL,XDRCD,XDRCD2,XDRDCNT,XDRDMAIN,XDRDTYPE,XDRDUP,XDRDFPD
  1. K ^TMP("XDRD",$J)
  1. Q
  1. EN ;Entry Point (caller must pass XDRCD,XDRFL)
  1. I '$D(XDRCD) S XDRERR=15 D ^XDREMSG G ENX
  1. I '$D(XDRFL) S XDRERR=14 D ^XDREMSG G ENX
  1. I '$D(^VA(15.1,XDRFL,0)) S XDRERR=6 D ^XDREMSG G ENX
  1. D PROCESS
  1. ENX ;
  1. K XDRDFPD,XDRDSCOR,XDRD,XDRDTEST,XDRGL,XDRCD2,XDRDCNT,XDRDMAIN,XDRDTYPE,XDRDUP
  1. Q
  1. LKUP ;
  1. S DIC=XDRGL,DIC(0)="AEMQ",DIC("A")="Find Potential Duplicates for "_$P(^DIC(XDRFL,0),U)_": "
  1. D ^DIC K DIC,DA
  1. I Y=-1 S XDRQFLG=1 G LKUPX
  1. S XDRCD=+Y
  1. LKUPX ;
  1. Q
  1. SETUP ;
  1. S XDRD("COLLECTION ROUTINE")=$S($P($P(XDRD(0),U,9),"-",2)]"":$P($P(XDRD(0),U,9),"-")_"^"_$P($P(XDRD(0),U,9),"-",2),1:U_$P(XDRD(0),U,9))
  1. I '$D(XDRD("DMAILGRP")),$D(XDRD(0)),$P(XDRD(0),U,11),$D(^XMB(3.8,$P(XDRD(0),U,11),1,"B")) F XDRI=0:0 S XDRI=$O(^XMB(3.8,$P(XDRD(0),U,11),1,"B",XDRI)) Q:'XDRI S XDRD("DMAILGRP",XDRI)=""
  1. K XDRI
  1. D ^XDRDSCOR ; Sets up Duplicate Test Scores
  1. SETUPX ;
  1. Q
  1. CHECK ;check for duplicates and add to Duplicate record file
  1. F XDRCD2=0:0 S XDRCD2=$O(^TMP("XDRD",$J,XDRFL,XDRCD2)) Q:'XDRCD2!(XDRQFLG) D CHECK^XDRDMAIN
  1. Q
  1. INFORM ;
  1. S XDRDFPD("PAIR")="",%=0 F S XDRDFPD("PAIR")=$O(^VA(15,"APOT",$P(XDRGL,"^",2),XDRDFPD("PAIR"))) Q:XDRDFPD("PAIR")="" D
  1. .I $P(XDRDFPD("PAIR"),U)=XDRCD!($P(XDRDFPD("PAIR"),U,2)=XDRCD) S %=%+1,XDRDFPD("FOUND",%)=XDRDFPD("PAIR")
  1. .Q
  1. I '$D(XDRDFPD("FOUND")) W !!,"NO Potential Duplicates were found for ",$P(^DIC(XDRFL,0),U),": ",$P(@(XDRGL_XDRCD_",0)"),U) Q
  1. W !!,"The following ",$P(^DIC(XDRFL,0),U)," entry(ies) are now in the Duplicate ",!,"Record file as Potential Duplicates to ",!,$P(^DIC(XDRFL,0),U),": ",$P(@(XDRGL_XDRCD_",0)"),U)
  1. S X="" F S X=$O(XDRDFPD("FOUND",X)) Q:X="" D
  1. .W !?20,$S($P(XDRDFPD("FOUND",X),U)=XDRCD:$P(@(XDRGL_$P(XDRDFPD("FOUND",X),U,2)_",0)"),U),1:$P(@(XDRGL_$P(XDRDFPD("FOUND",X),U)_",0)"),U))
  1. .Q
  1. Q