File:  [Coherent Logic Development] / freem_fileman / USER / DIEH.m
Revision 1.1: download - view: text, annotated - select for diffs
Mon Apr 28 14:13:20 2025 UTC (3 months ago) by snw
Branches: MAIN
CVS tags: HEAD
Restructure repository

    1: DIEH	;SFISC/DPC-HELP ;11/9/94  14:23
    2: 	;;21.0;VA FileMan;;Dec 28, 1994
    3: 	;Per VHA Directive 10-93-142, this routine should not be modified.
    4: GET(DIEHF,DIEHIEN,DIEHFLD,DIEHFLG,DIEHOUT)	;
    5: GETX	;
    6: 	N DIEHZ,DIEHD,DIEHEXIT,DIEHPF,DIEHUFLG
    7: 	S DIEHUFLG=$G(DIEHFLG)
    8: 	I '$G(DIQUIET) N DIQUIET S DIQUIET=1
    9: 	I '$G(DIFM) N DIFM S DIFM=1 D INIZE^DIEFU
   10: 	I $G(DIEHIEN)]"" N DA,C,D,I D DA^DIEFU(DIEHIEN,.DA) S C=$L(DIEHIEN,",")-1 F I=1:1:C S D="D"_(C-I) N @D S @D=$P(DIEHIEN,",",I)
   11: 	S DIEHZ=$$ZERO(DIEHF,DIEHFLD) I DIEHZ=0 G GETOUT
   12: 	S DIEHD=$P(DIEHZ,U,2)
   13: 	D BLDFLGS G:$G(DIEHEXIT) GETOUT
   14: 	I DIEHD["P" S DIEHPF=+$P(DIEHD,"P",2)
   15: 	S DIHELP=+$O(^TMP("DIHELP",$J,""),-1)
   16: 	I DIEHUFLG["F",DIEHFLD=.01 D PXREFS(DIEHF,DIEHFLD)
   17: 	I DIEHUFLG["H" D HPROMPT(DIEHF,DIEHFLD)
   18: 	I DIEHUFLG["X" D XHLP(DIEHF,DIEHFLD)
   19: 	I DIEHUFLG["D" D DESCR(DIEHF,DIEHFLD)
   20: 	I DIEHUFLG["P" D SCRNDES(DIEHF,DIEHFLD)
   21: 	I DIEHUFLG["C" D SCRNDES(DIEHF,DIEHFLD)
   22: 	I DIEHUFLG["T" N DIEHDT S DIEHDT=$P($P($P(DIEHZ,U,5,99),"%DT=""",2),"""",1)  D DT^DIEH1(DIEHDT)
   23: 	I DIEHUFLG["S" D SCRNCD(DIEHF,DIEHFLD,DIEHZ)
   24: 	I DIEHUFLG["U" D UNSCRNCD(DIEHZ)
   25: 	I DIEHUFLG["V" D VPMSG(DIEHF,DIEHFLD)
   26: 	I DIEHUFLG["B",DIEHUFLG'["b" D BLD^DIALOG(9115)
   27: 	I DIEHUFLG["M" D BLD^DIALOG(9116)
   28: 	I DIEHUFLG["G",DIEHFLG'["g",$G(DIEHPF) D FOLLOW(DIEHPF,DIEHFLG)
   29: 	I '$G(DIHELP) K DIHELP
   30: GETOUT	I $D(DIEHOUT) D CALLOUT^DIEFU(DIEHOUT)
   31: 	Q
   32: 	;
   33: BLDFLGS	;
   34: 	N A1,A2,C1,C2,DIEHGFLG
   35: 	S C1="HX",C2="XD",(A1,A2)=""
   36: 	I DIEHD S DIEHF=+DIEHD,DIEHFLD=.01,DIEHD=$P(^DD(DIEHF,.01,0),U,2)
   37: 	I DIEHD["W" S (A1,A2)="HD"
   38: 	E  I DIEHD["D" S (A1,A2)="T"
   39: 	E  I DIEHD["S" S A1="CS",A2="S",DIEHGFLG="U"
   40: 	E  I DIEHD["P" S A1="PG",A2="G",DIEHGFLG="F"
   41: 	E  I DIEHD="V" S A1="VB",A2="VMB"
   42: 	I DIEHFLD=.01,'$D(^DD(DIEHF,0,"UP")) S A1=A1_"F",A2=A2_"F"
   43: 	I DIEHUFLG'["r",'$$VERFLG^DIEFU(DIEHUFLG,"bgA?"_C1_C2_A1_A2_$G(DIEHGFLG)) S DIEHEXIT=1
   44: 	I DIEHUFLG["??" S DIEHUFLG=DIEHUFLG_C2_A2
   45: 	E  I DIEHUFLG["?" S DIEHUFLG=DIEHUFLG_C1_A1
   46: 	E  I DIEHUFLG["A" S DIEHUFLG=$TR(C1_C2_A1_A2,"S","U")
   47: 	Q
   48: 	;
   49: ZERO(F,D)	;
   50: 	I '$$VFILE^DIEFU(F,"D") Q 0
   51: 	I '$$VFIELD^DIEFU(F,D,"D") Q 0
   52: 	Q ^DD(F,D,0)
   53: 	;
   54: BN	;Insert blank node.
   55: 	S:DIHELP DIHELP=DIHELP+1,^TMP("DIHELP",$J,DIHELP)=""
   56: 	Q
   57: 	;
   58: HPROMPT(F,D)	;
   59: 	N T
   60: 	S T=$G(^DD(F,D,3))
   61: 	I $L(T) D
   62: 	. D BN
   63: 	. S DIHELP=DIHELP+1,^TMP("DIHELP",$J,DIHELP)=T
   64: 	Q
   65: 	;
   66: XHLP(DIEHF,DIEHFLD)	;
   67: 	;DA() and D0,D1,etc. passed thru symbol table.
   68: 	N DIEHXH S DIEHXH=$G(^DD(DIEHF,DIEHFLD,4))
   69: 	I $L(DIEHXH) D
   70: 	. D BN
   71: 	. N DIEHECNT S DIEHECNT=$G(DIERR)
   72: 	. N DDIOLFLG S DDIOLFLG="H" X DIEHXH
   73: 	. I DIEHECNT'=$G(DIERR) D HKERR^DILIBF(DIEHF,"",DIEHFLD,"Xecutable Help")
   74: 	Q
   75: 	;
   76: DESCR(F,D)	;
   77: 	N L
   78: 	S L=$P($G(^DD(F,D,21,0)),U,3)
   79: 	I L D
   80: 	. D BN
   81: 	. N I F I=1:1:L S DIHELP=DIHELP+1,^TMP("DIHELP",$J,DIHELP)=^DD(F,D,21,I,0)
   82: 	. Q
   83: 	Q
   84: 	;
   85: PXREFS(DIEHF,DIEHFLD)	;
   86: 	N DIF,DIFD,DIEHROOT,DIEHIXID,DIEHIXP,DIEHIXNM,DIFULL
   87: 	S DIEHIXP=$$FILENM^DIEFU(DIEHF)_" "
   88: 	D GETIXNM(DIEHF,.DIEHIXNM)
   89: 	S DIF=""
   90: 	F  S DIF=$O(DIEHIXNM(DIF)) Q:DIF=""  D  Q:$D(DIFULL)
   91: 	. S DIFD=""
   92: 	. F  S DIFD=$O(DIEHIXNM(DIF,DIFD)) Q:DIFD=""  D  Q:$D(DIFULL)
   93: 	. . I $L(DIEHIXP)+$L(DIEHIXNM(DIF,DIFD))>240 D  Q
   94: 	. . . S DIEHIXP=DIEHIXP_", etc     "
   95: 	. . . S DIFULL=1
   96: 	. . S DIEHIXP=DIEHIXP_DIEHIXNM(DIF,DIFD)_", or "
   97: 	S DIEHIXP=$E(DIEHIXP,1,$L(DIEHIXP)-5)
   98: 	D BLD^DIALOG(9105,DIEHIXP)
   99: 	Q
  100: 	;
  101: GETIXNM(DIEHF,DIEHIXNM)	;
  102: 	S DIEHROOT=$$ROOT^DIQGU(DIEHF,"",1)
  103: 	S DIEHIXID="Az"
  104: 	F  S DIEHIXID=$O(@DIEHROOT@(DIEHIXID)) Q:DIEHIXID=""  D
  105: 	. N DIEHIXF,DIEHIXFD
  106: 	. S DIEHIXF=$O(^DD(DIEHF,0,"IX",DIEHIXID,"")) Q:DIEHIXF=""
  107: 	. S DIEHIXFD=$O(^DD(DIEHF,0,"IX",DIEHIXID,DIEHIXF,"")) Q:DIEHIXFD=""
  108: 	. S DIEHIXNM(DIEHIXF,DIEHIXFD)=$$FLDNM^DIEFU(DIEHIXF,DIEHIXFD)
  109: 	Q
  110: 	;
  111: SCRNDES(F,D)	;
  112: 	N T
  113: 	S T=$G(^DD(F,D,12))
  114: 	I $L(T) D
  115: 	. D BN
  116: 	. S DIHELP=DIHELP+1,^TMP("DIHELP",$J,DIHELP)=T
  117: 	. Q
  118: 	Q
  119: 	;
  120: SCRNCD(F,D,DIEHZ)	;
  121: 	N S,DIC,Y,A,T,I
  122: 	I $P(DIEHZ,U,2)'["*" D UNSCRNCD(DIEHZ) Q
  123: 	S S=$G(^DD(F,D,12.1))
  124: 	I S="" D UNSCRNCD(DIEHZ) Q
  125: 	D CODES
  126: 	I $D(Y) D
  127: 	. N DIEHECNT S DIEHECNT=$G(DIERR)
  128: 	. X S
  129: 	. D BLD^DIALOG(9101)
  130: 	. F I=1:1:T D
  131: 	. . S Y=$P(Y(I),";",1)
  132: 	. . X DIC("S") I  D CODESOUT
  133: 	. I DIEHECNT'=$G(DIERR) D HKERR^DILIBF(F,"",D,"set of codes screen")
  134: 	Q
  135: UNSCRNCD(DIEHZ)	;
  136: 	N Y,A,T,I
  137: 	D CODES
  138: 	I $D(Y) D
  139: 	. D BLD^DIALOG(9101)
  140: 	. F I=1:1:T D CODESOUT
  141: 	. Q
  142: 	Q
  143: 	;
  144: CODES	;
  145: 	S A=$P(DIEHZ,U,3)
  146: 	I A]"" D
  147: 	. S T=$L(A,";")-1
  148: 	. F I=1:1:T S Y(I)=$P(A,";",I)
  149: 	. Q
  150: 	Q
  151: 	;
  152: CODESOUT	;
  153: 	S DIHELP=DIHELP+1,^TMP("DIHELP",$J,DIHELP)=$P(Y(I),":",1)_"        "_$P(Y(I),":",2)
  154: 	Q
  155: 	;
  156: VPMSG(F,D)	;
  157: 	N I,N,P,L
  158: 	D BLD^DIALOG(9103)
  159: 	S I=0 F  S I=$O(^DD(F,D,"V",I)) Q:I="B"  S N=^(I,0) D
  160: 	. S P(1)=$P(N,U,4),P(2)=$P(N,U,2),L=$S(I=1:"",1:"S")
  161: 	. D BLD^DIALOG(9117,.P,.P,"",L)
  162: 	. Q
  163: 	Q
  164: 	;
  165: FOLLOW(DIEHPF,DIEHUFLG)	;
  166: 	D GET(DIEHPF,"",.01,DIEHUFLG_"r")
  167: 	Q

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>