1 | OCXSEND1 ;SLC/RJS,CLA - BUILD RULE TRANSPORTER ROUTINES (Get List of Objects to Transport) ;2/01/01 09:06
|
---|
2 | ;;3.0;ORDER ENTRY/RESULTS REPORTING;**32,105**;Dec 17,1997
|
---|
3 | ;; ;;ORDER CHECK EXPERT version 1.01 released OCT 29,1998
|
---|
4 | ;
|
---|
5 | S ;
|
---|
6 | ;
|
---|
7 | N OCXFILE,OCXD0
|
---|
8 | ;
|
---|
9 | F S OCXFILE=$$GETFILE Q:'OCXFILE I (OCXFILE>1) F D ADDON Q:'$$GETREC(OCXFILE)
|
---|
10 | ;
|
---|
11 | Q
|
---|
12 | ;
|
---|
13 | GETREC(OCXFILE) ;
|
---|
14 | ;
|
---|
15 | N OCXDIAG,OCXD0,OCXD1,OCXX,OCXADD,OCXSCR
|
---|
16 | S OCXDIAG="Select an"_$S($O(^TMP("OCXSEND",$J,"LIST",+OCXFILE,0)):"other",1:"")
|
---|
17 | S OCXDIAG=OCXDIAG_" "_$P(OCXFILE,U,2)_": "
|
---|
18 | S OCXID="I $D(^TMP(""OCXSEND"",$J,"_(+OCXFILE)_",""B"",$P(^(0),U,1))) W "" ***** Already selected for transport. *****"""
|
---|
19 | S:(+OCXFILE=860.8) OCXID="W:$L($P(^(0),U,2)) ?35,""$$"",$P(^(0),U,2),""() "" "_OCXID
|
---|
20 | S OCXSCR=""
|
---|
21 | W !!,OCXDIAG R OCXX:DTIME E W " <timeout>",$C(7) Q 0
|
---|
22 | Q:(OCXX[U) 0 Q:'$L(OCXX) 0
|
---|
23 | S OCXADD=1 I ($E(OCXX,1)="-") S OCXX=$E(OCXX,2,$L(OCXX)),OCXADD=0
|
---|
24 | ;
|
---|
25 | I (OCXX="?") D
|
---|
26 | .I '$O(^TMP("OCXSEND",$J,"LIST",+OCXFILE,0)) W !!,"None Selected for transport"
|
---|
27 | .E W !!,"Already selected for transport:" D
|
---|
28 | ..S OCXD0="" F S OCXD0=$O(^TMP("OCXSEND",$J,"LIST",+OCXFILE,"B",OCXD0)) Q:'$L(OCXD0) D
|
---|
29 | ...W !,?5,OCXD0
|
---|
30 | ...I (+OCXFILE=860.8) D
|
---|
31 | ....S OCXD1=$O(^TMP("OCXSEND",$J,"LIST",+OCXFILE,"B",OCXD0,0)) Q:'OCXD1
|
---|
32 | ....W:$L($P($G(^OCXS(860.8,+OCXD1,0)),U,2)) " $$",$P($G(^OCXS(860.8,+OCXD1,0)),U,2),"()"
|
---|
33 | .W !!,"Press <Enter> to continue..." R OCXD0:DTIME E Q
|
---|
34 | .S OCXSCR="I '$D(^TMP(""OCXSEND"",$J,"_(+OCXFILE)_",""B"",$P(^(0),U,1)))"
|
---|
35 | .S OCXX="??"
|
---|
36 | ;
|
---|
37 | I (OCXX["*") D Q 1
|
---|
38 | .N OCXPAT,OCXCNT,OCXLEN,OCXNAME
|
---|
39 | .S OCXPAT=""
|
---|
40 | .F Q:(OCXX'["**") S OCXX=$P(OCXX,"**",1)_"*"_$P(OCXX,"**",2,999)
|
---|
41 | .S OCXLEN=$L(OCXX,"*")
|
---|
42 | .F OCXCNT=1:1:OCXLEN D
|
---|
43 | ..S:$L($P(OCXX,"*",1)) OCXPAT=OCXPAT_"1"""_$P(OCXX,"*",1)_""""
|
---|
44 | ..S:(OCXX["*") OCXPAT=OCXPAT_".E"
|
---|
45 | ..S OCXX=$P(OCXX,"*",2,999)
|
---|
46 | .S OCXD0=0 F S OCXD0=$O(^OCXS(+OCXFILE,OCXD0)) Q:'OCXD0 D
|
---|
47 | ..S OCXNAME=$P($G(^OCXS(+OCXFILE,OCXD0,0)),U,1)
|
---|
48 | ..X "I OCXNAME?"_OCXPAT E Q
|
---|
49 | ..I OCXADD D ADDREC(+OCXFILE,OCXD0)
|
---|
50 | ..I 'OCXADD D DELREC(+OCXFILE,OCXD0)
|
---|
51 | ;
|
---|
52 | S OCXD0=$$DIC(+OCXFILE,"EMQ",OCXDIAG,OCXX,OCXSCR,OCXID)
|
---|
53 | I OCXD0 H 1 D
|
---|
54 | .I OCXADD D ADDREC(OCXFILE,OCXD0)
|
---|
55 | .I 'OCXADD D DELREC(OCXFILE,OCXD0)
|
---|
56 | ;
|
---|
57 | Q 1
|
---|
58 | ;
|
---|
59 | ADDON ;
|
---|
60 | ;
|
---|
61 | I $O(^TMP("OCXSEND",$J,"LIST",0)) D
|
---|
62 | .S OCXD0=0 F S OCXD0=$O(^OCXS(860.9,OCXD0)) Q:'OCXD0 D
|
---|
63 | ..I $D(^OCXS(860.9,OCXD0,0)) D CHECK^OCXSENDB(860.9,OCXD0)
|
---|
64 | .D CHECK^OCXSENDB(860.8,"FILE")
|
---|
65 | .D CHECK^OCXSENDB(860.8,"GETDATA")
|
---|
66 | .D CHECK^OCXSENDB(860.8,"DT2INT")
|
---|
67 | .D CHECK^OCXSENDB(860.8,"INT2DT")
|
---|
68 | .D CHECK^OCXSENDB(860.8,"LIST")
|
---|
69 | .D CHECK^OCXSENDB(860.8,"CLIST")
|
---|
70 | .D CHECK^OCXSENDB(860.8,"EQTERM")
|
---|
71 | .D CHECK^OCXSENDB(860.8,"NEWRULE")
|
---|
72 | .D CHECK^OCXSENDB(860.8,"POINTER")
|
---|
73 | .D CHECK^OCXSENDB(860.4,"PATIENT IEN")
|
---|
74 | ;
|
---|
75 | Q
|
---|
76 | ;
|
---|
77 | ADDREC(FILE,REC) ;
|
---|
78 | ;
|
---|
79 | N LLAB
|
---|
80 | S FILE=+FILE,REC=+REC
|
---|
81 | Q:'$D(^OCXS(FILE,REC))
|
---|
82 | Q:$D(^TMP("OCXSEND",$J,"LIST",FILE,REC))
|
---|
83 | S ^TMP("OCXSEND",$J,"LIST",FILE,REC)=$P($G(^OCXS(FILE,REC,0)),U,1)
|
---|
84 | S ^TMP("OCXSEND",$J,"LIST",FILE,"B",$P($G(^OCXS(FILE,REC,0)),U,1),REC)=""
|
---|
85 | W !,$P(^OCXS(FILE,0),U,1)," --> ",$P($G(^OCXS(FILE,REC,0)),U,1)," added to list."
|
---|
86 | ;
|
---|
87 | S LLAB=$TR(FILE,".","")_"^OCXSENDB"
|
---|
88 | X "I $L($T("_LLAB_"))" E Q
|
---|
89 | D @LLAB
|
---|
90 | Q
|
---|
91 | ;
|
---|
92 | DELREC(FILE,REC) ;
|
---|
93 | ;
|
---|
94 | N OCXNAME
|
---|
95 | S OCXNAME=$G(^TMP("OCXSEND",$J,"LIST",+FILE,+REC)) Q:'$L(OCXNAME)
|
---|
96 | K ^TMP("OCXSEND",$J,"LIST",+FILE,+REC)
|
---|
97 | K ^TMP("OCXSEND",$J,"LIST",+FILE,"B",OCXNAME,+REC)
|
---|
98 | W !,OCXNAME," removed from list."
|
---|
99 | Q
|
---|
100 | ;
|
---|
101 | GETFILE() ;
|
---|
102 | ;
|
---|
103 | N OCXDIAG,OCXD0,OCXX,OCXADD
|
---|
104 | S OCXDIAG="Select a"_$S($O(^TMP("OCXSEND",$J,"LIST",0)):"nother",1:"")_" File: "
|
---|
105 | S OCXSCR="I $D(^OCXS(+$P(^(0),U,2),0)),$O(^OCXS(+$P(^(0),U,2),0))"
|
---|
106 | S OCXID="N OCXCNT S OCXCNT=$$CNT^OCXSEND1(+$P(^(0),U,2)) I OCXCNT W ?50,$J(OCXCNT,5),"" selected for transport."""
|
---|
107 | W !!,OCXDIAG R OCXX:DTIME E W " <timeout>",$C(7) Q 0
|
---|
108 | Q:(OCXX[U) 0 Q:'$L(OCXX) 0
|
---|
109 | ;
|
---|
110 | I (OCXX="?") S OCXX="??"
|
---|
111 | ;
|
---|
112 | S OCXD0=$$DIC(1,"EMQ",OCXDIAG,OCXX,OCXSCR,OCXID)
|
---|
113 | ;
|
---|
114 | Q:OCXD0 OCXD0 Q:$L(OCXX) 1 Q 0
|
---|
115 | ;
|
---|
116 | CNT(OCXFILE) ;
|
---|
117 | ;
|
---|
118 | N CNT,OCXD0
|
---|
119 | S OCXD0=0 F CNT=0:1 S OCXD0=$O(^TMP("OCXSEND",$J,"LIST",OCXFILE,OCXD0)) Q:'OCXD0
|
---|
120 | Q CNT
|
---|
121 | ;
|
---|
122 | DIC(OCXDIC,OCXDIC0,OCXDICA,OCXX,OCXDICS,OCXW) ;
|
---|
123 | ;
|
---|
124 | N DIC,X,Y
|
---|
125 | S DIC=$G(OCXDIC) Q:'$L(DIC) -1
|
---|
126 | S DIC(0)=$G(OCXDIC0) S:$L($G(OCXX)) X=OCXX
|
---|
127 | S:$L($G(OCXDICS)) DIC("S")=OCXDICS
|
---|
128 | S:$L($G(OCXDICA)) DIC("A")=OCXDICA
|
---|
129 | S:$L($G(OCXW)) DIC("W")=OCXW
|
---|
130 | D ^DIC Q:(Y<1) 0 Q Y
|
---|
131 | ;
|
---|