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

DDSU.m

Go to the documentation of this file.
  1. DDSU ;SFISC/MLH-PROCESS HELP ;14NOV2012
  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. LIST ;
  1. I '$D(DDS) D Q
  1. FM .;FileMan help - Non screen
  1. .N A0,A1,A2,A3,A4,DDSDIW,DDSDIY,Y
  1. .S A0=""
  1. .F S A0=$O(DDH(A0)) Q:'A0 S DDSDIW=$X,DDSDIY=$Y D W I $G(DDD)>2,DDSDIW-$X!(DDSDIY-$Y) D STP Q:$D(DTOUT)
  1. .I $G(DIPGM)="DICQ1",$G(DP),$G(DIC("?N",DP)) D
  1. ..N DIZ S DIZ=0 D T Q
  1. Q .I '$D(DTOUT) D SV S DDH=0 Q
  1. .K DDH D:'DTOUT Q
  1. ..K DTOUT N % S %=$G(DIPGM) I %'="DICQ1",%'="DIEQ" Q
  1. ..S DUOUT=1
  1. ;
  1. ;SCREENMAN HELP
  1. N DIR0A K DICQRETA,DICQRETV D SC I $D(DIR0A) S DICQRETV=DIR0A ;RETURN VALUE from MOUSE
  1. Q
  1. ;
  1. SC ;Screen Help, also from DDS2,DDSCOM,DDSMSG
  1. N A0,A1,A2,A3,A4,A5,A6,DDSB1,X,Y
  1. K DTOUT,DUOUT
  1. ;
  1. W $P(DDGLVID,DDGLDEL,9) S X=$G(IOM,80)-1 X DDGLZOSF("RM")
  1. I $D(DDQ)#2,DDQ<(IOSL-1),DDQ>DDSHBX!$P(DDQ,U,2)!$D(DDIOL) S DY=$P(DDQ,U),DX=$P(DDQ,U,2)
  1. E D CLRMSG^DDS S DY=DDSHBX
  1. X DDXY
  1. ;
  1. S:$G(DDD,5)=5 DDD=1
  1. S:$D(DDO) DDSB1=DDO
  1. S DDM=1,DDO=.5
  1. S (A0,DIY,X)="",A1=0,A5=$S(DDD=2:$O(DS(0)),1:$O(DDH(A0)))
  1. K A2,DDSQ
  1. ;Now loop thru the DDHs
  1. F D Q:DDO'<1!(X=U)!'A0!DIY!$D(DTOUT)!$D(DUOUT)!$D(DIR0A)
  1. SC1 .S A6=A0,A0=$O(DDH(A0)) S:A6="" A6=A0-1
  1. .I 'A0,DDD Q:DDD=1 Q:DD<DS
  1. .S A4=$O(DDH(+A0,""))
  1. .I A4'="X"!(DY'>DDSHBX) S DY=DY+1 X DDXY
  1. .I A4="E" D SC2 Q
  1. MORE .I $Y'<(IOSL-2)!'A0 D SC2 Q:DDO'<1!(X=U)!'A0!DIY!$D(DTOUT)!$D(DUOUT)!$D(DIR0A) S DY=DDSHBX+1,DX=0 X DDXY
  1. .Q:A4=""
  1. .D WR ;Write something!
  1. .I $Y'<(IOSL-1),'$D(DTOUT),'$D(DUOUT) D Q ;SEE IF WE ARE 2 LINES FROM BOTTOM
  1. ..W ! S A6=A0 D SC2 ;Now that we have written choice #A0, allow them to choose it
  1. ..W $P(DDGLVID,DDGLDEL,8) S X=0 X DDGLZOSF("RM") D REFRESH^DDSUTL
  1. ..W $P(DDGLVID,DDGLDEL,9) S X=$G(IOM,80)-1 X DDGLZOSF("RM")
  1. ..S DX=0,DY=DDSHBX X DDXY
  1. .S DY=$Y,DX=0
  1. I $D(DDSB1) S:DDO<1 DDO=DDSB1
  1. E K DDO
  1. ;
  1. S %=0
  1. S DDQ=$S(DY>(IOSL-1):IOSL-1,1:DY)_U_DX
  1. S:DDQ>DDSHBX DDM=1
  1. I $D(A2) K DDD,DDH,DDQ S %=A2 S:%'=1 DDSQ=1 D CLRMSG^DDS G QQ
  1. I $D(DDC),DDC'<0 D SV
  1. E K DDD,DDH S DDSQ=1 ;DDSQ means we're done with the Lister
  1. ;
  1. QQ S A0=$X S X=0 X DDGLZOSF("RM") W $P(DDGLVID,DDGLDEL,8) S $X=A0
  1. Q
  1. ;
  1. ;
  1. SC2 S DX=0,DY=IOSL-1 X DDXY
  1. I DDD=1 W $$EZBLD^DIALOG(8053) D READ Q ;DDD=1 means 'HIT RETURN to CONTINUE'
  1. W $$EZBLD^DIALOG(8081,A5_"-"_A6)_$P(DDGLCLR,DDGLDEL) ;CHOOSE 1-3 ...
  1. D READ I $G(DUOUT) K DDC G Q2
  1. I X]"",X<A5!(X>A6) W $C(7) G SC2
  1. E I X S:DDD["J" DDO=$O(DDH(X,"")) K DDC
  1. D CLRMSG^DDS
  1. S DDM=1
  1. Q2 S DIY=X,DY=DDSHBX
  1. Q
  1. ;
  1. ;
  1. SV ;Kill DDH array, but save the "ID" nodes and DDH itself
  1. K A1,A2
  1. S:$D(DDH("ID")) A1=DDH("ID")
  1. S:$D(DDH("ID",1)) A2=DDH("ID",1)
  1. K DDH S DDH=0
  1. S:$D(A1) DDH("ID")=A1
  1. S:$D(A2) DDH("ID",1)=A2
  1. Q
  1. ;
  1. ;
  1. ;
  1. Z ;From DICQ1,DIEQ
  1. D Y,T Q
  1. ;
  1. Y D:'$D(DISYS) OS^DII
  1. S $X=0,$Y=0
  1. S DIZ=$S($D(DILN)&'$D(DIR0):DILN,$G(IOSL):IOSL-3,1:21) ;**
  1. Q
  1. ;
  1. ;
  1. ;
  1. STP Q:$D(DD)[0!($D(DIY)[0) I DD+DIY'>79 W ?DD S DD=DD+DIY Q
  1. ;
  1. T W !?3 S DD=DIY+3
  1. I $Y>DIZ!'$Y D
  1. .N DDSUP S DDSUP=$$EZBLD^DIALOG(8053) W DDSUP R %Y:$G(DTIME,300) ;**
  1. . E S DTOUT=1 K DDD
  1. . W $C(13),$J("",$L(DDSUP)+3),$C(13) Q:$D(DTOUT)
  1. . I %Y[U S DTOUT=0 K DDD
  1. . D Y W ?3
  1. Q
  1. ;
  1. W S A4=$O(DDH(A0,"")) Q:A4="" Q:DDH(A0,A4)=""
  1. W:'$D(DDD) !
  1. I $G(DDD)=3,A4["T" K DDD
  1. ;
  1. WR I A4["X" D Q
  1. . N DDD,DIY,DDSXEC
  1. . S DDSXEC=DDH(A0,A4)
  1. . N DDH
  1. . I $D(DDS) N DDSID S DDSID=1 S DDQ=$S(DY>(IOSL-1):IOSL-1,1:DY)_U_DX
  1. . X DDSXEC
  1. ;
  1. I A4["Q" D Q
  1. . S A4=DDH(A0,A4),%=$P(A4,U,1)
  1. . I $D(DDS) D ASK Q
  1. . W $P(A4,U,2)
  1. . D YN^DICN
  1. ;
  1. I A4["T" D Q
  1. . I DDH(A0,A4)[$C(0) D
  1. .. S DX=$L(DDH(A0,A4),$C(0))-1
  1. .. X DDXY
  1. .. S DDH(A0,A4)=$TR(DDH(A0,A4),$C(0),"")
  1. . W DDH(A0,A4)
  1. ;
  1. I '$D(DDS),$G(DDD)'["J",A4'=+A4 Q
  1. I $D(DDS),$G(DDD)=2!($G(DDD)["J") W A0,?7
  1. ;
  1. CHOICE I $D(DDS),$G(DDSMOUSY) D
  1. .W " " D WRITMOUS(DDH(A0,A4))
  1. E W DDH(A0,A4)
  1. I $D(DDH("ID")) D S:$D(DUOUT) DIY=U
  1. . N DDD,DIY,DDSID
  1. . S DDSID=DDH("ID")
  1. . S:$D(DDH("ID",1))#2 DDSID(1)=DDH("ID",1)
  1. . N DDH
  1. . S:$D(DDSID(1))#2 DDH("ID",1)=DDSID(1) K DDSID(1)
  1. . S Y=A4
  1. . S:$D(DDS) DDQ=$S(DY>(IOSL-1):IOSL-1,1:DY)_U_$X
  1. . X DDSID
  1. Q
  1. ;
  1. ;
  1. WRITMOUS(C) ;MAKE THE CHOICES IN THE COMMAND AREA CLICKABLE!!
  1. W $P(DDGLCLR,DDGLDEL)
  1. N F
  1. F Q:$A(C)-32 S C=$E(C,2,999) W " " ;LEADING BLANKS
  1. F F=0:1 Q:$A(C,$L(C))-32 S C=$E(C,1,$L(C)-1)
  1. I $G(DDSMOUSY) S DDSMOUSE($Y,$X,$X+$L(C)-1,1)=C W $$HIGH(C)
  1. E W C
  1. W $J("",F)
  1. Q
  1. ;
  1. ;
  1. ;
  1. HIGH(X) ;also from DDSCOM, DDSR
  1. I '$D(DDGLVID) Q X
  1. Q $P(DDGLVID,DDGLDEL,10)_$P(DDGLVID,DDGLDEL,6)_X_$P(DDGLVID,DDGLDEL,10)
  1. ;
  1. ;
  1. ;
  1. ASK W $P(A4,U,2)_$S(%'>2:"? ",1:"")_$S(%>0&(%<3):$P($$EZBLD^DIALOG(7001),U,%)_"// ",1:"")_$P(DDGLCLR,DDGLDEL)
  1. S A2=0
  1. D READ I $G(DUOUT) S A2=-1 Q
  1. I %>2 S A2=X Q
  1. N %1 S %1=$$PRS^DIALOGU(7001,X) S:%1>0 X=$E($P(%1,U,2))
  1. K %1
  1. I "YyNn^"'[X W $C(7) X DDXY G ASK
  1. I X]"","^Nn"[X S A2=2 K DDC Q
  1. S:"Yy"[X A2=1
  1. S:X=""&(%]"") A2=+%
  1. S DDD=1
  1. Q
  1. ;
  1. ;
  1. READ ;RETURNS 'X' & 'DICQRETA'
  1. N DIR0P,DIR0KD,S
  1. X DDGLZOSF("EOFF")
  1. S (DIR0P,X)="" F D Q:'$D(S)
  1. .D READ^DIR01(.S) I S="TO" S DTOUT=1 K DCC G Q2
  1. .I $L(S)=1 S X=X_S W S Q
  1. .I S="CR" K S Q
  1. .I S="EX"!(S="SV")!(S="QT") S DICQRETA=S,DUOUT=1,X=U K S Q
  1. .I S="MOUSEDN" Q ;ignore down-click
  1. .I S="MOUSE" K S D MOUSE^DIR01 K:$G(DIR0A)?."??" DIR0A S DUOUT=1,DDSQ=1 Q
  1. .W *7
  1. X DDGLZOSF("EON")
  1. I X?1."^" S DUOUT=1,X=U Q
  1. D CLRMSG^DDS S DDM=1 Q
  1. ;
  1. ;
  1. ;
  1. ;
  1. H ;From DICN
  1. S:'$D(A1) A1="T"
  1. S DDH=$G(DDH)+1,DDH(DDH,A1)=DST
  1. K A1,DST
  1. D SC
  1. Q
  1. ;#8053 Press 'RETURN' to continue...
  1. ;#8081 Choose |from-to| or '^'...
  1. ;#7001 Yes^No