1 | ORWTPT ; SLC/STAFF Personal Preference - Teams ;5/4/01 16:01
|
---|
2 | ;;3.0;ORDER ENTRY/RESULTS REPORTING;**85**;Oct 24, 2000
|
---|
3 | ;
|
---|
4 | GETTEAM(USERS,TEAM) ; RPC
|
---|
5 | ; returns members of a team
|
---|
6 | N CNT,NAME,NUM,USER K USERS
|
---|
7 | S TEAM=+$G(TEAM),CNT=0
|
---|
8 | S NUM=0 F S NUM=$O(^OR(100.21,TEAM,1,NUM)) Q:NUM<1 S USER=+$G(^(NUM,0)) D
|
---|
9 | .S NAME=$P($G(^VA(200,USER,0)),U)
|
---|
10 | .I '$L(NAME) Q
|
---|
11 | .S CNT=CNT+1
|
---|
12 | .S USERS(CNT)=USER_U_NAME
|
---|
13 | Q
|
---|
14 | ;
|
---|
15 | TEAMS(TEAMS,USER) ; from ORWTPP
|
---|
16 | ; returns all teams a user is a member of (exculdes personal lists)
|
---|
17 | N CNT,NUM,ZERO K TEAMS
|
---|
18 | S USER=+$G(USER),CNT=0
|
---|
19 | S NUM=0 F S NUM=$O(^OR(100.21,"C",USER,NUM)) Q:NUM<1 D
|
---|
20 | .S ZERO=$G(^OR(100.21,NUM,0))
|
---|
21 | .I $P(ZERO,U,2)="P" Q
|
---|
22 | .S CNT=CNT+1
|
---|
23 | .S TEAMS(CNT)=NUM_U_ZERO
|
---|
24 | Q
|
---|
25 | ;
|
---|
26 | PLISTS(TEAMS,USER) ; from ORWTPP
|
---|
27 | ; returns a user's personal lists
|
---|
28 | N CNT,NUM,ZERO K TEAMS
|
---|
29 | S USER=+$G(USER),CNT=0
|
---|
30 | S NUM=0 F S NUM=$O(^OR(100.21,"C",USER,NUM)) Q:NUM<1 D
|
---|
31 | .S ZERO=$G(^OR(100.21,NUM,0))
|
---|
32 | .I $P(ZERO,U,2)'="P" Q
|
---|
33 | .S CNT=CNT+1
|
---|
34 | .S TEAMS(CNT)=NUM_U_ZERO
|
---|
35 | Q
|
---|
36 | ;
|
---|
37 | PLTEAMS(TEAMS,USER) ; from ORWTPP
|
---|
38 | ; returns all teams and personal lists for a user
|
---|
39 | N CNT,NUM,ZERO K TEAMS
|
---|
40 | S USER=+$G(USER),CNT=0
|
---|
41 | S NUM=0 F S NUM=$O(^OR(100.21,"C",USER,NUM)) Q:NUM<1 D
|
---|
42 | .S ZERO=$G(^OR(100.21,NUM,0))
|
---|
43 | .S CNT=CNT+1
|
---|
44 | .S TEAMS(CNT)=NUM_U_ZERO
|
---|
45 | Q
|
---|
46 | ;
|
---|
47 | ATEAMS(TEAMS) ; RPC
|
---|
48 | ; all teams available to subscribe to
|
---|
49 | N CNT,NAME,NODE,NUM K TEAMS
|
---|
50 | S CNT=0
|
---|
51 | S NUM=0 F S NUM=$O(^OR(100.21,NUM)) Q:NUM<1 S NODE=$G(^(NUM,0)) D
|
---|
52 | .I $P(NODE,U,6)'="Y" Q
|
---|
53 | .I $P(NODE,U,2)="P" Q
|
---|
54 | .S CNT=CNT+1
|
---|
55 | .S TEAMS(CNT)=NUM_U_NODE ;$P(NODE,U)
|
---|
56 | Q
|
---|
57 | ;
|
---|
58 | ADDLIST(OK,VALUE,USER) ; from ORWTPP
|
---|
59 | ; adds a user to a team
|
---|
60 | N DA,DIC,DLAYGO,X,Y K DA,DIC,DLAYGO
|
---|
61 | S USER=+$G(USER)
|
---|
62 | S DA=USER,DA(1)=+$G(VALUE),OK=1
|
---|
63 | I '$D(^OR(100.21,DA(1),0)) Q
|
---|
64 | S DIC(0)="LM"
|
---|
65 | S DLAYGO=100.212
|
---|
66 | S X=$P($G(^VA(200,USER,0)),U)
|
---|
67 | S DIC="^OR(100.21,"_DA(1)_",1,"
|
---|
68 | D
|
---|
69 | .L +^OR(100.21,DA(1)):5 I '$T Q
|
---|
70 | .D ^DIC
|
---|
71 | .L -^OR(100.21,DA(1))
|
---|
72 | I Y=-1 S OK=0
|
---|
73 | K DA,DIC,DLAYGO
|
---|
74 | Q
|
---|
75 | ;
|
---|
76 | REMLIST(OK,VALUE,USER) ; from ORWTPP
|
---|
77 | ; removes a user from a team
|
---|
78 | N DA,DIK K DA
|
---|
79 | S DA=+$G(USER),DA(1)=+$G(VALUE),OK=1
|
---|
80 | I '$D(^OR(100.21,DA(1),0)) Q
|
---|
81 | S DIK="^OR(100.21,"_DA(1)_",1,"
|
---|
82 | D
|
---|
83 | .L +^OR(100.21,DA(1)):5 I '$T S OK=0 Q
|
---|
84 | .D ^DIK
|
---|
85 | .L -^OR(100.21,DA(1))
|
---|
86 | K DA,DIK
|
---|
87 | Q
|
---|
88 | ;
|
---|
89 | GETCOMBO(VALUES,USER) ; from ORWTPP
|
---|
90 | ; get user's combo list definition
|
---|
91 | N CNT,IEN,NAME,NODE,NUM,SOURCE K VALUES
|
---|
92 | S USER=+$G(USER)
|
---|
93 | I '$D(^OR(100.24,USER,0)) Q
|
---|
94 | S CNT=0
|
---|
95 | S NUM=0 F S NUM=$O(^OR(100.24,USER,.01,NUM)) Q:NUM<1 S NODE=$G(^(NUM,0)) D
|
---|
96 | .I '$L(NODE) Q
|
---|
97 | .S IEN=+NODE,SOURCE=$P(NODE,";",2),NAME=""
|
---|
98 | .D
|
---|
99 | ..I SOURCE="DIC(42," S SOURCE="WARD",NAME=$P($G(^DIC(42,IEN,0)),U) Q
|
---|
100 | ..I SOURCE="VA(200," S SOURCE="PROVIDER",NAME=$P($G(^VA(200,IEN,0)),U) Q
|
---|
101 | ..I SOURCE="DIC(45.7," S SOURCE="SPECIALTY",NAME=$P($G(^DIC(45.7,IEN,0)),U) Q
|
---|
102 | ..I SOURCE="OR(100.21," S SOURCE="LIST",NAME=$P($G(^OR(100.21,IEN,0)),U) Q
|
---|
103 | ..I SOURCE="SC(" S SOURCE="CLINIC",NAME=$P($G(^SC(IEN,0)),U) Q
|
---|
104 | ..I SOURCE="DIC(42," S SOURCE="WARD",NAME=$P($G(^DIC(42,IEN,0)),U) Q
|
---|
105 | .I '$L(NAME) Q
|
---|
106 | .S CNT=CNT+1
|
---|
107 | .S VALUES(CNT)=SOURCE_U_NAME_U_IEN
|
---|
108 | Q
|
---|
109 | ;
|
---|
110 | SETCOMBO(OK,VALUES,USER) ; from ORWTPP
|
---|
111 | ; set user's combo list definition
|
---|
112 | N CNT,DA,DIK,IEN,NUM,NVALUES,SOURCE,SOURCENM K NVALUES
|
---|
113 | S USER=+$G(USER),OK=1
|
---|
114 | I 'USER Q
|
---|
115 | S NUM=0 F S NUM=$O(VALUES(NUM)) Q:NUM<1 D
|
---|
116 | .S IEN=+VALUES(NUM),SOURCENM=$$UP^XLFSTR($P(VALUES(NUM),U,2)),SOURCE=""
|
---|
117 | .I 'IEN Q
|
---|
118 | .I SOURCENM="WARD" S SOURCE=";DIC(42,"
|
---|
119 | .I SOURCENM="PROVIDER" S SOURCE=";VA(200,"
|
---|
120 | .I SOURCENM="SPECIALTY" S SOURCE=";DIC(45.7,"
|
---|
121 | .I SOURCENM="LIST" S SOURCE=";OR(100.21,"
|
---|
122 | .I SOURCENM="CLINIC" S SOURCE=";SC("
|
---|
123 | .I '$L(SOURCE) Q
|
---|
124 | .S NVALUES(NUM)=IEN_SOURCE
|
---|
125 | I '$D(^OR(100.24,USER,0)) D I '$D(^OR(100.24,USER,0)) Q
|
---|
126 | .L +^OR(100.24,0):5 I '$T S OK=0 Q
|
---|
127 | .S ^OR(100.24,USER,0)=USER
|
---|
128 | .S $P(^OR(100.24,0),U,4)=$P(^OR(100.24,0),U,4)+1,$P(^(0),U,3)=USER
|
---|
129 | .L -^OR(100.24,0)
|
---|
130 | S CNT=0,DA=USER,DIK="^OR(100.24,"
|
---|
131 | L +^OR(100.24,USER,0):5 I '$T Q
|
---|
132 | K ^OR(100.24,USER,.01)
|
---|
133 | S NUM=0 F S NUM=$O(NVALUES(NUM)) Q:NUM<1 D
|
---|
134 | .S CNT=CNT+1
|
---|
135 | .S ^OR(100.24,USER,.01,CNT,0)=NVALUES(NUM)
|
---|
136 | S ^OR(100.24,USER,.01,0)="^100.241V^"_CNT_U_CNT
|
---|
137 | D IX1^DIK
|
---|
138 | L -^OR(100.24,USER,0)
|
---|
139 | K NVALUES
|
---|
140 | Q
|
---|