DVBSIGN ;ALB/CP - CAPRI Signature RPCS; July, 2 2024@08:34 ; 7/2/24 8:35am
;;2.7;AMIE;**252,254**;Apr 10, 1995;Build 41
; Per VHA Directive 6402 this routine should not be modified
; Reference to $$NOW^XLFDT in ICR #10103
; Reference to ^TIU(8925 in IA #3376
; Reference to $$GET1^DIQ(2 in DBIA #10035
;
Q
;
SAVESIGN(DVBRTN,DVBIEN,DVBCOSIGNER) ;
;;RPC:DVBA CAPRI SAVE SIGNER
;;New Routine for Signer Saves CAPRI-11532 CP 7-2-24
N DVBSIGNER,DVBFLAG,DVBDT,DVBDATA,DVBERR
S DVBSIGNER=DUZ
S DVBDT=$$NOW^XLFDT
S DVBDATA(396.17,DVBIEN_",",4)=DVBDT
S DVBFLAG=$S(DVBCOSIGNER="":"0",1:1)
S DVBDATA(396.17,DVBIEN_",",29)=DVBFLAG
;If yes then set DUZ, flag, and Update status to "U" for Uncosigned
I DVBFLAG=1 D
. S DVBDATA(396.17,DVBIEN_",",11)="U"
. S DVBDATA(396.17,DVBIEN_",",28)=DVBSIGNER
. S DVBDATA(396.17,DVBIEN_",",30)=DVBCOSIGNER
. K DVBERR D FILE^DIE(,"DVBDATA","DVBERR")
. I $D(DVBERR)>0 S DVBRTN="-1^Details not Saved"
. I $D(DVBERR)=0 S DVBRTN="2^Signed Ready for CoSignature"
. Q
;If no then set DUZ and set Status to "G" for Signed
I DVBFLAG=0 D
. S DVBDATA(396.17,DVBIEN_",",11)="G"
. S DVBDATA(396.17,DVBIEN_",",28)=DVBSIGNER
. S DVBDATA(396.17,DVBIEN_",",30)=""
. K DVBERR D FILE^DIE(,"DVBDATA","DVBERR")
. I $D(DVBERR)>0 S DVBRTN="-1^Details not Saved"
. I $D(DVBERR)=0 S DVBRTN="1^Signed Ready for Transmission"
. Q
Q
ALERTCNT(DVBRTN) ;
;;New RPC for Cosign Count CAPRI-11533 CP 7-26-24
;;RPC: DVBA CAPRI UNCOSIGN COUNT
N DVBIEN,DVBSTAT,DVBCNT,DVBEMSFLG
S (DVBIEN,DVBSTAT)=""
S DVBCNT=0
;I ($$PATCH^XPDUTL("DVBA*2.7*256")),($$GET^XPAR("PKG","DVBAB CAPRI EMS TOGGLE",1,"Q")=2) S DVBEMSFLG=1 ;CAPRI-16719 PLE 6/27/2025
F S DVBIEN=$O(^DVB(396.17,"H",DUZ,DVBIEN)) Q:DVBIEN="" D
. S DVBSTAT=$$GET1^DIQ(396.17,DVBIEN,11,"I")
. I DVBSTAT'="U" Q
. ;I DVBEMSFLG=1 Q ;CAPRI-16719 PLE 6/27/2025
. S DVBCNT=DVBCNT+1
S DVBRTN=DVBCNT
Q
;
UNCSINFO(DVBRTN) ;
;New RPC code for CAPRI-11533. JD - 7/11/24
;RPC: DVBA CAPRI UNCOSIGNED INFO
;
N DVBCNT,DVBCPFL,DVBCPTX,DVBDTUPE,DVBDTUPI,DVBIEN,DVBPTIE,DVBPTNM,DVBSTAT,DVBTIUDM,DVBTIUDN
S (DVBIEN,DVBSTAT)="",DVBCNT=0
K ^TMP("UNCOSIGNALERTINFO",$J)
F S DVBIEN=$O(^DVB(396.17,"H",DUZ,DVBIEN)) Q:DVBIEN="" D
. S DVBSTAT=$$GET1^DIQ(396.17,DVBIEN,11,"I")
. I DVBSTAT'="U" Q ;Only the Review Status of Uncosigned is allowed
. S DVBPTIE=$$GET1^DIQ(396.17,DVBIEN,.01,"I") ;Patient IEN
. S DVBPTNM=$$GET1^DIQ(396.17,DVBIEN,.01,"E") ;Patient name
. S DVBDTUPE=$$GET1^DIQ(396.17,DVBIEN,4,"E") ;Date/time updated (External format)
. S DVBDTUPI=$$GET1^DIQ(396.17,DVBIEN,4,"I") ;Date/time updated (Fileman format)
. S DVBCPFL=$$GET1^DIQ(396.17,DVBIEN,25,"I") ;VHA internal DBQ referral(Y/N)
. S DVBTIUDN=$$GET1^DIQ(396.17,DVBIEN,7,"I") ;TIU document number
. S DVBTIUDM=$$GET1^DIQ(8925,DVBTIUDN,.01,"E") ;TIU document name
. S DVBCPTX=$S(DVBCPFL="N":"",1:"NON-")
. S DVBCPTX="UNCOSIGNED "_DVBCPTX_DVBTIUDM_" available for COSIGNATURE"
. S DVBCNT=DVBCNT+1
. S ^TMP("UNCOSIGNALERTINFO",$J,-DVBDTUPI,DVBCNT)=DVBPTIE_U_DVBPTNM_U_DVBDTUPE_U_DVBCPTX_U_DVBIEN_U_DVBTIUDN
I DVBCNT'>0 S DVBRTN="-1^No data available" Q
S DVBRTN=$NA(^TMP("UNCOSIGNALERTINFO",$J))
Q
REVIEWSAVE(DVBRTN,DVBIEN,DVBTYP,DVBREVCMT) ;
;New RPC for Review Updates CAPRI-12506 CP-8/13/24
;DVBA CAPRI SAVE REVIEW DATA
;CAPRI-16627 CP 4-22-25 Updating to remove possible blank author
N DVBDTTM,DVBREVSEQ,DVBAFDA,DVBDOCMAN,DVBERR,DVBNEXTSEQ
;'P' FOR REVIEW PENDING;'S' FOR SENT BACK;'A' FOR AWAITING SIGNATURE;'T' for Trainee Details
;
I DVBIEN="" S DVBRTN="-1^No Worksheet IEN sent" Q
I $D(^DVB(396.17,DVBIEN))<10 S DVBRTN="-1^Invalid Worksheet IEN" Q
I DVBTYP="" S DVBRTN="-1^Missing Status" Q
I "TPSA"'[DVBTYP S DVBRTN="-1^Invalid Status" Q
I DVBTYP="T",$G(DVBREVCMT(1))'?1"TRAINEE^".N1"^".N S DVBRTN="-1^Invalid Trainee Comments" Q
I DVBTYP="T",$D(^VA(200,$P($G(DVBREVCMT(1)),"^",2)))<10 S DVBRTN="-1^Invalid Trainee DUZ" Q
I DVBTYP="A",$G(DVBREVCMT(1))'?.N,$D(^VA(200,$G(DVBREVCMT(1))))<10 S DVBRTN="-1^Invalid Signer DUZ" Q
;
S DVBDTTM=$$NOW^XLFDT
I DVBTYP="P" S DVBSIGNER=DUZ
I DVBTYP="A" S DVBDOCMAN=$G(DVBREVCMT(1))
I DVBTYP="A" S DVBREVCMT(1)="Sending for Signature"
K DIC,DIE,DA,DR,DLAYGO,X,Y
; CAPRI 16627 CP 3/10/25
S DVBREVSEQ=$P($G(^DVB(396.17,DVBIEN,6,0)),"^",3)
S DA(1)=DVBIEN,DA=DVBREVSEQ+1,X=DVBDTTM
S (DLAYGO,DIC)="^DVB(396.17,"_DA(1)_",6,",DIC(0)="LZ"
S DIC("DR")=".01////"_DVBDTTM_";1////"_DUZ
D FILE^DICN
I Y=-1 K DIC S DVBRTN="-1^New version not saved" Q
S DVBNEXTSEQ=+Y
I $G(DVBREVCMT(1))'="" D WP^DIE(396.1714,DVBNEXTSEQ_","_DVBIEN_",",4,"K","DVBREVCMT","DVBERR")
I $D(DVBERR) S DVBRTN="-1^Review Comments not saved" Q
I '$D(DVBERR) S DVBRTN=1
I DVBTYP="T" S DVBRTN="1^Trainee DUZ and DIV Saved" Q
S DVBAFDA(396.17,DVBIEN_",",4)=DVBDTTM
S DVBAFDA(396.17,DVBIEN_",",11)=DVBTYP
S DVBAFDA(396.17,DVBIEN_",",19)="1"
I DVBTYP="P" S DVBAFDA(396.17,DVBIEN_",",28)=DVBSIGNER,DVBAFDA(396.17,DVBIEN_",",29)=0
;CAPRI-16627 CP 4/22/15
I DVBTYP="S",$P($G(^DVB(396.17,DVBIEN,16)),U,1)'="" S DVBAFDA(396.17,DVBIEN_",",2)=$P($G(^DVB(396.17,DVBIEN,16)),U,1)
I DVBTYP="A" S DVBAFDA(396.17,DVBIEN_",",2)=DVBDOCMAN
K DVBERR D FILE^DIE(,"DVBAFDA","DVBERR")
I $D(DVBERR)>0 S DVBRTN="-1^Worksheet not updated"
I $D(DVBERR)=0 S DVBRTN="1^Review Details saved and Worksheet Updated"
Q
DOCMAN(DVBRTN,DVBIEN) ;
;Used B4 signature validation CAPRI-12506 CP-8/13/24
;CAPRI 16627 CP 3/10/25
;DVBA CAPRI TRAINEE DOC MANAGER
N DVBCKDAT
S DVBRTN="-1^No Update"
I DVBIEN="" S DVBRTN="-1^No Worksheet IEN sent" Q
I $D(^DVB(396.17,DVBIEN))<10 S DVBRTN="-1^Invalid Worksheet IEN" Q
S DVBTRAINEE=$P($G(^DVB(396.17,DVBIEN,16)),U,1)
K DIE,DA,DR,X,Y
S DIE=396.17,DA=DVBIEN,DR="2////"_DVBTRAINEE
D ^DIE
S DVBCKDAT=$P($G(^DVB(396.17,DVBIEN,0)),U,2)
I DVBCKDAT'=DVBTRAINEE S DVBRTN="-1^No Update" Q
S DVBRTN=1
K DVBTRAINEE
Q
TRAINSIG(DVBRTN,DVBIEN) ;
;Send the DUZ and DIV for the Trainee CAPRI-12506 CP-8/13/24
;DVBA CAPRI TRAINEE SIGNATURE
N DVBDATA,DVBMULT
S DVBRTN=""
I DVBIEN="" S DVBRTN="-1^No Worksheet IEN sent" Q
I $D(^DVB(396.17,DVBIEN))<10 S DVBRTN="-1^Invalid Worksheet IEN" Q
I $D(^DVB(396.17,DVBIEN,6))<10 S DVBRTN="-1^No Review Data Saved"
S DVBMULT=""
F S DVBMULT=$O(^DVB(396.17,DVBIEN,6,DVBMULT)) Q:DVBMULT="" Q:DVBRTN'="" D
. S DVBDATA=$G(^DVB(396.17,DVBIEN,6,DVBMULT,1,1,0))
. I $P(DVBDATA,U,1)="TRAINEE" S DVBRTN=$P(DVBDATA,U,2,3) Q
I DVBRTN="" S DVBRTN="-1^No details found" Q
Q
;
STATCNT(DVBRTN) ;
;New RPC code for CAPRI-12825. JD - 8/14/24
;RPC: DVBA CAPRI STATUS COUNT
;Added statuses D=Draft/Not Ready and O=Outdated Template. JD - 8/21/24
;
;Returns the count for the following worksheet review statuses:
;A=Awaiting Signature, D=Draft/Not ready, O=Outdated Template, P=Review Pending, S=Sent Back
;
N DVBCNTA,DVBCNTD,DVBCNTO,DVBCNTP,DVBCNTS,DVBIEN,DVBP,DVBSTAT
S (DVBSTAT,DVBRTN)=""
S (DVBCNTA,DVBCNTD,DVBCNTO,DVBCNTP,DVBCNTS)=0
F S DVBSTAT=$O(^DVB(396.17,"RS",DVBSTAT)) Q:DVBSTAT="" D
. I "ADOPS"'[DVBSTAT Q
. S DVBIEN=""
. F S DVBIEN=$O(^DVB(396.17,"RS",DVBSTAT,DVBIEN)) Q:DVBIEN="" D
.. S DVBP="" D PASCALCHK^DVBCTPDF(.DVBP,DVBIEN) I DVBP="P" Q ;CMT worksheets only!
.. I DVBSTAT="P" S DVBCNTP=DVBCNTP+1
.. I DUZ'=$$GET1^DIQ(396.17,DVBIEN,2,"I") Q ;Document Manager
.. I DVBSTAT="A" S DVBCNTA=DVBCNTA+1
.. I DVBSTAT="D" S DVBCNTD=DVBCNTD+1
.. I DVBSTAT="O" S DVBCNTO=DVBCNTO+1
.. I DVBSTAT="S" S DVBCNTS=DVBCNTS+1
S DVBRTN=DVBCNTA_U_DVBCNTD_U_DVBCNTO_U_DVBCNTP_U_DVBCNTS
Q
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HDVBSIGN 7644 printed Sep 23, 2025@19:35:24 Page 2
DVBSIGN ;ALB/CP - CAPRI Signature RPCS; July, 2 2024@08:34 ; 7/2/24 8:35am
+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 in ICR #10103
+4 ; Reference to ^TIU(8925 in IA #3376
+5 ; Reference to $$GET1^DIQ(2 in DBIA #10035
+6 ;
+7 QUIT
+8 ;
SAVESIGN(DVBRTN,DVBIEN,DVBCOSIGNER) ;
+1 ;;RPC:DVBA CAPRI SAVE SIGNER
+2 ;;New Routine for Signer Saves CAPRI-11532 CP 7-2-24
+3 NEW DVBSIGNER,DVBFLAG,DVBDT,DVBDATA,DVBERR
+4 SET DVBSIGNER=DUZ
+5 SET DVBDT=$$NOW^XLFDT
+6 SET DVBDATA(396.17,DVBIEN_",",4)=DVBDT
+7 SET DVBFLAG=$SELECT(DVBCOSIGNER="":"0",1:1)
+8 SET DVBDATA(396.17,DVBIEN_",",29)=DVBFLAG
+9 ;If yes then set DUZ, flag, and Update status to "U" for Uncosigned
+10 IF DVBFLAG=1
Begin DoDot:1
+11 SET DVBDATA(396.17,DVBIEN_",",11)="U"
+12 SET DVBDATA(396.17,DVBIEN_",",28)=DVBSIGNER
+13 SET DVBDATA(396.17,DVBIEN_",",30)=DVBCOSIGNER
+14 KILL DVBERR
DO FILE^DIE(,"DVBDATA","DVBERR")
+15 IF $DATA(DVBERR)>0
SET DVBRTN="-1^Details not Saved"
+16 IF $DATA(DVBERR)=0
SET DVBRTN="2^Signed Ready for CoSignature"
+17 QUIT
End DoDot:1
+18 ;If no then set DUZ and set Status to "G" for Signed
+19 IF DVBFLAG=0
Begin DoDot:1
+20 SET DVBDATA(396.17,DVBIEN_",",11)="G"
+21 SET DVBDATA(396.17,DVBIEN_",",28)=DVBSIGNER
+22 SET DVBDATA(396.17,DVBIEN_",",30)=""
+23 KILL DVBERR
DO FILE^DIE(,"DVBDATA","DVBERR")
+24 IF $DATA(DVBERR)>0
SET DVBRTN="-1^Details not Saved"
+25 IF $DATA(DVBERR)=0
SET DVBRTN="1^Signed Ready for Transmission"
+26 QUIT
End DoDot:1
+27 QUIT
ALERTCNT(DVBRTN) ;
+1 ;;New RPC for Cosign Count CAPRI-11533 CP 7-26-24
+2 ;;RPC: DVBA CAPRI UNCOSIGN COUNT
+3 NEW DVBIEN,DVBSTAT,DVBCNT,DVBEMSFLG
+4 SET (DVBIEN,DVBSTAT)=""
+5 SET DVBCNT=0
+6 ;I ($$PATCH^XPDUTL("DVBA*2.7*256")),($$GET^XPAR("PKG","DVBAB CAPRI EMS TOGGLE",1,"Q")=2) S DVBEMSFLG=1 ;CAPRI-16719 PLE 6/27/2025
+7 FOR
SET DVBIEN=$ORDER(^DVB(396.17,"H",DUZ,DVBIEN))
if DVBIEN=""
QUIT
Begin DoDot:1
+8 SET DVBSTAT=$$GET1^DIQ(396.17,DVBIEN,11,"I")
+9 IF DVBSTAT'="U"
QUIT
+10 ;I DVBEMSFLG=1 Q ;CAPRI-16719 PLE 6/27/2025
+11 SET DVBCNT=DVBCNT+1
End DoDot:1
+12 SET DVBRTN=DVBCNT
+13 QUIT
+14 ;
UNCSINFO(DVBRTN) ;
+1 ;New RPC code for CAPRI-11533. JD - 7/11/24
+2 ;RPC: DVBA CAPRI UNCOSIGNED INFO
+3 ;
+4 NEW DVBCNT,DVBCPFL,DVBCPTX,DVBDTUPE,DVBDTUPI,DVBIEN,DVBPTIE,DVBPTNM,DVBSTAT,DVBTIUDM,DVBTIUDN
+5 SET (DVBIEN,DVBSTAT)=""
SET DVBCNT=0
+6 KILL ^TMP("UNCOSIGNALERTINFO",$JOB)
+7 FOR
SET DVBIEN=$ORDER(^DVB(396.17,"H",DUZ,DVBIEN))
if DVBIEN=""
QUIT
Begin DoDot:1
+8 SET DVBSTAT=$$GET1^DIQ(396.17,DVBIEN,11,"I")
+9 ;Only the Review Status of Uncosigned is allowed
IF DVBSTAT'="U"
QUIT
+10 ;Patient IEN
SET DVBPTIE=$$GET1^DIQ(396.17,DVBIEN,.01,"I")
+11 ;Patient name
SET DVBPTNM=$$GET1^DIQ(396.17,DVBIEN,.01,"E")
+12 ;Date/time updated (External format)
SET DVBDTUPE=$$GET1^DIQ(396.17,DVBIEN,4,"E")
+13 ;Date/time updated (Fileman format)
SET DVBDTUPI=$$GET1^DIQ(396.17,DVBIEN,4,"I")
+14 ;VHA internal DBQ referral(Y/N)
SET DVBCPFL=$$GET1^DIQ(396.17,DVBIEN,25,"I")
+15 ;TIU document number
SET DVBTIUDN=$$GET1^DIQ(396.17,DVBIEN,7,"I")
+16 ;TIU document name
SET DVBTIUDM=$$GET1^DIQ(8925,DVBTIUDN,.01,"E")
+17 SET DVBCPTX=$SELECT(DVBCPFL="N":"",1:"NON-")
+18 SET DVBCPTX="UNCOSIGNED "_DVBCPTX_DVBTIUDM_" available for COSIGNATURE"
+19 SET DVBCNT=DVBCNT+1
+20 SET ^TMP("UNCOSIGNALERTINFO",$JOB,-DVBDTUPI,DVBCNT)=DVBPTIE_U_DVBPTNM_U_DVBDTUPE_U_DVBCPTX_U_DVBIEN_U_DVBTIUDN
End DoDot:1
+21 IF DVBCNT'>0
SET DVBRTN="-1^No data available"
QUIT
+22 SET DVBRTN=$NAME(^TMP("UNCOSIGNALERTINFO",$JOB))
+23 QUIT
REVIEWSAVE(DVBRTN,DVBIEN,DVBTYP,DVBREVCMT) ;
+1 ;New RPC for Review Updates CAPRI-12506 CP-8/13/24
+2 ;DVBA CAPRI SAVE REVIEW DATA
+3 ;CAPRI-16627 CP 4-22-25 Updating to remove possible blank author
+4 NEW DVBDTTM,DVBREVSEQ,DVBAFDA,DVBDOCMAN,DVBERR,DVBNEXTSEQ
+5 ;'P' FOR REVIEW PENDING;'S' FOR SENT BACK;'A' FOR AWAITING SIGNATURE;'T' for Trainee Details
+6 ;
+7 IF DVBIEN=""
SET DVBRTN="-1^No Worksheet IEN sent"
QUIT
+8 IF $DATA(^DVB(396.17,DVBIEN))<10
SET DVBRTN="-1^Invalid Worksheet IEN"
QUIT
+9 IF DVBTYP=""
SET DVBRTN="-1^Missing Status"
QUIT
+10 IF "TPSA"'[DVBTYP
SET DVBRTN="-1^Invalid Status"
QUIT
+11 IF DVBTYP="T"
IF $GET(DVBREVCMT(1))'?1"TRAINEE^".N1"^".N
SET DVBRTN="-1^Invalid Trainee Comments"
QUIT
+12 IF DVBTYP="T"
IF $DATA(^VA(200,$PIECE($GET(DVBREVCMT(1)),"^",2)))<10
SET DVBRTN="-1^Invalid Trainee DUZ"
QUIT
+13 IF DVBTYP="A"
IF $GET(DVBREVCMT(1))'?.N
IF $DATA(^VA(200,$GET(DVBREVCMT(1))))<10
SET DVBRTN="-1^Invalid Signer DUZ"
QUIT
+14 ;
+15 SET DVBDTTM=$$NOW^XLFDT
+16 IF DVBTYP="P"
SET DVBSIGNER=DUZ
+17 IF DVBTYP="A"
SET DVBDOCMAN=$GET(DVBREVCMT(1))
+18 IF DVBTYP="A"
SET DVBREVCMT(1)="Sending for Signature"
+19 KILL DIC,DIE,DA,DR,DLAYGO,X,Y
+20 ; CAPRI 16627 CP 3/10/25
+21 SET DVBREVSEQ=$PIECE($GET(^DVB(396.17,DVBIEN,6,0)),"^",3)
+22 SET DA(1)=DVBIEN
SET DA=DVBREVSEQ+1
SET X=DVBDTTM
+23 SET (DLAYGO,DIC)="^DVB(396.17,"_DA(1)_",6,"
SET DIC(0)="LZ"
+24 SET DIC("DR")=".01////"_DVBDTTM_";1////"_DUZ
+25 DO FILE^DICN
+26 IF Y=-1
KILL DIC
SET DVBRTN="-1^New version not saved"
QUIT
+27 SET DVBNEXTSEQ=+Y
+28 IF $GET(DVBREVCMT(1))'=""
DO WP^DIE(396.1714,DVBNEXTSEQ_","_DVBIEN_",",4,"K","DVBREVCMT","DVBERR")
+29 IF $DATA(DVBERR)
SET DVBRTN="-1^Review Comments not saved"
QUIT
+30 IF '$DATA(DVBERR)
SET DVBRTN=1
+31 IF DVBTYP="T"
SET DVBRTN="1^Trainee DUZ and DIV Saved"
QUIT
+32 SET DVBAFDA(396.17,DVBIEN_",",4)=DVBDTTM
+33 SET DVBAFDA(396.17,DVBIEN_",",11)=DVBTYP
+34 SET DVBAFDA(396.17,DVBIEN_",",19)="1"
+35 IF DVBTYP="P"
SET DVBAFDA(396.17,DVBIEN_",",28)=DVBSIGNER
SET DVBAFDA(396.17,DVBIEN_",",29)=0
+36 ;CAPRI-16627 CP 4/22/15
+37 IF DVBTYP="S"
IF $PIECE($GET(^DVB(396.17,DVBIEN,16)),U,1)'=""
SET DVBAFDA(396.17,DVBIEN_",",2)=$PIECE($GET(^DVB(396.17,DVBIEN,16)),U,1)
+38 IF DVBTYP="A"
SET DVBAFDA(396.17,DVBIEN_",",2)=DVBDOCMAN
+39 KILL DVBERR
DO FILE^DIE(,"DVBAFDA","DVBERR")
+40 IF $DATA(DVBERR)>0
SET DVBRTN="-1^Worksheet not updated"
+41 IF $DATA(DVBERR)=0
SET DVBRTN="1^Review Details saved and Worksheet Updated"
+42 QUIT
DOCMAN(DVBRTN,DVBIEN) ;
+1 ;Used B4 signature validation CAPRI-12506 CP-8/13/24
+2 ;CAPRI 16627 CP 3/10/25
+3 ;DVBA CAPRI TRAINEE DOC MANAGER
+4 NEW DVBCKDAT
+5 SET DVBRTN="-1^No Update"
+6 IF DVBIEN=""
SET DVBRTN="-1^No Worksheet IEN sent"
QUIT
+7 IF $DATA(^DVB(396.17,DVBIEN))<10
SET DVBRTN="-1^Invalid Worksheet IEN"
QUIT
+8 SET DVBTRAINEE=$PIECE($GET(^DVB(396.17,DVBIEN,16)),U,1)
+9 KILL DIE,DA,DR,X,Y
+10 SET DIE=396.17
SET DA=DVBIEN
SET DR="2////"_DVBTRAINEE
+11 DO ^DIE
+12 SET DVBCKDAT=$PIECE($GET(^DVB(396.17,DVBIEN,0)),U,2)
+13 IF DVBCKDAT'=DVBTRAINEE
SET DVBRTN="-1^No Update"
QUIT
+14 SET DVBRTN=1
+15 KILL DVBTRAINEE
+16 QUIT
TRAINSIG(DVBRTN,DVBIEN) ;
+1 ;Send the DUZ and DIV for the Trainee CAPRI-12506 CP-8/13/24
+2 ;DVBA CAPRI TRAINEE SIGNATURE
+3 NEW DVBDATA,DVBMULT
+4 SET DVBRTN=""
+5 IF DVBIEN=""
SET DVBRTN="-1^No Worksheet IEN sent"
QUIT
+6 IF $DATA(^DVB(396.17,DVBIEN))<10
SET DVBRTN="-1^Invalid Worksheet IEN"
QUIT
+7 IF $DATA(^DVB(396.17,DVBIEN,6))<10
SET DVBRTN="-1^No Review Data Saved"
+8 SET DVBMULT=""
+9 FOR
SET DVBMULT=$ORDER(^DVB(396.17,DVBIEN,6,DVBMULT))
if DVBMULT=""
QUIT
if DVBRTN'=""
QUIT
Begin DoDot:1
+10 SET DVBDATA=$GET(^DVB(396.17,DVBIEN,6,DVBMULT,1,1,0))
+11 IF $PIECE(DVBDATA,U,1)="TRAINEE"
SET DVBRTN=$PIECE(DVBDATA,U,2,3)
QUIT
End DoDot:1
+12 IF DVBRTN=""
SET DVBRTN="-1^No details found"
QUIT
+13 QUIT
+14 ;
STATCNT(DVBRTN) ;
+1 ;New RPC code for CAPRI-12825. JD - 8/14/24
+2 ;RPC: DVBA CAPRI STATUS COUNT
+3 ;Added statuses D=Draft/Not Ready and O=Outdated Template. JD - 8/21/24
+4 ;
+5 ;Returns the count for the following worksheet review statuses:
+6 ;A=Awaiting Signature, D=Draft/Not ready, O=Outdated Template, P=Review Pending, S=Sent Back
+7 ;
+8 NEW DVBCNTA,DVBCNTD,DVBCNTO,DVBCNTP,DVBCNTS,DVBIEN,DVBP,DVBSTAT
+9 SET (DVBSTAT,DVBRTN)=""
+10 SET (DVBCNTA,DVBCNTD,DVBCNTO,DVBCNTP,DVBCNTS)=0
+11 FOR
SET DVBSTAT=$ORDER(^DVB(396.17,"RS",DVBSTAT))
if DVBSTAT=""
QUIT
Begin DoDot:1
+12 IF "ADOPS"'[DVBSTAT
QUIT
+13 SET DVBIEN=""
+14 FOR
SET DVBIEN=$ORDER(^DVB(396.17,"RS",DVBSTAT,DVBIEN))
if DVBIEN=""
QUIT
Begin DoDot:2
+15 ;CMT worksheets only!
SET DVBP=""
DO PASCALCHK^DVBCTPDF(.DVBP,DVBIEN)
IF DVBP="P"
QUIT
+16 IF DVBSTAT="P"
SET DVBCNTP=DVBCNTP+1
+17 ;Document Manager
IF DUZ'=$$GET1^DIQ(396.17,DVBIEN,2,"I")
QUIT
+18 IF DVBSTAT="A"
SET DVBCNTA=DVBCNTA+1
+19 IF DVBSTAT="D"
SET DVBCNTD=DVBCNTD+1
+20 IF DVBSTAT="O"
SET DVBCNTO=DVBCNTO+1
+21 IF DVBSTAT="S"
SET DVBCNTS=DVBCNTS+1
End DoDot:2
End DoDot:1
+22 SET DVBRTN=DVBCNTA_U_DVBCNTD_U_DVBCNTO_U_DVBCNTP_U_DVBCNTS
+23 QUIT