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

AICDPOST.m

Go to the documentation of this file.
  1. AICDPOST ; IHS/OIT/FBD&NKD - ICD-10 LOAD POST-INIT ;
  1. ;;4.0;AICD;;DEC 12, 2014;Build 7
  1. ;
  1. ;
  1. D:'$D(IOM) HOME^%ZIS
  1. ;
  1. ; LOAD ICD-10 GLOBAL VALUES
  1. D MES^XPDUTL($$LJ^XLFSTR("Loading ICD-10 codes into ICD globals...",IOM))
  1. ;
  1. ; DOUBLE-CHECK EXISTENCE OF UPDATE GLOBALS (IN CASE OF RESTART)
  1. S AICDERR=0
  1. S:'$$GCHK^AICDENV("^AICDICD9","ICD DIAGNOSIS update global") AICDERR=2 ; FILE 80
  1. S:'$$GCHK^AICDENV("^AICDICD0","ICD OPERATION/PROCEDURE update global") AICDERR=2 ; FILE 80.1
  1. S:'$$GCHK^AICDENV("^AICDICDS","ICD CODING SYSTEMS update global") AICDERR=2 ; FILE 80.4
  1. I +AICDERR D SORRY(AICDERR) Q
  1. ;
  1. I $D(^ICD9(500001)) D ; CLEANUP FOR RE-INSTALLATIONS - FLUSH PREVIOUS ICD-10 LOADS
  1. . N AICDIEN
  1. . S AICDIEN=499998
  1. . F S AICDIEN=$O(^ICD9(AICDIEN)) Q:+AICDIEN'=AICDIEN K ^ICD9(AICDIEN) ; CLEANING ^ICD9 GLOBAL (FILE 80)
  1. . S AICDIEN=499998
  1. . F S AICDIEN=$O(^ICD0(AICDIEN)) Q:+AICDIEN'=AICDIEN K ^ICD0(AICDIEN) ; CLEANING ^ICD0 GLOBAL (FILE 80.1)
  1. ;
  1. M ^ICD9=^AICDICD9 ; FILE 80
  1. M ^ICD0=^AICDICD0 ; FILE 80.1
  1. M ^ICDS=^AICDICDS ; FILE 80.4
  1. K ^AICDALL(0) ; RESET OVERRIDE
  1. D MES^XPDUTL($$LJ^XLFSTR("ICD-10 global load complete.",IOM))
  1. ;
  1. ; LAST STEP - REINDEX UPDATED FILES
  1. N XREF
  1. D MES^XPDUTL($$LJ^XLFSTR("Re-indexing modified files...",IOM))
  1. ;
  1. ; 1) WHOLE-FILE X-REF KILLS
  1. S XREF="@" ; STARTER SEED VALUE FOR FILE 80 XREF SCAN
  1. F S XREF=$O(^ICD9(XREF)) Q:XREF="" D ; SCAN AND FLUSH ALL XREFS FOR FILE 80
  1. . K ^ICD9(XREF)
  1. S XREF="@" ; STARTER SEED VALUE FOR FILE 80.1 XREF SCAN
  1. F S XREF=$O(^ICD0(XREF)) Q:XREF="" D ; SCAN AND FLUSH ALL XREFS FOR FILE 80.1
  1. . K ^ICD0(XREF)
  1. S XREF="@" ; STARTER SEED VALUE FOR FILE 80.4 XREF SCAN
  1. F S XREF=$O(^ICDS(XREF)) Q:XREF="" D ; SCAN AND FLUSH ALL XREFS FOR FILE 80.4
  1. . K ^ICDS(XREF)
  1. ;
  1. ; 2) SUB-FILE X-REF KILLS
  1. F DIK="^ICD9(","^ICD0(","^ICDS(" D IXALL2^DIK ; KILL LOGIC (TO REMOVE SUBFILE XREFS)
  1. ;
  1. ; 3) COMPLETE RE-INDEX (SET LOGIC)
  1. D MES^XPDUTL($$LJ^XLFSTR(" - File 80 ",IOM))
  1. S DIK="^ICD9(" D IXALL^DIK
  1. D MES^XPDUTL($$LJ^XLFSTR(" - File 80.1 ",IOM))
  1. S DIK="^ICD0(" D IXALL^DIK
  1. D MES^XPDUTL($$LJ^XLFSTR(" - File 80.4 ",IOM))
  1. S DIK="^ICDS(" D IXALL^DIK
  1. ;
  1. ; ENABLE ICD9 UNCODED DX/PX ENTRIES
  1. D UNCODED
  1. ;
  1. ; END OF POST-INIT RUN LOGIC
  1. D MES^XPDUTL($$LJ^XLFSTR("IHS ICD-10 LOOKUP install complete.",IOM))
  1. Q
  1. ;
  1. UNCODED ; ADD/UPDATE ICD9 UNCODED ENTRIES
  1. N AICDC,AICDS,AICDI,AICDF,AICDR,AICDDT
  1. D MES^XPDUTL("Enabling IHS ICD9 Uncoded entries...")
  1. S AICDC=".9999",AICDDT=3141001
  1. F AICDS=1,2 S AICDF=$$FILE^ICDEX(AICDS),AICDR=$$ROOT^ICDEX(AICDS),AICDI=+$$CODEABA^ICDEX(AICDC,,AICDS) D
  1. . N FDA,NEWIEN
  1. . I AICDI<1 D
  1. . . S FDA(AICDF,"+1,",.01)=AICDC,FDA(AICDF,"+1,",1.1)=AICDS
  1. . . F AICDI=499999:-1:0 Q:'$D(@(AICDR_AICDI_")"))
  1. . . Q:'AICDI Q:$D(@(AICDR_AICDI_")"))
  1. . . S NEWIEN(1)=AICDI
  1. . . D UPDATE^DIE(,"FDA","NEWIEN")
  1. . . S AICDI=$G(NEWIEN(1))
  1. . I 'AICDI D MES^XPDUTL("Could not add uncoded "_$$SNAM^ICDEX(AICDS)) Q
  1. . K FDA
  1. . S FDA(AICDF+.066,"?+2,"_AICDI_",",.01)=AICDDT
  1. . S FDA(AICDF+.066,"?+2,"_AICDI_",",.02)=1
  1. . S FDA(AICDF+.067,"?+3,"_AICDI_",",.01)=AICDDT
  1. . S FDA(AICDF+.067,"?+3,"_AICDI_",",1)="UNCODED "_$S(AICDS=2:"OPERATION / PROCEDURE",1:"DIAGNOSIS")
  1. . S FDA(AICDF+.068,"?+4,"_AICDI_",",.01)=AICDDT
  1. . S FDA(AICDF+.068,"?+4,"_AICDI_",",1)="UNCODED "_$S(AICDS=2:"OPERATION / PROCEDURE",1:"DIAGNOSIS")
  1. . D UPDATE^DIE(,"FDA")
  1. D MES^XPDUTL("Done")
  1. ;
  1. Q
  1. SORRY(X) ;
  1. KILL DIFQ
  1. S XPDQUIT=X
  1. D MES^XPDUTL($$LJ^XLFSTR("Aborting post-init process.",IOM))
  1. Q