| 1 | VAQDIS15 ;ALB/JFP - PDX,DISPLAY SEGMENTS FOR DISPLAY;01MAR93
 | 
|---|
| 2 |  ;;1.5;PATIENT DATA EXCHANGE;**1,17**;NOV 17, 1993
 | 
|---|
| 3 | EP ; -- Main entry point for the list processor
 | 
|---|
| 4 |  ; -- K XQORS,VALMEVL (only kill on the first screen in)
 | 
|---|
| 5 |  D EN^VALM("VAQ DISPLAY SEGMENT PDX11") ; -- protocol = VAQ PDX11 (MENU)
 | 
|---|
| 6 |  ;K VALMBCK
 | 
|---|
| 7 |  QUIT
 | 
|---|
| 8 |  ;
 | 
|---|
| 9 | INIT ; -- Initializes variables and defines screen
 | 
|---|
| 10 |  K ^TMP("VAQD2",$J)
 | 
|---|
| 11 |  S (VAQECNT,VALMCNT,SEGDE)=0
 | 
|---|
| 12 |  ;
 | 
|---|
| 13 |  I '$D(^VAT(394.61,DFN,"SEG",0)) D  QUIT
 | 
|---|
| 14 |  .S X=$$SETSTR^VALM1(" ","",1,79) D TMP
 | 
|---|
| 15 |  .S X=$$SETSTR^VALM1("  ** No Segment(s)... <Return> to exit ","",1,79)
 | 
|---|
| 16 |  .D TMP
 | 
|---|
| 17 |  ;
 | 
|---|
| 18 |  F  S SEGDE=$O(^VAT(394.61,DFN,"SEG","B",SEGDE))  Q:SEGDE=""  D
 | 
|---|
| 19 |  .S SEGMNU=$P($G(^VAT(394.71,SEGDE,0)),U,2)
 | 
|---|
| 20 |  .S SEGNM=$P($G(^VAT(394.71,SEGDE,0)),U,1)
 | 
|---|
| 21 |  .S VAQECNT=VAQECNT+1
 | 
|---|
| 22 |  .S X=$$SETFLD^VALM1(VAQECNT,"","ENTRY")
 | 
|---|
| 23 |  .S X=$$SETFLD^VALM1(SEGMNU,X,"SEGMENTS")
 | 
|---|
| 24 |  .S X=$$SETFLD^VALM1(SEGNM,X,"SEGNAME")
 | 
|---|
| 25 |  .D TMP
 | 
|---|
| 26 |  QUIT
 | 
|---|
| 27 |  ;
 | 
|---|
| 28 | TMP ; -- Set the array used by list processor
 | 
|---|
| 29 |  S VALMCNT=VALMCNT+1
 | 
|---|
| 30 |  S ^TMP("VAQD2",$J,VALMCNT,0)=$E(X,1,79)
 | 
|---|
| 31 |  S ^TMP("VAQD2",$J,"IDX",VALMCNT,VAQECNT)=""
 | 
|---|
| 32 |  S ^TMP("VAQIDXSG",$J,VAQECNT)=SEGDE_"^"_SEGMNU
 | 
|---|
| 33 |  QUIT
 | 
|---|
| 34 |  ;
 | 
|---|
| 35 | HD ; -- Make header line for list processor
 | 
|---|
| 36 |  N X0,X1,X2
 | 
|---|
| 37 |  S X0=$$TRNDATA^VAQUTL92(VAQDFN) ; -- sets variable from transaction file
 | 
|---|
| 38 |  S X1=$$SETSTR^VALM1("Patient: "_VAQPTNM,"",1,41)
 | 
|---|
| 39 |  S X1=$$SETSTR^VALM1("Remote Domain: "_VAQADOM,X1,42,79)
 | 
|---|
| 40 |  S:VAQPTID="" X2=$$SETSTR^VALM1("    SSN: "_VAQESSN,"",1,41)
 | 
|---|
| 41 |  S:VAQPTID'="" X2=$$SETSTR^VALM1("     ID: "_VAQPTID,"",1,41)
 | 
|---|
| 42 |  S X2=$$SETSTR^VALM1("    Date/Time: "_VAQADT,X2,42,79)
 | 
|---|
| 43 |  ;
 | 
|---|
| 44 |  S VALMHDR(1)=" "
 | 
|---|
| 45 |  S VALMHDR(2)=$E(X1,1,79)
 | 
|---|
| 46 |  S VALMHDR(3)=$E(X2,1,79)
 | 
|---|
| 47 |  ;
 | 
|---|
| 48 |  D KILLTRN^VAQUTL92 ; -- cleans up variables set in TRNDATA CALL
 | 
|---|
| 49 |  K X0,X1,X2
 | 
|---|
| 50 |  QUIT
 | 
|---|
| 51 |  ;
 | 
|---|
| 52 |  ; ------------------------ PROTOCOLS -------------------------------
 | 
|---|
| 53 | SEL ; -- Selected segment(s) for display
 | 
|---|
| 54 |  D SEL^VALM2
 | 
|---|
| 55 |  Q:'$D(VALMY)
 | 
|---|
| 56 |  S VALMCNT=1
 | 
|---|
| 57 |  S ROOT="^TMP(""VAQD3"",$J)" K @ROOT
 | 
|---|
| 58 |  D CLEAR^VALM1
 | 
|---|
| 59 |  S X=$$DEVICE^VAQDIS17("SEL")
 | 
|---|
| 60 |  ; -- Added call to INIT to clear variables
 | 
|---|
| 61 |  I X=-1 W !,"Error in getting device" D INIT S VALMBCK="R" QUIT
 | 
|---|
| 62 |  I X=0 S VALMBCK="R" G SEL2 ; -- allows for re-selection
 | 
|---|
| 63 |  S ENTRY=""
 | 
|---|
| 64 |  F  S ENTRY=$O(VALMY(ENTRY))  Q:ENTRY=""  D BLDDIS
 | 
|---|
| 65 |  D ENDLN
 | 
|---|
| 66 |  D EP^VAQDIS16
 | 
|---|
| 67 | SEL2 D INIT
 | 
|---|
| 68 |  S VALMBCK="R"
 | 
|---|
| 69 |  QUIT
 | 
|---|
| 70 |  ;
 | 
|---|
| 71 | ALL ; -- Selects all segments for display
 | 
|---|
| 72 |  I '$D(^TMP("VAQIDXSG",$J)) S VALMBCK="Q" QUIT
 | 
|---|
| 73 |  S VALMCNT=1
 | 
|---|
| 74 |  S ROOT="^TMP(""VAQD3"",$J)" K @ROOT
 | 
|---|
| 75 |  D CLEAR^VALM1
 | 
|---|
| 76 |  S X=$$DEVICE^VAQDIS17("ALL")
 | 
|---|
| 77 |  I X=-1 W !,"Error in getting device" D INIT S VALMBCK="R" QUIT
 | 
|---|
| 78 |  I X=0 K VALMBCK  QUIT
 | 
|---|
| 79 |  S ENTRY=""
 | 
|---|
| 80 |  F  S ENTRY=$O(^TMP("VAQIDXSG",$J,ENTRY)) Q:ENTRY=""  D BLDDIS
 | 
|---|
| 81 |  D ENDLN
 | 
|---|
| 82 |  D EP^VAQDIS16
 | 
|---|
| 83 |  K VALMBCK
 | 
|---|
| 84 |  QUIT
 | 
|---|
| 85 |  ;
 | 
|---|
| 86 | TRANEX D PAUSE^VALM1
 | 
|---|
| 87 |  S VALMBCK=$S(VAQFLAG=0:"R",1:"Q")
 | 
|---|
| 88 |  QUIT
 | 
|---|
| 89 |  ;
 | 
|---|
| 90 | BLDDIS ; -- Builds display
 | 
|---|
| 91 |  D:$D(XRTL) T0^%ZOSV ; -- Capacity start
 | 
|---|
| 92 |  S SDAT=$G(^TMP("VAQIDXSG",$J,ENTRY))
 | 
|---|
| 93 |  S SEGDE=$P(SDAT,U,1)
 | 
|---|
| 94 |  S OFFSET=$$BLDDSP^VAQUPD2(DFN,SEGDE,ROOT,VALMCNT)
 | 
|---|
| 95 |  S:+OFFSET'=-1 VALMCNT=VALMCNT+OFFSET
 | 
|---|
| 96 |  I +OFFSET=-1 S ERRMSG=$P($G(OFFSET),U,2) D ERRMSG
 | 
|---|
| 97 |  ;W !,"Segment = ",SEGDE,"     Offset = ",OFFSET,"     VALMCNT = ",VALMCNT
 | 
|---|
| 98 |  S:$D(XRT0) XRTN=$T(+0) D:$D(XRT0) T1^%ZOSV ; -- Capacity stop
 | 
|---|
| 99 |  QUIT
 | 
|---|
| 100 |  ;
 | 
|---|
| 101 | ERRMSG ; -- Displays a message if segment could be extracted
 | 
|---|
| 102 |  S EROOT=$$ROOT^VAQDIS20(ROOT)
 | 
|---|
| 103 |  S VAQSEGND=""
 | 
|---|
| 104 |  S:SEGDE'="" VAQSEGND=$G(^VAT(394.71,SEGDE,0))
 | 
|---|
| 105 |  S VAQLN=$$REPEAT^VAQUTL1("-",79)
 | 
|---|
| 106 |  S VAQCTR="< "_$S($P(VAQSEGND,"^",1)'="":$P(VAQSEGND,"^",1),1:"Segment  Description Missing")_" >"
 | 
|---|
| 107 |  S X=$$CENTER^VAQDIS20(VAQLN,VAQCTR) D ETMP
 | 
|---|
| 108 |  S X=$$SETSTR^VALM1(" ","",1,79) D ETMP
 | 
|---|
| 109 |  S X=$$SETSTR^VALM1("  ** "_ERRMSG,"",1,79) D ETMP
 | 
|---|
| 110 |  S X=$$SETSTR^VALM1(" ","",1,79) D ETMP
 | 
|---|
| 111 |  S X=$$SETSTR^VALM1(" ","",1,79) D ETMP
 | 
|---|
| 112 |  S OFFSET=VALMCNT
 | 
|---|
| 113 |  K VAQLN,VAQCTR,VAQSEGND,X,EROOT
 | 
|---|
| 114 |  QUIT
 | 
|---|
| 115 |  ;
 | 
|---|
| 116 | ENDLN ; -- End of display
 | 
|---|
| 117 |  S EROOT=$$ROOT^VAQDIS20(ROOT)
 | 
|---|
| 118 |  S X=$$SETSTR^VALM1(" ","",1,79) D ETMP
 | 
|---|
| 119 |  S X=$$SETSTR^VALM1("  [ End of Data ]","",1,79) D ETMP
 | 
|---|
| 120 |  K EROOT
 | 
|---|
| 121 |  QUIT
 | 
|---|
| 122 |  ;
 | 
|---|
| 123 | ETMP ; -- Display for error message
 | 
|---|
| 124 |  S VALMCNT=VALMCNT+1
 | 
|---|
| 125 |  S @EROOT@(VALMCNT,0)=$E(X,1,79)
 | 
|---|
| 126 |  QUIT
 | 
|---|
| 127 |  ;
 | 
|---|
| 128 | EXIT ; -- Note: The list processor cleans up its own variables.
 | 
|---|
| 129 |  ;          All other variables cleaned up here.
 | 
|---|
| 130 |  ;
 | 
|---|
| 131 |  K ^TMP("VAQD2",$J),^TMP("VAQIDXSG",$J)
 | 
|---|
| 132 |  K SEGDE,SEGMNU,SEGNM
 | 
|---|
| 133 |  K ROOT,OFFSET
 | 
|---|
| 134 |  Q
 | 
|---|
| 135 |  ;
 | 
|---|
| 136 | END ; -- End of code
 | 
|---|
| 137 |  QUIT
 | 
|---|