Skip to main content
Skip table of contents

VIIS and eSchoolPlus Integration with HL7 Messages

The Virginia Immunization Information System (VIIS) plays a vital role in regard to patient care and public health planning. Every healthcare provider’s electronic medical record (EMR) will be the system of origin for immunization data. Data is sent from the EMR through Virginia’s Health Information Exchange, Connect Virginia, and on to VIIS. VIIS then sends a response back to the provider through Connect Virginia letting the provider know if the message was received and if there were errors. In addition, EMR providers can send a message to VIIS querying a patient’s immunization history. VIIS responds to these messages as well with the results of the query. These results can be an exact match, a partial match, or no match. In the case of an exact match, a patient’s immunization record from VIIS is sent to the EMR. 

All information sent to VIIS and received from VIIS happens only through Connect Virginia. All exchanges of immunization data between an organization and VIIS use the Health Level Seven (HL7) standard protocol.

The integration of eSchoolPlus with the Virginia Immunization Information System (VIIS) is completed using the HL7 messaging standards. This is a bidirectional integration having the capabilities of Request (Query) and Response from VIIS. Here, data will only be moving from VIIS to eSchoolPluseSchoolPlus does not send any data back to VIIS. eSchoolPlus can only query or request a student record, and VIIS will respond with the immunization data of the student being queried or requested if the student exists in their database. If the student does not exist, appropriate error messages will be sent back to eSchoolPlus.

After data is received in eSchoolPlus in the form of a response from VIIS, you can choose to import the data to overwrite the existing records for that student.


Add all the vaccination's CVX code, vaccination code, and descriptions correctly into the CVX Code for Vaccine validation table. 

Code for Vaccines (CVX) are codes that indicate the product used in a vaccination. These codes are maintained by the Centers for Disease Control and Prevention, Immunization Information System Support Branch (IISSB) for use in the HL7 data transmission.

CVX Multiple individual vaccines that can be used to vaccinate against a disease are grouped into a Vaccine Group (sometimes known as vaccine family), and in many cases, these groups represent vaccines that vaccinate against a single disease. In a few cases, they represent vaccines that vaccinate against more than one disease, but are grouped together because clinicians have thought of them as a unit. 

For example, the DTAP vaccine in the CVX Code for Vaccine validation table has the CVX Code as 20 and the Vaccination Code as DTAP.

Refer to the CVX to Vaccine Groups to find all the CVX codes and their respective vaccination codes.

VIIS Request

Menu path: Select Regulatory from the main menu, select the VIIS submenu, choose VIIS, and then select Request.

  • After clicking Request, the Student Search page is displayed with a list of students.

  • Find the student you want to submit the VIIS request and click on their name.

  • The VIIS Request page is displayed with the student details (First Name, Middle Name, Last Name, Gender, and Birthdate).

  • Review the provided information.

  • Click the Send Request icon to submit the request to VIIS.

After receiving the response (either it is a success or an error), the VIIS Request page automatically redirects to the VIIS Response page.

NoteIf you want to return to the VIIS Request page at any time, you can use the Back button in your web browser, use the navigation menu options, or use the search option within the application.

VIIS Response

Menu path: Select Regulatory from the main menu, select the VIIS submenu, choose VIIS, and then select Response.

  • After clicking Response, the Student Search page is displayed with a list of students.

  • Find the student you want to check the VIIS response and click on their name.

  • The VIIS Response page is displayed with the student's vaccination details if it is a success or error details if there is no data.

  • Review the received information.

  • Click the Import icon to update the immunization information of the student with the response received from VIIS.

On the VIIS Response page, the Last Updated label shows the timestamp of the response received for the student and the Response Status label shows either Success or Error. 

Note: If you do not wish to update the immunization information of the student with the response received from VIIS, do not click the import icon.

VIIS Error Information

After you have requested VIIS for a student’s immunization record, if an error is received as a response from VIIS, the Response page for the student will show the error received from VIIS with the following details in a tabular format: Response Date, Error Code, Error, Message Type, and Message.

Response_DateError_CodeErrorMessage TypeMessage
mm/dd/yyyy101-6Application RejectErrorFirst Name is a required field

The different parts of the error log are described as follows.

Response Date

The most recent date when the request was made, and the error response was received.

Error Code

Identifies the HL7 error code. This is a combination of error code and application error code as specified by VIIS. Both the tables have been added for reference.

In the given example:

101 - is the Error Code, which is generated when a required field is missing.

6 - is the Application Error Code, which is generated when a required observation is missing.

On receiving the above error code, you should check if the student data sent has the mandatory fields (First Name, Last Name, and Birthdate) stored in eSchoolPlus.

Error Codes

Status CodeStatus TextDescription/Comment
0Message AcceptedSuccess. Optional, as the AA conveys this. Used for systems that must always return a status code.
Error Status Codes
100Segment sequence errorThe message segments were not in the proper order or required segments are missing.
101Required field missingA required field is missing from the segment.
102Data type errorThe field contained data of the wrong date type, e.g., an NM field contained letters of the alphabet.
103Table value not foundA field of data type ID or IS was compared against the corresponding table, and no match was found.
Rejection Status Codes
200Unsupported messages typesThe message type is not supported.
201Unsupported event codeThe event code is not supported.
202Unsupported processing ID
203Unsupported version I.D.
204Unknown key identifierThe ID of the patient, order, and so on was not found. Used for transactions other than additions, for example, transfer of a non-existent patient.
205Duplicate key identifierThe ID of the patient, order, and so on already exists. Used in response to addition transactions (Admit, New Order, and so on.)
206Application record lockedThe transaction could not be performed at the application storage level, for example, database locked.
207Application internal errorCatchall for internal errors not explicitly covered by other codes.

Application Error Codes

Status CodeStatus TextDescription/Comment
1Illogical date errorDate conflicts with another date in the message
2Invalid dateDate is not valid or lacks precision.
3Illogical value errorThe value conflicts with other data in the message.
4Invalid valueThe value is not valid. This applies for fields that are not associated with a table of values.
5Table value not foundThe value is not found in the associated table.
6Required observation missingA required observation, such as VFC eligibility status, is missing.


Displays the Query Response Status. This field allows the responding system to return a precise response status. The following table contains the values that would be returned by VIIS in this field. 

Response status value's description is displayed in the Error column of the error log.

OKData found, no errors (this is the default)
NFNo data found, no errors
AEApplication ErrorQuery had an error in content or format.
ARApplication RejectQBP message can be parsed as a query, but contains fatal errors.
TMToo many candidates foundTo many possible matches, query must be narrowed down.
PDProtected DataPatient’s data marked as “not shared” in VIIS.

Message type

This will always be shown as “Error” since the expected Response has not been received from VIIS.


This is a short description of the actual error encountered in getting the Student Immunization details from the VIIS. In the given example, it is mentioned that the first name is missing for the student, which is the reason that no response was received from VIIS.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.