| 1 | USRAEDT ; SLC/JER - Business Rule Edit ;2/28/01
 | 
|---|
| 2 |  ;;1.0;AUTHORIZATION/SUBSCRIPTION;**15**;Jun 20, 1997
 | 
|---|
| 3 | MAIN ; Controls branching
 | 
|---|
| 4 |  N DIC,DA,DIE,DR,DLAYGO,X,Y,DWPK,TIUFPRIV,USRY,USRI S TIUFPRIV=1
 | 
|---|
| 5 |  W !,"Please Enter or Edit a Business Rule:",!
 | 
|---|
| 6 |  S (DIC,DLAYGO)=8930.1,DIC(0)="AEMQL",DIC("A")="Select DOCUMENT DEFINITION: "
 | 
|---|
| 7 |  D ^DIC K DIC,DLAYGO Q:+Y'>0  S DA=+Y
 | 
|---|
| 8 |  S DIE=8930.1,DR="[USR DEFINE AUTHORIZATIONS]"
 | 
|---|
| 9 |  D ^DIE
 | 
|---|
| 10 |  I '$D(DA) W !!,"<Business Rule DELETED>" Q
 | 
|---|
| 11 |  W !!,"You defined the following rule:",!
 | 
|---|
| 12 |  D XLATE(.USRY,DA)
 | 
|---|
| 13 |  S USRI=0 F  S USRI=$O(USRY(USRI)) Q:+USRI'>0  D
 | 
|---|
| 14 |  . W !?(2*USRI),USRY(USRI)
 | 
|---|
| 15 |  Q
 | 
|---|
| 16 | XLATE(Y,DA) ; Translate business rule
 | 
|---|
| 17 |  N STATUS,USRCLASS,USROLE,USRD0,USRI
 | 
|---|
| 18 |  S USRD0=$G(^USR(8930.1,+DA,0))
 | 
|---|
| 19 |  S STATUS=$$STATUS(DA,USRD0),USRCLASS=$$CLASS(DA,USRD0)
 | 
|---|
| 20 |  S USROLE=$$ROLE(DA,USRD0)
 | 
|---|
| 21 |  S Y=$S($E(STATUS,1,2)="UN":"An",$E(STATUS,1)="A":"An",1:"A")
 | 
|---|
| 22 |  S Y=Y_" "_STATUS_" "
 | 
|---|
| 23 |  ;**ID** was " may be "
 | 
|---|
| 24 |  S Y=Y_$$DOCUMENT(DA,USRD0)_" may "_$$ACTION(DA,USRD0)_" by "
 | 
|---|
| 25 |  S Y=Y_USRCLASS_$S($P(USRD0,U,5)="&":" who is also ",$P(USRD0,U,5)="!":" OR ",1:"")
 | 
|---|
| 26 |  S Y=Y_USROLE,Y=$$WRAP^USRLS(Y,75)
 | 
|---|
| 27 |  F USRI=1:1:$L(Y,"|") S Y(USRI)=$P(Y,"|",USRI)
 | 
|---|
| 28 |  Q
 | 
|---|
| 29 | STATUS(DA,USRD0) ; to which status does the rule apply?
 | 
|---|
| 30 |  N Y
 | 
|---|
| 31 |  S Y=$P($G(^USR(8930.6,+$P(USRD0,U,2),0)),U)
 | 
|---|
| 32 |  Q $G(Y)
 | 
|---|
| 33 | DOCUMENT(DA,USRD0) ; to which document does the rule apply?
 | 
|---|
| 34 |  N Y
 | 
|---|
| 35 |  S Y=$$DDHLEV($P($G(^TIU(8925.1,+USRD0,0)),U,4))
 | 
|---|
| 36 |  S Y=Y_$$UP^XLFSTR($$PNAME^TIULC1(+USRD0))
 | 
|---|
| 37 |  I $E(Y,$L(Y))="S" S Y=$E(Y,1,$L(Y)-1)
 | 
|---|
| 38 |  Q $G(Y)
 | 
|---|
| 39 | DDHLEV(USRDTYP) ; External value of Document Definition Type
 | 
|---|
| 40 |  N USRY
 | 
|---|
| 41 |  S USRY=$S(USRDTYP="CL":"(CLASS) ",USRDTYP="DC":"(DOCUMENT CLASS) ",USRDTYP="DOC":"(TITLE) ",1:"")
 | 
|---|
| 42 |  Q $G(USRY)
 | 
|---|
| 43 | ACTION(DA,USRD0) ; to which action does rule apply?
 | 
|---|
| 44 |  ; **100** update with new DOCUMENT VERB fld in 8930.8
 | 
|---|
| 45 |  N Y,ACTNDA,NODE0
 | 
|---|
| 46 |  S ACTNDA=+$P(USRD0,U,3),NODE0=$G(^USR(8930.8,ACTNDA,0))
 | 
|---|
| 47 |  S Y=$P(NODE0,U,6) ;DOCMT VERB
 | 
|---|
| 48 | ACTX Q $G(Y)
 | 
|---|
| 49 |  ;
 | 
|---|
| 50 | CLASS(DA,USRD0) ; to which user class does the rule apply?
 | 
|---|
| 51 |  N Y
 | 
|---|
| 52 |  S Y=$$UP^XLFSTR($$CLNAME^USRLM($P(USRD0,U,4)))
 | 
|---|
| 53 |  ; **ID** was "A ". Omit U to avoid "an User"
 | 
|---|
| 54 |  I $L(Y) S Y=$S("AEIO"[$E(Y):"an ",1:"a ")_Y
 | 
|---|
| 55 |  Q $G(Y)
 | 
|---|
| 56 | ROLE(DA,USRD0) ; to which user role does the rule apply?
 | 
|---|
| 57 |  N Y,USRDA
 | 
|---|
| 58 |  S USRDA=$P(USRD0,U,6),Y=$P($G(^USR(8930.2,+USRDA,0)),U)
 | 
|---|
| 59 |  ;**ID** changed A and An to lower case
 | 
|---|
| 60 |  I $L(Y) S Y=$S($E(Y)="A":"an ",$E(Y)="E":"an ",1:"a ")_Y
 | 
|---|
| 61 |  Q Y
 | 
|---|