DVBUTIL ;ALB/CP/JD/BG - CAPRI UTILITIES RPCS; June 23, 2023@10:20 ; 4/24/25 1:35pm
 ;;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 $$GET^XPAR in ICR #2263
 ; Reference to $$NAME^XUSER in ICR #2343
 ; Reference to GETLST^XPAR in ICR #2263
 Q
 ;
LOCKUNLOCK(DVBRETURN,DVBIEN,DVBLOCK) ;
 ;RPC: DVBA CAPRI UNLOCK EXAM
 ;Updates CAPRI-16627 CP 5/10/25
 N DVBDTTM,DVBPERSON,DVBNOW,DVBLOCKSTA
 I DVBIEN="" S DVBRETURN="-1^Missing Worksheet IEN" Q
 I DVBLOCK="" S DVBRETURN="-1^Missing Lock Flag" Q
 I "UL"'[$G(DVBLOCK) S DVBRETURN="-1^Invalid Lock Flag" Q
 K DVBRETURN
 S DVBLOCKSTA=$$GET1^DIQ(396.17,DVBIEN,17,"E")
 S DVBPERSON=$$GET1^DIQ(200,DUZ_",",.01,"E")
 ;BG CAPRI-8883
 I DVBLOCK="L" D
 .I DVBLOCKSTA'="" D
 ..I $P(DVBLOCKSTA,":",3)=DUZ S DVBRETURN="1" Q
 ..I $P(DVBLOCKSTA,":",3)'=DUZ S DVBRETURN="-1^Current worksheet is locked by "_$P(DVBLOCKSTA,"@",1)_" and cannot be viewed, edited, copied or deleted at this time" Q
 .I DVBLOCKSTA="" D
 . . S DVBNOW=$$NOW^XLFDT
 . . S DVBDTTM=$$FMTE^XLFDT(DVBNOW,"2M")
 . . S DVBPERSON=DVBPERSON_" on "_DVBDTTM_":"_DUZ
 . . K DIE,DA,DR,X,Y
 . . S DIE=396.17,DA=DVBIEN,DR="17////"_DVBPERSON
 . . D ^DIE
 . . I $P($G(^DVB(396.17,DVBIEN,8)),U,2)=DVBPERSON S DVBRETURN=1 Q
 . . S DVBRETURN="-1^Can not lock worksheet at this time" Q
 . . Q
 . Q
 I DVBLOCK="U" D
 .I DVBLOCKSTA="" S DVBRETURN=1 Q
 .I DVBLOCKSTA'="",$P(DVBLOCKSTA,":",3)'=DUZ S DVBRETURN="-1^Current worksheet is locked by "_$P(DVBLOCKSTA,"@",1)_" and cannot be viewed, edited, copied or deleted at this time" Q
 .I $P(DVBLOCKSTA,":",3)=DUZ D
 . . K DIE,DA,DR,X,Y
 . . S DIE=396.17,DA=DVBIEN,DR="17///@"
 . . D ^DIE
 . . I $P($G(^DVB(396.17,DVBIEN,8)),U,2)="" S DVBRETURN=1 Q
 . . S DVBRETURN="-1^Can not unlock worksheet at this time" Q
 . Q
 K DIE,DA,DR,X,Y
 Q
INVALCHAR(DVBRETURN) ;
 ;RPC: DVBA CAPRI INVALID CHAR LIST
 N DVBSEQ,DVBRCHAR,DVBLEN,DVBCNT,DVBI,DVBINV,DVBLEN2,DVBI2,DVBBAD,DVBGOOD
 S DVBSEQ=0,DVBI=1
 S DVBRCHAR=$$GET^XPAR("PKG","DVBAB CAPRI INVALID CHARACTERS",DVBI,"Q")
 S DVBLEN=$L(DVBRCHAR,",")
 F DVBCNT=1:1:DVBLEN D
 . S DVBI=DVBI+1
 . S DVBINV=$$GET^XPAR("PKG","DVBAB CAPRI INVALID CHARACTERS",DVBI,"Q")
 . S DVBLEN2=$L(DVBINV,",")
 . F DVBI2=1:1:DVBLEN2 D 
 . . S DVBSEQ=DVBSEQ+1
 . . S DVBBAD=$P(DVBINV,",",DVBI2)
 . . S DVBGOOD=$P(DVBRCHAR,",",DVBCNT)
 . . S DVBRETURN(DVBSEQ)=DVBBAD_U_DVBGOOD
 Q
TOGGLE(DVBRETURN) ;
 ;BG-CAPRI-9269
 ;RPC: DVBA CAPRI CMT TOGGLE
 N DVBPAR
 S DVBPAR=$$GET^XPAR("PKG","DVBAB CAPRI CMT TOGGLE",1,"I")
 S DVBRETURN=DVBPAR
 Q
 ;
EXINFO(DVBRETURN,DVBDUZ,DVBDVI) ;
 ;New RPC code for CAPRI-11043.  JD - 7/1/24
 ;RPC: DVBA CAPRI GET EXAMINER INFO
 N DVBA,DVBDVCT,DVBDVNM,DVBDVAD1,DVBDVAD2,DVBDVSTA,DVBDVZP,DVBEXNM
 S DVBDUZ=$G(DVBDUZ),DVBDVI=$G(DVBDVI)
 I DVBDUZ="" S DVBRETURN="-1^No User DUZ was provided" Q
 I DVBDVI="" S DVBRETURN="-1^No division IEN was provided" Q
 S DVBEXNM=$$NAME^XUSER(DVBDUZ)  ;Standard name (first MI last) of DVBDUZ
 I DVBEXNM="" S DVBRETURN="-1^User with DUZ="_DVBDUZ_" does not exist" Q
 S DVBDVNM=$$GET1^DIQ(4,DVBDVI,".01","E")   ;Division name
 I DVBDVNM="" S DVBRETURN="-1^Division with IEN="_DVBDVI_" does not exist" Q
 S DVBDVNM=$$GET1^DIQ(4,DVBDVI,".01","E")   ;Division name
 S DVBDVAD1=$$GET1^DIQ(4,DVBDVI,"1.01","E") ;Division address 1
 S DVBDVAD2=$$GET1^DIQ(4,DVBDVI,"1.02","E") ;Division address 2
 S DVBDVCT=$$GET1^DIQ(4,DVBDVI,"1.03","E")  ;Division city
 S DVBA=$$GET1^DIQ(4,DVBDVI,".02","I")      ;Division state IEN
 S DVBDVSTA=$$GET1^DIQ(5,DVBA,"1","E")      ;Division state abbreviation
 S DVBDVZP=$$GET1^DIQ(4,DVBDVI,"1.04","E")  ;Division zipcode
 S DVBRETURN=DVBEXNM_U_DVBDVNM_U_DVBDVAD1_U_DVBDVAD2_U_DVBDVCT_U_DVBDVSTA_U_DVBDVZP
 Q
SECTOG(DVBRETURN) ;RPC: DVBA CAPRI SECURITY TOGGLE ;CAPRI-11932;JCS
 N DVBPAR
 S DVBPAR=$$GET^XPAR("PKG","DVBAB CAPRI SECURITY TOGGLE",1,"I")
 S DVBRETURN=DVBPAR
 Q
 ;
 ;
PDFSIGNM(DVBRTN) ;
 ;New RPC code for CAPRI-12469.  JD - 7/30/24
 ;RPC: DVBA CAPRI PDF SIG FIELD NAMES 
 N DVBARTN,DVBERR
 K ^TMP("PDFSIGNM",$J),DVBERR
 S DVBARTN=$NA(^TMP("PDFSIGNM",$J))
 D GETLST^XPAR(DVBARTN,"PKG","DVBAB CAPRI PDF SIG FLD NAMES","Q",.DVBERR,1)
 S DVBRTN=DVBARTN
 I DVBRTN="" S DVBRTN="-1^No data available" Q
 I DVBERR'=0 S DVBRTN="-1^Unable to retrieve data"
 Q
HELPINFO(DVBRETURN) ;RPC: DVBA CAPRI SUPPORT MESSAGE ;CAPRI-12817 ;GTR
 N DVBPAR
 S DVBPAR=$$GET^XPAR("PKG","DVBAB CAPRI SUPPORT MESSAGE",1,"I")
 S DVBRETURN=DVBPAR
 Q
DBQLOGIC(DVBRETURN) ;
 ;New RPC to pull list of DBQs with conditional Logic CAPRI-13314 CP 9-4-24
 ;RPC: DVBA CAPRI PDF LOGIC TOGGLE 
 N DVBLIST,DVBLEN,DVBSEQ,DVBRTN,DVBERR,DVBDATA,DVBI
 K ^TMP("DBQLOGIC",$J)
 S DVBSEQ=0,(DVBLIST,DVBDATA)=""
 D GETWP^XPAR(.DVBLIST,"PKG","DVBAB CAPRI DBQ COND LOGIC",1,.DVBERR)
 I DVBERR'=0 S DVBRETURN="-1^"_DVBERR Q
 S DVBLEN=$O(DVBLIST(""),-1)
 S DVBRTN=$G(DVBLIST(1,0))
 I DVBRTN="ALL" S DVBDATA="ALL"
 I DVBRTN="NONE" S DVBDATA=0
 I DVBDATA="" F DVBI=1:1:DVBLEN D
 . S DVBDATA=DVBLEN
 . S DVBSEQ=DVBSEQ+1
 . S DVBDATA(DVBSEQ)=$G(DVBLIST(DVBI,0))
 . Q
 M ^TMP("DBQLOGIC",$J)=DVBDATA
 S DVBRETURN=$NA(^TMP("DBQLOGIC",$J))
 Q
WKSHBYEXAM(DVBRETURN,DVBEXAM) ;
 ;New RPC to pull Worksheet IEN from Exam IEN CAPRI-13257 CP 9-11-24
 ;RPC: DVBA CAPRI WORKSHEET BY EXAM
 N DVBIEN1,DVBIEN2
 S DVBIEN1=""
 ;
 I DVBEXAM="" S DVBRETURN="-1^Missing Exam Reference Number" Q 
 I $D(^DVB(396.4,"B",DVBEXAM))<10 S DVBRETURN="-1^Invalid Exam Reference Number" Q
 S DVBIEN1=$O(^DVB(396.4,"B",DVBEXAM,DVBIEN1))
 S DVBIEN2=$G(^DVB(396.4,DVBIEN1,2))
 I DVBIEN2="" S DVBRETURN="-1^NO worksheet IEN found" Q
 I $D(^DVB(396.17,DVBIEN2))<10 S DVBRETURN="-1^Invalid Worksheet pointer saved" Q
 S DVBRETURN=DVBIEN2
 Q
PNTOG(DVBRTN) ;
 ;RPC: DVBA CAPRI PN TOGGLE
 ;BG-CAPRI
 N DVBPAR
 S DVBPAR=$$GET^XPAR("PKG","DVBAB CAPRI PN TOGGLE",1,"I")
 S DVBRTN=DVBPAR
 Q
PCHILDLOGIC(DVBRTN) ;
 ;RPC:DVBA CAPRI SKIP PARENTCHILD
 ;Return parameter values for Parent child cond logic CAPRI-16410 CP 2-26-25
 ;
 N DVBLIST,DVBCNT
 D GETLST^XPAR(.DVBLIST,"PKG.AUTOMATED MED INFO EXCHANGE","DVBAB CAPRI SKIP PARENTCHILD","I",)
 S DVBCNT=$G(DVBLIST)
 I DVBCNT=0 S DVBRTN(0)="-1^Parameter Empty" Q
 F DVBI=1:1:DVBCNT S DVBRTN(DVBI)=$G(DVBLIST(DVBI))
 S DVBRTN(0)=DVBCNT
 Q
CSKIPLOGIC(DVBRTN) ; 
 ;RPC:DVBA CAPRI SKIP CHILD RESET
 N DVBLIST,DVBCNT
 D GETLST^XPAR(.DVBLIST,"PKG.AUTOMATED MED INFO EXCHANGE","DVBAB CAPRI SKIP CHILD RESET","I",)
 S DVBCNT=$G(DVBLIST)
 I DVBCNT=0 S DVBRTN(0)="-1^Parameter Empty" Q
 F DVBI=1:1:DVBCNT S DVBRTN(DVBI)=$G(DVBLIST(DVBI))
 S DVBRTN(0)=DVBCNT
 Q
IEPDREST(DVBRTN) ; 
 ;RPC: DVBA CAPRI CMT IEPD RESET
 ;BG-CAPRI-15970
 N DVBPAR
 S DVBPAR=$$GET^XPAR("PKG","DVBAB CAPRI CMT IEPD RESET",1,"I")
 S DVBRTN=DVBPAR
 Q
CONDSKIP(DVBRTN) ; 
 ;RPC:DVBA CAPRI CMT SKIP COND
 ;BG-CAPRI-18432
 N DVBLIST,DVBCNT
 D GETLST^XPAR(.DVBLIST,"PKG.AUTOMATED MED INFO EXCHANGE","DVBAB CAPRI SKIP CONDFIELD","I",)
 S DVBCNT=$G(DVBLIST)
 I DVBCNT=0 S DVBRTN(0)="-1^Parameter Empty" Q
 F DVBI=1:1:DVBCNT S DVBRTN(DVBI)=$G(DVBLIST(DVBI))
 S DVBRTN(0)=DVBCNT
 Q
WORDWRAP(DVBRTN) ;
 ;RPC: DVBA CAPRI WORD WRAP
 ;CAPRI- CP 6/16/25
 N DVBPAR
 S DVBPAR=$$GET^XPAR("PKG","DVBAB CAPRI WORD WRAP",1,"I")
 S DVBRTN=DVBPAR
 Q
MEDOPFLDS(DVBRTN) ; 
 ;RPC: DVBA CAPRI MED OPN FIELDS
 ;CAPRI-19702 RJA 06232025
 N DVBTMP,DVBERR
 K ^TMP("DVBMEDOPFLDS",$J)
 D GETWP^XPAR(.DVBTMP,"PKG","DVBAB CAPRI MED OPN FIELDS",1,.DVBERR)
 I DVBERR'=0 S DVBRTN="-1^"_DVBERR Q
 M ^TMP("DVBMEDOPFLDS",$J)=DVBTMP
 S DVBRTN=$NA(^TMP("DVBMEDOPFLDS",$J))
 Q
 
--- Routine Detail   --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HDVBUTIL   7726     printed  Sep 23, 2025@19:35:26                                                                                                                                                                                                     Page 2
DVBUTIL   ;ALB/CP/JD/BG - CAPRI UTILITIES RPCS; June 23, 2023@10:20 ; 4/24/25 1:35pm
 +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 $$GET^XPAR in ICR #2263
 +5       ; Reference to $$NAME^XUSER in ICR #2343
 +6       ; Reference to GETLST^XPAR in ICR #2263
 +7        QUIT 
 +8       ;
LOCKUNLOCK(DVBRETURN,DVBIEN,DVBLOCK) ;
 +1       ;RPC: DVBA CAPRI UNLOCK EXAM
 +2       ;Updates CAPRI-16627 CP 5/10/25
 +3        NEW DVBDTTM,DVBPERSON,DVBNOW,DVBLOCKSTA
 +4        IF DVBIEN=""
               SET DVBRETURN="-1^Missing Worksheet IEN"
               QUIT 
 +5        IF DVBLOCK=""
               SET DVBRETURN="-1^Missing Lock Flag"
               QUIT 
 +6        IF "UL"'[$GET(DVBLOCK)
               SET DVBRETURN="-1^Invalid Lock Flag"
               QUIT 
 +7        KILL DVBRETURN
 +8        SET DVBLOCKSTA=$$GET1^DIQ(396.17,DVBIEN,17,"E")
 +9        SET DVBPERSON=$$GET1^DIQ(200,DUZ_",",.01,"E")
 +10      ;BG CAPRI-8883
 +11       IF DVBLOCK="L"
               Begin DoDot:1
 +12               IF DVBLOCKSTA'=""
                       Begin DoDot:2
 +13                       IF $PIECE(DVBLOCKSTA,":",3)=DUZ
                               SET DVBRETURN="1"
                               QUIT 
 +14                       IF $PIECE(DVBLOCKSTA,":",3)'=DUZ
                               SET DVBRETURN="-1^Current worksheet is locked by "_$PIECE(DVBLOCKSTA,"@",1)_" and cannot be viewed, edited, copied or deleted at this time"
                               QUIT 
                       End DoDot:2
 +15               IF DVBLOCKSTA=""
                       Begin DoDot:2
 +16                       SET DVBNOW=$$NOW^XLFDT
 +17                       SET DVBDTTM=$$FMTE^XLFDT(DVBNOW,"2M")
 +18                       SET DVBPERSON=DVBPERSON_" on "_DVBDTTM_":"_DUZ
 +19                       KILL DIE,DA,DR,X,Y
 +20                       SET DIE=396.17
                           SET DA=DVBIEN
                           SET DR="17////"_DVBPERSON
 +21                       DO ^DIE
 +22                       IF $PIECE($GET(^DVB(396.17,DVBIEN,8)),U,2)=DVBPERSON
                               SET DVBRETURN=1
                               QUIT 
 +23                       SET DVBRETURN="-1^Can not lock worksheet at this time"
                           QUIT 
 +24                       QUIT 
                       End DoDot:2
 +25               QUIT 
               End DoDot:1
 +26       IF DVBLOCK="U"
               Begin DoDot:1
 +27               IF DVBLOCKSTA=""
                       SET DVBRETURN=1
                       QUIT 
 +28               IF DVBLOCKSTA'=""
                       IF $PIECE(DVBLOCKSTA,":",3)'=DUZ
                           SET DVBRETURN="-1^Current worksheet is locked by "_$PIECE(DVBLOCKSTA,"@",1)_" and cannot be viewed, edited, copied or deleted at this time"
                           QUIT 
 +29               IF $PIECE(DVBLOCKSTA,":",3)=DUZ
                       Begin DoDot:2
 +30                       KILL DIE,DA,DR,X,Y
 +31                       SET DIE=396.17
                           SET DA=DVBIEN
                           SET DR="17///@"
 +32                       DO ^DIE
 +33                       IF $PIECE($GET(^DVB(396.17,DVBIEN,8)),U,2)=""
                               SET DVBRETURN=1
                               QUIT 
 +34                       SET DVBRETURN="-1^Can not unlock worksheet at this time"
                           QUIT 
                       End DoDot:2
 +35               QUIT 
               End DoDot:1
 +36       KILL DIE,DA,DR,X,Y
 +37       QUIT 
INVALCHAR(DVBRETURN) ;
 +1       ;RPC: DVBA CAPRI INVALID CHAR LIST
 +2        NEW DVBSEQ,DVBRCHAR,DVBLEN,DVBCNT,DVBI,DVBINV,DVBLEN2,DVBI2,DVBBAD,DVBGOOD
 +3        SET DVBSEQ=0
           SET DVBI=1
 +4        SET DVBRCHAR=$$GET^XPAR("PKG","DVBAB CAPRI INVALID CHARACTERS",DVBI,"Q")
 +5        SET DVBLEN=$LENGTH(DVBRCHAR,",")
 +6        FOR DVBCNT=1:1:DVBLEN
               Begin DoDot:1
 +7                SET DVBI=DVBI+1
 +8                SET DVBINV=$$GET^XPAR("PKG","DVBAB CAPRI INVALID CHARACTERS",DVBI,"Q")
 +9                SET DVBLEN2=$LENGTH(DVBINV,",")
 +10               FOR DVBI2=1:1:DVBLEN2
                       Begin DoDot:2
 +11                       SET DVBSEQ=DVBSEQ+1
 +12                       SET DVBBAD=$PIECE(DVBINV,",",DVBI2)
 +13                       SET DVBGOOD=$PIECE(DVBRCHAR,",",DVBCNT)
 +14                       SET DVBRETURN(DVBSEQ)=DVBBAD_U_DVBGOOD
                       End DoDot:2
               End DoDot:1
 +15       QUIT 
TOGGLE(DVBRETURN) ;
 +1       ;BG-CAPRI-9269
 +2       ;RPC: DVBA CAPRI CMT TOGGLE
 +3        NEW DVBPAR
 +4        SET DVBPAR=$$GET^XPAR("PKG","DVBAB CAPRI CMT TOGGLE",1,"I")
 +5        SET DVBRETURN=DVBPAR
 +6        QUIT 
 +7       ;
EXINFO(DVBRETURN,DVBDUZ,DVBDVI) ;
 +1       ;New RPC code for CAPRI-11043.  JD - 7/1/24
 +2       ;RPC: DVBA CAPRI GET EXAMINER INFO
 +3        NEW DVBA,DVBDVCT,DVBDVNM,DVBDVAD1,DVBDVAD2,DVBDVSTA,DVBDVZP,DVBEXNM
 +4        SET DVBDUZ=$GET(DVBDUZ)
           SET DVBDVI=$GET(DVBDVI)
 +5        IF DVBDUZ=""
               SET DVBRETURN="-1^No User DUZ was provided"
               QUIT 
 +6        IF DVBDVI=""
               SET DVBRETURN="-1^No division IEN was provided"
               QUIT 
 +7       ;Standard name (first MI last) of DVBDUZ
           SET DVBEXNM=$$NAME^XUSER(DVBDUZ)
 +8        IF DVBEXNM=""
               SET DVBRETURN="-1^User with DUZ="_DVBDUZ_" does not exist"
               QUIT 
 +9       ;Division name
           SET DVBDVNM=$$GET1^DIQ(4,DVBDVI,".01","E")
 +10       IF DVBDVNM=""
               SET DVBRETURN="-1^Division with IEN="_DVBDVI_" does not exist"
               QUIT 
 +11      ;Division name
           SET DVBDVNM=$$GET1^DIQ(4,DVBDVI,".01","E")
 +12      ;Division address 1
           SET DVBDVAD1=$$GET1^DIQ(4,DVBDVI,"1.01","E")
 +13      ;Division address 2
           SET DVBDVAD2=$$GET1^DIQ(4,DVBDVI,"1.02","E")
 +14      ;Division city
           SET DVBDVCT=$$GET1^DIQ(4,DVBDVI,"1.03","E")
 +15      ;Division state IEN
           SET DVBA=$$GET1^DIQ(4,DVBDVI,".02","I")
 +16      ;Division state abbreviation
           SET DVBDVSTA=$$GET1^DIQ(5,DVBA,"1","E")
 +17      ;Division zipcode
           SET DVBDVZP=$$GET1^DIQ(4,DVBDVI,"1.04","E")
 +18       SET DVBRETURN=DVBEXNM_U_DVBDVNM_U_DVBDVAD1_U_DVBDVAD2_U_DVBDVCT_U_DVBDVSTA_U_DVBDVZP
 +19       QUIT 
SECTOG(DVBRETURN) ;RPC: DVBA CAPRI SECURITY TOGGLE ;CAPRI-11932;JCS
 +1        NEW DVBPAR
 +2        SET DVBPAR=$$GET^XPAR("PKG","DVBAB CAPRI SECURITY TOGGLE",1,"I")
 +3        SET DVBRETURN=DVBPAR
 +4        QUIT 
 +5       ;
 +6       ;
PDFSIGNM(DVBRTN) ;
 +1       ;New RPC code for CAPRI-12469.  JD - 7/30/24
 +2       ;RPC: DVBA CAPRI PDF SIG FIELD NAMES 
 +3        NEW DVBARTN,DVBERR
 +4        KILL ^TMP("PDFSIGNM",$JOB),DVBERR
 +5        SET DVBARTN=$NAME(^TMP("PDFSIGNM",$JOB))
 +6        DO GETLST^XPAR(DVBARTN,"PKG","DVBAB CAPRI PDF SIG FLD NAMES","Q",.DVBERR,1)
 +7        SET DVBRTN=DVBARTN
 +8        IF DVBRTN=""
               SET DVBRTN="-1^No data available"
               QUIT 
 +9        IF DVBERR'=0
               SET DVBRTN="-1^Unable to retrieve data"
 +10       QUIT 
HELPINFO(DVBRETURN) ;RPC: DVBA CAPRI SUPPORT MESSAGE ;CAPRI-12817 ;GTR
 +1        NEW DVBPAR
 +2        SET DVBPAR=$$GET^XPAR("PKG","DVBAB CAPRI SUPPORT MESSAGE",1,"I")
 +3        SET DVBRETURN=DVBPAR
 +4        QUIT 
DBQLOGIC(DVBRETURN) ;
 +1       ;New RPC to pull list of DBQs with conditional Logic CAPRI-13314 CP 9-4-24
 +2       ;RPC: DVBA CAPRI PDF LOGIC TOGGLE 
 +3        NEW DVBLIST,DVBLEN,DVBSEQ,DVBRTN,DVBERR,DVBDATA,DVBI
 +4        KILL ^TMP("DBQLOGIC",$JOB)
 +5        SET DVBSEQ=0
           SET (DVBLIST,DVBDATA)=""
 +6        DO GETWP^XPAR(.DVBLIST,"PKG","DVBAB CAPRI DBQ COND LOGIC",1,.DVBERR)
 +7        IF DVBERR'=0
               SET DVBRETURN="-1^"_DVBERR
               QUIT 
 +8        SET DVBLEN=$ORDER(DVBLIST(""),-1)
 +9        SET DVBRTN=$GET(DVBLIST(1,0))
 +10       IF DVBRTN="ALL"
               SET DVBDATA="ALL"
 +11       IF DVBRTN="NONE"
               SET DVBDATA=0
 +12       IF DVBDATA=""
               FOR DVBI=1:1:DVBLEN
                   Begin DoDot:1
 +13                   SET DVBDATA=DVBLEN
 +14                   SET DVBSEQ=DVBSEQ+1
 +15                   SET DVBDATA(DVBSEQ)=$GET(DVBLIST(DVBI,0))
 +16                   QUIT 
                   End DoDot:1
 +17       MERGE ^TMP("DBQLOGIC",$JOB)=DVBDATA
 +18       SET DVBRETURN=$NAME(^TMP("DBQLOGIC",$JOB))
 +19       QUIT 
WKSHBYEXAM(DVBRETURN,DVBEXAM) ;
 +1       ;New RPC to pull Worksheet IEN from Exam IEN CAPRI-13257 CP 9-11-24
 +2       ;RPC: DVBA CAPRI WORKSHEET BY EXAM
 +3        NEW DVBIEN1,DVBIEN2
 +4        SET DVBIEN1=""
 +5       ;
 +6        IF DVBEXAM=""
               SET DVBRETURN="-1^Missing Exam Reference Number"
               QUIT 
 +7        IF $DATA(^DVB(396.4,"B",DVBEXAM))<10
               SET DVBRETURN="-1^Invalid Exam Reference Number"
               QUIT 
 +8        SET DVBIEN1=$ORDER(^DVB(396.4,"B",DVBEXAM,DVBIEN1))
 +9        SET DVBIEN2=$GET(^DVB(396.4,DVBIEN1,2))
 +10       IF DVBIEN2=""
               SET DVBRETURN="-1^NO worksheet IEN found"
               QUIT 
 +11       IF $DATA(^DVB(396.17,DVBIEN2))<10
               SET DVBRETURN="-1^Invalid Worksheet pointer saved"
               QUIT 
 +12       SET DVBRETURN=DVBIEN2
 +13       QUIT 
PNTOG(DVBRTN) ;
 +1       ;RPC: DVBA CAPRI PN TOGGLE
 +2       ;BG-CAPRI
 +3        NEW DVBPAR
 +4        SET DVBPAR=$$GET^XPAR("PKG","DVBAB CAPRI PN TOGGLE",1,"I")
 +5        SET DVBRTN=DVBPAR
 +6        QUIT 
PCHILDLOGIC(DVBRTN) ;
 +1       ;RPC:DVBA CAPRI SKIP PARENTCHILD
 +2       ;Return parameter values for Parent child cond logic CAPRI-16410 CP 2-26-25
 +3       ;
 +4        NEW DVBLIST,DVBCNT
 +5        DO GETLST^XPAR(.DVBLIST,"PKG.AUTOMATED MED INFO EXCHANGE","DVBAB CAPRI SKIP PARENTCHILD","I",)
 +6        SET DVBCNT=$GET(DVBLIST)
 +7        IF DVBCNT=0
               SET DVBRTN(0)="-1^Parameter Empty"
               QUIT 
 +8        FOR DVBI=1:1:DVBCNT
               SET DVBRTN(DVBI)=$GET(DVBLIST(DVBI))
 +9        SET DVBRTN(0)=DVBCNT
 +10       QUIT 
CSKIPLOGIC(DVBRTN) ; 
 +1       ;RPC:DVBA CAPRI SKIP CHILD RESET
 +2        NEW DVBLIST,DVBCNT
 +3        DO GETLST^XPAR(.DVBLIST,"PKG.AUTOMATED MED INFO EXCHANGE","DVBAB CAPRI SKIP CHILD RESET","I",)
 +4        SET DVBCNT=$GET(DVBLIST)
 +5        IF DVBCNT=0
               SET DVBRTN(0)="-1^Parameter Empty"
               QUIT 
 +6        FOR DVBI=1:1:DVBCNT
               SET DVBRTN(DVBI)=$GET(DVBLIST(DVBI))
 +7        SET DVBRTN(0)=DVBCNT
 +8        QUIT 
IEPDREST(DVBRTN) ; 
 +1       ;RPC: DVBA CAPRI CMT IEPD RESET
 +2       ;BG-CAPRI-15970
 +3        NEW DVBPAR
 +4        SET DVBPAR=$$GET^XPAR("PKG","DVBAB CAPRI CMT IEPD RESET",1,"I")
 +5        SET DVBRTN=DVBPAR
 +6        QUIT 
CONDSKIP(DVBRTN) ; 
 +1       ;RPC:DVBA CAPRI CMT SKIP COND
 +2       ;BG-CAPRI-18432
 +3        NEW DVBLIST,DVBCNT
 +4        DO GETLST^XPAR(.DVBLIST,"PKG.AUTOMATED MED INFO EXCHANGE","DVBAB CAPRI SKIP CONDFIELD","I",)
 +5        SET DVBCNT=$GET(DVBLIST)
 +6        IF DVBCNT=0
               SET DVBRTN(0)="-1^Parameter Empty"
               QUIT 
 +7        FOR DVBI=1:1:DVBCNT
               SET DVBRTN(DVBI)=$GET(DVBLIST(DVBI))
 +8        SET DVBRTN(0)=DVBCNT
 +9        QUIT 
WORDWRAP(DVBRTN) ;
 +1       ;RPC: DVBA CAPRI WORD WRAP
 +2       ;CAPRI- CP 6/16/25
 +3        NEW DVBPAR
 +4        SET DVBPAR=$$GET^XPAR("PKG","DVBAB CAPRI WORD WRAP",1,"I")
 +5        SET DVBRTN=DVBPAR
 +6        QUIT 
MEDOPFLDS(DVBRTN) ; 
 +1       ;RPC: DVBA CAPRI MED OPN FIELDS
 +2       ;CAPRI-19702 RJA 06232025
 +3        NEW DVBTMP,DVBERR
 +4        KILL ^TMP("DVBMEDOPFLDS",$JOB)
 +5        DO GETWP^XPAR(.DVBTMP,"PKG","DVBAB CAPRI MED OPN FIELDS",1,.DVBERR)
 +6        IF DVBERR'=0
               SET DVBRTN="-1^"_DVBERR
               QUIT 
 +7        MERGE ^TMP("DVBMEDOPFLDS",$JOB)=DVBTMP
 +8        SET DVBRTN=$NAME(^TMP("DVBMEDOPFLDS",$JOB))
 +9        QUIT