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

DVBCTPDF.m

Go to the documentation of this file.
DVBCTPDF ;ALB/BG/CP/JD - CAPRI XML RPCS; FEB 6, 2023@16:20 ; 4/29/24 12:59pm
 ;;2.7;AMIE;**252**;Apr 10, 1995;Build 92
 ; Per VHA Directive 6402 this routine should not be modified
 ; Reference to $$NOW^XLFDT and $$FMTE^XLFDT in ICR #10103
 Q
 ;
 ;Added Acceptable Clinical Evidence (ACE) to the list of returned items for CAPRI-13939.  JD - 10/3/24
 ;Updating to store Save Message, Version, and User CAPRI-11245 CP 6/21/24
 ;Made changes for CAPRI-11238.  JD - 6/19/24
 ;Made changes for CAPRI-11207.  JD - 6/13/24.
 ;Made changes for CAPRI-10057.  JD - 5/1/24.
FAILPDF(DVBPDF,DVBIEN,DVBCT) ; 
 ;;RPC DVBA CAPRI GET DBQ PDF pulls latest version of single Exam, noneditable 
 ;;Routine locks exam not worksheet
 N DVBABCNT,DVBFPDF,DVNCT,DVBABIEN,DVBSV K ^TMP("DVBAPDF",$J)
 ;Next two lines added for CAPRI-10057.
 S DVBSV=$P($G(^DVB(396.17,DVBIEN,1,DVBCT,0)),U,3)  ;Get the latest save number for the given exam.
 I '$G(DVBSV) S DVBPDF="" Q
 ;
 S DVBABCNT=1,DVBABIEN=0,DVNCT=0
 S DVBRTN=$$LOCK(DVBIEN,DVBSV) I DVBRTN=0 S DVBPDF="1^LOCKED RECORD" Q
 ;In the following 2 lines replaced 14,DVBCT,7 with 15,DVBSV,2.  CAPRI-10057
 F  S DVBABIEN=$O(^DVB(396.17,DVBIEN,15,DVBSV,2,DVBABIEN)) Q:'DVBABIEN  D
 .S DVBFPDF=$G(^DVB(396.17,DVBIEN,15,DVBSV,2,DVBABCNT,0))
 .I DVBABCNT=1 S DVBFPDF="1"_U_DVBFPDF
 .S DVBABCNT=DVBABCNT+1,DVNCT=DVNCT+1 M ^TMP("DVBAPDF",$J,DVNCT)=DVBFPDF
 .Q
 S DVBPDF=$NA(^TMP("DVBAPDF",$J))
 D UNLOCK(DVBIEN,DVBSV)
 Q
LOCK(DVBIEN,DVBSV) ;
 L +^DVB(396.17,DVBIEN,15,DVBSV,2):$G(DILOCKTM)
 S DVBRTN=$T
 Q DVBRTN
UNLOCK(DVBIEN,DVBSV) ;
 L -^DVB(396.17,DVBIEN,15,DVBSV,2)
 Q
PDFRTN(DVBRTN,DVBARRAY) ; 
 ;;RPC DVBA CAPRI GET EXAM PDF used to pull PDF details, Exam can be edited.
 ;;Worksheet is locked before this call
 N DVBIEN,DVBTAB,DVBCT,DVBPTR,DVBNM,DVBTABIO,DVBPDF,DVBCNT,DVBAIEN
 K ^TMP("DVBAPDFEDIT",$J)
 I '$D(DVBARRAY) S DVBRTN="0^MISSING DATA" Q
 S DVBIEN=$P(DVBARRAY,U),DVBCNT=1
 S DVBNM=$P($G(DVBARRAY),U,2) I DVBNM="" Q
 S DVBAIEN=0 F  S DVBAIEN=$O(^DVB(396.17,DVBIEN,1,DVBAIEN)) Q:DVBAIEN=""  D
 .I $P($G(^DVB(396.17,DVBIEN,1,DVBAIEN,0)),"^",2)'=DVBNM Q
 .S DVBPTR=$P($G(^DVB(396.17,DVBIEN,1,DVBAIEN,0)),"^",3) I DVBPTR=0 Q
 .;;CAPRI-11245 CP 6/21/24
 .S DVBTAB=$P($P($G(^DVB(396.17,DVBIEN,15,DVBPTR,1)),"^",3),"|",1)
 .S DVBTABIO=DVBAIEN_U_DVBTAB_U_DVBNM
 .S DVBCNT=DVBCNT+1 M ^TMP("DVBAPDFEDIT",$J,DVBCNT)=DVBTABIO
 .S DVBCT=0 F  S DVBCT=$O(^DVB(396.17,DVBIEN,15,DVBPTR,2,DVBCT)) Q:DVBCT=""  D
 ..S DVBPDF=$G(^DVB(396.17,DVBIEN,15,DVBPTR,2,DVBCT,0))
 ..S DVBCNT=DVBCNT+1 M ^TMP("DVBAPDFEDIT",$J,DVBCNT)=DVBPDF
 ..Q
 S DVBRTN=$NA(^TMP("DVBAPDFEDIT",$J))
 Q
PDFEXAM(DVBRTN,DVBIEN) ; 
 ;Added DVBACE to the list for CAPRI-13939.
 N DVBACE,DVBCT,DVBSTAT,DVBPT,DVBAUTH,DVBUPD,DVBVHA,DVBIEPD,DVBPDF,DVBCNT
 ;Added DVBWOI and DVBWON to the list for CAPRI-11238.
 N DVBAUTHNM,DVBTRANSID,DVBTRANSNM,DVBPTNM,DVBLOCK,DVBWOI,DVBWON
 K ^TMP("DVBAPDFLST",$J)
 I '$D(DVBIEN) S DVBRTN="0^MISSING DATA" Q
 ;BG CAPRI-8883 added lock
 S DVBSTAT=$$GET1^DIQ(396.17,DVBIEN,"11","I")
 S DVBLOCK=$S(DVBSTAT="A":"L",DVBSTAT="S":"L",DVBSTAT="P":"L",DVBSTAT="D":"L",1:"U")
 I DVBLOCK="L" D LOCKUNLOCK^DVBUTIL(.DVBLRTN,DVBIEN,"L")
 I $G(DVBLRTN)["-1" M ^TMP("DVBAPDFLST",$J,1)=DVBLRTN S DVBRTN=$NA(^TMP("DVBAPDFLST",$J)) Q
 S DVBPT=$$GET1^DIQ(396.17,DVBIEN,".01","I")
 S DVBPTNM=$$GET1^DIQ(396.17,DVBIEN,".01","E")
 S DVBAUTH=$$GET1^DIQ(396.17,DVBIEN,"2","I")
 S DVBAUTHNM=$$GET1^DIQ(396.17,DVBIEN,"2","E")
 S DVBUPD=$$GET1^DIQ(396.17,DVBIEN,"4","I")
 S DVBVHA=$$GET1^DIQ(396.17,DVBIEN,"25","I")
 S DVBIEPD=$$GET1^DIQ(396.17,DVBIEN,"12","I")
 S DVBTRANSID=$$GET1^DIQ(396.17,DVBIEN,"10","I")
 S DVBTRANSNM=$$GET1^DIQ(396.17,DVBIEN,"10","E")
 ;Next 2 lines added for CAPRI-11238.
 S DVBWOI=$$GET1^DIQ(396.17,DVBIEN,"13","I")  ;Worksheet originator IEN
 S DVBWON=$$GET1^DIQ(396.17,DVBIEN,"13","E")  ;Worksheet originator name
 ;Next line added for CAPRI-13939.
 S DVBACE=$$GET1^DIQ(396.17,DVBIEN,"1","I")   ;Acceptable Clinical Evidence (ACE)
 I $G(DVBTRANSID)="" S DVBTRANSID="N/A",DVBTRANSNM="N/A"
 S DVBCNT=1
 ;Added the Worksheet Originator (DVBWOI,DVBWON) to the return list for CAPRI-11238.
 ;Added Acceptable Clinical Evidence (ACE) to the return list for CAPRI-13939.
 S DVBPDF=DVBIEN_U_DVBSTAT_U_DVBPT_U_DVBPTNM_U_DVBAUTH_U_DVBAUTHNM_U_DVBUPD_U_DVBVHA_U_DVBIEPD_U_DVBTRANSID_U_DVBTRANSNM_U_DVBWOI_U_DVBWON_U_DVBACE
 M ^TMP("DVBAPDFLST",$J,DVBCNT)=DVBPDF
 S DVBAIEN=0 F  S DVBAIEN=$O(^DVB(396.17,DVBIEN,1,DVBAIEN)) Q:DVBAIEN=""  D
 .S DVBPTR=$P($G(^DVB(396.17,DVBIEN,1,DVBAIEN,0)),"^",3) I DVBPTR="" Q 
 .S DVBNM=$P($G(^DVB(396.17,DVBIEN,1,DVBAIEN,0)),"^",2) I DVBNM["*DEL*" Q
 .;;CAPRI-11245 CP 6/21/24
 .S DVBTAB=$P($P($G(^DVB(396.17,DVBIEN,15,DVBPTR,1)),"^",3),"|",1)
 .S DVBPDF=DVBAIEN_U_DVBTAB_U_DVBNM
 .S DVBCNT=DVBCNT+1 M ^TMP("DVBAPDFLST",$J,DVBCNT)=DVBPDF
 S DVBRTN=$NA(^TMP("DVBAPDFLST",$J))
 Q
CREATE(DVBRTN,DVBDATA,DVBEXAMLIST) ; 
 N DVBPATIENT,DVBAUTHOR,DVBIEPDVER,DVBDBQREF,DVBTRANSCRIB,DVBFORMNAME,DVBDTTM,DVBEXAMCNT,DVBEXAMSEQ,DVBEXAMNAME,DVBIEN,DVBI
 S DVBPATIENT=$G(DVBDATA(1))
 S DVBAUTHOR=$G(DVBDATA(2))
 S DVBIEPDVER=$G(DVBDATA(3))
 S DVBDBQREF=$G(DVBDATA(4))
 S DVBTRANSCRIB=$G(DVBDATA(5))
 S DVBFORMNAME=$G(DVBDATA(6))
 ;
 K DIC,DIE,DA,DR,X,Y,DO
 S DIC=396.17,DIC(0)="Z",X=DVBPATIENT
 D FILE^DICN
 I Y=-1 K DIC S DVBRTN="-1^New Entry not Built" Q
 S (DA)=+Y,DIE=DIC
 S DVBDTTM=$$NOW^XLFDT
 S DR=".01///"_DVBPATIENT_";2///"_DVBAUTHOR_";3///"_DVBDTTM_";4///"_DVBDTTM_";5///2800101"
 S DR=DR_";9///"_DVBFORMNAME_";10///"_DVBTRANSCRIB_";11///D"_";12///"_DVBIEPDVER_";19///N"_";25///"_DVBDBQREF
 ;Used Author to populate the Worksheet Originator field for CAPRI-11207.
 S DR=DR_";13///"_DVBAUTHOR
 D ^DIE
 I DA="" S DVBRTN="-1^Missing Worksheet IEN" Q
 S DVBRTN(0)=DA
 K DIC,DIE,DA,DR,X,Y
 ;
 N DVBERR
 S (DVBEXAMCNT,DVBEXAMSEQ)=""
 S DVBEXAMCNT=$O(DVBEXAMLIST(DVBEXAMCNT),-1)
 F DVBI=1:1:DVBEXAMCNT Q:$G(DVBEXAMLIST(DVBI))=""  D
 . S DVBEXAMNAME=$G(DVBEXAMLIST(DVBI))
 . S DVBIEN=$G(DVBRTN(0))
 . S DVBEXAMSEQ(DVBI)=DVBI_"^"_DVBEXAMNAME_"^0"
 . K DIC,DIE,DA,DR,DLAYGO,X,Y
 . S DA(1)=DVBIEN,(DA,X)=DVBI
 . S (DLAYGO,DIC)="^DVB(396.17,"_DA(1)_",1,",DIC(0)="L"
 . D ^DIC
 . S DVBRTN(DVBI)=DVBI_":"_DVBEXAMNAME
 . Q 
 D WP^DIE(396.17,DVBIEN_",",6,"K","DVBEXAMSEQ","DVBERR")
 I $D(DVBERR) S DVBRTN="-1^Data Not Saved" Q
 ;BG CAPRI-8883 added lock
 D LOCKUNLOCK^DVBUTIL(.DVBLRTN,DVBIEN,"L")
 I $G(DVBLRTN)["-1" S DVBRTN=DVBLRTN Q
 K DIC,DIE,DA,DR,DLAYGO,X,Y
 Q
PDFSAVE(DVBRTN,DVBIEN,DVBSEQ,DVBEXAMNAME,DVBPDFDATA,DVBTABIO,DVBSMSG,DVBVER) ;
 N DVBDTTM,DVBSAVESEQ,DVBNEXTSEQ,DVBPRESAVE,DVBPRENAME,DVBAFDA,DVBLRTN,DVBPN2,DVBEN2,DVBSAVECMT
 I $D(DVBSMSG)=0 S DVBSMSG=""
 I $D(DVBVER)=0 S DVBVER=""
 K DIC,DIE,DA,DR,DLAYGO,X,Y
 N DVBERR
 ;;CAPRI-11245 CP 6/21/24
 S DVBSAVECMT=DVBTABIO_"|"_DVBSMSG_"|"_DVBVER_"|"_DUZ
 S DVBDTTM=$$NOW^XLFDT
 S DVBSAVESEQ=$P($G(^DVB(396.17,DVBIEN,15,0)),"^",3)
 S DA(1)=DVBIEN,(DA,X)=DVBSAVESEQ+1
 ;;Adding Z to correct xref CP
 S (DLAYGO,DIC)="^DVB(396.17,"_DA(1)_",15,",DIC(0)="LZ"
 D ^DIC
 I Y=-1 K DIC S DVBRTN="-1^New version not saved" Q
 S DVBNEXTSEQ=+Y
 S DIE=DIC
 S DR=".01///"_DVBSEQ_";.02///"_DVBDTTM_";.03///"_DVBEXAMNAME_";.04///"_DVBSAVECMT
 D ^DIE
 D WP^DIE(396.1727,DVBNEXTSEQ_","_DVBIEN_",",.05,"K","DVBPDFDATA","DVBERR")
 I $D(DVBERR) S DVBRTN="-1^Data not saved" Q
 I '$D(DVBERR) S DVBRTN=1
 S DVBAFDA(396.17,DVBIEN_",",4)=DVBDTTM
 K DVBERR D FILE^DIE(,"DVBAFDA","DVBERR")
 S DVBPRESAVE=$G(^DVB(396.17,DVBIEN,1,DVBSEQ,0),"")
 I DVBPRESAVE="" S DVBRTN="-1^Incorrect Seq Number" Q
 S DVBPRENAME=$P(DVBPRESAVE,"^",2)
 ;;Updating to not compare version CAPRI-10405 CP
 S DVBPN2=$$NAMEUPD^DVBCTPD2(DVBPRENAME)
 S DVBEN2=$$NAMEUPD^DVBCTPD2(DVBEXAMNAME)
 I DVBPN2'=DVBEN2 S DVBRTN="-1^Mismatch Exam Name" Q
 I DVBPN2=DVBEN2 S ^DVB(396.17,DVBIEN,1,DVBSEQ,0)=DVBSEQ_"^"_DVBEXAMNAME_"^"_DVBNEXTSEQ,DVBRTN="1"
 Q
PASCALCHK(DVBRTN,DVBIEN) ;  
 I '$D(DVBIEN) S DVBRTN="-1^MISSING DATA" Q
 I $D(^DVB(396.17,DVBIEN,3)) S DVBRTN="P" Q
 I '$D(^DVB(396.17,DVBIEN,3)) S DVBRTN="C"
 Q
PDFLST(DVBRTN,DVBIEN) ;
 ;RETURN worksheet IEN, Worksheet Name, Template/Exam Name, Date Signed (if applicable), Author, Status, New Flag, Green Flag, Exclamation Flag, CMT/PASCAL FLAG.
 ;RPC: DVBA CAPRI GET WORKSHEET LIST
 ;Update for CMT/PASCAL flag 4-22-24 CP CAPRI 9826
 ;Added DVBWON to the list for CAPRI-11238.
 N DVBNCT,DVBNNCT,DVBAUTH,DVBSTAT,DVBNAME,DVBNM,DVBPT,DVBPIEN,DVBAIEN,DVBWSIEN,DVBSDT,DVBPDF,DVBNFLG,DVBGFLG,DVBXFLG,DVBCPFLG,DVBWON
 K ^TMP("DVBPDFLST",$J) S DVBNCT=0
 I '$D(DVBIEN) S DVBRTN="0^MISSING DATA" Q
 I $D(^DVB(396.17,"B",DVBIEN))<10 S DVBRTN="0^NO WORKSHEETS" Q
 S DVBWSIEN=0 F  S DVBWSIEN=$O(^DVB(396.17,"B",DVBIEN,DVBWSIEN)) Q:DVBWSIEN=""  D
 .S DVBNCT=DVBNCT+1
 .S DVBAUTH=$$GET1^DIQ(396.17,DVBWSIEN,"2","E")
 .S DVBNAME=$$GET1^DIQ(396.17,DVBWSIEN,"9","I")
 .S DVBSTAT=$$GET1^DIQ(396.17,DVBWSIEN,"11","I")
 .S DVBPT=$$GET1^DIQ(396.17,DVBWSIEN,".01","E")
 .S DVBSDT=$$GET1^DIQ(396.17,DVBWSIEN,"5","E")
 .S DVBNFLG=$$GET1^DIQ(396.17,DVBWSIEN,"19","E")
 .S DVBGFLG=$$GET1^DIQ(396.17,DVBWSIEN,"20","E")
 .S DVBXFLG=$$GET1^DIQ(396.17,DVBWSIEN,"21","E")
 .;Next line added for CAPRI-11238.
 .S DVBWON=$$GET1^DIQ(396.17,DVBWSIEN,"13","E")  ;Worksheet originator name
 .S DVBCPFLG=$S($D(^DVB(396.17,DVBWSIEN,3))>9:"P",1:"C")
 .S DVBPDF=$G(DVBWSIEN)_U_$G(DVBPT)_U_$G(DVBNAME)_U_$G(DVBSDT)_U_$G(DVBAUTH)_U_$G(DVBSTAT)_U_$G(DVBNFLG)_U_$G(DVBGFLG)_U_$G(DVBXFLG)_U_$G(DVBCPFLG)_U_$G(DVBWON)
 .S ^TMP("DVBPDFLST",$J,DVBNCT)=DVBPDF
 .S DVBAIEN=0 F  S DVBAIEN=$O(^DVB(396.17,DVBWSIEN,1,DVBAIEN)) Q:DVBAIEN=""  D
 ..S DVBPTR=$P($G(^DVB(396.17,DVBWSIEN,1,DVBAIEN,0)),"^",3) I DVBPTR="" Q 
 ..S DVBNM=$P($G(^DVB(396.17,DVBWSIEN,1,DVBAIEN,0)),"^",2) I DVBNM["*DEL*" Q
 ..;;CAPRI-11245 CP 6/21/24
 ..S DVBTAB=$P($P($G(^DVB(396.17,DVBWSIEN,15,DVBPTR,1)),"^",3),"|",1)
 ..S DVBPDF=DVBAIEN_U_DVBTAB_U_DVBNM
 ..S DVBNCT=DVBNCT+1 M ^TMP("DVBPDFLST",$J,DVBNCT)=DVBPDF
 S DVBRTN=$NA(^TMP("DVBPDFLST",$J))
 Q
DELCHECK(DVBRTN,DVBIEN) ; 
 ;Added DVBWOI to the list for CAPRI-11238.
 N DVBAUTH,DVBTRS,DVBKY,DVBWOI
 I '$D(DVBIEN) S DVBRTN="-1^MISSING IEN" Q
 ;BG CAPRI-8883 added lock
 D LOCKUNLOCK^DVBUTIL(.DVBLRTN,DVBIEN,"L")
 I $G(DVBLRTN)["-1" S DVBRTN=DVBLRTN Q
 S DVBAUTH=$$GET1^DIQ(396.17,DVBIEN,"2","I")
 S DVBTRS=$$GET1^DIQ(396.17,DVBIEN,"10","I")
 S DVBWOI=$$GET1^DIQ(396.17,DVBIEN,"13","I")
 ;Added the Worksheet Originator IEN (DVBWOI) check for CAPRI-11238.
 I (DUZ'=DVBAUTH),(DUZ'=DVBTRS),(DUZ'=DVBWOI) S DVBRTN="-1^Unable to delete, User is not Document Manager, Transcriber or Worksheet Originator" Q
 D OWNSKEY^XUSRB(.DVBKY,"DVBAB CPWM REVIEWER",DUZ)
 I '$G(DVBKY(0)) S DVBRTN="-1^Unable to delete, User does not have DVBAB CPWM REVIEWER Security Key"
 I $P($G(^VA(200,DUZ)),U,4)'="@" S DVBRTN="-1^Unable to delete, User does not have Fileman Access"
 S DVBRTN=1
 Q
DELETE(DVBRTN,DVBIEN) ; 
 N FDA,DVBERR
 I '$D(DVBIEN) S DVBRTN="-1^MISSING IEN" Q
 S FDA(396.17,DVBIEN_",",.01)="@"
 D FILE^DIE("","FDA","DVBERR")
 I '$D(DVBERR) S DVBRTN=1
 I $D(DVBERR) S DVBRTN="-1^Unable to delete"
 Q