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

AUMSCBA.m

Go to the documentation of this file.
  1. AUMSCBA ;IHS/OIT/NKD - SCB UPDATE - FULL TABLE UPDATE 12/10/2013 ;
  1. ;;15.0;TABLE MAINTENANCE;**3**;SEP 9,2014;Build 1
  1. ; 03/12/14 - SPECIAL COUNTY PRE-MERGE
  1. ; - STATION NUMBER FULL UPDATE
  1. ; 05/29/15 - CLINIC FULL UPDATE
  1. ; - QUIET PARAMETER
  1. ;
  1. ; GENERAL FRAMEWORK FOR PROCESSING
  1. ; 1) PRE
  1. ; KILL INDEXES
  1. ; RE-INDEX
  1. ; MERGE DUPLICATES (OPTIONAL)
  1. ; ATTEMPT CODE CORRECTION (OPTIONAL)
  1. ; CREATE TEMP GLOBAL OF FULL TABLE
  1. ; 2) 1ST PASS
  1. ; ITERATE THROUGH LOCAL, BY CODE_NAME
  1. ; MATCH TO TEMP GLOBAL, REMOVE FROM TEMP IF FOUND
  1. ; STORE ENTRIES NOT MATCHED
  1. ; 3) 2ND PASS
  1. ; ITERATE THROUGH STORED ENTRIES, BY CODE
  1. ; MATCH TO TEMP, REMOVE FROM TEMP IF FOUND
  1. ; STORE ENTRIES NOT MATCHED
  1. ; 4) 3RD PASS
  1. ; ITERATE THROUGH STORED ENTRIES, BY NAME
  1. ; MATCH TO TEMP, REMOVE FROM TEMP IF FOUND
  1. ; STORE ENTRIES NOT MATCH
  1. ; 5) END
  1. ; UPDATE REMAINING FROM TEMP
  1. ; INACTIVATE LOCALS NOT MATCHED
  1. Q
  1. ALL ;EP - PROCESS FULL TABLE UPDATE
  1. D AREA,SU,LOC
  1. D ST,CTY,COM
  1. D STNM^AUMSCBA2 ; IHS/OIT/NKD AUM*14.0*2 ADDED CALL TO STNM UPDATE
  1. D CLIN^AUMSCBA2 ; IHS/OIT/NKD AUM*15.0*3 ADDED CALL TO CLIN UPDATE
  1. Q
  1. AREA ; AREA FILE
  1. ; DUP/COMP/CODE/NAME
  1. ; T=TAG,GL=GLOBAL,TGL=TEMP GLOBAL,L=LIST,CNT=COUNT,FL=FILE,INFL=INACTIVE FIELD
  1. N AUMT,AUMGL,AUMTGL,AUML,AUML2,AUML3,AUMCNT,AUMFL,AUMINFL
  1. S AUMT="AREA",AUMGL="^AUTTAREA(",AUMTGL="^TMP(""AUM"","_$J_",""ALL"",""AREA""",AUMFL=9999999.21,AUMINFL=.05
  1. Q:'$D(@(AUMTGL_")"))
  1. D RSLT^AUMSCBD($$REPEAT^XLFSTR("-",20)),RSLT^AUMSCBD("AREA CLEANUP")
  1. D REINDX(AUMGL,"B^C") ; RE-INDEX
  1. D DUP(AUMT,AUMFL,AUMGL,"C") ; MERGE DUP
  1. ;
  1. ; COMPOSITE SEARCH
  1. ; BUILD TEMP GLOBAL X-REF
  1. D BUILD^AUMSCBA(AUMTGL,"COMP","1^2")
  1. ; TEMP GLOBAL COUNT, MATCH TEMP TO LOCAL AND STORE REMAINING
  1. S AUMCNT=$G(@(AUMTGL_",0)")),AUML=$$MATCH(AUMT,AUMGL,AUMTGL,"C","COMP","1")
  1. ; CHECK IF MATCHING HAS FINISHED (0 TEMP OR 0 LOCAL RECORDS REMAIN)
  1. I ($G(@(AUMTGL_",0)"))=0)!(AUML']"") D END(AUMT,AUMGL,AUMTGL,AUML) Q
  1. ;
  1. ; CODE SEARCH
  1. D BUILD^AUMSCBA(AUMTGL,"C","1")
  1. S AUMCNT=$G(@(AUMTGL_",0)")),AUML2=$$MATCH(AUMT,AUMGL,AUMTGL,"C","C",,.AUML)
  1. I ($G(@(AUMTGL_",0)"))=0)!(AUML2']"") D END(AUMT,AUMGL,AUMTGL,AUML2) Q
  1. ;
  1. ; NAME SEARCH
  1. D BUILD^AUMSCBA(AUMTGL,"B","2")
  1. S AUMCNT=$G(@(AUMTGL_",0)")),AUML3=$$MATCH(AUMT,AUMGL,AUMTGL,"B","B",,.AUML2)
  1. D END(AUMT,AUMGL,AUMTGL,AUML3)
  1. ;
  1. Q
  1. SU ; SERVICE UNIT FILE
  1. ; INV CODE/DUP/COMP/CODE/NAME
  1. N AUMT,AUMGL,AUMTGL,AUML,AUML2,AUML3,AUMCNT,AUMFL,AUMINFL,AUMI
  1. S AUMT="SU",AUMGL="^AUTTSU(",AUMTGL="^TMP(""AUM"","_$J_",""ALL"",""SU""",AUMFL=9999999.22,AUMINFL=.05
  1. Q:'$D(@(AUMTGL_")"))
  1. D RSLT^AUMSCBD($$REPEAT^XLFSTR("-",20)),RSLT^AUMSCBD("SERVICE UNIT CLEANUP")
  1. S AUMI=0 F S AUMI=$O(^AUTTSU(AUMI)) Q:'AUMI K:$D(^AUTTSU(AUMI,-9)) ^AUTTSU(AUMI,-9)
  1. ;
  1. K ^TMP("AUM",$J,"INV","SU")
  1. M ^TMP("AUM",$J,"INV","SU","C")=^AUTTSU("C")
  1. ;
  1. D REINDX(AUMGL,"B^C")
  1. ;
  1. N AUMCNT,AUMCNT2
  1. S AUMCNT=0 F S AUMCNT=$O(^TMP("AUM",$J,"INV","SU","C",AUMCNT)) Q:AUMCNT']"" D
  1. . S AUMCNT2=0 F S AUMCNT2=$O(^TMP("AUM",$J,"INV","SU","C",AUMCNT,AUMCNT2)) Q:AUMCNT2']"" D
  1. . . Q:'$D(^AUTTSU(AUMCNT2,0))
  1. . . I AUMCNT'=$P($G(^AUTTSU(AUMCNT2,0)),U,4) D
  1. . . . I $L(AUMCNT)=4 D Q
  1. . . . . N AUMCNT3,AUMCNT4,FDA
  1. . . . . S AUMCNT3=$E(AUMCNT,1,2),AUMCNT4=$O(^AUTTAREA("C",AUMCNT3,0))
  1. . . . . Q:AUMCNT4']""
  1. . . . . S FDA(AUMFL,AUMCNT2_",",.02)=AUMCNT4
  1. . . . . D UPDATE^DIE(,"FDA")
  1. . . . . D RSLT^AUMSCBD(" CORRECTING INVALID ENTRY: "_AUMCNT2_" / TO: "_$$GET1^DIQ(AUMFL,AUMCNT2,.04,"I"))
  1. ;
  1. K ^TMP("AUM",$J,"INV","SU")
  1. ;
  1. D DUP(AUMT,AUMFL,AUMGL,"C")
  1. ;
  1. D BUILD^AUMSCBA(AUMTGL,"COMP","1^2^3")
  1. S AUMCNT=$G(@(AUMTGL_",0)")),AUML=$$MATCH(AUMT,AUMGL,AUMTGL,"C","COMP","1")
  1. I ($G(@(AUMTGL_",0)"))=0)!(AUML']"") D END(AUMT,AUMGL,AUMTGL,AUML) Q
  1. ;
  1. D BUILD^AUMSCBA(AUMTGL,"C","1^2")
  1. S AUMCNT=$G(@(AUMTGL_",0)")),AUML2=$$MATCH(AUMT,AUMGL,AUMTGL,"C","C",,.AUML)
  1. I ($G(@(AUMTGL_",0)"))=0)!(AUML2']"") D END(AUMT,AUMGL,AUMTGL,AUML2) Q
  1. ;
  1. D BUILD^AUMSCBA(AUMTGL,"B","3")
  1. S AUMCNT=$G(@(AUMTGL_",0)")),AUML3=$$MATCH(AUMT,AUMGL,AUMTGL,"B","B",,.AUML2)
  1. D END(AUMT,AUMGL,AUMTGL,AUML3)
  1. ;
  1. Q
  1. LOC ; LOCATION FILE
  1. ; INV CODE/COMP/CODE
  1. N AUMT,AUMGL,AUMGL2,AUMTGL,AUML,AUML2,AUML3,AUMCNT,AUMFL,AUMINFL
  1. S AUMT="LOC",AUMGL="^AUTTLOC(",AUMGL2="^DIC(4,",AUMTGL="^TMP(""AUM"","_$J_",""ALL"",""LOC""",AUMFL=9999999.06,AUMINFL=.27
  1. Q:'$D(@(AUMTGL_")"))
  1. D RSLT^AUMSCBD($$REPEAT^XLFSTR("-",20)),RSLT^AUMSCBD("LOCATION CLEANUP")
  1. ;
  1. K ^TMP("AUM",$J,"INV","LOC")
  1. M ^TMP("AUM",$J,"INV","LOC","C")=^AUTTLOC("C")
  1. ;
  1. D REINDX("^DIC(4,","B^D"),REINDX("^AUTTLOC(","AC^B^C")
  1. ;
  1. N AUMCNT,AUMCNT2
  1. S AUMCNT=0 F S AUMCNT=$O(^TMP("AUM",$J,"INV","LOC","C",AUMCNT)) Q:AUMCNT']"" D
  1. . S AUMCNT2=0 F S AUMCNT2=$O(^TMP("AUM",$J,"INV","LOC","C",AUMCNT,AUMCNT2)) Q:AUMCNT2']"" D
  1. . . Q:'$D(^AUTTLOC(AUMCNT2,0))
  1. . . I AUMCNT'=$P($G(^AUTTLOC(AUMCNT2,0)),U,10) D
  1. . . . I $L(AUMCNT)=6 D Q
  1. . . . . N AUMCNT3,AUMCNT4,FDA
  1. . . . . S AUMCNT3=$E(AUMCNT,1,4),AUMCNT4=$O(^AUTTSU("C",AUMCNT3,0))
  1. . . . . Q:AUMCNT4']""
  1. . . . . S FDA(AUMFL,AUMCNT2_",",.04)=$$GET1^DIQ(9999999.22,AUMCNT4,.02,"I")
  1. . . . . S FDA(AUMFL,AUMCNT2_",",.05)=AUMCNT4
  1. . . . . D UPDATE^DIE(,"FDA")
  1. . . . . D RSLT^AUMSCBD(" CORRECTING INVALID ENTRY: "_AUMCNT2_" / TO: "_$$GET1^DIQ(AUMFL,AUMCNT2,.12,"I"))
  1. ;
  1. K ^TMP("AUM",$J,"INV","LOC")
  1. ;
  1. D BUILD^AUMSCBA(AUMTGL,"COMP","1^2^3^4")
  1. S AUMCNT=$G(@(AUMTGL_",0)")),AUML=$$MATCH(AUMT,AUMGL,AUMTGL,"C","COMP","1")
  1. I ($G(@(AUMTGL_",0)"))=0)!(AUML']"") D END(AUMT,AUMGL,AUMTGL,AUML) Q
  1. ;
  1. D BUILD^AUMSCBA(AUMTGL,"C","1^2^3")
  1. S AUMCNT=$G(@(AUMTGL_",0)")),AUML2=$$MATCH(AUMT,AUMGL,AUMTGL,"C","C",,.AUML)
  1. D END(AUMT,AUMGL,AUMTGL,AUML2)
  1. ;
  1. Q
  1. ST ; STATE FILE
  1. ; DUP/COMP/CODE/NAME
  1. N AUMT,AUMGL,AUMTGL,AUML,AUML2,AUML3,AUMCNT,AUMFL,AUMINFL
  1. S AUMT="STATE",AUMGL="^DIC(5,",AUMTGL="^TMP(""AUM"","_$J_",""ALL"",""STATE""",AUMFL=5,AUMINFL=9999999.02
  1. Q:'$D(@(AUMTGL_")"))
  1. D RSLT^AUMSCBD($$REPEAT^XLFSTR("-",20)),RSLT^AUMSCBD("STATE CLEANUP")
  1. D REINDX(AUMGL,"B^C")
  1. D DUP(AUMT,AUMFL,AUMGL,"C")
  1. ;
  1. D BUILD^AUMSCBA(AUMTGL,"COMP","3^1")
  1. S AUMCNT=$G(@(AUMTGL_",0)")),AUML=$$MATCH(AUMT,AUMGL,AUMTGL,"C","COMP","1")
  1. I ($G(@(AUMTGL_",0)"))=0)!(AUML']"") D END(AUMT,AUMGL,AUMTGL,AUML) Q
  1. ;
  1. D BUILD^AUMSCBA(AUMTGL,"C","3")
  1. S AUMCNT=$G(@(AUMTGL_",0)")),AUML2=$$MATCH(AUMT,AUMGL,AUMTGL,"C","C",,.AUML)
  1. I ($G(@(AUMTGL_",0)"))=0)!(AUML2']"") D END(AUMT,AUMGL,AUMTGL,AUML2) Q
  1. ;
  1. D BUILD^AUMSCBA(AUMTGL,"B","1")
  1. S AUMCNT=$G(@(AUMTGL_",0)")),AUML3=$$MATCH(AUMT,AUMGL,AUMTGL,"B","B",,.AUML2)
  1. D END(AUMT,AUMGL,AUMTGL,AUML3)
  1. ;
  1. Q
  1. CTY ; COUNTY FILE
  1. ; INV CODE/DUP/COMP/CODE
  1. N AUMT,AUMGL,AUMTGL,AUML,AUML2,AUML3,AUMCNT,AUMFL,AUMINFL
  1. S AUMT="CNTY",AUMGL="^AUTTCTY(",AUMTGL="^TMP(""AUM"","_$J_",""ALL"",""CNTY""",AUMFL=9999999.23,AUMINFL=.08
  1. Q:'$D(@(AUMTGL_")"))
  1. D RSLT^AUMSCBD($$REPEAT^XLFSTR("-",20)),RSLT^AUMSCBD("COUNTY CLEANUP")
  1. ;
  1. K ^TMP("AUM",$J,"INV","CTY")
  1. M ^TMP("AUM",$J,"INV","CTY","C")=^AUTTCTY("C")
  1. ;
  1. D REINDX(AUMGL,"B^C")
  1. ;
  1. N AUMCNT,AUMCNT2
  1. S AUMCNT=0 F S AUMCNT=$O(^TMP("AUM",$J,"INV","CTY","C",AUMCNT)) Q:AUMCNT']"" D
  1. . S AUMCNT2=0 F S AUMCNT2=$O(^TMP("AUM",$J,"INV","CTY","C",AUMCNT,AUMCNT2)) Q:AUMCNT2']"" D
  1. . . Q:'$D(^AUTTCTY(AUMCNT2,0))
  1. . . I AUMCNT'=$P($G(^AUTTCTY(AUMCNT2,0)),U,4) D
  1. . . . I $L(AUMCNT)=4 D Q
  1. . . . . N AUMCNT3,AUMCNT4,FDA
  1. . . . . S AUMCNT3=$E(AUMCNT,1,2),AUMCNT4=$O(^DIC(5,"C",AUMCNT3,0))
  1. . . . . Q:AUMCNT4']""
  1. . . . . S FDA(AUMFL,AUMCNT2_",",.02)=AUMCNT4
  1. . . . . D UPDATE^DIE(,"FDA")
  1. . . . . D RSLT^AUMSCBD(" CORRECTING INVALID ENTRY: "_AUMCNT2_" / TO: "_$$GET1^DIQ(AUMFL,AUMCNT2,.04,"I"))
  1. ;
  1. K ^TMP("AUM",$J,"INV","CTY")
  1. ;
  1. D DUP(AUMT,AUMFL,AUMGL,"C")
  1. ;
  1. D BUILD^AUMSCBA(AUMTGL,"COMP","1^2^3")
  1. S AUMCNT=$G(@(AUMTGL_",0)")),AUML=$$MATCH(AUMT,AUMGL,AUMTGL,"C","COMP","1")
  1. I ($G(@(AUMTGL_",0)"))=0)!(AUML']"") D END(AUMT,AUMGL,AUMTGL,AUML) Q
  1. ;
  1. D BUILD^AUMSCBA(AUMTGL,"C","1^2")
  1. S AUMCNT=$G(@(AUMTGL_",0)")),AUML2=$$MATCH(AUMT,AUMGL,AUMTGL,"C","C",,.AUML)
  1. D END(AUMT,AUMGL,AUMTGL,AUML2)
  1. ;
  1. Q
  1. COM ; COMMUNITY FILE
  1. ; INV CODE/COMP/CODE
  1. N AUMT,AUMGL,AUMTGL,AUML,AUML2,AUML3,AUMCNT,AUMFL,AUMINFL
  1. S AUMT="COM",AUMGL="^AUTTCOM(",AUMTGL="^TMP(""AUM"","_$J_",""ALL"",""COM""",AUMFL=9999999.05,AUMINFL=.18
  1. Q:'$D(@(AUMTGL_")"))
  1. D RSLT^AUMSCBD($$REPEAT^XLFSTR("-",20)),RSLT^AUMSCBD("COMMUNITY CLEANUP")
  1. ;
  1. K ^TMP("AUM",$J,"INV","COM")
  1. M ^TMP("AUM",$J,"INV","COM","C")=^AUTTCOM("C")
  1. ;
  1. D REINDX(AUMGL,"B^C")
  1. ;
  1. N AUMCNT,AUMCNT2
  1. S AUMCNT=0 F S AUMCNT=$O(^TMP("AUM",$J,"INV","COM","C",AUMCNT)) Q:AUMCNT']"" D
  1. . S AUMCNT2=0 F S AUMCNT2=$O(^TMP("AUM",$J,"INV","COM","C",AUMCNT,AUMCNT2)) Q:AUMCNT2']"" D
  1. . . Q:'$D(^AUTTCOM(AUMCNT2,0))
  1. . . I AUMCNT'=$P($G(^AUTTCOM(AUMCNT2,0)),U,8) D
  1. . . . I $L(AUMCNT)=7 D Q
  1. . . . . N AUMCNT3,AUMCNT4,FDA
  1. . . . . S AUMCNT3=$E(AUMCNT,1,4),AUMCNT4=$O(^AUTTCTY("C",AUMCNT3,0))
  1. . . . . Q:AUMCNT4']""
  1. . . . . S FDA(AUMFL,AUMCNT2_",",.03)=$$GET1^DIQ(9999999.23,AUMCNT4,.02,"I")
  1. . . . . S FDA(AUMFL,AUMCNT2_",",.02)=AUMCNT4
  1. . . . . D UPDATE^DIE(,"FDA")
  1. . . . . D RSLT^AUMSCBD(" CORRECTING INVALID ENTRY: "_AUMCNT2_" / TO: "_$$GET1^DIQ(AUMFL,AUMCNT2,.08,"I"))
  1. ;
  1. K ^TMP("AUM",$J,"INV","COM")
  1. ;
  1. D BUILD^AUMSCBA(AUMTGL,"COMP","1^2^3^4")
  1. S AUMCNT=$G(@(AUMTGL_",0)")),AUML=$$MATCH(AUMT,AUMGL,AUMTGL,"C","COMP","1")
  1. I ($G(@(AUMTGL_",0)"))=0)!(AUML']"") D END(AUMT,AUMGL,AUMTGL,AUML) Q
  1. ;
  1. D BUILD^AUMSCBA(AUMTGL,"C","1^2^3")
  1. S AUMCNT=$G(@(AUMTGL_",0)")),AUML2=$$MATCH(AUMT,AUMGL,AUMTGL,"C","C",,.AUML)
  1. D END(AUMT,AUMGL,AUMTGL,AUML2)
  1. ;
  1. Q
  1. ;
  1. BUILD(AUMGL,AUMIN,AUMD) ; BUILD X-REFS - TEMP GLOBAL
  1. ; GL=GLOBAL,IN=INDEX,D=PIECES TO BUILD X-REF
  1. N CNT,CNT2
  1. S CNT=0 F S CNT=$O(@(AUMGL_")")@(CNT)) Q:'CNT D
  1. . N AUMDD,AUMDA
  1. . S AUMDD=""
  1. . F CNT2=1:1:$L(AUMD,U) S AUMDD=AUMDD_$E($P(@(AUMGL_")")@(CNT),U,$P(AUMD,U,CNT2)),1,30)
  1. . S AUMDA=AUMGL_","""_AUMIN_""","""_AUMDD_""","_CNT_")"
  1. . S @(AUMDA)=""
  1. Q
  1. ;
  1. MATCH(AUMT,AUMGL,AUMTGL,AUMIN,AUMTIN,AUMC,AUML,AUMQ) ; SEARCH/MATCH/UPDATE - IHS/OIT/NKD AUM*15.0*3 ADDED QUIET
  1. ; T=TAG,GL=GLOBAL,TGL=TEMP GLOBAL,IN=INDEX,TIN=TEMP INDEX,C=ADDITIONAL PIECE FOR X-REF,AUML=IENS TO PROCESS,AUMQ=QUIET
  1. S AUMQ=$G(AUMQ,1) ; IHS/OIT/NKD AUM*15.0*3 QUIET, DEFAULT TO 1
  1. N CNT,CNT2,TMP,TMP2,AUMR
  1. S AUMR=U
  1. ; ITERATE THROUGH LOCAL INDEX
  1. S CNT=0 F S CNT=$O(@(AUMGL_""""_AUMIN_""")")@(CNT)) Q:CNT']"" D
  1. . I AUMGL="^DIC(5,",AUMIN="C",CNT'?2N Q ; EXCEPTION FOR STATE (C X-REF BUILT FROM 2 FIELDS)
  1. . ; ITERATE THROUGH IENS
  1. . S CNT2=0 F S CNT2=$O(@(AUMGL_""""_AUMIN_""")")@(CNT,CNT2)) Q:CNT2']"" D
  1. . . I $D(AUML),(AUML'[("^"_CNT2_"^")) Q ; SKIP OVER CODES NOT IN AUML
  1. . . N TMP,TMP2
  1. . . S TMP=CNT_$S($D(AUMC):$E($P($G(@(AUMGL_CNT2_",0)")),U,AUMC),1,30),1:"") ; BUILD KEY TO COMPARE
  1. . . S:(AUMGL="^AUTTLOC(")&(AUMTIN="COMP") TMP=CNT_$E($P($G(^DIC(4,CNT2,0)),U,AUMC),1,30) ; EXCEPTION FOR LOCATION/INSTITUTION NAME
  1. . . S TMP2=$O(@(AUMTGL_","""_AUMTIN_""")")@(TMP,0)) ; CHECK IF KEY MATCHES IN TEMP GLOBAL
  1. . . I TMP2']"" S AUMR=AUMR_CNT2_"^" Q ; IF NO, ADD TO RESULT AS UNMATCHED
  1. . . ; UPDATE THE ENTRY - IF ENTRY WAS ALREADY INACTIVE, USE THAT DATE INSTEAD
  1. . . I $$GET1^DID(AUMFL,AUMINFL,"","LABEL")]"",$$GET1^DIQ(AUMFL,CNT2,AUMINFL)]"",$P($G(@(AUMTGL_","_TMP2_")")),U,7)]"" D
  1. . . . S $P(@(AUMTGL_","_TMP2_")"),U,7)=17000000+$$GET1^DIQ(AUMFL,CNT2,AUMINFL,"I")
  1. . . D ENTRY^AUMSCBD(AUMT,"ALL",$G(@(AUMTGL_","_TMP2_")")),CNT2,AUMQ) ; IHS/OIT/NKD AUM*15.0*3 QUIET
  1. . . K @(AUMTGL_","_TMP2_")"),@(AUMTGL_","""_AUMTIN_""")")@(TMP,TMP2) ; REMOVE FROM TEMP GLOBAL AND DECREMENT COUNT
  1. . . S @(AUMTGL_",0)")=@(AUMTGL_",0)")-1
  1. S:AUMR=U AUMR="" ; IF NO RESULTS, SET BACK TO EMPTY STRING
  1. K @(AUMTGL_","""_AUMTIN_""")") ; CLEAR OUT REMAINING ENTRIES IN TEMP GLOBAL INDEX
  1. Q AUMR
  1. ;
  1. END(AUMT,AUMGL,AUMTGL,AUML) ; END PROCESSING
  1. ; UPDATE REMAINING IN TEMP GLOBAL
  1. ; INACTIVATE LOCALS NOT MATCHED
  1. N CNT
  1. ; TMP REMAINING
  1. I ($G(@(AUMTGL_",0)"))'=0) D
  1. . S CNT=0 F S CNT=$O(@(AUMTGL_")")@(CNT)) Q:CNT']"" D
  1. . . ; ONCE TO ADD, THEN TO UPDATE/INACTIVATE
  1. . . I $P($G(@(AUMTGL_","_CNT_")")),U,7)]"" D ENTRY^AUMSCBD(AUMT,"ALL",$P($G(@(AUMTGL_","_CNT_")")),U,1,6),,2)
  1. . . D ENTRY^AUMSCBD(AUMT,"ALL",$G(@(AUMTGL_","_CNT_")")),,1)
  1. ; LOCAL REMAINING
  1. I (AUML]"") D
  1. . N CNT,CNT2,FDA,AUMLI
  1. . S CNT2=0
  1. . Q:AUMT="LOC"
  1. . Q:$$GET1^DID(AUMFL,AUMINFL,"","LABEL")']""
  1. . F CNT=1:1:$L(AUML,U) D
  1. . . S AUMLI=$P(AUML,U,CNT)
  1. . . Q:AUMLI']""
  1. . . Q:$$GET1^DIQ(AUMFL,AUMLI,AUMINFL)]""
  1. . . S FDA(AUMFL,AUMLI_",",AUMINFL)=AUMDT,CNT2=CNT2+1
  1. . I $D(FDA) D UPDATE^DIE(,"FDA")
  1. . D RSLT^AUMSCBD(" INACTIVATING "_CNT2_" UNMATCHED LOCAL ENTRIES")
  1. ;
  1. K @(AUMTGL_")")
  1. Q
  1. ;
  1. REINDX(AUMGL,AUMIN) ; RE-INDEX FILE
  1. ; GL=GLOBAL,IN=LIST OF INDEXES
  1. Q:AUMIN']""
  1. N CNT,DIK,DA,DIC
  1. F CNT=1:1:$L(AUMIN,"^") Q:$P(AUMIN,"^",CNT)']"" K @(AUMGL_""""_$P(AUMIN,"^",CNT)_""")")
  1. S DIK=AUMGL
  1. D IXALL^DIK
  1. D ^XBFMK
  1. Q
  1. ;
  1. DUP(AUMT,AUMFL,AUMGL,AUMIN) ; SEARCH FOR DUPLICATE ENTRIES AND MERGE
  1. N AUMCNT,AUMCNT2,AUMTMP,AUMTMP2
  1. S AUMCNT=0 F S AUMCNT=$O(@(AUMGL_""""_AUMIN_""")")@(AUMCNT)) Q:AUMCNT']"" D
  1. . I AUMGL="^DIC(5,",AUMIN="C",AUMCNT'?2N Q ; EXCEPTION FOR STATE (C X-REF BUILT FROM 2 FIELDS)
  1. . S AUMCNT2=0,AUMCNT2=$O(@(AUMGL_""""_AUMIN_""")")@(AUMCNT,AUMCNT2))
  1. . Q:$O(@(AUMGL_""""_AUMIN_""")")@(AUMCNT,AUMCNT2))']""
  1. . S AUMTMP(AUMCNT,AUMCNT2)=""
  1. . F S AUMCNT2=$O(@(AUMGL_""""_AUMIN_""")")@(AUMCNT,AUMCNT2)) Q:AUMCNT2']"" S AUMTMP(AUMCNT,AUMCNT2)=""
  1. S AUMCNT=0 F S AUMCNT=$O(AUMTMP(AUMCNT)) Q:AUMCNT']"" D
  1. . S AUMTMP2=""
  1. . D RSLT^AUMSCBD(" RESOLVING DUPLICATES FOR CODE: "_AUMCNT)
  1. . S AUMCNT2=0 F S AUMCNT2=$O(AUMTMP(AUMCNT,AUMCNT2)) Q:AUMCNT2']"" S AUMTMP2=AUMTMP2_$S($L(AUMTMP2):U,1:"")_AUMCNT2 ;D RSLT^AUMSCBD(" IEN: "_AUMCNT2_$J("",$L(AUMCNT2)-8)_" - 0 NODE: "_$G(@(AUMGL_AUMCNT2_",0)")))
  1. . F AUMCNT2=1:1:$L(AUMTMP2,U)-1 Q:$P(AUMTMP2,U,AUMCNT2)']"" D
  1. . . D MERG(AUMFL,AUMGL,$P(AUMTMP2,U,AUMCNT2),$P(AUMTMP2,U,$L(AUMTMP2,U)))
  1. Q
  1. ;
  1. MERG(AUMFL,AUMGL,AUMFROM,AUMTO) ; COMPARE/MERGE
  1. N DILN,DITM,L
  1. I AUMGL="^AUTTCTY(" D CTYMERG(AUMFROM,AUMTO) S DITM("EXCLUDE",9002073.31)="" ; IHS/OIT/NKD AUM*14.0*2 - SPECIAL COUNTY PRE-MERGE
  1. S DILN=21,DITM=0,L=1
  1. S DITM("DDEF")=2,DITM("DDIF")=1,DITM("DELETE")=""
  1. S DITM("DFF")=AUMFL,DITM("DIC")=AUMGL,DITM("DIMERGE")=1
  1. S DITM("DIT(1)")=AUMFROM,DITM("DIT(2)")=AUMTO
  1. S DITM("NON-INTERACTIVE")="",DITM("NOTALK")="",DITM("REPOINT")=""
  1. D ^DITM2,END^DITM,^XBFMK
  1. Q
  1. ;
  1. ; IHS/OIT/NKD AUM*14.0*2 - SPECIAL COUNTY PRE-MERGE
  1. CTYMERG(AUMFROM,AUMTO) ; CHS SERVICE DELIVERY AREA MERGE
  1. N FDA,AUMCNT,AUMCNT2
  1. S AUMCNT=0 F S AUMCNT=$O(^ACHSSDA(AUMCNT)) Q:'AUMCNT D
  1. . Q:'$D(^ACHSSDA(AUMCNT,30,"B",AUMFROM))
  1. . S AUMCNT2=0 F S AUMCNT2=$O(^ACHSSDA(AUMCNT,30,"B",AUMFROM,AUMCNT2)) Q:'AUMCNT2 D
  1. . . Q:(+$G(^ACHSSDA(AUMCNT,30,AUMCNT2,0))'=AUMFROM)
  1. . . S FDA(9002073.31,AUMCNT2_","_AUMCNT_",",.01)=AUMTO
  1. I $D(FDA) D UPDATE^DIE(,"FDA")
  1. Q