Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: ORWTPT

ORWTPT.m

Go to the documentation of this file.
  1. ORWTPT ; SLC/STAFF Personal Preference - Teams ;5/4/01 15:55
  1. ;;3.0;ORDER ENTRY/RESULTS REPORTING;**85,243**;Oct 24, 2000;Build 242
  1. ;
  1. GETTEAM(USERS,TEAM) ; RPC
  1. ; returns members of a team
  1. N CNT,NAME,NUM,USER K USERS
  1. S TEAM=+$G(TEAM),CNT=0
  1. S NUM=0 F S NUM=$O(^OR(100.21,TEAM,1,NUM)) Q:NUM<1 S USER=+$G(^(NUM,0)) D
  1. .S NAME=$P($G(^VA(200,USER,0)),U)
  1. .I '$L(NAME) Q
  1. .S CNT=CNT+1
  1. .S USERS(CNT)=USER_U_NAME
  1. Q
  1. ;
  1. TEAMS(TEAMS,USER) ; from ORWTPP
  1. ; returns all teams a user is a member of (exculdes personal lists)
  1. N CNT,NUM,ZERO K TEAMS
  1. S USER=+$G(USER),CNT=0
  1. S NUM=0 F S NUM=$O(^OR(100.21,"C",USER,NUM)) Q:NUM<1 D
  1. .S ZERO=$G(^OR(100.21,NUM,0))
  1. .I $P(ZERO,U,2)="P" Q
  1. .S CNT=CNT+1
  1. .S TEAMS(CNT)=NUM_U_ZERO
  1. Q
  1. ;
  1. PLISTS(TEAMS,USER) ; from ORWTPP
  1. ; returns a user's personal lists
  1. N CNT,NUM,ZERO K TEAMS
  1. S USER=+$G(USER),CNT=0
  1. S NUM=0 F S NUM=$O(^OR(100.21,"C",USER,NUM)) Q:NUM<1 D
  1. .S ZERO=$G(^OR(100.21,NUM,0))
  1. .I $P(ZERO,U,2)'="P" Q
  1. .S CNT=CNT+1
  1. .N VIS S VIS=$P($G(^OR(100.21,NUM,11)),U)
  1. .I '$L(VIS) S VIS=1
  1. .S TEAMS(CNT)=NUM_U_ZERO_U_VIS
  1. Q
  1. ;
  1. PLTEAMS(TEAMS,USER) ; from ORWTPP
  1. ; returns all teams and personal lists for a user
  1. N CNT,NUM,ZERO K TEAMS
  1. S USER=+$G(USER),CNT=0
  1. S NUM=0 F S NUM=$O(^OR(100.21,"C",USER,NUM)) Q:NUM<1 D
  1. .S ZERO=$G(^OR(100.21,NUM,0))
  1. .S CNT=CNT+1
  1. .S TEAMS(CNT)=NUM_U_ZERO
  1. Q
  1. ;
  1. ATEAMS(TEAMS) ; RPC
  1. ; all teams available to subscribe to
  1. N CNT,NAME,NODE,NUM K TEAMS
  1. S CNT=0
  1. S NUM=0 F S NUM=$O(^OR(100.21,NUM)) Q:NUM<1 S NODE=$G(^(NUM,0)) D
  1. .I $P(NODE,U,6)'="Y" Q
  1. .I $P(NODE,U,2)="P" Q
  1. .S CNT=CNT+1
  1. .S TEAMS(CNT)=NUM_U_NODE ;$P(NODE,U)
  1. Q
  1. ;
  1. ADDLIST(OK,VALUE,USER) ; from ORWTPP
  1. ; adds a user to a team
  1. N DA,DIC,DLAYGO,X,Y K DA,DIC,DLAYGO
  1. S USER=+$G(USER)
  1. S DA=USER,DA(1)=+$G(VALUE),OK=1
  1. I '$D(^OR(100.21,DA(1),0)) Q
  1. S DIC(0)="LM"
  1. S DLAYGO=100.212
  1. S X=$P($G(^VA(200,USER,0)),U)
  1. S DIC="^OR(100.21,"_DA(1)_",1,"
  1. D
  1. .L +^OR(100.21,DA(1)):5 I '$T Q
  1. .D ^DIC
  1. .L -^OR(100.21,DA(1))
  1. I Y=-1 S OK=0
  1. K DA,DIC,DLAYGO
  1. Q
  1. ;
  1. REMLIST(OK,VALUE,USER) ; from ORWTPP
  1. ; removes a user from a team
  1. N DA,DIK K DA
  1. S DA=+$G(USER),DA(1)=+$G(VALUE),OK=1
  1. I '$D(^OR(100.21,DA(1),0)) Q
  1. S DIK="^OR(100.21,"_DA(1)_",1,"
  1. D
  1. .L +^OR(100.21,DA(1)):5 I '$T S OK=0 Q
  1. .D ^DIK
  1. .L -^OR(100.21,DA(1))
  1. K DA,DIK
  1. Q
  1. ;
  1. GETCOMBO(VALUES,USER) ; from ORWTPP
  1. ; get user's combo list definition
  1. N CNT,IEN,NAME,NODE,NUM,SOURCE K VALUES
  1. S USER=+$G(USER)
  1. I '$D(^OR(100.24,USER,0)) Q
  1. S CNT=0
  1. S NUM=0 F S NUM=$O(^OR(100.24,USER,.01,NUM)) Q:NUM<1 S NODE=$G(^(NUM,0)) D
  1. .I '$L(NODE) Q
  1. .S IEN=+NODE,SOURCE=$P(NODE,";",2),NAME=""
  1. .D
  1. ..I SOURCE="DIC(42," S SOURCE="WARD",NAME=$P($G(^DIC(42,IEN,0)),U) Q
  1. ..I SOURCE="VA(200," S SOURCE="PROVIDER",NAME=$P($G(^VA(200,IEN,0)),U) Q
  1. ..I SOURCE="DIC(45.7," S SOURCE="SPECIALTY",NAME=$P($G(^DIC(45.7,IEN,0)),U) Q
  1. ..I SOURCE="OR(100.21," S SOURCE="LIST",NAME=$P($G(^OR(100.21,IEN,0)),U) Q
  1. ..I SOURCE="SC(" S SOURCE="CLINIC",NAME=$P($G(^SC(IEN,0)),U) Q
  1. ..I SOURCE="DIC(42," S SOURCE="WARD",NAME=$P($G(^DIC(42,IEN,0)),U) Q
  1. .I '$L(NAME) Q
  1. .S CNT=CNT+1
  1. .S VALUES(CNT)=SOURCE_U_NAME_U_IEN
  1. Q
  1. ;
  1. SETCOMBO(OK,VALUES,USER) ; from ORWTPP
  1. ; set user's combo list definition
  1. N CNT,DA,DIK,IEN,NUM,NVALUES,SOURCE,SOURCENM K NVALUES
  1. S USER=+$G(USER),OK=1
  1. I 'USER Q
  1. S NUM=0 F S NUM=$O(VALUES(NUM)) Q:NUM<1 D
  1. .S IEN=+VALUES(NUM),SOURCENM=$$UP^XLFSTR($P(VALUES(NUM),U,2)),SOURCE=""
  1. .I 'IEN Q
  1. .I SOURCENM="WARD" S SOURCE=";DIC(42,"
  1. .I SOURCENM="PROVIDER" S SOURCE=";VA(200,"
  1. .I SOURCENM="SPECIALTY" S SOURCE=";DIC(45.7,"
  1. .I SOURCENM="LIST" S SOURCE=";OR(100.21,"
  1. .I SOURCENM="CLINIC" S SOURCE=";SC("
  1. .I '$L(SOURCE) Q
  1. .S NVALUES(NUM)=IEN_SOURCE
  1. I '$D(^OR(100.24,USER,0)) D I '$D(^OR(100.24,USER,0)) Q
  1. .L +^OR(100.24,0):5 I '$T S OK=0 Q
  1. .S ^OR(100.24,USER,0)=USER
  1. .S $P(^OR(100.24,0),U,4)=$P(^OR(100.24,0),U,4)+1,$P(^(0),U,3)=USER
  1. .L -^OR(100.24,0)
  1. S CNT=0,DA=USER,DIK="^OR(100.24,"
  1. L +^OR(100.24,USER,0):5 I '$T Q
  1. K ^OR(100.24,USER,.01)
  1. S NUM=0 F S NUM=$O(NVALUES(NUM)) Q:NUM<1 D
  1. .S CNT=CNT+1
  1. .S ^OR(100.24,USER,.01,CNT,0)=NVALUES(NUM)
  1. S ^OR(100.24,USER,.01,0)="^100.241V^"_CNT_U_CNT
  1. D IX1^DIK
  1. L -^OR(100.24,USER,0)
  1. K NVALUES
  1. Q