STANDARD DATA DICTIONARY #3.081 -- SIGN-ON LOG FILE                                                               3/24/25    PAGE 1
STORED IN ^XUSEC(0,  (13 ENTRIES)   SITE: WWW.BMIRWIN.COM   UCI: VISTA,VISTA                                       (VERSION 8.0)   

DATA          NAME                  GLOBAL        DATA
ELEMENT       TITLE                 LOCATION      TYPE
-----------------------------------------------------------------------------------------------------------------------------------
This file records sign-on/sign-off times by user, device, job, UCI, and CPU.  It is cross-referenced by user, device, and sign-off
time.  


COMPILED CROSS-REFERENCE ROUTINE: XUCT03
              DD ACCESS: @
              RD ACCESS: @
              WR ACCESS: @
             DEL ACCESS: @
           LAYGO ACCESS: @

   APPLICATION GROUP(S): XU

CROSS
REFERENCED BY: SIGNOFF TIME(AC), SIGNOFF TIME(AC2), SIGNOFF TIME(AC3), DEVICE(ALDEV), IPV4 ADDRESS(AS1), WORKSTATION NAME(AS2), 
               IPV4 ADDRESS(AS3), IPV6 ADDRESS(AS4), IPV6 ADDRESS(AS5), USER(CUR)

    LAST MODIFIED: FEB 11,2020@10:04:05

3.081,.001    DATE/TIME                  DATE

              INPUT TRANSFORM:  S %DT="ESTXR" D ^%DT S X=Y K:Y<1 X
              LAST EDITED:      MAR 26, 2003 
              DESCRIPTION:      This is the date/time that the user signed on.  To allow more than one sign-on per second the time
                                may have values that show hundredth of a second.  


3.081,.01     USER                   0;1 POINTER TO NEW PERSON FILE (#200) (Required)

              LAST EDITED:      JUN 18, 1991 
              DESCRIPTION:
                                This is the user that signed on.  

              DELETE AUTHORITY: #
              WRITE AUTHORITY:  #
              SOURCE OF DATA:   SIGN-ON SYSTEM
              CROSS-REFERENCE:  3.081^CUR^MUMPS 
                                1)= S ^XUSEC(0,"CUR",$E(X,1,30),DA)=""
                                2)= K ^XUSEC(0,"CUR",$E(X,1,30),DA)


3.081,1       DEVICE $I              0;2 FREE TEXT

              INPUT TRANSFORM:  K:$L(X)>30!($L(X)<1) X
              LAST EDITED:      MAR 26, 2003 
              HELP-PROMPT:      Answer must be 1-30 characters in length. 
              DESCRIPTION:
                                This is the device $I that the user signed on to.  


3.081,2       JOB                    0;3 NUMBER

              INPUT TRANSFORM:  K:+X'=X!(X>9999999)!(X<0)!(X?.E1"."1N.N) X
              HELP-PROMPT:      $J (PARTITION NUMBER) OF SIGN-ON 
              DESCRIPTION:
                                This is the job number of the user's job.  


3.081,3       SIGNOFF TIME           0;4 DATE

              INPUT TRANSFORM:  S %DT="ESTXR" D ^%DT S X=Y K:Y<1 X
              LAST EDITED:      JUN 02, 2014 
              DESCRIPTION:
                                This is the time that the user signed-off through H^XUS.  

              CROSS-REFERENCE:  3.081^AC^MUMPS 
                                1)= K ^XUSEC(0,"CUR",+^XUSEC(0,DA,0),DA)
                                2)= Q
                                3)= The CUR x-ref.
                                This X-ref clears ^XUSEC(0,'CUR' that keeps a list of user sign-ons that is used by the FIND USER
                                option.  


              CROSS-REFERENCE:  3.081^AC2^MUMPS 
                                1)= N %,Y S %=^XUSEC(0,DA,0) K:$L($P(%,U,11)) ^XUSEC(0,"AS1",$P($P(%,U,11),":"),DA) K:$L($P(%,U,12)
                                ) ^XUSEC(0,"AS2",$P($P(%,U,12),":"),DA) S Y=$G(^XUSEC(0,DA,1)) K:$L($P(Y,U)) ^XUSEC(0,"AS4",$P(Y,U)
                                ,DA)

                                2)= Q
                                3)= Remove the 'AS1, 'AS2', and 'AS4' x-ref
                                This cross-reference removes the 'AS1', 'AS2', and 'AS4' indexes when the sign-off time is entered.  


              CROSS-REFERENCE:  3.081^AC3^MUMPS 
                                1)= N %,Y S %=^XUSEC(0,DA,0) I $L($P(%,U,11)) K ^XUSEC(0,"AS3",$P(%,U),$P($P(%,U,11),":"),DA) S Y=$
                                G(^XUSEC(0,DA,1)) K:$L($P(Y,U)) ^XUSEC(0,"AS5",$P(%,U),$P(Y,U),DA)

                                2)= Q
                                3)= Remove the 'AS3' and 'AS5' x-ref
                                This cross reference removes the 'AS3' and 'AS5' indexes when the user is signed off. See fields
                                #11 and #100 for more info.  



3.081,4       CPU                    0;5 FREE TEXT

              INPUT TRANSFORM:  K:$L(X)>16!($L(X)<1) X
              LAST EDITED:      OCT 05, 1984 
              HELP-PROMPT:      ANSWER MUST BE 1-16 CHARACTERS IN LENGTH 
              DESCRIPTION:
                                This is the name of the CPU the user signed on to.  


3.081,5       DEVICE                 0;7 POINTER TO DEVICE FILE (#3.5)

              LAST EDITED:      MAR 26, 2003 
              DESCRIPTION:      This is a pointer to the Device file showing which device the user signed-on to. With network
                                devices this is not a very useful field anymore.  
                                 
                                The 'ALDEV' X-ref is used to tell which user last sign-on to this device and the X-ref is not
                                killed.  At the most there would be one entry for each entry in the device file.  

              CROSS-REFERENCE:  3.081^ALDEV^MUMPS 
                                1)= S ^XUSEC(0,"ALDEV",X)=+^XUSEC(0,DA,0)
                                2)= Q
                                3)= ALDEV
                                The 'ALDEV' X-ref is used to tell which user last sign-on to this device and the X-ref is not
                                killed.  At the most there would be one entry for each entry in the device file.  



3.081,6       UCI                    0;8 FREE TEXT

              INPUT TRANSFORM:  K:$L(X)>8!($L(X)<1) X
              LAST EDITED:      JUL 01, 1988 
              HELP-PROMPT:      Answer with the UCI the user signed into. 
              DESCRIPTION:
                                This field records the UCI account area where the user had signed on.  


3.081,7       TASK?                  0;6 SET

              Was this entry made by TaskMan?   
                                '1' FOR TASK; 
              LAST EDITED:      MAR 26, 2003 
              HELP-PROMPT:      This field should never be filled in by a user. 
              DESCRIPTION:      This field is set to 1 for entries that are created by TaskMan.  A field in the Kernel Site
                                Parameters file can be used to make TaskMan "log sign-ons" for tasks.  When that feature is active,
                                TaskMan makes an entry in this file every time it runs a task.  


3.081,9       $ZIO (optional)        0;9 FREE TEXT

              INPUT TRANSFORM:  K:$L(X)>30!($L(X)<1) X
              LAST EDITED:      AUG 01, 1988 
              HELP-PROMPT:      ANSWER MUST BE 1-30 CHARACTERS IN LENGTH 
              DESCRIPTION:      On a system with terminal servers this may be the port and server that the user is signed-on to. 
                                It can provide information not contained in $I.  


3.081,10      NODE NAME              0;10 FREE TEXT

              INPUT TRANSFORM:  K:$L(X)>15!($L(X)<2) X
              LAST EDITED:      MAR 26, 2003 
              HELP-PROMPT:      Answer must be 2-15 characters in length. 
              DESCRIPTION:
                                The VAX/VMS cluster node name or system name on other systems.  Comes from the GETENV^%ZOSV api.  

              TECHNICAL DESCR:
                                This is the 4th piece of $ZC(%GETSYI).  


3.081,11      IPV4 ADDRESS           0;11 FREE TEXT

              INPUT TRANSFORM:  K:$L(X)>20!($L(X)<7)!'(X?1.3N1P1.3N1P1.3N1P1.3N.E) X
              LAST EDITED:      MAY 30, 2014 
              HELP-PROMPT:      IPv4 address. Answer must be 7-20 characters in length. 
              DESCRIPTION:      This field holds the IPv4 address of the calling system. Note that under DHCP IP address are
                                dynamically allocated so more that one client could have used the same IP address over some time
                                period.  

              CROSS-REFERENCE:  3.081^AS1^MUMPS 
                                1)= S:'$P(^XUSEC(0,DA,0),U,4) ^XUSEC(0,"AS1",$P(X,":"),DA)=""
                                2)= K ^XUSEC(0,"AS1",$P(X,":"),DA)
                                3)= For Single sign-on
                                This index builds a list of IP addresses that the user may be at.  


              CROSS-REFERENCE:  3.081^AS3^MUMPS 
                                1)= N % S %=^XUSEC(0,DA,0) I '$P(%,U,4) S ^XUSEC(0,"AS3",$P(%,U),$P(X,":"),DA)=""
                                2)= N % S %=^XUSEC(0,DA,0) K ^XUSEC(0,"AS3",$P(%,U),$P(X,":"),DA)
                                3)= Multi sign-on control
                                This cross reference builds a list of the IP or DNS name used by a device.  This is used to limit
                                users to multiple sign-on from one IP address.  The X-ref in by DUZ,IP,DA.  



3.081,12      WORKSTATION NAME       0;12 FREE TEXT

              INPUT TRANSFORM:  K:$L(X)>20!($L(X)<3) X
              LAST EDITED:      FEB 10, 1997 
              HELP-PROMPT:      Answer must be 3-20 characters in length. 
              DESCRIPTION:      This field holds the workstation name if it has been provide by the underlaying OS or as part of a
                                RPCBroker signon.  

              CROSS-REFERENCE:  3.081^AS2^MUMPS 
                                1)= S:'$P(^XUSEC(0,DA,0),U,4) ^XUSEC(0,"AS2",$P(X,":"),DA)=""
                                2)= K ^XUSEC(0,"AS2",$P(X,":"),DA)
                                3)= For single sign-on
                                This index builds a list of WORKSTATION names that the user may be at.  



3.081,13      AUTO SIGNON HANDLE     0;13 FREE TEXT

              INPUT TRANSFORM:  K:$L(X)>15!($L(X)<7) X
              LAST EDITED:      DEC 13, 1999 
              HELP-PROMPT:      Answer must be 7-15 characters in length. 
              DESCRIPTION:      This field is used internally by the Kernel Auto Sign-on code to store the handle returned by the
                                ClientAgent on the users system.  


3.081,14      REMOTE STATION ID      0;14 FREE TEXT

              INPUT TRANSFORM:  K:$L(X)>6!($L(X)<3) X
              LAST EDITED:      FEB 08, 2000 
              HELP-PROMPT:      Answer must be 3-6 characters in length. 
              DESCRIPTION:      This field holds the station id (station #) of a remote site that did the user authentication.
                                Having this field filled in implies that the user did not sign-on to the local system but was
                                authenticated at some remote site that has requested data or services from this system.  The
                                Enterprise Single Sign-on, and the CPRS remote patient data projects use this field.  


3.081,15      REMOTE USER IEN        0;15 NUMBER

              INPUT TRANSFORM:  K:+X'=X!(X>999999999)!(X<.5)!(X?.E1"."1N.N) X
              LAST EDITED:      FEB 08, 2000 
              HELP-PROMPT:      Type a Number between .5 and 999999999, 0 Decimal Digits 
              DESCRIPTION:      This field holds the user IEN of a remote user that was authenticated at a remote site (field #14).  
                                Having this field filled in implies that the user did not sign-on to the local system but was
                                authenticated at some remote site that has requested data or services from this system.  The
                                Enterprise Single Sign-on, and the CPRS remote patient data projects use this field.  


3.081,16      FORCE CLOSE            0;16 SET

                                '0' FOR No; 
                                '1' FOR Yes; 
              LAST EDITED:      MAR 26, 2003 
              DESCRIPTION:      This field is a flag to indicate that the sign-on record was closed by some action other than a
                                normal sign-off. IRM used the 'Release User' option.  The nightly cleanup job closed the record
                                because it was open to long.  


3.081,17      DIVISION               0;17 POINTER TO INSTITUTION FILE (#4)

              Division   
              LAST EDITED:      SEP 19, 2007 
              DESCRIPTION:      This field holds the division that the user signed into.  It is used to set the division if the
                                user sign-on is thru AUTO SIGN-ON.  


3.081,18      REMOTE APP             0;18 POINTER TO REMOTE APPLICATION FILE (#8994.5)

              Remote App   
              LAST EDITED:      OCT 27, 2009 
              DESCRIPTION:      If the user came into the system by a remote application like CAPRI or VistAWeb then this will
                                point to the entry in the remote application file they used.  


3.081,60      CPU                    0;5 FREE TEXT

              INPUT TRANSFORM:  K:$L(X)>16!($L(X)<1) X
              LAST EDITED:      OCT 05, 1984 
              HELP-PROMPT:      ANSWER MUST BE 1-16 CHARACTERS IN LENGTH 
              DESCRIPTION:
                                This is the name of the CPU the user signed on to.  


3.081,97      ELAPSED TIME (SECONDS)  ;  COMPUTED

              MUMPS CODE:       X ^DD(3.081,97,9.4) S X=$S(Y(3.081,97,5):Y(3.081,97,6),Y(3.081,97,7):X) S Y=X,X=Y(3.081,97,3),X=X_Y
                                9.2 = S Y(3.081,97,2)=$S($D(^XUSEC(0,D0,0)):^(0),1:"") S X=$S('$D(D0):"",D0<0:"",1:D0),Y(3.081,97,1
                                )=X S X=$P(Y(3.081,97,2),U,4)
                                9.3 = X ^DD(3.081,97,9.2) S X1=Y(3.081,97,1) S X=$S(X&X1:X,1:"") Q:'X  D H^%DTC S XUS1=%H*86400+%T,
                                X=X1 D H^%DTC S XUS2=%H*86400+%T,X=$S(XUS1>XUS2:XUS1-XUS2,1:XUS2-XUS1) S X=X
                                9.4 = X ^DD(3.081,97,9.3) S Y(3.081,97,3)=X,Y(3.081,97,4)=X S X=$P(Y(3.081,97,2),U,16),X=X S X=X,Y(
                                3.081,97,5)=X S X="*",Y(3.081,97,6)=X S X=1,Y(3.081,97,7)=X S X=" "
              ALGORITHM:        XUDELTATIME(#.001,#3)_$S(INTERNAL(#16):"*",1:" ")
              LAST EDITED:      NOV 14, 2002 
              DESCRIPTION:
                                This field calculates the number of seconds between sign-on time and sign-off time.  


3.081,98      LOCATION                ;  COMPUTED

              MUMPS CODE:       X ^DD(3.081,98,9.2) S Y(3.081,98,101)=$S($D(^%ZIS(1,D0,1)):^(1),1:"") S X=$P(Y(3.081,98,101),U,1) S
                                 D0=Y(3.081,98,80)
                                9.2 = S Y(3.081,98,80)=$S($D(D0):D0,1:""),Y(3.081,98,1)=$S($D(^XUSEC(0,D0,0)):^(0),1:""),D0=$P(Y(3.
                                081,98,1),U,7) S:'$D(^%ZIS(1,+D0,0)) D0=-1
              ALGORITHM:        DEVICE:LOCATION
              LAST EDITED:      DEC 16, 1993 
              DESCRIPTION:
                                This is the location of the device which was used to sign on.  


3.081,99      ELAPSED TIME (MINUTES)  ;  COMPUTED

              MUMPS CODE:       X ^DD(3.081,99,9.6) S X=$S(Y(3.081,99,9):Y(3.081,99,10),Y(3.081,99,11):X) S Y=X,X=Y(3.081,99,7),X=X
                                _Y
                                9.2 = S Y(3.081,99,1)=$S($D(^XUSEC(0,D0,0)):^(0),1:"") S X=$P(Y(3.081,99,1),U,4),X=X S X=X,Y(3.081,
                                99,2)=$G(X),Y(3.081,99,3)=$G(X) S X=$P(Y(3.081,99,1),U,4)
                                9.3 = X ^DD(3.081,99,9.2) S Y(3.081,99,4)=$G(X) S X=$S('$D(D0):"",D0<0:"",1:D0)
                                9.4 = X ^DD(3.081,99,9.3) S X1=Y(3.081,99,4) S Y=$E(X1_"000",9,10)-$E(X_"000",9,10)*60+$E(X1_"00000
                                ",11,12)-$E(X_"00000",11,12),X2=X,X=$P(X,".",1)'=$P(X1,".",1) D ^%DTC:X S X=X*1440+Y S X=X
                                9.5 = X ^DD(3.081,99,9.4) S Y(3.081,99,5)=$G(X) S X=1,Y(3.081,99,6)=$G(X) S X="on line",X=$S(Y(3.08
                                1,99,2):Y(3.081,99,5),Y(3.081,99,6):X),Y(3.081,99,7)=$G(X)
                                9.6 = X ^DD(3.081,99,9.5) S Y(3.081,99,8)=$G(X) S X=$P(Y(3.081,99,1),U,16),X=X S X=X,Y(3.081,99,9)=
                                $G(X) S X="*",Y(3.081,99,10)=$G(X) S X=1,Y(3.081,99,11)=$G(X) S X=" "
              ALGORITHM:        $S(INTERNAL(#3):MINUTES(#3,#.001),1:"on line")_$S(INTERNAL(#16):"*",1:" ")
              LAST EDITED:      MAY 12, 2010 
              DESCRIPTION:
                                This is the amount of time the user has been signed on.  


3.081,100     IPV6 ADDRESS           1;1 FREE TEXT

              INPUT TRANSFORM:  S Y=$$FORCEIP6^XLFIPV(X) S X=Y K:Y="0000:0000:0000:0000:0000:0000:0000:0000" X
              LAST EDITED:      MAY 30, 2014 
              HELP-PROMPT:      Enter a valid IP address. IPv4 addresses will be stored as an IPv4-mapped IPv6 address. 
              DESCRIPTION:      This field holds the IPv6 address of the calling system. Note that under DHCP IP addresses are
                                dynamically allocated so more than one client could have used the same IP address over some time
                                period. Note also that under IPv6, each client could have more than one IP address. IPv4 addresses 
                                will be stored as IPv4-mapped IPv6 addresses, and all addresses will be stored in expanded IPv6
                                format.  

              NOTES:            XXXX--CAN'T BE ALTERED EXCEPT BY PROGRAMMER

              CROSS-REFERENCE:  3.081^AS4^MUMPS 
                                1)= S:'$P(^XUSEC(0,DA,0),U,4) ^XUSEC(0,"AS4",X,DA)=""
                                2)= K ^XUSEC(0,"AS4",X,DA)
                                3)= For Single sign-on
                                This index builds a list of IP addresses that the user may be at.  


              CROSS-REFERENCE:  3.081^AS5^MUMPS 
                                1)= N % S %=^XUSEC(0,DA,0) I '$P(%,U,4) S ^XUSEC(0,"AS5",$P(%,U),X,DA)=""
                                2)= N % S %=^XUSEC(0,DA,0) K ^XUSEC(0,"AS5",$P(%,U),X,DA)
                                3)= Multi sign-on control
                                This cross reference builds a list of the IP or DNS name used by a device.  This is used to limit
                                users to multiple sign-on from one IP address.  The X-ref is by DUZ,IP,DA.  



3.081,101     LEVEL OF ASSURANCE     1;2 FREE TEXT

              LOA   
              INPUT TRANSFORM:  K:$L(X)>1!($L(X)<1) X
              LAST EDITED:      MAY 28, 2015 
              HELP-PROMPT:      Answer must be 1 character in length. 
              DESCRIPTION:      Level of Assurance (LOA) of the authenticated user sign-on per guidance from OMB 04-04 and NIST SP
                                800-63-2.  
                                 
                                LOA=1 
                                   Little or no confidence exists in the asserted identity; usually self-asserted; essentially a
                                persistent identifier. Requires no identity proofing, allows any type of token including a simple
                                PIN. Examples: Old-style RPC Broker Visitor Access; Identification by DUZ without authentication
                                (re-authentication using DUZ only).  
                                 
                                LOA=2 
                                   Confidence exists that the asserted identity is accurate; used frequently for self-service
                                applications. Requires identity proofing, allows single-factor authentication. Passwords are the
                                norm at this level.  Examples: VistA Access and Verify Code; Windows Username and Password; Broker
                                Security Enhancement (BSE) Visitor Access; Auto sign-on and CCOW token re-authentication.  
                                 
                                LOA=3 
                                   High confidence in the asserted identity's accuracy; used to access restricted data. Requires
                                stringent identity proofing, multi-factor authentication, typically a password or biometric factor
                                used in combination with a 1) software token, 2) hardware token, or 3) one-time password device
                                token. Examples: OTP devices; X.509 user certificates.  
                                 
                                LOA=4 
                                   Very high confidence in the asserted identity's accuracy; used to access highly restricted data.
                                Requires stringent and in-person registration, multi-factor authentication with a hardware crypto
                                token (use of bearer tokens is not permitted). Examples: X.509 user certificates on a hardware
                                token that is FIPS 140-2 compliant; PIV card.  


3.081,102     CREDENTIAL TYPE        1;3 SET

                                '1' FOR AVCODES; 
                                '2' FOR SSOI; 
                                '3' FOR SSOE; 
                                '4' FOR BSETOKEN; 
                                '5' FOR CCOWTOKEN; 
                                '6' FOR ASHTOKEN; 
                                '7' FOR NHIN; 
                                '8' FOR NONE; 
                                '9' FOR UNKNOWN; 
              LAST EDITED:      OCT 28, 2019 
              HELP-PROMPT:      Enter the type of authentication credential 
              DESCRIPTION:
                                This field contains the value of the type of credential used during VistA Kernel sign-on.  


3.081,103     CREDENTIAL WARNINGS    1;4 FREE TEXT

              INPUT TRANSFORM:  K:$L(X)>80!($L(X)<1) X
              MAXIMUM LENGTH:   80
              LAST EDITED:      OCT 28, 2019 
              HELP-PROMPT:      Answer must be 1-80 characters in length. 
              DESCRIPTION:      The data in this field contains a list of credential verification failures that are considered
                                warnings, when the non-strict validation is used in the Kernel Systems Parameter file.  Example: 
                                CAFILE;DIGEST;SIGNATURE;EXPIRED 



      FILES POINTED TO                      FIELDS

DEVICE (#3.5)                     DEVICE (#5)

INSTITUTION (#4)                  DIVISION (#17)

NEW PERSON (#200)                 USER (#.01)

REMOTE APPLICATION (#8994.5)      REMOTE APP (#18)



INPUT TEMPLATE(S):

PRINT TEMPLATE(S):
CAPTIONED                                         USER #0    
XUSEC LIST                    OCT 23, 2019@14:57  USER #0                                                          SIGN-ON LOG List
XUSEC REMOTE ACCESS           SEP 02, 2015@07:25  USER #0                                            Remote Access User Sign-On Log

SORT TEMPLATE(S):
XU-SIGNON-USER                DEC 13, 1996@15:36  USER #0    
SORT BY: @TASK?// (TASK? not null)
  WITHIN TASK?, SORT BY: USER// (USER not null)
    WITHIN USER, SORT BY: @DATE/TIME// (DATE/TIME not null)

XUSEC REMOTE ACCESS           DEC 14, 2012@12:12  USER #0    
SORT BY: DATE/TIME//    (User is asked range)
  WITHIN DATE/TIME, SORT BY: REMOTE STATION ID// (REMOTE STATION ID not null)
     This SORT template is used to find the entries in the sign-on log created
     by Remote User Access.  This could be from ESSO or Remote RPC's.


FORM(S)/BLOCK(S):