STANDARD DATA DICTIONARY #704.005 -- CP_MOVEMENT_AUDIT FILE                                                       3/24/25    PAGE 1
STORED IN ^MDC(704.005,  *** NO DATA STORED YET ***   SITE: WWW.BMIRWIN.COM   UCI: VISTA,VISTA                     (VERSION 1.0)   

DATA          NAME                  GLOBAL        DATA
ELEMENT       TITLE                 LOCATION      TYPE
-----------------------------------------------------------------------------------------------------------------------------------
This file will hold a subset of patient movement data.  This must be done rather than using a direct reference to the PATIENT
MOVEMENT file (#405) because, in the instance of cancellations, the internal entry number (ien) of a patient movement disappears
before there is the chance to work with it.  This file will coalesce all of a movement's data to send to 3rd party users.  That
data is sent to 3rd party users via Health Level Seven (HL7) messaging.  To ensure that message is available to 3rd party users,
the ACCEPTED BY QUEUE field (#.09) is set to '1' to confirm the message is in the HL7 outbound queue; that CP MOVEMENT AUDIT file
entry will then need to be purged.  


              DD ACCESS: @
              RD ACCESS: @
              WR ACCESS: @
             DEL ACCESS: @
           LAYGO ACCESS: @
           AUDIT ACCESS: @

CROSS
REFERENCED BY: PATIENT(B)

INDEXED BY:    PIMS_EVENT_ID & PATIENT & WARD (APIMS), PATIENT & MESSAGE_TYPE & EVENT_TYPE & DATE_TIME_OF_EVENT (LAST), PATIENT &
               DATE_TIME_OF_EVENT & EVENT_TYPE (LSTMSG)




704.005,.01   PATIENT                0;1 POINTER TO PATIENT FILE (#2) (Required)

              LAST EDITED:      NOV 01, 2011 
              HELP-PROMPT:      Answer with a PATIENT identifier. 
              DESCRIPTION:
                                This field is the identifier of the patient involved in the patient movement event.  

              CROSS-REFERENCE:  704.005^B 
                                1)= S ^MDC(704.005,"B",$E(X,1,30),DA)=""
                                2)= K ^MDC(704.005,"B",$E(X,1,30),DA)
                                This will make it easy to find and sort the PATIENT(s) involved per patient movement data within
                                this file.  


              RECORD INDEXES:   APIMS (#910), LAST (#911), LSTMSG (#923)

704.005,.02   DATE_TIME_OF_EVENT     0;2 DATE

              INPUT TRANSFORM:  S %DT="ESTXR" D ^%DT S X=Y K:Y<1 X
              LAST EDITED:      NOV 01, 2011 
              HELP-PROMPT:      (No range limit on date) 
              DESCRIPTION:
                                This field stores the date/time of the patient movement event.  

              RECORD INDEXES:   LAST (#911), LSTMSG (#923)

704.005,.03   DIVISION               0;3 POINTER TO MEDICAL CENTER DIVISION FILE (#40.8)

              LAST EDITED:      MAR 27, 2009 
              HELP-PROMPT:      Answer with a MEDICAL CENTER DIVISION identifier. 
              DESCRIPTION:
                                This field identifies the DIVISION per the patient movement event.  


704.005,.04   WARD                   0;4 POINTER TO WARD LOCATION FILE (#42)

              LAST EDITED:      MAR 27, 2009 
              HELP-PROMPT:      Answer with a WARD LOCATION identifier. 
              DESCRIPTION:
                                This field identifies the WARD per the patient movement event.  

              RECORD INDEXES:   APIMS (#910)

704.005,.05   BED                    0;5 POINTER TO ROOM-BED FILE (#405.4)

              LAST EDITED:      MAR 27, 2009 
              HELP-PROMPT:      Answer with a ROOM-BED identifier. 
              DESCRIPTION:
                                This field identifies the room-BED per the patient movement event.  


704.005,.06   MESSAGE_TYPE           0;6 FREE TEXT

              INPUT TRANSFORM:  K:$L(X)>3!($L(X)<3) X
              LAST EDITED:      MAR 27, 2009 
              HELP-PROMPT:      Answer must be 3 characters in length 
              DESCRIPTION:      This indicates the HL7 MESSAGE TYPE.  The value here can be 'ADT' to indicate an
                                admission/discharge/transfer type message.  

              RECORD INDEXES:   LAST (#911)

704.005,.07   EVENT_TYPE             0;7 FREE TEXT

              INPUT TRANSFORM:  K:$L(X)>3!($L(X)<3) X
              LAST EDITED:      NOV 01, 2011 
              HELP-PROMPT:      Answer must be 3 characters in length 
              DESCRIPTION:      This indicates the HL7 message EVENT TYPE.  The value here can be 'A01' to indicate an Admit/visit
                                notification EVENT TYPE.  

              RECORD INDEXES:   LAST (#911), LSTMSG (#923)

704.005,.08   PIMS_EVENT_ID          0;8 FREE TEXT

              INPUT TRANSFORM:  K:$L(X)>20!($L(X)<1) X
              LAST EDITED:      MAR 30, 2009 
              HELP-PROMPT:      Answer must be 1-20 characters in length. 
              DESCRIPTION:      This is a copy of the internal entry number (ien) of the PATIENT MOVEMENT file (#405) entry which
                                correlates to this CP_MOVEMENT_AUDIT file entry.  
                                 
                                If a movement is deleted, the corresponding entry from the patient movement file is deleted as
                                well.  This prevents this field from being an actual pointer.  This IEN is used only for
                                troubleshooting purposes.  

              RECORD INDEXES:   APIMS (#910)

704.005,.09   ACCEPTED_BY_QUEUE      0;9 SET

                                '0' FOR NO; 
                                '1' FOR YES; 
              LAST EDITED:      SEP 23, 2011 
              HELP-PROMPT:      Has the message been placed in the HL7 outbound queue? 
              DESCRIPTION:
                                This indicates whether the HL7 message has been queued.  


704.005,.1    QUEUE_ERROR_MSG        .1;1 FREE TEXT

              INPUT TRANSFORM:  K:$L(X)>250!($L(X)<1) X
              LAST EDITED:      OCT 05, 2011 
              HELP-PROMPT:      Answer must be 1-250 characters in length. 
              DESCRIPTION:      This field stores the error message, if an error message is returned by the message queueing
                                process.  


704.005,.21   A08_TARGET             1.1;1 POINTER TO CP_PROTOCOL_LOCATION FILE (#704.006)

              LAST EDITED:      MAR 05, 2012 
              HELP-PROMPT:      Select the protocol to use for processing if the EVENT_TYPE (#.07) field = A08 
              DESCRIPTION:      This field contains a reference to the CP_PROTOCOL_LOCATION to use if the EVENT_TYPE (#.07) for
                                this movement is "A08".  The information will later be used by the dynamic addressing function of
                                HL7 to ensure that the outbound ADT message is sent to the correct location.  



      FILES POINTED TO                      FIELDS

CP_PROTOCOL_LOCATION (#704.006)   A08_TARGET (#.21)

MEDICAL CENTER DIVISION (#40.8)   DIVISION (#.03)

PATIENT (#2)                      PATIENT (#.01)

ROOM-BED (#405.4)                 BED (#.05)

WARD LOCATION (#42)               WARD (#.04)


File #704.005

  Record Indexes:

  APIMS (#910)    RECORD    REGULAR    IR    SORTING ONLY
      Short Descr:  Index by PIMS event ID
      Description:  This index will maintain a relationship with PIMS patient movement data.  Even when patient movement data may
                    no longer exist within the PIMS, this index maintains these relationships as needed by the CP Flowsheets.  
        Set Logic:  S ^MDC(704.005,"APIMS",$E(X(1),1,30),$E(X(2),1,30),$E(X(3),1,30),DA)=""
       Kill Logic:  K ^MDC(704.005,"APIMS",$E(X(1),1,30),$E(X(2),1,30),$E(X(3),1,30),DA)
       Whole Kill:  K ^MDC(704.005,"APIMS")
             X(1):  PIMS_EVENT_ID  (704.005,.08)  (Subscr 1)  (Len 30)  (forwards)
             X(2):  PATIENT  (704.005,.01)  (Subscr 2)  (Len 30)  (forwards)
             X(3):  WARD  (704.005,.04)  (Subscr 3)  (Len 30)  (forwards)

  LAST (#911)    RECORD    REGULAR    IR    LOOKUP & SORTING
      Short Descr:  Index by Patient, Message and Event type, and Date.
      Description:  This index will allow us to search for the most recent message type and event type for a patient.  The intended
                    use case is that, in some instances, cancellations of transfers or discharges may be sent several months after
                    the event to which they refer in order to make the G & L sheets balance correctly.  We will NOT wish to
                    propagate these events to the devices.  So, if we receive a movement cancel request (an A11, A12, or A13), we
                    will check to see what the most recent movement was.  If it doesn't match what was in the most recent A01, A02,
                    or A03, then we'll just drop the message.  
        Set Logic:  S ^MDC(704.005,"LAST",$E(X(1),1,30),$E(X(2),1,3),$E(X(3),1,3),$E(X(4),1,15),DA)=""
       Kill Logic:  K ^MDC(704.005,"LAST",$E(X(1),1,30),$E(X(2),1,3),$E(X(3),1,3),$E(X(4),1,15),DA)
       Whole Kill:  K ^MDC(704.005,"LAST")
             X(1):  PATIENT  (704.005,.01)  (Subscr 1)  (Len 30)  (forwards)
             X(2):  MESSAGE_TYPE  (704.005,.06)  (Subscr 2)  (Len 3)  (forwards)
             X(3):  EVENT_TYPE  (704.005,.07)  (Subscr 3)  (Len 3)  (forwards)
             X(4):  DATE_TIME_OF_EVENT  (704.005,.02)  (Subscr 4)  (Len 15)  (backwards)

  LSTMSG (#923)    RECORD    REGULAR    IR    LOOKUP & SORTING
      Short Descr:  Keeps track of absolute last message sent.
        Set Logic:  S ^MDC(704.005,"LSTMSG",$E(X(1),1,99),$E(X(2),1,14),$E(X(3),1,30),DA)=""
         Set Cond:  S X=(X2(3)'="A08")
       Kill Logic:  K ^MDC(704.005,"LSTMSG",$E(X(1),1,99),$E(X(2),1,14),$E(X(3),1,30),DA)
       Whole Kill:  K ^MDC(704.005,"LSTMSG")
             X(1):  PATIENT  (704.005,.01)  (Subscr 1)  (Len 99)  (forwards)
             X(2):  DATE_TIME_OF_EVENT  (704.005,.02)  (Subscr 2)  (Len 14)  (backwards)
             X(3):  EVENT_TYPE  (704.005,.07)  (Subscr 3)  (Len 30)  (forwards)


INPUT TEMPLATE(S):

PRINT TEMPLATE(S):

SORT TEMPLATE(S):

FORM(S)/BLOCK(S):