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

RMPR8PG1.m

Go to the documentation of this file.
  1. RMPR8PG1 ;VM/RB - check/purge file ^RMPR(668) 'L'/'L1' x-ref not matching zero node info ;03/27/08
  1. ;;3.0;Prosthetics;**163**;13/27/08;Build 9
  1. ;;
  1. Q
  1. AUDIT ; Post suspense purge audit to check for any 'L' and 'L1' x-ref that
  1. ; no longer have an associated master record to ien data that
  1. ; matches File ^RMPR(668,ien,0) data
  1. ;
  1. Q:$D(^XTMP("RMPR8PG1")) ;Will run this index cleanse portion no sooner than 90 days after the last cleansing.
  1. N U,TOT1,TOT2,TOT3,TOT4,TOT5,TOT6,RMPRSS,RMPRDT,RMPRST,RMPRIEN,DFN,RDPT0,SSN,SSN2,RMSTART,RMEND,R0
  1. D NOW^%DTC S RMSTART=%
  1. S ^XTMP("RMPR8PG1","START COMPILE")=RMSTART
  1. S ^XTMP("RMPR8PG1","END COMPILE")="RUNNING"
  1. S ^XTMP("RMPR8PG1",0)=$$FMADD^XLFDT(RMSTART,90)_"^"_RMSTART
  1. 0 ;FIND 668 'L' and 'L1' x-refs with missing master record
  1. S U="^",(TOT1,TOT2,TOT3,TOT4,TOT5,TOT6)=0,RMPRSS=0
  1. 1 F S RMPRSS=$O(^RMPR(668,"L",RMPRSS)),RMPRDT=0 Q:RMPRSS="" D
  1. . F S RMPRDT=$O(^RMPR(668,"L",RMPRSS,RMPRDT)),RMPRST="" Q:RMPRDT="" D
  1. .. F S RMPRST=$O(^RMPR(668,"L",RMPRSS,RMPRDT,RMPRST)),RMPRIEN=0 Q:RMPRST="" D
  1. ... F S RMPRIEN=$O(^RMPR(668,"L",RMPRSS,RMPRDT,RMPRST,RMPRIEN)) Q:RMPRIEN="" D
  1. .... I '$D(^RMPR(668,RMPRIEN,0)) D Q
  1. ..... S ^XTMP("RMPR8PG1","L",0,RMPRSS,RMPRDT,RMPRST,RMPRIEN)="PAT POINTER MISSING IN NODE 0"
  1. ..... S TOT1=TOT1+1
  1. ..... K ^RMPR(668,"L",RMPRSS,RMPRDT,RMPRST,RMPRIEN)
  1. .... S R0=$G(^RMPR(668,RMPRIEN,0)),DFN=$P(R0,U,2)
  1. .... I +$G(DFN)>0,$D(^DPT(+$G(DFN),0)) D Q
  1. ..... S RDPT0=$G(^DPT(DFN,0)),SSN=$P(RDPT0,U,9),SSN2=$E(SSN,8,9)
  1. ..... I RMPRSS'=SSN2!(RMPRDT'=$P($P(R0,U),"."))!(RMPRST'=$P(R0,U,10)) D
  1. ...... S ^XTMP("RMPR8PG1","L",2,RMPRSS,RMPRDT,RMPRST,RMPRIEN)=SSN_U_$P(R0,U)_U_$P(R0,U,10)
  1. ...... S TOT2=TOT2+1
  1. ...... K ^RMPR(668,"L",RMPRSS,RMPRDT,RMPRST,RMPRIEN)
  1. ...... I +R0>0,SSN2>0,$P(R0,U,10)'="" S ^RMPR(668,"L",$P($P(R0,U),"."),SSN2,$P(R0,U,10),RMPRIEN)=""
  1. .... S ^XTMP("RMPR8PG1","L",3,RMPRSS,RMPRDT,RMPRST,RMPRIEN)="BAD DFN IN 0 RECORD"
  1. .... S TOT3=TOT3+1
  1. .... K ^RMPR(668,"L",RMPRSS,RMPRDT,RMPRST,RMPRIEN)
  1. 5 S RMPRSS=0
  1. F S RMPRSS=$O(^RMPR(668,"L1",RMPRSS)),RMPRST="" Q:RMPRSS="" D
  1. . F S RMPRST=$O(^RMPR(668,"L1",RMPRSS,RMPRST)),RMPRIEN=0 Q:RMPRST="" D
  1. .. F S RMPRIEN=$O(^RMPR(668,"L1",RMPRSS,RMPRST,RMPRIEN)) Q:RMPRIEN="" D
  1. ... I '$D(^RMPR(668,RMPRIEN,0)) D Q
  1. .... S ^XTMP("RMPR8PG1","L1",0,RMPRSS,RMPRST,RMPRIEN)="PAT POINTER MISSING IN NODE 0"
  1. .... S TOT4=TOT4+1
  1. .... K ^RMPR(668,"L1",RMPRSS,RMPRST,RMPRIEN)
  1. ... S R0=$G(^RMPR(668,RMPRIEN,0)),DFN=$P(R0,U,2)
  1. ... I +$G(DFN)>0,$D(^DPT(+$G(DFN),0)) D Q
  1. .... S RDPT0=$G(^DPT(DFN,0)),SSN=$P(RDPT0,U,9),SSN2=$E(SSN,8,9)
  1. .... I RMPRSS'=SSN2!(RMPRST'=$P(R0,U,10)) D
  1. ..... S ^XTMP("RMPR8PG1","L1",1,RMPRSS,RMPRST,RMPRIEN)=SSN_U_$P(R0,U)_U_$P(R0,U,10)
  1. ..... S TOT5=TOT5+1
  1. ..... K ^RMPR(668,"L1",RMPRSS,RMPRST,RMPRIEN)
  1. ..... I SSN2>0,$P(R0,U,10)'="" S ^RMPR(668,"L1",SSN2,$P(R0,U,10),RMPRIEN)=""
  1. ... S ^XTMP("RMPR8PG1","L1",2,RMPRSS,RMPRST,RMPRIEN)="BAD DFN IN 0 RECORD"
  1. ... S TOT6=TOT6+1
  1. ... K ^RMPR(668,"L",RMPRSS,RMPRST,RMPRIEN)
  1. 9 W !!!!,"MISSING 'L' 0 NODE TOTAL: ",TOT1
  1. W !,"MISSING 'L' MISMATCH W/DFN TOTAL: ",TOT2
  1. W !,"MISSING 'L' MISMATCH W/O DFN TOTAL: ",TOT3
  1. W !,"MISSING 'L1' 0 NODE TOTAL: ",TOT4
  1. W !,"MISSING 'L1' MISMATCH W/DFN TOTAL: ",TOT5
  1. W !,"MISSING 'L1' MISMATCH W/O DFN TOTAL: ",TOT6
  1. D NOW^%DTC S RMEND=%
  1. S ^XTMP("RMPR8PG1","TOTALS")=TOT1_U_TOT2_U_TOT3_U_TOT4_U_TOT5_U_TOT6
  1. S ^XTMP("RMPR8PG1","END COMPILE")=RMEND
  1. K %
  1. Q