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

VAQEXT01.m

Go to the documentation of this file.
  1. VAQEXT01 ;ALB/JFP - PDX, PROCESS EXTERNAL (MANUAL),PROCESS SCREEN;01MAR93
  1. ;;1.5;PATIENT DATA EXCHANGE;**14,35**;NOV 17, 1993
  1. EP ; -- Main entry point for the list processor
  1. K XQORS,VALMEVL
  1. N VALMCNT S VALMCNT=0
  1. D EN^VALM("VAQ PROCESS PDX3")
  1. QUIT
  1. ;
  1. INIT ; -- Builds array of PDX transactions for manual processing
  1. ; (transactions with status VAQ-PROC)
  1. ; NOTE: VAQ-PROC is a hard coded mnemonic, ^VAT(394.85,
  1. ;
  1. K ^TMP("VAQR3",$J),^TMP("VAQR3","VAQIDX",$J)
  1. N STATPT,TRDE,NODE,ND,X,Y,K,J,DATETIME,SEGMENT,SEGDE,SEG,SDI,VALMY,SDAT
  1. N VAQECNT,VAQTRNO,VAQPTNM,VAQISSN,VAQIDOB,VAQEDOB,VAQPTID,VAQAUST
  1. N VAQAUADD,VAQRES,VAQTRDE,VAQDFN,VAQDOM,VAQSIG,VAQTRN,VAQESSN,VAQLMT
  1. N VAQRST,VAQCST
  1. ;
  1. D:$D(XRTL) T0^%ZOSV
  1. S (STATPT,TRDE,RELPTR)="",(VAQECNT,VALMCNT)=0
  1. S STATPT=$O(^VAT(394.85,"B","VAQ-PROC",STATPT))
  1. S RELPTR=$O(^VAT(394.85,"B","VAQ-RQACK",RELPTR))
  1. F S TRDE=$O(^VAT(394.61,"STATUS",STATPT,TRDE)) Q:TRDE="" D SETD
  1. I VAQECNT=0 D
  1. .S VAQTRNO=0,X=$$SETSTR^VALM1(" ","",1,79) D TMP
  1. .S X=$$SETSTR^VALM1(" ** No pending transactions queued for manual processing... ","",1,80) D TMP
  1. S:$D(XRT0) XRTN=$T(+0) D:$D(XRT0) T1^%ZOSV
  1. QUIT
  1. ;
  1. SETD ; -- Set data for display in list processor
  1. ; -- Filter out transactions marked as purged OR exceed life cap
  1. S VAQFLAG=$$EXPTRN^VAQUTL97(TRDE)
  1. Q:VAQFLAG=1
  1. Q:$$CLOSTRAN^VAQUTL97(TRDE,"RQST2") ; Filter out (and mark for purging) transactions from closed domains.
  1. F ND=0,"QRY","RQST1","RQST2","ATHR1","ATHR2" S NODE(ND)=$G(^VAT(394.61,TRDE,ND))
  1. ; -- release status set, skip entry
  1. S VAQCST=+$P(NODE(0),U,2),VAQRST=+$P(NODE(0),U,5)
  1. I ($P($G(^VAT(394.85,VAQCST,0)),U,1)'="VAQ-PROC") QUIT
  1. I ($P($G(^VAT(394.85,VAQRST,0)),U,1)'="VAQ-RQACK") QUIT
  1. D SETD1
  1. D SEG^VAQEXT06 ; -- gather segments
  1. D DISDEMO
  1. D DISSEG
  1. S X=$$SETSTR^VALM1(" ","",1,80) D TMP ; -- null line
  1. D DISMAX^VAQEXT06
  1. S X=$$SETSTR^VALM1(" ","",1,80) D TMP ; -- null line
  1. QUIT
  1. ;
  1. SETD1 ; -- Extracts data for display
  1. S VAQTRNO=$P(NODE(0),U,1)
  1. S (Y,VAQTDTE)=$P(NODE("RQST1"),U,1)
  1. X ^DD("DD") S DATETIME=Y_" (Rq)"
  1. S VAQDOM=$P(NODE("RQST2"),U,1)
  1. S VAQPTNM=$P(NODE("QRY"),U,1)
  1. S VAQISSN=$P(NODE("QRY"),U,2)
  1. S VAQIDOB=$P(NODE("QRY"),U,3),VAQEDOB=$$DOBFMT^VAQUTL99(VAQIDOB)
  1. S VAQPTID=$P(NODE("QRY"),U,4)
  1. S VAQRQST=$P(NODE("RQST2"),U,1),VAQRQADD=$P(NODE("RQST2"),U,2)
  1. I VAQISSN'="" S VAQRES=$$RES^VAQUTL99(VAQRQADD,VAQISSN) ;-- reason for manual
  1. I VAQISSN="" S VAQRES=$$RES^VAQUTL99(VAQRQADD,VAQPTNM) ;-- reason for manual
  1. ; -- Check to see if requested segments exceed max time/occurrence limits
  1. ;W !,"VAQRES = ",VAQRES
  1. I $P(VAQRES,U,1)>0 D
  1. .S VAQLMT=$$AUTO^VAQEXT05(TRDE)
  1. .I (+VAQLMT)<0 S VAQRES=VAQLMT
  1. QUIT
  1. ;
  1. DISDEMO ; -- Displays the entries requiring manual process
  1. S VAQECNT=VAQECNT+1
  1. S X=$$SETSTR^VALM1("Entry # : "_VAQECNT,"",1,39)
  1. S X=$$SETSTR^VALM1(" Trans #: "_VAQTRNO,X,40,39) D TMP
  1. S X=$$SETSTR^VALM1("Patient : "_VAQPTNM,"",1,39)
  1. S X=$$SETSTR^VALM1("Date/Time: "_DATETIME,X,40,39) D TMP
  1. I VAQPTID="" D
  1. .S VAQESSN=$$DASHSSN^VAQUTL99(VAQISSN)
  1. .S X=$$SETSTR^VALM1("Patient SS: "_VAQESSN,"",1,39)
  1. S:VAQPTID'="" X=$$SETSTR^VALM1("Patient ID: "_VAQPTID,"",1,39)
  1. S X=$$SETSTR^VALM1(" DOB: "_VAQEDOB,X,40,39) D TMP
  1. S X=$$SETSTR^VALM1("Domain : "_VAQDOM,"",1,39)
  1. S X=$$SETSTR^VALM1(" Reason: "_$P(VAQRES,U,2),X,40,39) D TMP
  1. QUIT
  1. ;
  1. DISSEG ; -- Displays selected segments
  1. F K=0:0 S K=$O(SEGMENT($J,K)) Q:K="" D
  1. .S SEGMENT=SEGMENT($J,K)
  1. .I K=1 S X=$$SETSTR^VALM1("Segments : "_SEGMENT,"",1,80) D TMP
  1. .I K'=1 S X=$$SETSTR^VALM1(" : "_SEGMENT,"",1,80) D TMP
  1. QUIT
  1. ;
  1. TMP ; -- Set the array used by list processor
  1. S VALMCNT=VALMCNT+1
  1. S ^TMP("VAQR3",$J,VALMCNT,0)=$E(X,1,79)
  1. S ^TMP("VAQR3",$J,"IDX",VALMCNT,VAQECNT)=""
  1. S ^TMP("VAQR3","VAQIDX",$J,VAQECNT)=VALMCNT_"^"_VAQTRNO
  1. Q
  1. ;
  1. HD ; -- Make header line for list processor
  1. S VALMHDR(1)="PDX Activity Requiring Manual Processing"
  1. QUIT
  1. ;
  1. EXIT ; -- Task entries for batch processing, Cleans up variables
  1. I $D(VAQTRN) D TASK^VAQEXT04
  1. ;
  1. K ^TMP("VAQR3",$J),^TMP("VAQR3","VAQIDX",$J)
  1. K STATPT,TRDE,NODE,ND,X,Y,K,J,DATETIME,SEGMENT,SEGDE,SEG,SDI,VALMY,SDAT
  1. K VAQECNT,VAQTRNO,VAQPTNM,VAQISSN,VAQIDOB,VAQEDOB,VAQPTID,VAQAUST
  1. K VAQAUADD,VAQRES,VAQTRDE,VAQDFN,VAQDOM,VAQSIG,VAQTRN
  1. K VAQFLAG,VAQTDTE,VAQESSN,VAQLMT
  1. K RELPTR,VAQCST,VAQRST
  1. Q
  1. ;
  1. END ; -- End of code
  1. QUIT