HL7 Messages including those for Meaningful Use require a lot of standardized entries that come from HL7 Tables. Those tables are often based on standards or information provided by others. For Meaningful Use, there were three HL7 messages required, one for Lab Results, one for Reporting Lab Results to Public Health Agencies and one for Immunization Reporting. There were two guides provided for the latter that are posted on the CDC web site and each contained a number of tables. John McCormack has created a new file, file 260 in the VW or WorldVistA namespace called the VW HL7 TABLES. A build has been loaded and as improvements are made, more will be uploaded here. The data dictionary for the current iteration follows. There are many more HL7 tables to be added, but this build contains several already. I am sure that when you review the data dictionary and all the contents you will realize that this work is substantial in size and usefulness and took a lot of work to build! We hope that you will try it, make suggestions and hopefully even adopt his file. - Nancy Anthracite Select OPTION: 8 DATA DICTIONARY UTILITIES Select DATA DICTIONARY UTILITY OPTION: 1 LIST FILE ATTRIBUTES START WITH WHAT FILE: VW HL7 TABLES// GO TO WHAT FILE: VW HL7 TABLES// Select SUB-FILE: Select LISTING FORMAT: STANDARD// Start with field: FIRST// DEVICE: ;;999 TELNET STANDARD DATA DICTIONARY #260 -- VW HL7 TABLES FILE AUG 17,2011@11:31:09 PAGE 1 STORED IN ^VWLEX(260, (8671 ENTRIES) SITE: Vista-Office EHR UCI: EHR,EHR DATA NAME GLOBAL DATA ELEMENT TITLE LOCATION TYPE ------------------------------------------------------------------------------- IDENTIFIED BY: TABLE (#.03), NAME (#.04) POINTED TO BY: ISO LANGUAGE CODE field (#250001) of the LANGUAGE File (#.85) IDENTIFIER TYPE CODE field (#.02) of the PATIENT IDENTIFIER sub-field (#2.000999999) of the PATIENT File (#2) ASSIGNING AUTHORITY field (#.04) of the PATIENT IDENTIFIER sub-field (#2.000999999) of the PATIENT File (#2) ASSIGNING JURISDICTION field (#.1) of the PATIENT IDENTIFIER sub-field (#2.000999999) of the PATIENT File (#2) ASSIGNING AGENCY OR DEPARTMENT field (#.11) of the PATIENT IDENTIFIER sub-field (#2.000999999) of the PATIENT File (#2) TYPE OF IDENTIFIER field (#250001) of the IDENTIFICATION FORMAT File (#8.2) VW HL7 SPECIMEN TYPE field (#250002) of the TOPOGRAPHY FIELD File (#61) REPLACEMENT TERM field (#.07) of the VW HL7 TABLES File (#260) CODE SYSTEM field (#.04) of the VERSION sub-field (#260.001) of the VW HL7 TABLES File (#260) RELATED COUNTRY CODE field (#250001) of the COUNTRY CODE File (#779.004) VW HL7 CVX CODE field (#250001) of the IMMUNIZATION File (#9999999.14) CROSS REFERENCED BY: TERM(B) INDEXED BY: CODE ID & CODE SYSTEM (AC), TABLE VERSION & CODE SYSTEM & CODE ID (AD), TABLE VERSION & CODE SYSTEM & CODE ID (AE), APPLICATION GROUP & APPLICATION USE (AG), TABLE & TERM STATUS (AH), TERM (C), NAME (D), NAME (E), TABLE (H) 260,.001 SEQUENCE NUMBER INPUT TRANSFORM: K:+X'=X!(X>1000000)!(X<1)!(X?.E1"."1.N) X LAST EDITED: MAY 29, 2011 HELP-PROMPT: Type a number between 1 and 1000000, 0 decimal digits. TECHNICAL DESCR: Sequence number (#.001) defined to insure that FileMan when installing/updating this file loads entries based on the internal entry number. 260,.01 TERM 0;1 FREE TEXT (Required) INPUT TRANSFORM: K:$L(X)>30!($L(X)<1)!'(X'?1P.E) X LAST EDITED: MAR 27, 2011 HELP-PROMPT: Answer must be 1-30 characters in length CROSS-REFERENCE: 260^B 1)= S ^VWLEX(260,"B",$E(X,1,30),DA)="" 2)= K ^VWLEX(260,"B",$E(X,1,30),DA) FIELD INDEX: C (#889) REGULAR IR LOOKUP & SORTING Short Descr: Uppercase version of #.01 field Description: Uppercase version of #.01 field to allow lookups using uppercase when #.01 field is mixed/lower case. Set Logic: S ^VWLEX(260,"C",$E(X,1,30),DA)="" Kill Logic: K ^VWLEX(260,"C",$E(X,1,30),DA) Whole Kill: K ^VWLEX(260,"C") X(1): TERM (260,.01) (Subscr 1) (Len 30) (forwards) Transform (Storage): S X=$$UP^XLFSTR(X) Transform (Lookup): S X=$$UP^XLFSTR(X) 260,.02 CODE TYPE 0;2 SET '1' FOR HL7; '2' FOR USER; LAST EDITED: MAR 27, 2011 260,.03 TABLE 0;3 FREE TEXT INPUT TRANSFORM: K:$L(X)>7!($L(X)<7)!'(X?1"HL7"4N) X LAST EDITED: MAR 27, 2011 HELP-PROMPT: Answer must be 7 characters in length DESCRIPTION: Indicates the HL7 table that is assocaited with this term. The HL7 table desgination is in the form HL7nnnn. FIELD INDEX: H (#892) REGULAR IR LOOKUP & SORTING Short Descr: Index of entries by HL7 table designation. Description: Index of entries cross-referenced by the assigned HL7 table designation. Set Logic: S ^VWLEX(260,"H",$E(X,1,30),DA)="" Kill Logic: K ^VWLEX(260,"H",$E(X,1,30),DA) Whole Kill: K ^VWLEX(260,"H") X(1): TABLE (260,.03) (Subscr 1) (Len 30) (forwards) RECORD INDEXES: AH (#888) 260,.04 NAME 0;4 FREE TEXT INPUT TRANSFORM: K:$L(X)>100!($L(X)<3) X LAST EDITED: FEB 06, 2011 HELP-PROMPT: Answer must be 3-100 characters in length FIELD INDEX: D (#890) REGULAR IR LOOKUP & SORTING Short Descr: Lookup on NAME field. Description: Whole file cross-reference to allow lookups on the NAME field (#.04). Set Logic: S ^VWLEX(260,"D",$E(X,1,100),DA)="" Kill Logic: K ^VWLEX(260,"D",$E(X,1,100),DA) Whole Kill: K ^VWLEX(260,"D") X(1): NAME (260,.04) (Subscr 1) (Len 100) (forwards) FIELD INDEX: E (#891) REGULAR IR LOOKUP & SORTING Short Descr: Uppercase version of NAME field (#.04) Description: Uppercase version of #.04 field to allow lookups using uppercase when #.04 field is mixed/lower case. Set Logic: S ^VWLEX(260,"E",$E(X,1,100),DA)="" Kill Logic: K ^VWLEX(260,"E",$E(X,1,100),DA) Whole Kill: K ^VWLEX(260,"E") X(1): NAME (260,.04) (Subscr 1) (Len 100) (forwards) Transform (Storage): S X=$$UP^XLFSTR(X) Transform (Lookup): S X=$$UP^XLFSTR(X) 260,.05 TABLE OID 0;5 FREE TEXT INPUT TRANSFORM: K:$L(X)>64!($L(X)<3) X LAST EDITED: FEB 03, 2011 HELP-PROMPT: Answer must be 3-64 characters in length. DESCRIPTION: Indicates OID which explicitly identifies an HL7 Version 2.x Table, as published in the HL7 Version 2 series of standards. 260,.06 TERM STATUS 0;6 SET '0' FOR ACTIVE; '1' FOR INACTIVE; '2' FOR DEPRECATED; '3' FOR NEVER USED; LAST EDITED: MAY 29, 2011 HELP-PROMPT: Enter the status of this term. DESCRIPTION: Indicates the status of this term and it's use in messaging. CODE: 0 will be used for terms currently being used. CODE: 1 will not be used for current terms however they are still used for historical purposes. CODE: 2 will be used for terms that have been deprecated and should no longer be assigned. Sometimes they have a new term issued which replaces the deprecated term. RECORD INDEXES: AH (#888) 260,.07 REPLACEMENT TERM 0;7 POINTER TO VW HL7 TABLES FILE (#260) INPUT TRANSFORM: S DIC("S")="I $P(^VWLEX(260,Y,0),U,6)<1" D ^DIC K DIC S DIC=$G(DIE),X=+Y K:Y<0 X LAST EDITED: MAR 29, 2011 HELP-PROMPT: Enter the term which replaces this term in current usage. DESCRIPTION: Specifies the term which has replaced the deprecated term. SCREEN: S DIC("S")="I $P(^VWLEX(260,Y,0),U,6)<1" EXPLANATION: Only allow replacement terms to be active. 260,.08 ENTRY STATUS 0;8 SET '0' FOR LOCAL; '1' FOR STANDARD; LAST EDITED: MAR 29, 2011 HELP-PROMPT: A term has a status of either standard or locally added. DESCRIPTION: Terms that are distributed with the file and/or centrally maintained have a status of "standard". Terms that are added for local purposes that are not standard will have a status of "local". 260,.99 DESCRIPTION .99;0 WORD-PROCESSING #260.0099 260,1 VERSION 1;0 Multiple #260.001 (Add New Entry without Asking) LAST EDITED: MAR 19, 2011 260.001,.01 TABLE VERSION 0;1 FREE TEXT (Multiply asked) INPUT TRANSFORM: K:$L(X)>10!($L(X)<1) X LAST EDITED: MAY 29, 2011 HELP-PROMPT: Answer must be 1-10 characters in length CROSS-REFERENCE: 260.001^B 1)= S ^VWLEX(260,DA(1),1,"B",$E(X,1,30),DA)=" " 2)= K ^VWLEX(260,DA(1),1,"B",$E(X,1,30),DA) RECORD INDEXES: AD (#885) (WHOLE FILE #260), AE (#886) (WHOLE FILE #260) 260.001,.02 CODE ID 0;2 FREE TEXT INPUT TRANSFORM: K:$L(X)>15!($L(X)<1) X LAST EDITED: MAY 29, 2011 HELP-PROMPT: Answer must be 1-15 characters in length RECORD INDEXES: AC (#884) (WHOLE FILE #260), AD (#885) (WHOLE FILE #260), AE (#886) (WHOLE FILE #260) 260.001,.03 CODE TEXT 0;3 FREE TEXT INPUT TRANSFORM: K:$L(X)>100!($L(X)<1) X LAST EDITED: MAR 19, 2011 HELP-PROMPT: Answer must be 1-100 characters in length 260.001,.04 CODE SYSTEM 0;4 POINTER TO VW HL7 TABLES FILE (#260) INPUT TRANSFORM:S DIC("S")="I $P(^VWLEX(260,Y,0),U,3)=""HL70396 """ D ^DIC K DIC S DIC=$G(DIE),X=+Y K:Y<0 X LAST EDITED: MAY 29, 2011 HELP-PROMPT: Select the coding system this code is a member. SCREEN: S DIC("S")="I $P(^VWLEX(260,Y,0),U,3)=""HL70396 """ EXPLANATION: Only select entries that represent name of codi ng systems RECORD INDEXES: AC (#884) (WHOLE FILE #260), AD (#885) (WHOLE FILE #260), AE (#886) (WHOLE FILE #260) 260.001,.05 CODE SYSTEM NAME 0;5 FREE TEXT INPUT TRANSFORM:K:$L(X)>20!($L(X)<1) X LAST EDITED: MAR 19, 2011 HELP-PROMPT: Answer must be 1-20 characters in length 260.001,.06 CODE SYSTEM OID 0;6 FREE TEXT INPUT TRANSFORM:K:$L(X)>64!($L(X)<3) X LAST EDITED: FEB 03, 2011 HELP-PROMPT: Answer must be 3-64 characters in length 260.001,.07 CODE STATUS 0;7 SET '0' FOR ACTIVE; '1' FOR INACTIVE; '2' FOR DEPRECATED; '3' FOR NEVER USED; LAST EDITED: MAY 29, 2011 DESCRIPTION: Indicates the status of this code and it's use in messaging. CODE: 0 will be used for codes currently being used. CODE: 1 will not be used for current codes however they are still used for historical purposes. CODE: 2 will be used for codes that have been deprecated and should no longer be assigned. Sometimes they have a new code issued which replaces the deprecated term. 260.001,.08 EFFECTIVE DATE 0;8 DATE INPUT TRANSFORM:S %DT="E" D ^%DT S X=Y K:X<1 X LAST EDITED: MAR 18, 2011 HELP-PROMPT: (No range limit on date) DESCRIPTION: The date this code was first active/effective if applicable. 260.001,.09 EXPIRATION DATE 0;9 DATE INPUT TRANSFORM:S %DT="E" D ^%DT S X=Y K:X<1 X LAST EDITED: MAR 18, 2011 HELP-PROMPT: (No range limit on date) DESCRIPTION: The date this code was no longer valid active/effective if applicable. 260.001,.1 CHECK DIGIT SCHEME 0;10 SET '1' FOR ISO; '2' FOR M10; '3' FOR M11; '4' FOR NPI; '5' FOR BCV; LAST EDITED: MAR 18, 2011 HELP-PROMPT: Enter the code identifying the check digit scheme employed. DESCRIPTION: Contains the code identifying the check digit scheme employed. TECHNICAL DESCR: HL7 Table 0061 - Check digit scheme Value Description Comment BCV Bank Card Validation Number A non-embossed number included on bank cards and used to validate authenticity of the card and the person presenting the card NPI Check digit algorithm in the US National Provider Identifier ISO ISO 7064: 1983 M10 Mod 10 algorithm M11 Mod 11 algorithm 260.001,.11 CODE SYSTEM VERSION 1;1 FREE TEXT INPUT TRANSFORM:K:$L(X)>20!($L(X)<1) X LAST EDITED: MAR 19, 2011 HELP-PROMPT: Answer must be 1-20 characters in length DESCRIPTION: When the code refers to a user defined or other code system then the version of the code system is recorded here. This field is different from the table version which usually refers to the version of the HL7 standard which this entry supports. Example is HL7 table 0203 (IDENTIFIER TYPE) has a user defined code issued by CDC for Org Membership. This code has a version 20100308. Concept Code.......: PHC40 Concept Name.......: Org Membership Code System OID....: 2.16.840.1.114222.4.5.274 Code System Name...: PHIN VS (CDC Local Coding System) Code System Code...: PH_PHINVS_CDC Code System Version: 20100308 HL70396 Table Code.: CDCPHINVS 260.001,.12 STATUS DATE 1;2 DATE INPUT TRANSFORM:S %DT="E" D ^%DT S X=Y K:2500101>X X LAST EDITED: MAY 29, 2011 HELP-PROMPT: Type a date not earlier than JAN 01, 1950. DESCRIPTION: This is the date of this code version 260,2 APPLICATION GROUP 2;0 Multiple #260.002 260.002,.01 APPLICATION GROUP 0;1 FREE TEXT INPUT TRANSFORM: K:$L(X)>4!($L(X)<2)!'(X?2.4U) X LAST EDITED: MAY 30, 2011 HELP-PROMPT: A 'NAMESPACE' (2-4 BYTES) indicating a package screening this entry. DESCRIPTION: Allows a 'package" to selectively screen the codes that it uses/supports within a HL7 table. Useful when an application only uses a subset of a HL7 or other user defined table/code system. CROSS-REFERENCE: 260.002^B 1)= S ^VWLEX(260,DA(1),2,"B",$E(X,1,30),DA)=" " 2)= K ^VWLEX(260,DA(1),2,"B",$E(X,1,30),DA) RECORD INDEXES: AG (#887) (WHOLE FILE #260) 260.002,.02 APPLICATION USE 0;2 SET '0' FOR NOT SELECTABLE; '1' FOR SELECTABLE; LAST EDITED: MAY 30, 2011 HELP-PROMPT: Specify if this code or table element is restricted or enabled. DESCRIPTION: An application in conjunction with the "APPLICATION GROUP" field can enable/disable a specific member of an HL7 table or other code system from use within the application. Example is IMMUNIZATION may utilize the HL7 table 0163 (Body Site) and only uses a subset of this table to indicate the site a vaccine was administered. Or limit the vaccines (CVX) or manufacturer codes (MVX) that can be linked/used. RECORD INDEXES: AG (#887) (WHOLE FILE #260) FILES POINTED TO FIELDS VW HL7 TABLES (#260) REPLACEMENT TERM (#.07) VERSION:CODE SYSTEM (#.04) File #260 Record Indexes: AH (#888) RECORD REGULAR IR SORTING ONLY Short Descr: Index of HL7 table and status. Description: Cross-reference which indexes the entries by HL7 table number and term status. Set Logic: S ^VWLEX(260,"AH",$E(X(1),1,30),X(2),DA)="" Kill Logic: K ^VWLEX(260,"AH",$E(X(1),1,30),X(2),DA) Whole Kill: K ^VWLEX(260,"AH") X(1): TABLE (260,.03) (Subscr 1) (Len 30) (forwards) X(2): TERM STATUS (260,.06) (Subscr 2) (forwards) Subfile #260.001 Record Indexes: AC (#884) RECORD REGULAR IR SORTING ONLY WHOLE FILE (#260) Short Descr: Cross reference a code to it's table Description: Set up a cross-reference to allow looking up a code by it's components - HL7 table, code and code system. Set Logic: S ^VWLEX(260,"AC",$E(X(1),1,30),X(2),DA(1),DA)="" Kill Logic: K ^VWLEX(260,"AC",$E(X(1),1,30),X(2),DA(1),DA) Whole Kill: K ^VWLEX(260,"AC") X(1): CODE ID (260.001,.02) (Subscr 1) (Len 30) (forwards) X(2): CODE SYSTEM (260.001,.04) (Subscr 2) (forwards) AD (#885) RECORD REGULAR IR SORTING ONLY WHOLE FILE (#260) Short Descr: Cross reference a code to it's table and HL7 version Description: Set up a cross-reference to allow looking up a code by it's components - HL7 version, code and code system. Set Logic: S ^VWLEX(260,"AD",$E(X(1),1,30),$E(X(2),1,30),$E(X(3),1,30) ,DA(1),DA)="" Kill Logic: K ^VWLEX(260,"AD",$E(X(1),1,30),$E(X(2),1,30),$E(X(3),1,30) ,DA(1),DA) Whole Kill: K ^VWLEX(260,"AD") X(1): TABLE VERSION (260.001,.01) (Subscr 1) (Len 30) (forwards) X(2): CODE SYSTEM (260.001,.04) (Subscr 2) (Len 30) (forwards) X(3): CODE ID (260.001,.02) (Subscr 3) (Len 30) (forwards) AE (#886) RECORD REGULAR IR SORTING ONLY WHOLE FILE (#260) Short Descr: Cross reference a code to it's table Description: Set up a cross-reference to allow looking up a code by it's components - HL7 table, HL7 version, code and code system. Set Logic: S ^VWLEX(260,"AE",$E(X(2),1,30),$E(X(1),1,30),$E(X(3),1,30) ,$E(X(4),1,30),DA(1),DA)="" Kill Logic: K ^VWLEX(260,"AE",$E(X(2),1,30),$E(X(1),1,30),$E(X(3),1,30) ,$E(X(4),1,30),DA(1),DA) Whole Kill: K ^VWLEX(260,"AE") X(1): TABLE VERSION (260.001,.01) (Subscr 2) (Len 30) (forwards) X(2): Computed Code: S X=$P(^VWLEX(260,DA,0),U,3) (Subscr 1) (Len 30) X(3): CODE SYSTEM (260.001,.04) (Subscr 3) (Len 30) (forwards) X(4): CODE ID (260.001,.02) (Subscr 4) (Len 30) (forwards) Subfile #260.002 Record Indexes: AG (#887) RECORD REGULAR IR SORTING ONLY WHOLE FILE (#260) Short Descr: Application group index Description: Index of terms that have been assigned an application group and corresponding selection status for that term. Set Logic: S ^VWLEX(260,"AG",$E(X(1),1,30),X(2),DA(1),DA)="" Kill Logic: K ^VWLEX(260,"AG",$E(X(1),1,30),X(2),DA(1),DA) Whole Kill: K ^VWLEX(260,"AG") X(1): APPLICATION GROUP (260.002,.01) (Subscr 1) (Len 30) (forwards) X(2): APPLICATION USE (260.002,.02) (Subscr 2) (forwards) INPUT TEMPLATE(S): PRINT TEMPLATE(S): CAPTIONED USER #0 ZZNANCYVacMan AUG 13, 2011@11:21 USER #9 @ SORT TEMPLATE(S): ZZNANCYVacMan AUG 13, 2011@11:06 USER #9 SORT BY: TABLE// (TABLE equals HL70227) FORM(S)/BLOCK(S):