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