This wiki has undergone a migration to Confluence found Here

RIMBAA: PHI Technology

From HL7Wiki
Jump to navigation Jump to search


Overview

The PHI TECHNOLOGY Tool suite (created by ITAL TBS Group) aims to provide the user with the tools to create easy to use ways to handle information. Tools, Components, Wizards, Templates are used together to simplify the modeling phases in order to enable a business analyst to deliver the needed solution by assembling pre-defined and user-defined building blocks. The common self-created reusable solutions called PHI Solutions combined with the strong process-orientation shortens the distance among the individuals of the organization. Drawing a form or a process, one can express his/her view and own thoughts of the appearance and data handled by operations and workflows.

Developers who provide technical maintenance of the product do not need to write code, concerned with the tools. They simply add new tools and properties and then execute a command, which updates the whole model automatically. This saves time and increases developer’s efficiency. The modeling framework aids desingers in creating simple and comprehensible solutions. It supports creative thinking of the individuals involved in designing clear applications, which facilitate further data handling processes. The product specialists whose skills are closer to the real processes than to the software engineering can use the set of predefined templates and services, GUI objects, processes, rules and reports to compose and change continuously the final application without involving the software developers.

PHI TECHNOLOGY contains:

  • A product called PHI Designer. The PHI Designer is used to generate healthcare applications named PHI Solutions, deployed and executed upon the PHI RE runtime environment.
  • A PHI Runtime Environment (PHI RE).

PHI Designer and PHI RE share a common Reference Information Model (PHI RIM), fully extensible and customizable, derived from the HL7 RIM. PHI RIM stores the metadata catalog, describing objects’ attributes, services, events, vocabularies and ontologies. Applications, named “solutions”, are designed and executed upon the RIM. The physical database (PHI RIM DB) is invisible to designers and applications; its conceptual and physical model is derived from the RIM, that makes it an open database, based on the most popular international healthcare standard. Its mixture of Entity-Relationship and Entity-Attribute-Value physical structures makes it extremely flexible and performing.

For additional information:

HL7 v3 Technology Matrix

This section uses terminology as defined in this whitepaper.

RimbaaPhi.JPG

The PHI Technology solutions occupies the RP-RO-MS squares using the Java SIG materials.

The communication with other applications will be implemented using the Java SIG HL7 message v3 capability starting from RIM Object (RO) and it will be sent to the ESB that communicates with other system. A transformation feature from v3 to v2.x will be created when it's required.

RP-RO is based on Hibernate mapped to JavaSIG objects on one side (RO) and on physical db structures (PDM) on the other side (RP). At the moment the Hibernate approach defined in the Java SIG Materials is being used but we are working on moving the DB Schema in "table-per-concrete-class" approach, always based on Hibernate, plus anEAV approach to improve flexibility overall for the Observation classes.

User Interface

The User Interface is an R-MIM driven generation process (by PHI Designer). R-MIMs, process-tasks and GUI widgets are bound/configured using the toolset (the Process Explorer).

The RO object is bound to a UI widget using a binding string that has a XPATH-like format, e.g.:

 Patient_PRPA_MT201301UV02.player[classCode=PSN,determinerCode=INSTANCE].name.FAM

All the user interface are linked to a JBoss Seam Bean that using the XPATH-like binding, derived by RMIM, can read/write attribute in the RIM Object (i.e. it's pur RIM-based objects that are being accessed; the access paths are however based on -the class clone names- defined in an R-MIM). Example:

       <h:outputText id="Label_1211819478500_id" rendered="true" styleClass="Label_1211819478500"
           value="#{RimBean.getValue('Doctor_PRPM_MT999999UV01.player[classCode=PSN,determinerCode=INSTANCE].name.FAM')}">      
       </h:outputText>   
       <h:selectOneMenu id="vocab_EncounterSpecialCourtesy_combobox_ComboBox_1217003891062"
                   rendered="true"  required="false"  styleClass="ComboBox_1217003891062"
                   valueChangeListener="#{SelectItemBean.processValueChange}">
                   <phi:selectItems  value="vocab_EncounterSpecialCourtesy" />
                   <f:param value="Encounter_PRPA_MT402001UV02.specialCourtesiesCode" name="binding"/>
      </h:selectOneMenu>
      <h:inputText id="TextBox_1210948378437_id"
          styleClass="TextBox_1210948378437"
          required="false"
          rendered="true" value="#{inputTextBean.value}">
          <f:param value="Patient_PRPA_MT201301UV02.player[classCode=PSN,determinerCode=INSTANCE].name.FAM" name="binding"/>   
          <f:converter  converterId="RimPropertyResolverAsConverter" />   
      </h:inputText>

When PHI RE receives this XPATH-like binding it checks:

  1. Re-use the object if it already exist in the current Process context, and access its contents:
    • If the Patient_PRPA_MT201301UV02 is in the context get/set value using XPATH-like binding player[classCode=PSN,determinerCode=INSTANCE].name.FAM for reading/setting the RIM Object attribute. A converter was implemented to manage RIM Type value and Java Type.
  2. Create a new object (if it didn't already exist)- an empty R-MIM root class instance initialized with some values that came from MIF.
    • If the Patient_PRPA_MT201301UV02 is NOT in the context then the instance associated to the root of the PRPA_MT201301UV02.mif is loaded using the Java Sig materials. All attributes with fixed/default value, as set in the mif file, are initialized and then the RIM Object instance is stored in the context and cached.

PHI TECHNOLOGY Roadmap

Tools and components actually available in rel. 1.0 :

  • GUI DESIGNER
  • REPORT DESIGNER
  • PROCESS DESIGNER
  • CATALOG DESIGNER
  • GENERIC EXPLORER
  • PROCESS EXPLORER
  • CATALOG EXPLORER
  • TEMPLATES EXPLORER
  • DOMAIN-OF-VALUES EXPLORER
  • PROCESS ENGINE
  • REPORT ENGINE
  • RULE ENGINE
  • CATALOG SERVER
  • SECURITY SERVER
  • REGISTRY/REPOSITORY

Planned for rel. 1.1:

  • SECURITY DESIGNER (to enable Advanced Security: from role-based security of rel. 1.0 to rule-based security of rel. 1.1)
  • Smarter integration with Jboss Rule Editor and PHI DESIGNER
  • Automatic generation of HQL scripts (Hibernate Query Language) for the DB schema creation after changes in RIM foundation classes via Catalog Designer
  • built-in HTML HL7 documentation Editor (as a feature of Catalog Designer)
  • New database model (PDM3 = Physical Data Model ver. 3), implementing a E-R/EAV hybrid approach, to make it more flexible.
  • PHI COMMANDER: a new GUI widget, customizable per user perspectives, to enable users entering PHI Commands from any GUI and to make as easier as possible the information retrieval. Its special ergonomy is optimized for the usage of one finger only (for touch screens or other smart pointing devices).

PHI Software Licencing

Copyrights on PHI TECHNOLOGY belong to ITAL TBS Group ([1]).

PHI TECHNOLOGY software licensing is constrained by :