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

DVBSIGN.m

Go to the documentation of this file.
DVBSIGN ;ALB/CP - CAPRI Signature RPCS; July, 2 2024@08:34 ; 7/2/24 8:35am
 ;;2.7;AMIE;**252**;Apr 10, 1995;Build 92
 ; Per VHA Directive 6402 this routine should not be modified
 ; Reference to $$NOW^XLFDT in ICR #10103
 ; Reference to ^TIU(8925 in IA #3376
 ; Reference to $$GET1^DIQ(2 in DBIA #10035
 ;
 Q
 ;
SAVESIGN(DVBRTN,DVBIEN,DVBCOSIGNER) ;
 ;;New Routine for Signer Saves CAPRI-11532 CP 7-2-24
 N DVBSIGNER,DVBFLAG,DVBDT,DVBDATA,DVBERR
 S DVBSIGNER=DUZ
 S DVBDT=$$NOW^XLFDT
 S DVBDATA(396.17,DVBIEN_",",4)=DVBDT
 S DVBFLAG=$S(DVBCOSIGNER="":"0",1:1)
 S DVBDATA(396.17,DVBIEN_",",29)=DVBFLAG
 ;If yes then set DUZ, flag, and Update status to "U" for Uncosigned
 I DVBFLAG=1 D
 . S DVBDATA(396.17,DVBIEN_",",11)="U"
 . S DVBDATA(396.17,DVBIEN_",",28)=DVBSIGNER
 . S DVBDATA(396.17,DVBIEN_",",30)=DVBCOSIGNER
 . K DVBERR D FILE^DIE(,"DVBDATA","DVBERR")
 . I $D(DVBERR)>0 S DVBRTN="-1^Details not Saved"
 . I $D(DVBERR)=0 S DVBRTN="2^Signed Ready for CoSignature"
 . Q
 ;If no then set DUZ and set Status to "G" for Signed
 I DVBFLAG=0 D
 . S DVBDATA(396.17,DVBIEN_",",11)="G"
 . S DVBDATA(396.17,DVBIEN_",",28)=DVBSIGNER
 . S DVBDATA(396.17,DVBIEN_",",30)=""
 . K DVBERR D FILE^DIE(,"DVBDATA","DVBERR")
 . I $D(DVBERR)>0 S DVBRTN="-1^Details not Saved"
 . I $D(DVBERR)=0 S DVBRTN="1^Signed Ready for Transmission"
 . Q
 Q
ALERTCNT(DVBRTN) ;
 ;;New RPC for Cosign Count CAPRI-11533 CP 7-26-24
 ;;RPC: DVBA CAPRI UNCOSIGN COUNT 
 N DVBIEN,DVBSTAT,DVBCNT
 S (DVBIEN,DVBSTAT)=""
 S DVBCNT=0
 F  S DVBIEN=$O(^DVB(396.17,"H",DUZ,DVBIEN)) Q:DVBIEN=""  D
 . S DVBSTAT=$$GET1^DIQ(396.17,DVBIEN,11,"I")
 . I DVBSTAT'="U" Q
 . S DVBCNT=DVBCNT+1
 S DVBRTN=DVBCNT
 Q
 ;
UNCSINFO(DVBRTN) ;
 ;New RPC code for CAPRI-11533.  JD - 7/11/24
 ;RPC: DVBA CAPRI UNCOSIGNED INFO
 ; 
 N DVBCNT,DVBCPFL,DVBCPTX,DVBDTUPE,DVBDTUPI,DVBIEN,DVBPTIE,DVBPTNM,DVBSTAT,DVBTIUDM,DVBTIUDN
 S (DVBIEN,DVBSTAT)="",DVBCNT=0
 K ^TMP("UNCOSIGNALERTINFO",$J)
 F  S DVBIEN=$O(^DVB(396.17,"H",DUZ,DVBIEN)) Q:DVBIEN=""  D
 . S DVBSTAT=$$GET1^DIQ(396.17,DVBIEN,11,"I")
 . I DVBSTAT'="U" Q  ;Only the Review Status of Uncosigned is allowed
 . S DVBPTIE=$$GET1^DIQ(396.17,DVBIEN,.01,"I")  ;Patient IEN
 . S DVBPTNM=$$GET1^DIQ(396.17,DVBIEN,.01,"E")  ;Patient name
 . S DVBDTUPE=$$GET1^DIQ(396.17,DVBIEN,4,"E")   ;Date/time updated (External format)
 . S DVBDTUPI=$$GET1^DIQ(396.17,DVBIEN,4,"I")   ;Date/time updated (Fileman format)
 . S DVBCPFL=$$GET1^DIQ(396.17,DVBIEN,25,"I")   ;VHA internal DBQ referral(Y/N)
 . S DVBTIUDN=$$GET1^DIQ(396.17,DVBIEN,7,"I")   ;TIU document number
 . S DVBTIUDM=$$GET1^DIQ(8925,DVBTIUDN,.01,"E") ;TIU document name
 . S DVBCPTX=$S(DVBCPFL="N":"",1:"NON-")
 . S DVBCPTX="UNCOSIGNED "_DVBCPTX_DVBTIUDM_" available for COSIGNATURE"
 . S DVBCNT=DVBCNT+1
 . S ^TMP("UNCOSIGNALERTINFO",$J,-DVBDTUPI,DVBCNT)=DVBPTIE_U_DVBPTNM_U_DVBDTUPE_U_DVBCPTX_U_DVBIEN_U_DVBTIUDN
 I DVBCNT'>0 S DVBRTN="-1^No data available" Q
 S DVBRTN=$NA(^TMP("UNCOSIGNALERTINFO",$J))
 Q
REVIEWSAVE(DVBRTN,DVBIEN,DVBTYP,DVBREVCMT) ;
 ;;New RPC for Review Updates CAPRI-12506 CP-8/13/24
 ;;DVBA CAPRI SAVE REVIEW DATA
 N DVBDTTM,DVBREVSEQ,DVBAFDA,DVBDOCMAN,DVBERR,DVBNEXTSEQ
 ;;'P' FOR REVIEW PENDING;'S' FOR SENT BACK;'A' FOR AWAITING SIGNATURE;'T' for Trainee Details 
 K DIC,DIE,DA,DR,DLAYGO,X,Y
 ;;
 I DVBIEN="" S DVBRTN="-1^No Worksheet IEN sent" Q
 I $D(^DVB(396.17,DVBIEN))<10 S DVBRTN="-1^Invalid Worksheet IEN" Q
 I "TPSA"'[DVBTYP S DVBRTN="-1^Invalid Status" Q
 I DVBTYP="T",$G(DVBREVCMT(1))'?1"TRAINEE^".N1"^".N S DVBRTN="-1^Invalid Comments" Q
 I DVBTYP="T",$D(^VA(200,$P($G(DVBREVCMT(1)),"^",2)))<10 S DVBRTN="-1^Invalid Trainee DUZ" Q
 I DVBTYP="A",$G(DVBREVCMT(1))'?.N,$D(^VA(200,$G(DVBREVCMT(1))))<10 S DVBRTN="-1^Invalid Signer DUZ" Q
 ;;
 S DVBDTTM=$$NOW^XLFDT
 I DVBTYP="P" S DVBSIGNER=DUZ
 I DVBTYP="A" S DVBDOCMAN=$G(DVBREVCMT(1))
 I DVBTYP="A" S DVBREVCMT(1)="Sending for Signature"
 S DVBREVSEQ=$P($G(^DVB(396.17,DVBIEN,6,0)),"^",3)
 S DA(1)=DVBIEN,DA=DVBREVSEQ+1,X=DVBDTTM
 S (DLAYGO,DIC)="^DVB(396.17,"_DA(1)_",6,",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///"_DVBDTTM_";1///"_DUZ
 D ^DIE
 I $G(DVBREVCMT(1))'="" D WP^DIE(396.1714,DVBNEXTSEQ_","_DVBIEN_",",4,"K","DVBREVCMT","DVBERR")
 I $D(DVBERR) S DVBRTN="-1^Review Comments not saved" Q
 I '$D(DVBERR) S DVBRTN=1
 I DVBTYP="T" S DVBRTN="1^Trainee DUZ and DIV Saved" Q
 S DVBAFDA(396.17,DVBIEN_",",4)=DVBDTTM
 S DVBAFDA(396.17,DVBIEN_",",11)=DVBTYP
 S DVBAFDA(396.17,DVBIEN_",",19)="1"
 I DVBTYP="P" S DVBAFDA(396.17,DVBIEN_",",28)=DVBSIGNER,DVBAFDA(396.17,DVBIEN_",",29)=0
 I DVBTYP="S" S DVBAFDA(396.17,DVBIEN_",",2)=$P($G(^DVB(396.17,DVBIEN,16)),U,1)
 I DVBTYP="A" S DVBAFDA(396.17,DVBIEN_",",2)=DVBDOCMAN
 K DVBERR D FILE^DIE(,"DVBAFDA","DVBERR")
 I $D(DVBERR)>0 S DVBRTN="-1^Worksheet not updated"
 I $D(DVBERR)=0 S DVBRTN="1^Review Details saved and Worksheet Updated"
 Q
DOCMAN(DVBRTN,DVBIEN) ;
 ;;Used B4 signature validation CAPRI-12506 CP-8/13/24
 ;;DVBA CAPRI TRAINEE DOC MANAGER 
 S DVBRTN="-1^No Update"
 I DVBIEN="" S DVBRTN="-1^No Worksheet IEN sent" Q
 I $D(^DVB(396.17,DVBIEN))<10 S DVBRTN="-1^Invalid Worksheet IEN" Q
 S DVBTRAINEE=$P($G(^DVB(396.17,DVBIEN,16)),U,1)
 K DIE,DA,DR,X,Y
 S DIE=396.17,DA=DVBIEN,DR="2///"_DVBTRAINEE
 D ^DIE
 S DVBRTN=1
 K DVBTRAINEE
 Q
TRAINSIG(DVBRTN,DVBIEN) ;
 ;;Send the DUZ and DIV for the Trainee CAPRI-12506 CP-8/13/24
 ;;DVBA CAPRI TRAINEE SIGNATURE
 N DVBDATA,DVBMULT
 S DVBRTN=""
 I DVBIEN="" S DVBRTN="-1^No Worksheet IEN sent" Q
 I $D(^DVB(396.17,DVBIEN))<10 S DVBRTN="-1^Invalid Worksheet IEN" Q
 I $D(^DVB(396.17,DVBIEN,6))<10 S DVBRTN="-1^No Review Data Saved"
 S DVBMULT=""
 F  S DVBMULT=$O(^DVB(396.17,DVBIEN,6,DVBMULT)) Q:DVBMULT=""  Q:DVBRTN'=""  D
 . S DVBDATA=$G(^DVB(396.17,DVBIEN,6,DVBMULT,1,1,0))
 . I $P(DVBDATA,U,1)="TRAINEE" S DVBRTN=$P(DVBDATA,U,2,3) Q
 I DVBRTN="" S DVBRTN="-1^No details found" Q
 Q
 ;
STATCNT(DVBRTN) ;
 ;New RPC code for CAPRI-12825.  JD - 8/14/24
 ;RPC: DVBA CAPRI STATUS COUNT
 ;Added statuses D=Draft/Not Ready and O=Outdated Template.  JD - 8/21/24
 ;
 ;Returns the count for the following worksheet review statuses:
 ;A=Awaiting Signature, D=Draft/Not ready, O=Outdated Template, P=Review Pending, S=Sent Back
 ;
 N DVBCNTA,DVBCNTD,DVBCNTO,DVBCNTP,DVBCNTS,DVBIEN,DVBP,DVBSTAT
 S (DVBSTAT,DVBRTN)=""
 S (DVBCNTA,DVBCNTD,DVBCNTO,DVBCNTP,DVBCNTS)=0
 F  S DVBSTAT=$O(^DVB(396.17,"RS",DVBSTAT)) Q:DVBSTAT=""  D
 . I "ADOPS"'[DVBSTAT Q
 . S DVBIEN=""
 . F  S DVBIEN=$O(^DVB(396.17,"RS",DVBSTAT,DVBIEN)) Q:DVBIEN=""  D
 .. S DVBP="" D PASCALCHK^DVBCTPDF(.DVBP,DVBIEN) I DVBP="P" Q  ;CMT worksheets only!
 .. I DVBSTAT="P" S DVBCNTP=DVBCNTP+1
 .. I DUZ'=$$GET1^DIQ(396.17,DVBIEN,2,"I") Q  ;Document Manager
 .. I DVBSTAT="A" S DVBCNTA=DVBCNTA+1
 .. I DVBSTAT="D" S DVBCNTD=DVBCNTD+1
 .. I DVBSTAT="O" S DVBCNTO=DVBCNTO+1
 .. I DVBSTAT="S" S DVBCNTS=DVBCNTS+1
 S DVBRTN=DVBCNTA_U_DVBCNTD_U_DVBCNTO_U_DVBCNTP_U_DVBCNTS
 Q