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 eSchoolPlus. eSchoolPlus 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.
Prerequisites
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.
Note: If 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_Date | Error_Code | Error | Message Type | Message |
---|---|---|---|---|
mm/dd/yyyy | 101-6 | Application Reject | Error | First 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 Code | Status Text | Description/Comment |
---|---|---|
Success | ||
0 | Message Accepted | Success. Optional, as the AA conveys this. Used for systems that must always return a status code. |
Error Status Codes | ||
100 | Segment sequence error | The message segments were not in the proper order or required segments are missing. |
101 | Required field missing | A required field is missing from the segment. |
102 | Data type error | The field contained data of the wrong date type, e.g., an NM field contained letters of the alphabet. |
103 | Table value not found | A field of data type ID or IS was compared against the corresponding table, and no match was found. |
Rejection Status Codes | ||
200 | Unsupported messages types | The message type is not supported. |
201 | Unsupported event code | The event code is not supported. |
202 | Unsupported processing ID | |
203 | Unsupported version I.D. | |
204 | Unknown key identifier | The 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. |
205 | Duplicate key identifier | The ID of the patient, order, and so on already exists. Used in response to addition transactions (Admit, New Order, and so on.) |
206 | Application record locked | The transaction could not be performed at the application storage level, for example, database locked. |
207 | Application internal error | Catchall for internal errors not explicitly covered by other codes. |
Application Error Codes
Status Code | Status Text | Description/Comment |
---|---|---|
1 | Illogical date error | Date conflicts with another date in the message |
2 | Invalid date | Date is not valid or lacks precision. |
3 | Illogical value error | The value conflicts with other data in the message. |
4 | Invalid value | The value is not valid. This applies for fields that are not associated with a table of values. |
5 | Table value not found | The value is not found in the associated table. |
6 | Required observation missing | A required observation, such as VFC eligibility status, is missing. |
Error
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.
Value | Description | Comment |
---|---|---|
OK | Data found, no errors (this is the default) | |
NF | No data found, no errors | |
AE | Application Error | Query had an error in content or format. |
AR | Application Reject | QBP message can be parsed as a query, but contains fatal errors. |
TM | Too many candidates found | To many possible matches, query must be narrowed down. |
PD | Protected Data | Patient’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.
Message
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.