wiki:HL7TablesForVistA

Version 9 (modified by Nancy Anthracite, 13 years ago) ( diff )

--

HL7 Tables for VistA

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.

Download the KIDS build from here: HL7tables/trunk/kids

  • Nancy Anthracite

Data Dictionary for File 260

STANDARD DATA DICTIONARY #260 -- VW HL7 TABLES FILE

AUG 17,2011@23:00:56 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):

Note: See TracWiki for help on using the wiki.