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

ICD1857.m

Go to the documentation of this file.
  1. ICD1857 ;ISL/KER - ICD*18.0*57 Env Check ;04/21/2014
  1. ;;18.0;DRG Grouper;**57**;Oct 20, 2000;Build 7
  1. ;
  1. ;
  1. ; Global Variables
  1. ; ^%ZOSF("UCI") ICR 10096
  1. ; ^%ZOSF("UCICHECK") ICR 10096
  1. ; ^ICD0(1535) N/A
  1. ; ^ICD0(1548) N/A
  1. ; ^ICD0(366) N/A
  1. ; ^ICD9(11938) N/A
  1. ; ^ICD9(3066) N/A
  1. ; ^TMP("ICDKID") SACC 2.3.2.5.1
  1. ; ^TMP("ICDMSG") SACC 2.3.2.5.1
  1. ;
  1. ; External References
  1. ; $$FMTE^XLFDT ICR 10103
  1. ; $$GET1^DIQ ICR 2056
  1. ; $$IENS^DILF ICR 2054
  1. ; $$NETNAME^XMXUTIL ICR 2734
  1. ; $$PATCH^XPDUTL ICR 10141
  1. ; $$PKG^XPDUTL ICR 10141
  1. ; $$VERSION^XPDUTL ICR 10141
  1. ; $$VER^XPDUTL ICR 10141
  1. ; BMES^XPDUTL ICR 10141
  1. ; EN^DIQ1 ICR 10015
  1. ; FIELD^DID ICR 2052
  1. ; FILE^DID ICR 2052
  1. ; FIND^DIC ICR 2051
  1. ; BMES^XPDUTL ICR 10141
  1. ; FIND^DIC ICR 2051
  1. ; ^DIR ICR 10026
  1. ; ^XMD ICR 10070
  1. ;
  1. ; Local Variables NEWed or KILLed Elsewhere
  1. ; XPDABORT,XPDDIQ,XPDENV,XPDQUIT
  1. ;
  1. ENV ; ICD*18.0*57 Environment Check
  1. ; Checks
  1. S XPDNOQUE=1 N DA,DIC,DIFROM,DIQ,DIR,DIROUT,DIRUT,DR,DTOUT,DUOUT,ICD,ICD10,ICD9,ICDADR,ICDATA,ICDBUILD,ICDC,ICDC1,ICDC2,ICDC3
  1. N ICDC4,ICDCOM,ICDCONT,ICDD,ICDDA,ICDDD,ICDDT,ICDE,ICDENT,ICDF,ICDFI,ICDFULL,ICDFY,ICDG,ICDGBL,ICDI,ICDIEN,ICDIGHF
  1. N ICDINE,ICDINS,ICDLREV,ICDM,ICDMSG,ICDNM,ICDNS,ICDO,ICDOUT,ICDP,ICDPAT,ICDPI,ICDPK,ICDPN,ICDPRI,ICDPT,ICDPTYPE
  1. N ICDQTR,ICDR,ICDREL,ICDREQ,ICDREQP,ICDRT,ICDRV,ICDSCR,ICDSTR,ICDSUB,ICDT,ICDUCI,ICDV,ICDVD,ICDVI,ICDVER,ICDVR
  1. N IEN,X,XCNP,XMDUZ,XMSCR,XMSUB,XMTEXT,XMY,XMZ,Y D IMP K XPDDIQ("XPZ1","B"),XPDDIQ("XPI1","B")
  1. S XPDDIQ("XPZ1","B")="NO",XPDDIQ("XPI1","B")="NO",U="^"
  1. ; User Variables
  1. D:+($$UR)'>0 ET("User not defined (DUZ)")
  1. ; System Variables
  1. D:+($$SY)'>0 ET("Undefined IO variable(s)")
  1. ; Data
  1. N ICDTEST D:+($$GOK)'>0 ET("Cannot locate import data global ^LEXM")
  1. I $D(ICDE) D ABRT Q
  1. ; Version Number
  1. W !,?3,"Checking for ICD Version installations",!
  1. S ICDVER="ICD 18.0" S ICDINS=$$VER(ICDVER) I +ICDINS'>0 D D ABRT Q
  1. . D ET(" Version 18.0 not found. Please install ICD v 18.0")
  1. I +ICDINS>0,$P(ICDINS,"^",1)?7N,$L($P(ICDINS,"^",2)) D
  1. . W !,?5,ICDVER," installed ",$P(ICDINS,"^",2)
  1. S ICDVER="ICD*18.0*57" S ICDINS=$$VER(ICDVER)
  1. I +ICDINS>0,$P(ICDINS,"^",1)?7N,$L($P(ICDINS,"^",2)) D
  1. . W !,?5,ICDVER," installed ",$P(ICDINS,"^",2)
  1. ; Required Patches
  1. D:$O(ICDREQP(0))'>0 IMP I $O(ICDREQP(0))>0 D
  1. . W ! N ICDPAT,ICDI,ICDPN,ICDP,ICDR,ICDC,ICDO,ICDC1,ICDC2,ICDC3,ICDC4,ICD
  1. . S (ICDR,ICDC)=0 S ICDC1=3,(ICDC2,ICDC3,ICDC4)=20,ICDC2=18
  1. . S ICDI=0 F S ICDI=$O(ICDREQP(ICDI)) Q:+ICDI'>0 D
  1. . . S ICDC=ICDC+1,ICDPAT=$G(ICDREQP(ICDI))
  1. . . S:$P(ICDPAT,"^",2)?7N ICDR=ICDR+1,ICDC3=ICDC2+13,ICDC4=ICDC2+36
  1. . S ICDI=0 F S ICDI=$O(ICDREQP(ICDI)) Q:+ICDI'>0 D
  1. . . N ICDPAT,ICDREL,ICDINS,ICDCOM,ICDINE,ICDREQ S ICDREQ=$G(ICDREQP(ICDI))
  1. . . S ICDPAT=$P(ICDREQ,"^",1),ICDREL=$P(ICDREQ,"^",2),ICDCOM=$P(ICDREQ,"^",3)
  1. . . S ICDPN=$$INS(ICDPAT) S ICDINS=$$INSD(ICDPAT),ICDINE=$P(ICDINS,"^",2)
  1. . . W:ICDI=1 !,?3,"Checking for ",?ICDC2,$S(+($G(ICDR))>0:"Released",1:"")
  1. . . W !,?ICDC1,ICDPAT
  1. . . W:ICDREL?7N ?ICDC2,$TR($$FMTE^XLFDT(ICDREL,"5DZ"),"@"," ")
  1. . . I +ICDPN>0 D
  1. . . . S ICDO=+($G(ICDO))+1 W ?ICDC3,"Installed " W:$L($G(ICDINE)) ICDINE
  1. . . . W:+ICDC4>0&(+ICDC4>ICDC3)&($L(ICDCOM)) ?ICDC4,ICDCOM
  1. . . I +ICDPN'>0 D ET((" "_ICDPAT_" not found, please install "_ICDPAT_" before continuing"))
  1. . W:+($G(ICDO))'=ICDC !
  1. ; UCI
  1. I +($$UOK)'>0&('$D(ICDTEST)) W ! D ET("Unable to install in this UCI") G ABRT
  1. D STATUS S ICDCONT=$$CONT I +ICDCONT'>0 W ! D ET(" User aborted install") G ABRT
  1. I $D(ICDE) D ABRT Q
  1. I '$D(ICDFULL)&(+($G(XPDENV))'=1) D QUIT Q
  1. ; Quit, Exit or Abort
  1. QUIT ; Quit Passed Environment Check
  1. K ICDFULL D OK
  1. Q
  1. EXIT ; Exit Failed Environment Check
  1. D:$D(ICDE) ED S XPDQUIT=2 K ICDE,ICDFULL Q
  1. ABRT ; Abort Failed Environment Check, KILL the distribution
  1. D:$D(ICDE) ED S XPDABORT=1,XPDQUIT=1,XPDQUIT("ICD*18.0*57")=1,XPDQUIT("LEX*2.0*80")=1
  1. K ICDE,ICDFULL
  1. Q
  1. SY(X) ; Check System variables
  1. Q:'$D(IO)!('$D(IOF))!('$D(IOM))!('$D(ION))!('$D(IOSL))!('$D(IOST)) 0
  1. Q 1
  1. UR(X) ; Check User variables
  1. Q:'$L($G(DUZ(0))) 0
  1. Q:+($G(DUZ))=0!($$NOTDEF(+$G(DUZ))) 0
  1. Q 1
  1. ET(X) ; Error Text
  1. N ICDI S ICDI=+($G(ICDE(0))),ICDI=ICDI+1,ICDE(ICDI)=" "_$G(X),ICDE(0)=ICDI
  1. Q
  1. ED ; Error Display
  1. N ICDI S ICDI=0 F S ICDI=$O(ICDE(ICDI)) Q:+ICDI=0 D M(ICDE(ICDI))
  1. D M(" ") K ICDE Q
  1. NOTDEF(X) ; Check to see if user is defined
  1. N DA,DR,DIQ,ICD,DIC S DA=+($G(X)),DR=.01,DIC=200,DIQ="ICD" D EN^DIQ1 Q '$D(ICD)
  1. OK ; Environment is OK
  1. N ICDPTYPE,ICDLREV,ICDREQP,ICDBUILD,ICDIGHF,ICDFY,ICDQTR,ICDT
  1. D IMP S ICDT=" Environment "_$S($L(ICDBUILD):("for patch/build "_ICDBUILD_" "),1:"")_"is ok"
  1. D BM(ICDT),M(" ")
  1. Q
  1. MAIL ; Mail global array in message
  1. N DIFROM,ICDPRI,ICDADR,ICDI,ICDM,ICDSUB,XCNP,XMDUZ,XMSCR,XMSUB,XMTEXT,XMY,XMZ,ICDPTYPE,ICDLREV,ICDREQP,ICDBUILD,ICDIGHF,ICDFY,ICDQTR
  1. D IMP K ^TMP("ICDMSG",$J) S ICDSUB="Lexicon/ICD-10 Installation" S:$L($G(ICDBUILD)) ICDSUB=$G(ICDBUILD)_" Installation"
  1. S ICDPRI=$$ADR G:'$L(ICDPRI) MAILQ S ICDPRI="G.ICDINS@"_ICDPRI S ICDADR=$$GET1^DIQ(200,+($G(DUZ)),.01) G:'$L(ICDADR) MAILQ
  1. S XMSUB=ICDSUB S ICDI=0 F S ICDI=$O(^TMP("ICDKID",$J,ICDI)) Q:+ICDI=0 D
  1. . S ICDM=+($O(^TMP("ICDMSG",$J," "),-1))+1,^TMP("ICDMSG",$J,ICDM,0)=$E($G(^TMP("ICDKID",$J,ICDI)),1,79),^TMP("ICDMSG",$J,0)=ICDM
  1. K ^TMP("ICDKID",$J) G:'$D(^TMP("ICDMSG",$J)) MAILQ G:+($G(^TMP("ICDMSG",$J,0)))'>0 MAILQ S XMY(ICDPRI)="",XMY(ICDADR)=""
  1. S XMTEXT="^TMP(""ICDMSG"",$J,",XMDUZ=.5 D ^XMD
  1. MAILQ ; Quit Mail
  1. D KILL K XCNP,XMSCR,XMDUZ,XMY,XMZ,XMSUB,XMY,XMTEXT,XMDUZ
  1. Q
  1. ADR(ICD) ; Mailing Address
  1. N DIC,DTOUT,DUOUT,X,Y S DIC="^DIC(4.2,",DIC(0)="M",(ICD,X)="FO-SLC.MED.VA.GOV" D ^DIC Q:+Y>0 ICD
  1. S DIC="^DIC(4.2,",DIC(0)="M",(ICD,X)="ISC-SLC.MED.VA.GOV" D ^DIC Q:+Y>0 ICD
  1. Q "ISC-SLC.VA.GOV"
  1. KILL ; Kill all ^TMP(
  1. K ^TMP("ICDMSG",$J),^TMP("ICDKID",$J)
  1. Q
  1. CONT(X) ; Continue
  1. N DIR,DIRUT,DIROUT,DTOUT,DUOUT,Y
  1. W !!," WARNING WARNING WARNING WARNING WARNING WARNING WARNING",!
  1. W !," * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *"
  1. W !," * *"
  1. W !," * This Install will delete both the ICD-9 Data Dictionary and data in *"
  1. W !," * files #80 and #80.1. It will then install a new Data Dictionary *"
  1. W !," * for files #80 and #80.1. The new Data Dictionary will accommodate *"
  1. W !," * both the ICD-9 and ICD-10 coding systems. The new data will be *"
  1. W !," * installed by the accompanying Lexicon patch LEX*2.0*80. These *"
  1. W !," * changes will affect this namespace and any other namespace that *"
  1. W !," * the ^ICD9 and ^ICD0 globals are mapped to. If your current *"
  1. W !," * namespace is mapped to another namespace, make sure the other *"
  1. W !," * namespace is also scheduled to be updated by this patch before *"
  1. W !," * continuing. *"
  1. W !," * *"
  1. W !," * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *"
  1. S DIR(0)="YAO",DIR("A")=" Do you wish to continue? (Y/N) "
  1. S DIR("PRE")="S:X[""?"" X=""??""" S (DIR("?"),DIR("??"))="^D CONTH^ICD1857"
  1. W ! D ^DIR S (X,Y)=+($G(Y)) S:Y'>0 XPDABORT=1,XPDQUIT=1,XPDQUIT("ICD*18.0*57")=1,XPDQUIT("LEX*2.0*80")=1
  1. Q X
  1. CONTH ; Continue Help
  1. W !,?5,"Answering 'Yes' will:",!
  1. W !,?7,"1) Delete the Data Dictionaries and the data for the following:",!
  1. W !,?11,"ICD DIAGNOSIS file #80 ^ICD9("
  1. W !,?11,"ICD OPERATION/PROCEDURE file #80.1 ^ICD0(",!
  1. W !,?7,"2) Install the new joint ICD-9/10 Data Dictionaries."
  1. W !,?7,"3) Update legacy ICD-9 APIs and install new ICD-9/10 APIs."
  1. W !,?7,"4) Populate files #80 and #80.1 with ICD-9/10 data (LEX*2.0*80)",!
  1. W !,?7," This affects the current namespace and any "
  1. W !,?7," namespace that the Data Dictionary and files"
  1. W !,?7," #80 and file #80.1 are mapped to.",!
  1. W !,?5,"Answering 'No' will abort the installation of this patch"
  1. Q
  1. UOK(X) ; UCI Ok for Install
  1. N X,Y S X=$$NETNAME^XMXUTIL(.5) Q:X["LEXDEV1.FO-BAYPINES" 1
  1. X ^%ZOSF("UCI") Q:$G(Y)["LEXDEV1" 1
  1. Q 1
  1. GOK(X) ; Input Global Ok for Install
  1. Q:$D(^TMP("LEX*2.0*80",$J,"NODATA")) 1
  1. N ND,OK S OK=1 F ND="^LEXM","^LEXM(80)","^LEXM(80.1)","^LEXM(80.4)" S:'$D(@ND) OK=0
  1. S ND="^LEXM(0,""BUILD"")" S:$G(@ND)'="LEX*2.0*80" OK=0
  1. S X=OK
  1. Q X
  1. VER(X) ;
  1. N DA,ICD,ICDDA,ICDE,ICDI,ICDMSG,ICDNS,ICDOUT,ICDPI,ICDPN,ICDSCR,ICDVI,ICDVD,ICDVI,ICDVR S ICD=$G(X)
  1. S ICDNS=$$PKG^XPDUTL(ICD),ICDVR=$$VER^XPDUTL(ICD),ICDPN=$P(X,"*",3)
  1. Q:'$L(ICDNS) 0 S ICDVR=+ICDVR Q:ICDVR'>0 0 S ICDPN=+ICDPN S:ICDVR'["." ICDVR=ICDVR_".0"
  1. D FIND^DIC(9.4,,.01,"O",ICDNS,10,"C",,,"ICDOUT","ICDMSG") S ICDPI=$G(ICDOUT("DILIST",2,1))
  1. K ICDOUT,ICDMSG Q:+ICDPI'>0 0 Q:'$D(@("^DIC(9.4,"_ICDPI_",22)")) 0
  1. K DA S DA(1)=ICDPI S ICDDA=$$IENS^DILF(.DA)
  1. D FIND^DIC(9.49,ICDDA,".01;1I;2I","O",ICDVR,10,"B",,,"ICDOUT","ICDMSG")
  1. S ICDVD=$G(ICDOUT("DILIST","ID",1,2)) I $E(ICDVD,1,7)?7N&(+ICDPN'>0) D Q X
  1. . S X=$E(ICDVD,1,7)_"^"_$TR($$FMTE^XLFDT($E(ICDVD,1,7),"5DZ"),"@"," ")
  1. S:$E(ICDVD,1,7)'?7N ICDVD=$G(ICDOUT("DILIST","ID",1,1)) I $E(ICDVD,1,7)?7N&(+ICDPN'>0) D Q X
  1. . S X=$E(ICDVD,1,7)_"^"_$TR($$FMTE^XLFDT($E(ICDVD,1,7),"5DZ"),"@"," ")
  1. Q:+ICDPN'>0 0 S ICDVI=$G(ICDOUT("DILIST",2,1)) K ICDOUT,ICDMSG
  1. Q 0
  1. INS(X) ;
  1. N ICD,ICDP,ICDV,ICDI S ICD=$G(X) I $L(ICD,"*")=3 S X=$$PATCH^XPDUTL(ICD) Q X
  1. S ICDP=$$PKG^XPDUTL(ICD),ICDV=$$VER^XPDUTL(ICD),ICDI=$$VERSION^XPDUTL(ICDP)
  1. Q:+ICDV>0&(ICDV=ICDI) 1
  1. Q 0
  1. INSD(X) ; Installed on
  1. N DA,ICD,ICDDA,ICDE,ICDI,ICDMSG,ICDNS,ICDOUT,ICDPI,ICDPN,ICDSCR,ICDVI,ICDVD,ICDVI,ICDVR S ICD=$G(X)
  1. S ICDNS=$$PKG^XPDUTL(ICD),ICDVR=$$VER^XPDUTL(ICD),ICDPN=$P(X,"*",3)
  1. Q:'$L(ICDNS) 0 S ICDVR=+ICDVR Q:ICDVR'>0 0 S ICDPN=+ICDPN S:ICDVR'["." ICDVR=ICDVR_".0"
  1. D FIND^DIC(9.4,,.01,"O",ICDNS,10,"C",,,"ICDOUT","ICDMSG") S ICDPI=$G(ICDOUT("DILIST",2,1))
  1. K ICDOUT,ICDMSG Q:+ICDPI'>0 0 Q:'$D(@("^DIC(9.4,"_ICDPI_",22)")) 0
  1. K DA S DA(1)=ICDPI S ICDDA=$$IENS^DILF(.DA)
  1. D FIND^DIC(9.49,ICDDA,".01;1I;2I","O",ICDVR,10,"B",,,"ICDOUT","ICDMSG")
  1. S ICDVD=$G(ICDOUT("DILIST","ID",1,2)) I $E(ICDVD,1,7)?7N&(+ICDPN'>0) D Q X
  1. . S X=$E(ICDVD,1,7)_"^"_$TR($$FMTE^XLFDT($E(ICDVD,1,7),"5DZ"),"@"," ")
  1. S:$E(ICDVD,1,7)'?7N ICDVD=$G(ICDOUT("DILIST","ID",1,1)) I $E(ICDVD,1,7)?7N&(+ICDPN'>0) D Q X
  1. . S X=$E(ICDVD,1,7)_"^"_$TR($$FMTE^XLFDT($E(ICDVD,1,7),"5DZ"),"@"," ")
  1. Q:+ICDPN'>0 0 S ICDVI=$G(ICDOUT("DILIST",2,1)) K ICDOUT,ICDMSG
  1. Q:+ICDVI'>0 "" Q:'$D(@("^DIC(9.4,"_ICDPI_",22,"_ICDVI_",""PAH"")")) ""
  1. K DA S DA(2)=ICDPI,DA(1)=ICDVI S ICDDA=$$IENS^DILF(.DA)
  1. S ICDSCR="I $G(^DIC(9.4,"_ICDPI_",22,"_ICDVI_",""PAH"",+($G(Y)),0))[""SEQ #"""
  1. D FIND^DIC(9.4901,ICDDA,".01;.02I",,ICDPN,10,"B",ICDSCR,,"ICDOUT","ICDMSG")
  1. S ICDI=$G(ICDOUT("DILIST","ID",1,.02)) I '$L(ICDI) D
  1. . S ICDSCR="" D FIND^DIC(9.4901,ICDDA,".01;.02I",,ICDPN,10,"B",ICDSCR,,"ICDOUT","ICDMSG")
  1. . S ICDI=$G(ICDOUT("DILIST","ID",1,.02))
  1. Q:'$L(ICDI) "" Q:$P(ICDI,".",1)'?7N "" S ICDE=$TR($$FMTE^XLFDT(ICDI,"5DZ"),"@"," ")
  1. Q:'$L(ICDE) "" S X=ICDI_"^"_ICDE
  1. Q X
  1. IMP ; Import names
  1. S ICDREQP(1)="ICD*18.0*6^3030924^CSV"
  1. S ICDREQP(2)="ICD*18.0*12^3041008^CTD"
  1. S ICDREQP(3)="ICD*18.0*15^3050609^Legacy APIs"
  1. S ICDREQP(4)="ICD*18.0*29^3071115^Legacy APIs"
  1. S ICDREQP(5)="LEX*2.0*81^3120214^Fix Cross-Reference"
  1. ;S ICDREQP(6)="PSO*7.0*404^3120814^Global Read of ICD files"
  1. ;S ICDREQP(7)="ONC*2.11*56^3120927^Global Read of ICD files"
  1. ;S ICDREQP(8)="RA*5.0*112^3130417^Global Read of ICD files"
  1. S ICDREQP(6)="ICD*18.0*62^3130501^DRG Grouper Fixes"
  1. ;S ICDREQP(10)="GMPL*2.0*43^3130514^Global Read of ICD files"
  1. ;S ICDREQP(11)="TIU*1.0*267^3130514^Global Read of ICD files"
  1. S ICDREQP(7)="ICD*18.0*69^3130621^DRG Grouper Fixes"
  1. ;S ICDREQP(13)="DG*5.3*870^3130715^Global Read of ICD files"
  1. ;S ICDREQP(14)="IBD*3.0*64^3130903^Global Read of ICD files"
  1. ;S ICDREQP(15)="LR*5.2*429^3130918^Global Read of ICD files"
  1. ;S ICDREQP(16)="ACKQ*3.0*22^3131212^Global Read of ICD files"
  1. ;S ICDREQP(17)="LEX*2.0*94^3140114^FY14 2nd Qtr Update"
  1. S ICDPTYPE="ICD-10 Implementation",ICDLREV=""
  1. S ICDBUILD="ICD*18.0*57",ICDIGHF="",ICDFY="",ICDQTR=""
  1. Q
  1. STATUS ; ICD-9/10 Status in files 80/80.1
  1. N ICD10,ICD9,ICDATA,ICDD,ICDDT,ICDENT,ICDF,ICDFI,ICDIEN,ICDM,ICDNM,ICDNS,ICDPK,ICDPT,ICDRT,ICDRV,ICDUCI,ICDVR,ICDT,ICDX,X,Y
  1. K ICDDD,ICDGBL X ^%ZOSF("UCI") S (ICDNS,ICDUCI)=Y S:ICDNS[","&($L($P(Y,",",1))) ICDNS=$P(Y,",",1)
  1. S ICDX=" Checking "_$S($L(ICDNS):(ICDNS_" "),1:"")_"ICD Data Dictionary/Global/Data Status:" D BM(ICDX)
  1. D FIELD^DID(80.066,60,"N","LABEL","ICD9","ICDM")
  1. D FIELD^DID(80.012,.01,"N","LABEL","ICD10","ICDM")
  1. D BM(" Data Dictionary:"),M(" ")
  1. D:'$D(ICD9) M(" Legacy ICD Data Dictionary does not exist")
  1. D:$D(ICD9) M(" Remnants of the legacy ICD Data Dictionary found") S:$D(ICD9) ICDDD(1)=""
  1. D:'$D(ICD10) M(" ICD-9/ICD-10 Data Dictionary does not exist") S:'$D(ICD10) ICDDD(2)=""
  1. D:$D(ICD10) M(" ICD-9/ICD-10 Data Dictionary found")
  1. D BM(" Global:"),M(" ")
  1. F ICDT=80,80.1 D
  1. . D FILE^DID(ICDT,"N","DATE;GLOBAL NAME;NAME;PACKAGE REVISION DATA;VERSION;LOOKUP PROGRAM","ICDF","ICDM")
  1. . N ICDRT,ICDFI,ICDNM,ICDVR,ICDPK,ICDRV,ICDDT,ICDPT,ICDIEN,ICDENT S ICDRT=$G(ICDF("GLOBAL NAME"))
  1. . S ICDRT=ICDRT_$J(" ",(8-$L(ICDRT))) S ICDFI=$G(ICDT),ICDFI=ICDFI_$J(" ",(6-$L(ICDFI)))
  1. . S ICDNM=$G(ICDF("NAME")),ICDNM=ICDNM_$J(" ",(25-$L(ICDNM))),ICDVR=$G(ICDF("VERSION")) S:+ICDVR'>0 ICDVR="18.0"
  1. . S ICDPK="ICD",ICDRV=$G(ICDF("PACKAGE REVISION DATA")),ICDDT=$P(ICDRV,"^",2),ICDRV=$P(ICDRV,"^",1)
  1. . S ICDPT="" S:$L(ICDPK)&(+($G(ICDVR))>0)&(+($G(ICDRV))>0) ICDPT=ICDPK_"*"_ICDVR_"*"_ICDRV
  1. . S ICDPT=ICDPT_$J(" ",(13-$L(ICDPT))),ICDDT=$S(ICDDT?7N:$TR($$FMTE^XLFDT(ICDDT,"5DZ"),"@"," "),1:"")
  1. . S ICDDT=ICDDT_$J(" ",(12-$L(ICDDT)))
  1. . D:ICDT=80 M(" Global Name # Root Patched Updated")
  1. . D M((" "_ICDNM_ICDFI_ICDRT_ICDPT_ICDDT))
  1. D BM(" Data:") I '$D(^ICD9(3066,"DRG"))&('$D(^ICD9(11938,66,3,"DRG")))&($L($G(^ICD9(3066,0)),"^")'>1) S ICDATA(80,9)="No "
  1. I $D(^ICD9(3066,"DRG"))!($D(^ICD9(11938,66,3,"DRG")))!($L($G(^ICD9(3066,0)),"^")>1) S ICDGBL(1)="",ICDATA(80,9)="Yes"
  1. I '$D(^ICD9(3066,7,1,0)) S ICDGBL(2)="",ICDATA(80,10)="No "
  1. I $D(^ICD9(3066,7,1,0)) S ICDATA(80,10)="Yes"
  1. I '$D(^ICD0(366,"MDC"))&($L($G(^ICD0(1535,0)),"^")'>1) S ICDATA(80.1,9)="No "
  1. I $D(^ICD0(366,"MDC"))!($L($G(^ICD0(1535,0)),"^")>1) S ICDGBL(1)="",ICDATA(80.1,9)="Yes"
  1. I '$D(^ICD0(1548,3,1,0))&($L($G(^ICD0(1548,1)),"^")'>1) S ICDGBL(2)="",ICDATA(80.1,10)="No "
  1. I $D(^ICD0(1548,3,1,0))&($L($G(^ICD0(1548,1)),"^")>1) S ICDATA(80.1,10)="Yes"
  1. S ICDX=" ",ICDX=ICDX_$J(" ",(32-$L(ICDX)))_"Legacy ICD-9"
  1. S ICDX=ICDX_$J(" ",(50-$L(ICDX)))_"Updated ICD-10" D M(ICDX)
  1. S ICDX=" Data Type ",ICDX=ICDX_$J(" ",(32-$L(ICDX)))_"Data Format"
  1. S ICDX=ICDX_$J(" ",(50-$L(ICDX)))_"Data Format" D M(ICDX)
  1. S ICDX=" ICD Diagnosis Data",ICDX=ICDX_$J(" ",(37-$L(ICDX)))_$G(ICDATA(80,9))
  1. S ICDX=ICDX_$J(" ",(55-$L(ICDX)))_$G(ICDATA(80,10)) D M(ICDX)
  1. S ICDX=" ICD Procedure Data",ICDX=ICDX_$J(" ",(37-$L(ICDX)))_$G(ICDATA(80.1,9))
  1. S ICDX=ICDX_$J(" ",(55-$L(ICDX)))_$G(ICDATA(80.1,10)) D M(ICDX)
  1. Q
  1. M(X) ; Blank/Text
  1. D MES^XPDUTL($G(X)) Q
  1. BM(X) ; Blank/Text
  1. D BMES^XPDUTL($G(X)) Q
  1. TRIM(X) ; Trim Spaces
  1. S X=$G(X) F Q:$E(X,1)'=" " S X=$E(X,2,$L(X))
  1. F Q:$E(X,$L(X))'=" " S X=$E(X,1,($L(X)-1))
  1. Q X