You are not logged in Log in Join
You are here: Home » Members » aho » Open Infrastructure for Outcomes » OIO-1.0.0: Highly Customizable Forms, Schedules, Workflows, Reports, + PostgreSQL/Oracle-compatibility » View NewsItem

Log in



OIO-1.0.0: Highly Customizable Forms, Schedules, Workflows, Reports, + PostgreSQL/Oracle-compatibility

After 2 years of development, the OIO Project achieves integration of schedules and workflows within a forms-based content management framework.

Quick Start

Introduction to OIO-1.0.0

  • Andrew P. Ho, M.D. Assistant Clinical Professor, Department of Psychiatry, Harbor-UCLA Medical Center, University of California, Los Angeles
  • Contact: [email protected]

Open Infrastructure for Outcomes (OIO) is a flexible data management system that supports user-definable metadata such as forms, reports, schedules, and workflows. It is implemented using Zope + PostgreSQL or Oracle database management system [ see architecture]. OIO is primarily used to support medical and clinical research applications. However, it has also been successfully used in eCommerce (e.g. OptoLight.Com).


Users can quickly design and modify forms via OIO's 100% browser-accessible tools. These forms ( schema) can be exported/imported as XML documents for re-use and interoperation with other systems.

By creating and using the appropriate set of forms to model any medical, research, and business information, users can quickly tailor OIO-based applications to suit their unique and changing needs. We have been successful in training nurses, social workers, psychologist, college students, and physcians without programming background to create OIO forms.

Forms contain Question Items which uses Responses (Itemtypes). Responses function as user-definable data types which can be re-used across Question Items. Arbitrarily complex Responses are modeled through OIO's growing list of Form Actions.

Form Actions

Form Actions serve to

  1. facilitate re-use of graphical data-entry widgets
  2. constrain and describe complex data types
One of the things that sets OIO apart from other forms-based information systems is that OIO attempts to do both of the above. The feasibility of this is supported by the successful implementation of the integrated Reports module. The planned form-to-form translator facility will further clarify the utility of this design.

New Form Actions introduced in OIO-1.0.0 are:

  • action=pickone_from_form (select from answers given via a Question item on another form)
  • action=pickone_from_table (e.g. drug or diagnosis codes created from data import)
  • action=pickone_radio
  • action=show_text
  • action=autonumber
  • action=file (uploads file for storage)
  • action=number
  • action=scheduled_workflow (automatic enactment of a workflow at scheduled time)
  • action=date, date_time, time

Data Dictionary

  • Question items and Responses can be copied and re-used across OIO forms. The new data dictionary function provides a convienient interface for retrieving and re-using data definitions (=Question item/Response).


This is a new module that supports user-definable EventTypes. This makes it easy to use custom-designed event-description forms (=EventType metadata) to define events and view multiple event-types (e.g. see all conferences and patient appointments) on the same schedule.

  • EventTypes are defined by the form-question item used.
  • Any form-question item that uses the scheduled_workflow action can be used to define an EventType.
  • A schedule can contain arbitrary number of EventTypes.
A pull-down menu display all patients from the "My Patients" list and all EventTypes from the schedule to give adding new Event one-click convenience.

OIO-1.0.0's scheduling module uses the Calendar Tag product by Ty Sarna, Endicor Technologies. Thanks Ty!

Event Notification via "Workflows"

Since each Event is linked to a "scheduled_workflow" Form-Action, any workflow can be schedule for enactment at the event time. This means a workflow that contains a send_email activity can send an email notification, for example.


This is a new module that supports user-definable Workflows. A Workflow consists of a sequence of "Activity Steps" that are enacted by OIO when the workflow is invoked. There are currently 3 ways for a workflow to be invoked:

  1. Direct invocation by human user
    • select workflow -> select patient
    • select patient -> select workflow
  2. Called by another Workflow (via an Activity Step with action="workflow")
  3. Called by a scheduled_workflow Form-Action
Currently supported Workflow Actions are
  • workflow (calls another workflow)
  • fillout (opens a form for data entry)
  • branch_on_condition (jumps to another workflow step based on existing form data)
  • send_email
  • exit_workflow


This is an improved module that supports user-definable Reports. A Report allows data analysis of a merged dataset. A merged dataset is a user-defined subset of all forms-data. Data collected via forms are extracted, transformed, and loaded into a data mining table. A browser interface allows drilldown analysis of the merged dataset.

New for OIO-1.0.0 :

  • OIO-1.0.0 introduces graph making capabilities using SVG, a W3C recommendation. Bar graph, Line graph, and Pie graph are the graph types supported.
  • Date range query with automatic segmentation into year-month and year-week intervals

    The graph making library has been separately published as the ZSVG_Graph product in August 2003.

  • Simply click on [Graph Me] to generate a graph
  • User can easily change Graph Style, Title, and Value Description by menu at bottom of the graph at runtime.
  • Since SVG is an XML-based standard, future addition of more graph styles and interactive enhancements are trivial to implement.
  • Play with live demo of ZSVG_Graph here : ZSVG_Graph Live Demo

  • OIO-1.0.0 provides date and date_time Response Itemtypes which automatically supports date range and trend queries.
  • Automatic segmentation into year-month and year-week is convenient for examining time-trend information.

Request for Comment

OIO-1.0.0 brings us closer to a tool that helps physicians, researchers, and others collaboratively model, modify, and construct informations systems that are specialized and yet easily portable.

However, much work remain. For example:

  • XML import/export of schedules and workflows
  • conditional Question item skipping inside a form
  • automatic completion of forms from workflow step
  • integration of Reports module with R (
  • generic form layout metadata (support existing + XY layout)

If you find this work interesting or care enough to share your criticism or comments with us, please send email to our mailing list or to [email protected] Most importantly, we hope you will download and use the software.


 Dennis Halladay (Somalogic) 
        - Oracle compatibility, data dictionary, quick reports, 
          ParsedXML migration, extensive code review
 Daniel Auerbach (Cornell U.) 
        - action=scheduled_workflow, schedules module
 Andrew Golovin (Ural Scientific Institute of Traumatology and Orthopaedics) 
        - author of the new OIO logo
 Alex Chelnokov (Ural Scientific Institute of Traumatology and Orthopaedics) 
        - originator of the Local_Text multi-lingual module and
                  action=image, which now made action=file possible
 Gary Kantor (Case-Western) 
        - there would be no pink_interface without Gary's strong
 Nandalal Gunaratne (Sri Lanka Teaching Hospital, Colombo South)
        - originator of the schedules module and action=autonumber
 Steve Vitale (U of Penn) 
        - advocated for action=file
 James Smith, Keh-Ming Lin (Harbor-UCLA) 
        - advocacy for workflows module
 Monica Soto-Rios (Harbor-UCLA) 
        - save default data between forms and patients and
                     numerous user-interface suggestions
 Carlos Callegari (Harbor-UCLA) 
        - improvement in patient records display