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

VPRSDAC.m

Go to the documentation of this file.
  1. VPRSDAC ;SLC/MKB -- SDA Consult/CP utilities ;10/25/18 15:29
  1. ;;1.0;VIRTUAL PATIENT RECORD;**14,25,31**;Sep 01, 2011;Build 3
  1. ;;Per VHA Directive 6402, this routine should not be modified.
  1. ;
  1. ; External References DBIA#
  1. ; ------------------- -----
  1. ; %DT 10003
  1. ; DIQ 2056
  1. ; GMRCAPI 6082
  1. ; GMRCGUIB 2980
  1. ; GMRCSLM1, ^TMP("GMRCR",$J) 2740
  1. ; ICDEX 5747
  1. ; ICPTCOD 1995
  1. ; LEXTRAN 4912
  1. ; MDPS1,^TMP("MDHSP",$J) 4230
  1. ; TIULQ 2693
  1. ;
  1. QRY ; -- Consult/Request Tracking query
  1. ; Expects DSTRT, DSTOP, DMAX from DDEGET and returns DLIST(#)=ien
  1. N VPRN,VPRX,GMRCDA,GMRCGRP,GMRCSEX,TITLE
  1. D OER^GMRCSLM1(DFN,"",DSTRT,DSTOP,"") S VPRN=0
  1. F S VPRN=$O(^TMP("GMRCR",$J,"CS",VPRN)) Q:VPRN<1!(VPRN>DMAX) D
  1. . S VPRX=$G(^TMP("GMRCR",$J,"CS",VPRN,0)) Q:+VPRX<1
  1. . S DLIST(VPRN)=+VPRX
  1. K ^TMP("GMRCR",$J,"CS")
  1. Q
  1. ;
  1. GMRC1(IEN) ; -- Referral ID Action
  1. K VPRCONS,VPRCACT,VPRIFC S IEN=+$G(IEN)
  1. D GET^GMRCAPI(.VPRCONS,IEN),ACT^GMRCAPI(.VPRCACT,IEN)
  1. S VPRIFC=$$IFC^GMRCAPI(IEN)
  1. Q
  1. ;
  1. CONSNAME(IEN) ; -- return display name using fields
  1. ; Request Type (#13), To Service (#1) & Procedure/Request Type (#4)
  1. N VPRX,Y S VPRX=$G(VPRCONS(0))
  1. I $P(VPRX,U,8)?1.N1";ORD(101," D ;resolve old v-ptr
  1. . S Y=$P(VPRX,U,8)
  1. . S Y=$$GET1^DIQ(101,+Y,.01),$P(VPRX,U,8)=Y
  1. . S $P(VPRCONS(0),U,8)=Y
  1. S Y=$P(VPRX,U,5)
  1. I $P(VPRX,U,17)="P",$L($P(VPRX,U,8)) S Y=$P(VPRX,U,8)_" "_Y_" Proc"
  1. E S Y=Y_" Cons"
  1. ;I $P(VPRX,U,17)="P",$L($P(VPRX,U,8)) S Y=$P(VPRX,U,8)
  1. ;E S Y=$P(VPRX,U,5)_" Consult"
  1. Q Y
  1. ;
  1. PROVDX(IEN) ; -- return full Consult ProvDx string, or null/DDEOUT
  1. N VPRICD,VPRNM,VPRDX,Y S Y=""
  1. S VPRNM=$G(VPRCONS(30)),VPRICD=$G(VPRCONS(30.1))
  1. ; if not ICD, return free text Dx
  1. I $P(VPRICD,U,3)'="ICD",$P(VPRICD,U,3)'="10D" D PDTXT G PDXQ
  1. ; if no code, return free text Dx
  1. I $P(VPRICD,U)="" D PDTXT G PDXQ
  1. ; if no text, resolve code to description
  1. I VPRNM="" D I '$L(VPRNM) D PDTXT G PDXQ
  1. . Q:$$ICDD^ICDEX($P(VPRICD,U),.VPRDX,$P(VPRICD,U,2),$P(VPRICD,U,3))'>0
  1. . S VPRNM=$G(VPRDX(1))
  1. ; return valid ICD code
  1. S Y=$P(VPRICD,U)_U_VPRNM_U_$$SNAM^ICDEX($$SYS^ICDEX($P(VPRICD,U,3)))
  1. PDXQ ;exit
  1. Q Y
  1. ;
  1. PDTXT ; -- return ProvDx free text
  1. I $L(VPRNM) S Y=VPRNM_U_VPRNM Q
  1. S DDEOUT=1
  1. Q
  1. ;
  1. DOCS ; - get related documents, returns DLIST(#)=8925 ien
  1. N VPRI,VPRX
  1. S VPRI=0 F S VPRI=$O(VPRCONS(50,VPRI)) Q:VPRI<1 S VPRX=+$G(VPRCONS(50,VPRI)) S:$$COMP^VPRSDAT(VPRX) DLIST(VPRI)=VPRX_";TIU"
  1. I '$D(DLIST),$$DISS S DLIST(1)=$$NULL^VPRSDA ;delete value
  1. Q
  1. ;
  1. DISS() ; -- return 1 or 0, if result removed
  1. N I,Y S Y=0
  1. S I=0 F S I=$O(VPRCACT(I)) Q:I<1 D Q:Y
  1. . I $P($G(VPRCACT(I,0)),U,2)="DISASSOCIATE RESULT" S Y=1
  1. Q Y
  1. ;
  1. GETACT(IEN) ; -- return DLIST(DA)='DA,IEN' of activity log entries
  1. N I,X,X0,CNT,TIU,ACT S IEN=+$G(IEN) Q:IEN<1
  1. D:'$O(VPRCACT(0)) ACT^GMRCAPI(.VPRCACT,IEN)
  1. S (I,CNT)=0 F S I=$O(VPRCACT(I)) Q:I<1 D Q:CNT>499
  1. . S X0=$G(VPRCACT(I,0)),X=$P(X0,U,2),TIU=+$P(X0,U,9)
  1. . ; look for duplicate IR's from runaway devices
  1. . I X="INCOMPLETE RPT" Q:$D(ACT(TIU)) S ACT(TIU)=""
  1. . S DLIST(I)=I_","_IEN,CNT=CNT+1
  1. Q
  1. ;
  1. ;
  1. CPQRY ; -- Clinical Procedures query [not in use]
  1. ; Expects DSTRT, DSTOP, DMAX from DDEGET and returns DLIST(#)=ien
  1. Q N VPRN,VPRX,I,ID S VPRN=0
  1. D MDPS1^VPRDJ03(DFN,DSTRT,DSTOP,DMAX) ;gets ^TMP("MDHSP",$J)
  1. S I=0 F S I=$O(^TMP("MDHSP",$J,I)) Q:I<1 S VPRX=$G(^(I)) I $P(VPRX,U,3)="PR702" D Q:VPRN'<DMAX
  1. . Q:'$P(VPRX,U,14) ;no document yet (so no enc#)
  1. . S ^TMP("MDHSP",$J,"IEN",+$P(VPRX,U,2))=I
  1. . S VPRN=VPRN+1,DLIST(VPRN)=+$P(VPRX,U,2)
  1. ;K ^TMP("MDHSP",$J)
  1. Q
  1. ;
  1. CP1(IEN) ; -- get MD nodes for procedure [ID Action]
  1. ; VPRCP = ^TMP("MDHSP",$J,I)
  1. ; VPRCN = ^GMR(123,consult,0)
  1. ; VPRTIU(field#,"I") = TIU data field
  1. I '$D(^TMP("MDHSP",$J)) D
  1. . S:'DFN DFN=+$$GET1^DIQ(702,IEN,.01,"I")
  1. . N DLIST D CPQRY
  1. S I=+$G(^TMP("MDHSP",$J,"IEN",IEN)),VPRCP=$G(^TMP("MDHSP",$J,I))
  1. I VPRCP="" S DDEOUT=1 Q
  1. ; undo date formatting
  1. N X,Y,%DT,VPRD
  1. S X=$P(VPRCP,U,6) I $L(X) S %DT="STX" D ^%DT S:Y>0 $P(VPRCP,U,6)=Y
  1. ; get supporting data from Consult, TIU note
  1. S X=+$P(VPRCP,U,13) I X D K VPRD
  1. . D DOCLIST^GMRCGUIB(.VPRD,X) S VPRCN=$G(VPRD(0)) M VPRCN=VPRD(50)
  1. S X=+$P(VPRCP,U,14) I X D K VPRD
  1. . D EXTRACT^TIULQ(X,"VPRD",,".03;.05;1202;1211;1212",,,"I")
  1. . M VPRTIU=VPRD(X)
  1. Q