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

DDGF3.m

Go to the documentation of this file.
  1. DDGF3 ;SFISC/MKO-Block Viewer Page ;02:49 PM 12 Oct 1994
  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. ;Variables used:
  1. ; DDGFBV = flag indicating we're on block viewer page
  1. ; DDGFORIG(B) = original $Y^original $X for all blocks that were
  1. ; selected, since they were potentially moved
  1. ; DDGFEBV = flag that can be set to exit block viewer page
  1. ; after a block has been selected
  1. ;
  1. N DDGFE
  1. S DDGFE=0,DDGFBV=1 K DDGFORIG,DDGFEBV
  1. ;
  1. D PAINT,RC(DY,DX)
  1. F S Y=$$READ W:$T(@Y)="" $C(7) D:$T(@Y)]"" @Y D:$D(DDGFMSG) MSG^DDGF() Q:DDGFE!$G(DDGFEBV)
  1. D CLEANUP
  1. Q
  1. ;
  1. LNU I DY>$P(DDGFLIM,U) D RC(DY-1,DX)
  1. Q
  1. LND I DY<$P(DDGFLIM,U,3) D RC(DY+1,DX)
  1. Q
  1. CHR I DX<$P(DDGFLIM,U,4) D RC(DY,DX+1)
  1. Q
  1. CHL I DX>$P(DDGFLIM,U,2) D RC(DY,DX-1)
  1. Q
  1. ELR N Y,X
  1. S Y=DY,X=DX
  1. F D Q:Y=""!(X]"")
  1. . S X=$O(@DDGFREF@("BKRC",DDGFWIDB,Y,X))
  1. . S:X="" Y=$O(@DDGFREF@("BKRC",DDGFWIDB,Y))
  1. D:X]"" RC(Y,X)
  1. Q
  1. ELL N Y,X
  1. S Y=DY,X=DX
  1. F D Q:Y=""!(X]"")
  1. . S X=$O(@DDGFREF@("BKRC",DDGFWIDB,Y,X),-1)
  1. . S:X="" Y=$O(@DDGFREF@("BKRC",DDGFWIDB,Y),-1)
  1. D:X]"" RC(Y,X)
  1. Q
  1. TBR I DX<$P(DDGFLIM,U,4) D
  1. . D RC(DY,$S(DX+5'<$P(DDGFLIM,U,4):$P(DDGFLIM,U,4),1:DX+5))
  1. E I DY<$P(DDGFLIM,U,3) D RC(DY+1,$P(DDGFLIM,U,2))
  1. Q
  1. TBL I DX>$P(DDGFLIM,U,2) D
  1. . D RC(DY,$S(DX-5'>$P(DDGFLIM,U,2):$P(DDGFLIM,U,2),1:DX-5))
  1. E I DY>$P(DDGFLIM,U) D RC(DY-1,$P(DDGFLIM,U,4))
  1. Q
  1. ;
  1. SCT I DY>$P(DDGFLIM,U) D RC($P(DDGFLIM,U),DX)
  1. Q
  1. SCB I DY<$P(DDGFLIM,U,3) D RC($P(DDGFLIM,U,3),DX)
  1. Q
  1. SCR I DX<$P(DDGFLIM,U,4) D RC(DY,$P(DDGFLIM,U,4))
  1. Q
  1. SCL I DX>$P(DDGFLIM,U,2) D RC(DY,$P(DDGFLIM,U,2))
  1. Q
  1. SELECT ;
  1. Q:'$D(@DDGFREF@("BKRC",DDGFWIDB,DY))
  1. G SELECT^DDGFBSEL
  1. ;
  1. SAVE ;Save data
  1. G SAVE^DDGFSV
  1. ;
  1. BKADD ;Add a new block
  1. G ADD^DDGFBK
  1. ;
  1. HBKADD ;Add a header block
  1. G ADD^DDGFHBK
  1. ;
  1. HELP ;Invoke help screens
  1. D ^DDGFH,REFRESH^DDGF,RC(DY,DX)
  1. Q
  1. ;
  1. TO W $C(7)
  1. QUIT ;
  1. EXIT ;
  1. VIEW S DDGFE=1
  1. Q
  1. CLEANUP ;
  1. S DDGFDY=DY,DDGFDX=DX
  1. D CLOSE^DDGLIBW(DDGFWIDB,1)
  1. I $D(DDGFORIG) D
  1. . N A
  1. . S A=$$AREA^DDGLIBW(DDGFWID)
  1. . D DESTROY^DDGLIBW(DDGFWID,1)
  1. . D CREATE^DDGLIBW(DDGFWID,A,$P(@DDGFREF@("F",DDGFPG),U,3)]"")
  1. . D BLK^DDGFUPDB(.DDGFORIG)
  1. E D OPEN^DDGLIBW(DDGFWID)
  1. S DY=IOSL-6,DX=46 X IOXY W $J("",13)
  1. S DY=IOSL-1,DX=0 X IOXY W $P(DDGLCLR,DDGLDEL)_$P(DDGLVID,DDGLDEL)_"<PF1>Q=Quit <PF1>E=Exit <PF1>S=Save <PF1>V=Block Viewer <PF1>H=Help"_$P(DDGLVID,DDGLDEL,10)
  1. D RC(DDGFDY,DDGFDX)
  1. K DDGFDY,DDGFDX,DDGFBV,DDGFEBV,DDGFORIG
  1. Q
  1. ;
  1. PAINT ;Paint block displayer window
  1. N B,C,S,DY,DX
  1. D CLOSE^DDGLIBW(DDGFWID,1)
  1. S DY=IOSL-6,DX=46 X IOXY W "BLOCK VIEWER"
  1. S DY=IOSL-1,DX=0 X IOXY W $P(DDGLCLR,DDGLDEL)_$P(DDGLVID,DDGLDEL)_"<PF1>V=Main Screen <PF1>H=Help"_$P(DDGLVID,DDGLDEL,10)
  1. I $$EXIST^DDGLIBW(DDGFWIDB) D FOCUS^DDGLIBW(DDGFWIDB) Q
  1. D CREATE^DDGLIBW(DDGFWIDB,$P(DDGFLIM,U,1,2)_U_($P(DDGFLIM,U,3)-$P(DDGFLIM,U,1)+1)_U_($P(DDGFLIM,U,4)-$P(DDGFLIM,U,2)+1),$P(@DDGFREF@("F",DDGFPG),U,3)]"")
  1. S B="" F S B=$O(@DDGFREF@("F",DDGFPG,B)) Q:B="" D
  1. . S C=@DDGFREF@("F",DDGFPG,B)
  1. . S S=$P(C,U,4)
  1. . S:$P(C,U,3)'<IOM S=$E(S,1,IOM-$P(C,U,2)-1)
  1. . D WRITE^DDGLIBW(DDGFWIDB,S,$P(C,U)-$P(DDGFLIM,U),$P(C,U,2)-$P(DDGFLIM,U,2))
  1. Q
  1. ;
  1. RC(DDGFY,DDGFX) ;Update status line, reset DX and DY, move cursor
  1. N S
  1. I DDGFR D
  1. . S DY=IOSL-6,DX=IOM-9,S="R"_(DDGFY+1)_",C"_(DDGFX+1)
  1. . X IOXY W S_$J("",7-$L(S))
  1. S DY=DDGFY,DX=DDGFX X IOXY
  1. Q
  1. ;
  1. READ() N S,Y
  1. F R *Y:DTIME D C Q:Y'=-1
  1. Q Y
  1. ;
  1. C I Y<0 S Y="TO" Q
  1. S S=""
  1. C1 S S=S_$C(Y)
  1. I DDGF("IN")'[(U_S) D I Y=-1 W $C(7) Q
  1. . I $C(Y)'?1L S Y=-1 Q
  1. . S S=$E(S,1,$L(S)-1)_$C(Y-32) S:DDGF("IN")'[(U_S_U) Y=-1
  1. ;
  1. I DDGF("IN")[(U_S_U),S'=$C(27) S Y=$P(DDGF("OUT"),U,$L($P(DDGF("IN"),U_S_U),U)) Q
  1. R *Y:5 G:Y'=-1 C1 W $C(7)
  1. Q