This chapter provides instructions on creating MSIB nodes and configuring the HL7 Service. From a high level, creating and configuring nodes is a two-step process:
1. Create a virtual node in MSIB.
2. Configure the HL7 Service for the virtual node to receive data from the HL7 system.
MSIB supports two types of HL7 nodes, specifically, HL7 bed status and HL7 scheduling.
For a HL7 bed status node, the Building Management System will decode the bed status as follows:
For a HL7 scheduling node, the Building Management System will receive a BACnet object for the OR Occupancy as a Boolean BV object with the following states:
0 Unoccupied (OFF, FALSE)
1 Occupied (ON, TRUE)
Collecting Data
To create MSIB nodes and configure services, the following source and client information is required:
- Online access to the HL7 system will be necessary to allow MSIB to receive the information. You will need to know the port used by HL7 and ensure that this port is added to the firewall rules on the MSIB machine.
Before Beginning
Before creating any nodes, complete these prerequisites.
Before creating and configuring the MSIB nodes, prepare the following dependencies. MSIB is dependent on the following:
- CVS file that maps HL7 room identifiers to the points that the MSIB node will expose.
- Note: If using both HL7 features, bed status and OR scheduling, users will need separate CSV files. For bed status, Siemens recommends to split up the configuration file if there are more than 500 beds.
- To discover the MSIB BACnet objects in the BMS, both systems should be on the same subnet. If MSIB is not on the same subnet as the BMS system, the systems should be linked together with BBMDs.
- Note: MSIB cannot act as a BBMD and cannot attach itself to a BBMD as a foreign device.
- HL7 system set up to send HL7 messages in the format required by MSIB.
- For other HL7 Service requirements, see the section titled MSIB Application Requirements.
HL7 Format
HL7 messages are directed to a specific device. In this case, they need to be directed to MSIB. The HL7 Bed Status node and the HL7 Scheduling node can both be used simultaneously but must be created in separate nodes.
HL7 Format for Bed Status
To ensure that MSIB will be able to process the HL7 data, give the MSIB HL7 Bed Status template file to the hospital IT department to properly set up the HL7 message. This template is available on Standard Apps, along with the MSIB installer. The HL7 administrator must create an A20 message for each bed to be sent directly to the instance of MSIB (IP address and listening port). The format of the bed status message must adhere to the following schema so that MSIB can decode it:
Using the data from the HL7 bed status message, the BAS will decode the bed status to a multistate value object from the following potential states
If two beds are in one room, they are represented as Bed_A and Bed_B.
HL7 Format for Scheduling
The Hospital Management System can send schedule information to the Building Management System by setting up the specific HL7 messages to be sent to MSIB. The BAS will use the active or inactive scheduling information to know whether or not to condition the room.
The HL7 implementer must create a scheduling message to be sent directly to the instance of MSIB (IP address and listening port). MSIB uses the schedule ID, start time, duration, and offset. The HL7 messages with corresponding MSIB actions are as follows:
The HL7 administrator must follow guidelines in setting up the messages for MSIB.
- Each appointment must have a unique ID.
- All schedule messages are location (room) specific. A location entails facility, building, floor, and room.
- Only booked schedules should be sent to MSIB, no fillers or placeholders.
- Schedule messages should use minutes as the time unit.
- Schedules can be created, modified, and deleted.
- MSIB does not police for over booking of rooms, so stacked appointments are okay.
- Only information about schedule location should be sent to MSIB. Do NOT send other resource information or personally identifiable information.
- The HL7 message must be a valid message.
Typical HL7 Scheduling Message
A typical HL7 schedule message will look like this:
This message is broken down to the following information:
Appointment Date/Time Format
MSIB bases all schedules on the location time of the machine running MSIB. Schedules round down to the nearest minute. For example, if an appointment is scheduled for 10:20:34, MSIB will use 10:20:00. The date/time format is as follows:
A schedule always ends at midnight. If a schedule extends over midnight, it will be treated as two schedules, one for each day.
Schedule Offset
The actual start or end time of a schedule is calculated by using the scheduled time plus or minus an HL7 offset. Additionally, there is a settable advance time in MSIB to accommodate a ramp up or ramp down time for the BMS to have the room ready at the requested schedule time. If the actual start time already passed when the schedule is received, MSIB will go to occupied in the next one-minute interval.
The appointment duration, HL7 offset, and room offset all combine to determine the start and end times received by the BMS. This combination is illustrated in the example that follows of a one-hour appointment with an HL7 start time of 10:00.
HL7 CSV Import Files
MSIB uses a CSV import file to map the HL7 information to the virtual node. The HL7 Bed Status and the HL7 Scheduling each require a CSV file.
HL7 Bed Status CSV Import File
MSIB uses a simple CSV import file to map the beds to the BACnet objects. This will need to be manually created before the MSIB node is created. A sample is available on Standard Apps. The CSV file for the configuration of MSIB Bed Status must contain the following columns:
Building Floor Room Bed MAC_Address Network Point_Instance
Building - Building name (must match the building name in the HL7 message)
Floor - Floor description (must match the floor name in the HL7 message)
Room - Room description (must match the room name in the HL7 message)
Bed - Bed name (must match the bed name in the HL7 message)
MAC_Address - Any number. (Example uses “0”)
Network - Any number. (Example uses “0”)
Point_Instance - Unique BACnet instance number for the object
Below is the contents of a sample CSV configuration file for MSIB Bed Status.
The CSV file must be saved as CSV file with a comma as separator.
HL7 Scheduling CSV Import File
MSIB uses a simple CSV import file to map the schedule to the location. This will need to be manually created before the MSIB node is created. A sample is available on Standard Apps. The MSIB CSV configuration file maps the schedule to an OR location. The columns contain the following:
Column 1 - Point name
Column 2 - Point instance
Column 3 - Room offset (minutes the schedule will start early)
Column 4 - Facility name
Column 5 - Building name
Column 6 - Floor name
Column 7 - Room name
Below is the contents of a sample CSV configuration file for MSIB OR Scheduling.
MSIB Bed Status Timeout Feature
Starting with version 3.3, MSIB provides an optional timeout feature for the HL7 Bed Status service. This feature monitors if any bed status messages are received from the Hospital Management System (HL7 system).
If no bed status messages are received by MSIB for “n” number of minutes, MSIB will set all bed status objects to a value of occupied and their status to failed on the next full minute. If any new bed status message is received, then the timeout timer will be reset. Bed status objects will stay failed until a specific bed status message for the specific object is received.
To use the timeout feature, a line must be added to the sys.config
file. The default location of the sys.config
file is:
C:\Program Files\MSIB\msib\releases\<MSIBVersionNumber>
The line to be added is as follows, where “n” should be replaced by the timeout time in minutes:
{hl7_bedstatus_heartbeat_minutes, n}
Each line in the properties section of the sys.config
file must end in a comma, except the last property defined.
If the new line hl7_bedstatus_heartbeat_minutes
is added as the last property, do not add a comma at the end, but be sure to add a comma to the previous line.
If the new line hl7_bedstatus_heartbeat_minutes
is added between existing properties, add a comma to the end of the new line.
Note: It is necessary to restart the MSIB service after a change of the sys.config
file. The timeout feature is only available for HL7 Bed Status.
Creating a Single Node
To create an MSIB node for receiving HL7 information, you will need to use the Create Single Node option. This single node will appear as a BACnet device to any connected BACnet systems. All BACnet objects for the HL7 information will appear under one virtual node.
Creating an HL7 Bed Status Node
Before creating the node, consider how it will appear to the client system. This client or consumer is the device or system that is ultimately going to use the data made available via MSIB. Six pieces of information are needed to create a new node. Three of them are filled in by default but may be overwritten to customize the virtual node to conform to site specific guidelines. To create a BACnet virtual node in MSIB the following must be entered:
- MSIB Virtual BACnet Node Name
- BACnet Object Name
- BACnet Description
- MSIB Virtual BACnet Device Instance number
- Network Number on which the MSIB Virtual BACnet node will reside
- BACnet MAC Address
Follow the process described below to create a single HL7 Bed Status node.
To begin, select the Create single node button.
The following window opens.
1. Each node in MSIB must have a unique name. Enter a Node Name. Consider how the data is to be presented to the client.
2. Optionally enter a BACnet Object Name and BACnet Description. If nothing is entered in these fields they default to being the same as the Node Name.
3. Enter the BACnet Device Instance number for the virtual node, again keeping in mind how the node will appear to the client system. In a BACnet system the Instance number must be unique on a network segment.
4. Enter the BACnet Network number for the new virtual node. The Network Number identifies the devices that reside on a particular network segment.
5. Enter a BACnet MAC Address for the virtual MSIB node. This number is required in BACnet for message routing. In MSIB the BACnet MAC Address defaults to be the same as the Instance number but this may be overwritten to meet site specific requirements.
Creating an HL7 Scheduling Node
Before creating the node, consider how it will appear to the client system. This client or consumer is the device or system that is ultimately going to use the data made available via MSIB. Six pieces of information are needed to create a new node. Three of them are filled in by default but may be overwritten to customize the virtual node to conform to site specific guidelines. To create a BACnet virtual node in MSIB the following must be entered:
- MSIB Virtual BACnet Node Name
- BACnet Object Name
- BACnet Description
- MSIB Virtual BACnet Device Instance number
- Network Number on which the MSIB Virtual BACnet node will reside
- BACnet MAC Address
Follow the process described below to create a single HL7 Scheduling node.
To begin, select the Create single node button.
The following window opens.
1. Each node in MSIB must have a unique name. Enter a Node Name. Consider how the data is to be presented to the client.
2. Optionally enter a BACnet Object Name and BACnet Description. If nothing is entered in these fields they default to being the same as the Node Name.
3. Enter the BACnet Device Instance number for the virtual node, again keeping in mind how the node will appear to the client system. In a BACnet system the Instance number must be unique on a network segment.
4. Enter the BACnet Network number for the new virtual node. The Network Number identifies the devices that reside on a particular network segment.
5. Enter a BACnet MAC Address for the virtual MSIB node. This number is required in BACnet for message routing. In MSIB the BACnet MAC Address defaults to be the same as the Instance number but this may be overwritten to meet site specific requirements.
Configuring an HL7 Service
For each HL7 node, configure a corresponding HL7 service by following the steps detailed below.
6. Select the corresponding HL7 Service of either HL7 Bed Status Service or HL7 Scheduling Service from the Service drop-down list.
7. From the Import Type, select the corresponding HL7 Bed Status CSV File or the HL7 Scheduling CSV File.
8. Use the Choose file button to select the desired CSV file.
9. When finished, click the Create and Start button. After a successful create and start, the Nodes list will appear with the new Nodes created in the list.
Notes
1. After creating a new HL7 node, the BACnet objects will fail until the node receives the first HL7 message.
2. All BACnet objects created with one HL7 import file show under one virtual node.
3. For details about the operation of nodes, see the section titled Working with Nodes.