DINIT298 ;SFISC/MKO-FORM AND BLOCK FILES ;10:49 AM  30 Mar 1999
 ;;22.2;VA FileMan;;Jan 05, 2016;Build 42
 ;;Per VA Directive 6402, this routine should not be modified.
 ;;Submitted to OSEHRA 5 January 2015 by the VISTA Expertise Network.
 ;;Based on Medsphere Systems Corporation's MSC FileMan 1051.
 ;;Licensed under the terms of the Apache License, Version 2.0.
 ;
 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) S @X=Y
 G ^DINIT299
Q Q
 ;;^DD(.4044,10,21,16,0)
 ;;=The variable X contains the current internal value of the field, DDSEXT
 ;;^DD(.4044,10,21,17,0)
 ;;=contains the current external value of the field, and DDSOLD contains the
 ;;^DD(.4044,10,21,18,0)
 ;;=previous internal value of the field.
 ;;^DD(.4044,11,0)
 ;;=PRE ACTION^K^^11;E1,245^K:$L(X)>245 X D:$D(X) ^DIM
 ;;^DD(.4044,11,3)
 ;;=Enter standard MUMPS code that will be executed when the user navigates to this field.
 ;;^DD(.4044,11,9)
 ;;=@
 ;;^DD(.4044,11,21,0)
 ;;=^^2^2^2940629^
 ;;^DD(.4044,11,21,1,0)
 ;;=This MUMPS code is executed when the user reaches the field.  The variable
 ;;^DD(.4044,11,21,2,0)
 ;;=X contains the current value of the field.
 ;;^DD(.4044,12,0)
 ;;=POST ACTION^K^^12;E1,245^K:$L(X)>245 X D:$D(X) ^DIM
 ;;^DD(.4044,12,3)
 ;;=Enter standard MUMPS code that will be executed when the user leaves this field.
 ;;^DD(.4044,12,9)
 ;;=@
 ;;^DD(.4044,12,21,0)
 ;;=^^6^6^2950306^
 ;;^DD(.4044,12,21,1,0)
 ;;=This MUMPS code is executed when the user leaves the field, except on
 ;;^DD(.4044,12,21,2,0)
 ;;=time-out.
 ;;^DD(.4044,12,21,3,0)
 ;;= 
 ;;^DD(.4044,12,21,4,0)
 ;;=The variable X contains the current internal value of the field, DDSEXT
 ;;^DD(.4044,12,21,5,0)
 ;;=contains the current external value of the field, and DDSOLD contains
 ;;^DD(.4044,12,21,6,0)
 ;;=the previous internal value of the field.
 ;;^DD(.4044,12,"DT")
 ;;=2950306
 ;;^DD(.4044,13,0)
 ;;=POST ACTION ON CHANGE^K^^13;E1,245^K:$L(X)>245 X D:$D(X) ^DIM
 ;;^DD(.4044,13,3)
 ;;=Enter standard MUMPS code that will be executed when the user changes the value of this field.
 ;;^DD(.4044,13,9)
 ;;=@
 ;;^DD(.4044,13,21,0)
 ;;=^^4^4^2940629^
 ;;^DD(.4044,13,21,1,0)
 ;;=This MUMPS code is executed only if the user changed the value of the
 ;;^DD(.4044,13,21,2,0)
 ;;=field.  The variables X and DDSEXT contain the new internal and external
 ;;^DD(.4044,13,21,3,0)
 ;;=values of the field, and DDSOLD contains the original internal value of
 ;;^DD(.4044,13,21,4,0)
 ;;=the field.
 ;;^DD(.4044,13,"DT")
 ;;=2931029
 ;;^DD(.4044,14,0)
 ;;=DATA VALIDATION^K^^14;E1,245^K:$L(X)>245 X D:$D(X) ^DIM
 ;;^DD(.4044,14,3)
 ;;=This is Standard MUMPS code.
 ;;^DD(.4044,14,9)
 ;;=@
 ;;^DD(.4044,14,21,0)
 ;;=^^5^5^2940907^
 ;;^DD(.4044,14,21,1,0)
 ;;=Enter MUMPS code that will be executed after the user enters a new
 ;;^DD(.4044,14,21,2,0)
 ;;=value for this field.  If the code sets DDSERROR, the value will
 ;;^DD(.4044,14,21,3,0)
 ;;=be rejected.  You might also want to ring the bell and make a call to
 ;;^DD(.4044,14,21,4,0)
 ;;=HLP^DDSUTL to display a message to the user that indicates the reason the
 ;;^DD(.4044,14,21,5,0)
 ;;=value was rejected.
 ;;^DD(.4044,14,"DT")
 ;;=2930820
 ;;^DD(.4044,20.1,0)
 ;;=READ TYPE^S^D:DATE;F:FREE TEXT;L:LIST OR RANGE;N:NUMERIC;P:POINTER;S:SET OF CODES;Y:YES OR NO;DD:DATA DICTIONARY;^20;1^Q
 ;;^DD(.4044,20.1,21,0)
 ;;=^^1^1^2930812^^
 ;;^DD(.4044,20.1,21,1,0)
 ;;=Enter the data type of this form-only field.
 ;;^DD(.4044,20.1,"DT")
 ;;=2930812
 ;;^DD(.4044,20.2,0)
 ;;=PARAMETERS^F^^20;2^K:$L(X)>2!($L(X)<1) X
 ;;^DD(.4044,20.2,3)
 ;;=Answer must be 1-2 characters in length.
 ;;^DD(.4044,20.2,21,0)
 ;;=^^8^8^2940907^
 ;;^DD(.4044,20.2,21,1,0)
 ;;=This property coressponds to the parameters that can be used in the first
 ;;^DD(.4044,20.2,21,2,0)
 ;;=^-piece of the DIR(0) input variable to ^DIR.  The "O" parameter has no
 ;;^DD(.4044,20.2,21,3,0)
 ;;=effect, since the Required property can be used to make a field required.
 ;;^DD(.4044,20.2,21,4,0)
 ;;=The "A" and "B" parameters also have no effect.
 ;;^DD(.4044,20.2,21,5,0)
 ;;= 
 ;;^DD(.4044,20.2,21,6,0)
 ;;=Free text fields can use the "U" parameter.
 ;;^DD(.4044,20.2,21,7,0)
 ;;=List or Range fields can use the "C" parameter.
 ;;^DD(.4044,20.2,21,8,0)
 ;;=Set of Codes fields can use the "X" and "M" parameters.
 ;;^DD(.4044,20.2,"DT")
 ;;=2930812
 ;;^DD(.4044,20.3,0)
 ;;=QUALIFIERS^F^^20;3^K:$L(X)>100!($L(X)<1) X
 ;;^DD(.4044,20.3,3)
 ;;=Answer must be 1-100 characters in length.
 ;;^DD(.4044,20.3,21,0)
 ;;=^^14^14^2940908^^
 ;;^DD(.4044,20.3,21,1,0)
 ;;=This property corresponds to the second ^-piece of the DIR(0) input
 ;;^DD(.4044,20.3,21,2,0)
 ;;=variable to ^DIR.  For Data Dictionary type form only fields, it
 ;;^DD(.4044,20.3,21,3,0)
 ;;=identifies the file and field.
 ;;^DD(.4044,20.3,21,4,0)
 ;;= 
 ;;^DD(.4044,20.3,21,5,0)
 ;;=Valid qualifiers are:
 ;;^DD(.4044,20.3,21,6,0)
 ;;= 
 ;;^DD(.4044,20.3,21,7,0)
 ;;=  Date             Minimum date:Maximum date:%DT
 ;;^DD(.4044,20.3,21,8,0)
 ;;=  Free Text        Minimum length:Maximum length
 ;;^DD(.4044,20.3,21,9,0)
 ;;=  List or Range    Minimum:Maximum:Maximum decimals
 ;;^DD(.4044,20.3,21,10,0)
 ;;=  Numeric          Minimum:Maximum:Maximum decimals
 ;;^DD(.4044,20.3,21,11,0)
 ;;=  Pointer          Global root or #:DIC(0)
 ;;^DD(.4044,20.3,21,12,0)
 ;;=  Set of Codes     Code:Stands for;Code:Stands for;
 ;;^DD(.4044,20.3,21,13,0)
 ;;=  Yes or No
 ;;^DD(.4044,20.3,21,14,0)
 ;;=  Data Dictionary  file#,field#
 ;;^DD(.4044,20.3,"DT")
 ;;=2930812
 ;;^DD(.4044,21,0)
 ;;=HELP^.404421^^21;0
 ;;^DD(.4044,21,"DT")
 ;;=2930812
 ;;^DD(.4044,22,0)
 ;;=INPUT TRANSFORM^K^^22;E1,245^K:$L(X)>245 X D:$D(X) ^DIM
 ;;^DD(.4044,22,3)
 ;;=Enter standard MUMPS code.
 ;;^DD(.4044,22,9)
 ;;=@
 ;;^DD(.4044,22,21,0)
 ;;=^^3^3^2940908^
 ;;^DD(.4044,22,21,1,0)
 ;;=This is MUMPS code that can examine X, the value entered by the user, and
 ;;^DD(.4044,22,21,2,0)
 ;;=kill X if it is invalid.  It corresponds to the third ^-piece of the
 ;;^DD(.4044,22,21,3,0)
 ;;=DIR(0) input variable to ^DIR.
 ;;^DD(.4044,22,"DT")
 ;;=2930812
 ;;^DD(.4044,23,0)
 ;;=SAVE CODE^K^^23;E1,245^K:$L(X)>245 X D:$D(X) ^DIM
 ;;^DD(.4044,23,3)
 ;;=Enter Standard MUMPS code.
 ;;^DD(.4044,23,9)
 ;;=@
 ;;^DD(.4044,23,21,0)
 ;;=^^8^8^2930920^^
 ;;^DD(.4044,23,21,1,0)
 ;;=This is MUMPS code that is executed when the user issues a Save command
 ;;^DD(.4044,23,21,2,0)
 ;;=and the value of this field changed since the last Save.  You can use this
 ;;^DD(.4044,23,21,3,0)
 ;;=field to save in global or local variables the value the user enters into
 ;;^DD(.4044,23,21,4,0)
 ;;=this field.  The following variables are available:
 ;;^DD(.4044,23,21,5,0)
 ;;= 
 ;;^DD(.4044,23,21,6,0)
 ;;=     X      = The new value of the field in internal form
 ;;^DD(.4044,23,21,7,0)
 ;;=     DDSEXT = The new value of the field in external form
 ;;^DD(.4044,23,21,8,0)
 ;;=     DDSOLD = The original (pre-save) value of the field in internal form
 
--- Routine Detail   --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HDINIT298   7237     printed  Sep 23, 2025@20:27:28                                                                                                                                                                                                    Page 2
DINIT298  ;SFISC/MKO-FORM AND BLOCK FILES ;10:49 AM  30 Mar 1999
 +1       ;;22.2;VA FileMan;;Jan 05, 2016;Build 42
 +2       ;;Per VA Directive 6402, this routine should not be modified.
 +3       ;;Submitted to OSEHRA 5 January 2015 by the VISTA Expertise Network.
 +4       ;;Based on Medsphere Systems Corporation's MSC FileMan 1051.
 +5       ;;Licensed under the terms of the Apache License, Version 2.0.
 +6       ;
 +7        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)
               SET @X=Y
 +8        GOTO ^DINIT299
Q          QUIT 
 +1       ;;^DD(.4044,10,21,16,0)
 +2       ;;=The variable X contains the current internal value of the field, DDSEXT
 +3       ;;^DD(.4044,10,21,17,0)
 +4       ;;=contains the current external value of the field, and DDSOLD contains the
 +5       ;;^DD(.4044,10,21,18,0)
 +6       ;;=previous internal value of the field.
 +7       ;;^DD(.4044,11,0)
 +8       ;;=PRE ACTION^K^^11;E1,245^K:$L(X)>245 X D:$D(X) ^DIM
 +9       ;;^DD(.4044,11,3)
 +10      ;;=Enter standard MUMPS code that will be executed when the user navigates to this field.
 +11      ;;^DD(.4044,11,9)
 +12      ;;=@
 +13      ;;^DD(.4044,11,21,0)
 +14      ;;=^^2^2^2940629^
 +15      ;;^DD(.4044,11,21,1,0)
 +16      ;;=This MUMPS code is executed when the user reaches the field.  The variable
 +17      ;;^DD(.4044,11,21,2,0)
 +18      ;;=X contains the current value of the field.
 +19      ;;^DD(.4044,12,0)
 +20      ;;=POST ACTION^K^^12;E1,245^K:$L(X)>245 X D:$D(X) ^DIM
 +21      ;;^DD(.4044,12,3)
 +22      ;;=Enter standard MUMPS code that will be executed when the user leaves this field.
 +23      ;;^DD(.4044,12,9)
 +24      ;;=@
 +25      ;;^DD(.4044,12,21,0)
 +26      ;;=^^6^6^2950306^
 +27      ;;^DD(.4044,12,21,1,0)
 +28      ;;=This MUMPS code is executed when the user leaves the field, except on
 +29      ;;^DD(.4044,12,21,2,0)
 +30      ;;=time-out.
 +31      ;;^DD(.4044,12,21,3,0)
 +32      ;;= 
 +33      ;;^DD(.4044,12,21,4,0)
 +34      ;;=The variable X contains the current internal value of the field, DDSEXT
 +35      ;;^DD(.4044,12,21,5,0)
 +36      ;;=contains the current external value of the field, and DDSOLD contains
 +37      ;;^DD(.4044,12,21,6,0)
 +38      ;;=the previous internal value of the field.
 +39      ;;^DD(.4044,12,"DT")
 +40      ;;=2950306
 +41      ;;^DD(.4044,13,0)
 +42      ;;=POST ACTION ON CHANGE^K^^13;E1,245^K:$L(X)>245 X D:$D(X) ^DIM
 +43      ;;^DD(.4044,13,3)
 +44      ;;=Enter standard MUMPS code that will be executed when the user changes the value of this field.
 +45      ;;^DD(.4044,13,9)
 +46      ;;=@
 +47      ;;^DD(.4044,13,21,0)
 +48      ;;=^^4^4^2940629^
 +49      ;;^DD(.4044,13,21,1,0)
 +50      ;;=This MUMPS code is executed only if the user changed the value of the
 +51      ;;^DD(.4044,13,21,2,0)
 +52      ;;=field.  The variables X and DDSEXT contain the new internal and external
 +53      ;;^DD(.4044,13,21,3,0)
 +54      ;;=values of the field, and DDSOLD contains the original internal value of
 +55      ;;^DD(.4044,13,21,4,0)
 +56      ;;=the field.
 +57      ;;^DD(.4044,13,"DT")
 +58      ;;=2931029
 +59      ;;^DD(.4044,14,0)
 +60      ;;=DATA VALIDATION^K^^14;E1,245^K:$L(X)>245 X D:$D(X) ^DIM
 +61      ;;^DD(.4044,14,3)
 +62      ;;=This is Standard MUMPS code.
 +63      ;;^DD(.4044,14,9)
 +64      ;;=@
 +65      ;;^DD(.4044,14,21,0)
 +66      ;;=^^5^5^2940907^
 +67      ;;^DD(.4044,14,21,1,0)
 +68      ;;=Enter MUMPS code that will be executed after the user enters a new
 +69      ;;^DD(.4044,14,21,2,0)
 +70      ;;=value for this field.  If the code sets DDSERROR, the value will
 +71      ;;^DD(.4044,14,21,3,0)
 +72      ;;=be rejected.  You might also want to ring the bell and make a call to
 +73      ;;^DD(.4044,14,21,4,0)
 +74      ;;=HLP^DDSUTL to display a message to the user that indicates the reason the
 +75      ;;^DD(.4044,14,21,5,0)
 +76      ;;=value was rejected.
 +77      ;;^DD(.4044,14,"DT")
 +78      ;;=2930820
 +79      ;;^DD(.4044,20.1,0)
 +80      ;;=READ TYPE^S^D:DATE;F:FREE TEXT;L:LIST OR RANGE;N:NUMERIC;P:POINTER;S:SET OF CODES;Y:YES OR NO;DD:DATA DICTIONARY;^20;1^Q
 +81      ;;^DD(.4044,20.1,21,0)
 +82      ;;=^^1^1^2930812^^
 +83      ;;^DD(.4044,20.1,21,1,0)
 +84      ;;=Enter the data type of this form-only field.
 +85      ;;^DD(.4044,20.1,"DT")
 +86      ;;=2930812
 +87      ;;^DD(.4044,20.2,0)
 +88      ;;=PARAMETERS^F^^20;2^K:$L(X)>2!($L(X)<1) X
 +89      ;;^DD(.4044,20.2,3)
 +90      ;;=Answer must be 1-2 characters in length.
 +91      ;;^DD(.4044,20.2,21,0)
 +92      ;;=^^8^8^2940907^
 +93      ;;^DD(.4044,20.2,21,1,0)
 +94      ;;=This property coressponds to the parameters that can be used in the first
 +95      ;;^DD(.4044,20.2,21,2,0)
 +96      ;;=^-piece of the DIR(0) input variable to ^DIR.  The "O" parameter has no
 +97      ;;^DD(.4044,20.2,21,3,0)
 +98      ;;=effect, since the Required property can be used to make a field required.
 +99      ;;^DD(.4044,20.2,21,4,0)
 +100     ;;=The "A" and "B" parameters also have no effect.
 +101     ;;^DD(.4044,20.2,21,5,0)
 +102     ;;= 
 +103     ;;^DD(.4044,20.2,21,6,0)
 +104     ;;=Free text fields can use the "U" parameter.
 +105     ;;^DD(.4044,20.2,21,7,0)
 +106     ;;=List or Range fields can use the "C" parameter.
 +107     ;;^DD(.4044,20.2,21,8,0)
 +108     ;;=Set of Codes fields can use the "X" and "M" parameters.
 +109     ;;^DD(.4044,20.2,"DT")
 +110     ;;=2930812
 +111     ;;^DD(.4044,20.3,0)
 +112     ;;=QUALIFIERS^F^^20;3^K:$L(X)>100!($L(X)<1) X
 +113     ;;^DD(.4044,20.3,3)
 +114     ;;=Answer must be 1-100 characters in length.
 +115     ;;^DD(.4044,20.3,21,0)
 +116     ;;=^^14^14^2940908^^
 +117     ;;^DD(.4044,20.3,21,1,0)
 +118     ;;=This property corresponds to the second ^-piece of the DIR(0) input
 +119     ;;^DD(.4044,20.3,21,2,0)
 +120     ;;=variable to ^DIR.  For Data Dictionary type form only fields, it
 +121     ;;^DD(.4044,20.3,21,3,0)
 +122     ;;=identifies the file and field.
 +123     ;;^DD(.4044,20.3,21,4,0)
 +124     ;;= 
 +125     ;;^DD(.4044,20.3,21,5,0)
 +126     ;;=Valid qualifiers are:
 +127     ;;^DD(.4044,20.3,21,6,0)
 +128     ;;= 
 +129     ;;^DD(.4044,20.3,21,7,0)
 +130     ;;=  Date             Minimum date:Maximum date:%DT
 +131     ;;^DD(.4044,20.3,21,8,0)
 +132     ;;=  Free Text        Minimum length:Maximum length
 +133     ;;^DD(.4044,20.3,21,9,0)
 +134     ;;=  List or Range    Minimum:Maximum:Maximum decimals
 +135     ;;^DD(.4044,20.3,21,10,0)
 +136     ;;=  Numeric          Minimum:Maximum:Maximum decimals
 +137     ;;^DD(.4044,20.3,21,11,0)
 +138     ;;=  Pointer          Global root or #:DIC(0)
 +139     ;;^DD(.4044,20.3,21,12,0)
 +140     ;;=  Set of Codes     Code:Stands for;Code:Stands for;
 +141     ;;^DD(.4044,20.3,21,13,0)
 +142     ;;=  Yes or No
 +143     ;;^DD(.4044,20.3,21,14,0)
 +144     ;;=  Data Dictionary  file#,field#
 +145     ;;^DD(.4044,20.3,"DT")
 +146     ;;=2930812
 +147     ;;^DD(.4044,21,0)
 +148     ;;=HELP^.404421^^21;0
 +149     ;;^DD(.4044,21,"DT")
 +150     ;;=2930812
 +151     ;;^DD(.4044,22,0)
 +152     ;;=INPUT TRANSFORM^K^^22;E1,245^K:$L(X)>245 X D:$D(X) ^DIM
 +153     ;;^DD(.4044,22,3)
 +154     ;;=Enter standard MUMPS code.
 +155     ;;^DD(.4044,22,9)
 +156     ;;=@
 +157     ;;^DD(.4044,22,21,0)
 +158     ;;=^^3^3^2940908^
 +159     ;;^DD(.4044,22,21,1,0)
 +160     ;;=This is MUMPS code that can examine X, the value entered by the user, and
 +161     ;;^DD(.4044,22,21,2,0)
 +162     ;;=kill X if it is invalid.  It corresponds to the third ^-piece of the
 +163     ;;^DD(.4044,22,21,3,0)
 +164     ;;=DIR(0) input variable to ^DIR.
 +165     ;;^DD(.4044,22,"DT")
 +166     ;;=2930812
 +167     ;;^DD(.4044,23,0)
 +168     ;;=SAVE CODE^K^^23;E1,245^K:$L(X)>245 X D:$D(X) ^DIM
 +169     ;;^DD(.4044,23,3)
 +170     ;;=Enter Standard MUMPS code.
 +171     ;;^DD(.4044,23,9)
 +172     ;;=@
 +173     ;;^DD(.4044,23,21,0)
 +174     ;;=^^8^8^2930920^^
 +175     ;;^DD(.4044,23,21,1,0)
 +176     ;;=This is MUMPS code that is executed when the user issues a Save command
 +177     ;;^DD(.4044,23,21,2,0)
 +178     ;;=and the value of this field changed since the last Save.  You can use this
 +179     ;;^DD(.4044,23,21,3,0)
 +180     ;;=field to save in global or local variables the value the user enters into
 +181     ;;^DD(.4044,23,21,4,0)
 +182     ;;=this field.  The following variables are available:
 +183     ;;^DD(.4044,23,21,5,0)
 +184     ;;= 
 +185     ;;^DD(.4044,23,21,6,0)
 +186     ;;=     X      = The new value of the field in internal form
 +187     ;;^DD(.4044,23,21,7,0)
 +188     ;;=     DDSEXT = The new value of the field in external form
 +189     ;;^DD(.4044,23,21,8,0)
 +190     ;;=     DDSOLD = The original (pre-save) value of the field in internal form