| 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 | 
|---|