Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: DVBUTIL

DVBUTIL.m

Go to the documentation of this file.
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