DIPKI003 ; ; 30-MAR-1999
 ;;22.0;VA FileMan;;Mar 30, 1999;Build 1
 ;Per VHA Directive 10-93-142, this routine should not be modified.
 Q:'DIFQ(9.4)  F I=1:2 S X=$T(Q+I) Q:X=""  S Y=$E($T(Q+I+1),4,999),X=$E(X,4,999) S:$A(Y)=126 I=I+1,Y=$E(Y,2,999)_$E($T(Q+I+1),5,99) S:$A(Y)=61 Y=$E(Y,2,999) X NO E  S @X=Y
Q Q
 ;;^DD(9.4,913,23,0)
 ;;=^^2^2^2921202^^^^
 ;;^DD(9.4,913,23,1,0)
 ;;=  A call to this routine gets inserted, by DIFROM at the beginning of the
 ;;^DD(9.4,913,23,2,0)
 ;;=NAMESPACE_INIT routine, before the EN entry point.
 ;;^DD(9.4,913,"DT")
 ;;=2940606
 ;;^DD(9.4,913.5,0)
 ;;=*ENVIRONMENT CHECK DONE DATE^D^^PRE;2^S %DT="ESTXR" D ^%DT S X=Y K:Y<1 X
 ;;^DD(9.4,913.5,3)
 ;;=
 ;;^DD(9.4,913.5,21,0)
 ;;=^^3^3^2921202^
 ;;^DD(9.4,913.5,21,1,0)
 ;;=This is the date/time that the ENVIRONMENT CHECK routine last ran. When an
 ;;^DD(9.4,913.5,21,2,0)
 ;;=INIT is run at a target site, and it contains an ENVIRONMENT CHECK
 ;;^DD(9.4,913.5,21,3,0)
 ;;=routine, this field is updated automatically.
 ;;^DD(9.4,913.5,"DT")
 ;;=2940603
 ;;^DD(9.4,914,0)
 ;;=*POST-INITIALIZATION ROUTINE^F^^INIT;1^K:$L(X)>8!($L(X)<3)!'(X?1UP.UN) X
 ;;^DD(9.4,914,.1)
 ;;=DEVELOPERS ROUTINE TO BRANCH TO AT END OF 'INIT' ROUTINE
 ;;^DD(9.4,914,3)
 ;;=Enter the name of the developer's post-initialization routine (3-8 characters).
 ;;^DD(9.4,914,21,0)
 ;;=^^2^2^2900730^^^^
 ;;^DD(9.4,914,21,1,0)
 ;;=The name of the developer's routine which is run immediately after the
 ;;^DD(9.4,914,21,2,0)
 ;;=installation of the package.
 ;;^DD(9.4,914,23,0)
 ;;=^^3^3^2900730^^^
 ;;^DD(9.4,914,23,1,0)
 ;;=  This routine gets inserted by DIFROM at the end of the
 ;;^DD(9.4,914,23,2,0)
 ;;=NAMESPACE_INIT routine, after the INIT has filed all the information,
 ;;^DD(9.4,914,23,3,0)
 ;;=but before the quit statement.
 ;;^DD(9.4,914,"DT")
 ;;=2940606
 ;;^DD(9.4,914.5,0)
 ;;=*POST-INIT COMPLETION DATE^D^^INIT;2^S %DT="ESTXR" D ^%DT S X=Y K:Y<1 X
 ;;^DD(9.4,914.5,3)
 ;;=
 ;;^DD(9.4,914.5,21,0)
 ;;=^^3^3^2911209^^
 ;;^DD(9.4,914.5,21,1,0)
 ;;=This is the date/time that the POST-INIT last ran.  When an
 ;;^DD(9.4,914.5,21,2,0)
 ;;=INIT is run at a target site, and it contains a POST-INIT
 ;;^DD(9.4,914.5,21,3,0)
 ;;=routine, this field is updated automatically.
 ;;^DD(9.4,914.5,"DT")
 ;;=2940603
 ;;^DD(9.4,916,0)
 ;;=*PRE-INIT AFTER USER COMMIT^F^^INI;1^K:$L(X)>8!($L(X)<3) X
 ;;^DD(9.4,916,.1)
 ;;=DEVELOPERS ROUTINE RUN AFTER 'INIT' QUESTIONS ANSWERED
 ;;^DD(9.4,916,3)
 ;;=Enter name of developer's pre-init routine (3-8 characters) that runs after user has answered all INIT questions.  Can be used for data conversions needed before INIT files new data.
 ;;^DD(9.4,916,21,0)
 ;;=^^4^4^2930303^^^^
 ;;^DD(9.4,916,21,1,0)
 ;;=Name of the developer's routine that runs after the user has answered all
 ;;^DD(9.4,916,21,2,0)
 ;;=of the questions in NAMESPACE_INIT but before the INIT files any new data.
 ;;^DD(9.4,916,21,3,0)
 ;;=Used for data conversions, etc. that the developer needs to do before
 ;;^DD(9.4,916,21,4,0)
 ;;=bringing in new data.
 ;;^DD(9.4,916,23,0)
 ;;=^^3^3^2930303^^^^
 ;;^DD(9.4,916,23,1,0)
 ;;=  A call to this routine gets inserted, by DIFROM, into the
 ;;^DD(9.4,916,23,2,0)
 ;;=NAMESPACE_INIT1 routine, after the user has answered the last
 ;;^DD(9.4,916,23,3,0)
 ;;=question 'ARE YOU SURE EVERYTHING'S OK?', but before filing any data.
 ;;^DD(9.4,916,"DT")
 ;;=2940606
 ;;^DD(9.4,916.5,0)
 ;;=*PRE-INIT COMPLETION DATE^D^^INI;2^S %DT="ESTXR" D ^%DT S X=Y K:Y<1 X
 ;;^DD(9.4,916.5,21,0)
 ;;=^^3^3^2911209^^
 ;;^DD(9.4,916.5,21,1,0)
 ;;=This is the date/time that the PRE-INIT AFTER USER COMMIT last ran.
 ;;^DD(9.4,916.5,21,2,0)
 ;;=When an INIT is run at a target site, and it contains a PRE-INIT
 ;;^DD(9.4,916.5,21,3,0)
 ;;=AFTER USER COMMIT routine, this field is updated automatically.
 ;;^DD(9.4,916.5,"DT")
 ;;=2940603
 ;;^DD(9.4,919,0)
 ;;=*EXCLUDED NAME SPACE^9.432^^EX;0
 ;;^DD(9.4,919,21,0)
 ;;=^^5^5^2930303^^^
 ;;^DD(9.4,919,21,1,0)
 ;;=By specifying an "excluded name space", the developer will be telling
 ;;^DD(9.4,919,21,2,0)
 ;;=the DIFROM routine not to take OPTIONS, BULLETINS, etc. which begin
 ;;^DD(9.4,919,21,3,0)
 ;;=with these characters.  For example, if "PSZ" is an excluded name space
 ;;^DD(9.4,919,21,4,0)
 ;;=in the "PS" package, DIFROM will not send along OPTIONS, SECURITY KEYS,
 ;;^DD(9.4,919,21,5,0)
 ;;=BULLETINS, or FUNCTIONS that begin with "PSZ".
 ;;^DD(9.4,919,"DT")
 ;;=2940603
 ;;^DD(9.4,1920,0)
 ;;=*STATUS^9.444D^^ST;0
 ;;^DD(9.4,1920,21,0)
 ;;=^^1^1^2851008^^^
 ;;^DD(9.4,1920,21,1,0)
 ;;=Information about the Namespace assignment status of this package.
 ;;^DD(9.4,1920,"DT")
 ;;=2940606
 ;;^DD(9.4,1933,0)
 ;;=*KEY VARIABLE^9.455^^1933;0
 ;;^DD(9.4,1933,21,0)
 ;;=^^2^2^2851009^^^
 ;;^DD(9.4,1933,21,1,0)
 ;;=These are the MUMPS variables which the Package would like defined
 ;;^DD(9.4,1933,21,2,0)
 ;;=prior to entry into the routines.
 ;;^DD(9.4,1933,"DT")
 ;;=2940603
 ;;^DD(9.4,1944,0)
 ;;=*BULLETINS^XCmJ30^^ ; ^S (XU,X)=$P(^DIC(9.4,D0,0),U,2) I X?1A.E F D=0:0 S D=$O(^XMB(3.6,"B",X,0)) S:D="" D=-1 X:$D(^XMB(3.6,D,0)) DICMX S X=$O(^XMB(3.6,"B",X)) I $P(X,XU,1)]""!(X="") S X="" Q
 ;;^DD(9.4,1944,9)
 ;;=^
 ;;^DD(9.4,1944,9.01)
 ;;=
 ;;^DD(9.4,1944,9.1)
 ;;=S (XU,X)=$P(^DIC(9.4,D0,0),U,2) I X?1A.E F D=0:0 Q:$P(X,XU,1)]""!(X="")  S D=$O(^XMB(3.6,X,0)) S:D="" D=-1 X:$D(^XMB(3.6,D,0)) DICMX S X=$O(^XMB(3.6,"B",X))
 ;;^DD(9.4,1944,21,0)
 ;;=^^2^2^2851008^
 ;;^DD(9.4,1944,21,1,0)
 ;;=This presents information about any BULLETINs which are distributed
 ;;^DD(9.4,1944,21,2,0)
 ;;=along with the Package.
 ;;^DD(9.4,1944,"DT")
 ;;=2940606
 ;;^DD(9.4,1945,0)
 ;;=*SECURITY KEYS^XCmJ30^^ ; ^S (XU,X)=$P(^DIC(9.4,D0,0),U,2) I X?1A.E F D=0:0 X:$D(^XUSEC(X)) DICMX S X=$O(^XUSEC(X)) I $P(X,XU,1)]""!(X="") S X="" Q
 ;;^DD(9.4,1945,9)
 ;;=^
 ;;^DD(9.4,1945,9.01)
 ;;=
 ;;^DD(9.4,1945,9.1)
 ;;=S (XU,X)=$P(^DIC(9.4,D0,0),U,2) I X?1A.E F D=0:0 X:$D(^XUSEC(X)) DICMX S X=$O(^XUSEC(X)) I $P(X,XU,1)]""!(X="") S X="" Q
 ;;^DD(9.4,1945,21,0)
 ;;=^^2^2^2851008^
 ;;^DD(9.4,1945,21,1,0)
 ;;=This describes the SECURITY KEYs which are distributed along with
 ;;^DD(9.4,1945,21,2,0)
 ;;=the Package.
 ;;^DD(9.4,1945,"DT")
 ;;=2940606
 ;;^DD(9.4,1946,0)
 ;;=*OPTIONS^XCmJ30^^ ; ^S (XU,X)=$P(^DIC(9.4,D0,0),U,2) I X?1A.E F D=0:0 S D=$O(^DIC(19,"B",X,0)) S:D="" D=-1 X:$D(^DIC(19,D,0)) DICMX S X=$O(^DIC(19,"B",X)) I $P(X,XU,1)]""!(X="") S X="" Q
 ;;^DD(9.4,1946,9)
 ;;=^
 ;;^DD(9.4,1946,9.01)
 ;;=
 ;;^DD(9.4,1946,9.1)
 ;;=S (XU,X)=$P(^DIC(9.4,D0,0),U,2) I X?1A.E F D=0:0 Q:$P(X,XU,1)]""!(X="")  S D=$O(^DIC(19,"B",X,0)) S:D="" D=-1 X:$D(^DIC(19,D,0)) DICMX S X=$O(^DIC(19,"B",X))
 ;;^DD(9.4,1946,21,0)
 ;;=^^2^2^2851008^
 ;;^DD(9.4,1946,21,1,0)
 ;;=This lists information concerning the OPTIONs which are distributed
 
--- Routine Detail   --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HDIPKI003   6945     printed  Sep 23, 2025@20:28:57                                                                                                                                                                                                    Page 2
DIPKI003  ; ; 30-MAR-1999
 +1       ;;22.0;VA FileMan;;Mar 30, 1999;Build 1
 +2       ;Per VHA Directive 10-93-142, this routine should not be modified.
 +3        if 'DIFQ(9.4)
               QUIT 
           FOR I=1:2
               SET X=$TEXT(Q+I)
               if X=""
                   QUIT 
               SET Y=$EXTRACT($TEXT(Q+I+1),4,999)
               SET X=$EXTRACT(X,4,999)
               if $ASCII(Y)=126
                   SET I=I+1
                   SET Y=$EXTRACT(Y,2,999)_$EXTRACT($TEXT(Q+I+1),5,99)
               if $ASCII(Y)=61
                   SET Y=$EXTRACT(Y,2,999)
               XECUTE NO
              IF '$TEST
                   SET @X=Y
Q          QUIT 
 +1       ;;^DD(9.4,913,23,0)
 +2       ;;=^^2^2^2921202^^^^
 +3       ;;^DD(9.4,913,23,1,0)
 +4       ;;=  A call to this routine gets inserted, by DIFROM at the beginning of the
 +5       ;;^DD(9.4,913,23,2,0)
 +6       ;;=NAMESPACE_INIT routine, before the EN entry point.
 +7       ;;^DD(9.4,913,"DT")
 +8       ;;=2940606
 +9       ;;^DD(9.4,913.5,0)
 +10      ;;=*ENVIRONMENT CHECK DONE DATE^D^^PRE;2^S %DT="ESTXR" D ^%DT S X=Y K:Y<1 X
 +11      ;;^DD(9.4,913.5,3)
 +12      ;;=
 +13      ;;^DD(9.4,913.5,21,0)
 +14      ;;=^^3^3^2921202^
 +15      ;;^DD(9.4,913.5,21,1,0)
 +16      ;;=This is the date/time that the ENVIRONMENT CHECK routine last ran. When an
 +17      ;;^DD(9.4,913.5,21,2,0)
 +18      ;;=INIT is run at a target site, and it contains an ENVIRONMENT CHECK
 +19      ;;^DD(9.4,913.5,21,3,0)
 +20      ;;=routine, this field is updated automatically.
 +21      ;;^DD(9.4,913.5,"DT")
 +22      ;;=2940603
 +23      ;;^DD(9.4,914,0)
 +24      ;;=*POST-INITIALIZATION ROUTINE^F^^INIT;1^K:$L(X)>8!($L(X)<3)!'(X?1UP.UN) X
 +25      ;;^DD(9.4,914,.1)
 +26      ;;=DEVELOPERS ROUTINE TO BRANCH TO AT END OF 'INIT' ROUTINE
 +27      ;;^DD(9.4,914,3)
 +28      ;;=Enter the name of the developer's post-initialization routine (3-8 characters).
 +29      ;;^DD(9.4,914,21,0)
 +30      ;;=^^2^2^2900730^^^^
 +31      ;;^DD(9.4,914,21,1,0)
 +32      ;;=The name of the developer's routine which is run immediately after the
 +33      ;;^DD(9.4,914,21,2,0)
 +34      ;;=installation of the package.
 +35      ;;^DD(9.4,914,23,0)
 +36      ;;=^^3^3^2900730^^^
 +37      ;;^DD(9.4,914,23,1,0)
 +38      ;;=  This routine gets inserted by DIFROM at the end of the
 +39      ;;^DD(9.4,914,23,2,0)
 +40      ;;=NAMESPACE_INIT routine, after the INIT has filed all the information,
 +41      ;;^DD(9.4,914,23,3,0)
 +42      ;;=but before the quit statement.
 +43      ;;^DD(9.4,914,"DT")
 +44      ;;=2940606
 +45      ;;^DD(9.4,914.5,0)
 +46      ;;=*POST-INIT COMPLETION DATE^D^^INIT;2^S %DT="ESTXR" D ^%DT S X=Y K:Y<1 X
 +47      ;;^DD(9.4,914.5,3)
 +48      ;;=
 +49      ;;^DD(9.4,914.5,21,0)
 +50      ;;=^^3^3^2911209^^
 +51      ;;^DD(9.4,914.5,21,1,0)
 +52      ;;=This is the date/time that the POST-INIT last ran.  When an
 +53      ;;^DD(9.4,914.5,21,2,0)
 +54      ;;=INIT is run at a target site, and it contains a POST-INIT
 +55      ;;^DD(9.4,914.5,21,3,0)
 +56      ;;=routine, this field is updated automatically.
 +57      ;;^DD(9.4,914.5,"DT")
 +58      ;;=2940603
 +59      ;;^DD(9.4,916,0)
 +60      ;;=*PRE-INIT AFTER USER COMMIT^F^^INI;1^K:$L(X)>8!($L(X)<3) X
 +61      ;;^DD(9.4,916,.1)
 +62      ;;=DEVELOPERS ROUTINE RUN AFTER 'INIT' QUESTIONS ANSWERED
 +63      ;;^DD(9.4,916,3)
 +64      ;;=Enter name of developer's pre-init routine (3-8 characters) that runs after user has answered all INIT questions.  Can be used for data conversions needed before INIT files new data.
 +65      ;;^DD(9.4,916,21,0)
 +66      ;;=^^4^4^2930303^^^^
 +67      ;;^DD(9.4,916,21,1,0)
 +68      ;;=Name of the developer's routine that runs after the user has answered all
 +69      ;;^DD(9.4,916,21,2,0)
 +70      ;;=of the questions in NAMESPACE_INIT but before the INIT files any new data.
 +71      ;;^DD(9.4,916,21,3,0)
 +72      ;;=Used for data conversions, etc. that the developer needs to do before
 +73      ;;^DD(9.4,916,21,4,0)
 +74      ;;=bringing in new data.
 +75      ;;^DD(9.4,916,23,0)
 +76      ;;=^^3^3^2930303^^^^
 +77      ;;^DD(9.4,916,23,1,0)
 +78      ;;=  A call to this routine gets inserted, by DIFROM, into the
 +79      ;;^DD(9.4,916,23,2,0)
 +80      ;;=NAMESPACE_INIT1 routine, after the user has answered the last
 +81      ;;^DD(9.4,916,23,3,0)
 +82      ;;=question 'ARE YOU SURE EVERYTHING'S OK?', but before filing any data.
 +83      ;;^DD(9.4,916,"DT")
 +84      ;;=2940606
 +85      ;;^DD(9.4,916.5,0)
 +86      ;;=*PRE-INIT COMPLETION DATE^D^^INI;2^S %DT="ESTXR" D ^%DT S X=Y K:Y<1 X
 +87      ;;^DD(9.4,916.5,21,0)
 +88      ;;=^^3^3^2911209^^
 +89      ;;^DD(9.4,916.5,21,1,0)
 +90      ;;=This is the date/time that the PRE-INIT AFTER USER COMMIT last ran.
 +91      ;;^DD(9.4,916.5,21,2,0)
 +92      ;;=When an INIT is run at a target site, and it contains a PRE-INIT
 +93      ;;^DD(9.4,916.5,21,3,0)
 +94      ;;=AFTER USER COMMIT routine, this field is updated automatically.
 +95      ;;^DD(9.4,916.5,"DT")
 +96      ;;=2940603
 +97      ;;^DD(9.4,919,0)
 +98      ;;=*EXCLUDED NAME SPACE^9.432^^EX;0
 +99      ;;^DD(9.4,919,21,0)
 +100     ;;=^^5^5^2930303^^^
 +101     ;;^DD(9.4,919,21,1,0)
 +102     ;;=By specifying an "excluded name space", the developer will be telling
 +103     ;;^DD(9.4,919,21,2,0)
 +104     ;;=the DIFROM routine not to take OPTIONS, BULLETINS, etc. which begin
 +105     ;;^DD(9.4,919,21,3,0)
 +106     ;;=with these characters.  For example, if "PSZ" is an excluded name space
 +107     ;;^DD(9.4,919,21,4,0)
 +108     ;;=in the "PS" package, DIFROM will not send along OPTIONS, SECURITY KEYS,
 +109     ;;^DD(9.4,919,21,5,0)
 +110     ;;=BULLETINS, or FUNCTIONS that begin with "PSZ".
 +111     ;;^DD(9.4,919,"DT")
 +112     ;;=2940603
 +113     ;;^DD(9.4,1920,0)
 +114     ;;=*STATUS^9.444D^^ST;0
 +115     ;;^DD(9.4,1920,21,0)
 +116     ;;=^^1^1^2851008^^^
 +117     ;;^DD(9.4,1920,21,1,0)
 +118     ;;=Information about the Namespace assignment status of this package.
 +119     ;;^DD(9.4,1920,"DT")
 +120     ;;=2940606
 +121     ;;^DD(9.4,1933,0)
 +122     ;;=*KEY VARIABLE^9.455^^1933;0
 +123     ;;^DD(9.4,1933,21,0)
 +124     ;;=^^2^2^2851009^^^
 +125     ;;^DD(9.4,1933,21,1,0)
 +126     ;;=These are the MUMPS variables which the Package would like defined
 +127     ;;^DD(9.4,1933,21,2,0)
 +128     ;;=prior to entry into the routines.
 +129     ;;^DD(9.4,1933,"DT")
 +130     ;;=2940603
 +131     ;;^DD(9.4,1944,0)
 +132     ;;=*BULLETINS^XCmJ30^^ ; ^S (XU,X)=$P(^DIC(9.4,D0,0),U,2) I X?1A.E F D=0:0 S D=$O(^XMB(3.6,"B",X,0)) S:D="" D=-1 X:$D(^XMB(3.6,D,0)) DICMX S X=$O(^XMB(3.6,"B",X)) I $P(X,XU,1)]""!(X="") S X="" Q
 +133     ;;^DD(9.4,1944,9)
 +134     ;;=^
 +135     ;;^DD(9.4,1944,9.01)
 +136     ;;=
 +137     ;;^DD(9.4,1944,9.1)
 +138     ;;=S (XU,X)=$P(^DIC(9.4,D0,0),U,2) I X?1A.E F D=0:0 Q:$P(X,XU,1)]""!(X="")  S D=$O(^XMB(3.6,X,0)) S:D="" D=-1 X:$D(^XMB(3.6,D,0)) DICMX S X=$O(^XMB(3.6,"B",X))
 +139     ;;^DD(9.4,1944,21,0)
 +140     ;;=^^2^2^2851008^
 +141     ;;^DD(9.4,1944,21,1,0)
 +142     ;;=This presents information about any BULLETINs which are distributed
 +143     ;;^DD(9.4,1944,21,2,0)
 +144     ;;=along with the Package.
 +145     ;;^DD(9.4,1944,"DT")
 +146     ;;=2940606
 +147     ;;^DD(9.4,1945,0)
 +148     ;;=*SECURITY KEYS^XCmJ30^^ ; ^S (XU,X)=$P(^DIC(9.4,D0,0),U,2) I X?1A.E F D=0:0 X:$D(^XUSEC(X)) DICMX S X=$O(^XUSEC(X)) I $P(X,XU,1)]""!(X="") S X="" Q
 +149     ;;^DD(9.4,1945,9)
 +150     ;;=^
 +151     ;;^DD(9.4,1945,9.01)
 +152     ;;=
 +153     ;;^DD(9.4,1945,9.1)
 +154     ;;=S (XU,X)=$P(^DIC(9.4,D0,0),U,2) I X?1A.E F D=0:0 X:$D(^XUSEC(X)) DICMX S X=$O(^XUSEC(X)) I $P(X,XU,1)]""!(X="") S X="" Q
 +155     ;;^DD(9.4,1945,21,0)
 +156     ;;=^^2^2^2851008^
 +157     ;;^DD(9.4,1945,21,1,0)
 +158     ;;=This describes the SECURITY KEYs which are distributed along with
 +159     ;;^DD(9.4,1945,21,2,0)
 +160     ;;=the Package.
 +161     ;;^DD(9.4,1945,"DT")
 +162     ;;=2940606
 +163     ;;^DD(9.4,1946,0)
 +164     ;;=*OPTIONS^XCmJ30^^ ; ^S (XU,X)=$P(^DIC(9.4,D0,0),U,2) I X?1A.E F D=0:0 S D=$O(^DIC(19,"B",X,0)) S:D="" D=-1 X:$D(^DIC(19,D,0)) DICMX S X=$O(^DIC(19,"B",X)) I $P(X,XU,1)]""!(X="") S X="" Q
 +165     ;;^DD(9.4,1946,9)
 +166     ;;=^
 +167     ;;^DD(9.4,1946,9.01)
 +168     ;;=
 +169     ;;^DD(9.4,1946,9.1)
 +170     ;;=S (XU,X)=$P(^DIC(9.4,D0,0),U,2) I X?1A.E F D=0:0 Q:$P(X,XU,1)]""!(X="")  S D=$O(^DIC(19,"B",X,0)) S:D="" D=-1 X:$D(^DIC(19,D,0)) DICMX S X=$O(^DIC(19,"B",X))
 +171     ;;^DD(9.4,1946,21,0)
 +172     ;;=^^2^2^2851008^
 +173     ;;^DD(9.4,1946,21,1,0)
 +174     ;;=This lists information concerning the OPTIONs which are distributed