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

DICA3.m

Go to the documentation of this file.
  1. DICA3 ;SEA/TOAD-VA FileMan: Updater, Adder ;17SEP2009
  1. ;;22.0;VA FileMan;**147,162**;Mar 30, 1999;Build 21
  1. ;Per VHA Directive 2004-038, this routine should not be modified.
  1. ;
  1. CREATE(DIFILE,DIEN,DIROOT,DIVALUE) ;If DIEN comes in with a leading number, use it as IEN
  1. N DIENP S DIENP=","_$P(DIEN,",",2,999)
  1. S DIEN=$P(DIEN,",")
  1. N DINEXT S DINEXT=$P($G(@(DIROOT_"0)")),U,3)
  1. I DINEXT="" D I $G(DIERR) S DIEN="" Q
  1. . N DIHEADER S DIHEADER=$$HEADER^DIDU2(.DIFILE,DIENP)
  1. . I '$G(DIERR) S @(DIROOT_"0)")=DIHEADER
  1. GETNUM ;
  1. N DINUM,DIFAUD S DINUM=DIEN'="",DIFAUD=0 I 'DINUM S DIEN=DINEXT\1 I $D(^DIA(DIFILE,"B")) S DIFAUD=DIFILE
  1. N DIFAIL,DIOUT S DIFAIL=0,DIOUT=0 F D I DIOUT!DIFAIL Q
  1. . I 'DINUM S DIEN=DIEN+1 I $D(@(DIROOT_"DIEN)")) Q ;**GFT LOOK BEFORE LOCKING
  1. . I DIFAUD,+$O(^DIA(DIFAUD,"B",DIEN_","))=DIEN!$D(^(DIEN)) Q ;**GFT DON'T PICK AN ALREADY-AUDITED NUMBER
  1. . D LOCK^DILF(DIROOT_"DIEN)") ;**147
  1. . I '$T S DIFAIL=DINUM Q:'DIFAIL D ERR(110,DIFILE,DIEN_DIENP) Q
  1. ZERO . I $D(@(DIROOT_"DIEN,0)")) L -@(DIROOT_"DIEN)") D Q
  1. . . S DIFAIL=DINUM I 'DIFAIL Q
  1. . . D ERR(302,DIFILE,DIEN_DIENP)
  1. . S DIOUT=1
  1. I DIFAIL S DIEN="" Q
  1. SETREC ;
  1. N DICAFILE M DICAFILE=DIFILE N DIFILE
  1. S @(DIROOT_"DIEN,0)")=DIVALUE
  1. D LOCK^DILF(DIROOT_"0)") ;**147
  1. S $P(^(0),U,3,4)=DIEN_U_($P(@(DIROOT_"0)"),U,4)+1)
  1. I L -@(DIROOT_"0)")
  1. S DIEN=DIEN_DIENP
  1. D XA^DIEFU(DICAFILE,DIEN,.01,DIVALUE,"")
  1. D INDEX^DIKC(DICAFILE,DIEN,.01,"","SC")
  1. Q
  1. ;
  1. PROOT(DIFILE,DIEN) ;
  1. ; ENTRY POINT--return the global root of a subfile's parent
  1. ; extrinsic function, all passed by value
  1. N DIENP S DIENP=$P(DIEN,",",2,999)
  1. Q $NA(@$$ROOT^DILFD($$PARENT(DIFILE),DIENP,1)@(+DIENP))
  1. ;
  1. PARENT(DIFILE) ;
  1. ; ENTRY POINT--return the file number of a subfile's parent
  1. ; extrinsic function, all passed by value
  1. Q $G(^DD(DIFILE,0,"UP"))
  1. ;
  1. SUBFILE(DIFILE) ;
  1. ; ENTRY POINT--return whether the file is a subfile
  1. ; extrinsic function, passed by value
  1. Q $D(^DD(DIFILE,0,"UP"))#2
  1. ;
  1. ERR(DIERN,DIFILE,DIIENS,DIFIELD,DI1,DI2,DI3) ;
  1. ; error logging procedure
  1. N DIPE
  1. N DI F DI="FILE","IENS","FIELD",1:1:3 S DIPE(DI)=$G(@("DI"_DI))
  1. D BLD^DIALOG(DIERN,.DIPE,.DIPE)
  1. Q