JavaSIG RIM Object Model Implentation

streakconvertingΛογισμικό & κατασκευή λογ/κού

13 Δεκ 2013 (πριν από 3 χρόνια και 8 μήνες)

79 εμφανίσεις

Presented by Alex Zupan

J
avaSIG
RIM O
bject
M
odel
I
mplentation

From

ORIGINAL JavaSIG

To

PHI
-
JavaSIG (JavaBean) VERSION


RIM class diagram

RimObject

Modified:


Id: long

Added:


CcName
-
CloneClassName


CloneClass


CreatedBy


CreationDate


IsActive


Owner

phi ATTRIBUTE


CloneClassName
: used to navigate between rim objects
with mif


CloneClass
: used to have always mif definition associated
to rim object


CreatedBy
: user who creates rim object


CreationDate
: rim object creation date


IsActive
: used for auditing/historicization


Owner
: direct link to Service delivery Location


Data Type: get/setValue

Added:


Set/get value


Equals / hashCode


In this way all HL7 types
becomes
JavaBeans


Each type implement
not compliant override
these methods (eg. TEL)



Data Type: PhiWrapperX


example EN


Renamed original
jSig types to:
PhiWrapped*


Added to new type
getters and setters


Example ENXP,
added:


Set/get data


Set/get language


Set/get qualified









Data Type: PhiWrapperX

To simplify hibernate mapping we have modified the
following dataTypes: now are
JavaBeans
.


AD, ADXP


ED


EN, ENXP


IVL


MO


RTO


SC


TEL


PhiWrapperX


sequence

Example of wrapper x Sequence:


Each method in the original
ADImpl (PhiWrappedADImpl) is
called by our ADImpl


Our ADImpl has also setter and
getter es:


Get/set use

Data Type: getRaw


Added:


LIST


Set/get rawList


BAG


Set/get rawList


SET


Set/get rawSet



To obtain java type


Jxpath used this raw type to
navigate the object





Data Type: CodedValue (PhiHibernateUtil)

To save all coded value in a set of tables (Dictionary) and put
only fk in other tables…

Data Type: CodedValue (PhiHibernateUtil)

Te constructors (valueOf) of CD, CE, CS and CV calls the
PhiHibernateUtilities class that returns a coded value
from Dictionary.

Primary
-
key

Original

javasig: UUID

We

use long prymary keys, to improve
performances.

If a UUID is needed we can save it in II
extension.

Hibernate
-
mapping

Original

javasig maps all
datatypes

to xml columns in db

We

map all datatypes to simple db columns (string, int,
long…)

The mapping is obtained because our javasig types are
JavaBeans
.

For remaining types we have inplemented hibernate
userTypes: ANY, BL, GTS, INT, IVL, RTO, TS, UNIT,
UUID.

Hibernate
-
mapping

All our mapped classes have lazy relation to
other rim objects to increase speed

Modified Jsig to accept
hibernateProxies
.

From Rim Object to Message

Removed

static instances to avoid multithread
errors

Removed

rim object cache of created objects to
avoid multithread errors

OPEN SOURCE...

.... COMUNITY

to IMPROVE the

JavaSIG2010...

phi Website

PHI wiki:


support.phitechnology.it/wiki



OHT Forge project:



https://phi
-
technology.projects.openhealthtools.org/




HL7 GForge project:



http://gforge.hl7.org/gf/project/phi
-
technology/

Alex Zupan: alex.zupan@italtbs.com