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

XDRDQUE.m

Go to the documentation of this file.
  1. XDRDQUE ;SF-IRMFO/IHS/OHPRD/JCM - START AND STOP DUPLICATE CHECKER SEARCH ;8/28/08 18:23
  1. ;;7.3;TOOLKIT;**23,47,113**;Apr 25, 1995;Build 3
  1. ;;Per VHA Directive 2004-038, this routine should not be modified.
  1. ;;
  1. START ;
  1. S XDRQFLG=0
  1. ;*** following commented line to be removed from Toolkit ver after 7.3
  1. ;S XDRDQUE("TASKMAN STATUS")=$P(@$Q(^%ZTSCH("STATUS","")),U,2) I XDRDQUE("TASKMAN STATUS")'="RUN" W !!,"Taskman does not seem to be running properly, Please notify your site manager.",!! G END
  1. S XDRDQUE("TASKMAN STATUS")=$$TM^%ZTLOAD
  1. I 'XDRDQUE("TASKMAN STATUS") W !!,"Taskman does not seem to be running properly, Please notify your site manager.",!! G END
  1. ; XT*7.3*113, variable XDRNOPT=1 makes option unavailable for the PATIENT file
  1. N XDRNOPT S XDRNOPT=1
  1. D FILE G:XDRQFLG END ; Asks user which file to check for dups
  1. D CHECK^XDRU1 G:XDRQFLG END ; Checks the Duplicate Resolution file
  1. D ASK G:XDRQFLG END ; Asks user what action and type of search
  1. D QUEUE G:XDRQFLG END ; Queues search
  1. I XDRDNSTA="r" D ASK3 D:'XDRQFLG QUEUE
  1. END D EOJ ; Clean up variables
  1. Q
  1. ;
  1. FILE ; EP - Called by XDRDCOMP,XDRDLIST,XDRDSCOR,XDRMADD,XDRCNT
  1. S XDRNOPT=0 ;XU*8.0*1017 - ADDED LINE TO RE-ENABLE PATIENT FILE SELECTION FOR IHS
  1. K DIC("B")
  1. K X S:$D(XDRFL) X=XDRFL
  1. S DIC(0)=$S($D(X):"Z",1:"QEAZ")
  1. S:'$D(DIC("A")) DIC("A")="Select file to be checked for duplicates: "
  1. ; If XDRNOPT=1, don't allow selection of PATIENT file.(new with XT*7.3*113)
  1. I $G(XDRNOPT)=1 D
  1. . S DIC("S")="I Y'=2"
  1. . W:'$D(ZTQUEUED) !,"* This option is not available for PATIENTS"
  1. . Q
  1. S DIC="^VA(15.1," D ^DIC K DIC,X
  1. I Y=-1 S XDRQFLG=1 G FILEX
  1. S XDRD(0)=Y(0),XDRD(0,0)=Y(0,0),XDRFL=$P(Y(0),U),PRIFILE=XDRFL K Y
  1. W:'$D(ZTQUEUED) !!
  1. FILEX Q
  1. ;
  1. ASK ;
  1. D DISP
  1. D ASK1 G:XDRQFLG ASKX
  1. I XDRDSTA="c"&($D(^VA(15.1,XDRFL,"APDTI"))) S XDRDPDTI="" W !!,"Since the Potential Duplicate Threshold has been raised",!,"I will only go through the Potential Duplicates and see if they",!,"meet the new threshold." G ASKX
  1. D:XDRDSTA="c"&('XDRQFLG) ASK2
  1. ASKX ;
  1. Q
  1. DISP ;
  1. D DISP^XDRDSTAT
  1. S XDRDSTA=$P(XDRD(0),U,2)
  1. S XDRDTYPE=$P(XDRD(0),U,5)
  1. Q
  1. ASK1 ;
  1. S:XDRDSTA']"" XDRDSTA="c"
  1. S DIR(0)="Y",DIR("A")="Do You wish to "_$S(XDRDSTA="h":"CONTINUE",XDRDSTA="e":"CONTINUE",XDRDSTA="r":"HALT",1:"RUN")_" "_$S(XDRDSTA="r":"this",XDRDSTA="h":"this",XDRDSTA="e":"this",1:"a")_" search (Y/N)"
  1. D ^DIR K DIR D OUT
  1. I 'XDRQFLG,'Y,$S(XDRDSTA="r":0,XDRDSTA="c":0,1:1) D S Y=0
  1. . S DIR(0)="Y",DIR("A")="Do you wish to mark this run COMPLETED (Y/N)",DIR("B")="NO" D ^DIR K DIR D OUT
  1. . I Y,'XDRQFLG S DIE="^VA(15.1,",DA=XDRFL,DR=".02////c" D ^DIE K DA,DIE,DR
  1. S:'Y XDRQFLG=1
  1. K XDRDNSTA
  1. S:'XDRQFLG XDRDNSTA=$S(XDRDSTA="h":"r",XDRDSTA="r":"h",1:"r")
  1. Q
  1. ASK2 ;
  1. K XDRDTYPE
  1. S DIR(0)="15.1,.05A",DIR("A")="Which type of Search do you wish to run ? (BASIC/NEW) "
  1. S DIR("B")="BASIC",DIR("?")="A 'BASIC' search starts at the beginning of the file. A 'NEW' search uses a cross-reference you specify to determine which entries to test."
  1. D ^DIR K DIR D OUT
  1. S XDRDTYPE=$S(Y="b":"BASIC",1:"NEW")
  1. I XDRDTYPE="BASIC" D
  1. . N DIR S DIR(0)="Y"
  1. . S DIR("A",1)="This process will take a **LONG** time (known to exceed 100 hours),"
  1. . S DIR("A",2)="but you CAN stop and restart the process when you want using"
  1. . S DIR("A")="the options OK"
  1. . D ^DIR S:Y'>0 XDRQFLG=1
  1. . Q
  1. Q
  1. ;
  1. ASK3 ;
  1. W !
  1. S DIR(0)="Y",DIR("A")="Do You wish to schedule a time to HALT this search (Y/N)"
  1. D ^DIR K DIR D OUT
  1. S:'Y XDRQFLG=1
  1. G:XDRQFLG ASK3X
  1. S XDRDNSTA="h"
  1. ASK3X Q
  1. ;
  1. QUEUE ;
  1. S ZTRTN="XDRDMAIN",ZTIO="",ZTDESC="Duplicate "_XDRD(0,0)_" Search"
  1. S:XDRDNSTA="h" ZTDESC="Halt "_ZTDESC
  1. S ZTSAVE("XDRFL")="" S:$D(XDRDPDTI) ZTSAVE("XDRDPDTI")=""
  1. S ZTSAVE("XDRDTYPE")="",ZTSAVE("XDRDNSTA")=""
  1. D ^%ZTLOAD
  1. S:'$D(ZTQUEUED) XDRQFLG=1
  1. K ZTSK
  1. QUEUEX Q
  1. ;
  1. OUT ;
  1. ; Common point to take care of DIR,DIC, and DIE calls
  1. I ($D(DTOUT))!($D(DUOUT))!($D(DIRUT)) K DTOUT,DUOUT,DIRUT S XDRQFLG=1
  1. Q
  1. EOJ ;
  1. K X,Y,XDRFL,XDRDNSTA,XDRDSTA,XDRQFLG,XDRD,XDRDPDTI,XDRDQUE
  1. Q