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

BSDSCDUP.m

Go to the documentation of this file.
  1. BSDSCDUP ;ihs/cmi/maw - BSD Find Duplicate Appointment entries caused by auto rebook and clean them up
  1. ;;5.3;Scheduling;**1016**;Nov 07,2012;Build 20
  1. ;
  1. ;
  1. MAIN ;EP -- main routine entry point
  1. D END
  1. D LOOP
  1. D CLEAN
  1. D SCUP
  1. D END
  1. Q
  1. ;
  1. LOOP ;-- loop through the hospital location file and find duplicates
  1. N BDA,BIEN,BOEN,PAT
  1. S CNT=0
  1. S BDA=0 F S BDA=$O(^SC(BDA)) Q:'BDA D
  1. . S BIEN=3120901 F S BIEN=$O(^SC(BDA,"S",BIEN)) Q:'BIEN D
  1. .. S BOEN=0 F S BOEN=$O(^SC(BDA,"S",BIEN,1,BOEN)) Q:'BOEN D
  1. ... S PAT=+$P($G(^SC(BDA,"S",BIEN,1,BOEN,0)),U)
  1. ... Q:'PAT
  1. ... S:'$D(^MAW($J,BDA,BIEN,PAT)) ^MAW($J,BDA,BIEN,PAT)=0
  1. ... S ^MAW($J,BDA,BIEN,PAT)=^MAW($J,BDA,BIEN,PAT)+1
  1. Q
  1. ;
  1. CLEAN ;-- clean up entries that have only one
  1. N TDA,TIEN,TPAT
  1. S TDA=0 F S TDA=$O(^MAW($J,TDA)) Q:'TDA D
  1. . S TIEN=0 F S TIEN=$O(^MAW($J,TDA,TIEN)) Q:'TIEN D
  1. .. S TPAT=0 F S TPAT=$O(^MAW($J,TDA,TIEN,TPAT)) Q:'TPAT D
  1. ... I $G(^MAW($J,TDA,TIEN,TPAT))<2 K ^MAW($J,TDA,TIEN,TPAT)
  1. Q
  1. ;
  1. SCUP ;-- now go back through the hospital location file and cleanup duplicate entries
  1. W !,"Cleaning up duplicate entries caused by auto rebook"
  1. N SDA,SIEN,SPAT,SOEN
  1. S SDA=0 F S SDA=$O(^MAW($J,SDA)) Q:'SDA D
  1. . S SIEN=0 F S SIEN=$O(^MAW($J,SDA,SIEN)) Q:'SIEN D
  1. .. S SPAT=0 F S SPAT=$O(^MAW($J,SDA,SIEN,SPAT)) Q:'SPAT D
  1. ... S SOEN=0 F S SOEN=$O(^SC(SDA,"S",SIEN,1,SOEN)) Q:'SOEN D
  1. .... I $P($G(^SC(SDA,"S",SIEN,1,SOEN,0)),U)=SPAT D
  1. ..... I $L($P($G(^SC(SDA,"S",SIEN,1,SOEN,0)),U,7))=7 W "." K ^SC(SDA,"S",SIEN,1,SOEN,0)
  1. Q
  1. ;
  1. END ;-- cleanup variables and quit
  1. K ^MAW($J)
  1. Q
  1. ;