| [613] | 1 | VAQDIS11 ;ALB/JFP - PDX,SELECTION SCREEN FOR DISPLAY BY PATIENT;01MAR93
 | 
|---|
 | 2 |  ;;1.5;PATIENT DATA EXCHANGE;;NOV 17, 1993
 | 
|---|
 | 3 | EP ; -- Main entry point for the list processor
 | 
|---|
 | 4 |  K XQORS,VALMEVL
 | 
|---|
 | 5 |  N VAQSSN,VAQPAT,VAQFLAG,VAQECNT,VAQRSLT,VAQUNSOL,X0,STATUS,TRDE
 | 
|---|
 | 6 |  D EN^VALM("VAQ DIS PATIENT PDX9") ; -- Protocol = VAQ PDX9 (MENU)
 | 
|---|
 | 7 |  QUIT
 | 
|---|
 | 8 |  ;
 | 
|---|
 | 9 | INIT ; -- Builds array of PDX trans for the patient entered (SSN) or name
 | 
|---|
 | 10 |  K ^TMP("VAQD1",$J),^TMP("VAQIDX",$J)
 | 
|---|
 | 11 |  ;
 | 
|---|
 | 12 |  S TRDE="",(VAQECNT,VALMCNT)=0
 | 
|---|
 | 13 |  S VAQPAT=$P($G(^VAT(394.61,+VAQDFN,"QRY")),U,1)
 | 
|---|
 | 14 |  S VAQSSN=$P($G(^VAT(394.61,+VAQDFN,"QRY")),U,2)
 | 
|---|
 | 15 |  I (VAQSSN="")&(VAQPAT="") D MSG1 QUIT
 | 
|---|
 | 16 |  ;
 | 
|---|
 | 17 |  D STATPTR^VAQUTL95 ; -- Sets PDX status pointers (vaq-rslt,vaq-unsol)
 | 
|---|
 | 18 | MAIN ; -- Main processing loop
 | 
|---|
 | 19 |  F  S TRDE=$O(^VAT(394.61,$S(VAQSSN'="":"SSN",1:"NAME"),$S(VAQSSN'="":VAQSSN,1:VAQPAT),TRDE))  Q:TRDE=""  D SETD
 | 
|---|
 | 20 |  I VAQECNT=0 D MSG2 QUIT
 | 
|---|
 | 21 |  QUIT
 | 
|---|
 | 22 |  ;
 | 
|---|
 | 23 | SETD ; -- Set data for display in list processor
 | 
|---|
 | 24 |  S VAQCSTAT=$P($G(^VAT(394.61,TRDE,0)),U,2)
 | 
|---|
 | 25 |  ; -- Filter out transaction without results
 | 
|---|
 | 26 |  I ((VAQCSTAT)'=VAQRSLT)&((VAQCSTAT)'=VAQUNSOL) QUIT
 | 
|---|
 | 27 |  ; -- Filter out transactions marked as purged OR excides life cap
 | 
|---|
 | 28 |  S VAQFLAG=$$EXPTRN^VAQUTL97(TRDE)
 | 
|---|
 | 29 |  Q:VAQFLAG=1
 | 
|---|
 | 30 |  ;
 | 
|---|
 | 31 |  S X0=$$TRNDATA^VAQUTL92(TRDE) ; -- Extracts data from transaction file
 | 
|---|
 | 32 |  S STATUS=$S(VAQCSTAT'="":$P($G(^VAT(394.85,VAQCSTAT,0)),U,2),1:" ")
 | 
|---|
 | 33 |  S:VAQADT'="" DATETIME=VAQADT_" (Rs)"
 | 
|---|
 | 34 |  S:VAQADT="" DATETIME=VAQRDT_" (Rq)"
 | 
|---|
 | 35 |  S VAQECNT=VAQECNT+1
 | 
|---|
 | 36 |  S X=$$SETFLD^VALM1(VAQECNT,"","ENTRY")
 | 
|---|
 | 37 |  S X=$$SETFLD^VALM1(VAQADOM,X,"DOMAIN")
 | 
|---|
 | 38 |  S X=$$SETFLD^VALM1(DATETIME,X,"DATE")
 | 
|---|
 | 39 |  S X=$$SETFLD^VALM1(VAQTRN,X,"TRNO")
 | 
|---|
 | 40 |  D TMP
 | 
|---|
 | 41 |  S X=$$SETSTR^VALM1(" ","",1,80) D TMP ; -- null line
 | 
|---|
 | 42 |  D KILLTRN^VAQUTL92 ; -- Cleans up variables set in TRNDATA
 | 
|---|
 | 43 |  QUIT
 | 
|---|
 | 44 |  ;
 | 
|---|
 | 45 | HD ; -- Make header line for list processor
 | 
|---|
 | 46 |  S X0=$$TRNDATA^VAQUTL92(VAQDFN)
 | 
|---|
 | 47 |  D HD1^VAQEXT02
 | 
|---|
 | 48 |  D KILLTRN^VAQUTL92
 | 
|---|
 | 49 |  QUIT
 | 
|---|
 | 50 |  ;
 | 
|---|
 | 51 | SEL ; -- Selects patient to display, checks sensative patient
 | 
|---|
 | 52 |  N VALMY,SDI,SDAT
 | 
|---|
 | 53 |  S:'$D(VAQBCK) VAQBCK=0
 | 
|---|
 | 54 |  D EN^VALM2($G(XQORNOD(0)),"S")
 | 
|---|
 | 55 |  Q:'$D(VALMY)
 | 
|---|
 | 56 |  S SDI=""
 | 
|---|
 | 57 |  S SDI=$O(VALMY(SDI))  Q:SDI=""
 | 
|---|
 | 58 |  S SDAT=$G(^TMP("VAQIDX",$J,SDI))
 | 
|---|
 | 59 |  S VAQTRN=$P(SDAT,U,2),DFN=""
 | 
|---|
 | 60 |  S (VAQDFN,DFN)=$O(^VAT(394.61,"B",VAQTRN,DFN))
 | 
|---|
 | 61 |  I $P($G(^VAT(394.61,DFN,0)),U,4)=1 D WORKLD
 | 
|---|
 | 62 |  D EP^VAQDIS15 ; -- Display segments
 | 
|---|
 | 63 |  I VAQBCK=1 K VALMBCK QUIT
 | 
|---|
 | 64 |  D INIT
 | 
|---|
 | 65 |  S VALMBCK="R"
 | 
|---|
 | 66 |  QUIT
 | 
|---|
 | 67 |  ;
 | 
|---|
 | 68 | TMP ; -- Set the array used by list processor
 | 
|---|
 | 69 |  S VALMCNT=VALMCNT+1
 | 
|---|
 | 70 |  S ^TMP("VAQD1",$J,VALMCNT,0)=$E(X,1,79)
 | 
|---|
 | 71 |  S ^TMP("VAQD1",$J,"IDX",VALMCNT,VAQECNT)=""
 | 
|---|
 | 72 |  S ^TMP("VAQIDX",$J,VAQECNT)=VALMCNT_"^"_VAQTRN
 | 
|---|
 | 73 |  QUIT
 | 
|---|
 | 74 |  ;
 | 
|---|
 | 75 | WORKLD ; -- Updates workload file
 | 
|---|
 | 76 |  S X=$$WORKDONE^VAQADS01("SNSTVE",DFN,$G(DUZ))
 | 
|---|
 | 77 |  I X<0 W !,"Error updating workload file (SNSTVE)... "_$P(X,U,2)
 | 
|---|
 | 78 |  QUIT
 | 
|---|
 | 79 |  ;
 | 
|---|
 | 80 | MSG1 ; -- Message 1
 | 
|---|
 | 81 |  S VAQTRN=0,X=$$SETSTR^VALM1(" ","",1,79) D TMP
 | 
|---|
 | 82 |  S X=$$SETSTR^VALM1(" ** Insufficient Information for Patient Look-up...","",1,80) D TMP
 | 
|---|
 | 83 |  QUIT
 | 
|---|
 | 84 |  ;
 | 
|---|
 | 85 | MSG2 ; -- Message 2
 | 
|---|
 | 86 |  S VAQTRN=0,X=$$SETSTR^VALM1(" ","",1,79) D TMP
 | 
|---|
 | 87 |  S X=$$SETSTR^VALM1(" ** PDX results not found for patient entered... ","",1,80) D TMP
 | 
|---|
 | 88 |  QUIT
 | 
|---|
 | 89 |  ;
 | 
|---|
 | 90 | EXIT ; -- Note: The list processor cleans up its own variables.
 | 
|---|
 | 91 |  ;          All other variables cleaned up here.
 | 
|---|
 | 92 |  ;
 | 
|---|
 | 93 |  K VAQADFL ; -- set in VAQDIS01 (display min)
 | 
|---|
 | 94 |  K VAQSSN,VAQPAT,VAQFLAG,VAQECNT,VAQRSLT,VAQUNSOL,X0,STATUS,TRDE,VAQBCK
 | 
|---|
 | 95 |  K ENTRY,DATETIME,VAQECNT
 | 
|---|
 | 96 |  K ^TMP("VAQD1",$J),^TMP("VAQIDX",$J)
 | 
|---|
 | 97 |  QUIT
 | 
|---|
 | 98 |  ;
 | 
|---|
 | 99 | END ; -- End of code
 | 
|---|
 | 100 |  QUIT
 | 
|---|