![](media/image1.png){width="5.997222222222222in"
height="0.6756944444444445in"}

ICSGENERATOR

USER'S Guide

Table of Contents

[1. Background 3](#background)

[2. Installation 5](#installation)

[2.1 Download and Installation Information
5](#download-and-installation-information)

[2.2 System Requirements 5](#system-requirements)

[3. Running the ICSGenerator Tool 5](#running-the-icsgenerator-tool)

[3.1 Project Menu 6](#project-menu)

[3.1.1 Device Specialization (DIM XML)
8](#device-specialization-dim-xml)

[3.2 Implementation Conformance Statements (ICSs)
22](#implementation-conformance-statements-icss)

[3.3 Tools menu 28](#tools-menu)

[3.3.1 Compare Devices 28](#compare-devices)

[3.3.2 UML Diagram 30](#uml-diagram)

[3.3.3 Validate Tool 32](#validate-tool)

ICSGenerator User's Guide

## 1. Background

The IEEE 11073 Standard is a family of documents that defines the entire
seven layer communications requirements for the \"Medical Information
Bus\" (MIB). The objective of this standard is to standardize data
communications for patient connected bedside devices, optimized for the
acute care setting, to allow clinicians to set up device communications
in a \"plug and play\" fashion.

NIST is collaborating with medical device experts to facilitate the
development and adoption of standards for medical device communications
throughout the healthcare enterprise as well as integrating it into the
electronic health record.

The ICSGenerator tool is an effort initiated by National Institute of
Standards Technology (NIST) and IEEE 11073 Working Groups to help in
capturing the relationships among the managed objects and the data
necessary to generate Implementation Conformance Statements (ICS). An
ICS discloses details of a specific implementation and specifies which
features are provided. The tool was also designed, to aid in the IEEE
11073 test development process by providing a mechanism for test
identification.

Figure 1 depicts a functional overview of the ICSGenerator tool.
Processing is XML based. An XML instance of the DIM XSchema (An
electronic version of the IEEE 11073 DIM developed by NIST) was created
to capture all the managed objects, their relationships and the
information associated to each of them, such as attributes, behaviors
and notifications. The ICSGenerator loads the XML file, provides with
the capabilities of adding, removing and updating managed objects
including its attributes, behaviors and notifications. Based on this
information the tool generates an XML file representing the containment
tree that describes the medical device as specified by the implementer
in conformance with the IEEE 11073 standard. The XML file contains the
data required to generate ICS reports and any other reports related to
the information model or the implementation containment tree. NIST plans
to utilize this tool as a test isolation mechanism for the IEEE 11073
implementation testing.

![](media/image2.png){width="4.479166666666667in"
height="3.1354166666666665in"}

**Figure 1. Overview of ICS-Generator**

## 

## 2. Installation

### 2.1 Download and Installation Information

> ICSGENERATOR can be downloaded at:
> <http://www.nist.gov/medicaldevices>

Click on the **ICSGenerator** link

Click on the **Download** link

Select **NIST ICSGenerator 3.2.1** to download a self-installing
executable jar file.

Follow the self explanatory instructions provided by the installer. The
source code and libraries are included in the install directory.

### 2.2 System Requirements

> ICSGenerator 2.1 uses Java and XML Technologies. The following
> software is required:

-   Java JDK 6

> ICSGenerator has been tested on Windows XP but since it is Java based,
> it is likely that the software will run on other system
> configurations.

## 3. Running the ICSGenerator Tool

> Once the installation is complete, double click the ***ICSGenerator***
> icon to start the tool.
>
> The ICSGenerator main screen should pop up giving you four menu
> options. Each menu option is explained in the following sections.
>
> ![](media/image3.png){width="6.625in" height="5.9875in"}

### 3.1 Project Menu 

![](media/image4.png){width="5.993055555555555in"
height="5.977777777777778in"}

The project Menu options allow the user to:

-   create a new project by selecting the **"New"** option.

    -   This option is usually selected the first time you use the tool
        to create a new project or device specialization.

    -   A profile type and a device type must be selected:

        -   Profile types: baseline, polling mode, PHD or a PHD
            specialization

        -   Device type: agent or manager

> **NOTE:** When selecting a PHD Specialization, a profile of that
> particular specialization is loaded.

-   open a project by selecting the **"Open Project..."** option.

    -   This menu option allows the user to start the process with a
        previous version of a project.

    -   A project includes; Implementation Conformance Statements
        (ICS's), device specialization and profile type.

    -   The project file extension is ".ics".

-   save a project by selecting the **"Save"** option.

    -   This menu option allows saving a current or working project
        under the same file name.

-   save a project by selecting the **"Save as"** option.

    -   This menu option allows saving a project under a different file
        name.

-   export the Implementation Conformance Statements in PDF format by
    selecting the **"Export PDF Report..."** option,

    -   The user must generate the ICS before selecting this option.

-   generate HL7 OBX message by selecting the **"Generate HL7 OBX**
    **Message ..."** option.

    -   This option allows mapping device attributes and related
        information to observation segments in HL7 messaging format.

    -   If this option is selected a screen will pop up displaying the
        OBX segment in XML, an option to save this file is also
        available.

-   import ICS's and specialization profiles individually instead of a
    project, by selection the "**Import"** option.

    -   The import option is available when a new project is created and
        a profile type is selected.

    -   Allows the user to import a specialization profile to be used as
        model for a new project or new specialization, i.e. a
        specialization of an "infusion pump".

-   exit ICSGenerator completely, by selection the **"quick"** option.

    -   No files are saved with this option.

### 3.1.1 Device Specialization (DIM XML)

> Th*e **ICSGenerator ***tool provides a mechanism to generate x73
> "Device Specializations". The tool allows the generation of X73
> "*classic"* and X73-PHD device specializations. The process is driven
> by the IEEE 11073 DIM and the IEEE11073-20601 DIM which are
> represented in XML. The DIM model in conjunction with the device
> profile and device type provides the basis for the generation of
> device specializations. The device specialization is saved in XML
> format and it provides the information necessary to generate the
> Implementation Conformance Statement (ICS) tables.
>
> Using the ***ICSGenerator*** tool's interface a user specifies the
> type of medical device to generate or process.
>
> ![](media/image5.png){width="5.995138888888889in"
> height="6.0256944444444445in"}
>
> The user could generate a device specialization from scratch, import a
> device specialization to model the new device or use a default
> profile.
>
> ![](media/image6.png){width="5.993055555555555in"
> height="5.993055555555555in"}
>
> For every selection, the tool will provide a graphical containment
> tree representation to help in defining the device. The following
> figure shows an imported PHD specialization:
>
> ![](media/image7.png){width="5.99375in" height="5.99375in"}
>
> This interface allows the user to modify and define its device
> specialization. Click on an object to see information such as Object
> Class, Object Name, Label, Reference, Attributes, Behavior, and
> Notification etc...
>
> ![](media/image8.png){width="5.997916666666667in"
> height="5.990277777777778in"}
>
> Right click on an object to:
>
> **\"Add MOC\"** to add a new Managed Object Class (MOC)\
> **\"Remove MOC\"** to remove MOC\'s
>
> **\"Update Attributes...\"** to update the attributes for the selected
> MOC
>
> **\"Update Behaviours...\"** to update the behaviours for the selected
> MOC
>
> **\"Update Notifications...\"** to update the Notifications for the
> selected MOC
>
> ![](media/image9.png){width="5.997916666666667in"
> height="6.0055555555555555in"}
>
> Highlight a MOC and then click the **Add MOC** button to see a list of
> MOCS's that can be added. The new MOC will be added as a child of the
> highlighted MOC.
>
> Highlight a MOC and then click the **Remove MOC** button to remove the
> MOC and all its children from the JTree.
>
> In the example below we are adding a new Enumeration MOC.
>
> ![](media/image10.png){width="5.993055555555555in"
> height="6.0152777777777775in"}
>
> As you add or remove selected MOC\'s you should see the JTree changing
> to reflect the addition or removal of MOC\'s. You can also add a
> **Object Type ID, Term Code, Label**, **Restrictions**, **Application
> Guidance**, **CREATE/DELETE Service Support** and **Comments** for a
> MOC by typing data into the respective boxes and clicking on **\"Add
> Changes\"**.
>
> Click on the **\"Update Attributes...\"** button to update the
> Attribute List for the selected MOC. Users can modify the Attribute
> List by Adding/Removing attributes. Users are also able to add Private
> Attributes to the selected MOC. However, a mandatory attribute may not
> be removed from the MOC.
>
> ![](media/image11.png){width="5.997916666666667in" height="6.0125in"}
>
> Click on the **Add changes** button to capture the changes.

Click on the **\"Update Behaviors...\"** button to update the Behavior
List for the selected MOC. Users can modify the Behavior List by
Adding/Removing behaviors. Users are also able to add Private Behaviors
to the selected MOC. However, a mandatory behavior may not be removed
from the MOC.

> ![](media/image12.png){width="5.998611111111111in"
> height="5.998611111111111in"}
>
> Click on the **Add changes** button to capture the changes.
>
> Click on the **\"Update Notifications...\"** button to update the
> Notification List for the selected MOC. Users can modify the
> Notification List by Adding/Removing notifications. Users are also
> able to add Private Notifications to the selected MOC. However, a
> mandatory notification may not be removed from the MOC.
>
> ![](media/image13.png){width="5.998611111111111in"
> height="6.021527777777778in"}
>
> Click on the **Add changes** button to capture the changes.
>
> ICSGenerator also allows modification of specific attributes,
> behaviors and notifications for each MOC. Click on the "**Attribute
> Name**" combo box to see a list of attributes of the highlighted MOC.
>
> ![](media/image14.png){width="6.0in" height="6.006944444444445in"}
>
> In this example the **Dev-Configuration-id** attribute has been
> selected and will produce the following screen when clicked on:
>
> ![](media/image15.png){width="5.998611111111111in"
> height="6.575694444444444in"}

The user could provide additional information such as:

-   **Restrictions**

    -   User supplied information detailing any restrictions.

-   **Application Guidance**

    -   User supplied information about attribute selected.

-   **Attribute Access**

    -   User supplied information showing the attribute access of the
        selected attribute such as GET, SET, SCAN...

-   **Value**

    -   User supplied information showing a value for the attribute

-   **Value ranges**

    -   User supplied information showing value ranges for the attribute
        selected, only if applicable.

-   **Comments**

    -   User supplied comments for the attribute.

Click on **"Add"** button to capture the information entered.

> If a behavior is selected the following screen will be displayed and
> the following information should be provided:
>
> ![](media/image16.png){width="5.997222222222222in"
> height="5.989583333333333in"}

-   **Restrictions**

    -   This field captures restrictions entered for the behavior.

-   **Comments**

    -   This field captures comments entered for the behavior.

> Click on the "**Add**" button to capture the information entered.
>
> If a notification is selected the following screen will be displayed
> and the following information should be provided:
>
> ![](media/image17.png){width="6.0in" height="5.992361111111111in"}

-   **Restrictions**

    -   This field captures restrictions entered for the notification.

-   **Comments**

    -   This field captures comments entered for the notification.

> Click on the "**Add**" button to capture the information entered.

Remember **"Add changes"** and **"Add",** only capture the changes made
to the device specialization. To save the changes permanently, just
click "Save as" under the "Project" menu or click on the "XML" tab
located at the bottom panel then click on "Generate xml File" and
"Export XML File" .

Saving a project and exporting an xml file are two different tasks. When
a project is saved, the user is saving everything related to the project
including the ICS's and the device specialization. When an xml file is
exported is only saving the device specialization in XML format. The
ICSs can also be individually saved in an xml file; section 2.3.3 will
elaborate more on how to accomplish this task.

### 3.2 Implementation Conformance Statements (ICSs)

> Implementation Conformance Statements (ICSs) are statements of
> conformance providing specific details about a device.
>
> ICSGenerator allows the user to generate these ICSs in the format
> specified in the ISO/IEEE 11073-10201 (Domain Information Model) and
> ISO/IEEE 11073-20601 specifications.
>
> ICSGenerator uses the information provided in the Device
> Specialization XML file to generate most ICS tables, others like
> "Service", "General" and "Transport" ICSs are generated using
> individual XML files. Click on ICS menu and select ICS tables to
> generate and display.
>
> ![](media/image18.png){width="5.997916666666667in"
> height="5.983333333333333in"}

Selected ICSs will be displayed at the bottom panel, each of them
identified by a tab. Click on one of them to display the corresponding
table.

![](media/image19.png){width="5.998611111111111in"
height="6.002777777777778in"}

In each ICS table, the "Support" and "Comment" columns are editable. The
following options are available for each ICS table:

-   **"Update":** This option allows dynamic updates to the ICS tables.
    This means that if a change is made to the data model, like removing
    a MOC, by clicking the "Update" tab the ICS table will be updated.
    The project most be saved in order to save all the changes and
    updates.

-   **"Add Changes":** This option allows capturing any changes made to
    the table either by editing the "Support" or "Comment" columns or by
    a dynamic update of the table. The project most be saved in order to
    save all the changes.

-   **"Generate XML File":** This option allows togenerate an XML
    version of the ICS table.

-   **"Export XML File":** This option allows the user to save a copy of
    the XML version of the ICS table.

The Transport ICS Table is the only table that follows a different
format, therefore providing different options. This table is part of the
"Classic" ISO/IEEE 11073 Standard and is used to define which transport
will be supported by the device. Currently, only the IRDA-based
Cable-Connected transport ICS is supported by the ICSGenerator Tool.
Select the Transport ICS from the DIM ICS drop down menu.

![](media/image20.png){width="5.990277777777778in" height="5.975in"}

Click on the IRDA-based Cable-Connected radio button.

![](media/image21.png){width="5.991666666666666in"
height="5.2659722222222225in"}

Click on one radio button; **IrLAPICS, TinyTPICS or IrLMPCIS**. The
following screen will be displayed, if the **IrLAPICS** was selected, a
similar screen will be displayed for **TinyTPICS or IrLMPCIS.** The user
must indicate which functions will be supported by selecting "YES" or
"NO" under the supported column for each particular function.

![](media/image22.png){width="5.995138888888889in"
height="5.243055555555555in"}

After making the selections the user must "Add Changes" to capture the
information entered and proceed to save the project, if done using
ICSGenerator. The user also has the option of generating and saving an
XML version of the transport ICS table using the **"Generate XML File"**
tab and the **"Export XML File"**, respectively.

### 3.3 Tools menu

> ICSGenerator provides other capabilities; these are accessible via the
> "Tool" menu:

-   Compare Devices

-   UML Diagrams

-   Validation errors

### 3.3.1 Compare Devices

***ICSGenerator*** provides a methodology to quickly select and compare
two or more device specializations. Objects, attributes, behavior, and
notifications reports are produced documenting common characteristics.
This type of comparison is done at the feature level it will list all
the objects supported by the devices and highlight identical features.

For instance, the following comparison report is between two
Pulse-Oximeter device specializations, one is an extended configuration
and the other is a standard configuration, noticed that both of them
support a Numeric:Pulse rate object and Numeric:SpO2 object.

![](media/image23.png){width="5.99375in" height="4.720833333333333in"}

Right click on one of the objects to display a comparison report on
attributes, behaviours or notifications. The following report is on the
attributes of the Numeric:Pulse rate object.

![](media/image24.png){width="5.989583333333333in"
height="5.052777777777778in"}

The compare device tool also allows the user to perform an "Agent" to
"Manager" comparison, providing useful information that can aid in
determining if a manager could interoperate with an Agent. Objects are
compared regardless their type and a comparison report is generated
including common characteristics among attributes, behavior, and
notifications. To generate this type of report make sure you select
"Agent to Manager" comparison type, and then load the Manager
Specialization file or profile and the Agent specialization file.

![](media/image25.png){width="5.995833333333334in"
height="5.035416666666666in"}

Once a comparison report is generated the user has the option of saving
the report in PDF format. Select "Export comparison report..." to save
the report.

### 3.3.2 UML Diagram

The ***ICSGenerator*** provides the capability of automatically
producing a UML class diagram describing the device data model based on
the device specialization defined by the user using the tool.

An UML diagram of the device being model is generated by selecting the
UML option on the Tool menu. A UML diagram can be draw at any level of
the containment tree by selecting the root in a drop down menu.

![](media/image26.png){width="5.998611111111111in"
height="6.013888888888889in"}

Click on the "UML Diagram" tab to display the diagram.

![](media/image27.png){width="5.995833333333334in"
height="5.973611111111111in"}

### 

### 3.3.3 Validate Tool

ICSGenerator provides a tool that validates the current profile against
the DIM XSchema (XML Schema including ISO Schematron rules) and prints
the detected errors. We intend to enhance this feature in the future in
order to perform additional validation such as validating a PCD profile
against the Rosetta Terminology Mapping Table.

When loading a profile, a validation report is printed automatically if
errors are detected.

To perform validation on a loaded profile the user has to select
**"Validation errors"** option under the "**Tool"** menu.

![](media/image28.png){width="5.995833333333334in"
height="6.831944444444445in"}

###