Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: ORY130

ORY130.m

Go to the documentation of this file.
  1. ORY130 ; slc/CLA - Special routine to report mirrored and cyclical Kernel Alert surrogates ;12/15/01 16:34
  1. ;;3.0;ORDER ENTRY/RESULTS REPORTING;**130**;Dec 17, 1997
  1. EN ; check for problematic surrogates
  1. N ORUSER,ORSURO,ORCYC
  1. S ORUSER=0
  1. W !!,"Searching for mirrored and circular Kernel Alert surrogates..."
  1. F S ORUSER=$O(^VA(200,ORUSER)) Q:+$G(ORUSER)<.1 D
  1. .S ORSURO=$$CURRSURO^XQALSURO(ORUSER)
  1. .I +$G(ORSURO)>0 D
  1. ..S ORCYC=$$CYCLIC(ORSURO,ORUSER)
  1. ..I $L($P(ORCYC,U))>0 W !!,$P(ORCYC,U),":",!?3,$P(ORCYC,U,2)
  1. W !!,"Surrogate search completed."
  1. Q
  1. CYCLIC(ORSURO,ORUSER) ; check for circular and mirrored surrogates
  1. N ORX,ORMSG,ORF,ORA,ORTMSG
  1. S ORMSG="",ORF=0
  1. S ORTMSG=$P(^VA(200,ORUSER,0),U)_" => "_$P(^VA(200,ORSURO,0),U)
  1. I ORSURO=ORUSER D
  1. .S ORF=1
  1. .S ORMSG=$P(^VA(200,ORUSER,0),U)_" cannot specify "_$P(^VA(200,ORSURO,0),U)_" as surrogate - remove surrogate!"
  1. Q:ORF=1 ORMSG
  1. S ORX=$$CURRSURO^XQALSURO(ORSURO) I +$G(ORX)>0 D
  1. .S ORTMSG=ORTMSG_" => "_$P(^VA(200,ORX,0),U)
  1. .I ORX=ORUSER D
  1. ..S ORF=1
  1. ..S ORMSG="Mirrored surrogates! Remove one or both surrogates"_U_ORTMSG
  1. .F S ORX=$$CURRSURO^XQALSURO(ORX) Q:ORX'>0!(ORF=1) D
  1. ..S ORTMSG=ORTMSG_" => "_$P(^VA(200,ORX,0),U)
  1. ..I $D(ORA(ORX)) S ORF=1 Q
  1. ..S ORA(ORX)=""
  1. ..I $D(ORA(ORUSER)) D
  1. ...S ORMSG="Circular surrogate loop. Remove one or more surrogates"
  1. ...S ORF=1
  1. Q ORMSG_U_ORTMSG