[613] | 1 | XQ6B ;SFISC/KLD-KEY DISTRIBUTION MUTUALLY EXCLUSION KEYS;4/05/00
|
---|
| 2 | ;;8.0;KERNEL;**147**;Jul 10, 1995
|
---|
| 3 | ;
|
---|
| 4 | Q
|
---|
| 5 | UNABLE(XQIEN,XQPRSN,XQSTP) ;
|
---|
| 6 | D KEYAVAL Q:XQSTP=1
|
---|
| 7 | D UNABEXC Q:XQSTP=1
|
---|
| 8 | D UNABBLK Q:XQSTP=1
|
---|
| 9 | Q
|
---|
| 10 | KEYAVAL ;Check if key available to users - Self Exclusive
|
---|
| 11 | I $D(^DIC(19.1,XQIEN,5,"B",XQIEN)) D
|
---|
| 12 | . W !!,"Key '"_$$GET1^DIQ(19.1,XQIEN,.01)_"' may not be given to any user at this time"
|
---|
| 13 | . W !,"no action taken",!
|
---|
| 14 | . S XQSTP=1
|
---|
| 15 | Q
|
---|
| 16 | UNABEXC ;Key cannot be given Exclusive with Primary
|
---|
| 17 | N XQCLUDE,XQNUM,XQMKEY,XQTKEY
|
---|
| 18 | S (XQCLUDE,XQNUM,XQMKEY,XQTKEY)=""
|
---|
| 19 | F S XQCLUDE=$O(^DIC(19.1,XQIEN,5,"B",XQCLUDE)) Q:XQCLUDE="" D
|
---|
| 20 | . F S XQNUM=$O(^DIC(19.1,XQIEN,5,"B",XQCLUDE,XQNUM)) Q:XQNUM="" D
|
---|
| 21 | . . I $D(^VA(200,XQPRSN,51,XQCLUDE)) D
|
---|
| 22 | . . . S XQMKEY=$$GET1^DIQ(19.1,XQIEN,.01)
|
---|
| 23 | . . . S XQTKEY=$$GET1^DIQ(19.1,XQCLUDE,.01)
|
---|
| 24 | . . . W !!,"You are not AUTHORIZED key '"_XQMKEY_"' with EXCLUSIVE key '"_XQTKEY_"'"
|
---|
| 25 | . . . W !,"no action taken",!
|
---|
| 26 | . . . S XQSTP=1
|
---|
| 27 | Q
|
---|
| 28 | UNABBLK ;No Exclusive(s) - Verify primary not exclusive with another key(s)
|
---|
| 29 | N XQKEY,XQNBR,XQMKEY,XQTKEY
|
---|
| 30 | S (XQKEY,XQNBR,XQMKEY,XQTKEY)=""
|
---|
| 31 | I $D(^DIC(19.1,XQIEN,0)) D
|
---|
| 32 | . F S XQKEY=$O(^DIC(19.1,"B",XQKEY)) Q:XQKEY="" D
|
---|
| 33 | . . F S XQNBR=$O(^DIC(19.1,"B",XQKEY,XQNBR)) Q:XQNBR="" D
|
---|
| 34 | . . . I $D(^DIC(19.1,XQNBR,5,"B",XQIEN)) D
|
---|
| 35 | . . . . I $D(^VA(200,XQPRSN,51,XQNBR)) D
|
---|
| 36 | . . . . . S XQMKEY=$$GET1^DIQ(19.1,XQIEN,.01)
|
---|
| 37 | . . . . . S XQTKEY=$$GET1^DIQ(19.1,XQNBR,.01)
|
---|
| 38 | . . . . . W !!,"You are not AUTHORIZED key '"_XQMKEY_"' with EXCLUSIVE key '"_XQTKEY_"'"
|
---|
| 39 | . . . . . W !,"no action taken",!
|
---|
| 40 | . . . . . S XQSTP=1
|
---|
| 41 | Q
|
---|
| 42 | EXCLUSE ;Set primary exclusive with another key(s)
|
---|
| 43 | N DIC,DIE,DA,DR,Y
|
---|
| 44 | W !!
|
---|
| 45 | S DIC="19.1",DIC(0)="AEQZ",DIC("A")="Select Primary Allocated Key(s): "
|
---|
| 46 | D ^DIC Q:Y=-1 D
|
---|
| 47 | . W !
|
---|
| 48 | . S DIE="^DIC(19.1,",DR="5",DA=+Y
|
---|
| 49 | . D ^DIE
|
---|
| 50 | Q
|
---|