| [613] | 1 | ENLIB4 ;(WASH IRMFO)/DH-Package Utilities (Facility Equip) ;9.29.98 | 
|---|
|  | 2 | ;;7.0;ENGINEERING;**55**;Aug 17,1993 | 
|---|
|  | 3 | ; | 
|---|
|  | 4 | ADDUS ;  Maintain the utility system field down the parent/child hierarchy | 
|---|
|  | 5 | ;  Called at set of field #82 in file #6914 | 
|---|
|  | 6 | ;  Uses recursion to climb up and down the "AE" x-ref | 
|---|
|  | 7 | ;  Will not maintain local x-refs on field #82 | 
|---|
|  | 8 | N COUNT,PARNT,PRECRSR | 
|---|
|  | 9 | S COUNT=0,PRECRSR="" I $O(^ENG(6914,"AE",DA,0)) D ADRCRSN(DA,PRECRSR) | 
|---|
|  | 10 | I COUNT D EN^DDIOL(COUNT_" subsidiary records were set.") I $D(DJJ(21)) H 5 ; causes the old eng dj screen handler to pause | 
|---|
|  | 11 | Q | 
|---|
|  | 12 | ; | 
|---|
|  | 13 | ADRCRSN(PARNT,PRECRSR) ;  navigate the "AE" x-ref | 
|---|
|  | 14 | N CHILD | 
|---|
|  | 15 | S CHILD=0 F  S CHILD=$O(^ENG(6914,"AE",PARNT,CHILD)) Q:'CHILD  D | 
|---|
|  | 16 | . Q:","_PRECRSR_PARNT_","[(","_CHILD_",")  ; avoid the endless loop | 
|---|
|  | 17 | . S $P(^ENG(6914,CHILD,9),U,12)=X,COUNT=COUNT+1 | 
|---|
|  | 18 | . ;  if child has children then keep digging | 
|---|
|  | 19 | . I $O(^ENG(6914,"AE",CHILD,0)) D ADRCRSN(CHILD,PRECRSR_PARNT_",") | 
|---|
|  | 20 | Q | 
|---|
|  | 21 | ; | 
|---|
|  | 22 | KILLUS ;  Maintain the utility system field down the parent/child hierarchy | 
|---|
|  | 23 | ;  Called at kill | 
|---|
|  | 24 | N PARNT,PRECRSR | 
|---|
|  | 25 | S PRECRSR="" I $O(^ENG(6914,"AE",DA,0)) D KLRCRSN(DA,PRECRSR) | 
|---|
|  | 26 | Q | 
|---|
|  | 27 | ; | 
|---|
|  | 28 | KLRCRSN(PARNT,PRECRSR) ;  navigate the "AE" x-ref, deleting utility systems field of all the children | 
|---|
|  | 29 | N CHILD | 
|---|
|  | 30 | S CHILD=0 F  S CHILD=$O(^ENG(6914,"AE",PARNT,CHILD)) Q:'CHILD  D | 
|---|
|  | 31 | . Q:","_PRECRSR_PARNT_","[(","_CHILD_",")  ; avoid the endless loop | 
|---|
|  | 32 | . S $P(^ENG(6914,CHILD,9),U,12)="" | 
|---|
|  | 33 | . ;  if child has children then keep digging | 
|---|
|  | 34 | . I $O(^ENG(6914,"AE",CHILD,0)) D KLRCRSN(CHILD,PRECRSR_PARNT_",") | 
|---|
|  | 35 | Q | 
|---|
|  | 36 | ; | 
|---|
|  | 37 | EDITY2 ; called upon edit of Y2K category, restricts screen edits | 
|---|
|  | 38 | Q:$P($G(DJJ(25)),U,3)'=71  ; quit if not screen edit | 
|---|
|  | 39 | I $G(V(25))="","FC^NA"[X Q  ; for screen edit to work, existing entry must be null and selected entry must be NA or FC | 
|---|
|  | 40 | D EN^DDIOL("You must use the Y2K module for this edit.") | 
|---|
|  | 41 | S X=$$GET1^DIQ(6914,DA,71,"I") H 5 | 
|---|
|  | 42 | Q | 
|---|
|  | 43 | ;ENLIB4 | 
|---|