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

BCSVMP.m

Go to the documentation of this file.
  1. BCSVMP ;IHS/CIA/PLS - CSV Mapping Utility ;6-Sep-2006 17:42;PLS
  1. ;;1.0;BCSV;;APR 23, 2010
  1. ;=================================================================
  1. ; Key
  1. ; "BUILT" - When set to 1 indicates entries to be mapped have been built.
  1. ; "DONE" - When set to 1 indicates mapping has been completed for file.
  1. ; "UNMAP" - List of IENS to be mapped
  1. ; "UNMAP"=Count
  1. ; "MAP" - List of mapped IENS - ^("MAP",IHS IEN)=VHA IEN
  1. ; "MAP"=Count
  1. ; "ZERO" - Processing information - reserved for later use
  1. ; "KPT" - List of known fields pointing to file
  1. ;
  1. POST ; Entry Point for KIDS install
  1. N FIL,DLM,DDLM,EXIT,EFLG,OFF
  1. D INIT
  1. F D Q:$G(EFLG)!EXIT
  1. .S FIL=$$NXTFIL(.OFF)
  1. .I $P(FIL,DDLM,2)="" S EFLG=1 Q
  1. .D BLDMAP(FIL) Q:EXIT
  1. .D AUTO(FIL)
  1. Q
  1. ; Mapping EP
  1. ; Input: FLG - 0=manual 1=auto
  1. EN(FLG) ;EP
  1. ;
  1. N FIL,DLM,DDLM,EXIT,EFLG,OFF
  1. D INIT
  1. F D Q:$G(EFLG)!EXIT
  1. .S FIL=$$NXTFIL(.OFF)
  1. .I $P(FIL,DDLM,2)="" S EFLG=1 Q
  1. .I $G(FLG) D
  1. ..D AUTO(FIL)
  1. .E D MAN(FIL)
  1. Q
  1. ; EP to Remap a given file entry
  1. REMAP ;EP
  1. N OFF,TMP,DIR,DDLM,FIL,SIEN,TIEN,STATUS
  1. N SDESC,TDESC,EXIT
  1. S STATUS=1
  1. F D:STATUS<2 REMAP1 Q:STATUS=2
  1. Q
  1. REMAP1 ;
  1. D INIT
  1. N AMFLG S AMFLG="M"
  1. S TMP="" K OFF
  1. S DIR(0)="SO^",DIR("A")="Select file to remap"
  1. F S TMP=$P($$NXTFIL(.OFF),DDLM,2) Q:TMP="" D
  1. .S DIR(0)=DIR(0)_OFF_":"_$$GET1^DID($P(TMP,";",2),,,"NAME")_";"
  1. I $L(DIR(0),":") D
  1. .D ^DIR
  1. .S:$G(DUOUT) STATUS=2
  1. E S STATUS=2 Q
  1. Q:$G(DTOUT)!$G(DUOUT)
  1. S OFF=+Y-1 S FIL=$$NXTFIL(.OFF) Q:$P(FIL,DDLM,2)=""
  1. D SETFILE($P(FIL,DDLM,2),.SRCARY,.TRGARY)
  1. ;I '$$MPDONE(TRGARY("GNAM")) D Q
  1. ;.W !,"Mapping has NOT been completed for the ",$$GET1^DID(SRCARY("NUM"),,,"NAME")," file."
  1. ;.W !,"Please complete the mapping process before attempting to REMAP entries!",!
  1. W !,"Remapping entries for the "_$$GET1^DID(SRCARY("NUM"),,,"NAME")_" file.",!!
  1. F S SIEN=$$DIRLKP(SRCARY("NUM"),$$GETP(SRCARY("XRI"),1,":"),.STATUS) Q:STATUS D
  1. .;Q:STATUS
  1. .; in the event we see code .9999 in file 80, skip re-mapping
  1. .S ITM=$$GET1^DIQ(SRCARY("NUM"),+SIEN,.01)
  1. .I SRCARY("NUM")=80,ITM=.9999 W !,"This item can not be re-mapped.",! Q
  1. .; for entry 333333 in the ICD Operation/Procedure file, skip re-mapping
  1. .I SRCARY("NUM")=80.1,ITM=333333 W !,"This item can not be re-mapped.",! Q
  1. .S SDESC=$$GDESC("S",SRCARY("NUM"),+SIEN,SRCARY("DFLD"))
  1. .I '$D(@$$GLBPATH(TRGARY("GNAM"),"MAP")@(+SIEN)) W !,"This item is currently not mapped, and can not be re-mapped.",! Q
  1. .S TDESC=$$GDESC("T",$$GLBPATH(TRGARY("GNAM"),"DATA"),+@$$GLBPATH(TRGARY("GNAM"),"MAP")@(+SIEN),TRGARY("DFLD"))
  1. .W !,"Item is currently mapped to: "_TDESC,!!
  1. .I $$YN("N","Would you like to REMAP entry") D Q
  1. ..S TIEN=$$DIRLKP($TR($$GLBPATH(TRGARY("GNAM"),"DATA"),")",","),$$GETP(TRGARY("XRI"),1,":"),.STATUS)
  1. ..I STATUS W ! S:STATUS=2 EXIT=1 Q
  1. ..W !,"You have elected to map: "
  1. ..W $$GET1^DIQ(SRCARY("NUM"),+SIEN,.01)_" ("_SDESC_") to ",!
  1. ..W $P(TIEN,U,2)_" ("_$$GDESC("T",$$GLBPATH(TRGARY("GNAM"),"DATA"),+TIEN,TRGARY("DFLD"))_").",!
  1. ..I $$YN("YES") D
  1. ...D UPDMAP(TRGARY("GNAM"),+SIEN,+TIEN,AMFLG)
  1. ...W !,"Remapped!",!
  1. .I $$YN("N","Would you like to UNMAP this entry") D
  1. ..D DELMAP(TRGARY("GNAM"),+SIEN)
  1. ..W !,"Unmapped!",!
  1. Q
  1. ;Build UNMAP node for Target Files
  1. BLDMAP(FIL) ;
  1. N EFLG
  1. N SRCARY,TRGARY
  1. D SETFILE($P(FIL,DDLM,2),.SRCARY,.TRGARY)
  1. D:'$$BUILT(TRGARY("GNAM")) BLDLP
  1. Q
  1. AUTO(FIL) ;
  1. ; SFN=Source File Number ; TFN=Target File Number
  1. N SFN,TFN,TFNM,TXRI,EFLG
  1. N SRCARY,TRGARY
  1. S EFLG=0
  1. D SETFILE($P(FIL,DDLM,2),.SRCARY,.TRGARY)
  1. I '$$MPDONE(TRGARY("GNAM")) D
  1. .I $$AMAPDN(TRGARY("GNAM")) W !,"Automapping has already been completed for the ",$$GET1^DID(SRCARY("NUM"),,,"NAME")," file.",! S EFLG=1 Q
  1. .D LOOP
  1. .S @$$GLBPATH(TRGARY("GNAM"),"AUTO")=1
  1. Q:EFLG
  1. W !,"Automapping has "_$S('$$AMAPDN(TRGARY("GNAM")):"not ",1:"")_"been completed for the ",$$GET1^DID(SRCARY("NUM"),,,"NAME")," file.",!
  1. Q
  1. MAN(FIL) ;
  1. N IEN,SGLB,TGLB,SDATA,DIR,ITM,Y,SDESC,TDESC,FUNC,CHKNEW
  1. N DIROUT,DUOUT,DTOUT,D,STATUS,SRCARY,TRGARY,SIFLG,TIFLG
  1. N AMFLG S AMFLG="M"
  1. D SETFILE($P(FIL,DDLM,2),.SRCARY,.TRGARY)
  1. ; Do not allow manual mapping for DRG file. This file is DINUM'd and the entries should be brought in as they are in the VA data set.
  1. I SRCARY("NUM")=80.2 Q
  1. S (SDESC,TDESC)=""
  1. I '$$AMAPDN(TRGARY("GNAM")) D Q
  1. .W !,"Automapping has not been completed for the ",$$GET1^DID(SRCARY("NUM"),,,"NAME")," file.",!
  1. .W "Please use the AutoMapping option.",!
  1. I $$MPDONE(TRGARY("GNAM")) D Q
  1. .W !,"Mapping has been completed for the ",$$GET1^DID(SRCARY("NUM"),,,"NAME")," file.",!
  1. W !,"Enter '^' to SKIP item; '^^' to skip to next file."
  1. W !!,"Matching entries for the ",$$GET1^DID(SRCARY("NUM"),,,"NAME")," file.",!
  1. S SGLB=$$GLBPATH(TRGARY("GNAM"),"UNMAP")
  1. S IEN=0 F S IEN=$O(@SGLB@(IEN)) Q:'IEN D Q:$G(EX)
  1. RS .S EX=0
  1. .S ITM=$$GET1^DIQ(SRCARY("NUM"),IEN,.01)
  1. .; in the event we see code .9999 in file 80, skip mapping
  1. .I SRCARY("NUM")=80,ITM=.9999 Q
  1. .; for entry 333333 in the ICD Operation/Procedure file, skip mapping
  1. .I SRCARY("NUM")=80.1,ITM=333333 Q
  1. .; if this is an entry that was newly added by BCSV, do not allow manual map
  1. .S CHKNEW=$TR($$GLBPATH(TRGARY("GNAM"),"NEW"),")",",")_IEN_")" I $D(@CHKNEW) Q
  1. .S SDESC=$$GDESC("S",SRCARY("NUM"),IEN,SRCARY("DFLD"))
  1. .S SIFLG=$$GET1^DIQ(SRCARY("NUM"),IEN,SRCARY("IFLD"),"I")
  1. .S:'SIFLG SIFLG=$$GET1^DIQ(SRCARY("NUM"),IEN,SRCARY("IDT"),"I")
  1. .I SIFLG Q
  1. .W !,"Please select a matching CSV file entry for the following LOCAL item:",!
  1. .W ITM_" ("_SDESC_") "_"Inactive: "_$S(SIFLG:"Yes",1:"No"),!
  1. .W !,"Item failed automapping with the following message:"
  1. .W !,?5,$P(@SGLB@(IEN),U,2),!
  1. .S Y=$$DIRLKP($TR($$GLBPATH(TRGARY("GNAM"),"DATA"),")",","),$$GETP(TRGARY("XRI"),1,":"),.STATUS)
  1. .S TIFLG=$$GET1^DIQ(TRGARY("NUM"),+Y,TRGARY("IFLD"),"I")
  1. .I STATUS W ! S:STATUS=2 EX=1 Q
  1. .W !!,"You have elected to map: "
  1. .W ITM_" ("_SDESC_") ","Inactive: ",$S(SIFLG:"Yes",1:"No")," to ",!
  1. .W $P(Y,U,2)_" ("_$$GDESC("T",$$GLBPATH(TRGARY("GNAM"),"DATA"),+Y,TRGARY("DFLD"))_") ","Inactive: ",$S(TIFLG:"Yes",1:"No"),".",!
  1. .I $$YN("YES") D
  1. ..D UPDMAP(TRGARY("GNAM"),IEN,+Y,AMFLG)
  1. .; In the event the user does not want to map the selected item, prompt them again. They will have to '^' to skip the item. This needs
  1. .; to be in place in the event that the logic finds only one match automatically. It attempts to force the user to map, and if the user
  1. .; selects 'NO', it will skip them to the next item. They may not want to go on to the next item just yet.
  1. .E G RS
  1. .W !!
  1. I '$$UNMAPPED(TRGARY("GNAM")) D
  1. .S @$$GLBPATH(TRGARY("GNAM"),"DONE")=1
  1. .W !,"Mapping has been completed for the ",$$GET1^DID(SRCARY("NUM"),,,"NAME")," file.",!
  1. Q
  1. ; Loop through entries and build UNMAP node
  1. BLDLP ;
  1. N IEN,TGP,SGLB
  1. S SGLB=$$GLB(SRCARY("NUM"))
  1. S TGP=$$GLBPATH(TRGARY("GNAM"),"UNMAP")
  1. S IEN=0 F S IEN=$O(@SGLB@(IEN)) Q:'IEN D
  1. .S @TGP@(IEN)=0
  1. .S @TGP=+$G(@TGP)+1 ; Update UNMAP count
  1. ; Set BUILT node when completed
  1. S @$$GLBPATH(TRGARY("GNAM"),"BUILT")=1
  1. Q
  1. ; Loop through file entries
  1. ; SFN, TFN and TFNM must be defined
  1. LOOP ;
  1. Q:'SRCARY("NUM")!'TRGARY("NUM")!('$L(TRGARY("GNAM")))
  1. N IEN,TGNM,SDATA,SGLB,TDATA,TIEN,MGNM
  1. S AMFLG="A"
  1. S SGLB=$$GLB(SRCARY("NUM"))
  1. S TGNM=$NA(^XCSV(TRGARY("GNAM"),"DATA"))
  1. S MGNM=$NA(^XCSV(TRGARY("GNAM"),"MAP"))
  1. ;
  1. S IEN=0 F S IEN=$O(@SGLB@(IEN)) Q:'IEN D
  1. .S SDATA=$G(@SGLB@(IEN,0))
  1. .Q:SDATA=""
  1. .S VAL=$P(SDATA,U)
  1. .S TIEN=$$IENLKP(TGNM,VAL,IEN,TRGARY("XRI"))
  1. .; AMFLG - indicates Auto or Manual mapping
  1. .D UPDMAP(TRGARY("GNAM"),IEN,TIEN,AMFLG)
  1. Q
  1. ; Return Next file
  1. NXTFIL(CUR) ;EP
  1. S CUR=+$G(CUR)+1
  1. Q CUR_DDLM_$P($T(FILES+$G(CUR)),";;",2)
  1. INIT ;EP
  1. S DLM=";",DDLM=";;",EXIT=0
  1. Q
  1. ; Setup variable for given file
  1. ; Input: SA - by reference = Source File Array
  1. ; TA - by reference = Target File Array
  1. SETFILE(VAL,SA,TA) ;EP
  1. N SRC,TRG
  1. S SRC=$$GETP(VAL,1,"/")
  1. S TRG=$$GETP($$GETP(VAL,2,"/"),1,"||")
  1. S SA("FNAM")=$$GETP($$GETP(VAL,2,"||"),1,"/") ; Source File Name
  1. S SA("GNAM")=$$GETP(SRC,1,DLM) ; Source File global name
  1. S SA("NUM")=$$GETP(SRC,2,DLM) ; Source File Number
  1. S SA("XRI")=$$GETP(SRC,3,DLM) ; Source File X-ref and Length
  1. S SA("DFLD")=$$GETP(SRC,4,DLM) ; Source File Description Field
  1. S SA("IFLD")=$$GETP(SRC,5,DLM) ; Source File Inactive flag
  1. S SA("IDT")=$$GETP(SRC,6,DLM) ; Source File Inactive Date
  1. S TA("FNAM")=$$GETP($$GETP(VAL,2,"||"),2,"/") ; Target File Name
  1. S TA("GNAM")=$$GETP(TRG,1,DLM) ; Target File global name
  1. S TA("NUM")=$$GETP(TRG,2,DLM) ; Target File Number
  1. S TA("XRI")=$$GETP(TRG,3,DLM) ; Target File X-ref and Length
  1. S TA("DFLD")=$$GETP(TRG,4,DLM) ; Target File Description node and piece
  1. S TA("IFLD")=$$GETP(TRG,5,DLM) ; Target File Inactive flag
  1. S TA("IDT")=$$GETP(TRG,6,DLM) ; Target File Inactive Date
  1. Q
  1. ; Return flag indicating file has been mapped
  1. MPDONE(FIL) ;EP
  1. Q +$G(@$$GLBPATH(FIL,"DONE"))
  1. ; Return mapping status across all files
  1. ; Input: V - 0 = Silent mode (Default) ; 1 = Verbose mode:
  1. ALLMAPDN(V) ;EP
  1. N RES,DLM,DDLM,EXIT,RES1,EFLG,FIL,OFF,STA
  1. D INIT
  1. S RES=1,V=$G(V,0)
  1. F D Q:$G(EFLG)
  1. .S FIL=$$NXTFIL(.OFF)
  1. .I $P(FIL,DDLM,2)="" S EFLG=1 Q
  1. .S STA=$$MPDONE($P($P($P(FIL,DDLM,2),"/",2),DLM))
  1. .W:V !,"Mapping has "_$S('STA:"not ",1:"")_"been completed for the ",$P($P(FIL,"||",2),"/",2)," file.",!
  1. .S RES=RES&STA
  1. Q RES
  1. ; Return flag indicating UNMAP node has been created
  1. BUILT(FIL) ;EP
  1. Q +$G(@$$GLBPATH(FIL,"BUILT"))
  1. ; Return flag indicating auto map process has completed.
  1. AMAPDN(FIL) ;EP
  1. Q +$G(@$$GLBPATH(FIL,"AUTO"))
  1. ; Update MAP and UNMAP nodes
  1. ; If a target mapping (TIEN) is present, the UNMAP node will be deleted.
  1. ; Otherwise, the TIEN is stored as the value of the UNMAP,SIEN) node.
  1. UPDMAP(FIL,SIEN,TIEN,AMFLG) ;
  1. N MGLN,UMGLN
  1. S MGLN=$$GLBPATH(FIL,"MAP")
  1. S UMGLN=$$GLBPATH(FIL,"UNMAP")
  1. I TIEN D
  1. .; BWF - next line modified to add AMFLG
  1. .S @MGLN@(SIEN)=TIEN_"^"_AMFLG
  1. .; bwf - adding "B" x-ref for list of VA ien's that have been mapped to.
  1. .S @MGLN@("B",TIEN)=SIEN
  1. .K @UMGLN@(SIEN)
  1. .S @UMGLN=+$G(@UMGLN)-1 ; Update UNMAP count
  1. .S @MGLN=+$G(@MGLN)+1 ; Update MAP count
  1. E D
  1. .S @UMGLN@(SIEN)=TIEN
  1. Q
  1. ; Delete mapped item from mapping list
  1. DELMAP(FIL,SIEN) ;
  1. N MGLN,TIEN
  1. S MGLN=$$GLBPATH(FIL,"MAP")
  1. S TIEN=$P(@MGLN@(SIEN),U)
  1. K @MGLN@(SIEN)
  1. I TIEN K @MGLN@("B",TIEN)
  1. Q
  1. ; Return Count of items
  1. ; Input: FIL=FileName (ie. ICM)
  1. ; NOD=Data node (ie. "MAP")
  1. MAPCNT(FIL,NOD) ;
  1. Q +$G(@$$GLBPATH(FIL,NOD))
  1. ; Return IEN from Target File (VA)
  1. ; If multiple entries are found, the first piece will be a zero followed by an error message
  1. ; except the SIEN will be returned if the VAL exists for the SIEN.
  1. IENLKP(TGNM,VAL,SIEN,TXRI) ;EP
  1. N IEN,NXT,XRF
  1. S XRF=$$GETP(TXRI,1,":")
  1. S VAL=$$PREPVAL(VAL,TXRI,0)
  1. I TGNM["ICD9" S VAL=VAL_" "
  1. S IEN=$O(@TGNM@(XRF,VAL,0))
  1. S NXT=$O(@TGNM@(XRF,VAL,IEN))
  1. I NXT,$D(@TGNM@(XRF,VAL,SIEN)) Q SIEN
  1. I 'IEN D Q:IEN IEN
  1. .S IEN=$$CHKXRF(VAL,TXRI)
  1. Q $S(NXT:"0^MULTIPLE ENTRIES FOUND",IEN:IEN,1:"0^IDENTICAL MATCH NOT FOUND")
  1. ; Perform lookup in xref using truncated value
  1. CHKXRF(VAL,TXRI) ;EP
  1. N IEN
  1. S IEN=$O(@TGNM@($$GETP(TXRI,1,":"),$$PREPVAL(VAL,TXRI,1),0))
  1. Q $S('IEN:0,VAL=$P(@TGNM@(IEN,0),U):IEN,1:0)
  1. ; Return formatted value
  1. ; Input: V = Value to be prepared
  1. ; XRF = XREF information (xref:length of value:(L/R)pad character(s) (AB:30:R )
  1. ; T = Flag indicating if the value should be truncated to length
  1. PREPVAL(V,XRF,T) ;EP
  1. N P,L
  1. S P=$$GETP(XRF,3,":")
  1. I T D
  1. .S L=$$GETP(XRF,2,":")
  1. .S V=$E(V,1,L)
  1. I $L(P) D
  1. .S V=$S($E(P)="L":$E(P,2,10)_V,$E(P)="R":V_$E(P,2,10),1:V)
  1. Q V
  1. ; Return value in string for given piece using delimiter
  1. ; STR=String to evaluate
  1. ; P=Piece
  1. ; D=Delimiter
  1. GETP(STR,P,D) ;EP
  1. Q $P(STR,D,P)
  1. ; Return global associated with given File Number
  1. GLB(FNUM) ;EP
  1. Q $$ROOT^DILFD(FNUM,,1)
  1. ; Return full global path for given filename
  1. ; Input: FIL=FileName (ie. ICM)
  1. ; NOD=Data node (ie. "BUILT")
  1. GLBPATH(FIL,NOD) ;EP
  1. Q $NA(^XCSV(FIL,NOD))
  1. ; Return flag indicating presence of unmapped entries
  1. UNMAPPED(FIL) ;EP
  1. N MGLB,RES
  1. S MGLB=$$GLBPATH(FIL,"UNMAP")
  1. Q $D(@MGLB)=11
  1. ; Return flag indicating presence of File and Field in known list of fields pointing to file
  1. ; Input: FIL - FileName in XCSV global (ie. ICM)
  1. ; FILE - File containing field that points to FIL
  1. ; FLD - Field in FILE that points to FIL
  1. KNWNPTR(FIL,FILE,FLD) ;
  1. Q $D(@$$GLBPATH(FIL,"KPT")@(FILE,FLD))
  1. ; Return additional descriptive text
  1. ; Input: TYP - (S)ource or (T)arget
  1. ; FIL - Either FileNumber if Source or Global root if Target
  1. ; IEN - Specific entry
  1. ; FLD - Field number if Source or Node/Piece if Target
  1. ; VFLG - Return .01 value if flag is set
  1. GDESC(TYP,FIL,IEN,FLD,VFLG) ;EP
  1. N RES
  1. S RES="",VFLG=$G(VFLG,0)
  1. I VFLG D
  1. .I TYP="S" S RES=$$GET1^DIQ(FIL,IEN,.01)_" ("
  1. .E I TYP="T" S RES=$P(@FIL@(IEN,0),U)_" ("
  1. I $L(FLD) D
  1. .I TYP="S" D
  1. ..S RES=RES_$$GET1^DIQ(FIL,IEN,FLD)
  1. .E I TYP="T" D
  1. ..S RES=RES_$P(@FIL@(IEN,$P(FLD,":")),U,$P(FLD,":",2))
  1. Q RES_$S(RES[" (":")",1:"")
  1. ; Returns result of Yes/No prompt
  1. YN(DEF,PRMPT) ;EP
  1. N DIR,Y
  1. S DIR(0)="Y",DIR("B")=$G(DEF,"")
  1. S DIR("A")=$S($L($G(PRMPT)):PRMPT,1:"Are you sure")
  1. D ^DIR
  1. I $G(DTOUT)!$G(DUOUT) S RES=0
  1. E S RES=Y
  1. Q RES
  1. ; Returns result of DIR lookup
  1. ; Input: SRC - Source root
  1. ; XRF - XREF to use for lookup
  1. ; STA - 0=Successful;1=skip;2=Exit
  1. DIRLKP(SRC,XRF,STA) ;EP
  1. N D,Y,X,DIR,DIROUT
  1. S:$E(SRC)'=U SRC=U_SRC
  1. S DIR(0)="P"_SRC_":AEMI "
  1. S D=XRF
  1. D ^DIR
  1. I Y'>0!$G(DTOUT)!$G(DUOUT) D
  1. .S STA=$S($G(DIROUT):2,1:1)
  1. E S STA=0
  1. Q Y
  1. ;
  1. ;FILES TO MAP
  1. ;IHS Global Name;IHS File Number;IHS Formatting;Additional Info Field/VA Global Name;VA File Number;VA Formatting;Addition Info Field||IHS Filename/VA Filename
  1. ;Formatting contains: XREF:Length of Value:(L/R)Pad character(s) (supports up to 9 pad characters)
  1. FILES ;;
  1. ;;ICM;80.3;B:30;.01;/ICM;80.3;B:30;0:1;||MAJOR DIAGNOSTIC CATEGORY/MAJOR DIAGNOSTIC CATEGORY
  1. ;;ICD;80.2;B:30;.01;15;16/ICD;80.2;B:30;0:1;15;16||DRG/DRG
  1. ;;DIC|81.1;81.1;B:63;.01;/DIC|81.1;81.1;B:63;0:1;||CPT CATEGORY/CPT CATEGORY
  1. ;;ICD0;80.1;AB:30;10;100;102/ICD0;80.1;AB:30;0:4;100;102||ICD OPERATION PROCEDURE/ICD OPERATION PROCEDURE
  1. ;;AUTTCMOD;9999999.88;B:30;.02;/DIC|81.3;81.3;B:30;0:2;5||CPT MODIFIER/CPT MODIFIER
  1. ;;ICD9;80;AB:30;10;100;102/ICD9;80;AB:30;0:3;100;102||ICD DIAGNOSIS/ICD DIAGNOSIS
  1. ;;ICPT;81;B:30;2;5;8/ICPT;81;B:30;0:2;5;7||CPT/CPT
  1. Q