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

DIEFW.m

Go to the documentation of this file.
  1. DIEFW ;SFISC/DPC-FILER WP ;22MAR2006
  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. WP(DIEFF,DIEFIEN,DIEFFLD,DIEFWPFL,DIEFTSRC,DIEFOUT) ;(FILE,IENS,FIELD,FLAGS,wp_root,msg_root)
  1. WPX ;
  1. S DIEFWPFL=$G(DIEFWPFL)
  1. I '$D(DIQUIET) N DIQUIET S DIQUIET=1
  1. I '$D(DIFM) N DIFM S DIFM=1 D INIZE^DIEFU
  1. I DIEFIEN']"" D BLD^DIALOG(202,"IENS","IENS") G OUT
  1. I '$$VERFLG^DIEFU(DIEFWPFL,"AZK") G OUT
  1. I "@"'[DIEFTSRC I '$$VROOT^DIEFU(DIEFTSRC) G OUT
  1. I '$$VFILE^DIEFU(DIEFF,"D") G OUT
  1. I '$$VFIELD^DIEFU(DIEFF,DIEFFLD,"D") G OUT
  1. I $P($G(^DD(+$P(^DD(DIEFF,DIEFFLD,0),U,2),.01,0)),U,2)'["W" N EI S EI("FILE")=DIEFF,EI("FIELD")=DIEFFLD D BLD^DIALOG(726,.EI,.EI) G OUT
  1. I '$$VENTRY^DIEFU(DIEFF,DIEFIEN,"D") G OUT
  1. N DIEFNODE,DIEFSPOT S DIEFSPOT=" " D GLRF^DIOU(DIEFF,DIEFFLD,.DIEFNODE,.DIEFSPOT)
  1. N DEPTH,I,D
  1. S DEPTH=$L(DIEFIEN,",")-1
  1. F I=DEPTH:-1:1 S D="D"_(DEPTH-I) N @D S @D=$P(DIEFIEN,",",I)
  1. K DEPTH,D,I
  1. N DIEFLOCK I DIEFWPFL["K" D G:'$D(DIEFLOCK) OUT
  1. . S DIEFLOCK=DIEFNODE
  1. . D LOCK^DILF(DIEFLOCK) E D ;**147
  1. . . K DIEFLOCK
  1. . . N EXT S EXT("FILE")=DIEFF,EXT("IENS")=DIEFIEN D BLD^DIALOG(110,"",.EXT)
  1. D PUTWP(DIEFWPFL,DIEFTSRC,DIEFNODE)
  1. I $D(DIEFLOCK) L -@DIEFLOCK
  1. OUT I $G(DIEFOUT)]"" D CALLOUT^DIEFU(DIEFOUT)
  1. Q
  1. ;
  1. PUTWP(DIEFWPFL,DIEFTSRC,DIEFNODE) ;
  1. N BEGIN D WP^DIET(DIEFF,DIEFFLD,DIEFIEN,DIEFNODE)
  1. I "@"[DIEFTSRC K @DIEFNODE Q
  1. I '($D(@DIEFTSRC)\10) D BLD^DIALOG(305,DIEFTSRC,DIEFTSRC) Q
  1. I $G(DIEFWPFL)'["A" S BEGIN=1 K @DIEFNODE
  1. E S BEGIN=$$NUMLNS(DIEFNODE)+1 K:BEGIN=1 @DIEFNODE
  1. I $D(@DIEFTSRC@($O(@DIEFTSRC@(0)),0))#2 S DIEFWPFL=$G(DIEFWPFL)_"Z"
  1. N LINECNT,INLINE S INLINE=0
  1. F LINECNT=BEGIN:1 S INLINE=$O(@DIEFTSRC@(INLINE)) Q:INLINE'=+$P(INLINE,"E") D
  1. . I $G(DIEFWPFL)'["Z" S @DIEFNODE@(LINECNT,0)=$G(@DIEFTSRC@(INLINE))
  1. . E S @DIEFNODE@(LINECNT,0)=$G(@DIEFTSRC@(INLINE,0))
  1. S LINECNT=LINECNT-1
  1. S @DIEFNODE@(0)=U_U_LINECNT_U_LINECNT_U_DT
  1. Q
  1. ;
  1. NUMLNS(DIWPROOT) ;
  1. N DIWPLN
  1. S DIWPLN=$P($G(@DIWPROOT@(0)),U,3)
  1. Q:DIWPLN DIWPLN
  1. S DIWPLN=$O(@DIWPROOT@(""),-1)
  1. Q +DIWPLN