*ICSGenerator User's Guide\
*(Version 2.1)

![](media/image1.wmf){width="4.3069444444444445in"
height="1.0173611111111112in"}

Information Technology Laboratory

Software Diagnostics and Conformance Testing Division

# Table of Contents {#table-of-contents .unnumbered}

[Table of Contents i](#table-of-contents)

[List of Figures i](#list-of-figures)

[1 Background 1](#background)

[2 Installation 3](#installation)

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

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

[2.3 Running the ICSGenerator Tool 4](#running-the-icsgenerator-tool)

[2.3.1 DIM ICS (DEFAULT) 6](#dim-ics-default)

[2.3.2 General ICS 24](#general-ics)

[2.3.3 Service Support ICS 30](#service-support-ics)

[2.3.4 Transport ICS 36](#transport-ics)

[2.3.5 UML Diagram 42](#uml-diagram)

[2.3.6 Compare Devices 46](#compare-devices)

# List of Figures {#list-of-figures .unnumbered}

# 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 the IEEE Medical Device Communications
working group in developing a set of conformance tests and corresponding
tools to aid in testing implementations against the IEEE 11073 set of
standards.

The ICSGenerator tool is an effort initiated by National Institute of
Standards Technology (NIST) and IEEE 11073 Working Group to help in
capturing the relationships among the managed objects, the device
information model 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/image3.png){width="4.479166666666667in"
height="3.1354166666666665in"}

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

# Installation

## 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 2.1** to download a self-installing
executable jar file. Follow the self explanatory instructions provided
by the installer. This option is the recommended way to run the tool.

Select **NIST ICSGenerator Source 2.1** to download the source code.
Follow the instructions below to compile and run the source code.

First unzip the ICSGENERATOR-2.1.ZIP file. This should create the
following directories:

-   c:/ICS/src - top level directory for source code

-   c:/ICS/src/comparingDevices - contains java source code for
    comparing two devices

-   c:/ICS/src/drawing - contains java source code for creating a UML
    diagram of a device

-   c:/ICS/src/icsDyn - contains java source code for creating a ICS for
    a device

-   c:/ICS/src/icsTables - contains java source code for creating html
    tables listing attributes, behaviors, notifications... for a device

-   c:/ICS/src/modifyIcs -- contains java source code for creating an
    ICS for the Service Model

-   c:/ICS/src/units -- contains java source code for getting units of
    measurement

-   c:/ICS/transport -- contains java source code for creating a
    Transport ICS

-   c:/ICS/pdfReport -- contains java source code for creating ICS
    reports in PDF format

-   c:/ICS/jar - contains the jama.jar file. Jama is a java matrix
    package

-   c:/ICS/xml - contains xml files used by the ICSGenerator tool. The
    default ICS XML file ICS-Tool.xml (an XML representation of the data
    model as specified in the IEEE 11073 DIM Document) is contained in
    this directory.

-   c:/ICS/xsd - contains the schema files for each ICS(DIM, General,
    Service Support and Transport).

-   c:/ICS/XSLT - contains transformation files used by the ICSGenerator
    tool.

-   c:/ICS/img -- contains logo files for tool

## System Requirements

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

-   Java 2 SDK (Version 1.5)

-   Xerces (Version 2_8_0)

**CLASSPATH MUST BE SET TO THE FOLLOWING:**

.;c:/xerces-2_8_0/xercesImpl.jar;c:/xerces-2_8_0/xml-apis.jar;
c:/ICS/jar/jama.jar;c:/ICS/jar/itext-1.4.3.jar;
c:/ICS/jar/AsnLib.jar;c:/ICS/jar/Asn1Lib.jar;c:/ICS/jar/DimLib.jar;
c:/ICS/jar/Mderlib.jar

## Running the ICSGenerator Tool

From the ICS source directory, compile and execute the ICSGenerator Tool
using the following commands:

-   cd c:/ICS/src

-   javac icsDyn/\*.java

-   java ManagementView

The ICSGenerator main screen should pop up. Note there are six tabs at
the top of the main screen for the user to select. Detailed descriptions
of each tab follow.

> ![](media/image4.jpeg){width="5.99375in" height="5.986111111111111in"}

### DIM ICS (DEFAULT)

At the heart of the generation process in an XML Schema file
(**XSchema**) that was created to describe the information model
contained in the ISO/IEEE 11073-10201 Domain Information Model (**DIM**)
standard. The generation process is driven by an XML instance
(**ICS-Tool.xml**) of the **XSchem**a file. **ICS-Tool.xml** is
validated against the **XSchema** and is a complete representation of
the data information model. To initiate the process select the XML
instance file (**D**ata **I**nformation **M**odel) you want to use as
the initial model to specify your implementation conformance statements
and support information.

The generation process is also driven by the type of Medical Device
System (MDS) Object selected for the Medical Device Data Information
Model, the current version of the ICSGenerator tool supports Hydra and
Simple MDS.

At the top of the panel select one of the following:

> **\"New\"** to dynamically create an ICS for a device. This option is
> usually selected the first time you use the tool.\
> Or\
> **\"Reload\"** to start the process with a previous created version of
> the file.
>
> **Select MDS type**:
>
> **\"Composite Single Bed\"** to represent a device that contains or
> interfaces with one or more Simple or Hydra MDS objects at one
> location.
>
> Or
>
> **\"Simple\"** to represent a medical device that contains a single
> Virtual Medical Device (VMD) instance only (single purpose device).\
> Or\
> **\"Hydra\"** to represent a device that contains multiple VMD
> instances (multi-purpose device).

Once you have selected one of them a JTree representation of the loaded
XML file should appear on the left hand of the screen.

![](media/image5.jpeg){width="5.99375in" height="6.009027777777778in"}

Click on any Managed Object Class (MOC) to see information such as
Object Class, Object Name, Label, Reference, Attributes, Behavior,
Notification etc...

![](media/image6.jpeg){width="5.996527777777778in"
height="6.004166666666666in"}

There are also five buttons below the JTree:

> **\"Add MOC\"** to add a new Managed Object Class (MOC) to the tree\
> **\"Remove MOC\"** to remove MOC\'s from the tree.
>
> **\"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

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 Alert_Scanner MOC.

![](media/image7.jpeg){width="5.993055555555555in"
height="5.955555555555556in"}

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/image8.jpeg){width="5.995138888888889in"
height="6.010416666666667in"}

Click on the **Add changes** button to make the changes permanent.

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/image9.jpeg){width="5.9944444444444445in"
height="5.9944444444444445in"}

Click on the **Add changes** button to make the changes permanent.

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/image10.jpeg){width="5.995138888888889in"
height="5.972916666666666in"}

Click on the **Add changes** button to make the changes permanent.

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/image11.jpeg){width="5.995833333333334in"
height="6.003472222222222in"}

In this example the **Altitude** attribute has been selected and will
produce the following screen on the next page when clicked on:

![](media/image12.jpeg){width="5.996527777777778in"
height="5.988888888888889in"}

-   **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 submit the information entered.

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

-   Restrictions

    -   This field captures restrictions entered for the behavior.

-   Comments

    -   This field captures comments entered for the behavior.

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

If a notification is selected the following screen will be displayed and
the following information should be provided:

![](media/image14.jpeg){width="5.995833333333334in" height="6.01875in"}

-   Restrictions

    -   This field captures restrictions entered for the notification.

-   Comments

    -   This field captures comments entered for the notification.

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

Section 10 of the ISO/IEEE 11073-10201 (Domain Information Model)
document spells out the format and contents of an ICS.

Click on the **"View"** button to see a list of ICS Tables that can be
created.

**NOTE:** A General and/or Service Support ICS must first be created
before the HTML table can be created.

![](media/image15.jpeg){width="5.995138888888889in"
height="6.010416666666667in"}

Selecting **"Table 10.3 -- Template for DIM MOC ICS"** will produce the
following:

![](media/image16.jpeg){width="5.995833333333334in"
height="5.926388888888889in"}

The file can be saved by clicking on the **Export HTML File..."**
button. As noted above HTML table files can be created for the MOC's,
Attributes, Behaviors and Notifications.

Once you are done modifying the tree you can generate an XML
representation of the device information model by clicking on the
"**Generate**" button. The XML will appear at the bottom of the screen.
You should also save the file by clicking on the "**Export XML file**"
button. ICSGenerator allows you to reload previously created files that
can be modified to reflect changes that may have occurred.

![](media/image17.jpeg){width="5.993055555555555in"
height="5.970138888888889in"}

HL7 OBX segments can also be created by clicking on the **"Map XML File
to HL7"** button.

![](media/image18.jpeg){width="5.995138888888889in"
height="6.018055555555556in"}

Click on the **"Export HL7 XML File"** button if you would like to save
the file.

You will be prompted to type a file name for the OBX XML file.

![](media/image19.jpeg){width="5.995138888888889in"
height="6.0256944444444445in"}

The **Project** tab in the upper left hand corner allows a user to start
a **New** DIM ICS, **Quit** the application or **Export PDF Reports...**
or obtain information **About ICSGenerator**.

![](media/image20.jpeg){width="5.995138888888889in"
height="5.995138888888889in"}

The following screen appears when you click **Export PDF Report**.

The various ICS tables and/or UML diagram can be save in PDF format.

Just select the report you want to create and supply a file name and the
report(s) will be saved.

![](media/image21.jpeg){width="5.996527777777778in"
height="6.004166666666666in"}

### General ICS

The General contains information specifying what versions/revisions are
supported by the implementation as well as some high-level system
behavior definitions. Features captured by the General ICS include
Conformance Deviation, Object Containment Tree, Private and External
Objects and Private Nomenclature Extensions. The generation process is
driven by an XML input file containing the General ICS information. The
default file is a complete representation of the General ICS as
prescribed in the IEEE 11073 DIM specification. To initiate the process
select the General ICS XML file you want to load.

At the top of the Main screen panel click on the **General ICS** tab

Click on

> **\"New\"** to create a General ICS for a device. This option is
> usually selected the first time you create a **General ICS**.\
> Or\
> **\"Reload\"** to load a previously created version of a General ICS.

![](media/image22.jpeg){width="5.9944444444444445in"
height="5.986805555555556in"}

Select a **General ICS** file to load

Click on **Open**

The file selected is now loaded

![](media/image23.jpeg){width="5.995138888888889in"
height="6.002777777777778in"}

The following screen appears once you have loaded a **General ICS**
file.

The **Support** and **Comment** fields may be modified by clicking on
the respective column and typing the appropriate text.

Once you are finished typing the text you can make the changes permanent
by clicking on the **Add changes** button.

![](media/image24.jpeg){width="5.996527777777778in"
height="6.011805555555555in"}

Clicking on the **Generate XML File** will produce the following screen.

You can see the generated XML at the bottom of the screen.

![](media/image25.jpeg){width="5.995138888888889in"
height="6.010416666666667in"}

You can save your updated **General ICS** statement by clicking on the
**Export XML File** button.

You will be prompted to type a file name for the new version of the
**General ICS.**

![](media/image26.jpeg){width="5.9944444444444445in"
height="5.986805555555556in"}

### Service Support ICS

The Service Support ICS defines which services are defined in the
service model as well as which services are implemented. The Service
Support ICS should only be supplied for communicating devices. Features
captured by the Service Support ICS include services supported by the
device such as the "GET", "SET", "EVENT REPORT", "ACTION", "CREATE", and
"DELETE" services. The generation process is driven by an XML input file
containing the Service Support ICS information. The default file is a
complete representation of the Service Support ICS as prescribed in the
IEEE 11073 DIM specification. To initiate the process select the Service
Support ICS XML file you want to load.

At the top of the Main screen panel click on the **Service Support ICS**
tab

Click on

> **\"New\"** to create a Service Support ICS for a device. This option
> is usually selected the first time you create a **Service Support
> ICS**\
> Or\
> **\"Reload\"** to load a previously created version of a Service
> Support ICS

![](media/image27.jpeg){width="5.9944444444444445in"
height="5.9944444444444445in"}

Select a **Service Support ICS** file to load

Click on **Open**

The file selected is now loaded

![](media/image28.jpeg){width="5.995138888888889in"
height="5.979861111111111in"}

The following screen shows the results of loading a **Service Support
ICS** file.

The **Support** and **Comment** fields may be modified by clicking on
the respective column and adding a check in the support field and/or
typing text into the Comment field.

Once you are finished typing the text you can make the changes permanent
by clicking on the **Add changes** button.

![](media/image29.jpeg){width="5.996527777777778in"
height="6.027083333333334in"}

Clicking on the **Generate XML File** will produce the following screen.

You can see the generated XML at the bottom of the screen.

![](media/image30.jpeg){width="5.99375in" height="5.978472222222222in"}

You can save your updated **Service Support ICS** by clicking on the
**Export XML File** button.

You will be prompted to type a file name for the new version of the
**Service Support ICS**.

![](media/image31.jpeg){width="5.996527777777778in"
height="6.011805555555555in"}

### Transport ICS

The Transport ICS defines which transport profile is defined. The
generation process is driven by an XML input file containing the
Transport ICS information. The default file is a complete representation
of the Transport ICS. Currently only the IRDA-based Cable-Connected
transport ICS is supported by the ICSGenerator Tool. At the top of the
Main screen click on the **Transport ICS** tab.

Click on

**\"New\"** to create a Transport ICS for a device. This option is
usually selected the first time you create a **Transport ICS**.\
Or\
**\"Reload\"** to load a previously created version of a Transport ICS.

![](media/image32.jpeg){width="5.997222222222222in"
height="6.020138888888889in"}

Select a **Transport ICS** file to load

Click on **Open**

The file selected is now loaded

![](media/image33.jpeg){width="5.995138888888889in"
height="5.995138888888889in"}

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

![](media/image34.jpeg){width="5.995138888888889in"
height="5.995138888888889in"}

Click on one of the following radio buttons (**IrLAPICS TinyTPICS
IrLMPCIS)**.

![](media/image35.jpeg){width="5.995833333333334in"
height="6.011111111111111in"}

Clicking on the **IrLAPICS** will produce the following screen.

Highlight a particular function. Make support column modifications for
the function selected.

Click on the **Add Changes** button to make the changes permanent.

Click on the **Generate XML File** to produce the XML representation of
the **Transport ICS**.

![](media/image36.jpeg){width="5.9944444444444445in"
height="5.9944444444444445in"}

You can save your updated **Transport ICS** statement by clicking on the
**Export XML File** button.

You will be prompted to type a file name for the new version of the
**Transport ICS**.

![](media/image37.jpeg){width="5.9944444444444445in"
height="5.986805555555556in"}

### UML Diagram

The **UML Diagram** function allows a user to create a class diagram
that captures the devices data model as well as shows the relationships
between the classes. In order to create a **UML Diagram** a **DIM ICS**
must first be loaded.

At the top of the Main screen panel click on the **UML Diagram** tab.

![](media/image38.jpeg){width="5.995833333333334in"
height="6.003472222222222in"}

Select the **MOC** that you would like to be the root of the UML
Diagram.

![](media/image39.jpeg){width="5.995138888888889in"
height="6.002777777777778in"}

Click on the **Draw UML Diagram** button to produce the **UML diagram**.

![](media/image40.jpeg){width="5.995138888888889in"
height="5.979861111111111in"}

You can save your **UML diagram** image by clicking on the **Export
image...** button.

You will be prompted to type a file name for the created **UML
diagram**.

![](media/image41.jpeg){width="5.995138888888889in"
height="6.018055555555556in"}

### Compare Devices

The **Compare devices** function is used to compare the information
model of two or more devices. The tool will show what objects,
attributes, behaviors and notifications that the devices have in common
as well as what is different between the devices.

At the top of the Main screen panel click on the **Compare devices** tab

![](media/image42.jpeg){width="5.995833333333334in" height="6.01875in"}

Click on the **Add a device** button

![](media/image43.jpeg){width="5.995138888888889in"
height="6.002777777777778in"}

Click on the **Browser** button and select a file for **Device number
1**.

![](media/image44.jpeg){width="5.995138888888889in" height="5.9875in"}

Click on **Add a device** to add a second device for the comparison.

![](media/image45.jpeg){width="5.995833333333334in" height="6.01875in"}

Click the **Browser...** button and select a file for **Device number
2**.

![](media/image46.jpeg){width="5.995138888888889in"
height="6.002777777777778in"}

Click on the **Compare devices** button.

**NOTE: More than two devices can be compared**.

![](media/image47.jpeg){width="5.995138888888889in"
height="5.995138888888889in"}

The following report is a sample comparison of two devices.

![](media/image48.jpeg){width="5.99375in" height="5.978472222222222in"}

Highlight a particular **MOC** and then right click the mouse and a drop
down menu will appear allowing you to compare the Attributes, Behavior
or Notifications of the **MOC**.

![](media/image49.jpeg){width="5.99375in" height="5.895833333333333in"}

Selecting **Attributes** will produce the following screen.

![](media/image50.jpeg){width="5.996527777777778in"
height="6.019444444444445in"}

Right click on the mouse and click on **Back** to return to the previous
screen.

![](media/image51.jpeg){width="5.9944444444444445in"
height="5.972222222222222in"}

You can save your **Comparison** of your devices in PDF format by
clicking on the **Export comparison report...** button.

You will be prompted to type a file name for the **Comparison report**.

![](media/image52.jpeg){width="5.9944444444444445in"
height="5.9944444444444445in"}