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

DVBCTPD2.m

Go to the documentation of this file.
DVBCTPD2 ;ALB/BG/JD/CP - CAPRI XML RPCS; FEB 6, 2023@16:20 ; 10/4/23 10:07am
 ;;2.7;AMIE;**250,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
 ;
TRANSRPT(DVBRTN,DVBIEN,DVBSDT,DVBEDT) ;
 K ^TMP("CAPRI TRANSRPT",$J) S DVBCNNT=""
 I DVBIEN'="" D 
 .S DVBCT=0 F  S DVBCT=$O(^DVB(396.17,DVBIEN,14,"B",DVBCT)) Q:DVBCT=""  D
 ..S DVBINN1=""_DVBCT_","_DVBIEN_","_""
 ..S DVBSTA=$$GET1^DIQ(396.1726,DVBINN1,".02","E")
 ..S DVBNAME=$$GET1^DIQ(396.1726,DVBINN1,".03","I")
 ..;;Updating for name w/o version CPARI-9567 CP 05/14/24
 ..I DVBNAME["_" S DVBNAME=$$NAMEUPD(DVBNAME)
 ..I DVBNAME?.N S DVBNAME=$$GET1^DIQ(396.1726,DVBINN1,".03","E")
 ..S DVBPT=$$GET1^DIQ(396.17,DVBIEN,".01","E")
 ..S DVBCNT=0 F  S DVBCNT=$O(^DVB(396.17,DVBIEN,14,DVBCT,10,"B",DVBCNT)) Q:DVBCNT=""  D
 ...S DVBINN2=""_DVBCNT_","_DVBCT_","_DVBIEN_","_""
 ...S DVBAUTH=$$GET1^DIQ(396.2026,DVBINN2,".03","E")
 ...S DVBTRDT=$$GET1^DIQ(396.2026,DVBINN2,".02","E")
 ...S DVBRESP=$$GET1^DIQ(396.2026,DVBINN2,".04","E")
 ...S DVBCNNT=DVBCNNT+1 S ^TMP("CAPRI TRANSRPT",$J,DVBNAME,DVBTRDT,DVBCNNT)=DVBNAME_U_DVBPT_U_DVBAUTH_U_DVBTRDT_U_DVBSTA_U_DVBRESP
 ...Q
 .S DVBRTN=$NA(^TMP("CAPRI TRANSRPT",$J))
 .Q
 ;;
 I DVBIEN="" D
 .S DVBDT=$$NOW^XLFDT
 .I DVBSDT="",DVBEDT="" S DVBRTN="-1^MISSING DATE RANGE" Q
 .S X=$G(DVBSDT) D ^%DT S DVBSDT=Y
 .I DVBEDT'="" S X=DVBEDT D ^%DT S DVBEDT=Y
 .I DVBEDT="" S DVBEDT=$P(DVBDT,".",1)
 .S DVBIEN=0 F  S DVBIEN=$O(^DVB(396.17,DVBIEN)) Q:DVBIEN=""  D
 ..S DVBCT=0 F  S DVBCT=$O(^DVB(396.17,DVBIEN,14,"B",DVBCT)) Q:DVBCT=""  D
 ...S DVBINN1=""_DVBCT_","_DVBIEN_","_""
 ...S DVBCNT=0 F  S DVBCNT=$O(^DVB(396.17,DVBIEN,14,DVBCT,10,"B",DVBCNT)) Q:DVBCNT=""  D
 ....S DVBINN2=""_DVBCNT_","_DVBCT_","_DVBIEN_","_""
 ....S DVBCHKDT=$$GET1^DIQ(396.2026,DVBINN2,".02","I")
 ....S DVBCHKDT=$P(DVBCHKDT,".",1)
 ....I DVBCHKDT<DVBSDT Q
 ....I DVBCHKDT>DVBEDT Q 
 ....S DVBTRDT=$$GET1^DIQ(396.2026,DVBINN2,".02","E")
 ....S DVBSTA=$$GET1^DIQ(396.1726,DVBINN1,".02","E")
 ....S DVBNAME=$$GET1^DIQ(396.1726,DVBINN1,".03","I")
 ....;;Updating for name w/o version CPARI-9567 CP 05/14/24
 ....I DVBNAME["_" S DVBNAME=$$NAMEUPD(DVBNAME)
 ....I DVBNAME?.N S DVBNAME=$$GET1^DIQ(396.1726,DVBINN1,".03","E")
 ....S DVBPT=$$GET1^DIQ(396.17,DVBIEN,".01","E")
 ....S DVBAUTH=$$GET1^DIQ(396.2026,DVBINN2,".03","E")
 ....S DVBRESP=$$GET1^DIQ(396.2026,DVBINN2,".04","E")
 ....S DVBCNNT=DVBCNNT+1 S ^TMP("CAPRI TRANSRPT",$J,DVBNAME,DVBTRDT,DVBCNNT)=DVBNAME_U_DVBPT_U_DVBAUTH_U_DVBTRDT_U_DVBSTA_U_DVBRESP
 ....Q
 .S DVBRTN=$NA(^TMP("CAPRI TRANSRPT",$J))
 .Q
 K DVBCNNT,X,Y,DVBCT,DVBINN1,DVBSTA,DVBNAME,DVBPT,DVBCNT,DVBINN2,DVBAUTH,DVBTRDT,DVBRESP,DVBCHKDT,DVBDT
 Q
ADDPDF(DVBRTN,DVBIEN,DVBEXAMNAME) ;
 ;Adding an exam to an existing worksheet CAPRI-9010 CP
 N DVBERR,DVBEXAMSEQ,DVBI,DVBNEWSEQ,DVBFORM,DVBDTTM,DVBPREV,DVBRTFG,DVBEN2,DVBPN2
 S (DVBEXAMSEQ,DVBI,DVBNEWSEQ,DVBDTTM,DVBFORM,DVBPREV,DVBRTFG)=""
 S DVBPREVSEQ=$P($G(^DVB(396.17,DVBIEN,1,0),""),U,3)
 S DVBFORM=$G(^DVB(396.17,DVBIEN,4))
 F DVBI=1:1:DVBPREVSEQ D 
 . S DVBPREV=$G(^DVB(396.17,DVBIEN,1,DVBI,0))
 .;;Updates for version numbers CAPRI-10405 CP 
 . S DVBPN2=$P(DVBPREV,U,2)
 . S DVBPN2=$$NAMEUPD(DVBPN2)
 . S DVBEN2=$$NAMEUPD(DVBEXAMNAME)
 . I ("*DEL*"_DVBEN2)=DVBPN2 D 
 . . S $P(DVBPREV,U,2)=DVBEXAMNAME
 . . S DVBEXAMSEQ(DVBI)=DVBPREV,DVBRTFG=DVBIEN_U_$P(DVBPREV,U,2)_U_$P(DVBPREV,U,1)
 . . Q 
 . I $D(DVBEXAMSEQ(DVBI))=1 Q
 . S DVBEXAMSEQ(DVBI)=$G(^DVB(396.17,DVBIEN,1,DVBI,0))
 I DVBRTFG="" D 
 . S DVBNEWSEQ=DVBPREVSEQ+1
 . S DVBEXAMSEQ(DVBNEWSEQ)=DVBNEWSEQ_"^"_DVBEXAMNAME_"^0"
 . K DIC,DIE,DA,DR,DLAYGO,X,Y
 . S DA(1)=DVBIEN,(DA,X)=DVBPREVSEQ
 . S (DLAYGO,DIC)="^DVB(396.17,"_DA(1)_",1,",DIC(0)="LZ"
 . D ^DIC
 I DVBRTFG="" S DVBRTN=DVBIEN_U_DVBEXAMNAME_U_DVBNEWSEQ
 I DVBRTFG'="" S DVBRTN=DVBRTFG_U_"Exam has been Restored"
 D WP^DIE(396.17,DVBIEN_",",6,"K","DVBEXAMSEQ","DVBERR")
 I $D(DVBERR) S DVBRTN="-1^Data Not Saved" Q 
 K DIC,DIE,DA,DR,DLAYGO,X,Y
 S DVBDTTM=$$NOW^XLFDT
 S DA=DVBIEN,DIE=396.17
 S DR="4///"_DVBDTTM
 I DVBFORM'="MERGED FORM" S DR=DR_";9///MERGED FORM"
 D ^DIE
 K DIC,DIE,DA,DR,DLAYGO,X,Y
 K DVBPREVSEQ
 Q
DELETEXAM(DVBRTN,DVBIEN,DVBSEQ,DVBEXAMNAME) ;
 ;Deleting an exam from Worksheet CAPRI-9010 CP
 N DVBERR,DVBEXAMSEQ,DVBI,DVBNEWSEQ,DVBDTTM,DVBCNT,DVBFORM
 S DVBCNT=0
 S DVBCUR=$G(^DVB(396.17,DVBIEN,1,DVBSEQ,0),"")
 I $P(DVBCUR,U,2)'=DVBEXAMNAME S DVBRTN="-1^Exam Names do not match" Q
 S DVBPREVSEQ=$P($G(^DVB(396.17,DVBIEN,1,0),""),U,3)
 F DVBI=1:1:DVBPREVSEQ D 
 . I DVBI=DVBSEQ D
 . . S DVBNAME=$P($G(^DVB(396.17,DVBIEN,1,DVBI,0)),U,2)
 . . S DVBSAVE=$P($G(^DVB(396.17,DVBIEN,1,DVBI,0)),U,3)
 . . S DVBEXAMSEQ(DVBI)=DVBI_U_"*DEL*"_DVBNAME_U_DVBSAVE
 . I DVBI'=DVBSEQ S DVBEXAMSEQ(DVBI)=$G(^DVB(396.17,DVBIEN,1,DVBI,0))
 D WP^DIE(396.17,DVBIEN_",",6,"K","DVBEXAMSEQ","DVBERR")
 I $D(DVBERR) S DVBRTN="-1^Data Not Saved" Q
 I $D(DVBERR)=0 S DVBRTN="1"
 K DIC,DIE,DA,DR,DLAYGO,X,Y
 F DVBI=1:1:DVBPREVSEQ D
 . I $G(^DVB(396.17,DVBIEN,1,DVBI,0))["*DEL*" Q
 . I $G(^DVB(396.17,DVBIEN,1,DVBI,0))'["*DEL*" D 
 . . S DVBCNT=DVBCNT+1
 . . S DVBFORM=$P($G(^DVB(396.17,DVBIEN,1,DVBI,0)),U,2)
 S DVBDTTM=$$NOW^XLFDT
 S DA=DVBIEN,DIE=396.17
 S DR="4///"_DVBDTTM
 I DVBCNT=1 S DR=DR_";9///"_DVBFORM
 D ^DIE
 K DIC,DIE,DA,DR,DLAYGO,X,Y
 K DVBCUR,DVBPREVSEQ
 Q
EXAMHIST(DVBRTN,DVBIEN) ;Exam history - CAPRI-9413.  JD - 4/3/24
 ;Returns the exam history for a given worksheet
 ;
 ;Corresponding RPC: DVBA CAPRI GET EXAM HISTORY
 ;
 ;Updating return details to include save message, version, and user CAPRI-11245 CP 6/21/24 
 I DVBIEN="" S DVBRTN="-1^No worksheet IEN was provided" Q
 I '$D(^DVB(396.17,DVBIEN,0)) S DVBRTN="-1^Worksheet IEN="_DVBIEN_" does not exist" Q
 K ^TMP("DVBAEXAMHIST",$J)
 N DVBCNT,DVBEXNM,DVBEXSQ,DVBEXSV,DVBEXSVDT,DVBSMSG,DVBVER,DVBUSER
 S (DVBCNT,DVBEXNM,DVBEXSQ,DVBEXSVDT,DVBSMSG,DVBVER,DVBUSER)=""
 F  S DVBEXSQ=$O(^DVB(396.17,DVBIEN,15,"B",DVBEXSQ)) Q:DVBEXSQ=""  D
 . S DVBEXSV="",DVBEXNM=$P($G(^DVB(396.17,DVBIEN,1,DVBEXSQ,0)),U,2)
 . F  S DVBEXSV=$O(^DVB(396.17,DVBIEN,15,"B",DVBEXSQ,DVBEXSV)) Q:DVBEXSV=""  D
 . . S DVBEXSVDT=$P($G(^DVB(396.17,DVBIEN,15,DVBEXSV,1)),U),DVBCNT=DVBCNT+1
 . . S DVBEXSVDT=$$FMTE^XLFDT(DVBEXSVDT)
 . . I $P(DVBEXSVDT,":",3)="" S DVBEXSVDT=DVBEXSVDT_":00"
 . . S DVBSMSG=$P($P($G(^DVB(396.17,DVBIEN,15,DVBEXSV,1)),U,3),"|",2)
 . . S DVBVER=$P($P($G(^DVB(396.17,DVBIEN,15,DVBEXSV,1)),U,3),"|",3)
 . . S DVBUSER=$P($P($G(^DVB(396.17,DVBIEN,15,DVBEXSV,1)),U,3),"|",4)
 . . S DVBUSER=$$GET1^DIQ(200,DVBUSER,".01","E")
 . . S ^TMP("DVBAEXAMHIST",$J,DVBCNT)=DVBEXSQ_U_DVBEXNM_U_DVBEXSV_U_DVBEXSVDT_U_DVBSMSG_U_DVBVER_U_DVBUSER
 I DVBCNT'>0 S DVBRTN="-1^Worksheet IEN="_DVBIEN_" has no exam history" Q
 S DVBRTN=$NA(^TMP("DVBAEXAMHIST",$J))
 Q
RESTORE(DVBRTN,DVBIEN,DVBSEQ,DVBEXAM,DVBSAVE,DVBDATE) ;
 ;Restoring an exam from Worksheet History CAPRI-9010 CP
 N DVBERR,DVBTAB,DVBPDFDATA,DVBTOT,DVBI,DVBARTN,DVBEXAM2,DVBDTM,%DT,DVBMESS,DVBEXNMX,DVBDATA1,DVBTEXT1,DVBDATA2,DVBTEXT2,DVBSMSG,DVBVER,DVBTM
 S (DVBERR,DVBTAB,DVBTOT,DVBI,DVBARTN,DVBDTM,DVBSMSG,DVBVER)=""
 ;
 S DVBMESS=$S(DVBIEN="":"Worksheet IEN",DVBSEQ="":"Exam Seq",DVBEXAM="":"Exam Name",DVBSAVE="":"Save Seq",DVBDATE="":"Save DateTime",1:"")
 I DVBMESS'="" S DVBRTN="-1^Missing "_DVBMESS Q
 S X=$P(DVBDATE,"@",1),%DT="" D ^%DT S DVBDTM=Y
 I DVBDTM="-1" S DVBRTN="-1^Invalid DateTime Format:" Q
 K %DT
 ;
 ;;Correcting for saved time format CAPRI-13217 CP 8-28-24
 S DVBTM=$TR($P(DVBDATE,"@",2),":")
 I $E(DVBTM,5,6)="00" S DVBTM=$E(DVBTM,1,4)
 I $E(DVBTM,6)=0 S DVBTM=$E(DVBTM,1,5)
 ;
 ;;Updates for version numbers CAPRI-10405 CP
 S DVBEXNMX=$$NAMEUPD(DVBEXAM)
 S DVBARTN=""
 S DVBDATA1=$P($G(^DVB(396.17,DVBIEN,1,DVBSEQ,0)),U,1,2)
 S DVBDATA1=$$NAMEUPD(DVBDATA1)
 S DVBTEXT1=DVBSEQ_U_DVBEXNMX
 I DVBDATA1'=DVBTEXT1 S DVBRTN="-1^Incorrect Exam Name and Seq Number" Q
 I DVBEXAM["*DEL*" S DVBEXAM2=$P(DVBEXAM,"*",3) D ADDPDF(.DVBARTN,DVBIEN,DVBEXAM2)
 I DVBARTN["-1^" S DVBRTN=DVBARTN Q
 I DVBARTN'="" S DVBEXAM=$P(DVBARTN,U,2),DVBEXNMX=$$NAMEUPD(DVBEXAM)
 S DVBDTM=DVBDTM_"."_DVBTM
 ;;Updating for correct pull of date/time and exam name CAPRI-13217 CP 8-28-24
 S DVBDATA2=$P($G(^DVB(396.17,DVBIEN,15,DVBSAVE,1)),U,1,2)
 S DVBDATA2=$$NAMEUPD(DVBDATA2)
 S DVBTEXT2=DVBDTM_U_DVBEXNMX
 I DVBDATA2'=DVBTEXT2 S DVBRTN="-1^Worksheet IEN/Save Seq do not match Save DateTime and Exam Name" Q
 ;;CAPRI-11245 CP 6/21/24
 S DVBTAB=$P($P($G(^DVB(396.17,DVBIEN,15,DVBSAVE,1),""),U,3),"|",1)
 S DVBSMSG="RESTORE"
 S DVBVER=$P($P($G(^DVB(396.17,DVBIEN,15,DVBSAVE,1),""),U,3),"|",3)
 ;
 S DVBPDFDATA=""
 S DVBTOT=$P($G(^DVB(396.17,DVBIEN,15,DVBSAVE,2,0),""),U,3)
 I DVBTOT'?.N S DVBRTN="-1^Error with PDF Data" Q
 F DVBI=1:1:DVBTOT S DVBPDFDATA(DVBI)=$G(^DVB(396.17,DVBIEN,15,DVBSAVE,2,DVBI,0))
 ;
 D PDFSAVE^DVBCTPDF(.DVBERR,DVBIEN,DVBSEQ,DVBEXAM,.DVBPDFDATA,DVBTAB,DVBSMSG,DVBVER)
 S DVBRTN=DVBERR Q
 ;
 Q
NAMEUPD(DVBEXAM) ;
 N DVBCNT,DVBEND,DVBEXNM2
 S DVBCNT=$L(DVBEXAM,"_")
 S DVBEND=DVBCNT-1
 I DVBEND=0 Q DVBEXAM
 S DVBEXNM2=$P(DVBEXAM,"_",1,DVBEND)
 I DVBEXNM2="" S DVBEXNM2=DVBEXAM
 Q DVBEXNM2