PRSNRMM1 ;WOIFO-JAH - POC Record and Timecard Mismatches;07/31/09
;;4.0;PAID;**126,142**;Sep 21, 1995;Build 5
;;Per VHA Directive 6402, this routine should not be modified.
Q
;
NURSE ;Nurse view their own mismatch data entry point
N PRSIEN,SSN,X
S PRSIEN="",SSN=$P($G(^VA(200,DUZ,1)),"^",9)
I SSN'="" S PRSIEN=$O(^PRSPC("SSN",SSN,0))
I 'PRSIEN D Q
. W !!,*7
. W "Your SSN was not found in both the New Person & Employee File!"
;
; if not in 450 as a nurse then explain and quit
I +$$ISNURSE^PRSNUT01(PRSIEN)'>0 D NOTNRSDX Q
;
; get pay period and report mismatches
D MAIN(PRSIEN)
Q
;
NOTNRSDX ;
N X
W !!,*7
W ?5,"Your PAID-ETA parameters for your current log on do not reflect"
W !,?5,"the parameters required for Nursing Point of Care Data.",!
S X=$$ASK^PRSLIB00(1)
Q
COORD ;VANOD Site Coordinator entry point
; Coordinator has no access limits so let them pick any nurse
N DIC,X,Y,DUOUT,DTOUT,PRSIEN
S DIC="^PRSPC(",DIC(0)="AEQMZ",DIC("S")="I $$ISNURSE^PRSNUT01(Y)"
D ^DIC
Q:Y'>0!$D(DTOUT)!$D(DUOUT)
S PRSIEN=$P(Y,U)
D MAIN(PRSIEN)
Q
;
DAP ; POC data approval personnel entry point
N GROUP,VALUE,PRSIEN
; prompt DEP to select a group to report on. They must have
; access to the group.
;
D ACCESS^PRSNUT02(.GROUP,"A",DT,0)
;
; quit if any error during group selection
I $P($G(GROUP(0)),U,2)="E" W !!!,?4,$P(GROUP(0),U,3) S X=$$ASK^PRSLIB00(1) Q
S VALUE=+GROUP($O(GROUP(0)))
Q:VALUE'>0
S PRSIEN=+$$PICKNURS^PRSNUT03($P(GROUP(0),U,2),VALUE)
Q:PRSIEN'>0
D MAIN(PRSIEN)
Q
;
DEP ; Entry point for mismatches for Data Entry Personnel.
;
N GROUP,VALUE,PRSIEN
; prompt DEP to select a group to report on. They must have
; access to the group.
;
D ACCESS^PRSNUT02(.GROUP,"E",DT,0)
;
; quit if any error during group selection
I $P($G(GROUP(0)),U,2)="E" W !!!,?4,$P(GROUP(0),U,3) S X=$$ASK^PRSLIB00(1) Q
S VALUE=+GROUP($O(GROUP(0)))
Q:VALUE'>0
S PRSIEN=+$$PICKNURS^PRSNUT03($P(GROUP(0),U,2),VALUE)
Q:PRSIEN'>0
D MAIN(PRSIEN)
Q
;
;= = = = = = = = = = = = = = = = = =
;
MAIN(PRSIEN) ;
;
N DIC,X,Y,DUOUT,DTOUT,PPI
MAIN1 ;
S DIC="^PRSN(451,",DIC(0)="AEQMZ"
S DIC("A")="Select a Pay Period: "
D ^DIC
Q:$D(DUOUT)!$D(DTOUT)
I $G(Y)'>0 W $C(7)," Invalid Pay Period" G MAIN1
S PPI=+Y
N %ZIS,POP,IOP
S %ZIS="MQ"
D ^%ZIS
Q:POP
I $D(IO("Q")) D
. K IO("Q")
. N ZTSK,ZTDESC,ZTDTH,ZTIO,ZTRTN,ZTSAVE,ZTUCI,ZTCPU,ZTPRI,ZTKIL,ZTSYNC
. S ZTDESC="PRSN POC/ETA MISMATCH REPORT"
. S ZTRTN="REP^PRSNRMM1"
. S ZTSAVE("PRSIEN")=""
. S ZTSAVE("PPI")=""
. D ^%ZTLOAD
. I $D(ZTSK) S ZTREQ="@" W !,"Request "_ZTSK_" Queued."
E D
. D REP
Q
;
REP ;
U IO
D PPMM^PRSNRMM(PRSIEN,PPI)
W !!,"End of Report"
D ^%ZISC
Q
;
TL ;Entry point for T&L Unit report
; Report has no access limits so let them pick any T&L group
N GROUP
D PIKGROUP^PRSNUT04(.GROUP,"T",1)
; quit if any error during group selection
I $P($G(GROUP(0)),U,2)="E" D Q
.W !,$P(GROUP(0),U,3)
D TLMAIN
Q
;
TLMAIN ;
;
N DIC,X,Y,DUOUT,DTOUT,PPI
TLMAIN1 ;
S DIC="^PRSN(451,",DIC(0)="AEQMZ"
S DIC("A")="Select a Pay Period: "
D ^DIC
Q:$D(DUOUT)!$D(DTOUT)
I $G(Y)'>0 W $C(7)," Invalid Pay Period" G TLMAIN1
S PPI=+Y
N %ZIS,POP,IOP
S %ZIS="MQ"
D ^%ZIS
Q:POP
I $D(IO("Q")) D
. K IO("Q")
. N ZTSK,ZTDESC,ZTDTH,ZTIO,ZTRTN,ZTSAVE,ZTUCI,ZTCPU,ZTPRI,ZTKIL,ZTSYNC
. S ZTDESC="PRSN POC/ETA MISMATCH REPORT"
. S ZTRTN="MMREP^PRSNRMM1"
. S ZTSAVE("GROUP(")=""
. S ZTSAVE("PPI")=""
. D ^%ZTLOAD
. I $D(ZTSK) S ZTREQ="@" W !,"Request "_ZTSK_" Queued."
E D
. D MMREP
Q
;
MMREP ;
N PRSIEN,PRSNG,PRSNARY,PRSNTL,PICK,PG,STOP
K ^TMP($J,"PRSNRMM")
U IO
S (PICK,PG,STOP)=0
F S PICK=$O(GROUP(PICK)) Q:PICK=""!STOP D
. S PRSNG=GROUP(0)_"^"_PICK_"^"_GROUP(PICK)
. S PRSIEN=0
. F S PRSIEN=$O(^PRSN(451,PPI,"E",PRSIEN)) Q:PRSIEN'>0!STOP D
.. S PRSNARY=$G(^PRSPC(PRSIEN,0))
.. S PRSNAME=$P(PRSNARY,U) ;Nurse Name
.. S PRSNTL=$P(PRSNARY,U,8) ;Nurse T&L
.. Q:PRSNTL'=PICK
.. S ^TMP($J,"PRSNRMM",PICK,PRSNAME,PRSIEN)=""
;
S PICK=0
F S PICK=$O(^TMP($J,"PRSNRMM",PICK)) Q:PICK=""!STOP D
. W !!,"T&L UNIT: ",PICK
. S PRSNAME=""
. F S PRSNAME=$O(^TMP($J,"PRSNRMM",PICK,PRSNAME)) Q:PRSNAME=""!STOP D
.. ; Patch PRS*4.0*142 uses "" instead of the PRSIEN variable in the line below. This is to prevent the first entry from being skipped if PRSIEN has a value going in.
.. S PRSIEN=$O(^TMP($J,"PRSNRMM",PICK,PRSNAME,"")) Q:PRSIEN=""!STOP D
... D PPMM^PRSNRMM(PRSIEN,PPI,.PG,.STOP)
;
W !!,"End of Report"
D ^%ZISC
K ^TMP($J,"PRSNRMM")
Q
;
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HPRSNRMM1 4690 printed Oct 16, 2024@18:28:14 Page 2
PRSNRMM1 ;WOIFO-JAH - POC Record and Timecard Mismatches;07/31/09
+1 ;;4.0;PAID;**126,142**;Sep 21, 1995;Build 5
+2 ;;Per VHA Directive 6402, this routine should not be modified.
+3 QUIT
+4 ;
NURSE ;Nurse view their own mismatch data entry point
+1 NEW PRSIEN,SSN,X
+2 SET PRSIEN=""
SET SSN=$PIECE($GET(^VA(200,DUZ,1)),"^",9)
+3 IF SSN'=""
SET PRSIEN=$ORDER(^PRSPC("SSN",SSN,0))
+4 IF 'PRSIEN
Begin DoDot:1
+5 WRITE !!,*7
+6 WRITE "Your SSN was not found in both the New Person & Employee File!"
End DoDot:1
QUIT
+7 ;
+8 ; if not in 450 as a nurse then explain and quit
+9 IF +$$ISNURSE^PRSNUT01(PRSIEN)'>0
DO NOTNRSDX
QUIT
+10 ;
+11 ; get pay period and report mismatches
+12 DO MAIN(PRSIEN)
+13 QUIT
+14 ;
NOTNRSDX ;
+1 NEW X
+2 WRITE !!,*7
+3 WRITE ?5,"Your PAID-ETA parameters for your current log on do not reflect"
+4 WRITE !,?5,"the parameters required for Nursing Point of Care Data.",!
+5 SET X=$$ASK^PRSLIB00(1)
+6 QUIT
COORD ;VANOD Site Coordinator entry point
+1 ; Coordinator has no access limits so let them pick any nurse
+2 NEW DIC,X,Y,DUOUT,DTOUT,PRSIEN
+3 SET DIC="^PRSPC("
SET DIC(0)="AEQMZ"
SET DIC("S")="I $$ISNURSE^PRSNUT01(Y)"
+4 DO ^DIC
+5 if Y'>0!$DATA(DTOUT)!$DATA(DUOUT)
QUIT
+6 SET PRSIEN=$PIECE(Y,U)
+7 DO MAIN(PRSIEN)
+8 QUIT
+9 ;
DAP ; POC data approval personnel entry point
+1 NEW GROUP,VALUE,PRSIEN
+2 ; prompt DEP to select a group to report on. They must have
+3 ; access to the group.
+4 ;
+5 DO ACCESS^PRSNUT02(.GROUP,"A",DT,0)
+6 ;
+7 ; quit if any error during group selection
+8 IF $PIECE($GET(GROUP(0)),U,2)="E"
WRITE !!!,?4,$PIECE(GROUP(0),U,3)
SET X=$$ASK^PRSLIB00(1)
QUIT
+9 SET VALUE=+GROUP($ORDER(GROUP(0)))
+10 if VALUE'>0
QUIT
+11 SET PRSIEN=+$$PICKNURS^PRSNUT03($PIECE(GROUP(0),U,2),VALUE)
+12 if PRSIEN'>0
QUIT
+13 DO MAIN(PRSIEN)
+14 QUIT
+15 ;
DEP ; Entry point for mismatches for Data Entry Personnel.
+1 ;
+2 NEW GROUP,VALUE,PRSIEN
+3 ; prompt DEP to select a group to report on. They must have
+4 ; access to the group.
+5 ;
+6 DO ACCESS^PRSNUT02(.GROUP,"E",DT,0)
+7 ;
+8 ; quit if any error during group selection
+9 IF $PIECE($GET(GROUP(0)),U,2)="E"
WRITE !!!,?4,$PIECE(GROUP(0),U,3)
SET X=$$ASK^PRSLIB00(1)
QUIT
+10 SET VALUE=+GROUP($ORDER(GROUP(0)))
+11 if VALUE'>0
QUIT
+12 SET PRSIEN=+$$PICKNURS^PRSNUT03($PIECE(GROUP(0),U,2),VALUE)
+13 if PRSIEN'>0
QUIT
+14 DO MAIN(PRSIEN)
+15 QUIT
+16 ;
+17 ;= = = = = = = = = = = = = = = = = =
+18 ;
MAIN(PRSIEN) ;
+1 ;
+2 NEW DIC,X,Y,DUOUT,DTOUT,PPI
MAIN1 ;
+1 SET DIC="^PRSN(451,"
SET DIC(0)="AEQMZ"
+2 SET DIC("A")="Select a Pay Period: "
+3 DO ^DIC
+4 if $DATA(DUOUT)!$DATA(DTOUT)
QUIT
+5 IF $GET(Y)'>0
WRITE $CHAR(7)," Invalid Pay Period"
GOTO MAIN1
+6 SET PPI=+Y
+7 NEW %ZIS,POP,IOP
+8 SET %ZIS="MQ"
+9 DO ^%ZIS
+10 if POP
QUIT
+11 IF $DATA(IO("Q"))
Begin DoDot:1
+12 KILL IO("Q")
+13 NEW ZTSK,ZTDESC,ZTDTH,ZTIO,ZTRTN,ZTSAVE,ZTUCI,ZTCPU,ZTPRI,ZTKIL,ZTSYNC
+14 SET ZTDESC="PRSN POC/ETA MISMATCH REPORT"
+15 SET ZTRTN="REP^PRSNRMM1"
+16 SET ZTSAVE("PRSIEN")=""
+17 SET ZTSAVE("PPI")=""
+18 DO ^%ZTLOAD
+19 IF $DATA(ZTSK)
SET ZTREQ="@"
WRITE !,"Request "_ZTSK_" Queued."
End DoDot:1
+20 IF '$TEST
Begin DoDot:1
+21 DO REP
End DoDot:1
+22 QUIT
+23 ;
REP ;
+1 USE IO
+2 DO PPMM^PRSNRMM(PRSIEN,PPI)
+3 WRITE !!,"End of Report"
+4 DO ^%ZISC
+5 QUIT
+6 ;
TL ;Entry point for T&L Unit report
+1 ; Report has no access limits so let them pick any T&L group
+2 NEW GROUP
+3 DO PIKGROUP^PRSNUT04(.GROUP,"T",1)
+4 ; quit if any error during group selection
+5 IF $PIECE($GET(GROUP(0)),U,2)="E"
Begin DoDot:1
+6 WRITE !,$PIECE(GROUP(0),U,3)
End DoDot:1
QUIT
+7 DO TLMAIN
+8 QUIT
+9 ;
TLMAIN ;
+1 ;
+2 NEW DIC,X,Y,DUOUT,DTOUT,PPI
TLMAIN1 ;
+1 SET DIC="^PRSN(451,"
SET DIC(0)="AEQMZ"
+2 SET DIC("A")="Select a Pay Period: "
+3 DO ^DIC
+4 if $DATA(DUOUT)!$DATA(DTOUT)
QUIT
+5 IF $GET(Y)'>0
WRITE $CHAR(7)," Invalid Pay Period"
GOTO TLMAIN1
+6 SET PPI=+Y
+7 NEW %ZIS,POP,IOP
+8 SET %ZIS="MQ"
+9 DO ^%ZIS
+10 if POP
QUIT
+11 IF $DATA(IO("Q"))
Begin DoDot:1
+12 KILL IO("Q")
+13 NEW ZTSK,ZTDESC,ZTDTH,ZTIO,ZTRTN,ZTSAVE,ZTUCI,ZTCPU,ZTPRI,ZTKIL,ZTSYNC
+14 SET ZTDESC="PRSN POC/ETA MISMATCH REPORT"
+15 SET ZTRTN="MMREP^PRSNRMM1"
+16 SET ZTSAVE("GROUP(")=""
+17 SET ZTSAVE("PPI")=""
+18 DO ^%ZTLOAD
+19 IF $DATA(ZTSK)
SET ZTREQ="@"
WRITE !,"Request "_ZTSK_" Queued."
End DoDot:1
+20 IF '$TEST
Begin DoDot:1
+21 DO MMREP
End DoDot:1
+22 QUIT
+23 ;
MMREP ;
+1 NEW PRSIEN,PRSNG,PRSNARY,PRSNTL,PICK,PG,STOP
+2 KILL ^TMP($JOB,"PRSNRMM")
+3 USE IO
+4 SET (PICK,PG,STOP)=0
+5 FOR
SET PICK=$ORDER(GROUP(PICK))
if PICK=""!STOP
QUIT
Begin DoDot:1
+6 SET PRSNG=GROUP(0)_"^"_PICK_"^"_GROUP(PICK)
+7 SET PRSIEN=0
+8 FOR
SET PRSIEN=$ORDER(^PRSN(451,PPI,"E",PRSIEN))
if PRSIEN'>0!STOP
QUIT
Begin DoDot:2
+9 SET PRSNARY=$GET(^PRSPC(PRSIEN,0))
+10 ;Nurse Name
SET PRSNAME=$PIECE(PRSNARY,U)
+11 ;Nurse T&L
SET PRSNTL=$PIECE(PRSNARY,U,8)
+12 if PRSNTL'=PICK
QUIT
+13 SET ^TMP($JOB,"PRSNRMM",PICK,PRSNAME,PRSIEN)=""
End DoDot:2
End DoDot:1
+14 ;
+15 SET PICK=0
+16 FOR
SET PICK=$ORDER(^TMP($JOB,"PRSNRMM",PICK))
if PICK=""!STOP
QUIT
Begin DoDot:1
+17 WRITE !!,"T&L UNIT: ",PICK
+18 SET PRSNAME=""
+19 FOR
SET PRSNAME=$ORDER(^TMP($JOB,"PRSNRMM",PICK,PRSNAME))
if PRSNAME=""!STOP
QUIT
Begin DoDot:2
+20 ; Patch PRS*4.0*142 uses "" instead of the PRSIEN variable in the line below. This is to prevent the first entry from being skipped if PRSIEN has a value going in.
+21 SET PRSIEN=$ORDER(^TMP($JOB,"PRSNRMM",PICK,PRSNAME,""))
if PRSIEN=""!STOP
QUIT
Begin DoDot:3
+22 DO PPMM^PRSNRMM(PRSIEN,PPI,.PG,.STOP)
End DoDot:3
End DoDot:2
End DoDot:1
+23 ;
+24 WRITE !!,"End of Report"
+25 DO ^%ZISC
+26 KILL ^TMP($JOB,"PRSNRMM")
+27 QUIT
+28 ;