1 | SDUL0 ;MJK/ALB - List Manager (cont.); 12/1/91
|
---|
2 | ;;5.3;Scheduling;;Aug 13, 1993
|
---|
3 | ;
|
---|
4 | INIT(NAME,PARMS) ;
|
---|
5 | D STACK
|
---|
6 | K SDULBCK,SDULQUIT,SDULHDR
|
---|
7 | S SDUL(0)=$G(PARMS)
|
---|
8 | I NAME["^",'$$SETUP(.NAME) S SDULQUIT="" G INITQ
|
---|
9 | I NAME'["^",'$$TEMP(.NAME) S SDULQUIT="" G INITQ
|
---|
10 | D TERM:'SDULEVL,CALC
|
---|
11 | INITQ K SDX,X Q
|
---|
12 | ;
|
---|
13 | TERM ; -- set up term characteristics
|
---|
14 | I '$D(IOST(0)) D HOME^%ZIS
|
---|
15 | S SDULWD=IOM,X=$$IO D ENDR^%ZISS
|
---|
16 | Q
|
---|
17 | ;
|
---|
18 | IO() ; -- what device params
|
---|
19 | Q "IORVON;IORVOFF;IOIL;IOSTBM;IOSC;IORC;IOEDEOP;IOINHI;IOINORM;IOUON;IOUOFF"
|
---|
20 | ;
|
---|
21 | STACK ; -- stack vars
|
---|
22 | S SDULEVL=$S($D(SDULEVL):SDULEVL+1,1:0)
|
---|
23 | I 'SDULEVL K SDUL,^TMP("SDUL DATA",$J,SDULEVL) G STACKQ
|
---|
24 | ;
|
---|
25 | ; -- stack'em
|
---|
26 | K ^TMP("SDUL STACK",$J,SDULEVL)
|
---|
27 | I $O(^TMP("SDUL STACK",$J,SDULEVL,"SDUL",""))="" S X="" F S X=$O(SDUL(X)) Q:X="" S ^(X)=SDUL(X)
|
---|
28 | I $O(^TMP("SDUL STACK",$J,SDULEVL,"OTHER VARS",""))="" F X="SDULMENU","SDULCAP","SDULAR","SDULCNT","SDULBG","SDULST","SDULCC" S ^(X)=$G(@X)
|
---|
29 | K SDULBG,SDUL
|
---|
30 | STACKQ Q
|
---|
31 | ;
|
---|
32 | POP ; -- clean up and unstack vars
|
---|
33 | K SDULMENU,SDULCAP,SDULHDR,SDULPGE,SDULUP,SDULDN,SDULDDF,SDULCC,SDULAR,SDULCNT,SDUL,SDULBG,SDULST,LN,^TMP("SDUL DATA",$J,SDULEVL)
|
---|
34 | I 'SDULEVL D G POPQ
|
---|
35 | .D CLEAR^SDUL1
|
---|
36 | .S Y=$$IO F I=1:1 S X=$P(Y,";",I) Q:X="" K @X
|
---|
37 | .K Y,X,I,SDULEVL,SDULWD,SDULFIND
|
---|
38 | ;
|
---|
39 | ; -- unstack'em
|
---|
40 | I $O(^TMP("SDUL STACK",$J,SDULEVL,"SDUL",""))]"" S X="" F S X=$O(^(X)) Q:X="" S SDUL(X)=^(X)
|
---|
41 | I $O(^TMP("SDUL STACK",$J,SDULEVL,"OTHER VARS",""))]"" S X="" F S X=$O(^(X)) Q:X="" S @X=^(X)
|
---|
42 | K ^TMP("SDUL STACK",$J,SDULEVL)
|
---|
43 | D COL^SDUL
|
---|
44 | S SDULEVL=$S(SDULEVL:SDULEVL-1,1:0),SDULBCK="R",(SDULUP,SDULDN)=""
|
---|
45 | POPQ Q
|
---|
46 | ;
|
---|
47 | SETUP(NAME) ; -- on-the-fly list
|
---|
48 | D @NAME
|
---|
49 | S Y=1 F X="ARRAY" I '$D(SDUL(X)) S Y=0 G SETUPQ
|
---|
50 | I $E(SDUL("ARRAY"))'="" S SDUL("ARRAY")=" "_SDUL("ARRAY")
|
---|
51 | S SDUL("IFN")=0
|
---|
52 | S:'$D(SDUL("TM")) SDUL("TM")=$S('$D(SDUL("HDR")):2,1:5)
|
---|
53 | S:'$D(SDUL("BM")) SDUL("BM")=$S('$D(SDUL("HDR")):16,1:14)
|
---|
54 | S:'$D(SDUL("TYPE")) SDUL("TYPE")=2 ; def to display
|
---|
55 | S:'$D(SDUL("TITLE")) SDUL("TITLE")="Standard List Display"
|
---|
56 | I '$G(SDUL("MAX")) S SDUL("MAX")=1
|
---|
57 | S:'$D(SDULCC) SDULCC=1
|
---|
58 | SETUPQ Q Y
|
---|
59 | ;
|
---|
60 | TEMP(NAME) ; -- use list template
|
---|
61 | N SDUL0,NODE
|
---|
62 | S SDUL=+$O(^SD(409.61,"B",NAME,0)),SDUL0=$G(^SD(409.61,SDUL,0))
|
---|
63 | G:SDUL0="" TEMPQ
|
---|
64 | ;
|
---|
65 | F NODE="ARRAY","HDR","EXP","HLP","INIT","FNL" S SDUL(NODE)=$G(^SD(409.61,SDUL,NODE))
|
---|
66 | S SDUL("IFN")=SDUL D COL^SDUL
|
---|
67 | S SDUL("TYPE")=$P(SDUL0,U,2)
|
---|
68 | S SDUL("TM")=$P(SDUL0,U,5)
|
---|
69 | S SDUL("BM")=$P(SDUL0,U,6)
|
---|
70 | S SDULCC=+$P(SDUL0,U,8)
|
---|
71 | S SDUL("ENTITY")=$P(SDUL0,U,9)
|
---|
72 | S SDUL("PROTOCOL")=$P(SDUL0,U,10)
|
---|
73 | S SDUL("TITLE")=$S($P(SDUL0,U,11)]"":$P(SDUL0,U,11),1:$P(SDUL0,U))
|
---|
74 | S SDUL("MAX")=$S($P(SDUL0,U,12):$P(SDUL0,U,12),1:1)
|
---|
75 | S SDUL("DAYS")=$S($P(SDUL0,U,13):$P(SDUL0,U,13),1:30)
|
---|
76 | TEMPQ Q SDUL0]""
|
---|
77 | ;
|
---|
78 | CALC ; -- calculate derived parmeters
|
---|
79 | N NODE,X,I,X,Y
|
---|
80 | F NODE="DAYS","EXP","HLP","INIT","FNL" I $G(SDUL(NODE))]"" S ^TMP("SDUL DATA",$J,SDULEVL,NODE)=SDUL(NODE) K SDUL(NODE)
|
---|
81 | S SDULAR=$E(SDUL("ARRAY"),2,50) K SDUL("ARRAY")
|
---|
82 | S SDUL("LINES")=(SDUL("BM")-SDUL("TM"))+1
|
---|
83 | S:SDUL("TM")<3 SDUL("TITLE")=" "_SDUL("TITLE")
|
---|
84 | ; -- set up protocol
|
---|
85 | S X="SDUL DISPLAY" ; default protocol
|
---|
86 | I SDUL("TYPE")=1,SDUL("PROTOCOL")]"" S X=SDUL("PROTOCOL")
|
---|
87 | I SDUL("TYPE")=2,$D(^TMP("SDUL DATA",$J,SDULEVL,"EXP")) S X=X_" W/EXPAND"
|
---|
88 | S SDUL("PROTOCOL")=+$O(^ORD(101,"B",X,0))_";ORD(101,"
|
---|
89 | ;
|
---|
90 | S (SDULUP,SDULDN)=""
|
---|
91 | I SDULCC S Y=$$IO F I=1:1 S X=$P(Y,";",I) Q:X="" I $G(@X)="" S SDULCC=0 Q
|
---|
92 | S SDULCAP=$$CAPTION^SDUL
|
---|
93 | S:$G(^DISV($S($D(DUZ)#2:DUZ,1:0),"SDULMENU",SDUL("PROTOCOL")))="" ^(SDUL("PROTOCOL"))=1 S SDULMENU=^(SDUL("PROTOCOL"))
|
---|
94 | Q
|
---|
95 | ;
|
---|