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

DIACLM.m

Go to the documentation of this file.
  1. DIACLM ;SLCISC/MKB - Policy Editor driver ;17FEB2017
  1. ;;22.2;VA FileMan;**8**;Jan 05, 2016;Build 19
  1. ;;Per VA Directive 6402, this routine should not be modified.
  1. ;
  1. EN ; -- main entry point for DIAC POLICY EDITOR
  1. S DITOP=$$SELECT Q:DITOP<1
  1. K ^TMP("DIACX",$J) S ^($J,+DITOP)=""
  1. D EN^VALM("DIAC POLICY EDITOR")
  1. Q
  1. ;
  1. HDR ; -- header code
  1. N I,X,Y,X0,F,DIACT
  1. S Y=0 F S Y=+$O(^DIAC(1.61,"D",+DITOP,Y)) Q:Y<1 D
  1. . S X0=$G(^DIAC(1.61,Y,0)),X=$G(^(1)) S:X="" X=$P(X0,U,3)
  1. . ; DIACT(file#,ien)=description or name
  1. . S DIACT(+$P(X0,U,2),Y)=X
  1. I '$O(DIACT(0)) S VALMHDR(1)="For: <no linked Application Action>" Q
  1. ;
  1. S (I,F)=0 F S F=$O(DIACT(F)) Q:F<1 D
  1. . S X="#"_F,Y=0
  1. . F S Y=$O(DIACT(F,Y)) Q:Y<1 S X=X_", "_DIACT(F,Y)
  1. . S I=I+1,VALMHDR(I)=$S(I=1:"For: ",1:" ")_$E(X,1,75)
  1. Q
  1. ;
  1. INIT ; -- init variables and list array
  1. N SEQ,STK K ^TMP("DIAC",$J)
  1. S VALMCNT=0,STK=0 D ADD(+DITOP)
  1. S STK=1,STK(STK)=+DITOP_"^0",STK(0)=0
  1. ; expand members, if in DIACX list
  1. I $D(^TMP("DIACX",$J,+DITOP)) S SEQ=0 F S SEQ=$O(^DIAC(1.6,+STK(STK),10,"AC",SEQ)) D @$S(SEQ'>0:"POP",1:"PROC") Q:STK<1
  1. S ^TMP("DIAC",$J,0)=VALMCNT_U_+DITOP
  1. S VALMBCK="R",VALMBG=1
  1. Q
  1. ;
  1. POP ; -- pop the stack
  1. S STK=STK-1,SEQ=$P(STK(STK),U,2)
  1. Q
  1. PROC ; -- process member
  1. N IEN S $P(STK(STK),U,2)=SEQ
  1. S IEN=+$O(^DIAC(1.6,+STK(STK),10,"AC",SEQ,0)) D ADD(IEN)
  1. ; push stack, if expanding policy/set
  1. I $D(^TMP("DIACX",$J,IEN)) S STK=STK+1,STK(STK)=IEN_"^0",SEQ=0
  1. Q
  1. ;
  1. ADD(DA) ; -- add row
  1. N PREFIX,X0,NAME,TYPE,EFFECT,LINE
  1. S PREFIX=$S('$O(^DIAC(1.6,DA,10,0)):" ",$D(^TMP("DIACX",$J,DA)):"-",1:"+")
  1. S X0=$G(^DIAC(1.6,DA,0)),NAME=$P(X0,U)
  1. I $P(X0,U,3) S NAME="("_NAME_")" ;disabled
  1. S NAME=PREFIX_NAME S:$G(STK) NAME=$$REPEAT^XLFSTR(" ",STK*2)_NAME
  1. S TYPE=$$EXTERNAL^DILFD(1.6,.02,,$P(X0,U,2))
  1. I $P(X0,U,7) S EFFECT=$P(^DIAC(1.62,+$P(X0,U,7),0),U,2)
  1. E S EFFECT=$$EXTERNAL^DILFD(1.6,.08,,$P(X0,U,8))
  1. S VALMCNT=VALMCNT+1,LINE=$$SETFLD^VALM1(VALMCNT,"","NUMBER")
  1. S LINE=$$SETFLD^VALM1(NAME,LINE,"NAME")
  1. S LINE=$$SETFLD^VALM1(TYPE,LINE,"TYPE")
  1. S LINE=$$SETFLD^VALM1(EFFECT,LINE,"RESULT")
  1. D SET^VALM10(VALMCNT,LINE,VALMCNT)
  1. S ^TMP("DIAC",$J,"IEN",VALMCNT)=DA_U_$P(X0,U)
  1. Q
  1. ;
  1. HELP ; -- help code
  1. S X="?" D DISP^XQORM1 W !!
  1. Q
  1. ;
  1. EXIT ; -- exit code
  1. K ^TMP("DIAC",$J),^TMP("DIACX",$J),DITOP
  1. Q
  1. ;
  1. EXPND ; -- expand code
  1. Q
  1. ;
  1. SELECT() ; -- select a policy/set
  1. N X,Y,DIC,DLAYGO
  1. S DIC=1.6,DLAYGO=1.6,DIC(0)="AEQL",DIC("A")="Select POLICY: "
  1. S DIC("?")="Select or create a policy to view and manage."
  1. D FULL^VALM1,^DIC
  1. S VALMBCK="R"
  1. Q Y