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

DVBCTXML.m

Go to the documentation of this file.
DVBCTXML ;ALB/BG/CP/JD - CAPRI XML RPCS; FEB 6, 2023@16:20 ; 12/4/23 10:33am
 ;;2.7;AMIE;**250,252,254**;Apr 10, 1995;Build 41
 ; Per VHA Directive 6402 this routine should not be modified
 ; Reference to SUPPORTED PARAMETER TOOL ENTRY POINTS in ICR #2263
 ; Reference to $$NOW^XLFDT and $$FMTE^XLFDT in ICR #10103
 Q
 ;Made changes for CAPRI-11238.  JD - 6/17/24
FAILIST(DVBFAIL,DVBDUZ) ; rpc entry to return list of failed xml transmissions
 ;RPC: DVBA CAPRI DBQ TRANS FAIL LIST
 ;Added DVBWOI and DVBWON to the list for CAPRI-11238.
 N DVBNCT,DVBAUTH,DVBALL,DVBLIST,DVBSTA,DVBNAME,DVBORG,DVBNOW,DVBCOMP,DVBPT,DVBIEN,DVBCT,DVBFLAG,DVBDATE,DVBPATCH,DVBWOI,DVBWON,DVBCMT,DVBCTFLAG
 K ^TMP("CAPRI XML LIST",$J) S DVBNCT=""
 S DVBALL=1 I '$D(DVBDUZ) S DVBALL=0
 S DVBPATCH=3231025,DVBIEN=""
 S DVBDATE=DVBPATCH F  S DVBDATE=$O(^DVB(396.17,"C",DVBDATE)) Q:DVBDATE=""  D
 .S DVBIEN="" F  S DVBIEN=$O(^DVB(396.17,"C",DVBDATE,DVBIEN)) Q:DVBIEN=""  D
 ..I '$D(^DVB(396.17,DVBIEN,14,"B")) Q
 ..;Add CMT toggle parameter check CAPRI-10630 RJA 06/26/24
 ..S DVBCMT=0 D TOGGLE^DVBUTIL(.DVBCMT)
 ..S DVBCTFLAG=0 D PASCALCHK^DVBCTPDF(.DVBCTFLAG,DVBIEN)
 ..Q:DVBCMT=1&(DVBCTFLAG="P")!(DVBCMT=2&(DVBCTFLAG="C"))
 ..;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
 ..;Added the Worksheet Originator IEN (DVBWOI) check for CAPRI-11238.
 ..S DVBAUTH=$$GET1^DIQ(396.17,DVBIEN,"2","I") I (DVBALL=1),($G(DVBDUZ)'=DVBAUTH),($G(DVBDUZ)'=DVBWOI) Q
 ..S DVBPT=$$GET1^DIQ(396.17,DVBIEN,".01","E")
 ..S DVBCT=0 F  S DVBCT=$O(^DVB(396.17,DVBIEN,14,"B",DVBCT)) Q:DVBCT=""  D
 ...S DVBFLAG=0,DVBINN=""_DVBCT_","_DVBIEN_","_""
 ...S DVBSTA=$$GET1^DIQ(396.1726,DVBINN,".02","I")
 ...I DVBSTA="C" Q
 ...S DVBORG=$$GET1^DIQ(396.1726,DVBINN,".05","I")
 ...S DVBNAME=$$GET1^DIQ(396.1726,DVBINN,".03","I")
 ...;;Update Reports to remove version on display CAPRI-9567 CP 5/14/24
 ...I DVBNAME["_" S DVBNAME=$$NAMEUPD^DVBCTPD2(DVBNAME)
 ...I DVBNAME?.N S DVBNAME=$$GET1^DIQ(396.1726,DVBINN,".03","E")
 ...S DVBNOW=$$NOW^XLFDT S DVBDT=$$FMDIFF^XLFDT(DVBNOW,DVBORG,3)
 ...S DVBCOMP=$P(DVBDT," ",1) I DVBCOMP>=1 S DVBFLAG=1
 ...S DVBORG=$$FMTE^XLFDT(DVBORG,1)
 ...;Added the Worksheet Originator (DVBWOI,DVBWON) to the return list for CAPRI-11238.
 ...S DVBLIST=DVBIEN_U_DVBCT_U_DVBNAME_U_DVBPT_U_DVBORG_U_DVBFLAG_U_DVBWON_";"
 ...S DVBNCT=DVBNCT+1 M ^TMP("CAPRI XML LIST",$J,DVBNCT)=DVBLIST
 ...Q
 S DVBFAIL=$NA(^TMP("CAPRI XML LIST",$J))
 Q
 ;  
FAILXML(DVBXML,DVBIEN,DVBCT) ;
 ;RPC: DVBA CAPRI GET DBQ XML
 N DVBABCNT,DVBFXML,DVNCT,DVBFXML,DVBABIEN K ^TMP("DVBAXML",$J)
 I '$D(^DVB(396.17,DVBIEN)) S DVBXML="0^NO RECORD EXISTS" Q
 I '$D(^DVB(396.17,DVBIEN,14,DVBCT)) S DVBXML="0^NO RECORD EXISTS" Q
 S DVBABCNT=1,DVBABIEN=0,DVNCT=0
 S DVBRTN=$$LOCK(DVBIEN,DVBCT) I DVBRTN=0 S DVBXML="1^LOCKED RECORD" Q
 F  S DVBABIEN=$O(^DVB(396.17,DVBIEN,14,DVBCT,3,DVBABIEN)) Q:'DVBABIEN  D
 .S DVBFXML=$G(^DVB(396.17,DVBIEN,14,DVBCT,3,DVBABCNT,0))
 .I DVBABCNT=1 S DVBFXML="1"_U_DVBFXML
 .S DVBABCNT=DVBABCNT+1,DVNCT=DVNCT+1 M ^TMP("DVBAXML",$J,DVNCT)=DVBFXML
 .Q
 S DVBXML=$NA(^TMP("DVBAXML",$J))
 D UNLOCK(DVBIEN,DVBCT)
 Q
 ;
SAVEXML(DVBRTN,DVBNAME,DVBCT,DVBPM1,DVBPM2,DVBPM3,DVBPM4,DVBPM5) ;
 ;RPC: DVBA CAPRI SAVE DBQ XML
 ;Updates CAPRI-16627 CP 3/10/25
 K DVBXML,DVBSTAT,DVBRESP,DVBIEN
 I $G(DVBCT)="" S DVBCT=1
 I $G(DVBPM5)'="" S DVBSTAT=DVBPM3,DVBRESP=DVBPM4,DVBIEN=DVBPM5 M DVBXML=DVBPM2
 I $G(DVBPM5)="" S DVBSTAT=DVBPM2,DVBRESP=DVBPM3,DVBIEN=DVBPM4 M DVBXML=DVBPM1
 S DVBRESP="Initial Save"
 S DVBRTN=0
 D STATUS(.DVBRTN,DVBIEN,DVBCT,DVBNAME,DVBSTAT,DVBRESP)
 I $E(DVBRTN,1,2)="-1" Q
 D FILEIN(.DVBRTN,DVBIEN,DVBCT,.DVBXML)
 K DIC,DIE,DA,DR,DLAYGO,X,Y
 S DVBRTN=DVBRTN
 Q
FILEIN(DVBRTN,DVBIEN,DVBCT,DVBXML) ;
 N DVBERR
 D LOCK(DVBIEN,DVBCT)
 D WP^DIE(396.1726,DVBCT_","_DVBIEN_",",.04,"K","DVBXML","DVBERR")
 I $D(DVBERR) S DVBRTN="-1^XML did not save"
 S DVBRTN=DVBRTN
 D UNLOCK(DVBIEN,DVBCT)
 Q
STATUS(DVBRTN,DVBIEN,DVBCT,DVBNAME,DVBSTAT,DVBRESP) ;
 ;RPC Direct Call: DVBA CAPRI UPDATE DBQ TRANSTAT
 N DVBCNT,DVBDT,DVBNWIEN,DVBINN,DVBTRANS,DVBSTA,DVBDATA,DVBERR
 S DVBRTN=0
 S DVBSTA=$S(DVBSTAT=1:"C",1:"E")
 I '$D(DVBRESP)!(DVBRESP="")&(DVBSTA="C") S DVBRESP="TRANSMISSION COMPLETE"
 S DVBDT=$$NOW^XLFDT,DVBCNT=""
 S DVBINN=DVBCT_","_DVBIEN_","
 S DVBTRANS=$$GET1^DIQ(396.1726,DVBINN,".07","I")
 I DVBRESP'="Initial Save" S DVBTRANS=$G(DVBTRANS)+1
 I DVBTRANS="" S DVBTRANS=0
 K DIC,DIE,DA,DR,DLAYGO,X,Y
 I $D(^DVB(396.17,DVBIEN,14,DVBCT))<10 D
 . S DA(1)=DVBIEN,(DA,X)=DVBCT
 . S (DLAYGO,DIC)="^DVB(396.17,"_DA(1)_",14,",DIC(0)="LZ"
 . D ^DIC
 . I Y="-1" S DVBRTN="-1^Can not save transmission" Q
 I $E(DVBRTN,1,2)="-1" Q
 S DVBDATA(396.1726,DVBINN,".02")=DVBSTA
 S DVBDATA(396.1726,DVBINN,".07")=DVBTRANS
 I DVBSTA="C" S DVBDATA(396.1726,DVBINN,".09")=DVBDT
 I DVBNAME'="" S DVBDATA(396.1726,DVBINN,".03")=DVBNAME
 I DVBRESP="Initial Save" S DVBDATA(396.1726,DVBINN,".05")=DVBDT
 D UPDATE^DIE("","DVBDATA","DVBIEN","DVBERR")
 I $D(DVBERR) S DVBRTN="-1^Can not save details" Q
 S DVBCNT=$O(^DVB(396.17,DVBIEN,14,DVBCT,10,"B",DVBCNT),-1)
 S DVBCNT=$G(DVBCNT)+1
 K DIC,DIE,DA,DR,DLAYGO,X,Y
 S DA(2)=DVBIEN,DA(1)=DVBCT,X=DVBCT
 S (DLAYGO,DIC)="^DVB(396.17,"_DA(2)_",14,"_DA(1)_",10,",DIC(0)="LZ"
 S DIC("DR")=".02////"_DVBDT_";.03////"_DUZ_";.04////"_DVBRESP
 D FILE^DICN
 I Y=-1 S DVBRTN="-1^Can not save transmission" Q
 S DVBRTN=1
 K DIC,DIE,DIERR,DA,DR,DLAYGO,X
 Q
 ;
LOCK(DVBIEN,DVBCT) ;
 L +^DVB(396.17,DVBIEN,14,DVBCT,3):30
 S DVBRTN=$T
 Q DVBRTN
 ;
UNLOCK(DVBIEN,DVBCT) ;
 L -^DVB(396.17,DVBIEN,14,DVBCT,3)
 Q
 ;
FAILCHK(DVBRTN) ;
 ;RPC: DVBA CAPRI FAIL CHECK
 K DVBRTN S DVBRTN=0,DVBPATCH=3231025
 S DVBDATE=DVBPATCH F  S DVBDATE=$O(^DVB(396.17,"C",DVBDATE)) Q:(DVBDATE="")!(DVBRTN=1)  D
 .S DVBIEN="" F  S DVBIEN=$O(^DVB(396.17,"C",DVBDATE,DVBIEN)) Q:(DVBIEN="")!(DVBRTN=1)  D
 ..I $D(^DVB(396.17,DVBIEN,14,"B"))  D
 ...S DVBCT=0 F  S DVBCT=$O(^DVB(396.17,DVBIEN,14,"B",DVBCT)) Q:(DVBCT="")!(DVBRTN=1)  D
 ....S DVBINN=""_DVBCT_","_DVBIEN_","_""
 ....S DVBSTA=$$GET1^DIQ(396.1726,DVBINN,".02","I")
 ....I DVBSTA'="C" S DVBRTN=1
 Q
GITHUB(DVBRTN) ; 
 S DVBRTN=$$GET^XPAR("PKG","DVBAB CAPRI GITHUB LINK")
 Q
GITTOK(DVBRTN) ; 
 N DVBTOK,DVBAPP,DVBID,DVBRET,DVBCT,DVBCNT
 K ^TMP("DVBTOKEN",$J)
 S DVBAPP=$$GET^XPAR("PKG","DVBAB CAPRI GITHUB APP ID")
 S DVBID=$$GET^XPAR("PKG","DVBAB CAPRI GITHUB INSTALL ID")
 D GETWP^XPAR(.DVBTOK,"PKG","DVBAB CAPRI GITHUB TOKEN")
 S DVBCT=0,DVBCNT=0 F  S DVBCT=$O(DVBTOK(DVBCT)) Q:DVBCT=""  D
 .I DVBCNT=0 D
 ..S DVBCT=0,DVBRET(DVBCNT)=DVBAPP_U_DVBID
 ..M ^TMP("DVBTOKEN",$J,DVBCNT)=DVBRET(DVBCNT) S DVBCNT=DVBCNT+1,DVBCT=DVBCT+1
 ..Q
 .S DVBRET(DVBCNT)=DVBTOK(DVBCT,0)
 .S DVBRET(DVBCNT)=DVBTOK(DVBCT,0) M ^TMP("DVBTOKEN",$J,DVBCNT)=DVBRET(DVBCNT)
 .S DVBCNT=DVBCNT+1
 .Q
 S DVBRTN=$NA(^TMP("DVBTOKEN",$J))
 Q