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

ORY57.m

Go to the documentation of this file.
  1. ORY57 ;SLC/MKB - Postinit for patch OR*3*57 ;6/2/99 15:35
  1. ;;3.0;ORDER ENTRY/RESULTS REPORTING;**57**;Dec 17, 1997
  1. ;
  1. POST ; -- task job for EN
  1. ;
  1. N ZTRTN,ZTDTH,ZTIO,ZTDESC,ZTSK,MSG
  1. S ZTRTN="EN^ORY57",ZTDTH=$H,ZTIO="",ZTDESC="Remove bad B xref nodes"
  1. D ^%ZTLOAD S MSG="Task "_$S($G(ZTSK):"#"_ZTSK,1:"not")_" started."
  1. D MES^XPDUTL(MSG)
  1. Q
  1. ;
  1. EN ; -- fix xrefs corrupted by Convert Protocols option
  1. ;
  1. N ORIDX,ORDITEM,ORDMENU,ORDA,ORITM,ORPOS
  1. S ORIDX="^ORD(101.41,""AD"")"
  1. F S ORIDX=$Q(@ORIDX) Q:ORIDX'?1"^ORD(101.41,""AD"",".E D
  1. . S ORDITEM=+$P(ORIDX,",",3),ORDMENU=+$P(ORIDX,",",4),ORDA=+$P(ORIDX,",",5)
  1. . S ORITM=$G(^ORD(101.41,ORDITEM,10,ORDA,0)) Q:$P(ORITM,U,2)'=ORDITEM ;ok
  1. . K ^ORD(101.41,ORDITEM,10,ORDA) D CKDLG ;ck ORDITEM for bad data
  1. . D XREF S ORPOS=+$P(ORITM,U)
  1. . I $D(^ORD(101.41,ORDMENU,10,ORDA,0))!$O(^ORD(101.41,ORDMENU,10,"B",ORPOS,0)) K @ORIDX Q
  1. . S ^ORD(101.41,ORDMENU,10,ORDA,0)=$$XUTL
  1. Q
  1. ;
  1. XREF ; -- rebuild Item B&D xrefs for ORDMENU
  1. N LAST,TOTAL,NODE,DA S (LAST,TOTAL)=0
  1. K ^ORD(101.41,ORDMENU,10,"B"),^ORD(101.41,ORDMENU,10,"D") S DA=0
  1. F S DA=$O(^ORD(101.41,ORDMENU,10,DA)) Q:DA'>0 S NODE=$G(^(DA,0)) D
  1. . S:NODE ^ORD(101.41,ORDMENU,10,"B",+$P(NODE,U),DA)=""
  1. . S:$P(NODE,U,2) ^ORD(101.41,ORDMENU,10,"D",+$P(NODE,U,2),DA)=""
  1. . S LAST=DA,TOTAL=TOTAL+1
  1. S $P(^ORD(101.41,ORDMENU,10,0),U,3,4)=LAST_U_TOTAL
  1. Q
  1. ;
  1. XUTL() ; -- find ORDMENU item in ^XUTL, return data
  1. N ORPITEM,ORPMENU,ORNM,XUTL,OLDPOS,ORY
  1. S ORNM=$P($G(^ORD(101.41,ORDMENU,0)),U),ORPMENU=$$FIND1^DIC(101,,"O",ORNM)
  1. S ORNM=$P($G(^ORD(101.41,ORDITEM,0)),U),ORPITEM=$$FIND1^DIC(101,,"O",ORNM)
  1. S ORY=$P(ORITM,U,1,2) G:(ORPMENU'>0)!(ORPITEM'>0) XQ
  1. S OLDPOS=$$FINDXUTL^ORCMEDT1(ORPMENU,ORPITEM) G:OLDPOS'>0 XQ
  1. S XUTL=$G(^XUTL("XQORM",ORPMENU_";ORD(101,",OLDPOS,0))
  1. S:$P(XUTL,U,2)=ORPITEM ORY=ORY_U_$P(XUTL,U,4)_U_$S($P(XUTL,U,3)'=$P($G(^ORD(101.41,ORDITEM,0)),U,2):$P(XUTL,U,3),1:"")
  1. XQ Q ORY
  1. ;
  1. CKDLG ; -- ck ORDITEM for bad data
  1. Q:'$D(^ORD(101.41,ORDITEM,10)) N ORIDX,OROOT,ORP,ORI
  1. S ORIDX="^ORD(101.41,"_ORDITEM_",10,""A"")",OROOT="^ORD(101.41,"_ORDITEM_",10,"""
  1. F S ORIDX=$Q(@ORIDX) Q:$E(ORIDX,1,$L(OROOT))'=OROOT D
  1. . S ORP=$L(ORIDX,","),ORI=+$P(ORIDX,",",ORP) ;last piece=DA
  1. . I ORI=ORDA K @ORIDX
  1. Q