[613] | 1 | ORY130 ; slc/CLA - Special routine to report mirrored and cyclical Kernel Alert surrogates ;12/15/01 16:34
|
---|
| 2 | ;;3.0;ORDER ENTRY/RESULTS REPORTING;**130**;Dec 17, 1997
|
---|
| 3 | EN ; check for problematic surrogates
|
---|
| 4 | N ORUSER,ORSURO,ORCYC
|
---|
| 5 | S ORUSER=0
|
---|
| 6 | W !!,"Searching for mirrored and circular Kernel Alert surrogates..."
|
---|
| 7 | F S ORUSER=$O(^VA(200,ORUSER)) Q:+$G(ORUSER)<.1 D
|
---|
| 8 | .S ORSURO=$$CURRSURO^XQALSURO(ORUSER)
|
---|
| 9 | .I +$G(ORSURO)>0 D
|
---|
| 10 | ..S ORCYC=$$CYCLIC(ORSURO,ORUSER)
|
---|
| 11 | ..I $L($P(ORCYC,U))>0 W !!,$P(ORCYC,U),":",!?3,$P(ORCYC,U,2)
|
---|
| 12 | W !!,"Surrogate search completed."
|
---|
| 13 | Q
|
---|
| 14 | CYCLIC(ORSURO,ORUSER) ; check for circular and mirrored surrogates
|
---|
| 15 | N ORX,ORMSG,ORF,ORA,ORTMSG
|
---|
| 16 | S ORMSG="",ORF=0
|
---|
| 17 | S ORTMSG=$P(^VA(200,ORUSER,0),U)_" => "_$P(^VA(200,ORSURO,0),U)
|
---|
| 18 | I ORSURO=ORUSER D
|
---|
| 19 | .S ORF=1
|
---|
| 20 | .S ORMSG=$P(^VA(200,ORUSER,0),U)_" cannot specify "_$P(^VA(200,ORSURO,0),U)_" as surrogate - remove surrogate!"
|
---|
| 21 | Q:ORF=1 ORMSG
|
---|
| 22 | S ORX=$$CURRSURO^XQALSURO(ORSURO) I +$G(ORX)>0 D
|
---|
| 23 | .S ORTMSG=ORTMSG_" => "_$P(^VA(200,ORX,0),U)
|
---|
| 24 | .I ORX=ORUSER D
|
---|
| 25 | ..S ORF=1
|
---|
| 26 | ..S ORMSG="Mirrored surrogates! Remove one or both surrogates"_U_ORTMSG
|
---|
| 27 | .F S ORX=$$CURRSURO^XQALSURO(ORX) Q:ORX'>0!(ORF=1) D
|
---|
| 28 | ..S ORTMSG=ORTMSG_" => "_$P(^VA(200,ORX,0),U)
|
---|
| 29 | ..I $D(ORA(ORX)) S ORF=1 Q
|
---|
| 30 | ..S ORA(ORX)=""
|
---|
| 31 | ..I $D(ORA(ORUSER)) D
|
---|
| 32 | ...S ORMSG="Circular surrogate loop. Remove one or more surrogates"
|
---|
| 33 | ...S ORF=1
|
---|
| 34 | Q ORMSG_U_ORTMSG
|
---|