| 1 | RAXREF ;HISC/DAD-EXECUTE SET AND KILL XREF'S ;8/22/96  15:02 | 
|---|
| 2 | ;;5.0;Radiology/Nuclear Medicine;;Mar 16, 1998 | 
|---|
| 3 | ; REQUIRED VARIABLES | 
|---|
| 4 | ;  RADICT = DATA DICTIONARY NUMBER | 
|---|
| 5 | ;  RAFLD  = FIELD NUMBER IN THE ABOVE DD | 
|---|
| 6 | ;  RAX    = FIELD VALUE TO BE CROSS REFERENCED | 
|---|
| 7 | ;  DA     = DA or DA array | 
|---|
| 8 | ENKILL(RADICT,RAFLD,RAX,DA) ; | 
|---|
| 9 | ; *** Execute a field's cross reference kill logic | 
|---|
| 10 | D CHECK I RAEXIT D EXIT Q | 
|---|
| 11 | S RAXSAV=RAX | 
|---|
| 12 | F RAXREF=0:0 S RAXREF=$O(^DD(RADICT,RAFLD,1,RAXREF)) Q:RAXREF'>0  S X=RAXSAV X:$D(^DD(RADICT,RAFLD,1,RAXREF,2))#2 ^(2) | 
|---|
| 13 | D EXIT | 
|---|
| 14 | Q | 
|---|
| 15 | ENSET(RADICT,RAFLD,RAX,DA) ; | 
|---|
| 16 | ; *** Execute a field's cross reference set logic | 
|---|
| 17 | D CHECK I RAEXIT D EXIT Q | 
|---|
| 18 | S RAXSAV=RAX | 
|---|
| 19 | F RAXREF=0:0 S RAXREF=$O(^DD(RADICT,RAFLD,1,RAXREF)) Q:RAXREF'>0  S X=RAXSAV X:$D(^DD(RADICT,RAFLD,1,RAXREF,1))#2 ^(1) | 
|---|
| 20 | D EXIT | 
|---|
| 21 | Q | 
|---|
| 22 | EXIT ; Kill and quit | 
|---|
| 23 | K RAEXIT,RAXREF,RAXSAV | 
|---|
| 24 | Q | 
|---|
| 25 | CHECK ; Check if parameters are valid | 
|---|
| 26 | S RAEXIT=$S($D(DA)[0:1,$D(RAX)[0:1,$D(RADICT)[0:1,$D(RAFLD)[0:1,RAX="":1,RADICT'>0:1,RAFLD'>0:1,1:0) | 
|---|
| 27 | Q | 
|---|