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

VPRSDADG.m

Go to the documentation of this file.
  1. VPRSDADG ;SLC/MKB -- SDA DG PTF utilities ;04/25/22 15:29
  1. ;;1.0;VIRTUAL PATIENT RECORD;**30,35**;Apr 05, 2022;Build 16
  1. ;;Per VA Directive 6402, this routine should not be modified.
  1. ;
  1. ; External References DBIA#
  1. ; ------------------- -----
  1. ; ^AUPNVSIT 2028
  1. ; ^DGPM 1865
  1. ; DGMSEUTL 5783
  1. ; DGPTFAPI 3157
  1. ; DGPTFUT 6130
  1. ; DGPTPXRM 4457
  1. ; DIC 2051
  1. ; ICDEX 5747
  1. ;
  1. DXQ ; -- get PTF Dx via Admissions
  1. ; Query called from GET^DDE, returns DLIST(#)=ien
  1. ; Expects context variables DFN, DSTRT, DSTOP, DMAX
  1. ;
  1. N IDT,END,VPRN,ADM,PTF,VPTF,I
  1. S IDT=9999999.9999999-DSTOP-.0000001,END=9999999.9999999-DSTRT,VPRN=0
  1. F S IDT=$O(^DGPM("ATID1",DFN,IDT)) Q:IDT<1!(IDT>END) D Q:VPRN'<DMAX
  1. . S ADM=0 F S ADM=$O(^DGPM("ATID1",DFN,IDT,ADM)) Q:ADM<1 D Q:VPRN'<DMAX
  1. .. S PTF=+$P($G(^DGPM(ADM,0)),U,16) Q:PTF<1 Q:'$$VNUM^VPRSDAV(ADM)
  1. .. ;Q:'$$GET1^DIQ(45,PTF,79,"I") ;no DXLS
  1. .. D RPC^DGPTFAPI(.VPTF,PTF) Q:VPTF(0)<1
  1. .. S:$L($P(VPTF(1),U,3)) VPRN=VPRN+1,DLIST(VPRN)=PTF
  1. .. F I=1:1:24 I $L($P(VPTF(2),U,I)) S VPRN=VPRN+1,DLIST(VPRN)=PTF_"-"_I
  1. Q
  1. ;
  1. DX1 ; -- get info for single PTF record [ID Action]
  1. ; Expects DIEN = #45 ien, returns VPRPOA & VPRPTF array
  1. N VST,VPTF,N,X,Y K VPRPTF
  1. S VPRPTF=$G(DIEN),DIEN=+$G(DIEN)
  1. S VST="" D I VST<1 S DDEOUT=1 Q
  1. . N ADM S ADM=$$FIND1^DIC(405,,"Q",DIEN,"APTF") Q:ADM<1
  1. . S:'$G(DFN) DFN=+$P($G(^DGPM(ADM,0)),U,3)
  1. . S VST=+$$VNUM^VPRSDAV(ADM) I 'VST!'$D(^AUPNVSIT(VST,0)) S VST=""
  1. S VPRPTF("VISIT")=VST
  1. D RPC^DGPTFAPI(.VPTF,DIEN) I VPTF(0)<1 S DDEOUT=1 Q
  1. S N=+$P(VPRPTF,"-",2),VPRPOA=$P($G(VPTF(3)),U,N+1)
  1. S X=$S(N:$P(VPTF(2),U,N),1:$P($G(VPTF(1)),U,3))
  1. S Y=$$CODEBA^ICDEX(X,80) I Y<1 S DDEOUT=1 Q
  1. S VPRPTF("DX")=Y_U_X ;ien^code
  1. D PTF^DGPTPXRM(DIEN,.VPRPTF)
  1. Q
  1. ;
  1. OPQ ; -- get PTF 601 procedure codes via Admissions
  1. ; Query called from GET^DDE, returns DLIST(#)=ien
  1. ; Expects context variables DFN, DSTRT, DSTOP, DMAX
  1. ;
  1. N IDT,END,VPRN,ADM,PTF,VPTF,DA,STR,P,X
  1. S IDT=9999999.9999999-DSTOP-.0000001,END=9999999.9999999-DSTRT,VPRN=0
  1. F S IDT=$O(^DGPM("ATID1",DFN,IDT)) Q:IDT<1!(IDT>END) D Q:VPRN'<DMAX
  1. . S ADM=0 F S ADM=$O(^DGPM("ATID1",DFN,IDT,ADM)) Q:ADM<1 D Q:VPRN'<DMAX
  1. .. S PTF=+$P($G(^DGPM(ADM,0)),U,16) Q:PTF<1 Q:'$$VNUM^VPRSDAV(ADM)
  1. .. D PTFIEN^DGPTFUT(601,PTF,.VPTF)
  1. .. S DA=0 F S DA=$O(VPTF(DA)) Q:DA<1 D
  1. ... S STR=$$STR601^DGPTFUT(PTF,DA)
  1. ... F P=1:1:25 S X=$P(STR,U,P) S:X VPRN=VPRN+1,DLIST(VPRN)=DA_","_PTF_"-"_P
  1. Q
  1. ;
  1. OP1 ; -- get info for single PTF record [ID Action]
  1. ; Expects DIEN = #45 iens, returns VPRPTF & VPRVST
  1. N VST,VPTF,X,Y
  1. S VPRPTF=$G(DIEN),DIEN=$P($G(DIEN),"-") ;DA,PTF-#
  1. S VST="" D I VST<1 S DDEOUT=1 Q
  1. . N ADM,PTF
  1. . S PTF=+$P(VPRPTF,",",2),ADM=$$FIND1^DIC(405,,"Q",PTF,"APTF") Q:'ADM
  1. . S:'$G(DFN) DFN=$P($G(^DGPM(ADM,0)),U,3)
  1. . S VST=+$$VNUM^VPRSDAV(ADM) I 'VST!'$D(^AUPNVSIT(VST,0)) S VST=""
  1. S VPRVST=VST
  1. Q
  1. ;
  1. MSE ;Using GETMSE^DGMSEUTL, build array for use in entity VPR PATIENT MSE ALL
  1. N BRANCH,COUNT,COMP,DA,DONE,DTYP,EDATA,EDATE,I,SDATE,SERVNO,SUB,EDATE2,SDATE2,BRANCH2,DTYP2,VPRI
  1. S COUNT=0,EDATE=""
  1. K VPRMS,VPRSV D:$G(DFN) GETMSE^DGMSEUTL(DFN,.VPRMS)
  1. ;Retrieve all MSE
  1. S VPRI=0 F S VPRI=$O(VPRMS(VPRI)) Q:'VPRI D
  1. .;DJS, skip an MSE that has Future Discharge Date; DG*5.3*935
  1. .S EDATA=$G(VPRMS(VPRI)) Q:EDATA=""!($P(EDATA,U,8)'="")
  1. .S EDATE=$P(EDATA,U),EDATE2=$$DATE^VPRSDA(EDATE,1)
  1. .S SDATE=$P(EDATA,U,2),SDATE2=$$DATE^VPRSDA(SDATE,1),EDATE2=$$DATE^VPRSDA(EDATE,1)
  1. .S BRANCH=$P(EDATA,U,3),COMP=$P(EDATA,U,4),BRANCH2=$$GET1^DIQ(23,BRANCH,.01)
  1. .S SERVNO=$P(EDATA,U,5),DTYP=$P(EDATA,U,6),DTYP2=$$GET1^DIQ(25,DTYP,.01)
  1. .S COUNT=COUNT+1
  1. .S SUB=1,VPRSV(COUNT)=$S($G(BRANCH):1,1:"")
  1. .S VPRSV(COUNT,SUB)=DTYP_U_DTYP2
  1. .S VPRSV(COUNT,SUB+1)=BRANCH_U_BRANCH2
  1. .S VPRSV(COUNT,SUB+2)=EDATE_U_EDATE2
  1. .S VPRSV(COUNT,SUB+3)=SDATE_U_SDATE2
  1. .S VPRSV(COUNT,SUB+4)=SERVNO
  1. .S VPRSV(COUNT,SUB+5)=COMP_U_$$EXTERNAL^DILFD(2.3216,.04,,$G(COMP))
  1. Q