DVBCWKSHT ;ALB/CP/JD - CAPRI 2507 Worksheet Updates; July 11, 2023@14:08 ; 3/20/24 3:55pm
;;2.7;AMIE;**252,254**;Apr 10, 1995;Build 41
; Per VHA Directive 6402 this routine should not be modified
; Reference to $$NOW^XLFDT and $$FMTE^XLFDT in ICR #10103
; Reference to UP^XLFSTR in ICR #10104
; Reference to OWNSKEY^XUSRB ICR #3277: Verify Security Keys Assigned to a User
Q
;
;Added DVBF1 (Acceptable Clinical Evidence (ACE)) as a new parameter for CAPRI-13939. JD - 10/3/24
;Added DVBF12 (IEPD version number) as a new parameter - CAPRI-9566. JD - 4/23/24
;Adding check for Signed worksheet to block Document Manager Update CAPRI-12506 CP 7-31-24
WKSHTSAVE(DVBRTN,DVBIEN,DVBAUTH,DVBTRAN,DVBDBQ,DVBF19,DVBF20,DVBF21,DVBF12,DVBF1) ;
;RPC: DVBA CAPRI WORKSHEET UPDATE
;Updates CAPRI-16627 CP 3/10/25
;K DIC,DIE,DA,DR,DLAYGO,X,Y
N DVBERROR,DVBTEMPER,DVBLRTN,DVBDTTM,DVBLOCKDT
S DVBUPDFG=""
;
I DVBAUTH'="" D
. I DVBAUTH'?1.N S DVBRTN(1)="-1^Author Invalid Format" Q
. ;Adding check for Locked worksheet CAPRI-12506 CP 7-30-24
. S DVBLOCKDT=$P($G(^DVB(396.17,DVBIEN,0)),U,5)
. I DVBLOCKDT'="2800101" S DVBRTN(1)="-1^Worksheet is Signed and Locked, Can not Update Document Manager" Q
. S DVBAFDA(396.17,DVBIEN_",",2)=DVBAUTH
. K DVBTEMPER D FILE^DIE(,"DVBAFDA","DVBTEMPER")
. I $G(DVBTEMPER)'="" M DVBERROR=DVBTEMPER
. I $G(DVBTEMPER)="" S DVBRTN(1)="1^Document Manager has been updated",DVBUPDFG=1
. Q
I DVBTRAN'="" D
. I DVBTRAN'?1.N S DVBRTN(2)="-1^Transcriber Invalid Format" Q
. S DVBAFDA(396.17,DVBIEN_",",10)=DVBTRAN
. K DVBTEMPER D FILE^DIE(,"DVBAFDA","DVBTEMPER")
. I $G(DVBTEMPER)'="" M DVBERROR=DVBTEMPER
. I $G(DVBTEMPER)="" S DVBRTN(2)="1^Transcriber has been updated",DVBUPDFG=1
. Q
I DVBDBQ'="" D
. I "YN"'[DVBDBQ S DVBRTN(3)="-1^DBQ Referral Invalid Format" Q
. S DVBAFDA(396.17,DVBIEN_",",25)=DVBDBQ
. K DVBTEMPER D FILE^DIE(,"DVBAFDA","DVBTEMPER")
. I $G(DVBTEMPER)'="" M DVBERROR=DVBTEMPER
. I $G(DVBTEMPER)="" S DVBRTN(3)="1^DBQ Referral has been updated",DVBUPDFG=1
. Q
I DVBF19'="" D
. I "01@"'[DVBF19 S DVBRTN(4)="-1^New Flag Invalid Format" Q
. S DVBAFDA(396.17,DVBIEN_",",19)=DVBF19
. K DVBTEMPER D FILE^DIE(,"DVBAFDA","DVBTEMPER")
. I $G(DVBTEMPER)'="" M DVBERROR=DVBTEMPER
. I $G(DVBTEMPER)="" S DVBRTN(4)="1^New Flag has been updated",DVBUPDFG=1
. Q
I DVBF20'="" D
. I "01@"'[DVBF20 S DVBRTN(5)="-1^Green Flag Invalid Format" Q
. S DVBAFDA(396.17,DVBIEN_",",20)=DVBF20
. K DVBTEMPER D FILE^DIE(,"DVBAFDA","DVBTEMPER")
. I $G(DVBTEMPER)'="" M DVBERROR=DVBTEMPER
. I $G(DVBTEMPER)="" S DVBRTN(5)="1^Green Flag has been updated",DVBUPDFG=1
. Q
I DVBF21'="" D
. I "01@"'[DVBF21 S DVBRTN(6)="-1^Exclamation Flag Invalid Format" Q
. S DVBAFDA(396.17,DVBIEN_",",21)=DVBF21
. K DVBTEMPER D FILE^DIE(,"DVBAFDA","DVBTEMPER")
. I $G(DVBTEMPER)'="" M DVBERROR=DVBTEMPER
. I $G(DVBTEMPER)="" S DVBRTN(6)="1^Exclamation Flag has been updated",DVBUPDFG=1
. Q
;Next IF block is added for CAPRI-9566.
I DVBF12'="" D
. I $L(DVBF12)<2!($L(DVBF12)>250) S DVBRTN(7)="-1^IEPD version number is free text between 2 and 250 characters long" Q
. S DVBAFDA(396.17,DVBIEN_",",12)=DVBF12
. K DVBTEMPER D FILE^DIE(,"DVBAFDA","DVBTEMPER")
. I $G(DVBTEMPER)'="" M DVBERROR=DVBTEMPER
. I $G(DVBTEMPER)="" S DVBRTN(7)="1^IEPD version number has been updated",DVBUPDFG=1
. Q
;Next IF block is added for CAPRI-13939.
I $G(DVBF1)'="" D
. N DVBF1S
. S DVBF1S=$$UP^XLFSTR($E(DVBF1))
. I "YN"'[DVBF1S S DVBRTN(8)="-1^Acceptable Clinical Evidence (ACE) is a Yes/No field. Received: "_DVBF1 Q
. S DVBAFDA(396.17,DVBIEN_",",1)=DVBF1S
. K DVBTEMPER D FILE^DIE(,"DVBAFDA","DVBTEMPER")
. I $G(DVBTEMPER)'="" M DVBERROR=DVBTEMPER
. I $G(DVBTEMPER)="" S DVBRTN(8)="1^Acceptable Clinical Evidence (ACE) has been updated",DVBUPDFG=1
. Q
I DVBUPDFG'="" D
. S DVBDTTM=$$NOW^XLFDT
. S DVBAFDA(396.17,DVBIEN_",",4)=DVBDTTM
. K DVBTEMPER D FILE^DIE(,"DVBAFDA","DVBTEMPER")
. I $G(DVBTEMPER)'="" M DVBERROR=DVBTEMPER
. I $G(DVBTEMPER)="" S DVBRTN(0)="1^Updated Record Date/Time"
. Q
I $G(DVBERROR)'="" S DVBRTN("ERR")=DVBERROR
;Added DVBF12 to the list
;Added DVBF1 to the list
K DVBAFDA,DVBAUTH,DVBTRAN,DVBDBQ,DVBF1,DVBF12,DVBF19,DVBF20,DVBF21,DVBERROR,DVBTEMPER,DVBLRTN,DVBDTTM,DVBUPDFG,DVBLOCKDT
Q
OPENCHECK(DVBRTN,DVBIEN) ;
;RPC: DVBA CAPRI OPEN ACCESS CHECK
;CAPRI-18210 CP 4/17/25
N DVBKY,DVBDOCMAN,DVBTRANS,DVBWORKOG
;
I DVBIEN="" S DVBRTN="-1^Missing Worksheet Number." Q
I $D(^DVB(396.17,DVBIEN))<10 S DVBRTN="-1^No Worksheet data found." Q
S DVBRTN=0
;
D OWNSKEY^XUSRB(.DVBKY,"DVBAB CPWM REVIEWER",DUZ)
I $G(DVBKY(0)) S DVBRTN=1 Q
I $G(DUZ(0))="@" S DVBRTN=1 Q
;
S DVBDOCMAN=$P($G(^DVB(396.17,DVBIEN,0)),U,2)
I DVBDOCMAN="" S DVBRTN="-1^Missing Document Manager" Q
I DVBDOCMAN=DUZ S DVBRTN=1 Q
S DVBTRANS=$P($G(^DVB(396.17,DVBIEN,5)),U,1)
I DVBTRANS="" S DVBRTN="-1^Missing Transcriber" Q
I DVBTRANS=DUZ S DVBRTN=1 Q
S DVBWORKOG=$P($G(^DVB(396.17,DVBIEN,0)),U,6)
I DVBWORKOG="" S DVBRTN="-1^Missing Worksheet Originator" Q
I DVBWORKOG=DUZ S DVBRTN=1 Q
;
Q
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HDVBCWKSHT 5172 printed Sep 23, 2025@19:28:16 Page 2
DVBCWKSHT ;ALB/CP/JD - CAPRI 2507 Worksheet Updates; July 11, 2023@14:08 ; 3/20/24 3:55pm
+1 ;;2.7;AMIE;**252,254**;Apr 10, 1995;Build 41
+2 ; Per VHA Directive 6402 this routine should not be modified
+3 ; Reference to $$NOW^XLFDT and $$FMTE^XLFDT in ICR #10103
+4 ; Reference to UP^XLFSTR in ICR #10104
+5 ; Reference to OWNSKEY^XUSRB ICR #3277: Verify Security Keys Assigned to a User
+6 QUIT
+7 ;
+8 ;Added DVBF1 (Acceptable Clinical Evidence (ACE)) as a new parameter for CAPRI-13939. JD - 10/3/24
+9 ;Added DVBF12 (IEPD version number) as a new parameter - CAPRI-9566. JD - 4/23/24
+10 ;Adding check for Signed worksheet to block Document Manager Update CAPRI-12506 CP 7-31-24
WKSHTSAVE(DVBRTN,DVBIEN,DVBAUTH,DVBTRAN,DVBDBQ,DVBF19,DVBF20,DVBF21,DVBF12,DVBF1) ;
+1 ;RPC: DVBA CAPRI WORKSHEET UPDATE
+2 ;Updates CAPRI-16627 CP 3/10/25
+3 ;K DIC,DIE,DA,DR,DLAYGO,X,Y
+4 NEW DVBERROR,DVBTEMPER,DVBLRTN,DVBDTTM,DVBLOCKDT
+5 SET DVBUPDFG=""
+6 ;
+7 IF DVBAUTH'=""
Begin DoDot:1
+8 IF DVBAUTH'?1.N
SET DVBRTN(1)="-1^Author Invalid Format"
QUIT
+9 ;Adding check for Locked worksheet CAPRI-12506 CP 7-30-24
+10 SET DVBLOCKDT=$PIECE($GET(^DVB(396.17,DVBIEN,0)),U,5)
+11 IF DVBLOCKDT'="2800101"
SET DVBRTN(1)="-1^Worksheet is Signed and Locked, Can not Update Document Manager"
QUIT
+12 SET DVBAFDA(396.17,DVBIEN_",",2)=DVBAUTH
+13 KILL DVBTEMPER
DO FILE^DIE(,"DVBAFDA","DVBTEMPER")
+14 IF $GET(DVBTEMPER)'=""
MERGE DVBERROR=DVBTEMPER
+15 IF $GET(DVBTEMPER)=""
SET DVBRTN(1)="1^Document Manager has been updated"
SET DVBUPDFG=1
+16 QUIT
End DoDot:1
+17 IF DVBTRAN'=""
Begin DoDot:1
+18 IF DVBTRAN'?1.N
SET DVBRTN(2)="-1^Transcriber Invalid Format"
QUIT
+19 SET DVBAFDA(396.17,DVBIEN_",",10)=DVBTRAN
+20 KILL DVBTEMPER
DO FILE^DIE(,"DVBAFDA","DVBTEMPER")
+21 IF $GET(DVBTEMPER)'=""
MERGE DVBERROR=DVBTEMPER
+22 IF $GET(DVBTEMPER)=""
SET DVBRTN(2)="1^Transcriber has been updated"
SET DVBUPDFG=1
+23 QUIT
End DoDot:1
+24 IF DVBDBQ'=""
Begin DoDot:1
+25 IF "YN"'[DVBDBQ
SET DVBRTN(3)="-1^DBQ Referral Invalid Format"
QUIT
+26 SET DVBAFDA(396.17,DVBIEN_",",25)=DVBDBQ
+27 KILL DVBTEMPER
DO FILE^DIE(,"DVBAFDA","DVBTEMPER")
+28 IF $GET(DVBTEMPER)'=""
MERGE DVBERROR=DVBTEMPER
+29 IF $GET(DVBTEMPER)=""
SET DVBRTN(3)="1^DBQ Referral has been updated"
SET DVBUPDFG=1
+30 QUIT
End DoDot:1
+31 IF DVBF19'=""
Begin DoDot:1
+32 IF "01@"'[DVBF19
SET DVBRTN(4)="-1^New Flag Invalid Format"
QUIT
+33 SET DVBAFDA(396.17,DVBIEN_",",19)=DVBF19
+34 KILL DVBTEMPER
DO FILE^DIE(,"DVBAFDA","DVBTEMPER")
+35 IF $GET(DVBTEMPER)'=""
MERGE DVBERROR=DVBTEMPER
+36 IF $GET(DVBTEMPER)=""
SET DVBRTN(4)="1^New Flag has been updated"
SET DVBUPDFG=1
+37 QUIT
End DoDot:1
+38 IF DVBF20'=""
Begin DoDot:1
+39 IF "01@"'[DVBF20
SET DVBRTN(5)="-1^Green Flag Invalid Format"
QUIT
+40 SET DVBAFDA(396.17,DVBIEN_",",20)=DVBF20
+41 KILL DVBTEMPER
DO FILE^DIE(,"DVBAFDA","DVBTEMPER")
+42 IF $GET(DVBTEMPER)'=""
MERGE DVBERROR=DVBTEMPER
+43 IF $GET(DVBTEMPER)=""
SET DVBRTN(5)="1^Green Flag has been updated"
SET DVBUPDFG=1
+44 QUIT
End DoDot:1
+45 IF DVBF21'=""
Begin DoDot:1
+46 IF "01@"'[DVBF21
SET DVBRTN(6)="-1^Exclamation Flag Invalid Format"
QUIT
+47 SET DVBAFDA(396.17,DVBIEN_",",21)=DVBF21
+48 KILL DVBTEMPER
DO FILE^DIE(,"DVBAFDA","DVBTEMPER")
+49 IF $GET(DVBTEMPER)'=""
MERGE DVBERROR=DVBTEMPER
+50 IF $GET(DVBTEMPER)=""
SET DVBRTN(6)="1^Exclamation Flag has been updated"
SET DVBUPDFG=1
+51 QUIT
End DoDot:1
+52 ;Next IF block is added for CAPRI-9566.
+53 IF DVBF12'=""
Begin DoDot:1
+54 IF $LENGTH(DVBF12)<2!($LENGTH(DVBF12)>250)
SET DVBRTN(7)="-1^IEPD version number is free text between 2 and 250 characters long"
QUIT
+55 SET DVBAFDA(396.17,DVBIEN_",",12)=DVBF12
+56 KILL DVBTEMPER
DO FILE^DIE(,"DVBAFDA","DVBTEMPER")
+57 IF $GET(DVBTEMPER)'=""
MERGE DVBERROR=DVBTEMPER
+58 IF $GET(DVBTEMPER)=""
SET DVBRTN(7)="1^IEPD version number has been updated"
SET DVBUPDFG=1
+59 QUIT
End DoDot:1
+60 ;Next IF block is added for CAPRI-13939.
+61 IF $GET(DVBF1)'=""
Begin DoDot:1
+62 NEW DVBF1S
+63 SET DVBF1S=$$UP^XLFSTR($EXTRACT(DVBF1))
+64 IF "YN"'[DVBF1S
SET DVBRTN(8)="-1^Acceptable Clinical Evidence (ACE) is a Yes/No field. Received: "_DVBF1
QUIT
+65 SET DVBAFDA(396.17,DVBIEN_",",1)=DVBF1S
+66 KILL DVBTEMPER
DO FILE^DIE(,"DVBAFDA","DVBTEMPER")
+67 IF $GET(DVBTEMPER)'=""
MERGE DVBERROR=DVBTEMPER
+68 IF $GET(DVBTEMPER)=""
SET DVBRTN(8)="1^Acceptable Clinical Evidence (ACE) has been updated"
SET DVBUPDFG=1
+69 QUIT
End DoDot:1
+70 IF DVBUPDFG'=""
Begin DoDot:1
+71 SET DVBDTTM=$$NOW^XLFDT
+72 SET DVBAFDA(396.17,DVBIEN_",",4)=DVBDTTM
+73 KILL DVBTEMPER
DO FILE^DIE(,"DVBAFDA","DVBTEMPER")
+74 IF $GET(DVBTEMPER)'=""
MERGE DVBERROR=DVBTEMPER
+75 IF $GET(DVBTEMPER)=""
SET DVBRTN(0)="1^Updated Record Date/Time"
+76 QUIT
End DoDot:1
+77 IF $GET(DVBERROR)'=""
SET DVBRTN("ERR")=DVBERROR
+78 ;Added DVBF12 to the list
+79 ;Added DVBF1 to the list
+80 KILL DVBAFDA,DVBAUTH,DVBTRAN,DVBDBQ,DVBF1,DVBF12,DVBF19,DVBF20,DVBF21,DVBERROR,DVBTEMPER,DVBLRTN,DVBDTTM,DVBUPDFG,DVBLOCKDT
+81 QUIT
OPENCHECK(DVBRTN,DVBIEN) ;
+1 ;RPC: DVBA CAPRI OPEN ACCESS CHECK
+2 ;CAPRI-18210 CP 4/17/25
+3 NEW DVBKY,DVBDOCMAN,DVBTRANS,DVBWORKOG
+4 ;
+5 IF DVBIEN=""
SET DVBRTN="-1^Missing Worksheet Number."
QUIT
+6 IF $DATA(^DVB(396.17,DVBIEN))<10
SET DVBRTN="-1^No Worksheet data found."
QUIT
+7 SET DVBRTN=0
+8 ;
+9 DO OWNSKEY^XUSRB(.DVBKY,"DVBAB CPWM REVIEWER",DUZ)
+10 IF $GET(DVBKY(0))
SET DVBRTN=1
QUIT
+11 IF $GET(DUZ(0))="@"
SET DVBRTN=1
QUIT
+12 ;
+13 SET DVBDOCMAN=$PIECE($GET(^DVB(396.17,DVBIEN,0)),U,2)
+14 IF DVBDOCMAN=""
SET DVBRTN="-1^Missing Document Manager"
QUIT
+15 IF DVBDOCMAN=DUZ
SET DVBRTN=1
QUIT
+16 SET DVBTRANS=$PIECE($GET(^DVB(396.17,DVBIEN,5)),U,1)
+17 IF DVBTRANS=""
SET DVBRTN="-1^Missing Transcriber"
QUIT
+18 IF DVBTRANS=DUZ
SET DVBRTN=1
QUIT
+19 SET DVBWORKOG=$PIECE($GET(^DVB(396.17,DVBIEN,0)),U,6)
+20 IF DVBWORKOG=""
SET DVBRTN="-1^Missing Worksheet Originator"
QUIT
+21 IF DVBWORKOG=DUZ
SET DVBRTN=1
QUIT
+22 ;
+23 QUIT