In an ideal world (as far as I can imagine it), we would be able to throw a PDO at a URL and have it import the data to i2b2. This would allow us to import from the many different systems that BRISSKit will entail in a relatively simple way. If we have to have some kind of middleware layer or a bespoke i2b2 cell for this is an open question. In the first instance we just need to be able to talk to i2b2 with a web service...
Inter-cell communication is done (almost) exclusively with web services as described in https://www.i2b2.org/software/files/PDF/current/MessageWrapper.pdf From what I understand, each message consists of a standard xml file with well defined headers containing all the metadata, then any PDOs are included in the body of the xml file.
Both the workbench and the web client talk to i2b2 with these web services. Different parts seem to be able to talk directly with different cells - so the ontology tree display talks with the ontology cell etc.
The web client is written completely in Javascript so it is entirely client-side code. In theory picking it apart would give us a rough idea of how messages are passed to/from i2b2. It is difficult to understand however...
The workbench works in a similar way, but written in Java. I think Jeff is going to have a look at this in the future.
Clearly other groups have got on top of this as they have lots of data in i2b2, by lots I mean literally millions of patients!
There are a few projects around that look like they might be helpful in pointing us in the right direction.
- http://informatics.kumc.edu/work/wiki/HERON - This is mostly SQL INSERTs (I think). ~400 million hospital observations.
- http://code.google.com/p/o2i2b2/ - Apparently a framework for porting data into i2b2. All Java code I don't understand.
- http://orbit.nlm.nih.gov/resource/r-engine-cell-integrating-r-i2b2-software-infrastructure - i2b2 cell that communicates with R to do analysis on. The cell is written in Java.
- From Google groups: "We are working of a web application that will port data from REDCap to i2b2 via a CDISC ODM intermediate. We expect to be able to demonstrate this in early November. - Jim Gregoric Children's Hospital Boston"
- http://www.google.co.uk/url?sa=t&rct=j&q=%20erlangen%20i2b2&source=web&cd=3&ved=0CCoQFjAC&url=http%3A%2F%2Fwww.imi.med.uni-erlangen.de%2F~matesn%2Fi2b2%2520OntoImport%2520Suite%2Fi2b2%2520AUG%25202011%2520Poster.pdf&ei=DXWpTsS4KZLG8QPP1oWJDA&usg=AFQjCNEx-xCRWqyp3h-VHHtbvFQrR2xUOg&sig2=gKsATDlAJNK1FIbD05A6iQ - Another group using SQL INSERTs to put millions of bits of data in.