| 1 | ORGUEM3 ; slc/KCM - Setup Formatted Protocol Menus (cont) ;7/13/92  15:40
 | 
|---|
| 2 |  ;;3.0;ORDER ENTRY/RESULTS REPORTING;;Dec 17, 1997
 | 
|---|
| 3 |  ;;
 | 
|---|
| 4 | HLP ;Provide help for ORCL PROTOCOL MENU SETUP menu
 | 
|---|
| 5 |  N ORGPOP
 | 
|---|
| 6 |  I X="?" D  G HLPX
 | 
|---|
| 7 |  . D DISP^XQORM1
 | 
|---|
| 8 |  . W !!
 | 
|---|
| 9 |  I X["??" D  G HLPX
 | 
|---|
| 10 |  . N Y D SEQ(+XQORNOD,.Y)
 | 
|---|
| 11 |  . S (DX,DY)=0 X ^%ZOSF("XY")
 | 
|---|
| 12 |  . F I=1:1:Y I ^ORD(101,$P(Y(I),"^",2),0)'?1"ORB".E D  Q:$D(ORGPOP)
 | 
|---|
| 13 |  . . W !,$P(^ORD(101,+XQORNOD,10,+Y(I),0),"^",2)
 | 
|---|
| 14 |  . . S J=0 F  S J=$O(^ORD(101,$P(Y(I),"^",2),1,J)) Q:J'>0  D  Q:$D(ORGPOP)
 | 
|---|
| 15 |  . . . W ?5,^ORD(101,$P(Y(I),"^",2),1,J,0),!
 | 
|---|
| 16 |  . . . I $Y>22 D
 | 
|---|
| 17 |  . . . . W "Press RETURN to continue or '^' to exit: "
 | 
|---|
| 18 |  . . . . R X:DTIME S:'$T!(X["^") ORGPOP=1 W $C(13)
 | 
|---|
| 19 |  . . . . S (DX,DY)=0 X ^%ZOSF("XY")
 | 
|---|
| 20 |  . W !
 | 
|---|
| 21 | HLPX Q
 | 
|---|
| 22 | SEQ(PCL,Y) ; For the named protocol (PCL) return array of items in sequence
 | 
|---|
| 23 |  ; Y must be call by reference, returned is Y(n)=item ien^protocol
 | 
|---|
| 24 |  N X,SEQ,ITM K Y ;(make sure Y is empty)
 | 
|---|
| 25 |  S Y=0 ; Y is returned 0 if no items found
 | 
|---|
| 26 |  S ITM=0 F  S ITM=$O(^ORD(101,PCL,10,ITM)) Q:ITM'>0  D
 | 
|---|
| 27 |  . S X=^ORD(101,PCL,10,ITM,0)
 | 
|---|
| 28 |  . ;precedence for sequence is SEQUENCE, numeric MNEMONIC, alpha MNEMONIC, alpha ITEM TEXT
 | 
|---|
| 29 |  . S SEQ=$S(+$P(X,"^",3):+$P(X,"^",3),+$P(X,"^",2):+$P(X,"^",2),$L($P(X,"^",2)):"M"_$P(X,"^",2),1:"Z"_$P(^ORD(101,+X,0),"^",2))
 | 
|---|
| 30 |  . S X(SEQ,ITM)=+X
 | 
|---|
| 31 |  S SEQ="" F  S SEQ=$O(X(SEQ)) Q:SEQ=""  D
 | 
|---|
| 32 |  . S ITM="" F  S ITM=$O(X(SEQ,ITM)) Q:ITM=""  D
 | 
|---|
| 33 |  . . S Y=Y+1,Y(Y)=ITM_"^"_X(SEQ,ITM)
 | 
|---|
| 34 |  Q
 | 
|---|
| 35 | LIST ; List protocols on menu
 | 
|---|
| 36 |  S %ZIS="Q" D ^%ZIS I POP D HOME^%ZIS Q
 | 
|---|
| 37 |  I $D(IO("Q")) D  Q
 | 
|---|
| 38 |  . K IO("Q")
 | 
|---|
| 39 |  . S ZTRTN="DQ^ORGUEM3",ZTDESC="List Menu Items",ZTSAVE("ORGMENU")=""
 | 
|---|
| 40 |  . D ^%ZTLOAD W:$D(ZTSK) !,"List queued." K ZTSK
 | 
|---|
| 41 |  . D HOME^%ZIS
 | 
|---|
| 42 | DQ U IO N CTM,EOP,ITM,LIST
 | 
|---|
| 43 |  D SEQ(+ORGMENU,.LIST)
 | 
|---|
| 44 |  S %DT="T",X="NOW" D ^%DT,DD^%DT S CTM=Y
 | 
|---|
| 45 |  I $E(IOST)="C" W @IOF,$C(13)
 | 
|---|
| 46 |  D HDR1
 | 
|---|
| 47 |  F ITM=1:1:LIST S EOP=$$EOP(2) Q:EOP=-1  D:EOP=1 HDR D PITM(LIST(ITM))
 | 
|---|
| 48 |  I $E(IOST)'="C" W @IOF
 | 
|---|
| 49 |  I $D(ZTQUEUED) S ZTREQ="@"
 | 
|---|
| 50 |  I '$D(ZTQUEUED) D ^%ZISC
 | 
|---|
| 51 |  Q
 | 
|---|
| 52 | HDR ; Print header
 | 
|---|
| 53 |  W @IOF,$C(13)
 | 
|---|
| 54 | HDR1 W "Menu: ",$P(ORGMENU,"^",2),?61,CTM,!!
 | 
|---|
| 55 |  Q
 | 
|---|
| 56 | PITM(X) ; Print item fields
 | 
|---|
| 57 |  ; ITEM: 123 Displayed Text                          ?64 SEQUENCE: 99.00
 | 
|---|
| 58 |  ; NAME: NAME OF PROTOCOL (ITEM TEXT)
 | 
|---|
| 59 |  W "ITEM: "
 | 
|---|
| 60 |  I $P(^ORD(101,$P(X,"^",2),0),"^",2)?." " W "<blank line>"
 | 
|---|
| 61 |  E  D
 | 
|---|
| 62 |  . W $P(^ORD(101,+ORGMENU,10,+X,0),"^",2)
 | 
|---|
| 63 |  . W ?(6+$S($P($G(^ORD(101,+ORGMENU,4)),"^",2):$P(^(4),"^",2),1:5))
 | 
|---|
| 64 |  . W $S($L($P(^ORD(101,+ORGMENU,10,+X,0),"^",6)):$P(^(0),"^",6),1:$P(^ORD(101,$P(X,"^",2),0),"^",2))
 | 
|---|
| 65 |  W ?64,"SEQUENCE: ",$S($L($P(^ORD(101,+ORGMENU,10,+X,0),"^",3)):$J($P(^(0),"^",3),5,2),1:""),!
 | 
|---|
| 66 |  W "PROTOCOL: ",$P(^ORD(101,$P(X,"^",2),0),"^"),"  "
 | 
|---|
| 67 |  I $P(^ORD(101,$P(X,"^",2),0),"^",2)'?1." ",$L($P(^(0),"^",2)) W "(",$P(^(0),"^",2),")"
 | 
|---|
| 68 |  W !!
 | 
|---|
| 69 |  Q
 | 
|---|
| 70 | EOP(LINES) ; Check if end of page, handle CRT & printer advance
 | 
|---|
| 71 |  I $Y<(IOSL-LINES) Q 0
 | 
|---|
| 72 |  I $E(IOST)="C" D  Q:X["^" -1
 | 
|---|
| 73 |  . W "Press RETURN to continue or '^' to exit: "
 | 
|---|
| 74 |  . R X:DTIME
 | 
|---|
| 75 |  Q 1
 | 
|---|