1 | VAQUTL4 ;ALB/JRP - UTILITY ROUTINES;10-JUN-93
|
---|
2 | ;;1.5;PATIENT DATA EXCHANGE;;NOV 17, 1993
|
---|
3 | MAILGRP(NAME,TYPE,SELF,RESTRICT,DESCRIBE) ;ADD/EDIT BASIC MAIL GROUP INFO
|
---|
4 | ;INPUT : NAME - Name of new mail group
|
---|
5 | ; TYPE - Flag indicating type of mail group
|
---|
6 | ; 0 = public (default)
|
---|
7 | ; 1 = private
|
---|
8 | ; SELF - Flag indicating if self enrollment is allowed
|
---|
9 | ; 0 = no
|
---|
10 | ; 1 = yes (default)
|
---|
11 | ; RESTRICT - Flag indicating restriction of mail group
|
---|
12 | ; 0 to 7 - refer to data dictionary for definitions
|
---|
13 | ; 0 (unrestricted) is default
|
---|
14 | ; DESCRIBE - Array containing description (full global ref)
|
---|
15 | ; (optional)
|
---|
16 | ; DUZ - Current user
|
---|
17 | ;OUTPUT : IFN^0 - Entry number of mail group edited
|
---|
18 | ; IFN^1 - Entry number of mail group added
|
---|
19 | ; -1^ErrorText - Error
|
---|
20 | ;NOTES : If editing an existing mail group, the basic information
|
---|
21 | ; already defined in the mail group will be overwritten. The
|
---|
22 | ; current description will be deleted before the new
|
---|
23 | ; description is added. If a new description is not passed,
|
---|
24 | ; the current description will not be deleted.
|
---|
25 | ; : The organizer of the mail group will be the current user.
|
---|
26 | ;
|
---|
27 | ;CHECK INPUT
|
---|
28 | Q:($G(NAME)="") "-1^Did not pass name of mail group to create"
|
---|
29 | Q:(($L(NAME)<3)!($L(NAME)>30)) "-1^Did not pass valid mail group name"
|
---|
30 | S TYPE=+$G(TYPE)
|
---|
31 | S:($G(SELF)="") SELF=1
|
---|
32 | S:(SELF'=1) SELF=0
|
---|
33 | S RESTRICT=+$G(RESTRICT)
|
---|
34 | S:((RESTRICT<0)!(RESTRICT>7)) RESTRICT=0
|
---|
35 | Q:('$G(DUZ)) "-1^You are not identified (NO DUZ)"
|
---|
36 | ;DECLARE VARIABLES
|
---|
37 | N DIC,X,Y,LINE,ADDED,IFN,DIE,DA,DR,DIK,DA
|
---|
38 | ;SEE IF MAIL GROUP ALREADY EXISTS
|
---|
39 | S ADDED=0
|
---|
40 | S DIC="^XMB(3.8,"
|
---|
41 | S DIC(0)="MX"
|
---|
42 | S X=NAME
|
---|
43 | D ^DIC K DIC
|
---|
44 | S IFN=+Y
|
---|
45 | ;CREATE STUB MAIL GROUP
|
---|
46 | I (IFN<0) D Q:(IFN<0) IFN
|
---|
47 | .S ADDED=1
|
---|
48 | .S DIC="^XMB(3.8,"
|
---|
49 | .S DIC(0)="L"
|
---|
50 | .S X=NAME
|
---|
51 | .K DD,DO
|
---|
52 | .D FILE^DICN K DIC
|
---|
53 | .S IFN=+Y
|
---|
54 | .S:(IFN<0) IFN="-1^Unable to create mail group"
|
---|
55 | ;LOCK ENTRY
|
---|
56 | S X=0
|
---|
57 | L +^XMB(3.8,IFN):60 S:('$T) X=1
|
---|
58 | ;COULDN'T LOCK (ERROR)
|
---|
59 | I (X) D Q Y
|
---|
60 | .;ENTRY NOT CREATED
|
---|
61 | .I ('ADDED) S Y="-1^Mail group was being edited by another user" Q
|
---|
62 | .;DELETE ENTRY CREATED
|
---|
63 | .S DIK="^XMB(3.8,"
|
---|
64 | .S DA=IFN
|
---|
65 | .D ^DIK
|
---|
66 | .;COULDN'T DELETE NEW ENTRY
|
---|
67 | .I ($D(^XMB(3.8,IFN))) S Y="-1^Error creating mail group; unable to delete (IFN:"_IFN_")" Q
|
---|
68 | .;NEW ENTRY DELETED
|
---|
69 | .S Y="-1^Error creating mail group; entry deleted"
|
---|
70 | ;EDIT ENTRY
|
---|
71 | S DIE="^XMB(3.8,"
|
---|
72 | S DA=IFN
|
---|
73 | S DR="4///"_$S(TYPE:"private",1:"public")
|
---|
74 | S DR(1,3.8,5)="5////"_DUZ
|
---|
75 | S DR(1,3.8,7)="7///"_$S(SELF:"YES",1:"NO")
|
---|
76 | S X="UNRESTRICTED^ORGANIZER ONLY^LOCAL^ORGANIZER/LOCAL^INDIVIDUALS^INDIV/ORGANIZER^INDIV/LOCAL^INDIV/LOCAL/ORGANIZER"
|
---|
77 | S Y=$P(X,"^",(RESTRICT+1))
|
---|
78 | S:(Y="") Y=$P(X,"^",1)
|
---|
79 | S DR(1,3.8,10)="10///"_Y
|
---|
80 | I ($G(DESCRIBE)'="") I ($D(@DESCRIBE)) D
|
---|
81 | .;DELETES CURRENT DESCRIPTION
|
---|
82 | .S DR(1,3.8,3)="3///@"
|
---|
83 | .;ADDS NEW DESCRIPTION
|
---|
84 | .S LINE=""
|
---|
85 | .F X=1:1 S LINE=$O(@DESCRIBE@(LINE)) Q:(LINE="") D
|
---|
86 | ..S Y=$G(@DESCRIBE@(LINE))
|
---|
87 | ..S:(Y="") Y=" "
|
---|
88 | ..S DR(1,3.8,(300+X))="3///+"_Y
|
---|
89 | K X,Y D ^DIE
|
---|
90 | ;UNLOCK ENTRY AND QUIT
|
---|
91 | L -^XMB(3.8,IFN)
|
---|
92 | Q IFN_"^"_ADDED
|
---|