|Contents:||Main||Chapter||See Also:||Advanced User Manual||Programmer Manual|
So far, you've been introduced to several fundamental VA FileMan conventions, including:
When you are editing a field, entering a question mark ("?") at the field prompt usually provides enough help to infer what kind of field you've reached and to predict what kind of data is acceptable in this field.
You won't need to know a lot about these field types, but a little information can be helpful. In the pages that follow, you'll find examples and brief explanations about each field type (i.e., DATA TYPE). In VA FileMan, you'll work with many, if not all, of the following field types:
In addition, Subfiles (Multiples) are introduced at the end of this chapter.
You can use a variety of formats when entering dates. For example, a DATE/TIME field would probably be used to hold a patient's birthdate:
DATE OF BIRTH: MAR 3, 1955
With the DATE/TIME field type, as with all field types, entering a question mark retrieves Help on acceptable responses. Enter a single question mark ("?") at a DATE/TIME field prompt and you'll be given Help about what dates are acceptable for the particular field and what precision of date is needed (year, month, day, or time).
Acceptable Formats for Entering Dates
To simplify entering dates, you can use shortcuts such as T for today, T-1 for yesterday, or T+1 for tomorrow. Or you can combine T with D for day, W for week, or M for month; T-2D means two days ago, T+1W means today plus one week, and T+4M means four months from today.
The year portion of the date can be left off. Normally, VA FileMan assumes the current year. Sometimes, you can input imprecise dates such as "JUL 99" or "1999".
NOTE: VA FileMan is Year 2000 (Y2K) compliant.
Abbreviations for Dates
The following table illustrates acceptable abbreviations when entering dates:
|TODAY or Today or T or t||Today.|
|TODAY+1 or T+1 or t+1||Tomorrow.|
|TODAY-7 or T-7 or t-7||One week ago.|
|TODAY+3W or T+3W or t+3w||Three weeks hence.|
Times in DATE/TIME Fields
In some DATE/TIME fields, you can enter a time-of-day along with the date. For example, to indicate 4:00 PM on July 20, 1999, enter the date in one of the formats shown above, followed by an at-sign ("@"), followed by the time.
For example, you might enter:
APPOINTMENT: 20 JUL 99@4PM
To be totally unambiguous, you can enter time as military time (four or six digits, no colon), hour AM/PM, hour:minute AM/PM, or hour:minute:second AM/PM. If you do omit an AM/PM notation, the following assumptions are made:
As with dates, there are supported abbreviations you can use when entering times in DATE/TIME fields. For example, to enter the present moment, you can enter the word NOW. To enter an hour from the present moment, enter NOW+1H. To enter an hour ago from the present moment, enter NOW-1H. You can also combine NOW with D for day and M for month and ' (apostrophe) for minute. And you can enter MID for 12 a.m. and NOON for 12 p.m.
Abbreviations for Times
The following table illustrates acceptable abbreviations when entering time:
|NOW+3'||Present time plus three minutes.|
|NOW+1H||Present time plus one hour.|
|NOW+3D||Present time plus three days.|
|NOW+4M||Present time plus four months.|
|NOON||Today at 12:00 noon.|
|MID||Today at 24:00 midnight.|
NUMERIC-type fields work very much like FREE TEXT fields, except that input is restricted to valid numbers. There can also be restrictions as to how small or large a number is allowed, and how many decimal places are allowed. Entering a question mark retrieves Help that tells you what responses are acceptable.
For example, a NUMERIC field would probably be used to store the height of a patient:
HEIGHT (cm): 196
SET OF CODES-type fields (sometimes referred to as a SET) are preset to accept coded information. The codes are usually only one or two characters long. Each code in a SET represents a word or a series of words. The codes Y and N, for example, often represent the words YES and NO. You can enter the code at this prompt instead of the entire word. If, however, you enter anything other than an acceptable code (or the word it represents), the computer will reject your response.
To see a list of acceptable codes, simply enter a question mark in response to the prompt.
The following example shows how a SET OF CODES field is used to store whether or not a patient is a smoker:
Internal vs. External Values for SET OF CODES Fields
In the previous example, the value of the SMOKER field is set to N, which is the code for NON-SMOKER. In this case, N is the internal value of the field (the form in which it is stored in the database). NON-SMOKER is the external value of the field (the form in which it is displayed on screen and in reports).
Every DATA TYPE has an internal and external value; in most cases, however, the internal and external values are the same. SET OF CODES fields are an exception.
NOTE: Probably, the only place you need to know the distinction
between internal and external values is when you print a report and sort
on a SET OF CODES field. The sort order is based on the internal values (codes)
if you sort on a SET OF CODES field.
For more information on printing and sorting, please refer to the "Print" chapter in this manual.
You can enter almost any character from your keyboard in a FREE TEXT-type field. The computer accepts numbers, letters, and most of the symbols that can be entered. The FREE TEXT field places a restriction on the number of characters that you can enter. If you enter a question mark ("?") in response to the prompt for a FREE TEXT field, you'll learn how many characters you are allowed to enter.
For example, a FREE TEXT field would probably be used to hold a patient's street address:
ADDRESS: 235 Begonia Street
In some places, even though the field is FREE TEXT, checks are applied to make sure what is entered matches a certain format. For example, if you're entering a Social Security Number (which is stored as a FREE TEXT, not NUMERIC, field), your input would typically be checked to make sure it is nine characters in length, and contains all digits:
SSN: abcde ??
ANSWER MUST BE 9 CHARACTERS IN LENGTH
SSN: 99999 ??
ANSWER MUST BE 9 CHARACTERS IN LENGTH
SSN: 33233290 ??
ANSWER MUST BE 9 CHARACTERS IN LENGTH
SSN: 034232343 DATE:
Fields with a WORD-PROCESSING DATA TYPE can contain unlimited amounts of text data, and are suitable for things like mail messages, physician notes, and descriptions. Because of their special nature, VA FileMan provides special tools for entering and editing data into this kind of a field.
Two editors for editing WORD-PROCESSING fields are provided with VA FileMan (and described in their own chapters in this manual):
You can set your default editor; see the "Choice of Word Processing Editors" chapter. This chapter also explains how you can switch your current editor on the fly. For most people, the Screen Editor should be your Preferred Editor for WORD-PROCESSING fields.
When you encounter a WORD-PROCESSING field, if your default editor is the Screen Editor, a portion of any existing text is displayed, and you'll be prompted "Edit? NO//":
Select PATIENT NAME: SAMPLE,FRED A. NAME: SAMPLE,FRED A.//
DATE OF BIRTH: AUG 22,1948//
Owing to poverty in early youth, patient seems not to
have had proper diet. Since achieving economic success,
his diet has been adequate, but traces of original
NOTE: For a guide to using the Screen Editor, please refer to the Screen Editor chapter in this manual.
When you encounter a WORD-PROCESSING field, if your default editor is the Line Editor on the other hand, a portion of the text is displayed, and you'll be prompted with "Edit Option:"
Select PATIENT NAME: SAMPLE,FRED A. NAME: SAMPLE,FRED A.//
DATE OF BIRTH: AUG 22,1948//
1>Owing to poverty in early youth, patient seems not to
2>have had proper diet. Since achieving economic success,
3>his diet has been adequate, but traces of original
NOTE: For a guide to using the Line Editor, please refer to the Line Editor chapter in this manual.
COMPUTED-type fields are typically used to output a value computed at run-time in a report. You can't edit the value of a COMPUTED field.
An example of a COMPUTED field would be a field that calculated AGE based on today's date and a patient's DATE OF BIRTH field. Because the field is a COMPUTED DATA TYPE, it can output a patient's current age based on whatever today's date is. You can't edit the AGE field, but you can use it to print out the current age of the patient.
You're most likely to come across COMPUTED fields when printing with the CAPTIONED PRINT template. Choosing the CAPTIONED OUTPUT template automatically outputs all normal fields containing data for each entry in a report. However, you must choose whether you want COMPUTED fields included in the output as well:
NOTE: For more information on CAPTIONED output, please refer to the "Inquire" and "Print" chapters in this manual.
A POINTER TO A FILE-type field is a field that directs the computer to another file for information. If you're working in the PATIENT file, for example, and you've reached a field that asks for the patient's STATE, the field is probably a POINTER TO A FILE field that "points" to the STATE file. Because of pointers, such commonly used information as states can be stored in a single STATE file. Then, every file (PATIENT, VENDOR, INSURANCE, etc.) that needs to record a value for STATE can use a POINTER TO A FILE field to the STATE file to store that information.
If the choice you need is not listed, you can add that choice by typing it in (provided you have LAYGO access to add the entry). If the entry you enter is not matched, you're asked if you want to add a new entry. If you answer YES, VA FileMan adds the new entry. For example, if there was a state that did not have an entry in the STATE file, you could add it by entering it at the "STATE:" field prompt.
A VARIABLE-POINTER-type field is like the regular POINTER TO A FILE field type, with one difference: the VARIABLE-POINTER DATA TYPE can point to a single record in one of several files, whereas the regular POINTER TO A FILE DATA TYPE can point to a single record in only one file. The PATIENT file, for example, might use a VARIABLE-POINTER to identify a Provider; the Provider might be a Staff Provider, stored in the PROVIDER file, or an Outside Provider, stored in another file.
Let's say you're working in a PATIENT file entry, and you need information that explains how to look up a name listed in one of several files. To get Help, simply enter a single question mark ("?") at the "PROVIDER" prompt. Now, on your screen, you'll see instructions that explain how to choose a Provider from either of the two files being pointed to:
With VARIABLE-POINTER fields, you need to use a PREFIX in addition to an entry name to select an entry. In this example, the online Help tells you that to select a Staff Provider, prefix the Provider's name with "S.". To select an Outside Provider, prefix the Provider's name with "O.".
You can enter a PREFIX and a question mark to get a list of entries in a particular pointed-to file. For example, if you enter "S.?" you can get a list of all Staff Providers. Likewise you can enter "S.SMITH" to get a list of all Staff Providers whose last names are SMITH. You can also enter "S.SMITH,JOSEPH" to select a Staff Provider named Joseph Smith.
PROVIDER: S.? CHOOSE FROM: ALLEN,JAKE ANDREWS,JOHN :
You can also select an entry in a VARIABLE-POINTER field by just entering a name without the PREFIX. In this case, VA FileMan searches each pointed-to file in succession until a match is found.
NOTE: This method requires more processing time, since VA FileMan will need to search the various pointed-to files.
For example, to choose a Provider without specifying in which file the Provider can be found, enter the Provider name only:
PROVIDER: MCCOY,LEONARD M Searching for a Staff Provider Searching for a Outside Provider MCCOY,LEONARD M ...OK? YES// (YES)
You can add an entry to one of the files that is being pointed to by a VARIABLE-POINTER field. To do this, enter the appropriate PREFIX and the new name to add at the field prompt.
For example, to add "MCCOY,LEONARD M" as an Outside Provider (not a Staff Provider), use the appropriate PREFIX when adding the new entry (in this case, "O."). When the requested name is not found, you're asked if you want to add the Provider as a new entry. To add the entry, enter YES:
PROVIDER: O.MCCOY,LEONARD M.
Are you adding 'MCCOY,LEONARD M.' as a new OUTSIDE PROVIDER? No// YES
OUTSIDE PROVIDER SEX: MALE
OUTSIDE PROVIDER DATE OF BIRTH: 020235 (FEB 02, 1935)
OUTSIDE PROVIDER SSN: 654987321
A field defined as a BOOLEAN data type can have only two entry choices: YES or NO. The internal values of the BOOLEAN DATA TYPE is set to 1 for YES and 0 for NO.
BOOLEAN: ? Choose from: 1 YES 0 NOBOOLEAN: N NO
A field defined as a LABEL REFERENCE data type is designed to store a tag and routine entry of the format, TAG^ROUTINE. It is stored as a free-text field.
LABEL REFERENCE: TEST^BOO
A field defined as a TIME data type can accept many of the date/time entries, but only stores the TIME portion.
TIME: ? Enter 'NOW' or some valid time like '2:33PM' Time may include seconds. TIME: 15:09:43 (15:09:43)
A field defined as a YEAR data type can accept many of the date entries, but only stores the YEAR portion.
YEAR: ? Enter a 4-digit year, e.g., '2015'. Must not be earlier than 1980 Examples of Valid Dates: JAN 20 1957 or 20 JAN 57 or 1/20/57 or 012057 (omitting punctuation) T (for TODAY), T+1 (for TOMORROW), T+2, T+7, etc. T-1 (for YESTERDAY), T-3W (for 3 WEEKS AGO), etc. If the year is omitted, the computer uses CURRENT YEAR. A 2-digit year means no more than 20 years in the future, or 80 years in the past. You may omit the precise day of the month, e.g.: Jan, 1957 YEAR: 2014
A field defined as a UNIVERSAL TIME data type can accept many of the date/time entries and stores the date/time in a format with the local time and includes an indicator showing the offset from Universal Time.
The first 14 characters of the internal storage of the UNIVERSAL TIME data type are exactly like the current DATE/TIME data type that includes seconds. The three characters in position 15, 16, and 17 indicate the UTC time offset in five (5) minute increments. In the example below: (440-500)/12=-5, this is a negative five hour offset from UTC.
External: JAN 6,2016@08:03:36 (UTC-5:00) Internal: 3160106.080336440
A field defined as a FT POINTER data type works similar to the POINTER data type, but internally stores the free text that was returned from the pointed-to value. The example below shows selecting the first entry from File 200 (NEW PERSON).
FREE TEXT POINTER: `1 USER,ONE DBA
A field defined as a FT DATE data type works similar to the DATE/TIME data type, but internally stores the free text that was input by the user to determine the date. So, for example, typing T-1 to store yesterday's date will not actually store yesterday's date, but "T-1", implying a relative date.
FREE TEXT DATE: ? Examples of Valid Dates: JAN 20 1957 or 20 JAN 57 or 1/20/57 or 012057 T (for TODAY), T+1 (for TOMORROW), T+2, T+7, etc. T-1 (for YESTERDAY), T-3W (for 3 WEEKS AGO), etc. If the year is omitted, the computer uses CURRENT YEAR. Two digit year assumes no more than 20 years in the future, or 80 years in the past. FREE TEXT DATE: T-1 (NOV 26, 2017)
A field defined as a RATIO data type is designed to accept two numbers with a colon â€œ:â€ between the two numbers. It is formatted and stored like a mathematical ratio.
Sometimes, a single field in a record is not enough to hold all the information required. For example, to keep track of the appointment history for a patient, a single field would not be enough. An ordinary field could only hold enough information to record a single appointment. But there needs to be a way to record as many appointments as a patient has had, which could range from none to several hundred. In addition, each appointment might have its own information that needs to be stored, such as date, time, location, doctor, etc.
This situation is handled with what are known as Subfiles (also known as Multiples). Within an individual record, a Subfile (Multiple) can be used to hold this type of information.
The fields in a Subfile (in this example, DATE, TIME, LOCATION, and DOCTOR) are called Subfields.
The word "Select" is always the first part of the prompt when you encounter a Multiple, to indicate that you are choosing among one of several possible values on file:
If, for a given Multiple, more than one entry has already been entered, the most recently created entry is displayed as a default. To see the list of entries already in the Mmultiple, enter two question marks ("?? ") at the "Select..." prompt.
Because they are so useful, Subfiles (Multiples) are widely used throughout VistA. They are usually straightforward to use, because their structure as Subfiles mirrors the real-world structure of the information. For example, for a purchase order, the top-level record would be the purchase order. Because a single purchase order needs a place to store as few or as many items as are requested, the purchase order record has a Multiple to record the order items for the purchase order.
Subfiles can themselves contain Subfiles creating additional levels in files.
Reviewed/Updated: March 4, 2007