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

DICUF.m

Go to the documentation of this file.
  1. DICUF ;SEA/TOAD,SF/TKW-FileMan: Lookup Tools, Files ;12APR2008
  1. ;;22.2;VA FileMan;;Jan 05, 2016;Build 42
  1. ;;Per VA Directive 6402, this routine should not be modified.
  1. ;;Submitted to OSEHRA 5 January 2015 by the VISTA Expertise Network.
  1. ;;Based on Medsphere Systems Corporation's MSC FileMan 1051.
  1. ;;Licensed under the terms of the Apache License, Version 2.0.
  1. ;
  1. ;
  1. FILE(DIFILE,DIFIEN,DIFLAGS) ;
  1. ; retrieve and calculate info about indexed file
  1. ;
  1. F1 ; set and check source file number.
  1. ;
  1. S DIFILE=+$G(DIFILE) I 'DIFILE D ERR(202,"","","","","file") Q
  1. ;
  1. F2 ; get the file's .01 definition; quit & error if bad
  1. ;
  1. N DINODE S DINODE=$G(^DD(DIFILE,.01,0))
  1. I DINODE="" D ERR($S('$D(^DD(DIFILE)):401,1:406),DIFILE) Q
  1. I $P(DINODE,U,2)["W" D ERR(407,DIFILE) Q
  1. ;
  1. F3 ; set and check the Lister's IENS parameter
  1. ;
  1. S DIFIEN=$G(DIFIEN) I DIFIEN="" S DIFIEN=","
  1. I '$$IEN^DIDU1(DIFIEN) D Q
  1. . I '$$IEN^DIDU1(DIFIEN_",") D ERR(202,"","","","","IENS") Q
  1. . E D ERR(304,"",DIFIEN) Q
  1. I $P(DIFIEN,",")'="" D ERR(306,"",DIFIEN) Q
  1. ;
  1. F4 ; calculate the source file's global root (open & closed)
  1. ;
  1. S DIFILE(DIFILE)=$$ROOT^DIQGU(DIFILE,DIFIEN,1,1) Q:$G(DIERR)
  1. I DIFILE(DIFILE)'?1"^"1A.ANP,DIFILE(DIFILE)'?1"^%".ANP D Q ;JIM SELF --ALLOW LC GLOBAL NAMES
  1. . D ERR(402,DIFILE,DIFIEN,"",DIFILE(DIFILE))
  1. S DIFILE(DIFILE,"O")=$$OREF^DIQGU(DIFILE(DIFILE))
  1. Q
  1. ;
  1. SCREEN(DIFLAGS,DIFILE,DISCREEN) ;
  1. ; Set user defined and whole file screen variables.
  1. ;
  1. I $G(DISCREEN("S"))="" S DISCREEN("S")=$G(DISCREEN)
  1. I $G(DISCREEN("V"))]"",$G(DISCREEN("V",1))']"" S DISCREEN("V",1)=DISCREEN("V")
  1. S DISCREEN("F")="" I DIFLAGS'["U" D
  1. . Q:$P($G(@DIFILE(DIFILE)@(0)),U,2)'["s"
  1. . S DISCREEN("F")=$G(^DD(DIFILE,0,"SCR"))
  1. . Q
  1. Q
  1. ;
  1. VPDATA(DINDEX,DISCREEN) ; Add variable pointer info to DINDEX array for executing DIC("V") type screen
  1. N DISUB,F,I,F1,F2,G,Y
  1. F DISUB=1:1:DINDEX("#") I $G(DISCREEN("V",DISUB))]"" D
  1. . S F1=DINDEX(DISUB,"FILE"),F2=DINDEX(DISUB,"FIELD") Q:'F1!('F2)
  1. . F F=0:0 S F=$O(^DD(F1,F2,"V","B",F)) Q:'F D
  1. . . S I=$O(^DD(F1,F2,"V","B",F,0)) Q:'I
  1. . . S Y(0)=$G(^DD(F1,F2,"V",I,0)) Q:Y(0)=""
  1. . . X DISCREEN("V",DISUB) Q:'$T
  1. . . S G=$G(^DIC(F,0,"GL")) Q:G=""
  1. . . S DINDEX(DISUB,"VP",G)="" Q
  1. . Q
  1. Q
  1. ;
  1. ERR(DIERN,DIFILE,DIIENS,DIFIELD,DIROOT,DI1,DI2,DI3) ;
  1. ;
  1. ; error logging procedure
  1. ;
  1. E1 N DIPE,P
  1. N DI F DI="FILE","IENS","FIELD","ROOT",1:1:3 D
  1. . S P=$G(@("DI"_DI)) Q:P=""
  1. . S DIPE(DI)=P
  1. D BLD^DIALOG(DIERN,.DIPE,.DIPE)
  1. Q
  1. ;