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

XQ33.m

Go to the documentation of this file.
  1. XQ33 ;SEA/AMF/JLI/MJM,ISD/HGW - REMOVE UNREFERENCED OPTIONS ;02/07/13 08:04
  1. ;;8.0;KERNEL;**49,73,46,614**;Jul 10, 1995;Build 12
  1. ;Per VHA Directive 2004-038, this routine should not be modified.
  1. ;
  1. DUO ; Entry point to delete unreferenced options from the option file.
  1. W !!,*7,"Do you want to delete unreferenced options" S %=2 D YN^DICN Q:%<0!(%=2) I '% W !,"Enter a 'Y' if you want an opportunity to delete orphan options which are not",!,"primary menus, secondary menus, or tasked." G DUO
  1. K ^TMP($J) S IOP="HOME" D ^%ZIS K IOP S XQENT=0
  1. R !!,"Select PACKAGE/OPTION name: ALL// ",X:DTIME S:'$T X=U S DIC=9.4,DIC(0)="EMZ" Q:X[U S:'$L(X) X="ALL"
  1. I X="ALL" S XQS="@z",XQE="zzz" G GET
  1. D ^DIC I Y>0 S XQS=$P(Y(0),U,2),XQE=XQS_"zzz" G GET
  1. S DIC=19,DIC(0)="QEMZ" D ^DIC G:Y<0 DUO S XQE=$P(Y(0),U,1),XQS=$E(XQE,1,$L(XQE)-1)_$C($A($E(XQE,$L(XQE))-1))_"zzz"
  1. GET W !,"Getting the list of unreferenced options..." D LP W ! I '$D(^TMP($J)) W "...NONE FOUND",! G OUT
  1. S XQI=0 F XQII=0:1 S DIC="^DIC(19,",DR="",XQI=$O(^TMP($J,XQI)) Q:XQI'>0 S DA=XQI W @IOF K S D EN^DIQ D DUO1 Q:XQSTOP
  1. G OUT
  1. DUO1 ;
  1. W !!,"Want to delete this option" S %=2,XQSTOP=0 D YN^DICN S:%<0 XQSTOP=1 Q:%<0!(%=2) I '% W !,"Enter a 'Y' if you want to remove this option from the option file" G DUO1
  1. S DIK="^DIC(19," D ^DIK
  1. Q
  1. LP S XQUI=0,XQJ=XQS F S XQJ=$O(^DIC(19,"B",XQJ)) Q:XQJ=""!XQUI!(XQJ]XQE) D LP1
  1. Q
  1. LP1 S XQI=0 F S XQI=$O(^DIC(19,"B",XQJ,XQI)) Q:XQI'>0!XQUI D LP2
  1. Q
  1. LP2 I "BOQSX"[$P(^DIC(19,XQI,0),U,4) K XQFL Q ;Special options
  1. S XQFL="" W:XQENT !,XQJ,?31 I '$D(^DIC(19,"AD",XQI)) W:XQENT "** no parents **" G PRI
  1. K XQFL S (XQK,XQLEN,XQNM)=0
  1. I XQENT F S XQK=$O(^DIC(19,"AD",XQI,XQK)) Q:XQK'>0 I $D(^DIC(19,XQK,0)) S L=$P(^DIC(19,XQK,0),U,1) S:XQLEN+$L(L)+2>34 XQLEN=0 W:'XQLEN&XQNM !?31 W:XQNM&XQLEN ", " W $P(^DIC(19,XQK,0),U,1) S XQLEN=XQLEN+$L(L)+2,XQNM=XQNM+1
  1. PRI ;
  1. I $D(^VA(200,"AP",XQI)) W:XQENT ?65,"-P-" K XQFL ;Primary Menu
  1. I $D(^VA(200,"AD",XQI)) W:XQENT ?70,"-S-" K XQFL ;Secondary Menu
  1. I $D(^DIC(19,XQI,200.9)),^(200.9)["y" W:XQENT&($P(^(200.9),U)["y") ?75,"-T-" K XQFL ;Taskman or don't delete
  1. E I $D(^DIC(19.2,"B",XQI)) W:XQENT ?75,"-T-" K XQFL ;Taskman
  1. I $D(XQFL) S ^TMP($J,XQI)=""
  1. Q
  1. OUT D ^%ZISC
  1. K XQUI,XQJ,XQS,XQE,XQK,XQLEN,XQNM,XQI,I,J,K,C,L,DIC,POP,X,XQDSH,XQENT,XQHDR,XQP,Y,ZISI,ZTDTH,ZTSAVE,ZTRTN,ZTDESC,%A1,S,XQFL
  1. K %Y,A,D0,D1,DA,DIW,DIWF,DIWL,DIWR,DIWT,DK,DL,DN,DR,DX,XQSTOP
  1. Q
  1. LIST ; Entry point to list unreferenced options from the OPTION file (#19).
  1. ; ZEXCEPT: XUAXQE,XUAXQS ;global within this routine
  1. W !!,"LIST UNREFERENCED OPTIONS",!!,"Print unreferenced options for a selected package."
  1. S IOP="HOME" D ^%ZIS K IOP
  1. R !!,"Select PACKAGE/OPTION name: ALL// ",X:DTIME S:'$T X=U S DIC=9.4,DIC(0)="EMZ" Q:X[U S:'$L(X) X="ALL"
  1. I X="ALL" S XUAXQS="@z",XUAXQE="zzz" G QUEUE
  1. D ^DIC I Y>0 S XUAXQS=$P(Y(0),U,2),XUAXQE=XUAXQS_"zzz" G QUEUE
  1. S DIC=19,DIC(0)="QEMZ"
  1. D ^DIC G:Y<0 EXIT
  1. S XUAXQE=$P(Y(0),U,1),XUAXQS=$E(XUAXQE,1,$L(XUAXQE)-1)_$C($A($E(XUAXQE,$L(XUAXQE))-1))_"zzz"
  1. QUEUE ;
  1. S %ZIS="MQ" K IOP,ZTIO,ZTSAVE D ^%ZIS G EXIT:POP
  1. I IO'=IO(0) S ZTSAVE("XUA*")="",ZTRTN="START^XQ33",ZTDESC="List Unreferenced Options" D ^%ZTLOAD,^%ZISC,EXIT Q
  1. START ;
  1. N XUATDY,XUAHDR,XUANAME,XUAIEN
  1. S U="^"
  1. S Y=DT D DD^%DT S XUATDY=Y
  1. S XUAHDR(1)="LIST UNREFERENCED OPTIONS "_XUATDY
  1. S XUAHDR(2)="Option Name Menu Text"
  1. S XUAHDR(3)=$$REPEAT^XLFSTR("-",80)
  1. K ^TMP($J)
  1. D GETO
  1. D PRINT
  1. D EXIT
  1. Q
  1. GETO ; Gets the unreferenced option
  1. ; ZEXCEPT: XUAFLAG,XUAIEN,XUANAME,XUAXQS ;global within this routine
  1. W !,"Getting the list of unreferenced options..."
  1. ; Build the list
  1. S XUANAME=XUAXQS
  1. F S XUANAME=$O(^DIC(19,"B",XUANAME)) Q:XUANAME=""!(XUANAME]XUAXQE) D
  1. .S XUAIEN=0
  1. .F S XUAIEN=$O(^DIC(19,"B",XUANAME,XUAIEN)) Q:XUAIEN'>0 D
  1. ..I "BOQSX"[$P($G(^DIC(19,XUAIEN,0)),U,4) K XUAFLAG Q
  1. ..S XUAFLAG="DATA"
  1. ..I $D(^DIC(19,"AD",XUAIEN)) K XUAFLAG ;Menu Item
  1. ..I $D(^VA(200,"AP",XUAIEN)) K XUAFLAG ;Primary Menu
  1. ..I $D(^VA(200,"AD",XUAIEN)) K XUAFLAG ;Secondary Menu
  1. ..I $D(^DIC(19,XUAIEN,200.9)),^(200.9)["y" K XUAFLAG ;Taskman or don't delete
  1. ..E I $D(^DIC(19.2,"B",XUAIEN)) K XUAFLAG ;Taskman
  1. ..I $D(XUAFLAG) S ^TMP($J,XUANAME)=XUAIEN
  1. Q
  1. PRINT ; Print the list
  1. ; ZEXCEPT: I,IOF,IOSL,IOST,X,XUAIEN,XUANAME ;global within this routine
  1. N END,XUAPAGE,XUALINE,XUATEXT
  1. S END=0,XUAPAGE=1
  1. D HEAD
  1. I '$D(^TMP($J)) W "...NONE FOUND",! Q
  1. S XUANAME=""
  1. F S XUANAME=$O(^TMP($J,XUANAME)) Q:XUANAME=""!END D
  1. .S XUAIEN=^TMP($J,XUANAME)
  1. .S XUATEXT=$P($G(^DIC(19,XUAIEN,0)),U,2)
  1. .W !,XUANAME,?32,$E(XUATEXT,1,47)
  1. .S XUALINE=XUALINE+1
  1. .I XUALINE=IOSL D
  1. ..I $E(IOST,1,2)'="C-" D
  1. ...W @IOF
  1. ...S XUAPAGE=XUAPAGE+1 D HEAD
  1. ..I $E(IOST,1,2)="C-" D
  1. ...W !,"Press RETURN to continue or '^' to exit: "
  1. ...R X:DTIME
  1. ...S END='$T!(X="^") Q:END
  1. ...S XUAPAGE=XUAPAGE+1 D HEAD
  1. I $E(IOST,1,2)="C-" D
  1. .S XUALINE=XUALINE+1
  1. .F I=XUALINE:1:IOSL W !
  1. .W !,"Press RETURN to exit: "
  1. .R X:DTIME
  1. Q
  1. ; ZEXCEPT: XUAHDR,XUALINE,XUAPAGE ;used within this routine
  1. W !,XUAHDR(1)," PAGE ",XUAPAGE,!,XUAHDR(2),!,XUAHDR(3)
  1. S XUALINE=4
  1. Q
  1. EXIT ;
  1. D ^%ZISC
  1. K XUAFLAG
  1. K I,J,K,C,L,DIC,POP,X,Y,ZISI,ZTDTH,ZTSAVE,ZTRTN,ZTDESC,%A1,S
  1. K %Y,A,D0,D1,DA,DIW,DIWF,DIWL,DIWR,DIWT,DK,DL,DN,DR,DX
  1. Q