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

AGVQQFS.m

Go to the documentation of this file.
  1. AGVQQFS ;IHS/ASDS/SDH - SPLIT-OFF PRINT OF FACE SHEETS TO DISK FOR VERIQUEST ; [ 12/10/2001 7:39 AM ]
  1. ;;6.0;IHS PATIENT REGISTRATION;**15**;OCTOBER 11, 2000
  1. ;
  1. ; IHS/ASDS/SDH - AG*6*15 12/10/2001
  1. ; DIR acknowledges and thanks Mr. Floyd Dennis, Nashville Area
  1. ; Office, for the original routines and components.
  1. ; VeriQuest, a product of Envoy, helps identify ineligible
  1. ; claimants prior to claim submittal.
  1. ;
  1. Q:'($$VERSION^%ZOSV(1)["MSM") ; %HOSTCMD() used in SNDFILE.
  1. ;
  1. D INIT
  1. Q:AGVQQUIT
  1. ;
  1. D MAIN,^%ZISC,SNDFILE,EXIT
  1. Q
  1. ;
  1. INIT ;Primary routine initialization module.
  1. ;
  1. NEW AGVQ3
  1. S AGVQQFS="" ;Routine activity flag.
  1. S AGVQIL=6 ;Max length of filename index.
  1. S AGVQQUIT=1 ;QUIT flag.
  1. ;
  1. Q:'$D(^AGFAC(DUZ(2),3)) S AGVQ3=^(3)
  1. ;
  1. ; Target directory mandatory.
  1. S AGVQDIR=$P(AGVQ3,U,2)
  1. Q:'$L(AGVQDIR)
  1. ;
  1. ; VeriQuest target system ID mandatory.
  1. S AGVQID=$P(AGVQ3,U,6)
  1. Q:'$L(AGVQID)
  1. ;
  1. ; Communications protocol mandatory and not "NONE".
  1. S AGVQCP=$P(AGVQ3,U,7)
  1. Q:"N"[AGVQCP
  1. ;
  1. ; Number of days to wait between successive checks on a patient.
  1. S AGVQINTV=$S(+$P(AGVQ3,U,5)>0:$P(AGVQ3,U,5),1:30)
  1. ;
  1. ; Don't advance index/open file if Pat not recheck eligible.
  1. I $D(^AGVQP(DFN,0)) Q:$$FMDIFF^XLFDT(DT,$P(^AGVQP(DFN,0),U,2))<AGVQINTV
  1. ;
  1. ; Filename prefix.
  1. S AGVQPRE=$S($P(AGVQ3,U,4)]"":$P(AGVQ3,U,4),1:"VQ")
  1. ;
  1. ; VeriQuest target system logon.
  1. S AGVQUSR=$P(AGVQ3,U,8)
  1. ;
  1. ; VeriQuest target system password.
  1. S AGVQPWD=$P(AGVQ3,U,9)
  1. ;
  1. ;Get incremental file index number for file names.
  1. LOCK +^AGFAC(DUZ(2),3):5
  1. E Q
  1. S AGVQIDX=$P(^AGFAC(DUZ(2),3),U,3)+1,$P(^(3),U,3)=AGVQIDX
  1. LOCK -^AGFAC(DUZ(2),3)
  1. ;
  1. ;Pad/Format index number for file name, if necessary.
  1. I $L(AGVQIDX)<AGVQIL NEW P S P=AGVQIL-$L(AGVQIDX),P=$E("000000",1,P),AGVQIDX=P_AGVQIDX
  1. S AGVQFILE=AGVQPRE_AGVQIDX
  1. ;
  1. ;Open HFS device.
  1. D OPEN^%ZISH("AGVQOUT",AGVQDIR,AGVQFILE,"W")
  1. Q:POP
  1. ;
  1. S AGVQQUIT=0
  1. Q
  1. ;
  1. MAIN ;Primary execution module.
  1. ;
  1. U IO
  1. D START^AGFACE
  1. ; Ensure last line of file is complete.
  1. W !
  1. ;
  1. ;Update record of Patient's last Elig Check.
  1. ;
  1. ;If no previous entry, create one.
  1. I '$D(^AGVQP(DFN,0)) NEW DIC,X S DIC="^AGVQP(",X="`"_DFN,DIC(0)="LN",DIC("DR")=".02////"_DT D ^DIC Q
  1. ;
  1. ;Else update the previous entry.
  1. NEW DA,DIE,DR
  1. S DIE="^AGVQP(",DA=DFN,DR=".02////"_DT
  1. D ^DIE
  1. Q
  1. ;
  1. SNDFILE ;Transmit file to VeriQuest receiving system.
  1. NEW AGCMD
  1. ;
  1. S AGCMD="sendto"
  1. I ^%ZOSF("OS")["UNIX" S AGCMD="/usr/bin/"_AGCMD
  1. I AGVQCP="F",$L(AGVQUSR) S AGCMD=AGCMD_" -l "_AGVQUSR I $L(AGVQPWD) S AGCMD=AGCMD_":"_AGVQPWD
  1. S AGCMD=AGCMD_" "_AGVQID_" "_AGVQDIR_AGVQFILE
  1. I $$JOBWAIT^%HOSTCMD(AGCMD),'$D(ZTQUEUED) W !,"""sendto"" of Face Sheet to VeriQuest FAILED." I $$DIR^XBDIR("E","Press RETURN")
  1. Q
  1. ;
  1. EXIT ;Clean up before leaving.
  1. KILL AGVQDIR,AGVQFILE,AGVQIDX,AGVQIL,AGVQINTV,AGVQPRE,AGVQQUIT,AGVQID,AGVQUSR,AGVQPWD,AGVQQFS
  1. Q
  1. ;